/**
 * Cores para gráficos SVG — M9.10.
 *
 * Helpers que mapeiam cores hardcoded (#6366f1, #ef4444, etc.) para
 * variáveis CSS do tema (--primary, --destructive, etc.), permitindo
 * que SVGs respeitem o dark mode automaticamente.
 *
 * Uso típico em SVG inline:
 *   <line stroke="var(--color-muted-foreground)" />
 *   <text fill="currentColor"> (herda de text-foreground)
 *
 * Vantagens:
 *  - Cores se adaptam automaticamente a `.dark` no html
 *  - Sem duplicação de lógica de tema
 *  - Mantém fallback OKLCH via CSS (Tailwind v4)
 */

/**
 * Cores temáticas para SVG, cada uma com fallback razoável.
 *
 * Use via `stroke={SVG_COLORS.line}` ou `fill={SVG_COLORS.text}`.
 */
export const SVG_COLORS = {
  /** Texto principal (legendas, eixos) — herda de text-foreground */
  text: 'currentColor',
  /** Texto secundário / eixos secundários */
  muted: 'var(--color-muted-foreground)',
  /** Linha primária / curva principal (era #6366f1) */
  primary: 'var(--color-primary)',
  /** Fundo de área primária (era rgba(99, 102, 241, 0.3)) */
  primaryFill: 'color-mix(in oklch, var(--color-primary) 30%, transparent)',
  /** Aviso / erro / vetor de força crítico (era #ef4444) */
  destructive: 'var(--color-destructive)',
  /** Fundo de área destrutiva (era rgba(239, 68, 68, 0.2)) */
  destructiveFill: 'color-mix(in oklch, var(--color-destructive) 20%, transparent)',
  /** Cor de informação (era #3b82f6) — usa primary por padrão */
  info: 'var(--color-primary)',
  /** Linhas de referência / grid (era #94a3b8) */
  grid: 'var(--color-border)',
  /** Texto principal sólido (era #0f172a) */
  fgSolid: 'var(--color-foreground)',
  /** Marcação amarela (era #fbbf24) — usa accent */
  marker: 'var(--color-accent)',
} as const;

/**
 * Tipo do objeto SVG_COLORS para uso em Props de componentes.
 */
export type SvgColorKey = keyof typeof SVG_COLORS;

/**
 * Resolve a chave para a cor CSS (com fallback).
 *
 * Útil quando a cor é configurável (ex.: dynamic chart).
 */
export function resolveSvgColor(key: SvgColorKey): string {
  return SVG_COLORS[key];
}

/**
 * Lista de cores disponíveis para gráficos multi-série.
 *
 * Inspirado em `--chart-1` até `--chart-5` (que já são dark-aware
 * via index.css), este array fornece ordem determinística.
 */
export const SVG_PALETTE = [
  'var(--color-primary)',
  'var(--color-secondary)',
  'var(--color-chart-3)',
  'var(--color-chart-4)',
  'var(--color-chart-5)',
] as const;
