/* AgroPerfect — Tweaks panel app (controls the static homepage via CSS vars + DOM) */ const { useTweaks, TweaksPanel, TweakSection, TweakSlider, TweakToggle, TweakRadio, TweakSelect, TweakColor } = window; const HERO_IMAGES = { 'Field rows': 'https://images.pexels.com/photos/974314/pexels-photo-974314.jpeg?auto=compress&cs=tinysrgb&w=1900', 'Rice terraces': 'https://images.pexels.com/photos/1081912/pexels-photo-1081912.jpeg?auto=compress&cs=tinysrgb&w=1900', 'Tractor at harvest':'https://images.pexels.com/photos/2933243/pexels-photo-2933243.jpeg?auto=compress&cs=tinysrgb&w=1900', }; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": ["#B9D432", "#CDE05A"], "green": ["#2B5D99", "#234C7E", "#16314F"], "headlineFont": "Spectral", "heroImage": "Field rows", "heroAlign": "left", "scrim": 82, "reveals": true }/*EDITMODE-END*/; function App() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); React.useEffect(() => { const root = document.documentElement; // Accent (gold + soft) if (Array.isArray(t.accent)) { root.style.setProperty('--gold', t.accent[0]); root.style.setProperty('--gold-soft', t.accent[1] || t.accent[0]); } // Brand green if (Array.isArray(t.green)) { root.style.setProperty('--forest', t.green[0]); root.style.setProperty('--forest-deep', t.green[1] || t.green[0]); root.style.setProperty('--forest-night', t.green[2] || t.green[1] || t.green[0]); } // Headline typeface root.style.setProperty('--font-display', `'${t.headlineFont}', Georgia, serif`); // Hero image const heroBg = document.getElementById('heroBg'); if (heroBg && HERO_IMAGES[t.heroImage]) { heroBg.style.backgroundImage = `url('${HERO_IMAGES[t.heroImage]}')`; } // Hero alignment const hero = document.querySelector('.hero'); if (hero) hero.classList.toggle('hero--center', t.heroAlign === 'center'); // Scrim darkness const scrim = document.getElementById('heroScrim'); if (scrim) scrim.style.opacity = (t.scrim / 100).toFixed(2); // Reveal animations document.body.classList.toggle('reveals-off', !t.reveals); }, [t]); return ( setTweak('accent', v)} /> setTweak('green', v)} /> setTweak('headlineFont', v)} /> setTweak('heroImage', v)} /> setTweak('heroAlign', v)} /> setTweak('scrim', v)} /> setTweak('reveals', v)} /> ); } ReactDOM.createRoot(document.getElementById('tweaks-root')).render();