// desidium-sections-a.jsx — Nav, Hero, Divisions, Why const { useState: useStateA, useEffect: useEffectA } = React; /* ---------------- NAV ---------------- */ function Nav({ lang, setLang, scrolled, go, open, setOpen }) { const n = I18N.nav; const items = [["roster","#roster"],["studio","#studio"],["cases","#cases"],["journal","route:journal"],["contact","#contact"],["join","route:join"]]; return ( {e.preventDefault();go("#top");}}>DESIDIUM {items.map(([k,href]) => ( {e.preventDefault();go(href);}}>{L(n[k],lang)} ))} setLang(lang==="en"?"es":"en")}> EN / ES setOpen(!open)} aria-label="Menu"> ); } /* ---------------- HERO ---------------- */ function Hero({ lang, go }) { const h = I18N.hero; const [loaded, setLoaded] = useStateA(false); useEffectA(() => { const t = setTimeout(()=>setLoaded(true), 80); return ()=>clearTimeout(t); }, []); return ( {L(h.reel,lang)} {L(h.kicker,lang)} {L(h.line1,lang)} {L(h.line2a,lang)}{L(h.line2b,lang)} {L(h.sub,lang)} go("#roster")}>{L(h.cta,lang)} → go("#studio")}> {L(h.scroll,lang)} ); } /* ---------------- DIVISIONS ---------------- */ function Divisions({ lang, motion }) { const d = I18N.divisions; return ( {L(d.label,lang)} {L(d.title,lang)} {d.items.map((it, i) => ( {it.no} {L(it.kicker,lang)} {L(it.name,lang)} {L(it.body,lang)} {it.services.map((s, j) => ( {String(j+1).padStart(2,"0")} {L(s,lang)} ))} ))} ); } /* ---------------- WHY ---------------- */ function Why({ lang, motion }) { const w = I18N.why; return ( {L(w.label,lang)} {w.items.map((it, i) => ( {it.no} {L(it.t,lang)} {L(it.d,lang)} ))} ); } Object.assign(window, { Nav, Hero, Divisions, Why });
{L(h.sub,lang)}
{L(it.body,lang)}
{L(it.d,lang)}