{"version":3,"file":"CalendlyAuto.Dfa1fNql.mjs","names":["useState","useRef","useState"],"sources":["https:/framerusercontent.com/modules/cGNCEPYNVKkBUHSxDTaJ/FZ7en9owbhz6qrAEL30j/BarreReservation_1.js","https:/framerusercontent.com/modules/5FZm1GyvOeoLHC8FDQoz/YTcbe0PItDgYHlBq8GMw/CalendlyAuto.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";// Barre « Je réserve un audit gratuit » collée en bas de l'écran sur téléphone (refonte du 19 octobre 2026).\n// Cachée en haut de page (le bouton du haut est déjà là), quand un agenda est à l'écran et tout en bas.\n// Composant autonome (pas un override) : le rendu serveur et le rendu navigateur sont identiques,\n// donc aucun avertissement « server/client mismatch ».\n// 20 octobre 2026 : version claire (pages /audit) et option « agenda le plus proche » pour les pages\n// qui ont 2 agendas : le bouton descend (ou remonte) vers celui qui demande le moins de chemin.\nconst CSS=`\n.brz{position:relative;width:100%;box-sizing:border-box;padding:10px 14px 16px 14px;background:#172B12;box-shadow:0 -12px 30px rgba(0,0,0,.45),inset 0 1px 0 #355E2A;transform:translateY(150%);opacity:0;pointer-events:none;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s ease}\n.brz.clair{background:#FFFFFF;box-shadow:0 -10px 28px rgba(15,29,12,.10),inset 0 1px 0 rgba(15,29,12,.12)}\n.brz.on{transform:none;opacity:1;pointer-events:auto}\n.brz a{display:flex;align-items:center;justify-content:center;width:100%;box-sizing:border-box;padding:14px 16px;border-radius:11px;background:#2EE203;color:#0F1D0C;font-family:'Hanken Grotesk',system-ui,sans-serif;font-weight:700;font-size:17px;line-height:1.2;letter-spacing:-0.02em;text-decoration:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.35);-webkit-tap-highlight-color:transparent}\n.brz a:active{opacity:.86}\n@media (prefers-reduced-motion:reduce){.brz{transition:none}}\n`;// Les agendas de la page : le composant CalendlyAuto porte data-agenda, et la section #prendre-rendez-vous de l'accueil.\n// On ne garde que ceux affichés sur l'écran en cours (Framer garde dans la page les calques des autres écrans).\nfunction agendas(){if(typeof document===\"undefined\")return[];const els=Array.from(document.querySelectorAll(\"[data-agenda], #prendre-rendez-vous\"));return els.filter(el=>el.isConnected&&el.getClientRects().length>0);}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight auto\n */export default function BarreReservation(props){const{lien=\"#prendre-rendez-vous\",texte=\"Je r\\xe9serve un audit gratuit\",theme=\"sombre\",versAgenda=false}=props;const[on,setOn]=useState(false);useEffect(()=>{if(typeof window===\"undefined\")return;let attente=0;const maj=()=>{attente=0;const y=window.scrollY;const vh=window.innerHeight;const bas=y+vh>document.documentElement.scrollHeight-380;const agendaVu=agendas().some(el=>{const r=el.getBoundingClientRect();return r.bottom>0&&r.top<vh;});setOn(y>560&&!agendaVu&&!bas);};const demander=()=>{if(!attente)attente=requestAnimationFrame(maj);};window.addEventListener(\"scroll\",demander,{passive:true});window.addEventListener(\"resize\",demander,{passive:true});maj();return()=>{window.removeEventListener(\"scroll\",demander);window.removeEventListener(\"resize\",demander);if(attente)cancelAnimationFrame(attente);};},[]);const clic=e=>{if(typeof window===\"undefined\")return;if(versAgenda){// L'agenda qui demande le moins de chemin, avec un peu de marge pour voir le titre au-dessus\nconst marge=100;const proche=agendas().map(el=>({el,d:el.getBoundingClientRect().top-marge})).sort((a,b)=>Math.abs(a.d)-Math.abs(b.d))[0];if(proche){e.preventDefault();window.scrollTo({top:window.scrollY+proche.d,behavior:\"smooth\"});return;}}const i=lien.indexOf(\"#\");if(i<0)return;const chemin=lien.slice(0,i);if(chemin&&chemin!==window.location.pathname)return;const cible=document.getElementById(decodeURIComponent(lien.slice(i+1)));if(!cible)return;e.preventDefault();cible.scrollIntoView({behavior:\"smooth\",block:\"start\"});history.replaceState(null,\"\",lien.slice(i));};return /*#__PURE__*/_jsxs(\"div\",{className:\"brz\"+(theme===\"clair\"?\" clair\":\"\")+(on?\" on\":\"\"),style:props.style,children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:CSS}}),/*#__PURE__*/_jsx(\"a\",{href:lien,onClick:clic,children:texte})]});}addPropertyControls(BarreReservation,{lien:{type:ControlType.String,title:\"Lien\",defaultValue:\"#prendre-rendez-vous\"},texte:{type:ControlType.String,title:\"Texte\",defaultValue:\"Je r\\xe9serve un audit gratuit\"},theme:{type:ControlType.Enum,title:\"Th\\xe8me\",options:[\"sombre\",\"clair\"],optionTitles:[\"Sombre\",\"Clair\"],defaultValue:\"sombre\"},versAgenda:{type:ControlType.Boolean,title:\"Agenda le plus proche\",defaultValue:false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BarreReservation\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BarreReservation_1.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef,useState}from\"react\";const UTM_KEYS=[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_content\",\"utm_term\"];const ANCRE=\"prendre-rendez-vous\";// Ouvre la connexion vers Calendly en avance (DNS + TLS), sans rien charger d'autre\nfunction preconnecter(){if(typeof document===\"undefined\")return;for(const href of[\"https://calendly.com\",\"https://assets.calendly.com\"]){if(document.head.querySelector(`link[rel=\"preconnect\"][href=\"${href}\"]`))continue;const link=document.createElement(\"link\");link.rel=\"preconnect\";link.href=href;link.crossOrigin=\"anonymous\";document.head.appendChild(link);}}// Silhouette de l'agenda pendant son chargement (refonte du 19 octobre 2026) : même forme que la carte\n// Calendly, qui respire doucement. L'attente paraît plus courte au moment de réserver.\nconst SK_CSS=`\n.ca-sk{position:absolute;inset:0;display:flex;justify-content:center;align-items:flex-start;padding:8px 0;font-family:inherit}\n.ca-card{width:100%;max-width:820px;min-height:560px;background:#fff;border:1px solid #E4E8E1;border-radius:10px;display:grid;grid-template-columns:40% 60%;overflow:hidden;box-shadow:0 1px 8px rgba(0,0,0,.08)}\n.ca-gauche{padding:28px 26px;border-right:1px solid #EDF0EA;display:flex;flex-direction:column;gap:10px}\n.ca-droite{padding:28px 30px;display:flex;flex-direction:column;align-items:stretch}\n.ca-b{display:block;border-radius:6px;background:#EDF1EA;animation:ca-respire 1.5s ease-in-out infinite alternate}\n.ca-rond{width:64px;height:64px;border-radius:50%;margin-bottom:6px}\n.ca-grille{display:grid;grid-template-columns:repeat(7,1fr);gap:12px 10px;justify-items:center}\n.ca-j{display:block;width:34px;height:34px;border-radius:50%;background:#F2F4F0;animation:ca-respire 1.5s ease-in-out infinite alternate}\n.ca-j.ca-dispo{background:#E3F7DC}\n.ca-txt{margin-top:26px;text-align:center;font-size:13px;color:#7A8574}\n@keyframes ca-respire{from{opacity:.55}to{opacity:1}}\n@media (max-width:700px){.ca-card{grid-template-columns:1fr;min-height:0}.ca-gauche{border-right:0;border-bottom:1px solid #EDF0EA;padding:20px}.ca-droite{padding:20px 14px}.ca-j{width:30px;height:30px}}\n@media (prefers-reduced-motion:reduce){.ca-b,.ca-j{animation:none}}\n`;// Page où part le visiteur après sa réservation (24 octobre 2026). Calendly ne sait renvoyer que vers une seule\n// page pour tout le site, alors c'est l'agenda qui choisit : les pages Black Friday vont vers /black-friday-confirme,\n// toutes les autres (accueil, /audit, études de cas) vers /audit-confirme. Le champ « Page après réservation »\n// d'un agenda passe avant cette règle s'il est rempli.\nfunction pageApresReservation(redirection){if(redirection&&redirection.trim())return redirection.trim();const chemin=window.location.pathname||\"/\";if(chemin.startsWith(\"/black-friday\"))return\"/black-friday-confirme\";return\"/audit-confirme\";}// Réservation faite dans cet agenda : on la compte chez Meta (événement Schedule), une seule fois par visite\n// (20 octobre 2026). Rien du prospect n'est envoyé, ni nom ni email. Même verrou que le script de la page /audit,\n// donc une réservation n'est jamais comptée 2 fois, quel que soit celui des deux qui la voit en premier.\nfunction compterReservation(){const w=window;if(w.__trScheduleSent)return;w.__trScheduleSent=true;if(typeof w.fbq===\"function\")w.fbq(\"track\",\"Schedule\");}/**\n * Agenda Calendly qui prend toujours sa vraie hauteur : ni scroll interne, ni blanc en dessous.\n * Chargement : tout de suite si l'adresse contient #prendre-rendez-vous, sinon au premier geste\n * du visiteur (scroll, toucher, souris, clavier) ou quand il approche de l'agenda.\n * Rien ne se charge sans geste : la vitesse mesurée par PageSpeed ne bouge pas.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function CalendlyAuto(props){const{calendar=\"baptisteh/appel-decouverte\",minHeight=700,hideDetails=true,redirection=\"\"}=props;const frameRef=useRef(null);const[height,setHeight]=useState(minHeight);const[src,setSrc]=useState(\"\");const[pret,setPret]=useState(false);const boxRef=useRef(null);const[proche,setProche]=useState(false);// 1) Arrivée directe par le lien /#prendre-rendez-vous : on charge sans attendre\n// 2) Premier geste du visiteur : on charge en arrière-plan, l'agenda est prêt quand il arrive en bas\n// 3) Secours : le visiteur approche de l'agenda\nuseEffect(()=>{if(typeof window===\"undefined\"||proche)return;const charger=()=>setProche(true);if(window.location.hash===`#${ANCRE}`){charger();return;}const onHash=()=>{if(window.location.hash===`#${ANCRE}`)charger();};const gestes=[\"scroll\",\"pointerdown\",\"pointermove\",\"touchstart\",\"keydown\",\"wheel\"];let timer;const onGeste=()=>{preconnecter();if(timer)return;timer=setTimeout(charger,400);};gestes.forEach(g=>window.addEventListener(g,onGeste,{passive:true,once:true}));window.addEventListener(\"hashchange\",onHash);let io;const el=boxRef.current;if(el&&\"IntersectionObserver\"in window){io=new IntersectionObserver(entries=>{if(entries.some(e=>e.isIntersecting))charger();},{rootMargin:\"1200px 0px 1200px 0px\"});io.observe(el);}else{charger();}return()=>{gestes.forEach(g=>window.removeEventListener(g,onGeste));window.removeEventListener(\"hashchange\",onHash);if(timer)clearTimeout(timer);io?.disconnect();};},[proche]);useEffect(()=>{if(typeof window===\"undefined\"||!proche)return;preconnecter();const params=new URLSearchParams;params.set(\"embed_domain\",window.location.hostname||\"the-retention.io\");params.set(\"embed_type\",\"Inline\");params.set(\"hide_gdpr_banner\",\"1\");if(hideDetails)params.set(\"hide_landing_page_details\",\"1\");const current=new URLSearchParams(window.location.search);for(const key of UTM_KEYS){const value=current.get(key);if(value)params.set(key,value);}setSrc(`https://calendly.com/${calendar}?${params.toString()}`);function onMessage(event){if(!String(event.origin).includes(\"calendly.com\"))return;if(frameRef.current&&event.source!==frameRef.current.contentWindow)return;const data=event.data;if(data&&data.event===\"calendly.event_scheduled\"){compterReservation();// 0,8 s pour laisser partir l'envoi à Meta, puis la page de confirmation qui correspond à cette page\nconst cible=pageApresReservation(redirection);if(cible!==window.location.pathname)setTimeout(()=>window.location.assign(cible),800);return;}if(!data||data.event!==\"calendly.page_height\"||!data.payload)return;const next=parseInt(String(data.payload.height),10);if(!Number.isFinite(next)||next<300)return;setPret(true);setHeight(prev=>prev===next?prev:next);}window.addEventListener(\"message\",onMessage);return()=>window.removeEventListener(\"message\",onMessage);},[calendar,hideDetails,proche,redirection]);return /*#__PURE__*/_jsxs(\"div\",{ref:boxRef,\"data-agenda\":\"\",style:{...props.style,position:\"relative\",width:\"100%\",height},children:[!pret?/*#__PURE__*/_jsxs(\"div\",{className:\"ca-sk\",role:\"status\",\"aria-label\":\"Chargement de l’agenda\",children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:SK_CSS}}),/*#__PURE__*/_jsxs(\"div\",{className:\"ca-card\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"ca-gauche\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"ca-b ca-rond\"}),/*#__PURE__*/_jsx(\"i\",{className:\"ca-b\",style:{width:\"38%\",height:10}}),/*#__PURE__*/_jsx(\"i\",{className:\"ca-b\",style:{width:\"78%\",height:22}}),/*#__PURE__*/_jsx(\"i\",{className:\"ca-b\",style:{width:\"62%\",height:22}}),/*#__PURE__*/_jsx(\"i\",{className:\"ca-b\",style:{width:\"30%\",height:10,marginTop:10}}),/*#__PURE__*/_jsx(\"i\",{className:\"ca-b\",style:{width:\"70%\",height:10}}),/*#__PURE__*/_jsx(\"i\",{className:\"ca-b\",style:{width:\"86%\",height:10,marginTop:14}}),/*#__PURE__*/_jsx(\"i\",{className:\"ca-b\",style:{width:\"74%\",height:10}}),/*#__PURE__*/_jsx(\"i\",{className:\"ca-b\",style:{width:\"80%\",height:10}})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"ca-droite\",children:[/*#__PURE__*/_jsx(\"i\",{className:\"ca-b\",style:{width:\"52%\",height:18}}),/*#__PURE__*/_jsx(\"i\",{className:\"ca-b\",style:{width:\"36%\",height:12,margin:\"18px auto 22px\"}}),/*#__PURE__*/_jsx(\"div\",{className:\"ca-grille\",children:Array.from({length:35}).map((_,i)=>/*#__PURE__*/_jsx(\"i\",{className:\"ca-j\"+([8,10,11,15,16,17,18,19,22,24].includes(i)?\" ca-dispo\":\"\"),style:{animationDelay:`${i%7*.06}s`}},i))}),/*#__PURE__*/_jsx(\"span\",{className:\"ca-txt\",children:\"Chargement de l’agenda…\"})]})]})]}):null,src?/*#__PURE__*/_jsx(\"iframe\",{ref:frameRef,src:src,title:\"R\\xe9server un cr\\xe9neau\",onLoad:()=>setTimeout(()=>setPret(true),600),style:{position:\"relative\",width:\"100%\",height:\"100%\",border:0,display:\"block\",opacity:pret?1:0,transition:\"opacity 0.25s ease\"}}):null]});}addPropertyControls(CalendlyAuto,{calendar:{type:ControlType.String,title:\"Calendrier\",defaultValue:\"baptisteh/appel-decouverte\"},minHeight:{type:ControlType.Number,title:\"Hauteur de d\\xe9part\",defaultValue:700,min:300,max:1600,step:10,unit:\"px\"},hideDetails:{type:ControlType.Boolean,title:\"Cacher les d\\xe9tails\",defaultValue:true},redirection:{type:ControlType.String,title:\"Page apr\\xe8s r\\xe9servation\",defaultValue:\"\",placeholder:\"Vide : automatique\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CalendlyAuto\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CalendlyAuto.map"],"mappings":"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"}