// Design tokens for Himma

const THEMES = {
  clinic: {
    // Pure white / black / electric blue — Inter only
    bg:       '#FFFFFF',
    surface:  '#FFFFFF',
    surface2: '#F6F7F9',
    surface3: '#EEF0F4',
    line:     'rgba(0,0,0,0.06)',
    line2:    'rgba(0,0,0,0.12)',
    text:     '#0A0A0A',
    textDim:  'rgba(10,10,10,0.62)',
    textMute: 'rgba(10,10,10,0.42)',
    positive: '#1F8A4C',
    negative: '#D23B2E',
    warning:  '#C77A00',
    accentOverride: '#2C5BFF',       // electric blue
    fontOverride: { display: "'Inter', system-ui, sans-serif", ui: "'Inter', system-ui, sans-serif", mono: "'JetBrains Mono', ui-monospace, monospace" },
  },
};

const ACCENTS = {
  champagne: '#D4B27A',
  bronze:    '#B8824A',
  copper:    '#C98752',
  sand:      '#C9B088',
};

const FONTS = {
  display: "'Fraunces', 'Times New Roman', serif",
  ui:      "'Inter', system-ui, sans-serif",
  mono:    "'JetBrains Mono', ui-monospace, monospace",
  arabic:  "'Amiri', 'Fraunces', serif",
};

// AED currency formatter (numbers only; prefix/suffix handled separately)
function fmtAED(n, opts = {}) {
  const { decimals = 0, compact = false } = opts;
  if (compact && Math.abs(n) >= 1000) {
    if (Math.abs(n) >= 1_000_000) return (n/1_000_000).toFixed(1).replace(/\.0$/,'') + 'M';
    return (n/1000).toFixed(1).replace(/\.0$/,'') + 'K';
  }
  return n.toLocaleString('en-AE', { minimumFractionDigits: decimals, maximumFractionDigits: decimals });
}

function useTweaks() {
  const [t, setT] = React.useState(() => ({ ...(window.__HIMMA_TWEAKS__ || {}) }));
  React.useEffect(() => {
    const handler = (e) => {
      if (e.data?.type === '__edit_mode_set_keys' && e.data.edits) {
        setT(prev => ({ ...prev, ...e.data.edits }));
      }
    };
    window.addEventListener('message', handler);
    return () => window.removeEventListener('message', handler);
  }, []);
  return [t, (edits) => setT(prev => ({ ...prev, ...edits }))];
}

Object.assign(window, { THEMES, ACCENTS, FONTS, fmtAED, useTweaks });
