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`
}
