{"version":3,"file":"shared-lib.CheL4Zvc.mjs","names":[],"sources":["https:/framerusercontent.com/modules/yc0m3ILVUlCQ60VvEIcs/s72NN9pdxQKBgi4rtuZ1/siteMetadata.js"],"sourcesContent":["// Generated by Framer (9805f18)\nconst valuesByLocaleId={AjYE1E8v9:{v0:\"R\\xe9ceptionniste IA pour l’h\\xf4tellerie-restauration\",v1:\"Sadie est l’h\\xf4te IA de r\\xe9f\\xe9rence pour l’industrie de l’h\\xf4tellerie-restauration, capable de r\\xe9pondre \\xe0 chaque appel, de prendre des r\\xe9servations et d’assister les clients 24 heures sur 24, 7 jours sur 7.\"}};function getLocalizedValue(key,locale){while(locale){const values=valuesByLocaleId[locale.id];if(values){const value=values[key];if(value)return value;}locale=locale.fallback;}}export default function metadata(params,activeLocale){return{customHTMLBodyEnd:'<script>\\n(function () {\\n  // ----- helpers -----\\n  function qsParam(name){ return new URLSearchParams(location.search).get(name); }\\n  function persist(k,v){ try{ localStorage.setItem(k,v); }catch(e){} try{ sessionStorage.setItem(k,v); }catch(e){} }\\n  function recall(k){ try{ return sessionStorage.getItem(k) || localStorage.getItem(k) || \"\"; }catch(e){ return \"\"; } }\\n\\n  // Capture latest fbclid from URL and persist\\n  var fb = qsParam(\"fbclid\");\\n  if (fb) persist(\"fbclid\", fb);\\n\\n  // Ensure exactly one hidden input for fbclid (kept for Framer UI/preview)\\n  function ensureFbHidden(form){\\n    const existing = form.querySelectorAll(\\'input[name=\"fbclid\"]\\');\\n    if (existing.length === 0){\\n      const el = document.createElement(\"input\");\\n      el.type = \"hidden\";\\n      el.name = \"fbclid\";\\n      form.appendChild(el);\\n      return el;\\n    }\\n    // Keep the first, remove any extras\\n    for (let i = 1; i < existing.length; i++) existing[i].remove();\\n    return existing[0];\\n  }\\n\\n  // Write freshest value into the hidden input\\n  function hydrateFb(form){\\n    const value = qsParam(\"fbclid\") || recall(\"fbclid\") || \"\";\\n    ensureFbHidden(form).value = value;\\n  }\\n\\n  // Intercept submits to Zapier Catch Hook and send JSON (prevents querystring duplicates)\\n  async function submitToZapierAsJSON(form, evt){\\n    const action = (form.getAttribute(\"action\") || \"\").trim();\\n    if (!action) return;                   // no action: let it submit normally\\n    if (!/hooks\\\\.zapier\\\\.com\\\\/hooks\\\\/catch\\\\//i.test(action)) return; // only intercept Zapier hooks\\n\\n    evt.preventDefault();\\n    hydrateFb(form);\\n\\n    // Build a clean payload (unique keys only)\\n    const fd = new FormData(form);\\n    const payload = {};\\n    for (const [k,v] of fd.entries()){\\n      if (!(k in payload)) payload[k] = v;   // first wins\\n      if (k === \"fbclid\") payload[k] = v;    // but ensure fbclid is latest value we set\\n    }\\n\\n    const res = await fetch(action, {\\n      method: \"POST\",\\n      headers: { \"Content-Type\": \"application/json\" },\\n      body: JSON.stringify(payload)\\n    });\\n\\n    if (res.ok){\\n      // Optional redirect (set via data-redirect on the form, else default)\\n      const redirect = form.getAttribute(\"data-redirect\") || \"/thank-you\";\\n      try { window.location.assign(redirect); } catch(e) {}\\n    } else {\\n      console.error(\"Zapier webhook failed\", await res.text());\\n      try { form.submit(); } catch(e) {}\\n    }\\n  }\\n\\n  function wire(form){\\n    if (!form || form.__fbWired) return;\\n    form.__fbWired = true;\\n\\n    hydrateFb(form); // populate ASAP for any client-side reads\\n    form.addEventListener(\"submit\", function(e){ submitToZapierAsJSON(form, e); }, { capture: true });\\n  }\\n\\n  // Wire existing forms\\n  document.querySelectorAll(\"form\").forEach(wire);\\n\\n  // Wire future forms (SPA/lazy render)\\n  new MutationObserver(ms => {\\n    ms.forEach(m => m.addedNodes && m.addedNodes.forEach(n => {\\n      if (n.nodeType !== 1) return;\\n      if (n.tagName === \"FORM\") wire(n);\\n      n.querySelectorAll && n.querySelectorAll(\"form\").forEach(wire);\\n    }));\\n  }).observe(document.documentElement, { childList: true, subtree: true });\\n})();\\n</script>\\n',customHTMLBodyStart:'<!-- Google Tag Manager (noscript) -->\\n<noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-PFBJF44V\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>\\n<!-- End Google Tag Manager (noscript) -->',customHTMLHeadEnd:'<meta name=\"google-site-verification\" content=\"cUPqmCsESD20PAzKMcLj1fKOFXLNqj5NoivmvDDshC8\">\\n<!-- Start of HubSpot Embed Code -->\\n<script type=\"text/javascript\" id=\"hs-script-loader\" async=\"\" defer=\"\" src=\"//js-na3.hs-scripts.com/341966332.js\"></script>\\n<!-- End of HubSpot Embed Code -->\\n',customHTMLHeadStart:\"<!-- Google Tag Manager -->\\n<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\\nj=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\\n})(window,document,'script','dataLayer','GTM-PFBJF44V');</script>\\n<!-- End Google Tag Manager -->\",description:getLocalizedValue(\"v1\",activeLocale)??\"Sadie is the market-leading AI host built for hospitality, answering every call, taking reservations & orders, and helping guests 24/7.\",favicon:\"https://framerusercontent.com/assets/MEMn7GPEmTd30uhCir7N337i4bk.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/duJBp9RY92rE6dLWxVkK486rY.jpg\",title:getLocalizedValue(\"v0\",activeLocale)??\"Sadie - AI Host for Hospitality \"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"oDACsU,SAAS,EAAkB,EAAI,EAAO,CAAC,KAAM,GAAO,CAAC,IAAM,EAAO,EAAiB,EAAO,IAAI,GAAG,EAAO,CAAC,IAAM,EAAM,EAAO,GAAK,GAAG,EAAM,OAAO,EAAO,EAAO,EAAO,UAAW,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAyqG,oBAAoB;;4CAAwP,kBAAkB;;;;EAAwS,oBAAoB;;;;;;iCAA4a,YAAY,EAAkB,KAAK,EAAa,EAAE,0IAA0I,QAAQ,uEAAuE,OAAO,0BAA0B,YAAY,qEAAqE,MAAM,EAAkB,KAAK,EAAa,EAAE,mCAAmC,iBAA3rK,EAAiB,CAAC,UAAU,CAAC,GAAG,mDAAyD,GAAG,6MAAkO,CAAC"}