feat: statuses and ticket types take any colour from a colour picker

Settings shows a native colour picker (the palette as suggestions)
instead of the list of eleven names. The API takes a palette name, as
before, or any #rrggbb; picking a palette colour still saves its name,
so it keeps its hand-made dark version. A free colour gets one variant
per theme, computed with the `color` library (moved towards white or
black until it contrasts 3:1 with the surface) and applied with
light-dark(): a pale yellow darkens on white, a navy lightens on dark.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-17 16:08:47 +02:00
parent 034704e46f
commit 33c593521e
19 changed files with 379 additions and 115 deletions

View File

@@ -866,6 +866,8 @@ type IssueTypeOption {
input IssueTypeOptionInput {
archived: Boolean! = false
"""A palette colour (follows the theme) or #rrggbb"""
color: String!
icon: String!
id: String!
@@ -2161,7 +2163,7 @@ type WorkflowStatus {
archived: Boolean!
category: StatusCategory!
"""Colour token: slate, violet, green…"""
"""A palette colour (slate, violet, green…, follows the theme) or #rrggbb"""
color: String!
"""Stable id stored on tickets, e.g. IN_REVIEW"""
@@ -2180,6 +2182,8 @@ type WorkflowStatus {
input WorkflowStatusInput {
archived: Boolean! = false
category: StatusCategory!
"""A palette colour (follows the theme) or #rrggbb"""
color: String!
id: String!
name: String!