{"version":3,"file":"CalendlyEmbed.D8VipJfj.mjs","names":["React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","RichText","useRef","useState","useMemo","_Fragment"],"sources":["https:/framerusercontent.com/modules/7nCFXQGHKFOub8plMXdV/9QuPO1vYtMqTIljTvh4y/npL_PdBrS.js","https:/framerusercontent.com/modules/TnasvWJSki0KADjjohIf/PaMRhK5EDePMmHpnHy9y/CalendlyEmbed.js"],"sourcesContent":["// Generated by Framer (e503c47)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,RichText,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const enabledGestures={cUN1nimnl:{hover:true},FRfntGk9v:{hover:true},jgD7wxMzE:{hover:true},NRk15S7_z:{hover:true},wl08HxZfC:{hover:true},Z_iiEzVA_:{hover:true}};const cycleOrder=[\"cUN1nimnl\",\"FRfntGk9v\",\"wl08HxZfC\",\"jgD7wxMzE\",\"Z_iiEzVA_\",\"NRk15S7_z\"];const serializationHash=\"framer-df6L3\";const variantClassNames={cUN1nimnl:\"framer-v-1ngxnn4\",FRfntGk9v:\"framer-v-14x22x5\",jgD7wxMzE:\"framer-v-1i61n9i\",NRk15S7_z:\"framer-v-1uj4doj\",wl08HxZfC:\"framer-v-7kfbj7\",Z_iiEzVA_:\"framer-v-uyn728\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const VLlQhFIZ7=undefined;const F3F02NwOb=undefined;const transition1={delay:0,duration:.2,ease:[.44,0,.56,1],type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={\"Dark Large\":\"cUN1nimnl\",\"Dark Small\":\"wl08HxZfC\",\"Light Large\":\"FRfntGk9v\",\"Light Small\":\"jgD7wxMzE\",\"Paper Small\":\"Z_iiEzVA_\",\"Tint Menu\":\"NRk15S7_z\"};const Variants=motion.create(React.Fragment);const getProps=({click,height,id,label,width,...props})=>{return{...props,F3F02NwOb:label??props.F3F02NwOb??\"Book a demo\",variant:humanReadableVariantMap[props.variant]??props.variant??\"cUN1nimnl\",VLlQhFIZ7:click??props.VLlQhFIZ7};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,F3F02NwOb,VLlQhFIZ7,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"cUN1nimnl\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1plab4c=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(VLlQhFIZ7){const res=await VLlQhFIZ7(...args);if(res===false)return false;}});const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.button,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1ngxnn4\",className,classNames),\"data-framer-name\":\"Dark Large\",\"data-highlight\":true,\"data-reset\":\"button\",layoutDependency:layoutDependency,layoutId:\"cUN1nimnl\",onTap:onTap1plab4c,ref:refBinding,style:{backgroundColor:\"rgb(5, 16, 37)\",borderBottomLeftRadius:10,borderBottomRightRadius:10,borderTopLeftRadius:10,borderTopRightRadius:10,opacity:1,...style},variants:{\"cUN1nimnl-hover\":{opacity:.85},\"FRfntGk9v-hover\":{opacity:.88},\"jgD7wxMzE-hover\":{opacity:.88},\"NRk15S7_z-hover\":{opacity:.88},\"wl08HxZfC-hover\":{opacity:.88},\"Z_iiEzVA_-hover\":{opacity:.88},FRfntGk9v:{backgroundColor:\"rgb(245, 245, 244)\"},jgD7wxMzE:{backgroundColor:\"rgb(245, 245, 244)\"},NRk15S7_z:{backgroundColor:\"rgba(5, 16, 37, 0.06)\"},Z_iiEzVA_:{backgroundColor:\"rgb(249, 249, 248)\"}},...addPropertyOverrides({FRfntGk9v:{\"data-framer-name\":\"Light Large\"},jgD7wxMzE:{\"data-framer-name\":\"Light Small\"},NRk15S7_z:{\"data-framer-name\":\"Tint Menu\"},wl08HxZfC:{\"data-framer-name\":\"Dark Small\"},Z_iiEzVA_:{\"data-framer-name\":\"Paper Small\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7R2Vpc3QtNTAw\",\"--framer-font-family\":'\"Geist\", \"Geist Placeholder\", sans-serif',\"--framer-font-size\":\"15px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-0.23px\",\"--framer-line-height\":\"15px\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Book a demo\"})}),className:\"framer-15syaq8\",\"data-framer-name\":\"Label\",fonts:[\"GF;Geist-500\"],layoutDependency:layoutDependency,layoutId:\"QKPObSyIs\",style:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"},text:F3F02NwOb,variants:{FRfntGk9v:{\"--extracted-r6o4lv\":\"rgb(5, 16, 37)\"},jgD7wxMzE:{\"--extracted-r6o4lv\":\"rgb(5, 16, 37)\"},NRk15S7_z:{\"--extracted-r6o4lv\":\"rgb(5, 16, 37)\"},wl08HxZfC:{\"--extracted-r6o4lv\":\"rgb(245, 245, 244)\"},Z_iiEzVA_:{\"--extracted-r6o4lv\":\"rgb(5, 16, 37)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({FRfntGk9v:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7R2Vpc3QtNTAw\",\"--framer-font-family\":'\"Geist\", \"Geist Placeholder\", sans-serif',\"--framer-font-size\":\"15px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-0.23px\",\"--framer-line-height\":\"15px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(5, 16, 37))\"},children:\"Book a demo\"})})},jgD7wxMzE:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7R2Vpc3QtNTAw\",\"--framer-font-family\":'\"Geist\", \"Geist Placeholder\", sans-serif',\"--framer-font-size\":\"15px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-0.23px\",\"--framer-line-height\":\"15px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(5, 16, 37))\"},children:\"Book a demo\"})})},NRk15S7_z:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7R2Vpc3QtNTAw\",\"--framer-font-family\":'\"Geist\", \"Geist Placeholder\", sans-serif',\"--framer-font-size\":\"15px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-0.23px\",\"--framer-line-height\":\"15px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(5, 16, 37))\"},children:\"Book a demo\"})})},wl08HxZfC:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7R2Vpc3QtNTAw\",\"--framer-font-family\":'\"Geist\", \"Geist Placeholder\", sans-serif',\"--framer-font-size\":\"15px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-0.23px\",\"--framer-line-height\":\"15px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(245, 245, 244))\"},children:\"Book a demo\"})})},Z_iiEzVA_:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"R0Y7R2Vpc3QtNTAw\",\"--framer-font-family\":'\"Geist\", \"Geist Placeholder\", sans-serif',\"--framer-font-size\":\"15px\",\"--framer-font-weight\":\"500\",\"--framer-letter-spacing\":\"-0.23px\",\"--framer-line-height\":\"15px\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(5, 16, 37))\"},children:\"Book a demo\"})})}},baseVariant,gestureVariant)})})})})});});const css=[\".framer-df6L3.framer-3j17sw, .framer-df6L3 .framer-3j17sw { display: block; }\",\".framer-df6L3.framer-1ngxnn4 { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: 44px; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px 20px 0px 20px; position: relative; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-df6L3 .framer-15syaq8 { -webkit-user-select: none; flex: none; height: auto; position: relative; user-select: none; white-space: pre; width: auto; }\",\".framer-df6L3.framer-v-7kfbj7.framer-1ngxnn4, .framer-df6L3.framer-v-1i61n9i.framer-1ngxnn4, .framer-df6L3.framer-v-uyn728.framer-1ngxnn4 { height: 36px; padding: 0px 17px 0px 17px; }\",\".framer-df6L3.framer-v-1uj4doj.framer-1ngxnn4 { height: 42px; padding: 0px 17px 0px 17px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 44\n * @framerIntrinsicWidth 129\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"fixed\"]},\"FRfntGk9v\":{\"layout\":[\"auto\",\"fixed\"]},\"wl08HxZfC\":{\"layout\":[\"auto\",\"fixed\"]},\"jgD7wxMzE\":{\"layout\":[\"auto\",\"fixed\"]},\"Z_iiEzVA_\":{\"layout\":[\"auto\",\"fixed\"]},\"NRk15S7_z\":{\"layout\":[\"auto\",\"fixed\"]},\"s3W2FKMhl\":{\"layout\":[\"auto\",\"fixed\"]},\"FdtdQY8xA\":{\"layout\":[\"auto\",\"fixed\"]},\"izYzp1_nX\":{\"layout\":[\"auto\",\"fixed\"]},\"scYVzcpBI\":{\"layout\":[\"auto\",\"fixed\"]},\"sCQbdwk12\":{\"layout\":[\"auto\",\"fixed\"]},\"zXOFErCQT\":{\"layout\":[\"auto\",\"fixed\"]}}}\n * @framerVariables {\"F3F02NwOb\":\"label\",\"VLlQhFIZ7\":\"click\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramernpL_PdBrS=withCSS(Component,css,\"framer-df6L3\");export default FramernpL_PdBrS;FramernpL_PdBrS.displayName=\"Button\";FramernpL_PdBrS.defaultProps={height:44,width:129};addPropertyControls(FramernpL_PdBrS,{variant:{options:[\"cUN1nimnl\",\"FRfntGk9v\",\"wl08HxZfC\",\"jgD7wxMzE\",\"Z_iiEzVA_\",\"NRk15S7_z\"],optionTitles:[\"Dark Large\",\"Light Large\",\"Dark Small\",\"Light Small\",\"Paper Small\",\"Tint Menu\"],title:\"Variant\",type:ControlType.Enum},F3F02NwOb:{defaultValue:\"Book a demo\",title:\"Label\",type:ControlType.String},onF3F02NwObChange:{changes:\"F3F02NwOb\",type:ControlType.ChangeHandler},VLlQhFIZ7:{title:\"Click\",type:ControlType.EventHandler}});addFonts(FramernpL_PdBrS,[{explicitInter:true,fonts:[{cssFamilyName:\"Geist\",source:\"google\",style:\"normal\",uiFamilyName:\"Geist\",url:\"https://fonts.gstatic.com/s/geist/v5/gyBhhwUxId8gMGYQMKR3pzfaWI_RruM4mJPby1QNtA.woff2\",weight:\"500\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramernpL_PdBrS\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"FRfntGk9v\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"wl08HxZfC\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"jgD7wxMzE\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"Z_iiEzVA_\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"NRk15S7_z\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"s3W2FKMhl\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"FdtdQY8xA\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"izYzp1_nX\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"scYVzcpBI\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"sCQbdwk12\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]},\\\"zXOFErCQT\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"fixed\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerColorSyntax\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"F3F02NwOb\\\":\\\"label\\\",\\\"VLlQhFIZ7\\\":\\\"click\\\"}\",\"framerIntrinsicHeight\":\"44\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"129\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./npL_PdBrS.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{useEffect,useLayoutEffect,useMemo,useRef,useState}from\"react\";/**\n * Calendly inline embed, trimmed to its card, with a layout skeleton for the load.\n *\n * Three things this does that a plain Calendly embed does not:\n *\n * 1. It points at a single EVENT url (…/30min), so the booking view opens immediately.\n *    A profile url (…/al-builtfortomorrow) makes Calendly show its event-picker card first.\n *\n * 2. It crops Calendly's page padding. Calendly always draws its booking card inset inside a\n *    white page — 800x562 at y=66 in the two-column layout — so dropping that iframe straight\n *    into a modal gives you a card inside a card. We render the iframe oversized and offset it\n *    so the card lands flush with this component's edges.\n *\n *    Measured 2026-09-24 against calendly.com/al-builtfortomorrow/30min:\n *      iframe >= 1000px wide  -> two columns, card 800 x 562, top 66, horizontally centred\n *      iframe 560-980px wide  -> one column, card min(680, w - 34) x 925, top 66\n *      iframe <= 560px wide   -> no card, Calendly fills the viewport edge to edge\n *    The card is TOP-anchored (y stays 66 at any iframe height) and its height does not vary\n *    with the month, which is what makes a fixed crop safe.\n *\n *    THE CARD HAS TWO WIDTHS. Picking a date opens a times column, and in the two-column\n *    layout Calendly WIDENS the card to fit it — the height never changes, the width does:\n *      no date selected  ->  800 at any iframe width\n *      date selected     ->  min(1060, 0.9 * iframe width)   (1000 -> 900, 1040 -> 936)\n *    A crop sized to 800 therefore loses (expanded - 800) / 2 off BOTH sides the moment a\n *    date is clicked, which is what shipped on 2026-09-24 and broke. Nothing can be done\n *    reactively: Calendly posts no message on date selection (only page_height and\n *    event_type_viewed, both at load), and the expansion is one-way — the two-column layout\n *    has no control that takes you back to the plain calendar. So the crop is sized to the\n *    EXPANDED card and the collapsed card sits inside it with white either side. Calendly's\n *    page and its card are both white, so that margin is invisible. 900 is the narrowest\n *    expanded card there is (two columns need a 1000-wide iframe), hence 900 on desktop.\n *\n * 3. It loads Calendly BEFORE the click, so the modal opens on a calendar that is already up.\n *\n *    Calendly's embed takes 3-5s to become usable from a cold start, and none of it is ours:\n *    a 1.4MB (6.3MB parsed) client-rendered app, ~1s of bot protection, then its booking API\n *    walked serially (initial_settings -> lookup -> features -> calendar/range). Measured\n *    2026-10-02 on the live site: click -> usable 3.8-5.6s. A warm HTTP cache does not help —\n *    the cost is their runtime, not transfer — but a frame that has ALREADY RUN does: one warm\n *    frame is created per page (module level, once the page is idle) and every instance of\n *    this component docks it over itself when its modal opens. Measured: usable ~0.3s after\n *    click instead of ~4s.\n *\n *    The warm frame lives in a fixed element on <body>, never inside the overlay, because an\n *    iframe that is moved in the DOM reloads. Docking = positioning that element over our own\n *    box every frame (following the modal's open scale and fade), parking = shrinking it back\n *    to 1x1. While parked it MUST still intersect the viewport: Chromium throttles cross-origin\n *    frames that are offscreen, visibility:hidden or display:none, and Calendly never finishes\n *    loading in that state (verified: offscreen / visibility:hidden / clip-path:inset(50%)\n *    never post event_type_viewed; a 1x1 transparent window onto a full-size frame does).\n *\n *    Privacy: preloading means Calendly is contacted on every page view, not just on click.\n *    Chosen deliberately (2026-10-02) — the privacy policy has to say so.\n *\n * 4. A visitor who clicks before the warm frame is up (it takes ~2-3s after load) still sees\n *    the skeleton of Calendly's own layout. It mirrors the card that replaces it — the 50/50\n *    split and vertical hairline on desktop, the centred single column and divider on\n *    tablet/phone — so the wait reads as content arriving rather than a broken white box.\n *\n *    The hand-off is exact, not timed: Calendly posts `calendly.event_type_viewed` the moment\n *    the booking view is up. The frame cross-fades in over the skeleton, which holds\n *    underneath until the fade finishes. READY_TIMEOUT_MS is the backstop, so a message that\n *    never arrives reveals the embed instead of stranding the skeleton on screen.\n *\n * Tracking: the modal opening fires `book_call_open` and a completed booking\n *    (`calendly.event_scheduled`) fires `book_call`. Sent via `gtag` when the page defines it\n *    (GA from Framer Site Settings), otherwise as a GTM custom event on `dataLayer` — Framer's\n *    cookie banner loads GTM and never defines gtag, so GTM's GA4 Event tags pick these up.\n *    Consent Mode decides what Google may store, so nothing here checks consent itself. Only event\n *    names and the page path are sent — never Calendly's invitee payload. UTM params on the page\n *    URL are forwarded to Calendly so each booking records its campaign. Calendly's own cookie\n *    notice is left on (the privacy policy relies on it), so there is no hide_gdpr_banner.\n *\n * The warm frame is only docked once this element is on screen, so an instance sitting inside\n * a closed overlay does nothing until the modal is opened.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 900\n * @framerIntrinsicHeight 562\n * @framerDisableUnlink\n */// Calendly's own page chrome, measured. See note above.\nconst CARD_TOP=66;const CARD_BOTTOM_SLACK=40;const TWO_COLUMN_MIN_WIDTH=780;const TWO_COLUMN_EMBED_MIN=1e3// narrowest iframe Calendly still serves two columns at\n;const TWO_COLUMN_CARD_WIDTH=800// the collapsed card — fixed, at any iframe width\n;const EXPANDED_CARD_RATIO=.9// date selected: the card grows to 0.9 * iframe width...\n;const EXPANDED_CARD_MAX=1060// ...and stops there\n;const ONE_COLUMN_GUTTER=34;const FULL_BLEED_MAX_WIDTH=560;// Load hand-off.\nconst CALENDLY_READY_EVENT=\"calendly.event_type_viewed\";const CALENDLY_BOOKED_EVENT=\"calendly.event_scheduled\";const GA_OPEN_EVENT=\"book_call_open\";const GA_BOOKED_EVENT=\"book_call\";const UTM_KEYS=[\"utm_source\",\"utm_medium\",\"utm_campaign\",\"utm_content\",\"utm_term\"];const READY_TIMEOUT_MS=12e3// backstop: never strand the skeleton\n;const FADE_MS=240;// Warm frame. See note 3 above.\nconst DEFAULT_EVENT_URL=\"https://calendly.com/al-builtfortomorrow/30min\";const WARM_AFTER_LOAD_MS=1200// let the page's own work finish first\n;const WARM_STALE_MS=30*60*1e3// reload a parked frame older than this\n;const WARM_PARKED_DESKTOP={width:1e3,height:668}// the desktop modal's frame box\n;// A month that starts on a Tuesday with 30 days — 5 rows, same shape as the real grid.\n// Fixed rather than derived from the date so server and client render the same markup.\nconst GRID_LEAD_BLANKS=2;const GRID_DAYS=30;const GRID_ROWS=5;export default function CalendlyEmbed(props){const{eventURL,trimPadding,primaryColor,backgroundColor,textColor,radius,showSkeleton=true,style}=props;const hostRef=useRef(null);const isStatic=useIsStaticRenderer();const[visible,setVisible]=useState(false);const[origin,setOrigin]=useState(\"\");const[utm,setUtm]=useState({});const[box,setBox]=useState({width:0,height:0});const[ready,setReady]=useState(false);const[skeletonMounted,setSkeletonMounted]=useState(true);const[reduceMotion,setReduceMotion]=useState(false);useEffect(()=>{if(typeof window===\"undefined\")return;setOrigin(window.location.host);setUtm(readUtm(window.location.search));},[]);useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;const query=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const sync=()=>setReduceMotion(query.matches);sync();query.addEventListener(\"change\",sync);return()=>query.removeEventListener(\"change\",sync);},[]);// Measure our own box — the crop and the skeleton layout are derived from it.\nuseLayoutEffect(()=>{const node=hostRef.current;if(!node||typeof ResizeObserver===\"undefined\")return;const observer=new ResizeObserver(([entry])=>{const rect=entry.contentRect;setBox({width:Math.round(rect.width),height:Math.round(rect.height)});});observer.observe(node);return()=>observer.disconnect();},[]);// Don't dock Calendly until the modal is actually opened.\nuseEffect(()=>{const node=hostRef.current;if(!node||visible)return;if(typeof IntersectionObserver===\"undefined\"){setVisible(true);return;}const observer=new IntersectionObserver(entries=>{if(entries.some(entry=>entry.isIntersecting)){setVisible(true);observer.disconnect();}},{rootMargin:\"200px\"});observer.observe(node);return()=>observer.disconnect();},[visible]);const frame=getFrameBox(box.width,box.height,trimPadding);const src=buildSrc({eventURL,origin,utm,primaryColor,backgroundColor,textColor});const docked=Boolean(visible&&src&&box.width>0&&!isStatic);// Dock the warm frame over our box for as long as we are open, then park it again.\n// Re-runs on resize (new crop) — park + re-dock happen in one layout pass, so no flicker.\nuseLayoutEffect(()=>{const host=hostRef.current;if(!docked||!host)return;const warm=ensureWarm(src);const token={};warm.owner=token;placeFrame(warm,frame);warm.dock.removeAttribute(\"inert\");warm.dock.removeAttribute(\"aria-hidden\");warm.dock.style.borderRadius=`${radius}px`;warm.dock.style.zIndex=String(stackLevel(host));// Follow our box through the modal's open/close scale and fade. Our own element,\n// measured every frame while open — the loop ends with the effect.\nlet raf=0;let last=\"\";const follow=()=>{const rect=host.getBoundingClientRect();const width=host.offsetWidth;const height=host.offsetHeight;const scale=width?rect.width/width:1;const opacity=renderedOpacity(host);const key=`${rect.left}|${rect.top}|${width}|${height}|${scale}|${opacity}`;if(key!==last){last=key;const s=warm.dock.style;s.width=`${width}px`;s.height=`${height}px`;s.transform=`translate(${rect.left}px, ${rect.top}px) scale(${scale})`;s.opacity=String(opacity);}warm.dock.style.pointerEvents=warm.ready&&opacity>.5?\"auto\":\"none\";raf=window.requestAnimationFrame(follow);};follow();return()=>{window.cancelAnimationFrame(raf);if(warm.owner===token)parkWarm(warm);};},[docked,src,frame.left,frame.top,frame.width,frame.height,radius]);// One `book_call_open` per mount — the overlay remounts us on each open.\nconst openTracked=useRef(false);useEffect(()=>{if(!docked||openTracked.current)return;openTracked.current=true;track(GA_OPEN_EVENT);},[docked]);// Completed booking. Only while we hold the frame; deduped per invitee in case Calendly\n// repeats the message.\nuseEffect(()=>{if(!docked||typeof window===\"undefined\")return;const seen=new Set;const onMessage=event=>{if(!warm||event.source!==warm.frame.contentWindow)return;if(!isCalendlyOrigin(event.origin))return;const data=event.data;if(!data||typeof data!==\"object\"||data.event!==CALENDLY_BOOKED_EVENT)return;const key=String(data.payload?.invitee?.uri??\"booking\");if(seen.has(key))return;seen.add(key);track(GA_BOOKED_EVENT);};window.addEventListener(\"message\",onMessage);return()=>window.removeEventListener(\"message\",onMessage);},[docked]);// Reveal once the warm frame says the booking view is up — immediately, if it already has.\nuseEffect(()=>{if(!docked||ready||typeof window===\"undefined\")return;const warmFrame=ensureWarm(src);if(warmFrame.ready){setReady(true);return;}const onReady=()=>setReady(true);warmFrame.listeners.add(onReady);const backstop=window.setTimeout(()=>markWarmReady(warmFrame),READY_TIMEOUT_MS);return()=>{warmFrame.listeners.delete(onReady);window.clearTimeout(backstop);};},[docked,ready,src]);// Hold the skeleton underneath until the cross-fade has finished, then drop it.\nuseEffect(()=>{if(!ready||typeof window===\"undefined\")return;const timer=window.setTimeout(()=>setSkeletonMounted(false),FADE_MS+80);return()=>window.clearTimeout(timer);},[ready]);// On the canvas the iframe never loads, so show the skeleton as the static preview.\nconst skeletonVisible=showSkeleton&&(isStatic||skeletonMounted&&box.width>0);return /*#__PURE__*/_jsxs(\"div\",{ref:hostRef,\"aria-busy\":docked&&!ready?true:undefined,style:{...style,position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",borderRadius:radius,background:backgroundColor,boxSizing:\"border-box\"},children:[skeletonVisible?/*#__PURE__*/_jsx(CalendlySkeleton,{width:box.width,height:box.height,textColor:textColor,animate:!isStatic&&!ready,reduceMotion:reduceMotion}):null,docked&&!ready?/*#__PURE__*/_jsx(\"span\",{role:\"status\",style:srOnly,children:\"Loading available times\"}):null]});}let warm=null;// Start the warm frame once the page is idle, on the published site only — not on the\n// canvas, and not during SSR (no window). Module scope, so it runs before any modal opens.\nif(typeof window!==\"undefined\"){const start=()=>{const idle=window.requestIdleCallback?cb=>window.requestIdleCallback(cb,{timeout:3e3}):cb=>window.setTimeout(cb,0);window.setTimeout(()=>idle(()=>{if(RenderTarget.current()!==RenderTarget.preview)return;// Same src an instance builds: Framer hands colours down as rgb(), which\n    // buildSrc drops, so the live instances carry no colour params either.\n    // If they ever do, the first open re-points the frame (a cold load).\n    ensureWarm(buildSrc({eventURL:DEFAULT_EVENT_URL,origin:window.location.host,utm:readUtm(window.location.search),primaryColor:\"\",backgroundColor:\"\",textColor:\"\"}));}),WARM_AFTER_LOAD_MS);};if(document.readyState===\"complete\")start();else window.addEventListener(\"load\",start,{once:true});}function ensureWarm(src){if(warm){if(!sameEmbed(warm.src,src))loadWarm(warm,src);return warm;}const dock=document.createElement(\"div\");dock.setAttribute(\"data-calendly-warm\",\"\");Object.assign(dock.style,{position:\"fixed\",left:\"0px\",top:\"0px\",overflow:\"hidden\",transformOrigin:\"0 0\",contain:\"strict\"});const fade=document.createElement(\"div\");Object.assign(fade.style,{position:\"absolute\",inset:\"0px\",background:\"#fff\",transition:`opacity ${FADE_MS}ms ease-in-out`});const frame=document.createElement(\"iframe\");frame.title=\"Book a demo\";Object.assign(frame.style,{position:\"absolute\",border:\"none\",display:\"block\",colorScheme:\"light\"});fade.appendChild(frame);dock.appendChild(fade);warm={dock,fade,frame,src:\"\",ready:false,loadedAt:0,owner:null,listeners:new Set};const self=warm;window.addEventListener(\"message\",event=>{if(event.source!==self.frame.contentWindow)return;if(!isCalendlyOrigin(event.origin))return;const data=event.data;if(data&&typeof data===\"object\"&&data.event===CALENDLY_READY_EVENT){markWarmReady(self);}});// A tab left open for hours would show stale availability: refresh while parked.\ndocument.addEventListener(\"visibilitychange\",()=>{if(document.visibilityState===\"visible\"&&!self.owner)refreshIfStale(self);});parkWarm(self);loadWarm(self,src);document.body.appendChild(dock);return self;}function loadWarm(self,src){self.src=src;self.ready=false;self.loadedAt=Date.now();self.fade.style.opacity=\"0\";self.frame.src=src;}function markWarmReady(self){if(self.ready)return;self.ready=true;self.fade.style.opacity=\"1\";self.listeners.forEach(listener=>listener());}function refreshIfStale(self){if(self.src&&Date.now()-self.loadedAt>WARM_STALE_MS)loadWarm(self,self.src);}// Parked: a 1x1 transparent window at the viewport corner. Still intersecting the viewport,\n// so Chromium keeps the frame running (see note 3); inert, so it cannot take focus or clicks.\nfunction parkWarm(self){self.owner=null;const s=self.dock.style;s.width=\"1px\";s.height=\"1px\";s.transform=\"none\";s.opacity=\"0\";s.pointerEvents=\"none\";s.zIndex=\"0\";self.dock.setAttribute(\"inert\",\"\");self.dock.setAttribute(\"aria-hidden\",\"true\");if(!self.frame.style.width){const desktop=window.innerWidth>=WARM_PARKED_DESKTOP.width;placeFrame(self,{left:0,top:0,width:desktop?WARM_PARKED_DESKTOP.width:window.innerWidth,height:desktop?WARM_PARKED_DESKTOP.height:window.innerHeight});}refreshIfStale(self);}function placeFrame(self,box){const px=value=>typeof value===\"number\"?`${value}px`:value;const s=self.frame.style;s.left=px(box.left);s.top=px(box.top);s.width=px(box.width);s.height=px(box.height);}// The same embed, ignoring UTMs: a visitor who landed on a campaign URL and then navigated\n// internally has lost them from the address bar, but the warm frame still carries them.\nfunction sameEmbed(a,b){const strip=value=>{try{const url=new URL(value);for(const key of UTM_KEYS)url.searchParams.delete(key);return url.toString();}catch{return value;}};return strip(a)===strip(b);}// What our box actually renders at: the modal fades in/out by animating an ancestor's opacity,\n// and the dock lives outside that subtree, so it has to copy the product.\nfunction renderedOpacity(node){let opacity=1;for(let el=node;el&&el!==document.body;el=el.parentElement){const value=parseFloat(getComputedStyle(el).opacity);if(!Number.isNaN(value))opacity*=value;}return opacity;}// Highest z-index among our ancestors: the overlay's stacking level. The dock is appended to\n// <body> after the overlay, so at the same z-index it paints above it.\nfunction stackLevel(node){let level=1;for(let el=node;el&&el!==document.body;el=el.parentElement){const value=parseInt(getComputedStyle(el).zIndex,10);if(!Number.isNaN(value))level=Math.max(level,value);}return level;}/**\n * A placeholder of Calendly's own card. Two layouts, matching the two Calendly serves:\n * a 50/50 split with a vertical hairline above TWO_COLUMN_MIN_WIDTH, and a centred single\n * column with a horizontal divider below it. Geometry measured off the live card.\n */function CalendlySkeleton(props){const{width,height,textColor,animate,reduceMotion}=props;const twoColumn=width>=TWO_COLUMN_MIN_WIDTH;const compact=width<=FULL_BLEED_MAX_WIDTH;// The skeleton stands in for the card Calendly draws first — the collapsed 800 one — so on\n// a layer sized for the expanded card it has to carry the same margin the real card does,\n// or the cross-fade lands off-grid.\nconst cardGutter=twoColumn?Math.max(0,Math.round((width-TWO_COLUMN_CARD_WIDTH)/2)):0;const tone=useMemo(()=>({bar:rgba(textColor,.085),soft:rgba(textColor,.055),line:rgba(textColor,.1)}),[textColor]);const sweep=animate&&!reduceMotion;const pulse=animate&&reduceMotion;return /*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:0,zIndex:1,overflow:\"hidden\",display:\"flex\",boxSizing:\"border-box\",paddingLeft:cardGutter,paddingRight:cardGutter,// Gentle easeInOut, not the site's movement curve: a strong ease-out on a\n// pure opacity fade front-loads the change and reads as a flash.\nanimation:pulse?`${PULSE_NAME} 2s ease-in-out infinite`:undefined},children:[/*#__PURE__*/_jsx(\"style\",{children:KEYFRAMES}),twoColumn?/*#__PURE__*/_jsx(TwoColumn,{height:height,tone:tone}):/*#__PURE__*/_jsx(OneColumn,{width:width,compact:compact,tone:tone}),sweep?/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,bottom:0,left:0,width:\"45%\",transform:\"translate3d(-120%, 0, 0)\",// Peak alpha is deliberately short of opaque: a full-strength sweep\n// erases the placeholders as it passes, which reads as content\n// disappearing rather than loading.\nbackground:`linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.6) 50%, rgba(255,255,255,0) 100%)`,animation:`${SWEEP_NAME} 1.7s ease-in-out infinite`,willChange:\"transform\",pointerEvents:\"none\"}}):null]});}/**\n * Desktop card, 800x562. Offsets below are the measured y of each block on the live card,\n * so the skeleton and the thing replacing it share a baseline grid.\n */function TwoColumn(props){const{tone}=props;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{style:{...columnStyle,width:\"50%\",padding:\"26px 28px 24px 30px\"},children:[/*#__PURE__*/_jsx(Bar,{w:88,h:13,tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:11}),/*#__PURE__*/_jsx(Bar,{w:232,h:22,tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:10}),/*#__PURE__*/_jsx(Bar,{w:150,h:22,tone:tone}),/*#__PURE__*/_jsx(Gap,{h:30}),/*#__PURE__*/_jsx(MetaRow,{tone:tone,lines:[58]}),\" \",/*#__PURE__*/_jsx(Gap,{h:24}),/*#__PURE__*/_jsx(MetaRow,{tone:tone,lines:[210,120]}),\" \",/*#__PURE__*/_jsx(Gap,{h:22}),/*#__PURE__*/_jsx(Bar,{w:\"94%\",h:12,tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:11}),/*#__PURE__*/_jsx(Bar,{w:\"90%\",h:12,tone:tone}),/*#__PURE__*/_jsx(Gap,{h:11}),/*#__PURE__*/_jsx(Bar,{w:\"58%\",h:12,tone:tone}),/*#__PURE__*/_jsx(\"div\",{style:{flex:1,minHeight:16}}),/*#__PURE__*/_jsx(Bar,{w:84,h:13,tone:tone}),\" \"]}),/*#__PURE__*/_jsx(\"div\",{style:{width:1,background:tone.line}}),/*#__PURE__*/_jsxs(\"div\",{style:{...columnStyle,width:\"50%\",padding:\"30px 20px 24px 22px\"},children:[/*#__PURE__*/_jsx(Bar,{w:190,h:20,tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:50}),/*#__PURE__*/_jsx(MonthNav,{tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:30}),/*#__PURE__*/_jsx(WeekdayRow,{tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:12}),/*#__PURE__*/_jsx(DayGrid,{tone:tone,size:44}),\" \",/*#__PURE__*/_jsx(Gap,{h:35}),/*#__PURE__*/_jsx(Bar,{w:62,h:11,tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:16}),/*#__PURE__*/_jsx(MetaRow,{tone:tone,lines:[168],circle:16}),/*#__PURE__*/_jsx(\"div\",{style:{flex:1,minHeight:0}})]})]});}/**\n * Tablet / phone card. Calendly stacks to one centred column with a rule above the calendar.\n * Offsets are the measured y of each block on the live 680x854 card; `compact` tightens them\n * for the 342-wide phone layout, where Calendly drops the second meta item and wraps the title.\n */function OneColumn(props){const{width,compact,tone}=props;const pad=compact?22:28;// Calendly centres a content column rather than filling the card.\nconst inner=Math.max(180,Math.min(width-pad*2,372));const g=(roomy,tight)=>compact?tight:roomy;return /*#__PURE__*/_jsxs(\"div\",{style:{...columnStyle,width:\"100%\",padding:`${g(56,34)}px ${pad}px ${pad}px`,alignItems:\"center\"},children:[/*#__PURE__*/_jsx(Bar,{w:80,h:12,tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:g(11,10)}),/*#__PURE__*/_jsx(Bar,{w:compact?\"88%\":356,h:g(25,24),tone:tone}),\" \",compact?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Gap,{h:10}),/*#__PURE__*/_jsx(Bar,{w:\"58%\",h:24,tone:tone})]}):null,/*#__PURE__*/_jsx(Gap,{h:g(28,20)}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:18,flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsx(MetaRow,{tone:tone,lines:[52],circle:18}),compact?null:/*#__PURE__*/_jsx(MetaRow,{tone:tone,lines:[262],circle:18})]}),/*#__PURE__*/_jsx(Gap,{h:g(34,22)}),/*#__PURE__*/_jsxs(\"div\",{style:{width:inner,display:\"flex\",flexDirection:\"column\"},children:[/*#__PURE__*/_jsx(Bar,{w:\"100%\",h:12,tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:11}),/*#__PURE__*/_jsx(Bar,{w:\"94%\",h:12,tone:tone}),/*#__PURE__*/_jsx(Gap,{h:11}),/*#__PURE__*/_jsx(Bar,{w:\"62%\",h:12,tone:tone})]}),/*#__PURE__*/_jsx(Gap,{h:g(8,18)}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:1,background:tone.line}}),\" \",/*#__PURE__*/_jsx(Gap,{h:g(61,20)}),/*#__PURE__*/_jsxs(\"div\",{style:{width:inner,display:\"flex\",flexDirection:\"column\"},children:[/*#__PURE__*/_jsx(Bar,{w:190,h:20,tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:g(44,26)}),/*#__PURE__*/_jsx(MonthNav,{tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:g(35,22)}),/*#__PURE__*/_jsx(WeekdayRow,{tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:g(33,20)}),/*#__PURE__*/_jsx(DayGrid,{tone:tone,size:compact?34:44}),\" \",/*#__PURE__*/_jsx(Gap,{h:g(13,18)}),/*#__PURE__*/_jsx(Bar,{w:62,h:11,tone:tone}),\" \",/*#__PURE__*/_jsx(Gap,{h:g(12,10)}),/*#__PURE__*/_jsx(MetaRow,{tone:tone,lines:[compact?150:178],circle:16})]})]});}/* --------------------------------------------------------------- primitives */function Bar(props){const{w,h,tone,soft}=props;return /*#__PURE__*/_jsx(\"div\",{style:{width:w,height:h,flexShrink:0,borderRadius:Math.min(6,h/2),background:soft?tone.soft:tone.bar}});}function Gap(props){return /*#__PURE__*/_jsx(\"div\",{style:{height:props.h,flexShrink:0}});}function MetaRow(props){const{tone,lines,circle=22}=props;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"flex-start\",gap:12},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:circle,height:circle,borderRadius:\"50%\",background:tone.bar,flexShrink:0}}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:8,paddingTop:Math.max(0,(circle-12)/2)},children:lines.map((w,index)=>/*#__PURE__*/_jsx(Bar,{w:w,h:12,tone:tone},index))})]});}function MonthNav(props){const{tone}=props;const chevron=/*#__PURE__*/_jsx(\"div\",{style:{width:9,height:15,borderRadius:3,background:tone.bar,flexShrink:0}});return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:28},children:[chevron,/*#__PURE__*/_jsx(Bar,{w:112,h:14,tone:tone}),chevron]});}function WeekdayRow(props){const{tone}=props;return /*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns:\"repeat(7, 1fr)\",alignItems:\"center\",justifyItems:\"center\"},children:Array.from({length:7},(_,index)=>/*#__PURE__*/_jsx(Bar,{w:24,h:10,tone:tone},index))});}function DayGrid(props){const{tone,size}=props;const cells=Array.from({length:GRID_ROWS*7},(_,index)=>{const day=index-GRID_LEAD_BLANKS;return day>=0&&day<GRID_DAYS;});return /*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns:\"repeat(7, 1fr)\",rowGap:8,justifyItems:\"center\"},children:cells.map((filled,index)=>/*#__PURE__*/_jsx(\"div\",{style:{width:size,height:size,borderRadius:\"50%\",background:filled?tone.soft:\"transparent\"}},index))});}/* ------------------------------------------------------------------- styles */const SWEEP_NAME=\"framerCalendlySkeletonSweep\";const PULSE_NAME=\"framerCalendlySkeletonPulse\";const KEYFRAMES=`\n@keyframes ${SWEEP_NAME} {\n  from { transform: translate3d(-120%, 0, 0); }\n  to   { transform: translate3d(340%, 0, 0); }\n}\n@keyframes ${PULSE_NAME} {\n  0%, 100% { opacity: 1; }\n  50%      { opacity: 0.64; }\n}\n`;const columnStyle={display:\"flex\",flexDirection:\"column\",boxSizing:\"border-box\",height:\"100%\",minWidth:0};const srOnly={position:\"absolute\",width:1,height:1,margin:-1,padding:0,overflow:\"hidden\",clip:\"rect(0 0 0 0)\",whiteSpace:\"nowrap\",border:0};/* -------------------------------------------------------------------- utils *//**\n * Size and offset the iframe so Calendly's card lands flush with our edges.\n * Returns a plain fill when trimming is off or the viewport is too narrow for Calendly to\n * draw a card at all.\n */function getFrameBox(width,height,trimPadding){const fill={left:0,top:0,width:\"100%\",height:\"100%\"};if(!trimPadding||width<=0)return fill;if(width<=FULL_BLEED_MAX_WIDTH)return fill// Calendly already fills the viewport\n;// Two columns: choose the iframe width whose EXPANDED card is exactly this layer wide, so\n// picking a date fills the layer instead of overflowing it, and the collapsed 800 card sits\n// centred inside — white on white. One column: the card never changes width.\nconst embedWidth=width>=TWO_COLUMN_MIN_WIDTH?Math.max(TWO_COLUMN_EMBED_MIN,Math.ceil(Math.min(width,EXPANDED_CARD_MAX)/EXPANDED_CARD_RATIO)):width+ONE_COLUMN_GUTTER;return{left:-Math.round((embedWidth-width)/2),top:-CARD_TOP,width:embedWidth,height:height+CARD_TOP+CARD_BOTTOM_SLACK};}function buildSrc(options){const{eventURL,origin,utm,primaryColor,backgroundColor,textColor}=options;if(!eventURL)return\"\";let parsed;try{parsed=new URL(eventURL);}catch{return\"\";}const params=parsed.searchParams;params.set(\"embed_type\",\"Inline\");if(origin)params.set(\"embed_domain\",origin);for(const[key,value]of Object.entries(utm))params.set(key,value);const primary=hex(primaryColor);if(primary)params.set(\"primary_color\",primary);const background=hex(backgroundColor);if(background)params.set(\"background_color\",background);const text=hex(textColor);if(text)params.set(\"text_color\",text);return parsed.toString();}function readUtm(search){const found={};const params=new URLSearchParams(search);for(const key of UTM_KEYS){const value=params.get(key);if(value)found[key]=value.slice(0,200);}return found;}function isCalendlyOrigin(origin){let host=\"\";try{host=new URL(origin).hostname;}catch{return false;}return host===\"calendly.com\"||host.endsWith(\".calendly.com\");}// gtag when it exists; otherwise a GTM custom event (`{ event: name }`) for a GA4 Event tag.\n// Never both, or the event would be counted twice.\nfunction track(name){if(typeof window===\"undefined\")return;const w=window;const params={method:\"calendly\",page_path:w.location.pathname};if(typeof w.gtag===\"function\"){w.gtag(\"event\",name,params);return;}w.dataLayer=w.dataLayer||[];w.dataLayer.push({event:name,...params});}// Calendly wants bare 6-digit hex, no \"#\".\nfunction hex(value){if(typeof value!==\"string\")return\"\";const match=value.trim().match(/^#?([0-9a-fA-F]{6})$/);return match?match[1].toLowerCase():\"\";}// Skeleton tones are the text colour at low alpha, so they sit in the card's own palette.\nfunction rgba(value,alpha){const match=typeof value===\"string\"?value.trim().match(/^#?([0-9a-fA-F]{6})$/):null;if(!match)return`rgba(11, 27, 51, ${alpha})`;const int=parseInt(match[1],16);return`rgba(${int>>16&255}, ${int>>8&255}, ${int&255}, ${alpha})`;}CalendlyEmbed.defaultProps={eventURL:\"https://calendly.com/al-builtfortomorrow/30min\",trimPadding:true,primaryColor:\"#8247F5\",backgroundColor:\"#FFFFFF\",textColor:\"#0B1B33\",radius:20,showSkeleton:true};addPropertyControls(CalendlyEmbed,{eventURL:{type:ControlType.String,title:\"Event URL\",placeholder:\"https://calendly.com/you/30min\",description:\"Use the full EVENT url. A profile url makes Calendly show its event picker first.\"},trimPadding:{type:ControlType.Boolean,title:\"Trim\",enabledTitle:\"Card\",disabledTitle:\"Page\",description:\"Crops Calendly's page padding so its card sits flush. Size this layer to the card: 900\\xd7562 for two columns — 900, not 800, because the card widens when a date is picked — or 680\\xd7854 for one.\"},showSkeleton:{type:ControlType.Boolean,title:\"Loading\",enabledTitle:\"Skeleton\",disabledTitle:\"Off\",defaultValue:true,description:\"Calendly is preloaded once the page is idle. If the modal opens before it is ready, this covers the wait with a placeholder of its own layout, then cross-fades to the embed.\"},primaryColor:{type:ControlType.Color,title:\"Accent\"},backgroundColor:{type:ControlType.Color,title:\"Background\"},textColor:{type:ControlType.Color,title:\"Text\"},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:48,step:1,displayStepper:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CalendlyEmbed\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CalendlyEmbed.map"],"mappings":"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"}