import { useThemeStore } from '../stores/theme';

export const theme = {
  bg: 'bg-white',
  surface: 'bg-neutral-50',
  surfaceElevated: 'bg-neutral-100',
  border: 'border-neutral-200',
  text: 'text-neutral-900',
  textMuted: 'text-neutral-500',
  brandOrange: 'text-rebreak-500',
  brandOrangeBg: 'bg-rebreak-500',
  brandBlue: 'bg-midnight-800',
} as const;

export type ColorScheme = {
  bg: string;
  surface: string;
  surfaceElevated: string;
  /** iOS systemGroupedBackground — page background for list/settings screens */
  groupedBg: string;
  /** iOS secondarySystemGroupedBackground — card/row surface within grouped pages */
  card: string;
  border: string;
  text: string;
  textMuted: string;
  brandOrange: string;
  brandBlue: string;
  success: string;
  error: string;
  warning: string;
};

const light: ColorScheme = {
  bg: '#ffffff',
  surface: '#fafafa',
  surfaceElevated: '#f5f5f5',
  groupedBg: '#F2F2F7',
  card: '#ffffff',
  border: '#e5e5e5',
  text: '#0a0a0a',
  textMuted: '#737373',
  brandOrange: '#007AFF',
  brandBlue: '#0e1f3a',
  success: '#16a34a',
  error: '#dc2626',
  warning: '#f59e0b',
};

const dark: ColorScheme = {
  bg: '#000000',
  surface: '#1c1c1e',
  surfaceElevated: '#2c2c2e',
  groupedBg: '#000000',
  card: '#1c1c1e',
  border: '#38383a',
  text: '#ffffff',
  textMuted: '#8e8e93',
  brandOrange: '#007AFF',
  brandBlue: '#0e1f3a',
  success: '#30d158',
  error: '#ff453a',
  warning: '#ffd60a',
};

export const colorSchemes = { light, dark };

export function useColors(): ColorScheme {
  const scheme = useThemeStore((s) => s.colorScheme);
  return scheme === 'dark' ? dark : light;
}

// Legacy flat export — used by files that haven't migrated to useColors() yet.
// Wave 2 should remove this.
export const colors = light;
