/* ============================================================ Manigod Kids Club — feature sections SeasonExplorer (Saisons), TarifsView, GalleryView (+lightbox), ContactView. Depends on core.jsx + data.jsx + sections-common.jsx. ============================================================ */ const { useState: uS2, useEffect: uE2 } = React; /* ==================================================== SAISONS — explorer with switch, age groups, activities, ESF ==================================================== */ function ActPhoto({ act, idx }) { return (
{act.photo ? :
}
{String(idx + 1).padStart(2, "0")}

{_T(act.t)}

{_T(act.desc)}

); } function SeasonExplorer() { // Été prioritaire : la page Saisons s'ouvre toujours sur l'été au // chargement / rechargement (l'utilisateur bascule ensuite via le switch). const [season, setSeason] = uS2("ete"); const S = SEASONS[season]; const ink = season === "hiver"; let n = 0; // Hiver = green ambiance on the whole Saisons page uE2(() => { const app = document.querySelector(".mkc-app"); if (app) app.setAttribute("data-saison", season); return () => {if (app) app.removeAttribute("data-saison");}; }, [season]); const bannerClass = "mkc-showcase__hero mkc-showcase__hero--pict mkc-showcase__hero--banner mkc-showcase__hero--" + season + (ink ? " mkc-showcase__hero--onink" : ""); return ( <> {/* season banner + switch */}
{_T(S.hero.sub)}

{_T(S.hero.title)}

{_T(S.hero.lead)}

{/* age groups + activities */}
{S.groups.map((g) =>
{_T(S.label)} · {_T(g.age)} {g.titleSvg ? {_T(g.name)} :

{_T(g.name)}

}

{_T(g.sub)}

{_T(g.age)}
{g.acts.map((a) => )}
{season === "ete" && {_T("Crédit photo : Cathy Cohendet")} }
)} {season === "hiver" && ESF
{_T("Collaboration ESF")}

{_T("Une liaison fluide avec l'École du Ski Français")}

{_T("Prise en charge des enfants directement entre le Manigod Kids Club et les activités ESF — nous assurons l'accueil avant et après les cours de ski, sans transition à gérer pour vous.")}

{_T("Ski")} {_T("Snowboard")} {_T("Activités encadrées")}
} {season === "ete" &&
{_T("Encadrement")}

{_T("Un cadre naturel, familial et sécurisé")}

{_T("Chaque groupe est suivi par une équipe dédiée. Les activités sont adaptées à l'âge des enfants, avec un vrai temps pour observer, jouer et découvrir la montagne à leur rythme.")}

}
); } /* ==================================================== JOURNÉE TYPE (Saisons) — timeline par groupe d'âge ==================================================== */ function JourneeStep({ s }) { return (
{s.time}
{s.txt.map((t, i) =>

{_T(t)}

)}
); } function JourneeGroup({ g, hideName, inkCard }) { return (
{_T("Journée type")}{hideName ? "" : " · " + _T(g.age)} {hideName ?

{_T(g.age)}

: {_T(g.title)}}

{_T(g.sub)}

{!hideName && {_T(g.age)}}
{g.steps.map((s, i) => )}
); } function JourneeType({ season }) { const hideName = season === "hiver"; const inkCard = season === "ete"; return (
{JOURNEES.map((g) => )}
); } /* ==================================================== TARIFS ==================================================== */ function TarifCard({ t, book, season }) { const feat = t.feat; return (

{_T(t.t)}

{_T(t.d)}

{t.p}
); } function ResidentInfo() { return (
{_T("Résident de Manigod\u00a0?")}

{_T("Vous avez droit à une réduction.")}

{_T("Inutile de payer à l'avance\u00a0: contactez-nous et nous appliquons la réduction ensuite.")}

{_T("Nous contacter")}
); } function AccueilPonctuel() { return (
{_T("Option flexible · sans réservation")}

{_T("Besoin de quelques heures pour vous\u00a0?")}

{_T("Déposez votre enfant au Kids Club pour une courte durée, selon les disponibilités. Paiement sur place, selon le temps d'accueil.")}

{_T("Demander une disponibilité")}
); } function TarifsView({ book }) { const [season, setSeason] = uS2("hiver"); const S = TARIFS_BY_SEASON[season]; const six = S.plans.length > 3; const ink = season === "hiver"; // mirror the Saisons page: the switch changes the whole page ambiance uE2(() => { const app = document.querySelector(".mkc-app"); if (app) app.setAttribute("data-saison", season); return () => { if (app) app.removeAttribute("data-saison"); }; }, [season]); return (
{window.tx("Saison " + S.label, (season === "ete" ? "Summer" : "Winter") + " season")}
{_T(S.period)}
{_T(S.note)}
{S.plans.map((t) => )}
{TARIF_PERKS.map((p, i) =>

{_T(p.h)}

{_T(p.p)}

)}
); } /* ==================================================== GALERIE + LIGHTBOX ==================================================== */ function GalleryView() { const [season, setSeason] = uS2("ete"); const [box, setBox] = uS2(-1); const items = GALLERY[season]; const isEte = season === "ete"; const ink = season === "hiver"; // mirror the Saisons page: the switch changes the whole page ambiance uE2(() => { const app = document.querySelector(".mkc-app"); if (app) app.setAttribute("data-saison", season); return () => { if (app) app.removeAttribute("data-saison"); }; }, [season]); uE2(() => { if (box < 0) return; const k = (e) => { if (e.key === "Escape") setBox(-1);else if (e.key === "ArrowRight") setBox((b) => (b + 1) % items.length);else if (e.key === "ArrowLeft") setBox((b) => (b - 1 + items.length) % items.length); }; window.addEventListener("keydown", k); return () => window.removeEventListener("keydown", k); }, [box, items.length]); return ( <>
{!isEte &&

{_T("Illustrations de la saison hiver en attendant vos photos réelles — mises à jour dès qu'elles sont disponibles.")}

}
{items.map((it, i) => setBox(i)} aria-label={window.tx("Agrandir : " + it.cap, "Enlarge: " + _T(it.cap))}> {_T(it.cap)} {_T(it.cap)} )}
{isEte && {_T("Crédit photo : Cathy Cohendet")} }
{box >= 0 &&
setBox(-1)} role="dialog" aria-modal="true"> {_T(items[box].cap)} e.stopPropagation()} />
{_T(items[box].cap)} · {box + 1} / {items.length}
} ); } /* ==================================================== CONTACT ==================================================== */ function ContactView({ sent }) { return (
+33 6 13 94 45 09 contact@manigodkidsclub.com 7082 Route du Col de la Croix Fry, 74230 Manigod
{_T("On est juste ici")}
{e.preventDefault();sent && sent();}}>

{_T("Écrivez-nous")}

{_T("On revient vers vous rapidement.")}

); } Object.assign(window, { SeasonExplorer, JourneeType, JourneeGroup, JourneeStep, TarifsView, AccueilPonctuel, GalleryView, ContactView, ActPhoto, TarifCard, ResidentInfo });