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:
@@ -12763,22 +12763,6 @@
|
||||
"CANCELLED"
|
||||
]
|
||||
},
|
||||
"SettingColor": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"slate",
|
||||
"stone",
|
||||
"violet",
|
||||
"blue",
|
||||
"sky",
|
||||
"teal",
|
||||
"green",
|
||||
"amber",
|
||||
"orange",
|
||||
"red",
|
||||
"pink"
|
||||
]
|
||||
},
|
||||
"WorkflowStatusDto": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -12799,11 +12783,9 @@
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/SettingColor"
|
||||
}
|
||||
]
|
||||
"type": "string",
|
||||
"description": "A palette colour (follows the theme) or #rrggbb",
|
||||
"example": "violet"
|
||||
},
|
||||
"requiresReason": {
|
||||
"type": "boolean",
|
||||
@@ -12907,11 +12889,9 @@
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/SettingColor"
|
||||
}
|
||||
]
|
||||
"type": "string",
|
||||
"description": "A palette colour (follows the theme) or #rrggbb",
|
||||
"example": "violet"
|
||||
},
|
||||
"archived": {
|
||||
"type": "boolean"
|
||||
@@ -13262,11 +13242,10 @@
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/SettingColor"
|
||||
}
|
||||
]
|
||||
"type": "string",
|
||||
"description": "A palette colour (slate, stone, violet, blue, sky, teal, green, amber, orange, red, pink), which follows the theme, or any #rrggbb",
|
||||
"example": "#7c3aed",
|
||||
"pattern": "^(slate|stone|violet|blue|sky|teal|green|amber|orange|red|pink|#[0-9a-fA-F]{6})$"
|
||||
},
|
||||
"requiresReason": {
|
||||
"type": "boolean",
|
||||
@@ -13351,11 +13330,10 @@
|
||||
]
|
||||
},
|
||||
"color": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/SettingColor"
|
||||
}
|
||||
]
|
||||
"type": "string",
|
||||
"description": "A palette colour (slate, stone, violet, blue, sky, teal, green, amber, orange, red, pink), which follows the theme, or any #rrggbb",
|
||||
"example": "#7c3aed",
|
||||
"pattern": "^(slate|stone|violet|blue|sky|teal|green|amber|orange|red|pink|#[0-9a-fA-F]{6})$"
|
||||
},
|
||||
"archived": {
|
||||
"type": "boolean",
|
||||
|
||||
@@ -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!
|
||||
|
||||
@@ -1982,8 +1982,6 @@ export interface components {
|
||||
};
|
||||
/** @enum {string} */
|
||||
StatusCategory: "TODO" | "IN_PROGRESS" | "QA" | "DONE" | "CANCELLED";
|
||||
/** @enum {string} */
|
||||
SettingColor: "slate" | "stone" | "violet" | "blue" | "sky" | "teal" | "green" | "amber" | "orange" | "red" | "pink";
|
||||
WorkflowStatusDto: {
|
||||
/**
|
||||
* @description Stable id on tickets
|
||||
@@ -1993,7 +1991,11 @@ export interface components {
|
||||
/** @example En revisión */
|
||||
name: string;
|
||||
category: components["schemas"]["StatusCategory"];
|
||||
color: components["schemas"]["SettingColor"];
|
||||
/**
|
||||
* @description A palette colour (follows the theme) or #rrggbb
|
||||
* @example violet
|
||||
*/
|
||||
color: string;
|
||||
/** @description Entering it needs a reason */
|
||||
requiresReason: boolean;
|
||||
/** @description No new tickets or transitions into it */
|
||||
@@ -2024,7 +2026,11 @@ export interface components {
|
||||
/** @example Bug */
|
||||
name: string;
|
||||
icon: components["schemas"]["TypeIcon"];
|
||||
color: components["schemas"]["SettingColor"];
|
||||
/**
|
||||
* @description A palette colour (follows the theme) or #rrggbb
|
||||
* @example violet
|
||||
*/
|
||||
color: string;
|
||||
archived: boolean;
|
||||
/** @description What a new ticket of the type starts with */
|
||||
template?: components["schemas"]["IssueTemplateDto"];
|
||||
@@ -2153,7 +2159,11 @@ export interface components {
|
||||
/** @example En revisión */
|
||||
name: string;
|
||||
category: components["schemas"]["StatusCategory"];
|
||||
color: components["schemas"]["SettingColor"];
|
||||
/**
|
||||
* @description A palette colour (slate, stone, violet, blue, sky, teal, green, amber, orange, red, pink), which follows the theme, or any #rrggbb
|
||||
* @example #7c3aed
|
||||
*/
|
||||
color: string;
|
||||
/** @default false */
|
||||
requiresReason: boolean;
|
||||
/** @default false */
|
||||
@@ -2182,7 +2192,11 @@ export interface components {
|
||||
/** @example Spike */
|
||||
name: string;
|
||||
icon: components["schemas"]["TypeIcon"];
|
||||
color: components["schemas"]["SettingColor"];
|
||||
/**
|
||||
* @description A palette colour (slate, stone, violet, blue, sky, teal, green, amber, orange, red, pink), which follows the theme, or any #rrggbb
|
||||
* @example #7c3aed
|
||||
*/
|
||||
color: string;
|
||||
/** @default false */
|
||||
archived: boolean;
|
||||
/** @description What a new ticket of the type starts with */
|
||||
|
||||
Reference in New Issue
Block a user