/* ============================================================
   app.jsx — assembles sections + Tweaks panel
   ============================================================ */

const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "heroVariant": "split",
  "mood": "creme",
  "scriptHeadings": false
}/*EDITMODE-END*/;

const MOODS = [
  { value: 'creme', label: 'Creme & Guld — klassisk, varm' },
  { value: 'pastel', label: 'Pastel Hygge — blød, lyserød' },
  { value: 'vanilje', label: 'Varm Vanilje — gylden, karamel' },
];

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

  // apply mood theme to <body> so CSS vars reach nav, body bg & footer
  useEffect(() => {
    document.body.classList.remove('theme-creme', 'theme-pastel', 'theme-vanilje');
    document.body.classList.add('theme-' + t.mood);
  }, [t.mood]);

  // optional: script-style section headings
  useEffect(() => {
    document.body.classList.toggle('script-headings', !!t.scriptHeadings);
  }, [t.scriptHeadings]);

  return (
    <React.Fragment>
      <Nav />
      <main>
        <Hero variant={t.heroVariant} />
        <About />
        <Products />
        <EventFreezer />
        <Gallery />
        <Jobs />
        <Contact />
      </main>
      <Footer />

      <TweaksPanel>
        <TweakSection label="Hero-sektion" />
        <TweakRadio
          label="Layout"
          value={t.heroVariant}
          options={['centreret', 'split', 'fuldt']}
          onChange={(v) => setTweak('heroVariant', v)}
        />
        <p style={{ fontSize: 12, color: '#8a7a68', margin: '2px 2px 0', lineHeight: 1.4 }}>
          Centreret = logo i midten · Split = tekst + foto · Fuldt = stort billede
        </p>

        <TweakSection label="Farve & stemning" />
        <TweakSelect
          label="Tema"
          value={t.mood}
          options={MOODS}
          onChange={(v) => setTweak('mood', v)}
        />

        <TweakSection label="Detaljer" />
        <TweakToggle
          label="Script-overskrifter"
          value={t.scriptHeadings}
          onChange={(v) => setTweak('scriptHeadings', v)}
        />
      </TweaksPanel>
    </React.Fragment>
  );
}

ReactDOM.createRoot(document.getElementById('root')).render(<App />);
