/* UI atoms: Logo, Nav, Footer, CtaBand, PressStrip, Process, Lightbox, etc. */
const Logo = ({ dark=false, size=28 }) => (
);
const LogoFull = ({ size = 28 }) => (
window.__nav && window.__nav("home")}>
EVENTCHIC
);
const ArrowRight = ({ size=16 }) => (
);
const Nav = ({ route, setRoute, lang, setLang, scrolled, tone="dark" }) => {
const t = COPY[lang];
const items = [
{ id:"portfolio", lbl:t.nav.portfolio },
{ id:"services", lbl:t.nav.services },
{ id:"about", lbl:t.nav.about },
{ id:"contact", lbl:t.nav.contact },
];
return (
);
};
const PressStrip = ({ lang }) => {
const t = COPY[lang];
return (
{t.press.label}
Fact Magazines
Bride Club ME
Caterer Middle East
Permissioned mentions — please confirm publication rights before launch.
);
};
const Process = ({ lang, dark=false }) => {
const t = COPY[lang];
return (
{t.process.eyebrow}
{t.process.title}
{t.process.lede}
{t.process.steps.map((s,i)=>(
{s.num} · Phase
{s.nm}
{s.ds}
))}
);
};
const CtaBand = ({ lang, setRoute }) => {
const t = COPY[lang];
return (
{t.cta_band.title.split('.')[0]}
{t.cta_band.title}
{t.cta_band.body}
);
};
const Footer = ({ lang, setRoute }) => {
const t = COPY[lang];
return (
);
};
const Lightbox = ({ images, index, onClose, onPrev, onNext }) => {
React.useEffect(() => {
const h = (e) => {
if (e.key === "Escape") onClose();
if (e.key === "ArrowLeft") onPrev();
if (e.key === "ArrowRight") onNext();
};
window.addEventListener("keydown", h);
return () => window.removeEventListener("keydown", h);
}, [onClose, onPrev, onNext]);
return (

e.stopPropagation()}/>
);
};
Object.assign(window, { Logo, LogoFull, Nav, PressStrip, Process, CtaBand, Footer, Lightbox, ArrowRight });