/* global React, ReactDOM, TweaksPanel, TweakSection, TweakRadio, TweakToggle, TweakSlider, useTweaks */ const { useEffect } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "audience": "both", "heroVariant": "stacked", "density": "spacious", "animation": "full", "showMarquee": true, "showStats": true, "cursor": true, "accent": "gold" }/*EDITMODE-END*/; function TweaksApp() { const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS); useEffect(() => { document.body.dataset.density = tweaks.density; document.body.dataset.audience = tweaks.audience; document.body.dataset.hero = tweaks.heroVariant; document.body.dataset.animation = tweaks.animation; document.body.classList.toggle('no-cursor', !tweaks.cursor); // section visibility document.querySelectorAll('[data-aud]').forEach(el => { const aud = el.dataset.aud; el.style.display = (tweaks.audience === 'both' || tweaks.audience === aud) ? '' : 'none'; }); const marq = document.querySelector('.marq'); if (marq) marq.style.display = tweaks.showMarquee ? '' : 'none'; const stats = document.querySelector('#stats-band'); if (stats) stats.style.display = tweaks.showStats ? '' : 'none'; }, [tweaks]); return ( setTweak('audience', v)} /> setTweak('heroVariant', v)} /> setTweak('density', v)} /> setTweak('animation', v)} /> setTweak('cursor', v)} /> setTweak('showMarquee', v)} /> setTweak('showStats', v)} /> ); } ReactDOM.createRoot(document.getElementById('tweaks-root')).render();