/** Visual tones only; provider status values and board membership stay untouched. */ export function issueTone(value: string): "neutral" | "active" | "review" | "done" { const name = value.toLocaleLowerCase(); if (/^(closed|done|completed|resolved|erledigt|geschlossen|shipped)$/.test(name)) return "done"; if (/review|testing|test|\bqa\b|prüfung/.test(name)) return "review"; if (/progress|development|entwicklung|active|doing|build|bearbeitung/.test(name)) return "active"; return "neutral"; } export function issueStateLabel(value: string, de: boolean): string { if (!de) return value; return ({ open: "Offen", opened: "Offen", closed: "Geschlossen" } as Record)[value] ?? value; } export function labelTone(label: string): string { const name = label.toLocaleLowerCase(); if (/bug|error|fehler/.test(name)) return "red"; if (/enhancement|feature|verbesserung/.test(name)) return "blue"; return "neutral"; }