ai-chatbot/lib/canvas/text-edit-colors.ts

40 lines
935 B
TypeScript

export const TEXT_EDIT_COLOR_SWATCHES = [
"#111827",
"#ffffff",
"#ef4444",
"#f97316",
"#f59e0b",
"#84cc16",
"#22c55e",
"#14b8a6",
"#06b6d4",
"#3b82f6",
"#6366f1",
"#8b5cf6",
"#d946ef",
"#ec4899",
] as const;
export function normalizeOptionalHexColor(value: unknown): string | undefined {
const normalized = String(value || "").trim().toLowerCase();
if (!normalized) return undefined;
if (/^[0-9a-f]{6}$/i.test(normalized)) {
return `#${normalized}`;
}
if (/^#([0-9a-f]{3}|[0-9a-f]{6})$/.test(normalized)) {
if (normalized.length === 4) {
return `#${normalized[1]}${normalized[1]}${normalized[2]}${normalized[2]}${normalized[3]}${normalized[3]}`;
}
return normalized;
}
return undefined;
}
export function formatHexColor(value: string | undefined | null) {
const normalized = normalizeOptionalHexColor(value);
return normalized ? normalized.toUpperCase() : "";
}