// Tweaks panel for the hi-fi hybrid mockup.
// Lets the user swap display type, gallery layout, ornament density, and accent emphasis.

const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "display": "playfair",
  "gallery": "masonry",
  "decoration": "on",
  "emphasis": "duo"
}/*EDITMODE-END*/;

const HOST = document.documentElement;

function TweaksApp() {
  const [t, setTweak] = useTweaks(TWEAK_DEFAULTS);

  // Mirror state to data-* attributes on <html> so CSS picks it up.
  React.useEffect(() => {
    Object.entries(t).forEach(([k, v]) => HOST.setAttribute('data-' + k, v));
  }, [t]);

  return (
    <TweaksPanel title="Tweaks">
      <TweakSection label="Display type">
        <TweakRadio
          label="Font"
          value={t.display}
          onChange={(v) => setTweak('display', v)}
          options={[
            { value: 'playfair', label: 'Playfair' },
            { value: 'dmserif',  label: 'DM Serif' },
            { value: 'oswald',   label: 'Oswald' },
            { value: 'bebas',    label: 'Bebas' },
          ]}
        />
      </TweakSection>

      <TweakSection label="Hero accent">
        <TweakRadio
          label="Color"
          value={t.emphasis}
          onChange={(v) => setTweak('emphasis', v)}
          options={[
            { value: 'duo',   label: 'Red + Green' },
            { value: 'red',   label: 'All Red' },
            { value: 'green', label: 'Green-led' },
          ]}
        />
      </TweakSection>

      <TweakSection label="Gallery layout">
        <TweakRadio
          label="Style"
          value={t.gallery}
          onChange={(v) => setTweak('gallery', v)}
          options={[
            { value: 'masonry', label: 'Masonry' },
            { value: 'grid',    label: 'Even grid' },
          ]}
        />
      </TweakSection>

      <TweakSection label="Ornament">
        <TweakRadio
          label="Greca"
          value={t.decoration}
          onChange={(v) => setTweak('decoration', v)}
          options={[
            { value: 'on',  label: 'On' },
            { value: 'off', label: 'Off' },
          ]}
        />
      </TweakSection>
    </TweaksPanel>
  );
}

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