PageSourceSearch

https://eltonboocock.com/_next/static/chunks/011pu5_n69cpd.js

js eltonboocock.com collected 2026-10-05 10:34:32 UTC 24,400 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,46221,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function i(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,a(e));else t.set(r,a(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},94175,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return b},MiddlewareNotFoundError:function(){return k},MissingStaticPage:function(){return v},NormalizeError:function(){return g},PageNotFoundError:function(){return y},SP:function(){return p},ST:function(){return x},WEB_VITALS:function(){return i},execOnce:function(){return a},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return s},isResSent:function(){return m},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return f},stringifyError:function(){return j}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>l.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function m(e){return e.finished||e.headersSent}function f(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&m(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let p="u">typeof performance,x=p&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class b extends Error{}class g extends Error{}class y extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class k extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function j(e){return JSON.stringify({message:e.message,stack:e.stack})}},15253,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},99468,(e,t,r)=>{t.exports=e.r(44900)},96301,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return l},formatWithValidation:function(){return u},urlObjectKeys:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(12598)._(e.r(46221)),a=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",l=e.hash||"",s=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:r&&(u=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(u+=":"+e.port)),s&&"object"==typeof s&&(s=String(i.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||a.test(n))&&!1!==u?(u="//"+(u||""),o&&"/"!==o[0]&&(o="/"+o)):u||(u=""),l&&"#"!==l[0]&&(l="#"+l),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${u}${o}${c}${l}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return l(e)}},24213,(e,t,r)=>{"use strict";
1Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(38978);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=i(e,n)),t&&(o.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91637,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return i}});let n=e.r(94175),o=e.r(90132);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},47837,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},72675,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return b},useLinkStatus:function(){return y}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(12598),a=e.r(96825),l=i._(e.r(38978)),s=e.r(96301),u=e.r(81038),c=e.r(24213),d=e.r(94175),m=e.r(1228);e.r(15253);let f=e.r(12876),h=e.r(99689),p=e.r(91637),x=e.r(28829);function b(t){var r,n;let o,i,b,[y,v]=(0,l.useOptimistic)(h.IDLE_LINK_STATUS),k=(0,l.useRef)(null),{href:j,as:w,children:N,prefetch:S=null,passHref:E,replace:C,shallow:P,scroll:T,onClick:I,onMouseEnter:O,onTouchStart:_,legacyBehavior:$=!1,onNavigate:U,transitionTypes:L,ref:M,unstable_dynamicOnHover:B,...D}=t;o=N,$&&("string"==typeof o||"number"==typeof o)&&(o=(0,a.jsx)("a",{children:o}));let R=l.default.useContext(u.AppRouterContext),F=!1!==S,A=!1!==S?null===(n=S)||"auto"===n?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,z="string"==typeof(r=w||j)?r:(0,s.formatUrl)(r);if($){if(o?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});i=l.default.Children.only(o)}let K=$?i&&"object"==typeof i&&i.ref:M,W=l.default.useCallback(e=>(null!==R&&(k.current=(0,h.mountLinkInstance)(e,z,R,A,F,v)),()=>{k.current&&((0,h.unmountLinkForCurrentNavigation)(k.current),k.current=null),(0,h.unmountPrefetchableInstance)(e)}),[F,z,R,A,v]),G={ref:(0,c.useMergedRef)(W,K),onClick(t){$||"function"!=typeof I||I(t),$&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!R||t.defaultPrevented||function(t,r,n,o,i,a,s){if("u">typeof window){let u,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,p.isLocalURL)(r)){o&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),a){let e=!1;if(a({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(88837);l.default.startTransition(()=>{d(r,o?"replace":"push",!1===i?f.ScrollBehavior.NoScroll:f.ScrollBehavior.Default,n.current,s)})}}(t,z,k,C,T,U,L)},onMouseEnter(e){$||"function"!=typeof O||O(e),$&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),R&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===B)},onTouchStart:function(e){$||"function"!=typeof _||_(e),$&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),R&&F&&(0,h.onNavigationIntent)(e.currentTarget,!0===B)}};return(0,d.isAbsoluteUrl)(z)?G.href=z:$&&!E&&("a"!==i.type||"href"in i.props)||(G.href=(0,m.addBasePath)(z)),b=$?l.default.cloneElement(i,G):(0,a.jsx)("a",{...D,...G,children:o}),(0,a.jsx)(g.Provider,{value:y,children:b})}e.r(47837);let g=(0,l.createContext)(h.IDLE_LINK_STATUS),y=()=>(0,l.useContext)(g);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esMo
1dule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},44674,e=>{"use strict";var t=e.i(96825);e.s(["LinkedInIcon",0,function({size:e=16,...r}){return(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,...r,children:(0,t.jsx)("path",{d:"M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.95v5.66H9.36V9h3.41v1.56h.05c.47-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28zM5.34 7.43a2.06 2.06 0 1 1 0-4.13 2.06 2.06 0 0 1 0 4.13zM7.12 20.45H3.56V9h3.56v11.45zM22.23 0H1.77C.79 0 0 .77 0 1.72v20.56C0 23.23.79 24 1.77 24h20.46C23.21 24 24 23.23 24 22.28V1.72C24 .77 23.21 0 22.23 0z"})})}])},51825,e=>{"use strict";var t=e.i(96825),r=e.i(72675),n=e.i(99468);let o=(0,e.i(43873).default)("mic",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]);var i=e.i(44674),a=e.i(36968);let l=[{hash:"#thinking",label:"Thinking"},{hash:"#ecosystem",label:"Work"},{hash:"#timestamp",label:"Timestamp"},{hash:"#speaking",label:"Speaking"},{hash:"#writing",label:"Writing"}];e.s(["Nav",0,function(){let{openBookSpeakModal:e}=(0,a.useBookSpeakModal)(),s=(0,n.usePathname)();return(0,t.jsxs)("nav",{className:"fixed inset-x-0 top-0 z-50 flex items-center justify-between border-b border-ink/10 bg-cream px-6 py-4 sm:px-8 md:px-10","aria-label":"Primary",children:[(0,t.jsx)(r.default,{href:"/#top",className:"font-display text-[20px] font-medium tracking-tight",children:"Elton Boocock"}),(0,t.jsxs)("div",{className:"hidden items-center gap-7 text-[12px] font-medium uppercase tracking-[0.15em] md:flex",children:[l.map(e=>{var n;return"/"===s?(0,t.jsx)("a",{href:e.hash,className:"link-underline",children:e.label},e.hash):(0,t.jsx)(r.default,{href:(n=e.hash,"/"===s?n:`/${n}`),className:"link-underline",children:e.label},e.hash)}),(0,t.jsx)(r.default,{href:"/blog",className:"link-underline",children:"Blog"}),(0,t.jsxs)("a",{href:"https://www.linkedin.com/in/eltonboocock/",target:"_blank",rel:"noopener noreferrer",className:"link-underline",children:[(0,t.jsx)(i.LinkedInIcon,{size:13}),"LinkedIn"]})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>e(),className:"group inline-flex items-center gap-2 rounded-full border border-ink px-4 py-2 text-[12px] font-medium uppercase tracking-[0.1em] transition-colors hover:bg-ink hover:text-cream",children:["Book to speak ",(0,t.jsx)(o,{size:13,"aria-hidden":!0})]})]})}],51825)},65209,e=>{"use strict";var t=e.i(96825),r=e.i(38978),n=e.i(99468);let o="/api/diary";async function i(e){let t=await fetch(`${o}/availability?calendarKey=${encodeURIComponent(e)}`);
1if(!t.ok)throw Error(`Error fetching availability: ${t.statusText}`);return t.json()}async function a(e){try{let t=await fetch(`${o}/book`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)throw Error(`Error submitting booking: ${t.statusText}`);return t.json()}catch{return{success:!1,message:"I could not reach my diary service just then — try again in a moment."}}}function l(e){return`/Images/${encodeURIComponent(e)}`}let s={"Urban Media":{label:"Urban Media",logoUrl:l("Urban Media.svg")},"Business Pilot":{label:"Business Pilot",logoUrl:l("Business Pilot.svg")},thinkivity:{label:"thinkivity",logoUrl:l("thinkivity.svg")},Other:{label:"Other",logoUrl:l("EB Icon.png")}};function u({src:e,label:n,className:o}){let[i,a]=(0,r.useState)(!1);return i?(0,t.jsx)("span",{className:`font-display text-[15px] font-medium tracking-tight text-ink sm:text-[17px] ${o??""}`,children:n}):(0,t.jsx)("img",{src:e,alt:"",className:o,loading:"lazy",decoding:"async",onError:()=>a(!0)})}let c=["Urban Media","Business Pilot","thinkivity","Other"];class d extends r.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error("BookingErrorBoundary:",e,t)}render(){return this.state.hasError?(0,t.jsxs)("div",{className:"rounded-lg border border-ink/10 bg-stone/40 px-6 py-10 text-center",children:[(0,t.jsx)("h2",{className:"font-display text-xl text-ink",children:"That was not supposed to happen"}),(0,t.jsx)("p",{className:"mt-3 text-[15px] leading-relaxed text-ash",children:"Something glitched on my side. Give the page a quick refresh — if it keeps happening, email me at [email protected] and I will sort it."}),(0,t.jsx)("button",{type:"button",onClick:()=>window.location.reload(),className:"mt-6 rounded-full border border-ink bg-ink px-6 py-3 text-[12px] font-medium uppercase tracking-[0.1em] text-cream transition-colors hover:bg-ember",children:"Try again"})]}):this.props.children}}function m(e){let[t,r,n]=e.split("-"),o=new Date(Date.UTC(Number(t),Number(r)-1,Number(n),12,0,0)),i=new Intl.DateTimeFormat("en-GB",{timeZone:"Europe/London",weekday:"long"}).format(o),a=Number(new Intl.DateTimeFormat("en-GB",{timeZone:"Europe/London",day:"numeric"}).format(o)),l=new Intl.DateTimeFormat("en-GB",{timeZone:"Europe/London",month:"long"}).format(o),s=Number(new Intl.DateTimeFormat("en-GB",{timeZone:"Europe/London",year:"numeric"}).format(o)),u="th";return 1===a||21===a||31===a?u="st":2===a||22===a?u="nd":(3===a||23===a)&&(u="rd"),`${i}, ${a}${u} ${l} ${s}`}function f(){return(0,t.jsxs)("div",{className:"flex flex-col items-center py-10",children:[(0,t.jsxs)("div",{className:"relative h-20 w-[60px] overflow-hidden rounded border-2 border-ink/80 bg-cream px-2.5 pt-2.5 shadow-sm",children:[(0,t.jsx)("div",{className:"space-y-2",children:[0,1,2,3,4].map(e=>(0,t.jsx)("div",{className:"h-0.5 w-full bg-ink/15"},e))}),(0,t.jsx)("div",{className:"booking-diary-scan pointer-events-none absolute inset-x-0 top-0 h-1/4 bg-gradient-to-b from-transparent via-ember/45 to-transparent","aria-hidden":!0})]}),(0,t.jsx)("p",{className:"mt-6 text-[15px] italic text-mute",children:"Give me a moment — I am checking where we could both be free…"})]})}function h({onSelect:e}){return(0,t.jsxs)("div",{className:"mt-10 w-full",children:[(0,t.jsx)("h2",{className:"font-display max-w-2xl text-[clamp(26px,3.5vw,40px)] font-normal leading-tight tracking-tight text-ink",children:"Who should I book this under for you?"}),(0,t.jsx)("p",{className:"mt-4 max-w-xl text-[16px] leading-relaxed text-ash",children:"I wear a few hats — choose the one that matches why we are meeting, so I send the invite from the right place. What you see next is my real availability across those diaries, stitched together so neither of us wastes time."}),(0,t.jsx)("div",{className:"mx-auto mt-10 grid w-full max-w-[1120px] grid-cols-2 justify-items-stretch gap-3 sm:grid-cols-3 sm:gap-4 md:grid-cols-5",children:c.map(r=>{let n=s[r];return n?(0,t.jsx)("button",{type:"button",onClick:()=>e(r),className:"flex h-[132px] w-full flex-col items-center justify-center rounded-2xl border border-ink/10 bg-cream px-3 py-4 transition hover:border-ember/35 hover:bg-stone/60 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ember sm:h-[140px] sm:px-4",children:(0,t.jsx)(u,{src:n.logoUrl,label:n.label,className:"max-h-[72px] w-full max-w-[180px] object-contain"})},r):null})})]})}function p(){return(0,t.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,
1children:(0,t.jsx)("path",{d:"m18 15-6-6-6 6"})})}function x(){return(0,t.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:(0,t.jsx)("path",{d:"m6 9 6 6 6-6"})})}function b({dayKeys:e,groupedSlots:n,selectedSlot:o,onSlotSelect:i,disabled:a}){let[l,s]=(0,r.useState)(0);if((0,r.useEffect)(()=>{s(t=>t>e.length-1?0:t)},[e.length]),0===e.length)return null;let u=Math.min(l,e.length-1),c=e[u],d=n[c]??[],f=u===e.length-1,h="flex h-9 w-9 items-center justify-center rounded-full border border-ink/15 bg-cream text-ink transition-colors hover:border-ink/30 hover:bg-stone/50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ember disabled:cursor-not-allowed disabled:opacity-30 disabled:hover:border-ink/15 disabled:hover:bg-cream";return(0,t.jsxs)("div",{className:"overflow-hidden rounded-2xl border border-ink/10 bg-cream/60",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b border-ink/10 px-5 py-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"font-display text-[20px] font-medium tracking-tight text-ink",children:m(c)}),(0,t.jsxs)("p",{className:"mt-1 text-[11px] uppercase tracking-[0.18em] text-mute",children:["Day ",u+1," of ",e.length]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("button",{type:"button","aria-label":"Show an earlier day",disabled:a||0===u,onClick:()=>s(u-1),className:h,children:(0,t.jsx)(p,{})}),(0,t.jsx)("button",{type:"button","aria-label":"Show a later day",disabled:a||f,onClick:()=>s(u+1),className:h,children:(0,t.jsx)(x,{})})]})]}),(0,t.jsx)("div",{className:"max-h-[220px] overflow-y-auto px-5 py-5",children:(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:d.map(e=>(0,t.jsx)("button",{type:"button",disabled:a,onClick:()=>i(e),className:`rounded-full border px-4 py-2.5 text-[12px] font-medium uppercase tracking-[0.08em] transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ember disabled:cursor-not-allowed disabled:opacity-45 ${o===e?"border-ember bg-ember text-cream":"border-ink/15 bg-cream text-ink hover:border-ink/30 hover:bg-stone/50"}`,children:e.split(" ")[1]},e))})})]})}function g(){let e=(0,n.useSearchParams)().get("calendar")??"";return(0,t.jsx)(y,{calendarQuery:e},e)}function y({calendarQuery:e}){let n,o,l,c=e&&s[e]?e:null,[d,p]=(0,r.useState)(null),x=d??c,[g,v]=(0,r.useState)([]),[k,j]=(0,r.useState)(!0),[w,N]=(0,r.useState)(null),[S,E]=(0,r.useState)(null),[C,P]=(0,r.useState)(null),[T,I]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=!1;return i("combined").then(t=>{e||(v(t.slots),j(!1))}).catch(t=>{console.error(t),e||(v([]),j(!1))}),()=>{e=!0}},[]);let O=async e=>{e.preventDefault(),E(null),P(null);let t=new FormData(e.currentTarget),r=t.get("name"),n=t.get("email");if(!x)return void E("Choose which company this is for — I need that before I can book you in.");if(!w)return void E("Pick a time that works for you — I cannot hold a slot until you choose one.");if(!r?.trim()||!n?.trim())return void E("I need your name and email so I know who the invite is for.");I(!0);let o={calendarKey:x,slot:w,name:r.trim(),email:n.trim()};try{let e=await a(o);if(e.success){let e=r.trim().split(" ")[0],[t,n]=w.split(" "),o=m(t),i=n.replace(":",".");P(`Hey ${e} — you are in. I have blocked ${i} on ${o} for us, and I am already looking forward to our chat.`)}else E(e.message||"That did not go through — mind trying once more, or emailing me if it persists?")}catch{E("I could not reach my booking service just then. Try again in a moment, or email me if it keeps failing.")}finally{I(!1)}},_=x?s[x]:void 0,$=(l={},(o=function(e){let[t,r,n]=e.split("-").map(Number),o=new Date(Date.UTC(t,r-1,n+27)),i=o.getUTCFullYear(),a=o.getUTCMonth()+1,l=o.getUTCDate();return`${i}-${String(a).padStart(2,"0")}-${String(l).padStart(2,"0")}`}(n=new Intl.DateTimeFormat("en-CA",{timeZone:"Europe/London",year:"numeric",month:"2-digit",day:"2-digit"}).format(new Date)),g.filter(e=>{let t=e.split(" ")[0]??"";return t>=n&&t<=o}
1)).forEach(e=>{let t=e.split(" ")[0];l[t]||(l[t]=[]),l[t].push(e)}),l),U=Object.keys($).sort();return(0,t.jsxs)("div",{className:"w-full text-left",children:[x&&_?(0,t.jsx)("div",{className:"mx-auto mt-10 max-w-2xl border-t border-ink/10 pt-10",children:(0,t.jsx)(u,{src:_.logoUrl,label:_.label,className:"max-h-[52px] max-w-[200px] object-contain"})}):null,C||x?null:(0,t.jsx)(h,{onSelect:e=>p(e)}),C?(0,t.jsx)("div",{className:"mx-auto mt-12 max-w-2xl rounded-lg border border-ink/10 bg-stone/50 px-6 py-8 text-[17px] leading-relaxed text-ash",children:C}):(0,t.jsx)(t.Fragment,{children:x?(0,t.jsxs)("div",{className:"mx-auto mt-12 max-w-2xl space-y-10",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"font-display text-[clamp(26px,3.5vw,40px)] font-normal leading-tight tracking-tight text-ink",children:"When suits you?"}),(0,t.jsx)("p",{className:"mt-3 max-w-xl text-[14px] leading-relaxed text-mute",children:"I have already cross-checked my diaries for you. The company you chose tells me where to send the invite from — the times you see are genuinely when I can give you my full attention."})]}),k?(0,t.jsx)(f,{}):U.length>0?(0,t.jsx)(b,{dayKeys:U,groupedSlots:$,selectedSlot:w,onSlotSelect:N,disabled:!!C}):(0,t.jsx)("p",{className:"text-[15px] text-ash",children:"I cannot see a gap for us in the next four weeks — I am sorry about that. Drop me an email and we will find another way to connect."}),(0,t.jsx)("p",{className:"text-[15px] text-ash",children:w?(0,t.jsxs)(t.Fragment,{children:["You have chosen"," ",(0,t.jsx)("span",{className:"font-medium text-ink",children:w}),"— I will hold that for you while you add your details below."]}):"Tap a time above when you are ready — I will follow your lead."}),(0,t.jsxs)("div",{className:"border-t border-ink/10 pt-10",children:[(0,t.jsx)("h2",{className:"font-display text-[clamp(22px,2.8vw,32px)] font-normal tracking-tight text-ink",children:"So I know it is you"}),S?(0,t.jsx)("p",{className:"mt-4 rounded-md border border-ember/30 bg-ember/10 px-4 py-3 text-[14px] text-ink",role:"alert",children:S}):null,(0,t.jsxs)("form",{onSubmit:O,className:"mt-8 space-y-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"booking-name",className:"mb-2 block text-[11px] font-medium uppercase tracking-[0.18em] text-mute",children:"Your name"}),(0,t.jsx)("input",{id:"booking-name",name:"name",type:"text",autoComplete:"name",disabled:!!C,className:"w-full max-w-md border-0 border-b border-ink/20 bg-transparent py-2 text-[17px] text-ink placeholder:text-mute/60 focus:border-ember focus:outline-none"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{htmlFor:"booking-email",className:"mb-2 block text-[11px] font-medium uppercase tracking-[0.18em] text-mute",children:"Your email"}),(0,t.jsx)("input",{id:"booking-email",name:"email",type:"email",autoComplete:"email",disabled:!!C,className:"w-full max-w-md border-0 border-b border-ink/20 bg-transparent py-2 text-[17px] text-ink placeholder:text-mute/60 focus:border-ember focus:outline-none"})]}),(0,t.jsx)("button",{type:"submit",disabled:T,className:"inline-flex items-center justify-center rounded-full border border-ink bg-ink px-8 py-4 text-[13px] font-medium tracking-wide text-cream transition-colors hover:bg-ember disabled:cursor-not-allowed disabled:opacity-50",children:T?"Locking it in…":"Confirm our meeting"})]})]})]}):null})]})}function v(){return(0,t.jsx)("div",{className:"mx-auto max-w-2xl py-12",children:(0,t.jsx)(f,{})})}e.s(["BookingFlow",0,function(){return(0,t.jsx)(d,{children:(0,t.jsx)(r.Suspense,{fallback:(0,t.jsx)(v,{}),children:(0,t.jsx)(g,{})})})}],65209)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.