/* Phở You — Tweaks panel.
   Drives theme / type / accent via <html> data-attrs. The page itself is
   plain HTML; this island only toggles presentation. Defaults match the brief. */

const PY_DEFAULTS = /*EDITMODE-BEGIN*/{
  "theme": "Broth cream",
  "headline": "Italic",
  "accents": true,
  "grain": true
}/*EDITMODE-END*/;

const PY_THEME_MAP = { "Broth cream": "broth", "Night service": "night" };
const PY_TYPE_MAP  = { "Italic": "italic", "Upright": "upright" };

function PhoTweaks() {
  const [t, setTweak] = useTweaks(PY_DEFAULTS);

  React.useEffect(() => {
    const root = document.documentElement;
    root.setAttribute('data-theme', PY_THEME_MAP[t.theme] || 'broth');
    root.setAttribute('data-type', PY_TYPE_MAP[t.headline] || 'italic');
    root.setAttribute('data-accent', t.accents ? 'on' : 'off');
    if (t.grain) root.style.removeProperty('--grain');
    else root.style.setProperty('--grain', '0');
  }, [t.theme, t.headline, t.accents, t.grain]);

  return (
    <TweaksPanel title="Tweaks">
      <TweakSection label="Palette" />
      <TweakRadio
        label="Theme"
        value={t.theme}
        options={["Broth cream", "Night service"]}
        onChange={(v) => setTweak('theme', v)}
      />
      <TweakToggle
        label="Basil + amber accents"
        value={t.accents}
        onChange={(v) => setTweak('accents', v)}
      />

      <TweakSection label="Type" />
      <TweakRadio
        label="Headline"
        value={t.headline}
        options={["Italic", "Upright"]}
        onChange={(v) => setTweak('headline', v)}
      />

      <TweakSection label="Texture" />
      <TweakToggle
        label="Film grain"
        value={t.grain}
        onChange={(v) => setTweak('grain', v)}
      />
    </TweaksPanel>
  );
}

ReactDOM.createRoot(document.getElementById('tweaks-root')).render(<PhoTweaks />);
