/* Tweaks island — applies live changes to the plain-HTML landing page. Mounts only the panel; mutates document via CSS vars + classes + hero API. */ const { useEffect } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "#C22F1A", "heroMode": "slider", "density": "regular" }/*EDITMODE-END*/; // accent base -> [hover, active, soft] const ACCENTS = { "#C22F1A": ["#A82614", "#8C1D0F", "#FBEAE6"], // vintage red (default) "#D6402A": ["#B0250F", "#971F0C", "#FBEAE6"], // bright orange-red "#1B7A47": ["#15663A", "#0F5630", "#E7F3EC"], // forest green "#13648F": ["#0E4E72", "#0A3D5A", "#EAF3F9"] // brand blue }; function applyAccent(base) { var trio = ACCENTS[base] || [base, base, "#FBEAE6"]; var r = document.documentElement; r.style.setProperty('--accent', base); r.style.setProperty('--accent-hover', trio[0]); r.style.setProperty('--accent-active', trio[1]); r.style.setProperty('--accent-soft', trio[2]); } function applyDensity(d) { document.body.classList.remove('density-compact', 'density-regular', 'density-comfy'); document.body.classList.add('density-' + d); } function applyHero(mode) { if (window.__setHeroMode) window.__setHeroMode(mode); } function App() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); useEffect(() => { applyAccent(t.accent); }, [t.accent]); useEffect(() => { applyDensity(t.density); }, [t.density]); useEffect(() => { applyHero(t.heroMode); }, [t.heroMode]); return ( setTweak('accent', v)} /> setTweak('heroMode', v)} /> setTweak('density', v)} /> ); } ReactDOM.createRoot(document.getElementById('tweaksRoot')).render();