/* ===== Growing Now — app root + tweaks ===== */ (function () { const { useState, useEffect } = React; const { useTweaks, TweaksPanel, TweakSection, TweakRadio } = window; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "cards": "retrato", "bg": "blobs", "font": "redondeada" }/*EDITMODE-END*/; const FONTS = { redondeada: { d: "'Fredoka'", b: "'Nunito'" }, suave: { d: "'Baloo 2'", b: "'Mulish'" }, geometrica: { d: "'Quicksand'", b: "'Karla'" }, }; function App() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); const [lang, setLangState] = useState(window.I18N.detectLang()); const setLang = (l) => { setLangState(l); window.I18N.setLang(l); }; const L = window.I18N.STR[lang]; const [agent, setAgent] = useState(null); const [chatAgent, setChatAgent] = useState(null); const [contactOpen, setContactOpen] = useState(false); const [chatSignal, setChatSignal] = useState(0); const openChat = () => setChatSignal(s => s + 1); const openAgentChat = (a) => { setAgent(null); setChatAgent(a); }; useEffect(() => { const f = FONTS[t.font] || FONTS.redondeada; document.documentElement.style.setProperty('--font-display', f.d + ", system-ui, sans-serif"); document.documentElement.style.setProperty('--font-body', f.b + ", system-ui, sans-serif"); }, [t.font]); useEffect(() => { document.documentElement.lang = lang; }, [lang]); return ( <> setContactOpen(true)} onChat={openChat} /> {agent && setAgent(null)} onChat={openChat} onAgentChat={openAgentChat} />} {chatAgent && setChatAgent(null)} />} {contactOpen && setContactOpen(false)} onChat={openChat} />} setTweak('cards', v)} /> setTweak('bg', v)} /> setTweak('font', v)} /> ); } window.GNApp = App; })();