export namespace Color { export function isValidHex(hex?: string): hex is string { if (!hex) return false return /^#[0-9a-fA-F]{6}$/.test(hex) } export function hexToRgb(hex: string): { r: number; g: number; b: number } { const r = parseInt(hex.slice(1, 3), 16) const g = parseInt(hex.slice(3, 5), 16) const b = parseInt(hex.slice(5, 7), 16) return { r, g, b } } export function hexToAnsiBold(hex?: string): string | undefined { if (!isValidHex(hex)) return undefined const { r, g, b } = hexToRgb(hex) return `\x1b[38;2;${r};${g};${b}m\x1b[1m` } }