{"version":3,"file":"CalEmbed.Bb2IVcK2.mjs","names":["useRef","__esmMin","init_ssg_sandbox_shims","window","p","c","init_jsx_runtime","ce","init_npm_react_18_3_1","de","init_framer_B6PCHH0A","addPropertyControls","ControlType","useIsStaticRenderer","loadCalScript","calScriptLoaded","a","ar","d","C","cal","A","L","api","namespace","getSessionReferrer","KEY","stored","ref","getGaClientId","match","getSessionUTMs","params","UTM_KEYS","k","meta","v","buildCalMetadata","utms","referrer","clientId","toCalMetadataConfig","out","CalEmbed","props","containerRef","isStatic","W","ns","calLink","metaConfig","CAL_ORIGIN","brandColor","bgColor","mutedBgColor","style","init_CalEmbed"],"sources":["https:/framerusercontent.com/modules/3yzqOhYqtOSLQpwyHYVQ/32srmxo74rWuORnxPhCD/CalEmbed.js"],"sourcesContent":["// Embed oficial de cal.com mediante su script JavaScript\n// Permite personalizar fondo, color de marca, y otros estilos para que combine con la web\n// Doc: https://cal.com/docs/embed/embed\n//\n// ORIGEN DE LA PLATAFORMA DE RESERVAS: se define SOLO en la constante CAL_ORIGIN\n// (más abajo), con el mismo valor que en CalPopupButton.tsx. Los botones colocados\n// en las páginas ya NO tienen campo \"Origen\": así un cambio de plataforma se hace\n// cambiando una línea aquí y otra en CalPopupButton.tsx, sin tocar cada página.\n// (OpenSpec: migrar-reservas-cal-eu-a-cal-com)\n//\n// Tracking de origen:\n// - UTMs (utm_source, utm_medium, utm_campaign...) + gclid/fbclid/msclkid\n//   se guardan en sessionStorage al primer acceso para no perderlos si el\n//   usuario navega entre páginas antes de reservar.\n// - document.referrer se guarda en sessionStorage para capturar tráfico\n//   orgánico (Google, Instagram, Facebook...) sin necesidad de UTMs.\n// - Si el usuario aceptó la analítica (existe la cookie _ga de GA4), se captura\n//   también el client_id de GA4. Esto permite que la conversión medida en el\n//   SERVIDOR se atribuya a la sesión original del visitante en GA4. Si NO hay\n//   consentimiento, la cookie _ga no existe y NO se envía ningún client_id\n//   (comportamiento respetuoso con el Consent Mode v2 por diseño).\n// - Esa metadata se inyecta en el CONFIG del embed con el formato que cal.com\n//   documenta: `{ \"metadata[clave]\": valor }`. Así aparece en\n//   `payload.metadata[clave]` del webhook \"Reserva pagada\".\n//   (Ref: https://cal.com/help/embedding/prefill-booking-form-embed)\n//\n// NOTA: la conversión de reserva se mide en el SERVIDOR (webhook de pago de la\n// plataforma de reservas -> n8n -> GA4/Google Ads), NO en el navegador. Por eso\n// aquí ya NO se empuja ningún evento \"booking_confirmed\" al dataLayer: con el pago\n// vía Stripe, el navegador no es una fuente fiable de la conversión real (pagada).\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{useEffect,useRef}from\"react\";// Plataforma de reservas: cal.com desde el 31-oct-2026 (antes cal.eu, que cerró\n// el 1-nov-2026). Mismo valor que en CalPopupButton.tsx.\nconst CAL_ORIGIN=\"https://app.cal.com\";let calScriptLoaded=false;function loadCalScript(){if(typeof window===\"undefined\"||calScriptLoaded)return;calScriptLoaded=true;(function(C,A,L){const p=function(a,ar){a.q.push(ar);};const d=C.document;C.Cal=C.Cal||function(){const cal=C.Cal;// eslint-disable-next-line prefer-rest-params\nconst ar=arguments;if(!cal.loaded){cal.ns={};cal.q=cal.q||[];d.head.appendChild(d.createElement(\"script\")).src=A;cal.loaded=true;}if(ar[0]===L){const api=function(){// eslint-disable-next-line prefer-rest-params\np(api,arguments);};const namespace=ar[1];api.q=api.q||[];if(typeof namespace===\"string\"){cal.ns[namespace]=cal.ns[namespace]||api;p(cal.ns[namespace],ar);p(cal,[\"initNamespace\",namespace]);}else{p(cal,ar);}return;}p(cal,ar);};})(window,\"https://app.cal.com/embed/embed.js\",\"init\");}function getSessionReferrer(){if(typeof window===\"undefined\")return\"\";const KEY=\"ug_referrer\";const stored=sessionStorage.getItem(KEY);if(stored!==null)return stored;const ref=document.referrer||\"\";sessionStorage.setItem(KEY,ref);return ref;}// Lee el client_id de GA4 desde la cookie `_ga` (formato: GA1.1.XXXX.YYYY).\n// Devuelve solo la parte \"XXXX.YYYY\" (el client_id que GA4 usa).\n// IMPORTANTE: la cookie `_ga` SOLO existe si el visitante aceptó la analítica\n// (gracias al Consent Mode v2). Sin consentimiento devuelve \"\" y no se envía nada.\nfunction getGaClientId(){if(typeof document===\"undefined\")return\"\";const match=document.cookie.match(/_ga=GA\\d\\.\\d\\.(\\d+\\.\\d+)/);return match?match[1]:\"\";}function getSessionUTMs(){if(typeof window===\"undefined\")return{};const KEY=\"ug_utms\";const params=new URLSearchParams(window.location.search);const UTM_KEYS=[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_content\",\"utm_term\",\"gclid\",\"fbclid\",\"msclkid\"];const hasTracking=UTM_KEYS.some(k=>params.has(k));if(hasTracking){const meta={};for(const k of UTM_KEYS){const v=params.get(k);if(v)meta[k]=v;}sessionStorage.setItem(KEY,JSON.stringify(meta));return meta;}const stored=sessionStorage.getItem(KEY);return stored?JSON.parse(stored):{};}function buildCalMetadata(){const utms=getSessionUTMs();const referrer=getSessionReferrer();const clientId=getGaClientId();return{...utms,...referrer?{referrer}:{},...clientId?{ga_client_id:clientId}:{},pagina:typeof window!==\"undefined\"?window.location.pathname:\"\",fecha:new Date().toISOString().split(\"T\")[0]};}// Convierte { clave: valor } al formato que cal.com espera en el CONFIG del\n// embed: { \"metadata[clave]\": valor }. Es la forma documentada para que el\n// dato aparezca luego en `payload.metadata[clave]` del webhook.\nfunction toCalMetadataConfig(meta){const out={};for(const[k,v]of Object.entries(meta)){if(v)out[`metadata[${k}]`]=v;}return out;}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function CalEmbed(props){const{calLink=\"ugarana\",minHeight=900,brandColor=\"#2D4A38\",bgColor=\"#F5F1E8\",mutedBgColor=\"#E5DFD2\",style}=props;const containerRef=useRef(null);const isStatic=useIsStaticRenderer();useEffect(()=>{if(isStatic)return;if(typeof window===\"undefined\")return;loadCalScript();const W=window;const ns=`embed_${calLink.replace(/[^a-zA-Z0-9]/g,\"_\")}`;const meta=buildCalMetadata();const metaConfig=toCalMetadataConfig(meta);W.Cal(\"init\",ns,{origin:CAL_ORIGIN});W.Cal.ns[ns](\"inline\",{elementOrSelector:containerRef.current,config:{layout:\"month_view\",...metaConfig},calLink});W.Cal.ns[ns](\"ui\",{cssVarsPerTheme:{light:{\"cal-brand\":brandColor,\"cal-bg\":bgColor,\"cal-bg-emphasis\":mutedBgColor,\"cal-bg-muted\":mutedBgColor}},hideEventTypeDetails:false,layout:\"month_view\",theme:\"light\"});},[calLink,brandColor,bgColor,mutedBgColor,isStatic]);if(isStatic){return /*#__PURE__*/_jsxs(\"div\",{style:{...style,width:\"100%\",minHeight,backgroundColor:bgColor,borderRadius:10,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontFamily:'\"Inter Tight\", system-ui, sans-serif',fontSize:11,letterSpacing:\"0.28em\",textTransform:\"uppercase\",color:\"rgba(31,45,36,0.5)\",border:\"1px dashed rgba(31,45,36,0.2)\"},children:[\"Calendario \",CAL_ORIGIN.replace(\"https://\",\"\"),\"/\",calLink]});}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,width:\"100%\",minHeight,backgroundColor:bgColor,borderRadius:10,overflow:\"hidden\"}});}addPropertyControls(CalEmbed,{calLink:{type:ControlType.String,title:\"Cal Link\",defaultValue:\"ugarana\",placeholder:\"ugarana\"},minHeight:{type:ControlType.Number,title:\"Altura m\\xednima\",defaultValue:900,min:400,max:1400,step:10,unit:\"px\"},brandColor:{type:ControlType.Color,title:\"Color de marca\",defaultValue:\"#2D4A38\"},bgColor:{type:ControlType.Color,title:\"Color fondo\",defaultValue:\"#F5F1E8\"},mutedBgColor:{type:ControlType.Color,title:\"Color p\\xedldoras d\\xedas\",defaultValue:\"#E5DFD2\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CalEmbed\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CalEmbed.map"],"mappings":"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"}