// Main app — Tweaks panel + page assembly const { TweaksPanel, useTweaks, TweakSection, TweakColor, TweakToggle, TweakRadio } = window; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accentHue": 30, "darkMode": false, "showGrain": true }/*EDITMODE-END*/; function App() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); React.useEffect(() => { const root = document.documentElement; root.style.setProperty('--accent', `oklch(0.62 0.18 ${t.accentHue})`); root.style.setProperty('--accent-soft', `oklch(0.62 0.18 ${t.accentHue} / 0.10)`); root.style.setProperty('--accent-line', `oklch(0.62 0.18 ${t.accentHue} / 0.25)`); root.style.setProperty('--accent-deep', `oklch(0.45 0.16 ${t.accentHue})`); root.dataset.theme = t.darkMode ? 'dark' : 'light'; }, [t]); const { Nav, Hero, StatsBar, Features, Steps, Payment, Pricing, Testimonials, FinalCTA, Footer } = window; return ( <> setTweak('darkMode', v)} /> setTweak('accentHue', +e.target.value)} style={{ width: '100%' }} /> hue: {t.accentHue}° {[20, 30, 60, 140, 220, 280].map(h => ( setTweak('accentHue', h)} style={{ width: 16, height: 16, borderRadius: 999, border: t.accentHue === h ? '2px solid #000' : '1px solid #ccc', background: `oklch(0.62 0.18 ${h})`, cursor: 'pointer', padding: 0, }} /> ))} > ); } ReactDOM.createRoot(document.getElementById('root')).render();