/* 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();