{"version":3,"file":"CalComEmbed.BOIVdKml.mjs","names":["useRef","useState","__esmMin","init_ssg_sandbox_shims","init_npm_react_18_3_1","window","ce","init_jsx_runtime","c","_e","de","addPropertyControls","ControlType","init_framer_BikQVKhx","kimeGetAttribution","out","raw","KIME_ATTRIBUTION_STORAGE_KEY","stored","KIME_ATTRIBUTION_KEYS","k","urlParams","v","ph","id","sid","kimeTrack","event","props","CalComEmbed","initialized","containerRef","contentHeight","setContentHeight","minHeight","onRoutingForm","setOnRoutingForm","calLink","p","a","ar","d","C","cal","A","L","api","ns","buildVars","vars","brandColor","pageBackground","kimeAttribution","kimeMetadata","NAMESPACE","ELEMENT_ID","kimeCal","kimeBooked","kimePage","kimeOnBooked","data","booking","uid","email","root","stopped","timer","resizeObs","attach","iframe","update","h","handler","action","detail","path","isForm","routingFormMaxHeight","init_CalComEmbed"],"sources":["https:/framerusercontent.com/modules/Q18AnMCxEJa5mKr0R7uN/wBDDcTwpSYDbcUctHu32/CalComEmbed.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const NAMESPACE=\"kime-cal-embed\";const ELEMENT_ID=\"kime-cal-inline-embed\";// [KIME-TRACKING] START (added 2026-10-06)\n// Sends demo-booking steps to PostHog and passes the visit's attribution\n// into the Cal.com booking as metadata. Everything is wrapped in try/catch\n// so a tracking failure can never break the booking embed.\n// To revert: delete every block marked [KIME-TRACKING], or restore\n// CalComEmbed_BACKUP_2026_10_06.tsx.\nconst KIME_ATTRIBUTION_KEYS=[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_term\",\"utm_content\",\"gclid\",\"fbclid\",\"gbraid\",\"wbraid\",\"li_fat_id\",\"msclkid\",\"ref\"];// Same sessionStorage key the UTMForwarder component writes to.\nconst KIME_ATTRIBUTION_STORAGE_KEY=\"kime_attribution\";function kimeGetAttribution(){const out={};try{if(typeof window===\"undefined\")return out;try{const raw=window.sessionStorage.getItem(KIME_ATTRIBUTION_STORAGE_KEY);const stored=raw?JSON.parse(raw)||{}:{};KIME_ATTRIBUTION_KEYS.forEach(function(k){if(stored[k])out[k]=String(stored[k]);});}catch(e){// sessionStorage unavailable; ignore\n}const urlParams=new URLSearchParams(window.location.search);KIME_ATTRIBUTION_KEYS.forEach(function(k){const v=urlParams.get(k);if(v)out[k]=v;});const ph=window.posthog;if(ph){const id=typeof ph.get_distinct_id===\"function\"?ph.get_distinct_id():null;if(id)out.ph_distinct_id=String(id);const sid=typeof ph.get_session_id===\"function\"?ph.get_session_id():null;if(sid)out.ph_session_id=String(sid);}}catch(e){// never block the embed\n}return out;}function kimeTrack(event,props){try{if(typeof window===\"undefined\")return;const ph=window.posthog;if(ph&&typeof ph.capture===\"function\")ph.capture(event,props);}catch(e){// never block the embed\n}}// [KIME-TRACKING] END\n/**\n * Cal.com inline embed. The container height mirrors Cal's reported\n * iframe height (no artificial cap), with one exception: when the\n * iframe is on a routing-form route (calLink starts with `forms/`),\n * Cal reserves the booker's full height even though only the short\n * form card is visible. To avoid a big empty band around the form,\n * we clamp the wrapper to `routingFormMaxHeight` while a routing-form\n * route is active, then release the clamp once Cal navigates to the\n * booker route (event-type slug). Detection is done by listening for\n * Cal's `__routeChanged` postMessage events.\n *\n * If `pageBackground` is provided, Cal's internal page background\n * (cal-bg) is overridden so any padding Cal adds inside the iframe\n * blends with the surrounding section. Leave it empty to use Cal's\n * own default. The white booker card (cal-bg-emphasis) is never\n * touched.\n */export default function CalComEmbed({calLink=\"forms/208a102c-c108-454a-ad75-d26cf9b91c40\",theme=\"light\",brandColor=\"#4C7A6D\",pageBackground=\"\",layout=\"month_view\",minHeight=200,routingFormMaxHeight=420}){const initialized=useRef(false);const containerRef=useRef(null);const[contentHeight,setContentHeight]=useState(minHeight);// Whether the iframe is currently on a routing-form route. Start as\n// true when the initial calLink is a routing form so we clamp from\n// the first render, then flip to false once Cal navigates to the\n// booker (or any non-form) route.\nconst[onRoutingForm,setOnRoutingForm]=useState(()=>(calLink||\"\").startsWith(\"forms/\"));// 1) Initialise Cal.com inline embed once\nuseEffect(()=>{if(initialized.current)return;initialized.current=true;(function(C,A,L){const p=(a,ar)=>a.q.push(ar);const d=C.document;C.Cal=C.Cal||function(){const cal=C.Cal;const 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(){p(api,arguments);};const ns=ar[1];api.q=api.q||[];if(typeof ns===\"string\"){cal.ns[ns]=cal.ns[ns]||api;p(cal.ns[ns],ar);p(cal,[\"initNamespace\",ns]);}else{p(cal,ar);}return;}p(cal,ar);};})(window,\"https://app.cal.com/embed/embed.js\",\"init\");// Build the css vars per theme — only include cal-bg when the\n// user provided a pageBackground. Otherwise Cal uses its own\n// default light/dark page background.\nconst buildVars=()=>{const vars={\"cal-brand\":brandColor};if(pageBackground&&pageBackground.trim()!==\"\"){vars[\"cal-bg\"]=pageBackground;}return vars;};// [KIME-TRACKING] START: attribution passed to Cal.com as booking metadata\nconst kimeAttribution=kimeGetAttribution();const kimeMetadata={};try{Object.keys(kimeAttribution).forEach(function(k){kimeMetadata[`metadata[${k}]`]=kimeAttribution[k].slice(0,500);});}catch(e){// ignore\n}// [KIME-TRACKING] END\nwindow.Cal(\"init\",NAMESPACE,{origin:\"https://app.cal.com\"});window.Cal.ns[NAMESPACE](\"inline\",{elementOrSelector:`#${ELEMENT_ID}`,config:{layout,useSlotsViewOnSmallScreen:\"true\",theme,...kimeMetadata},calLink});// [KIME-TRACKING] START: forward Cal.com embed events to PostHog\ntry{const kimeCal=window.Cal.ns[NAMESPACE];const kimeBooked={};const kimePage=()=>({...kimeGetAttribution(),cal_link:calLink,page_path:typeof window!==\"undefined\"?window.location.pathname:\"\"});kimeCal(\"on\",{action:\"routed\",callback:()=>kimeTrack(\"demo_form_submitted\",kimePage())});kimeCal(\"on\",{action:\"bookerViewed\",callback:()=>kimeTrack(\"demo_calendar_viewed\",kimePage())});const kimeOnBooked=e=>{try{const data=e?.detail?.data||{};const booking=data.booking||data;const uid=booking?.uid||data?.uid||\"unknown\";if(kimeBooked[uid])return;kimeBooked[uid]=true;const email=booking?.responses?.email||booking?.attendees?.[0]?.email||data?.responses?.email||undefined;kimeTrack(\"demo_booked\",{...kimePage(),booking_uid:uid,event_type_id:data?.eventTypeId??data?.eventType?.id??null,event_type_slug:data?.eventType?.slug??null,booking_start:data?.startTime??booking?.startTime??null});const ph=window.posthog;if(email&&ph&&typeof ph.setPersonProperties===\"function\"){ph.setPersonProperties({email});}}catch(err){// never block the embed\n}};kimeCal(\"on\",{action:\"bookingSuccessfulV2\",callback:kimeOnBooked});kimeCal(\"on\",{action:\"bookingSuccessful\",callback:kimeOnBooked});}catch(e){// never block the embed\n}// [KIME-TRACKING] END\nwindow.Cal.ns[NAMESPACE](\"ui\",{theme,cssVarsPerTheme:{light:buildVars(),dark:buildVars()},hideEventTypeDetails:false,layout});// eslint-disable-next-line react-hooks/exhaustive-deps\n},[]);// 2) Track the iframe's actual rendered height — Cal.com sizes its\n//    iframe to fit content in each state, so we just mirror that.\nuseEffect(()=>{const root=containerRef.current;if(!root)return;let stopped=false;let timer=null;let resizeObs=null;const attach=()=>{if(stopped)return;const iframe=root.querySelector(\"iframe\");if(!iframe){timer=window.setTimeout(attach,200);return;}const update=()=>{const h=iframe.offsetHeight;if(h&&h>0){setContentHeight(Math.max(h,minHeight));}};resizeObs=new ResizeObserver(update);resizeObs.observe(iframe);update();};attach();return()=>{stopped=true;if(timer)window.clearTimeout(timer);resizeObs?.disconnect();};},[minHeight]);// 3) postMessage backup channel — also used to detect route changes\n//    (form -> booker) so we can release the routing-form height clamp.\nuseEffect(()=>{const handler=event=>{if(typeof event.origin!==\"string\"||!event.origin.includes(\"cal.com\")){return;}const d=event.data;if(!d||typeof d!==\"object\")return;const action=d.type||d.action;if(action===\"__dimensionChanged\"){const h=d?.data?.iframeHeight??d?.detail?.data?.iframeHeight;if(typeof h===\"number\"&&h>0){setContentHeight(Math.max(h,minHeight));}return;}if(action===\"__routeChanged\"){// Cal posts a routeChanged event with the new path/url.\n// Common shapes: data.data.pathname, data.detail.data.pathname,\n// data.data.url. Sniff a few fallbacks.\nconst detail=d?.data??d?.detail?.data??{};const path=detail.pathname??detail.path??detail.url??\"\";const isForm=typeof path===\"string\"&&path.includes(\"/forms/\");setOnRoutingForm(isForm);}};window.addEventListener(\"message\",handler);return()=>window.removeEventListener(\"message\",handler);},[minHeight]);// Effective height: when the routing form is showing, clamp so the\n// wrapper doesn't reserve the booker's full height. When the booker\n// (or any non-form) route is showing, use the height Cal reports.\nconst effectiveHeight=onRoutingForm?Math.min(contentHeight,routingFormMaxHeight):contentHeight;return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:`${effectiveHeight}px`,overflow:\"hidden\",transition:\"height 0.45s cubic-bezier(0.4, 0, 0.2, 1)\"},children:/*#__PURE__*/_jsx(\"div\",{id:ELEMENT_ID,ref:containerRef,style:{width:\"100%\",height:\"100%\"}})});}addPropertyControls(CalComEmbed,{calLink:{type:ControlType.String,title:\"Cal Link\",defaultValue:\"forms/208a102c-c108-454a-ad75-d26cf9b91c40\"},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"light\",\"dark\"],defaultValue:\"light\"},brandColor:{type:ControlType.Color,title:\"Brand Color\",defaultValue:\"#4C7A6D\"},pageBackground:{type:ControlType.String,title:\"Cal Page BG\",description:\"Override Cal's page background (cal-bg). Leave empty to use Cal.com's default.\",defaultValue:\"\",placeholder:\"e.g. #4C7A6D or empty for default\"},layout:{type:ControlType.Enum,title:\"Layout\",options:[\"month_view\",\"week_view\",\"column_view\"],defaultValue:\"month_view\"},minHeight:{type:ControlType.Number,title:\"Min Height (px)\",defaultValue:200,min:100,max:600,step:10},routingFormMaxHeight:{type:ControlType.Number,title:\"Form Max Height (px)\",description:\"Max wrapper height while a routing form is showing, so the short form doesn't sit in a big empty band.\",defaultValue:420,min:200,max:800,step:10}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CalComEmbed\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CalComEmbed.map"],"mappings":"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"}