{"version":3,"file":"shared-lib.BsWRR75a.mjs","names":["useId","useMemo","useState","useReducer","useCallback","useRef","React.useContext","React.useMemo","React.Fragment","React.forwardRef","useRef","React.useId","Image1","metadata","metadata","siteMetadata","metadataVersion","__FramerMetadata__","siteMetadata"],"sources":["https:/framerusercontent.com/modules/JH2F7wz5JPOOMra0CRaS/0rg3WiQCHYiid0wafl12/BookingWidget.js","https:/framerusercontent.com/modules/EbWgQn0FkAqAp3T9KieO/AOb8WmbzIueoYlCZbfel/HK6_exVht.js","https:/framerusercontent.com/modules/hGWQ6DoocusTRlKjXbzF/itczqvbEqpED3jEVlLGI/siteMetadata.js","https:/framerusercontent.com/modules/1wb0VjGrzVfC2RTysQpE/Ij7TPdHN2LG26SJeimtI/augiA20Il.js","https:/framerusercontent.com/modules/SGdurY8OZ7ViJt6D02Ix/JXaJaFm8MEgCCIeguEb2/LRJyJlCzW.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useCallback,useEffect,useId,useMemo,useReducer,useRef,useState}from\"react\";/**\n * Booking Widget\n *\n * A self-contained appointment booking flow for Framer.\n *\n * Runs standalone on configurable data (Static mode) and is wired to talk to an\n * external booking API (API mode) without any backend assumptions baked in.\n *\n * Times are handled as absolute instants and rendered through Intl in an\n * explicit time zone, so the visitor's clock never silently becomes the\n * business's clock.\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 720\n * @framerIntrinsicHeight 620\n */export default function BookingWidget(props){const{mode=\"static\",// Data (static mode)\nservices=DEFAULT_SERVICES,professionals=DEFAULT_PROFESSIONALS,availability=DEFAULT_AVAILABILITY,// API mode\napi=DEFAULT_API,// Flow\nsteps=DEFAULT_STEPS,form=DEFAULT_FORM,confirmation=DEFAULT_CONFIRMATION,// Locale & time\nlocale=\"en\",text={},businessTimeZone=\"\",showTimeZoneNote=true,hour12=true,firstDayOfWeek=1,// Branding\ntheme=DEFAULT_THEME,font,headingFont,spacing=16,// Layout\nlayout=\"auto\",splitBelow=680,// Advanced\npreviewState=\"auto\",style}=props;const rawId=useId();const uid=useMemo(()=>\"bkw\"+rawId.replace(/[^a-zA-Z0-9]/g,\"\"),[rawId]);const isCanvas=RenderTarget.current()===RenderTarget.canvas;/* --------------------------------------------------------------- clock */// Resolved after mount so server and client markup always agree.\nconst[now,setNow]=useState(null);useEffect(()=>{setNow(Date.now());},[]);const zone=useMemo(()=>resolveTimeZone(businessTimeZone),[businessTimeZone]);/* ------------------------------------------------------------ language */const t=useMemo(()=>buildDictionary(locale,text),[locale,text]);/* ---------------------------------------------------------------- data */const staticServices=useMemo(()=>normalizeServices(services),[JSON.stringify(services??[])]);const staticPros=useMemo(()=>normalizeProfessionals(professionals),[JSON.stringify(professionals??[])]);const remote=useRemoteCatalog({enabled:mode===\"api\"&&!isCanvas&&previewState===\"auto\",api,locale});// On the canvas an API-mode widget has nothing to fetch, so it falls back to\n// the static sample data — an empty editor is a useless editor.\nconst useRemote=mode===\"api\"&&!isCanvas;const allServices=useRemote?remote.services:staticServices;const allProfessionals=useRemote?remote.professionals:staticPros;/* --------------------------------------------------------------- state */const flow=useMemo(()=>buildFlow(steps),[JSON.stringify(steps??{})]);const[state,dispatch]=useReducer(reducer,undefined,()=>initialState());// Reset the flow whenever the enabled steps change on canvas.\nuseEffect(()=>{dispatch({type:\"RESET_INDEX\"});},[flow.length]);const service=allServices.find(s=>s.id===state.serviceId)??null;const professional=allProfessionals.find(p=>p.id===state.professionalId)??null;// \"Any available\" is a real choice, not a missing one — it must survive\n// into the summary and the confirmation.\nconst professionalLabel=state.professionalId?state.professionalId===ANY_PROFESSIONAL?t.anyProfessional:professional?.name??\"\":\"\";/* -------------------------------------------------------- availability */const slotSource=useSlots({mode,isCanvas,previewState,api,availability,zone,now,monthCursor:state.monthCursor,serviceId:state.serviceId,// \"Any\" is a UI concept; the API just gets no professional filter.\nprofessionalId:state.professionalId===ANY_PROFESSIONAL?\"\":state.professionalId,service});const slotsByDay=slotSource.slotsByDay;/* ------------------------------------------------------------- status */// A designer-facing override so every state can be styled on canvas.\nconst forced=previewState!==\"auto\"?previewState:null;const status=forced?forced:state.status!==\"idle\"?state.status:mode===\"api\"&&(remote.loading||slotSource.loading)?\"loading\":remote.error||slotSource.error?\"error\":\"ready\";const errorMessage=state.error||remote.error||slotSource.error||t.errorBody;/* ------------------------------------------------------------- actions */const goBack=useCallback(()=>dispatch({type:\"BACK\"}),[]);const submit=useCallback(async()=>{if(isCanvas)return;dispatch({type:\"SUBMIT_START\"});if(mode!==\"api\"){// Static mode has nothing to talk to; confirm optimistically.\ndispatch({type:\"SUBMIT_OK\",reference:\"\"});return;}try{const reference=await postBooking(api,{serviceId:state.serviceId,professionalId:state.professionalId===ANY_PROFESSIONAL?\"\":state.professionalId,start:state.slot,timeZone:zone,customer:state.customer,locale});dispatch({type:\"SUBMIT_OK\",reference});}catch(e){dispatch({type:\"SUBMIT_FAIL\",error:e?.message?String(e.message):t.errorBody});}},[api,isCanvas,locale,mode,state,t.errorBody,zone]);/* --------------------------------------------------------------- style */const tokens=useMemo(()=>buildTokens(theme,spacing),[JSON.stringify(theme??{}),spacing]);const css=useMemo(()=>buildCSS(uid,tokens,splitBelow),[uid,tokens,splitBelow]);const bodyFont=font||{};const titleFont=headingFont||{};/* -------------------------------------------------------------- render */const current=flow[Math.min(state.index,Math.max(0,flow.length-1))];const isLast=state.index===flow.length-1;// The details step keeps Continue enabled on purpose: a disabled button that\n// never says why is worse than a button that surfaces the errors.\nconst canContinue=current===\"customer\"?true:isStepComplete(current,state,form);const handleNext=()=>{if(current===\"customer\"&&customerErrors(state.customer,form).length){dispatch({type:\"TOUCH\"});return;}if(isLast)submit();else dispatch({type:\"NEXT\",max:flow.length});};const showSplit=layout===\"split\"||layout===\"auto\"&&flow.length>1;// maxWidth comes AFTER Framer's style on purpose. When the layer is set to a\n// fixed width and the page is viewed on a narrower breakpoint, this clamps it\n// to the parent instead of overflowing the screen.\nconst shellStyle={...rootStyle(tokens),...bodyFont,...style,maxWidth:\"100%\",minWidth:0};if(now===null){// One frame of skeleton — the price of never mismatching on hydration.\nreturn /*#__PURE__*/_jsxs(\"div\",{className:`${uid} bkw-root`,style:shellStyle,children:[/*#__PURE__*/_jsx(\"style\",{children:css}),/*#__PURE__*/_jsx(Skeleton,{tokens:tokens,label:t.loading})]});}return /*#__PURE__*/_jsxs(\"div\",{className:`${uid} bkw-root`,style:shellStyle,children:[/*#__PURE__*/_jsx(\"style\",{children:css}),status===\"confirmed\"?/*#__PURE__*/_jsx(Confirmation,{t:t,tokens:tokens,titleFont:titleFont,confirmation:confirmation,service:service,professionalLabel:professionalLabel,slot:state.slot,zone:zone,locale:locale,hour12:hour12,reference:state.reference,onReset:()=>dispatch({type:\"RESET_ALL\"})}):/*#__PURE__*/_jsxs(\"div\",{className:showSplit?\"bkw-split\":\"bkw-single\",children:[showSplit&&/*#__PURE__*/_jsx(Summary,{t:t,tokens:tokens,titleFont:titleFont,flow:flow,index:state.index,service:service,professionalLabel:professionalLabel,slot:state.slot,zone:zone,locale:locale,hour12:hour12,showTimeZoneNote:showTimeZoneNote}),/*#__PURE__*/_jsxs(\"div\",{className:\"bkw-main\",children:[/*#__PURE__*/_jsx(StepHeader,{t:t,tokens:tokens,titleFont:titleFont,step:current,index:state.index,total:flow.length}),status===\"error\"?/*#__PURE__*/_jsx(ErrorState,{t:t,tokens:tokens,message:errorMessage,onRetry:()=>{dispatch({type:\"CLEAR_ERROR\"});slotSource.reload();remote.reload();}}):status===\"loading\"?/*#__PURE__*/_jsx(Skeleton,{tokens:tokens,label:t.loading}):/*#__PURE__*/_jsx(StepBody,{step:current,t:t,tokens:tokens,locale:locale,zone:zone,hour12:hour12,firstDayOfWeek:firstDayOfWeek,now:now,state:state,dispatch:dispatch,services:allServices,professionals:allProfessionals,slotsByDay:slotsByDay,availability:availability,form:form,status:status,uid:uid}),/*#__PURE__*/_jsx(Footer,{t:t,tokens:tokens,index:state.index,total:flow.length,canContinue:canContinue,isLast:isLast,submitting:status===\"submitting\",onBack:goBack,onNext:handleNext})]})]})]});}/* ==================================================================== state *//** Reserved id, prefixed so it can never collide with a real professional. */const ANY_PROFESSIONAL=\"__any__\";function initialState(){return{index:0,serviceId:\"\",professionalId:\"\",day:\"\",slot:\"\",monthCursor:\"\",customer:{name:\"\",email:\"\",phone:\"\",notes:\"\"},status:\"idle\",error:\"\",reference:\"\",touched:false};}function reducer(state,action){switch(action.type){case\"NEXT\":return{...state,index:Math.min(state.index+1,action.max-1)};case\"BACK\":return{...state,index:Math.max(state.index-1,0)};case\"RESET_INDEX\":return{...state,index:0};case\"SET_SERVICE\":// Changing the service invalidates everything downstream.\nreturn{...state,serviceId:action.id,professionalId:\"\",day:\"\",slot:\"\"};case\"SET_PRO\":return{...state,professionalId:action.id,day:\"\",slot:\"\"};case\"SET_DAY\":return{...state,day:action.day,slot:\"\"};case\"SET_SLOT\":return{...state,slot:action.slot};case\"SET_MONTH\":return{...state,monthCursor:action.month};case\"SET_FIELD\":return{...state,customer:{...state.customer,[action.name]:action.value}};case\"TOUCH\":return{...state,touched:true};case\"SUBMIT_START\":return{...state,status:\"submitting\",error:\"\"};case\"SUBMIT_OK\":return{...state,status:\"confirmed\",reference:action.reference};case\"SUBMIT_FAIL\":return{...state,status:\"error\",error:action.error};case\"CLEAR_ERROR\":return{...state,status:\"idle\",error:\"\"};case\"RESET_ALL\":return initialState();default:return state;}}function buildFlow(steps){const order=[\"service\",\"professional\",\"date\",\"time\",\"customer\"];return order.filter(key=>steps?.[key]!==false);}function isStepComplete(step,state,form){switch(step){case\"service\":return!!state.serviceId;case\"professional\":return!!state.professionalId;case\"date\":return!!state.day;case\"time\":return!!state.slot;case\"customer\":return customerErrors(state.customer,form).length===0;default:return true;}}function customerErrors(customer,form){const errors=[];if(form?.showName!==false&&form?.requireName!==false){if(!customer.name?.trim())errors.push(\"name\");}if(form?.showEmail!==false&&form?.requireEmail!==false){if(!isEmail(customer.email))errors.push(\"email\");}if(form?.showPhone!==false&&form?.requirePhone===true){if(!customer.phone?.trim())errors.push(\"phone\");}return errors;}function isEmail(value){// Deliberately permissive: the server is the real validator.\nreturn/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$/.test(String(value??\"\").trim());}/* ================================================================ time zone *//**\n * Intl.DateTimeFormat construction is expensive and a month of slots needs\n * hundreds of conversions, so formatters are built once per configuration.\n */const FORMATTERS=new Map;function cachedFormat(key,make,tag=\"en-US\"){let dtf=FORMATTERS.get(key);if(!dtf){dtf=new Intl.DateTimeFormat(tag,make());FORMATTERS.set(key,dtf);}return dtf;}/**\n * Milliseconds to add to a UTC instant to get the wall clock in `timeZone`.\n * Uses Intl only, so DST transitions are handled by the platform database.\n */function zoneOffsetMs(instant,timeZone){const dtf=cachedFormat(`off:${timeZone}`,()=>({timeZone,hour12:false,year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\"}));const parts={};for(const p of dtf.formatToParts(new Date(instant)))parts[p.type]=p.value;const asUTC=Date.UTC(Number(parts.year),Number(parts.month)-1,Number(parts.day),Number(parts.hour)%24,Number(parts.minute),Number(parts.second));return asUTC-instant;}/**\n * Turns a wall clock reading in `timeZone` into an absolute instant.\n * Iterates twice so the DST boundary case converges.\n */function wallTimeToInstant(year,month,day,hour,minute,timeZone){const naive=Date.UTC(year,month-1,day,hour,minute);let instant=naive;for(let i=0;i<2;i++){instant=naive-zoneOffsetMs(instant,timeZone);}return instant;}function resolveTimeZone(configured){const value=String(configured??\"\").trim();if(value&&isValidTimeZone(value))return value;try{return Intl.DateTimeFormat().resolvedOptions().timeZone||\"UTC\";}catch{return\"UTC\";}}function isValidTimeZone(tz){try{new Intl.DateTimeFormat(\"en-US\",{timeZone:tz});return true;}catch{return false;}}/** Civil date (YYYY-MM-DD) of an instant, as seen in `timeZone`. */function civilDate(instant,timeZone){const dtf=cachedFormat(`civil:${timeZone}`,()=>({timeZone,year:\"numeric\",month:\"2-digit\",day:\"2-digit\"}),\"en-CA\"// en-CA is already YYYY-MM-DD, so no reassembly needed.\n);return dtf.format(new Date(instant));}function formatTime(instant,timeZone,locale,hour12){const tag=localeTag(locale);const dtf=cachedFormat(`time:${timeZone}:${tag}:${hour12}`,()=>({timeZone,hour:\"numeric\",minute:\"2-digit\",hour12}),tag);return dtf.format(new Date(instant));}function formatLongDate(day,locale,timeZone){const[y,m,d]=day.split(\"-\").map(Number);if(!y)return\"\";// Noon UTC keeps the civil date stable in every zone.\nconst instant=Date.UTC(y,m-1,d,12);return new Intl.DateTimeFormat(localeTag(locale),{timeZone:\"UTC\",weekday:\"long\",day:\"numeric\",month:\"long\",year:\"numeric\"}).format(new Date(instant));}function localeTag(locale){return locale===\"es\"?\"es-ES\":\"en-US\";}/* =============================================================== slot logic */function useSlots({mode,isCanvas,previewState,api,availability,zone,now,monthCursor,serviceId,professionalId,service}){const[remote,setRemote]=useState({slots:[],loading:false,error:\"\"});const[nonce,setNonce]=useState(0);const useApi=mode===\"api\"&&!isCanvas&&previewState===\"auto\";useEffect(()=>{if(!useApi||!now)return;const base=String(api?.baseURL??\"\").trim();if(!base){setRemote({slots:[],loading:false,error:\"\"});return;}const controller=new AbortController;setRemote(r=>({...r,loading:true,error:\"\"}));const month=monthCursor||civilDate(now,zone).slice(0,7);const url=buildURL(base,\"availability\",{key:api?.publicId,serviceId,professionalId,month,timeZone:zone});fetchJSON(url,controller.signal,api?.timeout).then(data=>{const list=Array.isArray(data?.slots)?data.slots:[];const parsed=list.map(s=>Date.parse(s?.start??s)).filter(n=>Number.isFinite(n));setRemote({slots:parsed,loading:false,error:\"\"});}).catch(e=>{if(e?.name===\"AbortError\")return;setRemote({slots:[],loading:false,error:String(e?.message??e)});});return()=>controller.abort();},[useApi,now,monthCursor,serviceId,professionalId,zone,nonce,JSON.stringify(api??{})]);const generated=useMemo(()=>{if(useApi)return remote.slots;if(!now)return[];return generateStaticSlots(availability,zone,now,monthCursor,service);},[useApi,remote.slots,now,monthCursor,zone,JSON.stringify(availability??{}),service?.duration]);const slotsByDay=useMemo(()=>{const map={};for(const instant of generated){const day=civilDate(instant,zone);if(!map[day])map[day]=[];map[day].push(instant);}for(const key of Object.keys(map))map[key].sort((a,b)=>a-b);return map;},[generated,zone]);return{slotsByDay,loading:useApi?remote.loading:false,error:useApi?remote.error:\"\",reload:()=>setNonce(n=>n+1)};}/**\n * Builds a month of slots from the designer's opening hours.\n * Everything is interpreted as wall time in the business zone.\n */function generateStaticSlots(availability,zone,now,monthCursor,service){const cfg={...DEFAULT_AVAILABILITY,...availability??{}};const startMin=parseClock(cfg.startTime,9*60);const endMin=parseClock(cfg.endTime,17*60);const step=clamp(Number(cfg.interval)||30,5,240);const leadMs=Math.max(0,Number(cfg.leadTimeHours)||0)*36e5;const horizonDays=clamp(Number(cfg.maxDaysAhead)||60,1,365);if(endMin<=startMin)return[];const openDays=[cfg.sunday,cfg.monday,cfg.tuesday,cfg.wednesday,cfg.thursday,cfg.friday,cfg.saturday];const today=civilDate(now,zone);const anchor=monthCursor||today.slice(0,7);const[ay,am]=anchor.split(\"-\").map(Number);if(!ay||!am)return[];const daysInMonth=new Date(Date.UTC(ay,am,0)).getUTCDate();const horizonMs=now+horizonDays*864e5;const out=[];for(let d=1;d<=daysInMonth;d++){const weekday=new Date(Date.UTC(ay,am-1,d)).getUTCDay();if(openDays[weekday]===false)continue;// A booking has to finish before closing, so a 90-minute service\n// cannot start at 16:30 when the doors shut at 17:00.\nconst duration=clamp(Number(service?.duration)||step,5,1440);for(let minute=startMin;minute+duration<=endMin;minute+=step){const instant=wallTimeToInstant(ay,am,d,Math.floor(minute/60),minute%60,zone);if(cfg.blockPast!==false&&instant<now+leadMs)continue;if(instant>horizonMs)continue;out.push(instant);}}return out;}function parseClock(value,fallback){const match=/^(\\d{1,2}):(\\d{2})$/.exec(String(value??\"\").trim());if(!match)return fallback;const h=clamp(Number(match[1]),0,23);const m=clamp(Number(match[2]),0,59);return h*60+m;}/* ================================================================= remote IO */function useRemoteCatalog({enabled,api,locale}){const[state,setState]=useState({services:[],professionals:[],loading:false,error:\"\"});const[nonce,setNonce]=useState(0);useEffect(()=>{if(!enabled)return;const base=String(api?.baseURL??\"\").trim();if(!base)return;const controller=new AbortController;setState(s=>({...s,loading:true,error:\"\"}));Promise.all([fetchJSON(buildURL(base,\"services\",{key:api?.publicId,locale}),controller.signal,api?.timeout),fetchJSON(buildURL(base,\"professionals\",{key:api?.publicId,locale}),controller.signal,api?.timeout)]).then(([svc,pros])=>{setState({services:normalizeServices(svc?.services??svc),professionals:normalizeProfessionals(pros?.professionals??pros),loading:false,error:\"\"});}).catch(e=>{if(e?.name===\"AbortError\")return;setState({services:[],professionals:[],loading:false,error:String(e?.message??e)});});return()=>controller.abort();},[enabled,locale,nonce,JSON.stringify(api??{})]);return{...state,reload:()=>setNonce(n=>n+1)};}function buildURL(base,path,params){const clean=base.replace(/\\/+$/,\"\");const url=new URL(`${clean}/${path}`);for(const[key,value]of Object.entries(params)){if(value===undefined||value===null||value===\"\")continue;url.searchParams.set(key,String(value));}return url.toString();}async function fetchJSON(url,signal,timeout){const ms=clamp(Number(timeout)||1e4,1e3,6e4);// Own controller so the timeout can actually abort the request, chained to\n// the caller's signal so unmounting cancels everything too.\nconst controller=new AbortController;const onOuterAbort=()=>controller.abort();if(signal.aborted)controller.abort();else signal.addEventListener(\"abort\",onOuterAbort);const timer=setTimeout(()=>controller.abort(),ms);try{const response=await fetch(url,{signal:controller.signal,headers:{Accept:\"application/json\"},credentials:\"omit\"});if(!response.ok)throw new Error(`HTTP ${response.status}`);return await response.json();}finally{clearTimeout(timer);signal.removeEventListener(\"abort\",onOuterAbort);}}async function postBooking(api,payload){const base=String(api?.baseURL??\"\").trim();if(!base)throw new Error(\"Missing API Base URL\");const response=await fetch(buildURL(base,\"bookings\",{}),{method:\"POST\",headers:{\"Content-Type\":\"application/json\",Accept:\"application/json\"},credentials:\"omit\",body:JSON.stringify({publicId:api?.publicId??\"\",serviceId:payload.serviceId,professionalId:payload.professionalId||null,start:new Date(payload.start).toISOString(),timeZone:payload.timeZone,locale:payload.locale,customer:payload.customer})});if(!response.ok){let detail=`HTTP ${response.status}`;try{const body=await response.json();if(body?.message)detail=String(body.message);}catch{/* keep the status code */}throw new Error(detail);}const data=await response.json().catch(()=>({}));return String(data?.reference??data?.id??\"\");}/* ================================================================== the UI */function StepHeader({t,tokens,titleFont,step,index,total}){return /*#__PURE__*/_jsxs(\"div\",{className:\"bkw-head\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"bkw-eyebrow\",children:t.stepOf.replace(\"{n}\",String(index+1)).replace(\"{total}\",String(total))}),/*#__PURE__*/_jsx(\"h2\",{className:\"bkw-title\",style:titleFont,children:t[`step_${step}`]??step})]});}function StepBody({step,t,tokens,locale,zone,hour12,firstDayOfWeek,now,state,dispatch,services,professionals,slotsByDay,availability,form,status,uid}){if(step===\"service\"){return /*#__PURE__*/_jsx(ChoiceList,{t:t,label:t.step_service,items:services.map(s=>({id:s.id,title:s.name,meta:[s.duration?`${s.duration} ${t.minutes}`:\"\",s.price?s.price:\"\"].filter(Boolean).join(\" \\xb7 \"),description:s.description,icon:s.icon,image:s.image})),value:state.serviceId,emptyLabel:t.noServices,onSelect:id=>dispatch({type:\"SET_SERVICE\",id})});}if(step===\"professional\"){const items=[{id:ANY_PROFESSIONAL,title:t.anyProfessional,meta:\"\",description:\"\"},...professionals.map(p=>({id:p.id,title:p.name,meta:p.role,description:\"\",image:p.avatar}))];return /*#__PURE__*/_jsx(ChoiceList,{t:t,label:t.step_professional,items:items,value:state.professionalId,emptyLabel:t.noProfessionals,onSelect:id=>dispatch({type:\"SET_PRO\",id})});}if(step===\"date\"){return /*#__PURE__*/_jsx(Calendar,{t:t,locale:locale,zone:zone,now:now,firstDayOfWeek:firstDayOfWeek,monthCursor:state.monthCursor||civilDate(now,zone).slice(0,7),selected:state.day,slotsByDay:slotsByDay,blockPast:availability?.blockPast!==false,onMonth:month=>dispatch({type:\"SET_MONTH\",month}),onSelect:day=>dispatch({type:\"SET_DAY\",day})});}if(step===\"time\"){const day=state.day||civilDate(now,zone);const slots=slotsByDay[day]??[];return /*#__PURE__*/_jsx(TimeGrid,{t:t,slots:slots,selected:state.slot,zone:zone,locale:locale,hour12:hour12,day:day,onSelect:slot=>dispatch({type:\"SET_SLOT\",slot})});}if(step===\"customer\"){return /*#__PURE__*/_jsx(CustomerForm,{t:t,uid:uid,form:form,customer:state.customer,touched:state.touched,onChange:(name,value)=>dispatch({type:\"SET_FIELD\",name,value})});}return null;}function ChoiceList({t,label,items,value,emptyLabel,onSelect}){const ref=useRef(null);if(!items.length){return /*#__PURE__*/_jsx(EmptyState,{title:emptyLabel});}return /*#__PURE__*/_jsx(\"div\",{ref:ref,role:\"radiogroup\",\"aria-label\":label,className:\"bkw-choices\",onKeyDown:e=>rovingKeys(e,ref.current),children:items.map((item,index)=>{const selected=value===item.id;const focusIndex=value?items.findIndex(i=>i.id===value):0;return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",role:\"radio\",\"aria-checked\":selected,tabIndex:index===Math.max(0,focusIndex)?0:-1,className:\"bkw-choice\",\"data-selected\":selected?\"true\":\"false\",onClick:()=>onSelect(item.id),children:[item.image?/*#__PURE__*/_jsx(\"img\",{className:\"bkw-avatar\",src:item.image?.src??item.image,srcSet:item.image?.srcSet,alt:\"\",loading:\"lazy\",decoding:\"async\"}):item.icon?/*#__PURE__*/_jsx(\"span\",{className:\"bkw-icon\",\"aria-hidden\":\"true\",children:item.icon}):null,/*#__PURE__*/_jsxs(\"span\",{className:\"bkw-choice-body\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"bkw-choice-title\",children:item.title}),item.description?/*#__PURE__*/_jsx(\"span\",{className:\"bkw-choice-desc\",children:item.description}):null]}),item.meta?/*#__PURE__*/_jsx(\"span\",{className:\"bkw-choice-meta\",children:item.meta}):null]},item.id);})});}function Calendar({t,locale,zone,now,firstDayOfWeek,monthCursor,selected,slotsByDay,blockPast,onMonth,onSelect}){const gridRef=useRef(null);const[y,m]=monthCursor.split(\"-\").map(Number);const today=civilDate(now,zone);const first=new Date(Date.UTC(y,m-1,1));const daysInMonth=new Date(Date.UTC(y,m,0)).getUTCDate();const startWeekday=first.getUTCDay();const offset=(startWeekday-Number(firstDayOfWeek)+7)%7;const weekdayNames=useMemo(()=>{const fmt=new Intl.DateTimeFormat(localeTag(locale),{weekday:\"short\",timeZone:\"UTC\"});return Array.from({length:7},(_,i)=>{// 2024-01-07 was a Sunday, so this walks a full week.\nconst date=new Date(Date.UTC(2024,0,7+(Number(firstDayOfWeek)+i)%7));return fmt.format(date);});},[locale,firstDayOfWeek]);const monthLabel=useMemo(()=>new Intl.DateTimeFormat(localeTag(locale),{month:\"long\",year:\"numeric\",timeZone:\"UTC\"}).format(new Date(Date.UTC(y,m-1,1))),[locale,y,m]);const cells=[];for(let i=0;i<offset;i++)cells.push(null);for(let d=1;d<=daysInMonth;d++){cells.push(`${y}-${pad(m)}-${pad(d)}`);}while(cells.length%7!==0)cells.push(null);const shiftMonth=delta=>{const date=new Date(Date.UTC(y,m-1+delta,1));onMonth(`${date.getUTCFullYear()}-${pad(date.getUTCMonth()+1)}`);};const isAvailable=day=>(slotsByDay[day]?.length??0)>0;const isPast=day=>blockPast&&day<today;const onKeyDown=e=>{const map={ArrowRight:1,ArrowLeft:-1,ArrowDown:7,ArrowUp:-7};if(e.key===\"PageDown\"){e.preventDefault();shiftMonth(1);return;}if(e.key===\"PageUp\"){e.preventDefault();shiftMonth(-1);return;}if(!(e.key in map))return;e.preventDefault();const buttons=Array.from(gridRef.current?.querySelectorAll(\"button[data-day]\")??[]);const active=document.activeElement;const index=buttons.indexOf(active);if(index<0)return;const next=buttons[index+map[e.key]];if(next)next.focus();else shiftMonth(map[e.key]>0?1:-1);};const focusDay=selected&&selected.startsWith(monthCursor)?selected:cells.find(c=>c&&isAvailable(c)&&!isPast(c))??cells.find(Boolean);return /*#__PURE__*/_jsxs(\"div\",{className:\"bkw-calendar\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"bkw-cal-head\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bkw-nav\",onClick:()=>shiftMonth(-1),\"aria-label\":t.previousMonth,children:\"‹\"}),/*#__PURE__*/_jsx(\"span\",{className:\"bkw-month\",\"aria-live\":\"polite\",children:monthLabel}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bkw-nav\",onClick:()=>shiftMonth(1),\"aria-label\":t.nextMonth,children:\"›\"})]}),/*#__PURE__*/_jsx(\"div\",{className:\"bkw-weekdays\",\"aria-hidden\":\"true\",children:weekdayNames.map((name,i)=>/*#__PURE__*/_jsx(\"span\",{children:name},i))}),/*#__PURE__*/_jsx(\"div\",{ref:gridRef,role:\"grid\",\"aria-label\":monthLabel,className:\"bkw-grid\",onKeyDown:onKeyDown,children:cells.map((day,i)=>{if(!day)return /*#__PURE__*/_jsx(\"span\",{className:\"bkw-cell-empty\"},`e${i}`);const past=isPast(day);const available=isAvailable(day)&&!past;const isSelected=selected===day;return /*#__PURE__*/_jsx(\"button\",{type:\"button\",\"data-day\":day,role:\"gridcell\",className:\"bkw-day\",\"data-selected\":isSelected?\"true\":\"false\",\"data-today\":day===today?\"true\":\"false\",\"aria-selected\":isSelected,\"aria-disabled\":!available,disabled:!available,tabIndex:day===focusDay?0:-1,\"aria-label\":formatLongDate(day,locale,zone),onClick:()=>available&&onSelect(day),children:Number(day.slice(-2))},day);})})]});}function TimeGrid({t,slots,selected,zone,locale,hour12,day,onSelect}){const ref=useRef(null);if(!slots.length){return /*#__PURE__*/_jsx(EmptyState,{title:t.noAvailabilityTitle,body:t.noAvailabilityBody});}const focusIndex=Math.max(0,slots.findIndex(s=>new Date(s).toISOString()===selected));return /*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"p\",{className:\"bkw-daylabel\",children:formatLongDate(day,locale,zone)}),/*#__PURE__*/_jsx(\"div\",{ref:ref,role:\"radiogroup\",\"aria-label\":t.step_time,className:\"bkw-slots\",onKeyDown:e=>rovingKeys(e,ref.current),children:slots.map((instant,index)=>{const iso=new Date(instant).toISOString();const isSelected=selected===iso;return /*#__PURE__*/_jsx(\"button\",{type:\"button\",role:\"radio\",\"aria-checked\":isSelected,tabIndex:index===focusIndex?0:-1,className:\"bkw-slot\",\"data-selected\":isSelected?\"true\":\"false\",onClick:()=>onSelect(iso),children:formatTime(instant,zone,locale,hour12)},iso);})})]});}function CustomerForm({t,uid,form,customer,touched,onChange}){const errors=customerErrors(customer,form);const field=(name,label,type,autoComplete,required,multiline=false)=>{const id=`${uid}-${name}`;const invalid=touched&&errors.includes(name);const Tag=multiline?\"textarea\":\"input\";return /*#__PURE__*/_jsxs(\"div\",{className:\"bkw-field\",children:[/*#__PURE__*/_jsxs(\"label\",{htmlFor:id,children:[label,required?/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:\" *\"}):null]}),/*#__PURE__*/_jsx(Tag,{id:id,className:\"bkw-input\",type:multiline?undefined:type,rows:multiline?3:undefined,value:customer[name]??\"\",required:required,autoComplete:autoComplete,\"aria-invalid\":invalid||undefined,\"aria-describedby\":invalid?`${id}-err`:undefined,onChange:e=>onChange(name,e.target.value)}),invalid?/*#__PURE__*/_jsx(\"span\",{id:`${id}-err`,className:\"bkw-err\",role:\"alert\",children:name===\"email\"?t.invalidEmail:t.required}):null]},name);};return /*#__PURE__*/_jsxs(\"div\",{className:\"bkw-form\",children:[form?.showName!==false&&field(\"name\",t.fieldName,\"text\",\"name\",form?.requireName!==false),form?.showEmail!==false&&field(\"email\",t.fieldEmail,\"email\",\"email\",form?.requireEmail!==false),form?.showPhone!==false&&field(\"phone\",t.fieldPhone,\"tel\",\"tel\",form?.requirePhone===true),form?.showNotes!==false&&field(\"notes\",t.fieldNotes,\"text\",\"off\",false,true)]});}function Summary({t,tokens,titleFont,flow,index,service,professionalLabel,slot,zone,locale,hour12,showTimeZoneNote}){const rows=[service&&{label:t.step_service,value:service.name},professionalLabel&&{label:t.step_professional,value:professionalLabel},slot&&{label:t.step_date,value:formatLongDate(civilDate(Date.parse(slot),zone),locale,zone)},slot&&{label:t.step_time,value:formatTime(Date.parse(slot),zone,locale,hour12)}].filter(Boolean);return /*#__PURE__*/_jsxs(\"aside\",{className:\"bkw-aside\",\"data-empty\":rows.length===0?\"true\":\"false\",\"aria-label\":t.summary,children:[/*#__PURE__*/_jsx(\"h3\",{className:\"bkw-aside-title\",style:titleFont,children:t.summary}),/*#__PURE__*/_jsx(\"ol\",{className:\"bkw-progress\",children:flow.map((step,i)=>/*#__PURE__*/_jsxs(\"li\",{\"data-state\":i<index?\"done\":i===index?\"current\":\"todo\",\"aria-current\":i===index?\"step\":undefined,children:[/*#__PURE__*/_jsx(\"span\",{className:\"bkw-dot\",\"aria-hidden\":\"true\"}),t[`step_${step}`]]},step))}),rows.length?/*#__PURE__*/_jsx(\"dl\",{className:\"bkw-summary\",children:rows.map(row=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"dt\",{children:row.label}),/*#__PURE__*/_jsx(\"dd\",{children:row.value})]},row.label))}):/*#__PURE__*/_jsx(\"p\",{className:\"bkw-muted\",children:t.summaryEmpty}),showTimeZoneNote?/*#__PURE__*/_jsx(\"p\",{className:\"bkw-tz\",children:t.timeZoneNote.replace(\"{zone}\",zone)}):null]});}function Footer({t,tokens,index,total,canContinue,isLast,submitting,onBack,onNext}){return /*#__PURE__*/_jsxs(\"div\",{className:\"bkw-footer\",children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bkw-btn bkw-btn-ghost\",onClick:onBack,disabled:index===0||submitting,children:t.back}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bkw-btn bkw-btn-primary\",onClick:onNext,disabled:!canContinue||submitting,\"aria-busy\":submitting||undefined,children:submitting?t.submitting:isLast?t.confirm:t.continue})]});}function Confirmation({t,tokens,titleFont,confirmation,service,professionalLabel,slot,zone,locale,hour12,reference,onReset}){const rows=[service&&{label:t.step_service,value:service.name},professionalLabel&&{label:t.step_professional,value:professionalLabel},slot&&{label:t.step_date,value:formatLongDate(civilDate(Date.parse(slot),zone),locale,zone)},slot&&{label:t.step_time,value:formatTime(Date.parse(slot),zone,locale,hour12)},reference&&{label:t.reference,value:reference}].filter(Boolean);return /*#__PURE__*/_jsxs(\"div\",{className:\"bkw-confirm\",role:\"status\",\"aria-live\":\"polite\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"bkw-check\",\"aria-hidden\":\"true\",children:\"✓\"}),/*#__PURE__*/_jsx(\"h2\",{className:\"bkw-title\",style:titleFont,children:confirmation?.title||t.confirmedTitle}),/*#__PURE__*/_jsx(\"p\",{className:\"bkw-muted\",children:confirmation?.body||t.confirmedBody}),confirmation?.showDetails!==false&&rows.length?/*#__PURE__*/_jsx(\"dl\",{className:\"bkw-summary bkw-summary-center\",children:rows.map(row=>/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"dt\",{children:row.label}),/*#__PURE__*/_jsx(\"dd\",{children:row.value})]},row.label))}):null,/*#__PURE__*/_jsxs(\"div\",{className:\"bkw-confirm-actions\",children:[confirmation?.ctaLink?/*#__PURE__*/_jsx(\"a\",{className:\"bkw-btn bkw-btn-primary\",href:confirmation.ctaLink,children:confirmation?.ctaLabel||t.done}):null,/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bkw-btn bkw-btn-ghost\",onClick:onReset,children:t.bookAnother})]})]});}function EmptyState({title,body}){return /*#__PURE__*/_jsxs(\"div\",{className:\"bkw-empty\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"bkw-empty-title\",children:title}),body?/*#__PURE__*/_jsx(\"p\",{className:\"bkw-muted\",children:body}):null]});}function ErrorState({t,tokens,message,onRetry}){return /*#__PURE__*/_jsxs(\"div\",{className:\"bkw-empty\",role:\"alert\",children:[/*#__PURE__*/_jsx(\"p\",{className:\"bkw-empty-title\",children:t.errorTitle}),/*#__PURE__*/_jsx(\"p\",{className:\"bkw-muted\",children:message}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:\"bkw-btn bkw-btn-ghost\",onClick:onRetry,children:t.retry})]});}function Skeleton({tokens,label}){return /*#__PURE__*/_jsxs(\"div\",{className:\"bkw-skeleton\",role:\"status\",\"aria-label\":label,children:[/*#__PURE__*/_jsx(\"span\",{}),/*#__PURE__*/_jsx(\"span\",{}),/*#__PURE__*/_jsx(\"span\",{})]});}/* ================================================================= helpers */function rovingKeys(e,container){const keys=[\"ArrowRight\",\"ArrowLeft\",\"ArrowDown\",\"ArrowUp\",\"Home\",\"End\"];if(!keys.includes(e.key)||!container)return;const nodes=Array.from(container.querySelectorAll(\"button:not([disabled])\"));if(!nodes.length)return;const index=nodes.indexOf(document.activeElement);if(index<0)return;e.preventDefault();let next=index;if(e.key===\"Home\")next=0;else if(e.key===\"End\")next=nodes.length-1;else if(e.key===\"ArrowRight\"||e.key===\"ArrowDown\")next=(index+1)%nodes.length;else next=(index-1+nodes.length)%nodes.length;nodes[next].focus();}function clamp(n,min,max){if(!Number.isFinite(n))return min;return Math.min(max,Math.max(min,n));}function pad(n){return String(n).padStart(2,\"0\");}function normalizeServices(list){if(!Array.isArray(list))return[];const seen=new Set;return list.map((raw,i)=>{const name=String(raw?.name??\"\").trim();if(!name)return null;let id=String(raw?.id??\"\").trim()||slugify(name)||`service-${i}`;while(seen.has(id))id=`${id}-${i}`;seen.add(id);return{id,name,description:String(raw?.description??\"\"),duration:Number(raw?.duration)||0,price:String(raw?.price??\"\"),icon:String(raw?.icon??\"\"),image:raw?.image??null};}).filter(Boolean);}function normalizeProfessionals(list){if(!Array.isArray(list))return[];const seen=new Set;return list.map((raw,i)=>{const name=String(raw?.name??\"\").trim();if(!name)return null;let id=String(raw?.id??\"\").trim()||slugify(name)||`pro-${i}`;while(seen.has(id))id=`${id}-${i}`;seen.add(id);return{id,name,role:String(raw?.role??\"\"),avatar:raw?.avatar??null};}).filter(Boolean);}function slugify(value){return String(value).normalize(\"NFD\").replace(/[̀-ͯ]/g,\"\").toLowerCase().trim().replace(/[^a-z0-9]+/g,\"-\").replace(/^-|-$/g,\"\");}/* ============================================================== dictionary */const EN={step_service:\"Service\",step_professional:\"Professional\",step_date:\"Date\",step_time:\"Time\",step_customer:\"Your details\",stepOf:\"Step {n} of {total}\",anyProfessional:\"Any available\",minutes:\"min\",summary:\"Your booking\",summaryEmpty:\"Your selection will appear here.\",timeZoneNote:\"Times shown in {zone}\",continue:\"Continue\",back:\"Back\",confirm:\"Confirm booking\",submitting:\"Booking…\",loading:\"Loading…\",done:\"Done\",bookAnother:\"Book another\",reference:\"Reference\",fieldName:\"Name\",fieldEmail:\"Email\",fieldPhone:\"Phone\",fieldNotes:\"Notes\",required:\"This field is required\",invalidEmail:\"Enter a valid email address\",previousMonth:\"Previous month\",nextMonth:\"Next month\",noServices:\"No services available\",noProfessionals:\"No professionals available\",noAvailabilityTitle:\"No times available\",noAvailabilityBody:\"Try another day or another professional.\",errorTitle:\"Something went wrong\",errorBody:\"We could not load availability. Please try again.\",retry:\"Try again\",confirmedTitle:\"Booking confirmed\",confirmedBody:\"We've sent the details to your email.\"};const ES={step_service:\"Servicio\",step_professional:\"Profesional\",step_date:\"Fecha\",step_time:\"Hora\",step_customer:\"Tus datos\",stepOf:\"Paso {n} de {total}\",anyProfessional:\"Cualquiera disponible\",minutes:\"min\",summary:\"Tu reserva\",summaryEmpty:\"Aqu\\xed aparecer\\xe1 tu selecci\\xf3n.\",timeZoneNote:\"Horarios en {zone}\",continue:\"Continuar\",back:\"Atr\\xe1s\",confirm:\"Confirmar reserva\",submitting:\"Reservando…\",loading:\"Cargando…\",done:\"Listo\",bookAnother:\"Reservar otra\",reference:\"Referencia\",fieldName:\"Nombre\",fieldEmail:\"Email\",fieldPhone:\"Tel\\xe9fono\",fieldNotes:\"Notas\",required:\"Este campo es obligatorio\",invalidEmail:\"Introduce un email v\\xe1lido\",previousMonth:\"Mes anterior\",nextMonth:\"Mes siguiente\",noServices:\"No hay servicios disponibles\",noProfessionals:\"No hay profesionales disponibles\",noAvailabilityTitle:\"Sin horarios disponibles\",noAvailabilityBody:\"Prueba otro d\\xeda u otro profesional.\",errorTitle:\"Algo sali\\xf3 mal\",errorBody:\"No pudimos cargar la disponibilidad. Int\\xe9ntalo de nuevo.\",retry:\"Reintentar\",confirmedTitle:\"Reserva confirmada\",confirmedBody:\"Hemos enviado los detalles a tu email.\"};/**\n * Locale picks the base dictionary; any non-empty override wins.\n * Adding a language is adding one object here — no logic changes.\n */function buildDictionary(locale,overrides){const base=locale===\"es\"?ES:EN;if(!overrides||typeof overrides!==\"object\")return base;const out={...base};for(const key of Object.keys(base)){const value=overrides[key];if(typeof value===\"string\"&&value.trim()!==\"\")out[key]=value;}return out;}/* ================================================================== theming */function buildTokens(theme,spacing){const th={...DEFAULT_THEME,...theme??{}};const unit=clamp(Number(spacing)||16,4,40);return{primary:css(th.primary),onPrimary:css(th.onPrimary),background:css(th.background),surface:css(th.surface),text:css(th.text),muted:css(th.muted),border:css(th.border),danger:css(th.danger),radius:css(th.radius),buttonRadius:css(th.buttonRadius),unit};}/** Strips anything that could escape a CSS declaration. */function css(value){return String(value??\"\").replace(/[{}<>;\\\\]/g,\"\");}function rootStyle(tokens){return{display:\"block\",width:\"100%\",maxWidth:\"100%\",minWidth:0,boxSizing:\"border-box\",background:tokens.background,color:tokens.text,borderRadius:tokens.radius,// Keeps the sidebar's surface fill inside the rounded corners.\noverflow:\"hidden\"};}function buildCSS(uid,k,splitBelow){const bp=clamp(Number(splitBelow)||720,0,1400);const u=k.unit;return`\n.${uid}.bkw-root { container: ${uid} / inline-size; }\n.${uid} *, .${uid} *::before, .${uid} *::after { box-sizing: border-box; }\n.${uid} h2, .${uid} h3, .${uid} p, .${uid} dl, .${uid} dd, .${uid} ol { margin: 0; padding: 0; }\n.${uid} ol { list-style: none; }\n\n.${uid} .bkw-split { display: grid; grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: ${u}px; }\n.${uid} .bkw-single { display: block; }\n.${uid} .bkw-main { min-width: 0; display: flex; flex-direction: column; gap: ${u}px; padding: ${u*1.25}px; }\n.${uid} .bkw-aside { min-width: 0; padding: ${u*1.25}px; background: ${k.surface}; border-right: 1px solid ${k.border}; border-radius: ${k.radius} 0 0 ${k.radius}; }\n\n.${uid} .bkw-eyebrow { font-size: 0.75em; letter-spacing: 0.08em; text-transform: uppercase; color: ${k.muted}; }\n.${uid} .bkw-title { font-size: 1.35em; font-weight: 600; line-height: 1.25; margin-top: 4px; overflow-wrap: anywhere; }\n.${uid} .bkw-aside-title { font-size: 0.95em; font-weight: 600; margin-bottom: ${u}px; }\n.${uid} .bkw-muted { color: ${k.muted}; font-size: 0.9em; line-height: 1.5; }\n\n.${uid} .bkw-progress { display: flex; flex-direction: column; gap: 10px; margin-bottom: ${u}px; font-size: 0.9em; color: ${k.muted}; }\n.${uid} .bkw-progress li { display: flex; align-items: center; gap: 8px; }\n.${uid} .bkw-progress li[data-state=\"current\"] { color: ${k.text}; font-weight: 600; }\n.${uid} .bkw-progress li[data-state=\"done\"] { color: ${k.text}; }\n.${uid} .bkw-dot { width: 7px; height: 7px; border-radius: 50%; background: ${k.border}; flex: none; }\n.${uid} .bkw-progress li[data-state=\"current\"] .bkw-dot,\n.${uid} .bkw-progress li[data-state=\"done\"] .bkw-dot { background: ${k.primary}; }\n\n.${uid} .bkw-choices { display: flex; flex-direction: column; gap: 8px; }\n.${uid} .bkw-choice { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; padding: ${u*.75}px; background: ${k.surface}; color: ${k.text}; border: 1px solid ${k.border}; border-radius: ${k.radius}; cursor: pointer; font: inherit; transition: border-color .15s ease-out, background-color .15s ease-out; }\n.${uid} .bkw-choice:hover:not([data-selected=\"true\"]) { border-color: ${k.primary}; }\n.${uid} .bkw-choice[data-selected=\"true\"] { border-color: ${k.primary}; box-shadow: inset 0 0 0 1px ${k.primary}; }\n.${uid} .bkw-choice-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }\n.${uid} .bkw-choice-title { font-weight: 600; overflow-wrap: anywhere; }\n.${uid} .bkw-choice-desc { font-size: 0.85em; color: ${k.muted}; overflow-wrap: anywhere; }\n.${uid} .bkw-choice-meta { font-size: 0.85em; color: ${k.muted}; white-space: nowrap; flex: none; }\n.${uid} .bkw-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex: none; }\n.${uid} .bkw-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: ${k.radius}; background: ${k.background}; flex: none; }\n\n.${uid} .bkw-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }\n.${uid} .bkw-month { font-weight: 600; text-transform: capitalize; }\n.${uid} .bkw-nav { width: 32px; height: 32px; border-radius: ${k.buttonRadius}; border: 1px solid ${k.border}; background: ${k.surface}; color: ${k.text}; cursor: pointer; font-size: 16px; line-height: 1; }\n.${uid} .bkw-nav:hover { border-color: ${k.primary}; }\n.${uid} .bkw-weekdays, .${uid} .bkw-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }\n.${uid} .bkw-weekdays { margin-bottom: 4px; font-size: 0.75em; color: ${k.muted}; text-align: center; text-transform: uppercase; letter-spacing: 0.04em; }\n.${uid} .bkw-day { aspect-ratio: 1 / 1; min-height: 34px; display: grid; place-items: center; border: 1px solid transparent; border-radius: ${k.buttonRadius}; background: transparent; color: ${k.text}; font: inherit; font-size: 0.9em; cursor: pointer; transition: background-color .12s ease-out, border-color .12s ease-out; }\n.${uid} .bkw-day:hover:not(:disabled) { background: ${k.surface}; border-color: ${k.primary}; }\n.${uid} .bkw-day:disabled { color: ${k.muted}; opacity: 0.4; cursor: default; }\n.${uid} .bkw-day[data-today=\"true\"] { font-weight: 700; }\n.${uid} .bkw-day[data-selected=\"true\"] { background: ${k.primary}; color: ${k.onPrimary}; border-color: ${k.primary}; }\n.${uid} .bkw-cell-empty { aspect-ratio: 1 / 1; }\n\n.${uid} .bkw-daylabel { font-size: 0.9em; color: ${k.muted}; margin-bottom: 10px; text-transform: capitalize; }\n.${uid} .bkw-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(84px, 100%), 1fr)); gap: 8px; }\n.${uid} .bkw-slot { padding: 10px 6px; border: 1px solid ${k.border}; border-radius: ${k.buttonRadius}; background: ${k.surface}; color: ${k.text}; font: inherit; font-size: 0.9em; cursor: pointer; white-space: nowrap; transition: border-color .12s ease-out, background-color .12s ease-out; }\n.${uid} .bkw-slot:hover:not([data-selected=\"true\"]) { border-color: ${k.primary}; }\n.${uid} .bkw-slot[data-selected=\"true\"] { background: ${k.primary}; color: ${k.onPrimary}; border-color: ${k.primary}; }\n\n.${uid} .bkw-form { display: flex; flex-direction: column; gap: 12px; }\n.${uid} .bkw-field { display: flex; flex-direction: column; gap: 5px; }\n.${uid} .bkw-field label { font-size: 0.85em; color: ${k.muted}; }\n.${uid} .bkw-input { width: 100%; padding: 10px 12px; border: 1px solid ${k.border}; border-radius: ${k.buttonRadius}; background: ${k.surface}; color: ${k.text}; font: inherit; resize: vertical; }\n.${uid} .bkw-input:focus { border-color: ${k.primary}; }\n.${uid} .bkw-input[aria-invalid=\"true\"] { border-color: ${k.danger}; }\n.${uid} .bkw-err { font-size: 0.8em; color: ${k.danger}; }\n\n.${uid} .bkw-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: ${u*.5}px; }\n.${uid} .bkw-btn { padding: 11px 20px; border-radius: ${k.buttonRadius}; border: 1px solid transparent; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; transition: opacity .15s ease-out, background-color .15s ease-out; }\n.${uid} .bkw-btn-primary { background: ${k.primary}; color: ${k.onPrimary}; }\n.${uid} .bkw-btn-ghost { background: transparent; color: ${k.muted}; border-color: ${k.border}; }\n.${uid} .bkw-btn:disabled { opacity: 0.4; cursor: not-allowed; }\n.${uid} .bkw-btn:hover:not(:disabled) { opacity: 0.88; }\n\n.${uid} .bkw-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; padding: ${u*2}px ${u}px; border: 1px dashed ${k.border}; border-radius: ${k.radius}; }\n.${uid} .bkw-empty-title { font-weight: 600; }\n\n.${uid} .bkw-confirm { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; padding: ${u*2}px ${u*1.25}px; }\n.${uid} .bkw-check { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: ${k.primary}; color: ${k.onPrimary}; font-size: 22px; }\n.${uid} .bkw-confirm-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 4px; }\n\n.${uid} .bkw-summary { display: flex; flex-direction: column; gap: 8px; font-size: 0.9em; }\n.${uid} .bkw-summary > div { display: flex; justify-content: space-between; gap: 12px; }\n.${uid} .bkw-summary dt { color: ${k.muted}; }\n.${uid} .bkw-summary dd { font-weight: 600; text-align: right; overflow-wrap: anywhere; }\n.${uid} .bkw-summary-center { width: 100%; max-width: 320px; margin-top: 4px; }\n.${uid} .bkw-tz { margin-top: ${u}px; font-size: 0.78em; color: ${k.muted}; }\n\n.${uid} .bkw-skeleton { display: flex; flex-direction: column; gap: 10px; padding: ${u}px 0; }\n.${uid} .bkw-skeleton span { height: 44px; border-radius: ${k.radius}; background: ${k.surface}; border: 1px solid ${k.border}; opacity: .7; animation: ${uid}pulse 1.4s ease-in-out infinite; }\n.${uid} .bkw-skeleton span:nth-child(2) { animation-delay: .15s; }\n.${uid} .bkw-skeleton span:nth-child(3) { animation-delay: .3s; }\n@keyframes ${uid}pulse { 0%, 100% { opacity: .45 } 50% { opacity: .85 } }\n\n.${uid} button:focus-visible, .${uid} .bkw-input:focus-visible, .${uid} a:focus-visible { outline: 2px solid ${k.primary}; outline-offset: 2px; }\n.${uid} button:focus:not(:focus-visible) { outline: none; }\n\n@container ${uid} (max-width: ${bp}px) {\n  .${uid} .bkw-split { grid-template-columns: minmax(0, 1fr); }\n  .${uid} .bkw-aside { border-right: none; border-bottom: 1px solid ${k.border}; border-radius: ${k.radius} ${k.radius} 0 0; }\n  .${uid} .bkw-progress { flex-direction: row; flex-wrap: wrap; gap: 10px 14px; }\n}\n/* On a phone the sidebar is pure overhead before anything is chosen: the step\n   header already says which step this is, so only show it once it has content. */\n@container ${uid} (max-width: 480px) {\n  .${uid} .bkw-aside-title, .${uid} .bkw-progress { display: none; }\n  .${uid} .bkw-aside[data-empty=\"true\"] { display: none; }\n  .${uid} .bkw-aside { padding: ${u}px; }\n}\n@container ${uid} (max-width: 360px) {\n  .${uid} .bkw-slots { grid-template-columns: repeat(auto-fill, minmax(min(72px, 100%), 1fr)); }\n  .${uid} .bkw-footer { flex-direction: column-reverse; align-items: stretch; }\n}\n@media (prefers-reduced-motion: reduce) {\n  .${uid} * { transition-duration: 0.01ms !important; animation: none !important; }\n}\n`;}/* ================================================================ defaults */const DEFAULT_SERVICES=[{name:\"Haircut\",description:\"Wash, cut and finish\",duration:45,price:\"$30\",icon:\"✂️\",id:\"haircut\"},{name:\"Beard trim\",description:\"Shape and line up\",duration:30,price:\"$20\",icon:\"🪒\",id:\"beard\"},{name:\"Colour\",description:\"Full colour treatment\",duration:90,price:\"$75\",icon:\"🎨\",id:\"colour\"}];const DEFAULT_PROFESSIONALS=[{name:\"Sarah\",role:\"Senior stylist\",id:\"sarah\"},{name:\"Michael\",role:\"Barber\",id:\"michael\"}];const DEFAULT_AVAILABILITY={startTime:\"09:00\",endTime:\"17:00\",interval:30,leadTimeHours:2,maxDaysAhead:60,blockPast:true,monday:true,tuesday:true,wednesday:true,thursday:true,friday:true,saturday:false,sunday:false};const DEFAULT_API={baseURL:\"\",publicId:\"\",timeout:1e4};const DEFAULT_STEPS={service:true,professional:true,date:true,time:true,customer:true};const DEFAULT_FORM={showName:true,requireName:true,showEmail:true,requireEmail:true,showPhone:true,requirePhone:false,showNotes:true};const DEFAULT_CONFIRMATION={title:\"\",body:\"\",showDetails:true,ctaLabel:\"\",ctaLink:\"\"};const DEFAULT_THEME={primary:\"#111111\",onPrimary:\"#FFFFFF\",background:\"#FFFFFF\",surface:\"#FAFAFA\",text:\"#111111\",muted:\"#8A8A8A\",border:\"#E6E6E6\",danger:\"#D93025\",radius:\"14px\",buttonRadius:\"10px\"};/* ======================================================= property controls */addPropertyControls(BookingWidget,{mode:{type:ControlType.Enum,title:\"Data\",options:[\"static\",\"api\"],optionTitles:[\"Static\",\"API\"],defaultValue:\"static\",displaySegmentedControl:true,description:\"Static uses the data below. API fetches it from your endpoint — see the README for the contract.\"},/* ----------------------------------------------------------------- API */api:{type:ControlType.Object,title:\"API\",controls:{baseURL:{type:ControlType.String,title:\"Base URL\",defaultValue:\"\",placeholder:\"https://api.example.com/v1\"},publicId:{type:ControlType.String,title:\"Public ID\",defaultValue:\"\",placeholder:\"pub_xxx\",description:\"Publishable identifier only. Never paste a secret or service-role key here — it ships to the browser.\"},timeout:{type:ControlType.Number,title:\"Timeout\",defaultValue:1e4,min:1e3,max:6e4,step:500,unit:\"ms\"}},hidden:p=>p.mode!==\"api\"},/* -------------------------------------------------------------- DATA */services:{type:ControlType.Array,title:\"Services\",maxCount:24,control:{type:ControlType.Object,controls:{name:{type:ControlType.String,title:\"Name\",defaultValue:\"Haircut\"},description:{type:ControlType.String,title:\"Description\",defaultValue:\"\"},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:45,min:5,max:480,step:5,unit:\"min\"},price:{type:ControlType.String,title:\"Price\",defaultValue:\"$30\"},icon:{type:ControlType.String,title:\"Icon\",defaultValue:\"\",placeholder:\"Emoji\"},image:{type:ControlType.ResponsiveImage,title:\"Image\"},id:{type:ControlType.String,title:\"ID\",defaultValue:\"\",placeholder:\"Auto from name\"}}},defaultValue:DEFAULT_SERVICES,hidden:p=>p.mode!==\"static\"},professionals:{type:ControlType.Array,title:\"Professionals\",maxCount:24,control:{type:ControlType.Object,controls:{name:{type:ControlType.String,title:\"Name\",defaultValue:\"Sarah\"},role:{type:ControlType.String,title:\"Role\",defaultValue:\"\"},avatar:{type:ControlType.ResponsiveImage,title:\"Avatar\"},id:{type:ControlType.String,title:\"ID\",defaultValue:\"\",placeholder:\"Auto from name\"}}},defaultValue:DEFAULT_PROFESSIONALS,hidden:p=>p.mode!==\"static\"},availability:{type:ControlType.Object,title:\"Hours\",controls:{startTime:{type:ControlType.String,title:\"Opens\",defaultValue:\"09:00\",placeholder:\"09:00\"},endTime:{type:ControlType.String,title:\"Closes\",defaultValue:\"17:00\",placeholder:\"17:00\"},interval:{type:ControlType.Number,title:\"Every\",defaultValue:30,min:5,max:240,step:5,unit:\"min\"},leadTimeHours:{type:ControlType.Number,title:\"Notice\",defaultValue:2,min:0,max:168,step:1,unit:\"h\",description:\"Hides slots starting sooner than this.\"},maxDaysAhead:{type:ControlType.Number,title:\"Horizon\",defaultValue:60,min:1,max:365,step:1,unit:\"d\"},blockPast:{type:ControlType.Boolean,title:\"Block Past\",defaultValue:true},monday:{type:ControlType.Boolean,title:\"Mon\",defaultValue:true},tuesday:{type:ControlType.Boolean,title:\"Tue\",defaultValue:true},wednesday:{type:ControlType.Boolean,title:\"Wed\",defaultValue:true},thursday:{type:ControlType.Boolean,title:\"Thu\",defaultValue:true},friday:{type:ControlType.Boolean,title:\"Fri\",defaultValue:true},saturday:{type:ControlType.Boolean,title:\"Sat\",defaultValue:false},sunday:{type:ControlType.Boolean,title:\"Sun\",defaultValue:false}},hidden:p=>p.mode!==\"static\"},/* --------------------------------------------------------------- FLOW */steps:{type:ControlType.Object,title:\"Steps\",controls:{service:{type:ControlType.Boolean,title:\"Service\",defaultValue:true},professional:{type:ControlType.Boolean,title:\"Professional\",defaultValue:true},date:{type:ControlType.Boolean,title:\"Date\",defaultValue:true},time:{type:ControlType.Boolean,title:\"Time\",defaultValue:true},customer:{type:ControlType.Boolean,title:\"Details\",defaultValue:true}}},form:{type:ControlType.Object,title:\"Fields\",controls:{showName:{type:ControlType.Boolean,title:\"Name\",defaultValue:true},requireName:{type:ControlType.Boolean,title:\"Required\",defaultValue:true,hidden:p=>!p.showName},showEmail:{type:ControlType.Boolean,title:\"Email\",defaultValue:true},requireEmail:{type:ControlType.Boolean,title:\"Required\",defaultValue:true,hidden:p=>!p.showEmail},showPhone:{type:ControlType.Boolean,title:\"Phone\",defaultValue:true},requirePhone:{type:ControlType.Boolean,title:\"Required\",defaultValue:false,hidden:p=>!p.showPhone},showNotes:{type:ControlType.Boolean,title:\"Notes\",defaultValue:true}}},confirmation:{type:ControlType.Object,title:\"Confirmation\",controls:{title:{type:ControlType.String,title:\"Title\",defaultValue:\"\",placeholder:\"Booking confirmed\"},body:{type:ControlType.String,title:\"Body\",defaultValue:\"\",placeholder:\"We've sent the details…\"},showDetails:{type:ControlType.Boolean,title:\"Details\",defaultValue:true},ctaLabel:{type:ControlType.String,title:\"CTA\",defaultValue:\"\",placeholder:\"Done\"},ctaLink:{type:ControlType.Link,title:\"CTA Link\"}}},/* ------------------------------------------------------- LOCALE & TIME */locale:{type:ControlType.Enum,title:\"Language\",options:[\"en\",\"es\"],optionTitles:[\"English\",\"Espa\\xf1ol\"],defaultValue:\"en\",displaySegmentedControl:true},businessTimeZone:{type:ControlType.String,title:\"Time Zone\",defaultValue:\"\",placeholder:\"Visitor's zone\",description:\"IANA name, e.g. Europe/Madrid. Leave empty to use the visitor's own zone.\"},showTimeZoneNote:{type:ControlType.Boolean,title:\"Show Zone\",defaultValue:true},hour12:{type:ControlType.Boolean,title:\"12-hour\",defaultValue:true,enabledTitle:\"12h\",disabledTitle:\"24h\"},firstDayOfWeek:{type:ControlType.Enum,title:\"Week Starts\",options:[0,1,6],optionTitles:[\"Sunday\",\"Monday\",\"Saturday\"],defaultValue:1},text:{type:ControlType.Object,title:\"Text\",optional:true,description:\"Override any label. Empty fields fall back to the language above.\",controls:Object.fromEntries(Object.keys(EN).map(key=>[key,{type:ControlType.String,title:prettyLabel(key),defaultValue:\"\",placeholder:EN[key]}]))},/* ------------------------------------------------------------- LAYOUT */layout:{type:ControlType.Enum,title:\"Layout\",options:[\"auto\",\"split\",\"single\"],optionTitles:[\"Auto\",\"Split\",\"Single\"],defaultValue:\"auto\"},splitBelow:{type:ControlType.Number,title:\"Stack Below\",defaultValue:680,min:0,max:1400,step:10,unit:\"px\",description:\"The widget stacks when its own width drops below this.\"},spacing:{type:ControlType.Number,title:\"Spacing\",defaultValue:16,min:4,max:40,step:1,unit:\"px\"},/* ------------------------------------------------------------ THEMING */theme:{type:ControlType.Object,title:\"Theme\",controls:{primary:{type:ControlType.Color,title:\"Primary\",defaultValue:\"#111111\"},onPrimary:{type:ControlType.Color,title:\"On Primary\",defaultValue:\"#FFFFFF\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},surface:{type:ControlType.Color,title:\"Surface\",defaultValue:\"#FAFAFA\"},text:{type:ControlType.Color,title:\"Text\",defaultValue:\"#111111\"},muted:{type:ControlType.Color,title:\"Muted\",defaultValue:\"#8A8A8A\"},border:{type:ControlType.Color,title:\"Border\",defaultValue:\"#E6E6E6\"},danger:{type:ControlType.Color,title:\"Error\",defaultValue:\"#D93025\"},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"14px\"},buttonRadius:{type:ControlType.BorderRadius,title:\"Button Radius\",defaultValue:\"10px\"}}},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:15,lineHeight:\"1.45em\",fontWeight:400}},headingFont:{type:ControlType.Font,title:\"Heading\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:20,lineHeight:\"1.25em\",fontWeight:600}},/* ----------------------------------------------------------- ADVANCED */previewState:{type:ControlType.Enum,title:\"Preview\",options:[\"auto\",\"loading\",\"error\",\"confirmed\"],optionTitles:[\"Auto\",\"Loading\",\"Error\",\"Confirmed\"],defaultValue:\"auto\",description:\"Forces a state so you can style it on the canvas. Set back to Auto before publishing.\"}});function prettyLabel(key){return key.replace(/^step_/,\"\").replace(/([A-Z])/g,\" $1\").replace(/^./,c=>c.toUpperCase()).trim();}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BookingWidget\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"720\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"620\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BookingWidget.map","// Generated by Framer (80f113d)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,cx,getFonts,getLoadingLazyAtYPosition,Image as Image1,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import BookingWidget from\"https://framerusercontent.com/modules/JH2F7wz5JPOOMra0CRaS/0rg3WiQCHYiid0wafl12/BookingWidget.js\";const BookingWidgetFonts=getFonts(BookingWidget);const serializationHash=\"framer-OWQBh\";const variantClassNames={C1Mf4IoGm:\"framer-v-1ce5vcd\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};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 Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};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,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"C1Mf4IoGm\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];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(Image1,{...restProps,...gestureHandlers,background:{alt:\"\",fit:\"fill\",intrinsicHeight:941,intrinsicWidth:1672,loading:getLoadingLazyAtYPosition(componentViewport?.y||0),pixelHeight:941,pixelWidth:1672,sizes:componentViewport?.width||\"100vw\",src:\"https://framerusercontent.com/images/l57JL0byvMwor6oBDohaxJ6w.png?width=1672&height=941\",srcSet:\"https://framerusercontent.com/images/l57JL0byvMwor6oBDohaxJ6w.png?scale-down-to=512&width=1672&height=941 512w,https://framerusercontent.com/images/l57JL0byvMwor6oBDohaxJ6w.png?scale-down-to=1024&width=1672&height=941 1024w,https://framerusercontent.com/images/l57JL0byvMwor6oBDohaxJ6w.png?width=1672&height=941 1672w\"},className:cx(scopingClassNames,\"framer-1ce5vcd\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"C1Mf4IoGm\",ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-os97v9-container\",isAuthoredByUser:true,layoutDependency:layoutDependency,layoutId:\"JoWq09SyD-container\",nodeId:\"JoWq09SyD\",rendersWithMotion:true,scopeId:\"HK6_exVht\",children:/*#__PURE__*/_jsx(BookingWidget,{api:{baseURL:\"\",publicId:\"\",timeout:1e4},availability:{blockPast:true,endTime:\"17:00\",friday:true,interval:30,leadTimeHours:2,maxDaysAhead:60,monday:true,saturday:false,startTime:\"09:00\",sunday:false,thursday:true,tuesday:true,wednesday:true},businessTimeZone:\"\",confirmation:{body:\"\",ctaLabel:\"\",showDetails:true,title:\"\"},firstDayOfWeek:1,font:{fontFamily:'\"Inter\", \"Inter Placeholder\", sans-serif',fontSize:\"15px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"1.45em\"},form:{requireEmail:true,requireName:true,requirePhone:false,showEmail:true,showName:true,showNotes:true,showPhone:true},headingFont:{fontFamily:'\"Fraunces\", \"Fraunces Placeholder\", serif',fontSize:\"20px\",fontStyle:\"normal\",fontWeight:400,letterSpacing:\"0em\",lineHeight:\"1.25em\"},height:\"100%\",hour12:true,id:\"JoWq09SyD\",layout:\"auto\",layoutId:\"JoWq09SyD\",locale:\"en\",mode:\"static\",previewState:\"auto\",professionals:[{id:\"sarah\",name:\"Sarah\",role:\"Senior stylist\"},{id:\"michael\",name:\"Michael\",role:\"Barber\"}],services:[{description:\"Wash, cut and finish\",duration:45,icon:\"✂️\",id:\"haircut\",name:\"Haircut\",price:\"$30\"},{description:\"Shape and line up\",duration:30,icon:\"🪒\",id:\"beard\",name:\"Beard trim\",price:\"$20\"},{description:\"Full colour treatment\",duration:90,icon:\"🎨\",id:\"colour\",name:\"Colour\",price:\"$75\"}],showTimeZoneNote:true,spacing:16,splitBelow:680,steps:{customer:true,date:true,professional:true,service:true,time:true},style:{maxWidth:\"100%\",width:\"100%\"},theme:{background:\"rgb(255, 255, 255)\",border:\"rgb(230, 230, 230)\",buttonRadius:\"10px\",danger:\"rgb(217, 48, 37)\",muted:\"rgb(138, 138, 138)\",onPrimary:\"rgb(255, 255, 255)\",primary:\"rgb(17, 17, 17)\",radius:\"14px\",surface:\"rgb(250, 250, 250)\",text:\"rgb(17, 17, 17)\"},width:\"100%\"})})})})})})});});const css=[\".framer-OWQBh.framer-na0e6c, .framer-OWQBh .framer-na0e6c { display: block; }\",\".framer-OWQBh.framer-1ce5vcd { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; min-height: 760px; overflow: var(--overflow-clip-fallback, clip); padding: 80px 32px 80px 32px; position: relative; width: 1200px; will-change: var(--framer-will-change-filter-override, filter); }\",\".framer-OWQBh .framer-os97v9-container { flex: none; height: auto; max-width: 440px; position: relative; width: 100%; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 760\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,null,\"760px\",null]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerHK6_exVht=withCSS(Component,css,\"framer-OWQBh\");export default FramerHK6_exVht;FramerHK6_exVht.displayName=\"Booking Widget Section\";FramerHK6_exVht.defaultProps={height:760,width:1200};addFonts(FramerHK6_exVht,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{cssFamilyName:\"Fraunces\",source:\"google\",style:\"normal\",uiFamilyName:\"Fraunces\",url:\"https://fonts.gstatic.com/s/fraunces/v38/6NUh8FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0K7iN7hzFUPJH58nib1603gg7S2nfgRYIctxujC_TShUtWNg.woff2\",weight:\"400\"}]},...BookingWidgetFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerHK6_exVht\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerColorSyntax\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,null,\\\"760px\\\",null]}}}\",\"framerIntrinsicWidth\":\"1200\",\"framerIntrinsicHeight\":\"760\",\"framerAutoSizeImages\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HK6_exVht.map","// Generated by Framer (3ad0d99)\nexport default function metadata(params,activeLocale){return{description:\"Made with Framer\",robots:\"max-image-preview:large\",title:\"My Framer Site\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (80f113d)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"1yr2k38\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"jcqu3e\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-uue8C\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (80f113d)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"20ri3c\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"44s05j\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"36vary\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-4LYul\",title:siteMetadata(params,activeLocale).title||\"Preview\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}