// Shared shell: Nav + ACCENTS + useTweaks — included by every page const ACCENTS = { editorial: ["#416EE2","#0E6B3E","#16A34A","#0E0E0E","#D93B1E"], terminal: ["#7AA0FF","#B6FF3C","#9BFFB0","#FF9340","#E7E7E3"], refined: ["#416EE2","#0E6B3E","#16A34A","#8B2D8B","#0B1220"], }; function Nav({ audience, setAudience, current }){ const [menuOpen, setMenuOpen] = React.useState(false); const links = [ { h:"/", l:"Home", k:"home" }, { h:"/companies", l:"Companies", k:"companies" }, { h:"/sales-reps", l:"Sales reps", k:"reps" }, { h:"/verification", l:"Verification", k:"verify" }, { h:"/pricing", l:"Pricing", k:"pricing" }, { h:"/contact", l:"Contact", k:"contact" }, ]; React.useEffect(() => { const handler = () => { if (window.innerWidth > 768) setMenuOpen(false); }; window.addEventListener("resize", handler); return () => window.removeEventListener("resize", handler); }, []); return ( ); } function useTweaks(){ const T = window.__TWEAKS__ || {}; const [dir, setDir] = React.useState(T.direction || "editorial"); const [accent, setAccent] = React.useState(T.accent || "#416EE2"); const persist = (edits) => window.parent.postMessage({type:"__edit_mode_set_keys", edits}, "*"); React.useEffect(()=>{ document.documentElement.setAttribute("data-dir", dir); const a = ACCENTS[dir][0]; setAccent(a); document.documentElement.style.setProperty("--accent", a); }, [dir]); React.useEffect(()=>{ document.documentElement.style.setProperty("--accent", accent); }, [accent]); React.useEffect(()=>{ const handler = (e)=>{ if(!e.data || typeof e.data !== "object") return; if(e.data.type === "__activate_edit_mode") document.getElementById("tweaksPanel")?.classList.add("on"); if(e.data.type === "__deactivate_edit_mode") document.getElementById("tweaksPanel")?.classList.remove("on"); }; window.addEventListener("message", handler); window.parent.postMessage({type:"__edit_mode_available"}, "*"); return ()=>window.removeEventListener("message", handler); }, []); React.useEffect(()=>{ const dirBtns = document.querySelectorAll("#dirBtns button"); dirBtns.forEach(b=>{ b.setAttribute("aria-pressed", b.dataset.dir === dir); b.onclick = ()=>{ setDir(b.dataset.dir); persist({direction: b.dataset.dir, accent: ACCENTS[b.dataset.dir][0]}); }; }); const swWrap = document.getElementById("swatches"); if(swWrap){ swWrap.innerHTML = ""; ACCENTS[dir].forEach(c=>{ const btn = document.createElement("button"); btn.style.background = c; btn.setAttribute("aria-pressed", c === accent); btn.onclick = ()=>{ setAccent(c); persist({accent: c}); }; swWrap.appendChild(btn); }); } }); return { dir, accent, persist }; } Object.assign(window, { Nav, useTweaks, ACCENTS });