/* ============================================================
MenuOverlay — full-screen navigation (AIR меню.PNG pattern)
Floating chrome + centred grey panel:
· left : big primary nav + small secondary list (bottom)
· right : two stacked CTA cells split by a hairline
============================================================ */
/* small grey "+" cell button (the AIR expand square) */
function PlusSquare({ onClick }) {
const [hover, setHover] = React.useState(false);
return (
);
}
/* one big primary nav line */
function NavLine({ label, onClick }) {
const [hover, setHover] = React.useState(false);
return (
);
}
/* one small secondary nav line */
function SubLine({ label, onClick }) {
const [hover, setHover] = React.useState(false);
return (
);
}
/* red YouTube play-button mark (lucide build lacks a youtube glyph) */
function YouTubeMark({ size = 18 }) {
return (
);
}
/* right-column CTA cell: label top-left, plus square bottom-right */
function CtaCell({ label, onClick, divider, icon, iconColor }) {
return (
);
}
function MenuOverlay({ open, onClose, onNav, onContact }) {
const { t } = useT();
const go = (id) => { onNav(id); onClose(); };
const goPage = (url) => { window.location.href = url; };
const openExt = (url) => { window.open(url, "_blank", "noopener"); onClose(); };
const CH = window.CHANNELS || {};
const primary = [
{ label: t("menu.story"), page: "about.html" },
{ label: t("menu.program"), page: "course.html" },
{ label: t("menu.pricing"), id: "pricing" },
{ label: t("menu.results"), id: "results" },
{ label: t("menu.channels"), id: "contact" },
];
const secondary = [
{ label: t("menu.webinarFree"), page: "webinar.html" },
{ label: t("common.enrollPay"), page: "enroll.html" },
];
return (
{/* ambient greyscale form bleeding from the right edge */}
{/* floating chrome (matches Header; menu → close) */}
{t("brand")}
goPage("course.html#enroll")}>{t("common.enroll")}
{/* centred panel */}
{/* ambient smoke inside the panel */}
{/* left column */}
{primary.map((it) => it.page ? goPage(it.page) : go(it.id)} />)}
{secondary.map((it) => it.page ? goPage(it.page) : go(it.id)} />)}
{/* right column — two CTA cells */}
openExt(CH.youtube || "#")} />
openExt(CH.telegramOpen || "#")} divider />
goPage("secret.html")} divider />
);
}
Object.assign(window, { MenuOverlay });