@forgebuild/hotal-ui 0.23.205 → 0.24.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -1
- package/dist/components/ai-chat-widget.js +4 -4
- package/dist/components/availability-calendar.js +2 -2
- package/dist/components/booking-card.js +2 -2
- package/dist/components/booking-checkout.js +2 -2
- package/dist/components/booking-confirmed.js +1 -1
- package/dist/components/booking-flow.js +26 -26
- package/dist/components/booking-progress-bar.js +1 -1
- package/dist/components/booking-summary.js +2 -2
- package/dist/components/chunks/client-DNa0V682.js +3 -0
- package/dist/components/confirmation-card.js +2 -2
- package/dist/components/dining-teaser.js +2 -2
- package/dist/components/event-contact-form.js +2 -2
- package/dist/components/event-inquiries-feed.js +2 -2
- package/dist/components/extras-catalogue.js +2 -2
- package/dist/components/floor-plan-hero.js +2 -2
- package/dist/components/google-reviews.js +2 -2
- package/dist/components/instagram-feed.js +2 -2
- package/dist/components/island-map.js +1 -1
- package/dist/components/live-dining-orders-feed.js +2 -2
- package/dist/components/live-golf-bookings-feed.js +2 -2
- package/dist/components/live-reservations-feed.js +2 -2
- package/dist/components/live-room-bookings-feed.js +2 -2
- package/dist/components/live-shop-orders-feed.js +2 -2
- package/dist/components/live-spa-bookings-feed.js +2 -2
- package/dist/components/menu-section.js +13 -7
- package/dist/components/proshop-catalogue.js +2 -2
- package/dist/components/reservation-bar.js +2 -2
- package/dist/components/reservation-cancel.js +2 -2
- package/dist/components/restaurant-order-form.js +2 -2
- package/dist/components/room-grid.js +2 -2
- package/dist/components/searchable-select.js +2 -2
- package/dist/components/service-booking-bar.js +2 -2
- package/dist/components/spa-booking-widget.js +3 -3
- package/dist/components/stay-search.js +2 -2
- package/dist/components/tripadvisor-reviews.js +2 -2
- package/dist/components/venue-carousel.js +2 -2
- package/dist/hotal-ui.js +11327 -11125
- package/dist/index.d.ts +47 -0
- package/dist/server/index.d.ts +11 -0
- package/dist/server/index.js +34 -0
- package/dist/server/menu-section.js +944 -0
- package/dist/server/menu-section.meta.js +2 -0
- package/package.json +8 -2
- package/dist/components/chunks/client-BDk8LqGN.js +0 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{B as e,C as t,D as n,E as r,F as i,G as a,H as o,J as s,L as c,M as l,N as u,O as d,P as f,Q as p,R as m,S as h,T as g,U as _,V as v,W as y,X as ee,Y as b,Z as x,_ as S,b as C,et as w,f as T,h as E,i as D,it as te,j as O,n as k,nt as ne,o as re,q as A,r as ie,rt as ae,s as j,t as oe,tt as M,v as se}from"./chunks/client-DNa0V682.js";import{a as ce,i as le,n as ue,r as de,t as fe}from"./chunks/floating-ui.dom-DY3dGoEq.js";import{i as pe,n as me,o as he,r as ge,s as _e,t as ve}from"./chunks/calendar-B8eNjUm2.js";import{t as ye}from"./chunks/stripe-BjXf5ZQJ.js";import{t as be}from"./chunks/preload-helper-Czpn1I53.js";var xe=e=>e;function Se(e,{delay:t=0,duration:n=400,easing:r=xe}={}){let i=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>`opacity: ${e*i}`}}var Ce=d(`<strong class="svelte-1dxdgqu"> </strong>`),we=d(`<span class="svelte-1dxdgqu"> </span>`),Te=d(`<div class="sbw-summary-row sbw-summary-row-sub svelte-1dxdgqu"><span class="svelte-1dxdgqu"> </span> <!></div>`),Ee=d(`<div class="sbw-summary-row sbw-summary-row-sub svelte-1dxdgqu"><span class="svelte-1dxdgqu"> </span> <span class="svelte-1dxdgqu"> </span></div>`),De=d(`<span class="sbw-time-flash svelte-1dxdgqu"> </span>`),Oe=d(`<div class="sbw-summary-row sbw-summary-row-sub sbw-summary-row-datetime svelte-1dxdgqu"><span class="svelte-1dxdgqu"> </span> <!></div>`),ke=d(`<div class="sbw-summary-row sbw-summary-row-sub svelte-1dxdgqu"><span class="svelte-1dxdgqu"> </span> <span class="sbw-summary-row-bookedat-value svelte-1dxdgqu"> </span></div>`),Ae=d(`<div class="sbw-summary-total svelte-1dxdgqu"><span class="svelte-1dxdgqu"> </span> <strong class="svelte-1dxdgqu"> </strong></div>`),je=d(`<span class="sbw-spinner svelte-1dxdgqu"></span>`),Me=d(`<p class="sbw-hint svelte-1dxdgqu"> </p>`),Ne=d(`<p class="sbw-error-text svelte-1dxdgqu"> </p>`),Pe=d(`<button type="button" class="sbw-continue svelte-1dxdgqu"><!> <span class="svelte-1dxdgqu"> </span></button> <!> <!>`,1),Fe=d(`<button type="button" class="sbw-continue svelte-1dxdgqu"> </button> <button type="button" class="sbw-back sbw-back-service svelte-1dxdgqu"> </button>`,1),Ie=d(`<button type="submit" class="sbw-submit svelte-1dxdgqu"><!> <span class="svelte-1dxdgqu"> </span></button> <!> <button type="button" class="sbw-back sbw-back-service svelte-1dxdgqu"> </button>`,1),Le=d(`<aside class="sbw-summary svelte-1dxdgqu"><div class="sbw-summary-row svelte-1dxdgqu"><span class="svelte-1dxdgqu"> </span> <!></div> <!> <!> <!> <!> <!> <!></aside>`),Re=d(`<img class="sbw-logo svelte-1dxdgqu" alt=""/>`),ze=d(`<h2 class="sbw-heading svelte-1dxdgqu"> </h2> <div class="sbw-rule svelte-1dxdgqu"></div>`,1),Be=d(`<p class="sbw-tagline svelte-1dxdgqu"> </p>`),Ve=d(`<p class="sbw-description svelte-1dxdgqu"> </p>`),He=d(`<div class="sbw-intro svelte-1dxdgqu"><!> <!> <!> <!></div>`),Ue=d(`<span class="sbw-service-sub svelte-1dxdgqu"> </span>`),We=d(`<span class="sbw-service-price svelte-1dxdgqu"> </span>`),Ge=d(`<span class="sbw-service-prices svelte-1dxdgqu"><!> <!></span>`),Ke=d(`<li class="svelte-1dxdgqu"><button type="button" class="sbw-service-item svelte-1dxdgqu"><span class="sbw-service-name svelte-1dxdgqu"> <!></span> <!></button></li>`),qe=d(`<ul class="sbw-service-list svelte-1dxdgqu" role="list"></ul>`),Je=d(`<div class="sbw-body svelte-1dxdgqu"><h3 class="sbw-step-title svelte-1dxdgqu"> </h3> <!></div>`),Ye=d(`<li role="presentation" class="svelte-1dxdgqu"><button type="button" role="option" class="svelte-1dxdgqu"> </button></li>`),Xe=d(`<div class="sbw-therapist-filter svelte-1dxdgqu"><span class="sbw-visually-hidden svelte-1dxdgqu" id="sbw-therapist-filter-label"> </span> <button type="button" class="sbw-therapist-filter-trigger svelte-1dxdgqu" aria-haspopup="listbox" aria-labelledby="sbw-therapist-filter-label"><span class="svelte-1dxdgqu"> </span> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M6 9l6 6 6-6" stroke-linecap="round" stroke-linejoin="round" class="svelte-1dxdgqu"></path></svg></button> <ul popover="" role="listbox" class="sbw-therapist-filter-panel svelte-1dxdgqu"><li role="presentation" class="svelte-1dxdgqu"><button type="button" role="option" class="svelte-1dxdgqu"> </button></li> <!></ul></div>`),Ze=d(`<span></span>`),Qe=d(`<button type="button"><span class="svelte-1dxdgqu"> </span> <!></button>`),$e=d(`<button type="button"> </button>`),et=d(`<div class="sbw-slot-group svelte-1dxdgqu"><p class="sbw-slot-group-label svelte-1dxdgqu"> </p> <div class="sbw-slot-buttons svelte-1dxdgqu"></div></div>`),tt=d(`<div class="sbw-slot-groups svelte-1dxdgqu"></div>`),nt=d(`<div class="sbw-body sbw-datetime svelte-1dxdgqu"><div class="sbw-calendar-col svelte-1dxdgqu"><div class="sbw-cal-body svelte-1dxdgqu"><div class="sbw-cal-header svelte-1dxdgqu"><p class="sbw-cal-month svelte-1dxdgqu"> </p> <!> <div class="sbw-cal-nav svelte-1dxdgqu"><button type="button" class="svelte-1dxdgqu">‹</button> <button type="button" class="svelte-1dxdgqu">›</button></div></div> <div class="sbw-cal-weekdays svelte-1dxdgqu"></div> <div class="sbw-cal-grid svelte-1dxdgqu"></div></div> <div class="sbw-slots svelte-1dxdgqu"><!></div></div> <!></div>`),rt=d(`<span class="sbw-payment-amount svelte-1dxdgqu"> </span>`),it=d(`<p class="sbw-payment-hint svelte-1dxdgqu"> </p>`),at=d(`<div class="sbw-payment svelte-1dxdgqu"><div class="sbw-payment-header svelte-1dxdgqu"><span class="sbw-label svelte-1dxdgqu"> </span> <!></div> <div class="sbw-payment-slot-anchor svelte-1dxdgqu"></div> <!> <!></div>`),ot=d(`<form class="sbw-body sbw-datetime sbw-details svelte-1dxdgqu"><div class="sbw-details-fields svelte-1dxdgqu"><div class="sbw-grid svelte-1dxdgqu"><label class="sbw-field svelte-1dxdgqu"><span class="sbw-label svelte-1dxdgqu"> </span> <input type="text" required="" class="svelte-1dxdgqu"/></label> <label class="sbw-field svelte-1dxdgqu"><span class="sbw-label svelte-1dxdgqu"> </span> <input type="email" pattern="[^\\s@]+@[^\\s@]+\\.[^\\s@]+" class="svelte-1dxdgqu"/></label> <label class="sbw-field svelte-1dxdgqu"><span class="sbw-label svelte-1dxdgqu"> </span> <input type="tel" class="svelte-1dxdgqu"/></label></div> <label class="sbw-field sbw-notes-field svelte-1dxdgqu"><span class="sbw-label svelte-1dxdgqu"> </span> <textarea rows="3" class="svelte-1dxdgqu"></textarea></label> <!></div> <!></form>`),st=d(`<div class="sbw-success svelte-1dxdgqu"><div class="sbw-success-icon svelte-1dxdgqu"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" class="svelte-1dxdgqu"><path d="M5 13l4 4L19 7" stroke-linecap="round" stroke-linejoin="round" class="svelte-1dxdgqu"></path></svg></div> <p class="svelte-1dxdgqu"> </p> <!></div>`),ct=d(`<section class="sbw-root svelte-1dxdgqu"><!> <!></section>`),lt={hash:`svelte-1dxdgqu`,code:`.sbw-root.svelte-1dxdgqu {display:block;\r
|
|
2
2
|
/* Every layout breakpoint below is a container query against this box,\r
|
|
3
3
|
not the viewport. The widget is embedded in host layouts -- a narrow\r
|
|
4
4
|
column beside a summary card, a modal -- where the viewport says\r
|
|
@@ -203,5 +203,5 @@ import{$ as e,A as t,B as n,D as r,E as i,H as a,I as o,J as s,K as c,L as l,M a
|
|
|
203
203
|
animation: none;}\r
|
|
204
204
|
}.sbw-error-text.svelte-1dxdgqu {margin:0.75rem 0 0;font-size:0.8125rem;color:var(--sbw-danger-color, #dc2626);}\r
|
|
205
205
|
\r
|
|
206
|
-
/* --- Success --- */.sbw-success.svelte-1dxdgqu {max-width:var(--sbw-form-max-width, 40rem);margin:3rem auto 0;text-align:center;}.sbw-success-icon.svelte-1dxdgqu {display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;margin:0 auto 1rem;border-radius:9999px;background:var(--sbw-success-bg, #c49e5a);color:#fff;}.sbw-success-icon.svelte-1dxdgqu svg:where(.svelte-1dxdgqu) {width:1.5rem;height:1.5rem;}.sbw-success.svelte-1dxdgqu .sbw-summary:where(.svelte-1dxdgqu) {margin-top:2rem;text-align:left;}.sbw-success.svelte-1dxdgqu p:where(.svelte-1dxdgqu) {margin:0;font-size:1.125rem;}`};function
|
|
207
|
-
${t??``}`)},[()=>d($t).toLocaleDateString(F(),{day:`numeric`,month:`short`}),()=>d($t).toLocaleTimeString(F(),{hour:`2-digit`,minute:`2-digit`})]),m(e,t)};p(D,e=>{d(a)&&d($t)&&e(ee)});var O=g(D,2),k=e=>{var t=ke(),n=N(t),r=N(n,!0);S(n);var i=g(n,2),a=N(i,!0);S(i),S(t),o(e=>{j(r,d(L).totalLabel),j(a,e)},[()=>Pt(d(J).amount)]),m(e,t)},te=s(()=>d(J)&&Ft(d(J).amount));p(O,e=>{d(te)&&e(k)});var ne=g(O,2),A=e=>{var r=i(),a=n(r),s=e=>{var t=Ne(),r=n(t),i=N(r),a=e=>{var t=Ae();m(e,t)};p(i,e=>{d(Z)&&e(a)});var s=g(i,2),c=N(s,!0);S(s),S(r);var l=g(r,2),u=e=>{var t=je(),n=N(t,!0);S(t),o(()=>j(n,d(L).noChangeHint)),m(e,t)};p(l,e=>{d(dn)&&e(u)});var f=g(l,2),h=e=>{var t=Me(),n=N(t,!0);S(t),o(()=>j(n,d(Q))),m(e,t)};p(f,e=>{d(Q)&&e(h)}),o(()=>{r.disabled=!d(K)||d(Z)||d(dn),j(c,d(Z)?d(L).confirmingLabel:d(L).confirmRescheduleLabel)}),E(`click`,r,Zn),m(e,t)},c=e=>{var t=Pe(),r=n(t),i=N(r,!0);S(r);var a=g(r,2),s=N(a);S(a),o(()=>{r.disabled=!d(K),j(i,d(L).continueLabel),j(s,`← ${d(L).changeServiceLabel??``}`)}),E(`click`,r,wn),E(`click`,a,En),m(e,t)},l=e=>{var t=Fe(),r=n(t),i=N(r),a=e=>{var t=Ae();m(e,t)};p(i,e=>{d(Z)&&e(a)});var s=g(i,2),c=N(s,!0);S(s),S(r);var l=g(r,2),u=e=>{var t=Me(),n=N(t,!0);S(t),o(()=>j(n,d(Q))),m(e,t)};p(l,e=>{d(Q)&&e(u)});var f=g(l,2),h=N(f);S(f),o(()=>{r.disabled=d(Z)||d(Vn),j(c,d(Z)?d(L).confirmingLabel:d(Mn)?d(L).confirmPayLabel:d(L).confirmLabel),j(h,`← ${d(L).backLabel??``}`)}),E(`click`,f,Tn),m(e,t)};p(a,e=>{t()&&P()?e(s):t()?e(c,1):e(l,-1)}),m(e,r)};p(ne,e=>{d(a)||e(A)}),S(r),o(()=>j(u,d(z).name)),m(e,r)};p(l,e=>{d(z)&&e(u)}),m(e,c)},be={chooseServiceLabel:`Choose a Service`,loadingServices:`Loading services…`,loadServicesError:`Could not load services. Please try again later.`,previousMonth:`Previous month`,nextMonth:`Next month`,morningLabel:`Morning`,afternoonLabel:`Afternoon`,eveningLabel:`Evening`,pickDayHint:`Pick a day to see times.`,noSlotsForDay:`No times available this day.`,noChangeHint:`Pick a different date or time to continue.`,therapistFilterLabel:`Therapist`,anyTherapistLabel:`Any therapist`,staffRowLabel:`Staff`,bookedAtLabel:`Booked`,totalLabel:`Total`,continueLabel:`Continue`,changeServiceLabel:`Change service`,backLabel:`Back`,nameLabel:`Name`,namePlaceholder:`Jane Smith`,emailLabel:`Email`,emailPlaceholder:`jane@email.com`,emailInvalidTitle:`Enter a valid email address, e.g. jane@email.com`,phoneLabel:`Phone (optional)`,phonePlaceholder:`+1 555 123 4567`,notesLabel:`Notes (optional)`,notesPlaceholder:`Anything we should know?`,confirmingLabel:`Booking…`,confirmLabel:`Confirm Booking`,confirmRescheduleLabel:`Confirm change`,notWiredError:`This widget is not wired up to make bookings yet.`,genericSubmitError:`Something went wrong booking that slot. Please try again.`,successMessage:`Booked! Check your email for confirmation.`,memberRateLabel:`Regulars' rate`,membersOnlyLabel:`Regulars only`,membersOnlyHint:`For clients who've visited in the last 4 weeks.`,paymentLabel:`Payment`,paymentDueLabel:`due now`,paymentHint:``,paymentUnavailable:`Payment form unavailable — refresh to try again.`,paymentNotReady:`Payment form is not ready yet — please wait a moment and try again.`,paymentFailed:`Your payment could not be completed. Please try again.`,confirmPayLabel:`Pay & Confirm`},lt=D(r,`heading`,7,`Book a Service`),ut=D(r,`logoUrl`,7),dt=D(r,`tagline`,7,``),ft=D(r,`description`,7,``),pt=D(r,`staffLabel`,7,``),mt=D(r,`hidePrice`,7,!1),ht=D(r,`hideZeroPrice`,7,!1),P=D(r,`skipDetailsStep`,7,!1),gt=D(r,`emailOptional`,7,!1),_t=D(r,`closedWeekdays`,23,()=>[]),F=D(r,`locale`,7),vt=D(r,`currency`,7,`GBP`),yt=D(r,`initialTreatmentTitle`,7),I=D(r,`initialDate`,7),bt=D(r,`initialTime`,7),xt=D(r,`initialName`,7),St=D(r,`initialEmail`,7),Ct=D(r,`initialPhone`,7),wt=D(r,`memberUntil`,7),Tt=D(r,`strings`,7),Et=D(r,`fetchTreatments`,7),Dt=D(r,`fetchTherapists`,7),Ot=D(r,`fetchAvailability`,7),kt=D(r,`submitBooking`,7),At=D(r,`createPaymentIntent`,7),jt=D(r,`stripePublishableKey`,7),Mt=D(r,`stripeAppearance`,7),L=s(()=>({...be,...Tt()})),Nt=s(()=>{try{return new Intl.NumberFormat(F(),{style:`currency`,currency:vt()})}catch{return{format:e=>`${vt()}${e.toFixed(2)}`}}}),Pt=e=>d(Nt).format(e),Ft=e=>!mt()&&!(ht()&&e===0),It=s(()=>he(F())),Lt=s(()=>fe(F())),R=_(`service`),Rt=_(a([])),zt=_(!0),Bt=_(!1),z=_(null);l(()=>{let e=Et();if(!e)return;let t=!1;return h(zt,!0),h(Bt,!1),e().then(e=>{if(!t){if(!e?.length)throw Error(`empty`);h(Rt,e,!0)}}).catch(()=>{t||h(Bt,!0)}).finally(()=>{t||h(zt,!1)}),()=>{t=!0}});let Vt=_(a([])),B=_(``),V=_(!1),Ht=_(void 0),Ut=_(void 0);l(()=>{let e=Dt();if(!e)return;let t=!1;return e().then(e=>{t||h(Vt,e??[],!0)}).catch(()=>{t||h(Vt,[],!0)}),()=>{t=!0}});let Wt=s(()=>d(Vt).find(e=>e.id===d(B))?.name);function Gt(){h(V,!d(V))}function Kt(e){h(B,e,!0),h(V,!1)}l(()=>{if(!d(V)||!d(Ht)||!d(Ut))return;let e=d(Ht),t=d(Ut);t.style.minWidth=`${e.getBoundingClientRect().width}px`,t.showPopover();let n=de(e,t,async()=>{let{x:n,y:r}=await le(e,t,{strategy:`fixed`,placement:`bottom-start`,middleware:[ce(4),ue(),se({padding:12})]});t.style.left=`${n}px`,t.style.top=`${r}px`});function r(e){e.newState===`closed`&&h(V,!1)}return t.addEventListener(`toggle`,r),()=>{n(),t.removeEventListener(`toggle`,r),t.matches(`:popover-open`)&&t.hidePopover()}});let qt=e=>e.trim().toLowerCase(),Jt;l(()=>{let e=yt();if(!e||e===Jt||!d(Rt).length)return;let t=d(Rt).find(t=>qt(t.name)===qt(e));t&&(Jt=e,Xt(t))});let Yt;l(()=>{if(!I()||!d(z)||I()===Yt)return;Yt=I();let[e,t,n]=I().split(`-`).map(Number);h(U,e,!0),h(W,t-1),h(G,new Date(e,t-1,n),!0),h(K,bt()??null,!0)});function Xt(e){h(z,e,!0),h(G,null),h(K,null),nn=0,h(R,`datetime`)}let Zt,Qt=!1;l(()=>{let e=Ot();if(!Qt){Qt=!0,Zt=e;return}e===Zt||P()||(Zt=e,d(R)!==`service`&&h(R,`service`),h(z,null),h(G,null),h(K,null),nn=0)});let H=me(new Date),U=_(a(H.getFullYear())),W=_(a(H.getMonth())),G=_(null),K=_(null),$t=_(null),en=_(a(new Map)),tn=_(!1),nn=0,rn=ge(H);function an(e,t){return e.memberPrice!=null&&!!wt()&&t<=wt()}function on(e,t){return an(e,t)||e.price==null?{amount:e.memberPrice??0,member:!0}:{amount:e.price,member:!1}}function sn(e){return e.price!=null||an(e,rn)}let cn=s(()=>_e(d(U),d(W),H,_t()??[])),ln=s(()=>d(U)!==H.getFullYear()||d(W)!==H.getMonth()),q=s(()=>d(G)?ge(d(G)):null),J=s(()=>d(z)?on(d(z),d(q)??rn):null),un=s(()=>d(q)?d(en).get(d(q))??[]:[]),dn=s(()=>P()&&!!d(K)&&d(q)===I()&&d(K)===bt()),fn=s(()=>{let e={morning:[],afternoon:[],evening:[]};for(let t of d(un)){let n=parseInt(t.slice(0,2),10);n<12?e.morning.push(t):n<17?e.afternoon.push(t):e.evening.push(t)}return e});function pn(e){return d(en).get(e)?.length??0}function mn(e){let t=pn(e);return t===0?0:t<=5?1:t<=10?2:3}function hn(){if(d(G))return;let e=d(cn).find(e=>e.inMonth&&!e.isPast&&mn(e.iso)>0);e?(h(G,e.date,!0),h(K,null)):nn<3&&(nn++,xn())}function gn(){let e=Ot();if(!e||!d(z))return;let t=ge(new Date(d(U),d(W),1)),n=ge(new Date(d(U),d(W)+1,0)),r=d(z).id,i=d(B)||void 0;h(tn,!0),e(t,n,r,i).then(e=>{if(d(z)?.id!==r||(d(B)||void 0)!==i)return;let t=new Map;for(let n of e??[])t.set(String(n.date).split(`T`)[0],n.slots.map(e=>e.time));h(en,t,!0),hn()}).catch(()=>{h(en,new Map,!0)}).finally(()=>{h(tn,!1)})}l(()=>{d(z),d(B),d(U),d(W),wt(),gn()});let _n=``;l(()=>{d(B)!==_n&&(_n=d(B),h(G,null),h(K,null))}),l(()=>{!d(q)||d(K)||d(un).length>0&&h(K,d(un)[0],!0)});function vn(){d(G)&&(d(G).getFullYear()!==d(U)||d(G).getMonth()!==d(W))&&(h(G,null),h(K,null))}function yn(e){e.classList.remove(`sbw-cal-nav-pulse`),e.offsetWidth,e.classList.add(`sbw-cal-nav-pulse`),e.addEventListener(`animationend`,()=>e.classList.remove(`sbw-cal-nav-pulse`),{once:!0})}function bn(){d(ln)&&(h(W,d(W)-1),d(W)<0&&(h(W,11),h(U,d(U)-1)),vn())}function xn(){h(W,d(W)+1),d(W)>11&&(h(W,0),h(U,d(U)+1)),vn()}function Sn(e){!e.inMonth||e.isPast||mn(e.iso)===0||(h(G,e.date,!0),h(K,null))}function Cn(e){h(K,e,!0)}function wn(){d(K)&&(h(R,`details`),Kn())}function Tn(){h(R,`datetime`)}function En(){h(R,`service`)}let Y=_(``),X=_(``),Dn=_(``),On=_(``),Z=_(!1),Q=_(``),kn=!1,An=!1,jn=!1;l(()=>{xt()&&!kn&&!d(Y)&&(h(Y,xt(),!0),kn=!0)}),l(()=>{St()&&!An&&!d(X)&&(h(X,St(),!0),An=!0)}),l(()=>{Ct()&&!jn&&!d(Dn)&&(h(Dn,Ct(),!0),jn=!0)});let Mn=s(()=>!!(jt()&&At())&&!P()),Nn=null,Pn=null,Fn=null,In=null,$=null,Ln=null,Rn=``,zn=0,Bn=!1,Vn=_(!1),Hn=_(``),Un=_(``);async function Wn(){return jt()?(Pn||=ye(async()=>{let{loadStripe:e}=await import(`./chunks/lib-Bd4dedte.js`);return{loadStripe:e}},[]).then(({loadStripe:e})=>e(jt())),Nn=await Pn,Nn):null}function Gn(){In?.destroy(),$?.remove(),In=null,Fn=null,$=null,Ln=null,Rn=``,h(Un,``)}l(()=>Gn);async function Kn(){if(!d(Mn)||!At()||!d(z)||!d(q)||!d(K))return;let e={treatmentId:d(z).id,date:d(q),time:d(K),therapistId:d(B)||void 0},t=[e.treatmentId,e.date,e.time,e.therapistId??``].join(`|`);await f();let n=r.$$host,i=n?.shadowRoot?.querySelector(`.sbw-payment-slot-anchor`);if(i&&!i.querySelector(`slot[name="payment-mount"]`)){let e=document.createElement(`slot`);e.setAttribute(`name`,`payment-mount`),i.appendChild(e)}if(Bn||Fn&&t===Rn)return;Gn(),Rn=t;let a=++zn;h(Vn,!0),h(Hn,``);try{let t=await Wn();if(!t)throw Error(`Stripe failed to load`);let r=await At()(e);if(a!==zn)return;if(Ln=r.paymentIntentId,r.amount!=null&&r.currency){let e=new Intl.NumberFormat(F(),{style:`currency`,currency:r.currency}).format(ve(r.amount,r.currency));h(Un,`${e} ${d(L).paymentDueLabel}`)}Fn=t.elements({clientSecret:r.clientSecret,appearance:Mt()}),In=Fn.create(`payment`,{layout:{type:`tabs`,defaultCollapsed:!1}}),In.on(`loaderror`,()=>{a===zn&&h(Hn,d(L).paymentUnavailable,!0)}),$=document.createElement(`div`),$.slot=`payment-mount`,$.className=`sbw-payment-element`,n.appendChild($),In.mount($)}catch{if(a!==zn)return;Gn(),h(Hn,d(L).paymentUnavailable,!0)}finally{a===zn&&h(Vn,!1)}}async function qn(){if(!Nn||!Fn||!Ln)return h(Q,d(L).paymentNotReady,!0),!1;h(Q,``),h(Z,!0);try{let{error:e,paymentIntent:t}=await Nn.confirmPayment({elements:Fn,confirmParams:{payment_method_data:{billing_details:{name:d(Y),email:d(X)||void 0,phone:d(Dn)||void 0}}},redirect:`if_required`});if(e||![`succeeded`,`requires_capture`,`processing`].includes(t?.status))return h(Q,e?.message??d(L).paymentFailed,!0),!1}catch{return h(Q,d(L).paymentFailed,!0),!1}finally{h(Z,!1)}return Bn=!0,!0}function Jn(e,t){r.$$host?.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}async function Yn(e){if(!kt()){h(Q,d(L).notWiredError,!0);return}h(Q,``),h(Z,!0);try{let t=await kt()(e);if(!t.ok)throw Error(t.error||`request failed`);h($t,new Date,!0),h(R,`success`),Jn(`booking-submitted`,e)}catch(e){h(Q,e instanceof Error&&e.message!==`request failed`?e.message:d(L).genericSubmitError,!0),gn()}finally{h(Z,!1)}}async function Xn(e){e.preventDefault(),!(!d(z)||!d(q)||!d(K))&&(d(Mn)&&!Bn&&!await qn()||await Yn({treatmentId:d(z).id,date:d(q),time:d(K),therapistId:d(B)||void 0,name:d(Y),email:d(X),phone:d(Dn),notes:d(On),stripePaymentIntentId:d(Mn)?Ln??void 0:void 0}))}async function Zn(){!d(z)||!d(q)||!d(K)||await Yn({treatmentId:d(z).id,date:d(q),time:d(K),therapistId:d(B)||void 0,name:xt()??``,email:St()??``,phone:Ct()??``,notes:``})}var Qn={get heading(){return lt()},set heading(e=`Book a Service`){lt(e),c()},get logoUrl(){return ut()},set logoUrl(e){ut(e),c()},get tagline(){return dt()},set tagline(e=``){dt(e),c()},get description(){return ft()},set description(e=``){ft(e),c()},get staffLabel(){return pt()},set staffLabel(e=``){pt(e),c()},get hidePrice(){return mt()},set hidePrice(e=!1){mt(e),c()},get hideZeroPrice(){return ht()},set hideZeroPrice(e=!1){ht(e),c()},get skipDetailsStep(){return P()},set skipDetailsStep(e=!1){P(e),c()},get emailOptional(){return gt()},set emailOptional(e=!1){gt(e),c()},get closedWeekdays(){return _t()},set closedWeekdays(e=[]){_t(e),c()},get locale(){return F()},set locale(e){F(e),c()},get currency(){return vt()},set currency(e=`GBP`){vt(e),c()},get initialTreatmentTitle(){return yt()},set initialTreatmentTitle(e){yt(e),c()},get initialDate(){return I()},set initialDate(e){I(e),c()},get initialTime(){return bt()},set initialTime(e){bt(e),c()},get initialName(){return xt()},set initialName(e){xt(e),c()},get initialEmail(){return St()},set initialEmail(e){St(e),c()},get initialPhone(){return Ct()},set initialPhone(e){Ct(e),c()},get memberUntil(){return wt()},set memberUntil(e){wt(e),c()},get strings(){return Tt()},set strings(e){Tt(e),c()},get fetchTreatments(){return Et()},set fetchTreatments(e){Et(e),c()},get fetchTherapists(){return Dt()},set fetchTherapists(e){Dt(e),c()},get fetchAvailability(){return Ot()},set fetchAvailability(e){Ot(e),c()},get submitBooking(){return kt()},set submitBooking(e){kt(e),c()},get createPaymentIntent(){return At()},set createPaymentIntent(e){At(e),c()},get stripePublishableKey(){return jt()},set stripePublishableKey(e){jt(e),c()},get stripeAppearance(){return Mt()},set stripeAppearance(e){Mt(e),c()}},$n=st(),er=N($n),tr=t=>{var a=Ve(),s=N(a),c=e=>{var t=Le();o(()=>A(t,`src`,ut())),m(e,t)};p(s,e=>{ut()&&e(c)});var l=g(s,2);ae(l,r,`heading`,{},t=>{var r=i(),a=n(r),s=t=>{var r=Re(),i=n(r),a=N(i,!0);S(i),e(2),o(()=>j(a,lt())),m(t,r)};p(a,e=>{lt()&&e(s)}),m(t,r)});var u=g(l,2),d=e=>{var t=ze(),n=N(t,!0);S(t),o(()=>j(n,dt())),m(e,t)};p(u,e=>{dt()&&e(d)});var f=g(u,2);ae(f,r,`description`,{},e=>{var t=i(),r=n(t),a=e=>{var t=Be(),n=N(t,!0);S(t),o(()=>j(n,ft())),m(e,t)};p(r,e=>{ft()&&e(a)}),m(e,t)}),S(a),m(t,a)};p(er,e=>{d(R)!==`success`&&e(tr)});var nr=g(er,2),rr=e=>{var t=qe(),n=N(t),r=N(n,!0);S(n);var i=g(n,2),a=e=>{var t=je(),n=N(t,!0);S(t),o(()=>j(n,d(L).loadingServices)),m(e,t)},c=e=>{var t=Me(),n=N(t,!0);S(t),o(()=>j(n,d(L).loadServicesError)),m(e,t)},l=e=>{var t=Ke();M(t,21,()=>d(Rt),e=>e.id,(e,t)=>{let n=s(()=>sn(d(t)));var r=Ge(),i=N(r),a=N(i),c=N(a),l=g(c),u=e=>{var t=He(),n=N(t,!0);S(t),o(()=>j(n,d(L).membersOnlyHint)),m(e,t)};p(l,e=>{d(n)||e(u)}),S(a);var f=g(a,2),h=e=>{var n=We(),r=N(n),i=e=>{var n=Ue(),r=N(n,!0);S(n),o(e=>j(r,e),[()=>Pt(d(t).price??d(t).memberPrice??0)]),m(e,n)},a=s(()=>Ft(d(t).price??d(t).memberPrice??0));p(r,e=>{d(a)&&e(i)});var c=g(r,2),l=e=>{var t=He(),n=N(t,!0);S(t),o(()=>j(n,d(L).membersOnlyLabel)),m(e,t)},u=e=>{var n=He(),r=N(n);S(n),o(e=>j(r,`${d(L).memberRateLabel??``} ${e??``}`),[()=>Pt(d(t).memberPrice)]),m(e,n)},f=s(()=>d(t).memberPrice!=null&&Ft(d(t).memberPrice));p(c,e=>{d(t).price==null?e(l):d(f)&&e(u,1)}),S(n),m(e,n)};p(f,e=>{mt()||e(h)}),S(i),S(r),o(()=>{i.disabled=!d(n),j(c,`${d(t).name??``} `)}),E(`click`,i,()=>Xt(d(t))),m(e,r)}),S(t),m(e,t)};p(i,e=>{d(zt)?e(a):d(Bt)?e(c,1):e(l,-1)}),S(t),o(()=>j(r,d(L).chooseServiceLabel)),m(e,t)},ir=e=>{var t=tt(),r=N(t),a=N(r),c=N(a),l=N(c),u=N(l);S(l);var f=g(l,2),_=e=>{var t=Ye(),n=N(t),r=N(n,!0);S(n);var i=g(n,2),a=N(i),s=N(a,!0);S(a);var c=g(a,2);let l;S(i),te(i,e=>h(Ht,e),()=>d(Ht));var u=g(i,2),f=N(u),p=N(f),_=N(p,!0);S(p),S(f);var v=g(f,2);M(v,17,()=>d(Vt),e=>e.id,(e,t)=>{var n=Je(),r=N(n),i=N(r,!0);S(r),S(n),o(()=>{A(r,`aria-selected`,d(t).id===d(B)),j(i,d(t).name)}),E(`click`,r,()=>Kt(d(t).id)),m(e,n)}),S(u),te(u,e=>h(Ut,e),()=>d(Ut)),S(t),o(()=>{j(r,d(L).therapistFilterLabel),A(i,`aria-expanded`,d(V)),j(s,d(Wt)??d(L).anyTherapistLabel),l=C(c,0,`sbw-chevron svelte-1dxdgqu`,null,l,{"sbw-chevron-open":d(V)}),A(u,`aria-label`,d(L).therapistFilterLabel),A(p,`aria-selected`,!d(B)),j(_,d(L).anyTherapistLabel)}),E(`click`,i,Gt),E(`click`,p,()=>Kt(``)),m(e,t)};p(f,e=>{d(Vt).length&&e(_)});var v=g(f,2),y=N(v),b=g(y,2);S(v),S(c);var x=g(c,2);M(x,20,()=>d(Lt),e=>e,(e,t)=>{var n=Ce(),r=N(n,!0);S(n),o(()=>j(r,t)),m(e,n)}),S(x);var w=g(x,2);M(w,21,()=>d(cn),e=>e.iso,(e,t)=>{let n=s(()=>mn(d(t).iso)),r=s(()=>d(t).inMonth&&!d(t).isPast&&d(n)>0);var i=Ze();let a;var c=N(i),l=N(c,!0);S(c);var u=g(c,2),f=e=>{var t=Xe();o(()=>C(t,1,`sbw-dot sbw-dot-${d(n)??``}`,`svelte-1dxdgqu`)),m(e,t)};p(u,e=>{d(r)&&e(f)}),S(i),o(()=>{a=C(i,1,`sbw-cal-cell svelte-1dxdgqu`,null,a,{"sbw-cal-cell-off":!d(t).inMonth||d(t).isPast,"sbw-cal-cell-selected":d(q)===d(t).iso}),i.disabled=!d(r),j(l,d(t).dayNumber)}),E(`click`,i,()=>Sn(d(t))),m(e,i)}),S(w),S(a);var T=g(a,2),D=N(T),ee=e=>{var t=je(),n=N(t,!0);S(t),o(()=>j(n,d(L).pickDayHint)),m(e,t)},O=e=>{var t=je(),n=N(t,!0);S(t),o(()=>j(n,d(L).loadingServices)),m(e,t)},k=e=>{var t=je(),n=N(t,!0);S(t),o(()=>j(n,d(L).noSlotsForDay)),m(e,t)},ie=e=>{var t=et();M(t,21,()=>[[`morning`,d(L).morningLabel],[`afternoon`,d(L).afternoonLabel],[`evening`,d(L).eveningLabel]],([e,t])=>e,(e,t)=>{var r=s(()=>ne(d(t),2));let a=()=>d(r)[0],c=()=>d(r)[1],l=s(()=>d(fn)[a()]);var u=i(),f=n(u),h=e=>{var t=$e(),n=N(t),r=N(n);S(n);var i=g(n,2);M(i,20,()=>d(l),e=>e,(e,t)=>{var n=Qe();let r;var i=N(n,!0);S(n),o(()=>{r=C(n,1,`sbw-slot-btn svelte-1dxdgqu`,null,r,{"sbw-slot-btn-selected":d(K)===t}),j(i,t)}),E(`click`,n,()=>Cn(t)),m(e,n)}),S(i),S(t),o(()=>j(r,`${c()??``} (${d(l).length??``})`)),m(e,t)};p(f,e=>{d(l).length&&e(h)}),m(e,u)}),S(t),m(e,t)};p(D,e=>{d(q)?d(tn)?e(O,1):d(un).length?e(ie,-1):e(k,2):e(ee)}),S(T),S(r);var ae=g(r,2);re(ae,()=>!0),S(t),o(()=>{j(u,`${d(It)[d(W)]??``} ${d(U)??``}`),y.disabled=!d(ln),A(y,`aria-label`,d(L).previousMonth),A(b,`aria-label`,d(L).nextMonth),A(w,`aria-busy`,d(tn))}),E(`click`,y,e=>{yn(e.currentTarget),bn()}),E(`click`,b,e=>{yn(e.currentTarget),xn()}),m(e,t)},ar=e=>{var t=at(),n=N(t),r=N(n),i=N(r),a=N(i),s=N(a,!0);S(a);var c=g(a,2);O(c),S(i);var l=g(i,2),f=N(l),_=N(f,!0);S(f);var v=g(f,2);O(v),S(l);var b=g(l,2),x=N(b),C=N(x,!0);S(x);var w=g(x,2);O(w),S(b),S(r);var E=g(r,2),D=N(E),ee=N(D,!0);S(D);var k=g(D,2);y(k),S(E);var te=g(E,2),ne=e=>{var t=it(),n=N(t),r=N(n),i=N(r,!0);S(r);var a=g(r,2),s=e=>{var t=nt(),n=N(t,!0);S(t),o(()=>j(n,d(Un))),m(e,t)};p(a,e=>{d(Un)&&e(s)}),S(n);var c=g(n,4),l=e=>{var t=Me(),n=N(t,!0);S(t),o(()=>j(n,d(Hn))),m(e,t)};p(c,e=>{d(Hn)&&e(l)});var u=g(c,2),f=e=>{var t=rt(),n=N(t,!0);S(t),o(()=>j(n,d(L).paymentHint)),m(e,t)};p(u,e=>{d(L).paymentHint&&e(f)}),S(t),o(()=>j(i,d(L).paymentLabel)),m(e,t)};p(te,e=>{d(Mn)&&e(ne)}),S(n);var ie=g(n,2);re(ie,()=>!1),S(t),o(()=>{j(s,d(L).nameLabel),A(c,`placeholder`,d(L).namePlaceholder),j(_,gt()?`${d(L).emailLabel} (optional)`:d(L).emailLabel),v.required=!gt(),A(v,`title`,d(L).emailInvalidTitle),A(v,`placeholder`,d(L).emailPlaceholder),j(C,d(L).phoneLabel),A(w,`placeholder`,d(L).phonePlaceholder),j(ee,d(L).notesLabel),A(k,`placeholder`,d(L).notesPlaceholder)}),u(`submit`,t,Xn),T(c,()=>d(Y),e=>h(Y,e)),T(v,()=>d(X),e=>h(X,e)),T(w,()=>d(Dn),e=>h(Dn,e)),T(k,()=>d(On),e=>h(On,e)),m(e,t)},or=e=>{var t=ot(),n=g(N(t),2),r=N(n,!0);S(n);var i=g(n,2);re(i,()=>!1,()=>!0),S(t),o(()=>j(r,d(L).successMessage)),m(e,t)};return p(nr,e=>{d(R)===`service`?e(rr):d(R)===`datetime`&&d(z)?e(ir,1):d(R)===`details`&&d(z)?e(ar,2):d(R)===`success`&&e(or,3)}),S($n),m(t,$n),v(Qn)}t([`click`]),customElements.define(`spa-booking-widget`,re(lt,{heading:{attribute:`heading`,type:`String`},logoUrl:{attribute:`logo-url`,type:`String`},tagline:{attribute:`tagline`,type:`String`},description:{attribute:`description`,type:`String`},staffLabel:{attribute:`staff-label`,type:`String`},hidePrice:{attribute:`hide-price`,type:`Boolean`},hideZeroPrice:{attribute:`hide-zero-price`,type:`Boolean`},skipDetailsStep:{attribute:`skip-details-step`,type:`Boolean`},emailOptional:{attribute:`email-optional`,type:`Boolean`},closedWeekdays:{attribute:`closed-weekdays`,type:`Array`},initialTreatmentTitle:{attribute:`initial-treatment-title`,type:`String`},initialDate:{attribute:`initial-date`,type:`String`},initialTime:{attribute:`initial-time`,type:`String`},initialName:{attribute:`initial-name`,type:`String`},initialEmail:{attribute:`initial-email`,type:`String`},initialPhone:{attribute:`initial-phone`,type:`String`},memberUntil:{attribute:`member-until`,type:`String`},locale:{attribute:`locale`,type:`String`},currency:{attribute:`currency`,type:`String`},strings:{type:`Object`},fetchTreatments:{type:`Object`},fetchTherapists:{type:`Object`},fetchAvailability:{type:`Object`},submitBooking:{type:`Object`},createPaymentIntent:{type:`Object`},stripePublishableKey:{attribute:`stripe-publishable-key`,type:`String`},stripeAppearance:{type:`Object`}},[`heading`,`description`],[],{mode:`open`}));
|
|
206
|
+
/* --- Success --- */.sbw-success.svelte-1dxdgqu {max-width:var(--sbw-form-max-width, 40rem);margin:3rem auto 0;text-align:center;}.sbw-success-icon.svelte-1dxdgqu {display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;margin:0 auto 1rem;border-radius:9999px;background:var(--sbw-success-bg, #c49e5a);color:#fff;}.sbw-success-icon.svelte-1dxdgqu svg:where(.svelte-1dxdgqu) {width:1.5rem;height:1.5rem;}.sbw-success.svelte-1dxdgqu .sbw-summary:where(.svelte-1dxdgqu) {margin-top:2rem;text-align:left;}.sbw-success.svelte-1dxdgqu p:where(.svelte-1dxdgqu) {margin:0;font-size:1.125rem;}`};function ut(d,O){p(O,!0),E(d,lt);let oe=(i,a=ae,u)=>{let d=s(()=>ne(u?.(),!1));var p=n(),m=v(p),_=i=>{var s=Le(),u=e(s),p=e(u),m=e(p,!0);M(p);var _=o(p,2),y=t=>{var n=Ce(),i=e(n,!0);M(n),c(e=>g(i,e),[()=>Ft(f(q).amount)]),r(t,n)},ee=b(()=>f(q)&&It(f(q).amount));t(_,e=>{f(ee)&&e(y)}),M(u);var x=o(u,2),C=n=>{var i=Te(),a=e(i),s=e(a,!0);M(a);var l=o(a,2),u=t=>{var n=we(),i=e(n);M(n),c(e=>g(i,`−${e??``}`),[()=>Ft(f(R).price-f(q).amount)]),r(t,n)};t(l,e=>{f(R).price!=null&&f(R).price>f(q).amount&&e(u)}),M(i),c(()=>g(s,f(I).memberRateLabel)),r(n,i)};t(x,e=>{!ht()&&f(q)?.member&&e(C)});var w=o(x,2),T=t=>{var n=Ee(),i=e(n),a=e(i,!0);M(i);var s=o(i,2),l=e(s,!0);M(s),M(n),c(()=>{g(a,f(I).staffRowLabel),g(l,mt())}),r(t,n)};t(w,e=>{mt()&&e(T)});var E=o(w,2),D=t=>{var n=Oe(),i=e(n),a=e(i,!0);M(i);var s=o(i,2);h(s,()=>f(G),t=>{var n=De(),i=e(n,!0);M(n),c(()=>g(i,f(G))),S(1,n,()=>Se,()=>({duration:200})),r(t,n)}),M(n),c(e=>g(a,e),[()=>me(f(W),P())]),r(t,n)};t(E,e=>{f(W)&&f(G)&&e(D)});var te=o(E,2),O=t=>{var n=ke(),i=e(n),a=e(i,!0);M(i);var s=o(i,2),l=e(s);M(s),M(n),c((e,t)=>{g(a,f(I).bookedAtLabel),g(l,`${e??``}
|
|
207
|
+
${t??``}`)},[()=>f(en).toLocaleDateString(P(),{day:`numeric`,month:`short`}),()=>f(en).toLocaleTimeString(P(),{hour:`2-digit`,minute:`2-digit`})]),r(t,n)};t(te,e=>{f(d)&&f(en)&&e(O)});var k=o(te,2),ne=t=>{var n=Ae(),i=e(n),a=e(i,!0);M(i);var s=o(i,2),l=e(s,!0);M(s),M(n),c(e=>{g(a,f(I).totalLabel),g(l,e)},[()=>Ft(f(q).amount)]),r(t,n)},re=b(()=>f(q)&&It(f(q).amount));t(k,e=>{f(re)&&e(ne)});var A=o(k,2),ie=i=>{var s=n(),u=v(s),d=n=>{var i=Pe(),a=v(i),s=e(a),u=e=>{var t=je();r(e,t)};t(s,e=>{f(Z)&&e(u)});var d=o(s,2),p=e(d,!0);M(d),M(a);var m=o(a,2),h=t=>{var n=Me(),i=e(n,!0);M(n),c(()=>g(i,f(I).noChangeHint)),r(t,n)};t(m,e=>{f(fn)&&e(h)});var _=o(m,2),y=t=>{var n=Ne(),i=e(n,!0);M(n),c(()=>g(i,f(Q))),r(t,n)};t(_,e=>{f(Q)&&e(y)}),c(()=>{a.disabled=!f(G)||f(Z)||f(fn),g(p,f(Z)?f(I).confirmingLabel:f(I).confirmRescheduleLabel)}),l(`click`,a,Zn),r(n,i)},p=t=>{var n=Fe(),i=v(n),a=e(i,!0);M(i);var s=o(i,2),u=e(s);M(s),c(()=>{i.disabled=!f(G),g(a,f(I).continueLabel),g(u,`← ${f(I).changeServiceLabel??``}`)}),l(`click`,i,Tn),l(`click`,s,Dn),r(t,n)},m=n=>{var i=Ie(),a=v(i),s=e(a),u=e=>{var t=je();r(e,t)};t(s,e=>{f(Z)&&e(u)});var d=o(s,2),p=e(d,!0);M(d),M(a);var m=o(a,2),h=t=>{var n=Ne(),i=e(n,!0);M(n),c(()=>g(i,f(Q))),r(t,n)};t(m,e=>{f(Q)&&e(h)});var _=o(m,2),y=e(_);M(_),c(()=>{a.disabled=f(Z)||f(Vn),g(p,f(Z)?f(I).confirmingLabel:f(Mn)?f(I).confirmPayLabel:f(I).confirmLabel),g(y,`← ${f(I).backLabel??``}`)}),l(`click`,_,En),r(n,i)};t(u,e=>{a()&&N()?e(d):a()?e(p,1):e(m,-1)}),r(i,s)};t(A,e=>{f(d)||e(ie)}),M(s),c(()=>g(m,f(R).name)),r(i,s)};t(m,e=>{f(R)&&e(_)}),r(i,p)},xe={chooseServiceLabel:`Choose a Service`,loadingServices:`Loading services…`,loadServicesError:`Could not load services. Please try again later.`,previousMonth:`Previous month`,nextMonth:`Next month`,morningLabel:`Morning`,afternoonLabel:`Afternoon`,eveningLabel:`Evening`,pickDayHint:`Pick a day to see times.`,noSlotsForDay:`No times available this day.`,noChangeHint:`Pick a different date or time to continue.`,therapistFilterLabel:`Therapist`,anyTherapistLabel:`Any therapist`,staffRowLabel:`Staff`,bookedAtLabel:`Booked`,totalLabel:`Total`,continueLabel:`Continue`,changeServiceLabel:`Change service`,backLabel:`Back`,nameLabel:`Name`,namePlaceholder:`Jane Smith`,emailLabel:`Email`,emailPlaceholder:`jane@email.com`,emailInvalidTitle:`Enter a valid email address, e.g. jane@email.com`,phoneLabel:`Phone (optional)`,phonePlaceholder:`+1 555 123 4567`,notesLabel:`Notes (optional)`,notesPlaceholder:`Anything we should know?`,confirmingLabel:`Booking…`,confirmLabel:`Confirm Booking`,confirmRescheduleLabel:`Confirm change`,notWiredError:`This widget is not wired up to make bookings yet.`,genericSubmitError:`Something went wrong booking that slot. Please try again.`,successMessage:`Booked! Check your email for confirmation.`,memberRateLabel:`Regulars' rate`,membersOnlyLabel:`Regulars only`,membersOnlyHint:`For clients who've visited in the last 4 weeks.`,paymentLabel:`Payment`,paymentDueLabel:`due now`,paymentHint:``,paymentUnavailable:`Payment form unavailable — refresh to try again.`,paymentNotReady:`Payment form is not ready yet — please wait a moment and try again.`,paymentFailed:`Your payment could not be completed. Please try again.`,confirmPayLabel:`Pay & Confirm`},ut=k(O,`heading`,7,`Book a Service`),dt=k(O,`logoUrl`,7),ft=k(O,`tagline`,7,``),pt=k(O,`description`,7,``),mt=k(O,`staffLabel`,7,``),ht=k(O,`hidePrice`,7,!1),gt=k(O,`hideZeroPrice`,7,!1),N=k(O,`skipDetailsStep`,7,!1),_t=k(O,`emailOptional`,7,!1),vt=k(O,`closedWeekdays`,23,()=>[]),P=k(O,`locale`,7),yt=k(O,`currency`,7,`GBP`),bt=k(O,`initialTreatmentTitle`,7),F=k(O,`initialDate`,7),xt=k(O,`initialTime`,7),St=k(O,`initialName`,7),Ct=k(O,`initialEmail`,7),wt=k(O,`initialPhone`,7),Tt=k(O,`memberUntil`,7),Et=k(O,`strings`,7),Dt=k(O,`fetchTreatments`,7),Ot=k(O,`fetchTherapists`,7),kt=k(O,`fetchAvailability`,7),At=k(O,`submitBooking`,7),jt=k(O,`createPaymentIntent`,7),Mt=k(O,`stripePublishableKey`,7),Nt=k(O,`stripeAppearance`,7),I=b(()=>({...xe,...Et()})),Pt=b(()=>{try{return new Intl.NumberFormat(P(),{style:`currency`,currency:yt()})}catch{return{format:e=>`${yt()}${e.toFixed(2)}`}}}),Ft=e=>f(Pt).format(e),It=e=>!ht()&&!(gt()&&e===0),Lt=b(()=>ge(P())),Rt=b(()=>pe(P())),L=a(`service`),zt=a(_([])),Bt=a(!0),Vt=a(!1),R=a(null);m(()=>{let e=Dt();if(!e)return;let t=!1;return y(Bt,!0),y(Vt,!1),e().then(e=>{if(!t){if(!e?.length)throw Error(`empty`);y(zt,e,!0)}}).catch(()=>{t||y(Vt,!0)}).finally(()=>{t||y(Bt,!1)}),()=>{t=!0}});let Ht=a(_([])),z=a(``),B=a(!1),Ut=a(void 0),Wt=a(void 0);m(()=>{let e=Ot();if(!e)return;let t=!1;return e().then(e=>{t||y(Ht,e??[],!0)}).catch(()=>{t||y(Ht,[],!0)}),()=>{t=!0}});let Gt=b(()=>f(Ht).find(e=>e.id===f(z))?.name);function Kt(){y(B,!f(B))}function qt(e){y(z,e,!0),y(B,!1)}m(()=>{if(!f(B)||!f(Ut)||!f(Wt))return;let e=f(Ut),t=f(Wt);t.style.minWidth=`${e.getBoundingClientRect().width}px`,t.showPopover();let n=fe(e,t,async()=>{let{x:n,y:r}=await ue(e,t,{strategy:`fixed`,placement:`bottom-start`,middleware:[le(4),de(),ce({padding:12})]});t.style.left=`${n}px`,t.style.top=`${r}px`});function r(e){e.newState===`closed`&&y(B,!1)}return t.addEventListener(`toggle`,r),()=>{n(),t.removeEventListener(`toggle`,r),t.matches(`:popover-open`)&&t.hidePopover()}});let Jt=e=>e.trim().toLowerCase(),Yt;m(()=>{let e=bt();if(!e||e===Yt||!f(zt).length)return;let t=f(zt).find(t=>Jt(t.name)===Jt(e));t&&(Yt=e,Zt(t))});let Xt;m(()=>{if(!F()||!f(R)||F()===Xt)return;Xt=F();let[e,t,n]=F().split(`-`).map(Number);y(H,e,!0),y(U,t-1),y(W,new Date(e,t-1,n),!0),y(G,xt()??null,!0)});function Zt(e){y(R,e,!0),y(W,null),y(G,null),rn=0,y(L,`datetime`)}let Qt,$t=!1;m(()=>{let e=kt();if(!$t){$t=!0,Qt=e;return}e===Qt||N()||(Qt=e,f(L)!==`service`&&y(L,`service`),y(R,null),y(W,null),y(G,null),rn=0)});let V=he(new Date),H=a(_(V.getFullYear())),U=a(_(V.getMonth())),W=a(null),G=a(null),en=a(null),tn=a(_(new Map)),nn=a(!1),rn=0,an=_e(V);function on(e,t){return e.memberPrice!=null&&!!Tt()&&t<=Tt()}function sn(e,t){return on(e,t)||e.price==null?{amount:e.memberPrice??0,member:!0}:{amount:e.price,member:!1}}function cn(e){return e.price!=null||on(e,an)}let ln=b(()=>ve(f(H),f(U),V,vt()??[])),un=b(()=>f(H)!==V.getFullYear()||f(U)!==V.getMonth()),K=b(()=>f(W)?_e(f(W)):null),q=b(()=>f(R)?sn(f(R),f(K)??an):null),dn=b(()=>f(K)?f(tn).get(f(K))??[]:[]),fn=b(()=>N()&&!!f(G)&&f(K)===F()&&f(G)===xt()),pn=b(()=>{let e={morning:[],afternoon:[],evening:[]};for(let t of f(dn)){let n=parseInt(t.slice(0,2),10);n<12?e.morning.push(t):n<17?e.afternoon.push(t):e.evening.push(t)}return e});function mn(e){return f(tn).get(e)?.length??0}function hn(e){let t=mn(e);return t===0?0:t<=5?1:t<=10?2:3}function gn(){if(f(W))return;let e=f(ln).find(e=>e.inMonth&&!e.isPast&&hn(e.iso)>0);e?(y(W,e.date,!0),y(G,null)):rn<3&&(rn++,Sn())}function _n(){let e=kt();if(!e||!f(R))return;let t=_e(new Date(f(H),f(U),1)),n=_e(new Date(f(H),f(U)+1,0)),r=f(R).id,i=f(z)||void 0;y(nn,!0),e(t,n,r,i).then(e=>{if(f(R)?.id!==r||(f(z)||void 0)!==i)return;let t=new Map;for(let n of e??[])t.set(String(n.date).split(`T`)[0],n.slots.map(e=>e.time));y(tn,t,!0),gn()}).catch(()=>{y(tn,new Map,!0)}).finally(()=>{y(nn,!1)})}m(()=>{f(R),f(z),f(H),f(U),Tt(),_n()});let vn=``;m(()=>{f(z)!==vn&&(vn=f(z),y(W,null),y(G,null))}),m(()=>{!f(K)||f(G)||f(dn).length>0&&y(G,f(dn)[0],!0)});function yn(){f(W)&&(f(W).getFullYear()!==f(H)||f(W).getMonth()!==f(U))&&(y(W,null),y(G,null))}function bn(e){e.classList.remove(`sbw-cal-nav-pulse`),e.offsetWidth,e.classList.add(`sbw-cal-nav-pulse`),e.addEventListener(`animationend`,()=>e.classList.remove(`sbw-cal-nav-pulse`),{once:!0})}function xn(){f(un)&&(y(U,f(U)-1),f(U)<0&&(y(U,11),y(H,f(H)-1)),yn())}function Sn(){y(U,f(U)+1),f(U)>11&&(y(U,0),y(H,f(H)+1)),yn()}function Cn(e){!e.inMonth||e.isPast||hn(e.iso)===0||(y(W,e.date,!0),y(G,null))}function wn(e){y(G,e,!0)}function Tn(){f(G)&&(y(L,`details`),Kn())}function En(){y(L,`datetime`)}function Dn(){y(L,`service`)}let J=a(``),Y=a(``),X=a(``),On=a(``),Z=a(!1),Q=a(``),kn=!1,An=!1,jn=!1;m(()=>{St()&&!kn&&!f(J)&&(y(J,St(),!0),kn=!0)}),m(()=>{Ct()&&!An&&!f(Y)&&(y(Y,Ct(),!0),An=!0)}),m(()=>{wt()&&!jn&&!f(X)&&(y(X,wt(),!0),jn=!0)});let Mn=b(()=>!!(Mt()&&jt())&&!N()),Nn=null,Pn=null,Fn=null,In=null,$=null,Ln=null,Rn=``,zn=0,Bn=!1,Vn=a(!1),Hn=a(``),Un=a(``);async function Wn(){return Mt()?(Pn||=be(async()=>{let{loadStripe:e}=await import(`./chunks/lib-Bd4dedte.js`);return{loadStripe:e}},[]).then(({loadStripe:e})=>e(Mt())),Nn=await Pn,Nn):null}function Gn(){In?.destroy(),$?.remove(),In=null,Fn=null,$=null,Ln=null,Rn=``,y(Un,``)}m(()=>Gn);async function Kn(){if(!f(Mn)||!jt()||!f(R)||!f(K)||!f(G))return;let e={treatmentId:f(R).id,date:f(K),time:f(G),therapistId:f(z)||void 0},t=[e.treatmentId,e.date,e.time,e.therapistId??``].join(`|`);await i();let n=O.$$host,r=n?.shadowRoot?.querySelector(`.sbw-payment-slot-anchor`);if(r&&!r.querySelector(`slot[name="payment-mount"]`)){let e=document.createElement(`slot`);e.setAttribute(`name`,`payment-mount`),r.appendChild(e)}if(Bn||Fn&&t===Rn)return;Gn(),Rn=t;let a=++zn;y(Vn,!0),y(Hn,``);try{let t=await Wn();if(!t)throw Error(`Stripe failed to load`);let r=await jt()(e);if(a!==zn)return;if(Ln=r.paymentIntentId,r.amount!=null&&r.currency){let e=new Intl.NumberFormat(P(),{style:`currency`,currency:r.currency}).format(ye(r.amount,r.currency));y(Un,`${e} ${f(I).paymentDueLabel}`)}Fn=t.elements({clientSecret:r.clientSecret,appearance:Nt()}),In=Fn.create(`payment`,{layout:{type:`tabs`,defaultCollapsed:!1}}),In.on(`loaderror`,()=>{a===zn&&y(Hn,f(I).paymentUnavailable,!0)}),$=document.createElement(`div`),$.slot=`payment-mount`,$.className=`sbw-payment-element`,n.appendChild($),In.mount($)}catch{if(a!==zn)return;Gn(),y(Hn,f(I).paymentUnavailable,!0)}finally{a===zn&&y(Vn,!1)}}async function qn(){if(!Nn||!Fn||!Ln)return y(Q,f(I).paymentNotReady,!0),!1;y(Q,``),y(Z,!0);try{let{error:e,paymentIntent:t}=await Nn.confirmPayment({elements:Fn,confirmParams:{payment_method_data:{billing_details:{name:f(J),email:f(Y)||void 0,phone:f(X)||void 0}}},redirect:`if_required`});if(e||![`succeeded`,`requires_capture`,`processing`].includes(t?.status))return y(Q,e?.message??f(I).paymentFailed,!0),!1}catch{return y(Q,f(I).paymentFailed,!0),!1}finally{y(Z,!1)}return Bn=!0,!0}function Jn(e,t){O.$$host?.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}async function Yn(e){if(!At()){y(Q,f(I).notWiredError,!0);return}y(Q,``),y(Z,!0);try{let t=await At()(e);if(!t.ok)throw Error(t.error||`request failed`);y(en,new Date,!0),y(L,`success`),Jn(`booking-submitted`,e)}catch(e){y(Q,e instanceof Error&&e.message!==`request failed`?e.message:f(I).genericSubmitError,!0),_n()}finally{y(Z,!1)}}async function Xn(e){e.preventDefault(),!(!f(R)||!f(K)||!f(G))&&(f(Mn)&&!Bn&&!await qn()||await Yn({treatmentId:f(R).id,date:f(K),time:f(G),therapistId:f(z)||void 0,name:f(J),email:f(Y),phone:f(X),notes:f(On),stripePaymentIntentId:f(Mn)?Ln??void 0:void 0}))}async function Zn(){!f(R)||!f(K)||!f(G)||await Yn({treatmentId:f(R).id,date:f(K),time:f(G),therapistId:f(z)||void 0,name:St()??``,email:Ct()??``,phone:wt()??``,notes:``})}var Qn={get heading(){return ut()},set heading(e=`Book a Service`){ut(e),A()},get logoUrl(){return dt()},set logoUrl(e){dt(e),A()},get tagline(){return ft()},set tagline(e=``){ft(e),A()},get description(){return pt()},set description(e=``){pt(e),A()},get staffLabel(){return mt()},set staffLabel(e=``){mt(e),A()},get hidePrice(){return ht()},set hidePrice(e=!1){ht(e),A()},get hideZeroPrice(){return gt()},set hideZeroPrice(e=!1){gt(e),A()},get skipDetailsStep(){return N()},set skipDetailsStep(e=!1){N(e),A()},get emailOptional(){return _t()},set emailOptional(e=!1){_t(e),A()},get closedWeekdays(){return vt()},set closedWeekdays(e=[]){vt(e),A()},get locale(){return P()},set locale(e){P(e),A()},get currency(){return yt()},set currency(e=`GBP`){yt(e),A()},get initialTreatmentTitle(){return bt()},set initialTreatmentTitle(e){bt(e),A()},get initialDate(){return F()},set initialDate(e){F(e),A()},get initialTime(){return xt()},set initialTime(e){xt(e),A()},get initialName(){return St()},set initialName(e){St(e),A()},get initialEmail(){return Ct()},set initialEmail(e){Ct(e),A()},get initialPhone(){return wt()},set initialPhone(e){wt(e),A()},get memberUntil(){return Tt()},set memberUntil(e){Tt(e),A()},get strings(){return Et()},set strings(e){Et(e),A()},get fetchTreatments(){return Dt()},set fetchTreatments(e){Dt(e),A()},get fetchTherapists(){return Ot()},set fetchTherapists(e){Ot(e),A()},get fetchAvailability(){return kt()},set fetchAvailability(e){kt(e),A()},get submitBooking(){return At()},set submitBooking(e){At(e),A()},get createPaymentIntent(){return jt()},set createPaymentIntent(e){jt(e),A()},get stripePublishableKey(){return Mt()},set stripePublishableKey(e){Mt(e),A()},get stripeAppearance(){return Nt()},set stripeAppearance(e){Nt(e),A()}},$n=ct(),er=e($n),tr=i=>{var a=He(),s=e(a),l=e=>{var t=Re();c(()=>j(t,`src`,dt())),r(e,t)};t(s,e=>{dt()&&e(l)});var u=o(s,2);se(u,O,`heading`,{},i=>{var a=n(),o=v(a),s=t=>{var n=ze(),i=v(n),a=e(i,!0);M(i),w(2),c(()=>g(a,ut())),r(t,n)};t(o,e=>{ut()&&e(s)}),r(i,a)});var d=o(u,2),f=t=>{var n=Be(),i=e(n,!0);M(n),c(()=>g(i,ft())),r(t,n)};t(d,e=>{ft()&&e(f)});var p=o(d,2);se(p,O,`description`,{},i=>{var a=n(),o=v(a),s=t=>{var n=Ve(),i=e(n,!0);M(n),c(()=>g(i,pt())),r(t,n)};t(o,e=>{pt()&&e(s)}),r(i,a)}),M(a),r(i,a)};t(er,e=>{f(L)!==`success`&&e(tr)});var nr=o(er,2),rr=n=>{var i=Je(),a=e(i),s=e(a,!0);M(a);var u=o(a,2),d=t=>{var n=Me(),i=e(n,!0);M(n),c(()=>g(i,f(I).loadingServices)),r(t,n)},p=t=>{var n=Ne(),i=e(n,!0);M(n),c(()=>g(i,f(I).loadServicesError)),r(t,n)},m=n=>{var i=qe();C(i,21,()=>f(zt),e=>e.id,(n,i)=>{let a=b(()=>cn(f(i)));var s=Ke(),u=e(s),d=e(u),p=e(d),m=o(p),h=t=>{var n=Ue(),i=e(n,!0);M(n),c(()=>g(i,f(I).membersOnlyHint)),r(t,n)};t(m,e=>{f(a)||e(h)}),M(d);var _=o(d,2),v=n=>{var a=Ge(),s=e(a),l=t=>{var n=We(),a=e(n,!0);M(n),c(e=>g(a,e),[()=>Ft(f(i).price??f(i).memberPrice??0)]),r(t,n)},u=b(()=>It(f(i).price??f(i).memberPrice??0));t(s,e=>{f(u)&&e(l)});var d=o(s,2),p=t=>{var n=Ue(),i=e(n,!0);M(n),c(()=>g(i,f(I).membersOnlyLabel)),r(t,n)},m=t=>{var n=Ue(),a=e(n);M(n),c(e=>g(a,`${f(I).memberRateLabel??``} ${e??``}`),[()=>Ft(f(i).memberPrice)]),r(t,n)},h=b(()=>f(i).memberPrice!=null&&It(f(i).memberPrice));t(d,e=>{f(i).price==null?e(p):f(h)&&e(m,1)}),M(a),r(n,a)};t(_,e=>{ht()||e(v)}),M(u),M(s),c(()=>{u.disabled=!f(a),g(p,`${f(i).name??``} `)}),l(`click`,u,()=>Zt(f(i))),r(n,s)}),M(i),r(n,i)};t(u,e=>{f(Bt)?e(d):f(Vt)?e(p,1):e(m,-1)}),M(i),c(()=>g(s,f(I).chooseServiceLabel)),r(n,i)},ir=i=>{var a=nt(),s=e(a),u=e(s),d=e(u),p=e(d),m=e(p);M(p);var h=o(p,2),_=t=>{var n=Xe(),i=e(n),a=e(i,!0);M(i);var s=o(i,2),u=e(s),d=e(u,!0);M(u);var p=o(u,2);let m;M(s),ie(s,e=>y(Ut,e),()=>f(Ut));var h=o(s,2),_=e(h),v=e(_),ee=e(v,!0);M(v),M(_);var b=o(_,2);C(b,17,()=>f(Ht),e=>e.id,(t,n)=>{var i=Ye(),a=e(i),o=e(a,!0);M(a),M(i),c(()=>{j(a,`aria-selected`,f(n).id===f(z)),g(o,f(n).name)}),l(`click`,a,()=>qt(f(n).id)),r(t,i)}),M(h),ie(h,e=>y(Wt,e),()=>f(Wt)),M(n),c(()=>{g(a,f(I).therapistFilterLabel),j(s,`aria-expanded`,f(B)),g(d,f(Gt)??f(I).anyTherapistLabel),m=T(p,0,`sbw-chevron svelte-1dxdgqu`,null,m,{"sbw-chevron-open":f(B)}),j(h,`aria-label`,f(I).therapistFilterLabel),j(v,`aria-selected`,!f(z)),g(ee,f(I).anyTherapistLabel)}),l(`click`,s,Kt),l(`click`,v,()=>qt(``)),r(t,n)};t(h,e=>{f(Ht).length&&e(_)});var ee=o(h,2),x=e(ee),S=o(x,2);M(ee),M(d);var w=o(d,2);C(w,20,()=>f(Rt),e=>e,(t,n)=>{var i=we(),a=e(i,!0);M(i),c(()=>g(a,n)),r(t,i)}),M(w);var E=o(w,2);C(E,21,()=>f(ln),e=>e.iso,(n,i)=>{let a=b(()=>hn(f(i).iso)),s=b(()=>f(i).inMonth&&!f(i).isPast&&f(a)>0);var u=Qe();let d;var p=e(u),m=e(p,!0);M(p);var h=o(p,2),_=e=>{var t=Ze();c(()=>T(t,1,`sbw-dot sbw-dot-${f(a)??``}`,`svelte-1dxdgqu`)),r(e,t)};t(h,e=>{f(s)&&e(_)}),M(u),c(()=>{d=T(u,1,`sbw-cal-cell svelte-1dxdgqu`,null,d,{"sbw-cal-cell-off":!f(i).inMonth||f(i).isPast,"sbw-cal-cell-selected":f(K)===f(i).iso}),u.disabled=!f(s),g(m,f(i).dayNumber)}),l(`click`,u,()=>Cn(f(i))),r(n,u)}),M(E),M(u);var D=o(u,2),O=e(D),k=t=>{var n=Me(),i=e(n,!0);M(n),c(()=>g(i,f(I).pickDayHint)),r(t,n)},ne=t=>{var n=Me(),i=e(n,!0);M(n),c(()=>g(i,f(I).loadingServices)),r(t,n)},re=t=>{var n=Me(),i=e(n,!0);M(n),c(()=>g(i,f(I).noSlotsForDay)),r(t,n)},A=i=>{var a=tt();C(a,21,()=>[[`morning`,f(I).morningLabel],[`afternoon`,f(I).afternoonLabel],[`evening`,f(I).eveningLabel]],([e,t])=>e,(i,a)=>{var s=b(()=>te(f(a),2));let u=()=>f(s)[0],d=()=>f(s)[1],p=b(()=>f(pn)[u()]);var m=n(),h=v(m),_=t=>{var n=et(),i=e(n),a=e(i);M(i);var s=o(i,2);C(s,20,()=>f(p),e=>e,(t,n)=>{var i=$e();let a;var o=e(i,!0);M(i),c(()=>{a=T(i,1,`sbw-slot-btn svelte-1dxdgqu`,null,a,{"sbw-slot-btn-selected":f(G)===n}),g(o,n)}),l(`click`,i,()=>wn(n)),r(t,i)}),M(s),M(n),c(()=>g(a,`${d()??``} (${f(p).length??``})`)),r(t,n)};t(h,e=>{f(p).length&&e(_)}),r(i,m)}),M(a),r(i,a)};t(O,e=>{f(K)?f(nn)?e(ne,1):f(dn).length?e(A,-1):e(re,2):e(k)}),M(D),M(s);var ae=o(s,2);oe(ae,()=>!0),M(a),c(()=>{g(m,`${f(Lt)[f(U)]??``} ${f(H)??``}`),x.disabled=!f(un),j(x,`aria-label`,f(I).previousMonth),j(S,`aria-label`,f(I).nextMonth),j(E,`aria-busy`,f(nn))}),l(`click`,x,e=>{bn(e.currentTarget),xn()}),l(`click`,S,e=>{bn(e.currentTarget),Sn()}),r(i,a)},ar=n=>{var i=ot(),a=e(i),s=e(a),l=e(s),d=e(l),p=e(d,!0);M(d);var m=o(d,2);re(m),M(l);var h=o(l,2),_=e(h),v=e(_,!0);M(_);var b=o(_,2);re(b),M(h);var x=o(h,2),S=e(x),C=e(S,!0);M(S);var w=o(S,2);re(w),M(x),M(s);var T=o(s,2),E=e(T),te=e(E,!0);M(E);var O=o(E,2);ee(O),M(T);var k=o(T,2),ne=n=>{var i=at(),a=e(i),s=e(a),l=e(s,!0);M(s);var u=o(s,2),d=t=>{var n=rt(),i=e(n,!0);M(n),c(()=>g(i,f(Un))),r(t,n)};t(u,e=>{f(Un)&&e(d)}),M(a);var p=o(a,4),m=t=>{var n=Ne(),i=e(n,!0);M(n),c(()=>g(i,f(Hn))),r(t,n)};t(p,e=>{f(Hn)&&e(m)});var h=o(p,2),_=t=>{var n=it(),i=e(n,!0);M(n),c(()=>g(i,f(I).paymentHint)),r(t,n)};t(h,e=>{f(I).paymentHint&&e(_)}),M(i),c(()=>g(l,f(I).paymentLabel)),r(n,i)};t(k,e=>{f(Mn)&&e(ne)}),M(a);var A=o(a,2);oe(A,()=>!1),M(i),c(()=>{g(p,f(I).nameLabel),j(m,`placeholder`,f(I).namePlaceholder),g(v,_t()?`${f(I).emailLabel} (optional)`:f(I).emailLabel),b.required=!_t(),j(b,`title`,f(I).emailInvalidTitle),j(b,`placeholder`,f(I).emailPlaceholder),g(C,f(I).phoneLabel),j(w,`placeholder`,f(I).phonePlaceholder),g(te,f(I).notesLabel),j(O,`placeholder`,f(I).notesPlaceholder)}),u(`submit`,i,Xn),D(m,()=>f(J),e=>y(J,e)),D(b,()=>f(Y),e=>y(Y,e)),D(w,()=>f(X),e=>y(X,e)),D(O,()=>f(On),e=>y(On,e)),r(n,i)},or=t=>{var n=st(),i=o(e(n),2),a=e(i,!0);M(i);var s=o(i,2);oe(s,()=>!1,()=>!0),M(n),c(()=>g(a,f(I).successMessage)),r(t,n)};return t(nr,e=>{f(L)===`service`?e(rr):f(L)===`datetime`&&f(R)?e(ir,1):f(L)===`details`&&f(R)?e(ar,2):f(L)===`success`&&e(or,3)}),M($n),r(d,$n),x(Qn)}O([`click`]),customElements.define(`spa-booking-widget`,oe(ut,{heading:{attribute:`heading`,type:`String`},logoUrl:{attribute:`logo-url`,type:`String`},tagline:{attribute:`tagline`,type:`String`},description:{attribute:`description`,type:`String`},staffLabel:{attribute:`staff-label`,type:`String`},hidePrice:{attribute:`hide-price`,type:`Boolean`},hideZeroPrice:{attribute:`hide-zero-price`,type:`Boolean`},skipDetailsStep:{attribute:`skip-details-step`,type:`Boolean`},emailOptional:{attribute:`email-optional`,type:`Boolean`},closedWeekdays:{attribute:`closed-weekdays`,type:`Array`},initialTreatmentTitle:{attribute:`initial-treatment-title`,type:`String`},initialDate:{attribute:`initial-date`,type:`String`},initialTime:{attribute:`initial-time`,type:`String`},initialName:{attribute:`initial-name`,type:`String`},initialEmail:{attribute:`initial-email`,type:`String`},initialPhone:{attribute:`initial-phone`,type:`String`},memberUntil:{attribute:`member-until`,type:`String`},locale:{attribute:`locale`,type:`String`},currency:{attribute:`currency`,type:`String`},strings:{type:`Object`},fetchTreatments:{type:`Object`},fetchTherapists:{type:`Object`},fetchAvailability:{type:`Object`},submitBooking:{type:`Object`},createPaymentIntent:{type:`Object`},stripePublishableKey:{attribute:`stripe-publishable-key`,type:`String`},stripeAppearance:{type:`Object`}},[`heading`,`description`],[],{mode:`open`}));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{B as e,C as t,D as n,E as r,G as i,H as a,K as o,L as s,M as c,O as l,P as u,Q as d,R as f,T as p,U as m,V as h,W as g,Y as _,Z as v,b as y,d as ee,f as b,h as x,j as S,k as C,n as w,q as T,r as te,s as E,t as D,tt as O}from"./chunks/client-DNa0V682.js";import{i as ne,o as re,r as ie,s as ae,t as oe}from"./chunks/calendar-B8eNjUm2.js";var se=C(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke-linecap="round" class="ss-spin svelte-xf8i9m"><circle cx="12" cy="12" r="9" stroke="rgba(255,255,255,0.15)" stroke-width="2.5"></circle><path d="M12 3a9 9 0 0 1 9 9" stroke="white" stroke-width="2.5"></path></svg>`),ce=C(`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="4,13 10,18 20,6"></polyline></svg>`),le=l(`<span class="svelte-xf8i9m"> </span>`),ue=l(`<button type="button"> </button>`),de=l(`<span class="ss-day ss-day-empty svelte-xf8i9m"></span>`),fe=l(`<div class="ss-cal-month"><div class="ss-cal-title svelte-xf8i9m"> </div> <div class="ss-cal-weekdays svelte-xf8i9m"></div> <div class="ss-cal-grid svelte-xf8i9m"></div></div>`),pe=l(`<div class="ss-cal svelte-xf8i9m" role="dialog" aria-label="Choose check-in and check-out dates"><button type="button" class="ss-cal-nav ss-cal-prev svelte-xf8i9m" aria-label="Previous month">‹</button> <button type="button" class="ss-cal-nav ss-cal-next svelte-xf8i9m" aria-label="Next month">›</button> <div class="ss-cal-months svelte-xf8i9m"></div></div>`),me=l(`<p class="ss-error svelte-xf8i9m">Unable to load availability. Please try again.</p>`),he=l(`<p class="ss-none svelte-xf8i9m">No availability for those dates. Try adjusting your stay.</p>`),ge=l(`<a class="ss-card svelte-xf8i9m"><div class="ss-card-img svelte-xf8i9m"><img loading="lazy" class="svelte-xf8i9m"/></div> <div class="ss-card-body svelte-xf8i9m"><div class="ss-card-info svelte-xf8i9m"><div class="ss-card-name svelte-xf8i9m"> </div> <div class="ss-card-desc svelte-xf8i9m"> </div></div> <div><div class="ss-card-rate svelte-xf8i9m"> </div> <div class="ss-card-rate-sub svelte-xf8i9m"> </div></div></div></a>`),_e=l(`<div class="ss-header svelte-xf8i9m"> </div> <div class="ss-grid svelte-xf8i9m"></div>`,1),ve=l(`<div class="ss-wrap svelte-xf8i9m"><div><button type="button" class="ss-field ss-field-first svelte-xf8i9m"><span class="ss-label svelte-xf8i9m">Check in</span> <span> </span></button> <button type="button" class="ss-field svelte-xf8i9m"><span class="ss-label svelte-xf8i9m">Check out</span> <span> </span></button></div> <div><!></div> <!> <div aria-live="polite"><!></div></div>`),ye={hash:`svelte-xf8i9m`,code:`:host {display:block;}.ss-wrap.svelte-xf8i9m {position:relative;width:100%;}
|
|
2
2
|
|
|
3
3
|
/* ── Date bar ── */.ss-bar.svelte-xf8i9m {display:flex;width:100%;align-items:stretch;overflow:hidden;border:1px solid rgba(255, 255, 255, 0.14);background:rgba(255, 255, 255, 0.07);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);transition:opacity 0.2s;}.ss-loading.svelte-xf8i9m {opacity:0.6;pointer-events:none;}.ss-field.svelte-xf8i9m {display:flex;flex:1;cursor:pointer;flex-direction:column;gap:0.25rem;border:none;background:transparent;padding:1.25rem 1.75rem;text-align:left;font-family:'Inter', sans-serif;transition:background-color 150ms;}.ss-field.svelte-xf8i9m:hover {background:rgba(255, 255, 255, 0.04);}.ss-field-first.svelte-xf8i9m {border-right:1px solid rgba(255, 255, 255, 0.08);}.ss-label.svelte-xf8i9m {font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:rgba(240, 238, 255, 0.35);}.ss-value.svelte-xf8i9m {font-size:15px;font-weight:500;color:rgba(240, 238, 255, 0.4);}.ss-value-set.svelte-xf8i9m {color:#f0eeff;}
|
|
4
4
|
|
|
@@ -28,4 +28,4 @@ import{A as e,B as t,D as n,E as r,G as i,H as a,I as o,J as s,K as c,L as l,N a
|
|
|
28
28
|
}
|
|
29
29
|
}.ss-card.svelte-xf8i9m {
|
|
30
30
|
animation: svelte-xf8i9m-ss-row-in 0.3s ease both;height:90px;border:1px solid rgba(255, 255, 255, 0.08);overflow:hidden;text-decoration:none;display:flex;align-items:stretch;transition:border-color 0.2s,
|
|
31
|
-
background 0.2s;background:rgba(255, 255, 255, 0.05);}.ss-card.svelte-xf8i9m:hover {border-color:rgba(0, 245, 212, 0.35);background:rgba(255, 255, 255, 0.1);}.ss-card-img.svelte-xf8i9m {width:120px;flex-shrink:0;overflow:hidden;}.ss-card-img.svelte-xf8i9m img:where(.svelte-xf8i9m) {width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform 0.4s ease;}.ss-card.svelte-xf8i9m:hover .ss-card-img:where(.svelte-xf8i9m) img:where(.svelte-xf8i9m) {transform:scale(1.05);}.ss-card-body.svelte-xf8i9m {flex:1;padding:0 20px;display:flex;align-items:center;gap:20px;}.ss-card-info.svelte-xf8i9m {flex:1;}.ss-card-name.svelte-xf8i9m {font-family:'Syne', sans-serif;font-weight:800;font-size:15px;color:#f0eeff;margin-bottom:3px;letter-spacing:-0.3px;}.ss-card-desc.svelte-xf8i9m {font-size:12px;color:rgba(240, 238, 255, 0.4);line-height:1.4;}.ss-card-rate.svelte-xf8i9m {font-size:18px;font-weight:700;color:#f0eeff;letter-spacing:-0.5px;text-align:right;}.ss-card-rate-sub.svelte-xf8i9m {font-size:11px;color:rgba(240, 238, 255, 0.4);margin-top:2px;text-align:right;}.ss-error.svelte-xf8i9m {font-size:13px;color:rgba(247, 37, 133, 0.8);text-align:center;padding:16px;margin:0;}.ss-none.svelte-xf8i9m {font-size:13px;color:rgba(240, 238, 255, 0.4);text-align:center;padding:16px;margin:0;}`};function
|
|
31
|
+
background 0.2s;background:rgba(255, 255, 255, 0.05);}.ss-card.svelte-xf8i9m:hover {border-color:rgba(0, 245, 212, 0.35);background:rgba(255, 255, 255, 0.1);}.ss-card-img.svelte-xf8i9m {width:120px;flex-shrink:0;overflow:hidden;}.ss-card-img.svelte-xf8i9m img:where(.svelte-xf8i9m) {width:100%;height:100%;object-fit:cover;object-position:center;display:block;transition:transform 0.4s ease;}.ss-card.svelte-xf8i9m:hover .ss-card-img:where(.svelte-xf8i9m) img:where(.svelte-xf8i9m) {transform:scale(1.05);}.ss-card-body.svelte-xf8i9m {flex:1;padding:0 20px;display:flex;align-items:center;gap:20px;}.ss-card-info.svelte-xf8i9m {flex:1;}.ss-card-name.svelte-xf8i9m {font-family:'Syne', sans-serif;font-weight:800;font-size:15px;color:#f0eeff;margin-bottom:3px;letter-spacing:-0.3px;}.ss-card-desc.svelte-xf8i9m {font-size:12px;color:rgba(240, 238, 255, 0.4);line-height:1.4;}.ss-card-rate.svelte-xf8i9m {font-size:18px;font-weight:700;color:#f0eeff;letter-spacing:-0.5px;text-align:right;}.ss-card-rate-sub.svelte-xf8i9m {font-size:11px;color:rgba(240, 238, 255, 0.4);margin-top:2px;text-align:right;}.ss-error.svelte-xf8i9m {font-size:13px;color:rgba(247, 37, 133, 0.8);text-align:center;padding:16px;margin:0;}.ss-none.svelte-xf8i9m {font-size:13px;color:rgba(240, 238, 255, 0.4);text-align:center;padding:16px;margin:0;}`};function k(l,S){d(S,!0),x(l,ye);let C=w(S,`rooms`,23,()=>[]),D=w(S,`checkIn`,7,``),k=w(S,`checkOut`,7,``),A=w(S,`guests`,7,2),j=w(S,`currency`,7,`USD`),M=w(S,`appendDatesToHref`,7,!0),N=w(S,`searchStays`,7,void 0);function be(e,t){S.$$host?.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}let xe=e=>e?new Date(`${e}T00:00:00`).toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`}):``,P=i(!1),F=re(new Date),I=i(m(F.getFullYear())),L=i(m(F.getMonth())),Se=ie(),Ce=ne(),we=i(!0),Te=_(()=>({y:u(I),m:u(L),cells:oe(u(I),u(L),F,[])})),Ee=_(()=>{let e=u(L)===11?0:u(L)+1,t=u(L)===11?u(I)+1:u(I);return{y:t,m:e,cells:oe(t,e,F,[])}}),R=i(void 0);function De(){let e=D()?new Date(`${D()}T00:00:00`):F;g(I,e.getFullYear(),!0),g(L,e.getMonth(),!0),g(we,typeof window<`u`?window.innerWidth>=768:!0,!0),g(P,!0)}function Oe(){u(L)===0?(g(L,11),o(I,-1)):o(L,-1)}function ke(){u(L)===11?(g(L,0),o(I)):o(L)}function Ae(e){!D()||D()&&k()?(D(e),k(``)):e>=D()?(k(e),g(P,!1),je()):(D(e),k(``)),be(`dates-change`,{checkIn:D(),checkOut:k()})}let z=i(!1),B=i(!1),V=i(!1),H=i(m([])),U=i(`idle`),W=i(0),G=null;async function je(){if(!(!D()||!k()||!N())){g(W,Math.round((new Date(k()).getTime()-new Date(D()).getTime())/864e5),!0),g(z,!0),g(B,!1),G&&clearTimeout(G),g(V,!1),g(H,[],!0);try{let e=await N()(D(),k(),A()),t=new Map(C().map(e=>[e.roomTypeId,e])),n=(Array.isArray(e)?e:[]).map(e=>({res:e,room:t.get(e.room_type_id)})).filter(e=>!!e.room);n.length===0?g(U,`none`):(g(H,n.map(({res:e,room:t})=>{let n=t.href??`#`;return M()&&t.href&&(n=`${t.href}${t.href.includes(`?`)?`&`:`?`}check_in=${D()}&check_out=${k()}`),{name:t.name,description:t.description??e.description??``,image:t.image,href:n,total:(parseFloat(String(e.from_rate??0))*u(W)).toLocaleString(`en-US`,{minimumFractionDigits:0})}}),!0),g(U,`ok`),g(B,!0),G=setTimeout(()=>g(B,!1),1800)),g(V,!0),be(`search-results`,{checkIn:D(),checkOut:k(),guests:A(),count:u(H).length})}catch{g(U,`error`),g(V,!0)}finally{g(z,!1)}}}f(()=>{if(typeof document>`u`||!u(P)&&!u(V))return;let e=e=>{u(R)&&!e.composedPath().includes(u(R))&&(g(P,!1),g(V,!1))},t=e=>{e.key===`Escape`&&(g(P,!1),g(V,!1))};return document.addEventListener(`click`,e,!0),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`click`,e,!0),document.removeEventListener(`keydown`,t)}});let Me=e=>D()&&k()&&e>D()&&e<k();var Ne={get rooms(){return C()},set rooms(e=[]){C(e),T()},get checkIn(){return D()},set checkIn(e=``){D(e),T()},get checkOut(){return k()},set checkOut(e=``){k(e),T()},get guests(){return A()},set guests(e=2){A(e),T()},get currency(){return j()},set currency(e=`USD`){j(e),T()},get appendDatesToHref(){return M()},set appendDatesToHref(e=!0){M(e),T()},get searchStays(){return N()},set searchStays(e=void 0){N(e),T()}},K=ve(),q=e(K);let Pe;var J=e(q),Y=a(e(J),2);let Fe;var Ie=e(Y,!0);O(Y),O(J);var X=a(J,2),Z=a(e(X),2);let Le;var Re=e(Z,!0);O(Z),O(X),O(q);var Q=a(q,2);let ze;var Be=e(Q),Ve=e=>{var t=se();r(e,t)},He=e=>{var t=ce();r(e,t)};t(Be,e=>{u(z)?e(Ve):u(B)&&e(He,1)}),O(Q);var Ue=a(Q,2),We=i=>{var o=pe(),l=e(o),d=a(l,2),f=a(d,2);y(f,21,()=>u(we)?[u(Te),u(Ee)]:[u(Te)],e=>e.y*12+e.m,(i,o)=>{var l=fe(),d=e(l),f=e(d);O(d);var m=a(d,2);y(m,20,()=>Ce,e=>e,(t,n)=>{var i=le(),a=e(i,!0);O(i),s(()=>p(a,n)),r(t,i)}),O(m);var g=a(m,2);y(g,21,()=>u(o).cells,e=>e.iso,(i,a)=>{var o=n(),l=h(o),d=t=>{var n=ue();let i;var o=e(n,!0);O(n),s(e=>{i=b(n,1,`ss-day svelte-xf8i9m`,null,i,e),n.disabled=u(a).isPast,p(o,u(a).dayNumber)},[()=>({"ss-day-past":u(a).isPast,"ss-day-today":u(a).iso===ae(F),"ss-day-edge":u(a).iso===D()||u(a).iso===k(),"ss-day-inrange":Me(u(a).iso)})]),c(`click`,n,()=>Ae(u(a).iso)),r(t,n)},f=e=>{var t=de();r(e,t)};t(l,e=>{u(a).inMonth?e(d):e(f,-1)}),r(i,o)}),O(g),O(l),s(()=>p(f,`${Se[u(o).m]??``} ${u(o).y??``}`)),r(i,l)}),O(f),O(o),c(`click`,l,Oe),c(`click`,d,ke),r(i,o)};t(Ue,e=>{u(P)&&e(We)});var $=a(Ue,2);let Ge;var Ke=e($),qe=e=>{var t=me();r(e,t)},Je=e=>{var t=he();r(e,t)},Ye=t=>{var n=_e(),i=h(n),o=e(i);O(i);var c=a(i,2);y(c,23,()=>u(H),e=>e.name,(t,n,i)=>{var o=ge(),c=e(o),l=e(c);O(c);var d=a(c,2),f=e(d),m=e(f),h=e(m,!0);O(m);var g=a(m,2),_=e(g,!0);O(g),O(f);var v=a(f,2),y=e(v),b=e(y);O(y);var x=a(y,2),S=e(x);O(x),O(v),O(d),O(o),s(()=>{E(o,`href`,u(n).href),ee(o,`animation-delay:${u(i)*80}ms`),E(l,`src`,u(n).image),E(l,`alt`,u(n).name),p(h,u(n).name),p(_,u(n).description),p(b,`$${u(n).total??``}`),p(S,`total · ${u(W)??``} night${u(W)===1?``:`s`} · ${j()??``}`)}),r(t,o)}),O(c),s(()=>p(o,`Available for ${u(W)??``} night${u(W)===1?``:`s`}`)),r(t,n)};return t(Ke,e=>{u(U)===`error`?e(qe):u(U)===`none`?e(Je,1):u(U)===`ok`&&e(Ye,2)}),O($),O(K),te(K,e=>g(R,e),()=>u(R)),s((e,t)=>{Pe=b(q,1,`ss-bar svelte-xf8i9m`,null,Pe,{"ss-loading":u(z)}),Fe=b(Y,1,`ss-value svelte-xf8i9m`,null,Fe,{"ss-value-set":!!D()}),p(Ie,e),Le=b(Z,1,`ss-value svelte-xf8i9m`,null,Le,{"ss-value-set":!!k()}),p(Re,t),ze=b(Q,1,`ss-status svelte-xf8i9m`,null,ze,{"ss-status-on":u(z)||u(B)}),Ge=b($,1,`ss-results svelte-xf8i9m`,null,Ge,{"ss-open":u(V)})},[()=>D()?xe(D()):`Add date`,()=>k()?xe(k()):`Add date`]),c(`click`,J,De),c(`click`,X,De),r(l,K),v(Ne)}S([`click`]),customElements.define(`stay-search`,D(k,{rooms:{attribute:`rooms`,type:`Object`},checkIn:{attribute:`check-in`,type:`String`},checkOut:{attribute:`check-out`,type:`String`},guests:{attribute:`guests`,type:`Number`},currency:{attribute:`currency`,type:`String`},appendDatesToHref:{attribute:`append-dates-to-href`,type:`Boolean`},searchStays:{}},[],[],{mode:`open`}));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as e,B as t,
|
|
1
|
+
import{A as e,B as t,C as n,D as r,E as i,G as a,H as o,L as s,M as c,N as l,O as u,P as d,Q as f,R as p,T as m,V as h,W as g,Y as _,Z as v,b as y,f as b,h as x,j as S,n as C,p as ee,q as w,r as T,rt as te,s as E,t as D,tt as O,x as k}from"./chunks/client-DNa0V682.js";import{t as A}from"./chunks/gsap-DWxn8li7.js";var j=u(`<span></span>`),M=u(`<p class="status svelte-1s2suwt"> </p>`),ne=u(`<span class="score-number svelte-1s2suwt"> </span> <span class="score-stars svelte-1s2suwt" role="img"><!></span>`,1),re=u(`<a target="_blank" rel="noopener noreferrer" class="svelte-1s2suwt"> </a>`),ie=u(`<a target="_blank" rel="noopener noreferrer"> </a>`),ae=u(`<img class="card-photo svelte-1s2suwt" alt="" loading="lazy"/>`),oe=u(`<div class="card-photos svelte-1s2suwt"></div>`),se=u(`<img class="card-avatar svelte-1s2suwt" alt="" loading="lazy"/>`),ce=u(`<span class="card-time svelte-1s2suwt"> </span>`),le=u(`<li class="card svelte-1s2suwt"><div class="card-stars svelte-1s2suwt" role="img"><!></div> <blockquote> </blockquote> <!> <footer class="card-foot svelte-1s2suwt"><span class="card-author svelte-1s2suwt"><!> </span> <!></footer></li>`),ue=u(`<ul></ul>`),de=u(`<a class="see-all svelte-1s2suwt" target="_blank" rel="noopener noreferrer"> </a>`),fe=u(`<span class="svelte-1s2suwt"></span>`),pe=u(`<div class="slider-nav svelte-1s2suwt"><button class="nav-btn svelte-1s2suwt" type="button" aria-label="Previous reviews"><span class="nav-btn-glyph svelte-1s2suwt">‹</span></button> <button class="nav-btn svelte-1s2suwt" type="button" aria-label="Next reviews"><span class="nav-btn-glyph svelte-1s2suwt">›</span></button></div>`),me=u(`<div class="foot svelte-1s2suwt"><!> <!></div>`),he=u(`<div class="header svelte-1s2suwt"><div class="score svelte-1s2suwt"><!> <span class="score-count svelte-1s2suwt"><svg class="ta-mark svelte-1s2suwt" viewBox="0 0 132 86" aria-hidden="true"><path fill="#000" d="M44.508 49.657c0 6.436-5.218 11.654-11.653 11.654s-11.653-5.218-11.653-11.654c0-6.435 5.218-11.654 11.653-11.654s11.653 5.218 11.653 11.654m54.028-11.654c-6.435 0-11.653 5.218-11.653 11.654S92.1 61.311 98.536 61.311s11.653-5.218 11.653-11.654c-.002-6.432-5.215-11.647-11.647-11.65zm32.855 11.654c0 18.136-14.715 32.84-32.855 32.84a32.7 32.7 0 0 1-22.31-8.74L65.71 85.196 55.19 73.744a32.7 32.7 0 0 1-22.317 8.754C14.746 82.497.036 67.792.036 49.656a32.75 32.75 0 0 1 10.71-24.27L0 13.693h23.876c25.263-17.195 58.467-17.195 83.73 0h23.814l-10.745 11.692a32.75 32.75 0 0 1 10.716 24.271m-76.305 0c0-12.274-9.95-22.225-22.223-22.225S10.64 37.383 10.64 49.657s9.95 22.225 22.223 22.225 22.222-9.948 22.223-22.222zm35.284-33.18a64.13 64.13 0 0 0-49.326 0c14.03 5.37 24.667 17.915 24.667 32.54 0-14.624 10.635-27.17 24.66-32.538zm30.395 33.18c0-12.274-9.95-22.225-22.223-22.225s-22.223 9.95-22.223 22.224S86.268 71.88 98.54 71.88s22.223-9.95 22.223-22.225" class="svelte-1s2suwt"></path></svg> <!></span></div> <!></div> <!> <!>`,1),N={hash:`svelte-1s2suwt`,code:`:host {display:block;font-family:var(--ta-font-family, inherit);color:var(--ta-color, inherit);}:host,
|
|
2
2
|
:host .svelte-1s2suwt {box-sizing:border-box;}.status.svelte-1s2suwt {margin:0;font-size:var(--ta-status-font-size, 14px);color:var(--ta-muted, rgba(5, 4, 15, 0.55));}.header.svelte-1s2suwt {display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:var(--ta-header-gap, 28px);}.score.svelte-1s2suwt {display:flex;align-items:baseline;gap:12px;}.score-number.svelte-1s2suwt {font-family:var(--ta-heading-font-family, var(--ta-font-family, inherit));font-size:var(--ta-score-font-size, 44px);font-weight:var(--ta-score-font-weight, 800);line-height:1;color:var(--ta-accent, #050508);}.score-stars.svelte-1s2suwt {display:inline-flex;align-items:center;gap:4px;color:var(--ta-star-color, var(--ta-accent, #f5b301));}.score-stars.svelte-1s2suwt .ta-dot:where(.svelte-1s2suwt) {width:var(--ta-star-size, 18px);height:var(--ta-star-size, 18px);}.score-count.svelte-1s2suwt,
|
|
3
3
|
.score-count.svelte-1s2suwt a:where(.svelte-1s2suwt) {font-size:14px;color:var(--ta-muted, rgba(5, 4, 15, 0.55));}.score-count.svelte-1s2suwt {display:inline-flex;align-items:center;gap:7px;}.score-count.svelte-1s2suwt a:where(.svelte-1s2suwt) {text-decoration:underline;text-underline-offset:2px;}
|
|
4
4
|
|
|
@@ -35,4 +35,4 @@ import{A as e,B as t,D as n,E as r,I as i,J as a,K as o,L as s,M as c,N as l,S a
|
|
|
35
35
|
/* Grid of 4 fixed columns rather than flex, so each photo is always
|
|
36
36
|
* "however wide a quarter of the card is" -- 1 photo doesn't blow up to
|
|
37
37
|
* fill the row, and a 5th+ photo (capped at 4 above) never has a column
|
|
38
|
-
* to land in. */.card-photos.svelte-1s2suwt {display:grid;grid-template-columns:repeat(4, 1fr);gap:8px;}.card-photo.svelte-1s2suwt {width:100%;aspect-ratio:1;border-radius:var(--ta-review-photo-radius, 8px);object-fit:cover;}.card-foot.svelte-1s2suwt {margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;}.card-author.svelte-1s2suwt {display:inline-flex;align-items:center;gap:8px;font-weight:600;}.card-avatar.svelte-1s2suwt {width:24px;height:24px;border-radius:50%;object-fit:cover;}.card-time.svelte-1s2suwt {color:var(--ta-muted, rgba(5, 4, 15, 0.55));}.see-all.svelte-1s2suwt {display:inline-block;font-size:13px;color:var(--ta-accent, inherit);text-decoration:underline;text-underline-offset:3px;}`};function P(
|
|
38
|
+
* to land in. */.card-photos.svelte-1s2suwt {display:grid;grid-template-columns:repeat(4, 1fr);gap:8px;}.card-photo.svelte-1s2suwt {width:100%;aspect-ratio:1;border-radius:var(--ta-review-photo-radius, 8px);object-fit:cover;}.card-foot.svelte-1s2suwt {margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;}.card-author.svelte-1s2suwt {display:inline-flex;align-items:center;gap:8px;font-weight:600;}.card-avatar.svelte-1s2suwt {width:24px;height:24px;border-radius:50%;object-fit:cover;}.card-time.svelte-1s2suwt {color:var(--ta-muted, rgba(5, 4, 15, 0.55));}.see-all.svelte-1s2suwt {display:inline-block;font-size:13px;color:var(--ta-accent, inherit);text-decoration:underline;text-underline-offset:3px;}`};function P(u,S){f(S,!0),x(u,N);let D=(e,t=te)=>{let n=_(()=>ye(t()));var a=r(),o=h(a);y(o,16,()=>({length:5}),k,(e,t,r)=>{var a=j();let o;s(()=>o=b(a,1,`ta-dot svelte-1s2suwt`,null,o,{"ta-dot-filled":r<d(n)})),i(e,a)}),i(e,a)},P=C(S,`variant`,7,`grid`),F=C(S,`autoAdvance`,7,0),I=C(S,`maxReviews`,7,5),L=C(S,`ctaShimmer`,7,!1),R=C(S,`strings`,23,()=>({})),z=C(S,`fetchReviews`,7,void 0),B=a(null),V=a(!0),H=a(!1),U=a(!1);function W(){if(d(B)){if(d(U)){g(V,!1),g(H,!1);let e=d(B).scrollWidth/2;d(B).scrollLeft>=e&&(d(B).scrollLeft-=e);return}g(V,d(B).scrollLeft<=4),g(H,d(B).scrollLeft+d(B).clientWidth>=d(B).scrollWidth-4)}}function G(e){if(!d(B))return;let t=(d(B).querySelector(`.card`)?.offsetWidth??300)+16;if(d(U)){let n=d(B).scrollWidth/2;e===1&&d(B).scrollLeft>=n-t/2&&(d(B).scrollLeft-=n),e===-1&&d(B).scrollLeft<=t/2&&(d(B).scrollLeft+=n)}d(B).scrollBy({left:e*t,behavior:`smooth`})}let K=a(void 0),q=a(void 0);function J(e){e&&A.fromTo(e,{scale:.82},{scale:1,duration:.4,ease:`elastic.out(1, 0.5)`})}function ge(){J(d(K)),G(-1)}function _e(){J(d(q)),G(1)}p(()=>{d($),d(B),requestAnimationFrame(()=>{d(B)&&!d(U)&&d(B).scrollWidth>d(B).clientWidth+8&&g(U,!0),W()})});let Y=a(!1);p(()=>{if(P()!==`slider`||!F()||F()<=0||d(Q)!==`ready`||matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;let e=setInterval(()=>{d(Y)||document.visibilityState===`hidden`||!d(B)||(!d(U)&&d(H)?d(B).scrollTo({left:0,behavior:`smooth`}):G(1))},F()*1e3);return()=>clearInterval(e)});let X=_(()=>({reviewsLabel:`Tripadvisor reviews`,ctaLabel:`Review us on Tripadvisor`,seeAllLabel:`See all reviews`,loadingLabel:`Loading reviews…`,errorLabel:`Reviews are unavailable right now.`,...R()})),Z=a(null),Q=a(`idle`);function ve(e,t){S.$$host?.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}p(()=>{let e=z();!e||d(Q)===`ready`||d(Q)===`loading`||(g(Q,`loading`),e().then(e=>{g(Z,e,!0),g(Q,`ready`),ve(`loaded`,{rating:e.rating,count:e.count})}).catch(()=>{g(Q,`error`)}))});let $=_(()=>(d(Z)?.reviews??[]).filter(e=>e.text?.trim()).slice(0,I()));function ye(e){return Math.max(0,Math.min(5,Math.round(e)))}let be=_(()=>P()===`slider`&&d(U)?[...d($),...d($)]:d($));var xe={get variant(){return P()},set variant(e=`grid`){P(e),w()},get autoAdvance(){return F()},set autoAdvance(e=0){F(e),w()},get maxReviews(){return I()},set maxReviews(e=5){I(e),w()},get ctaShimmer(){return L()},set ctaShimmer(e=!1){L(e),w()},get strings(){return R()},set strings(e={}){R(e),w()},get fetchReviews(){return z()},set fetchReviews(e=void 0){z(e),w()}},Se=r(),Ce=h(Se),we=e=>{var n=M(),r=t(n,!0);O(n),s(()=>m(r,d(X).loadingLabel)),i(e,n)},Te=e=>{var n=M(),r=t(n,!0);O(n),s(()=>m(r,d(X).errorLabel)),i(e,n)},Ee=r=>{var a=he(),u=h(a),f=t(u),p=t(f),_=e=>{var n=ne(),r=h(n),a=t(r,!0);O(r);var c=o(r,2),l=t(c);D(l,()=>d(Z).rating),O(c),s((e,t)=>{m(a,e),E(c,`aria-label`,t)},[()=>d(Z).rating.toFixed(1),()=>`${d(Z).rating.toFixed(1)} out of 5`]),i(e,n)};n(p,e=>{d(Z).rating!=null&&e(_)});var v=o(p,2),x=o(t(v),2),S=e=>{var n=re(),r=t(n);O(n),s(()=>{E(n,`href`,d(Z).place_url),m(r,`${d(Z).count??``} ${d(X).reviewsLabel??``}`)}),i(e,n)},C=t=>{var n=e();s(()=>m(n,`${d(Z).count??``} ${d(X).reviewsLabel??``}`)),i(t,n)};n(x,e=>{d(Z).place_url?e(S):e(C,-1)}),O(v),O(f);var w=o(f,2),te=e=>{var n=ie();let r;var a=t(n,!0);O(n),s(()=>{r=b(n,1,`cta svelte-1s2suwt`,null,r,{"cta--shimmer":L()}),E(n,`href`,d(Z).write_review_url),m(a,d(X).ctaLabel)}),i(e,n)};n(w,e=>{d(Z).write_review_url&&e(te)}),O(u);var A=o(u,2),j=e=>{var r=ue();y(r,21,()=>d(be),k,(e,r)=>{var a=le(),c=t(a),l=t(c);D(l,()=>d(r).rating),O(c);var u=o(c,2);let f;var p=t(u,!0);O(u);var h=o(u,2),g=e=>{var t=oe();y(t,20,()=>d(r).photos.slice(0,4),e=>e,(e,t)=>{var n=ae();s(()=>E(n,`src`,t)),i(e,n)}),O(t),i(e,t)};n(h,e=>{d(r).photos?.length&&e(g)});var _=o(h,2),v=t(_),x=t(v),S=e=>{var t=se();s(()=>E(t,`src`,d(r).author_photo)),i(e,t)};n(x,e=>{d(r).author_photo&&e(S)});var C=o(x);O(v);var ee=o(v,2),w=e=>{var n=ce(),a=t(n,!0);O(n),s(()=>m(a,d(r).relative_time)),i(e,n)};n(ee,e=>{d(r).relative_time&&e(w)}),O(_),O(a),s(()=>{E(c,`aria-label`,`${d(r).rating} out of 5`),f=b(u,1,`card-text svelte-1s2suwt`,null,f,{"card-text--with-photos":!!d(r).photos?.length}),m(p,d(r).text),m(C,` ${d(r).author??``}`)}),i(e,a)}),O(r),T(r,e=>g(B,e),()=>d(B)),s(()=>b(r,1,ee(P()===`slider`?`cards track`:`cards`),`svelte-1s2suwt`)),l(`scroll`,r,W),l(`mouseenter`,r,()=>g(Y,!0)),l(`mouseleave`,r,()=>g(Y,!1)),c(`focusin`,r,()=>g(Y,!0)),c(`focusout`,r,()=>g(Y,!1)),i(e,r)};n(A,e=>{d($).length&&e(j)});var M=o(A,2),N=e=>{var r=me(),a=t(r),l=e=>{var n=de(),r=t(n,!0);O(n),s(()=>{E(n,`href`,d(Z).place_url),m(r,d(X).seeAllLabel)}),i(e,n)},u=e=>{var t=fe();i(e,t)};n(a,e=>{d(Z).place_url?e(l):e(u,-1)});var f=o(a,2),p=e=>{var n=pe(),r=t(n);T(r,e=>g(K,e),()=>d(K));var a=o(r,2);T(a,e=>g(q,e),()=>d(q)),O(n),s(()=>{r.disabled=d(V),a.disabled=d(H)}),c(`click`,r,ge),c(`click`,a,_e),i(e,n)};n(f,e=>{d($).length&&P()===`slider`&&e(p)}),O(r),i(e,r)};n(M,e=>{(d(Z).place_url||d($).length&&P()===`slider`)&&e(N)}),i(r,a)};return n(Ce,e=>{d(Q)===`loading`||d(Q)===`idle`?e(we):d(Q)===`error`?e(Te,1):d(Z)&&e(Ee,2)}),i(u,Se),v(xe)}S([`focusin`,`focusout`,`click`]),customElements.define(`tripadvisor-reviews`,D(P,{variant:{attribute:`variant`,type:`String`},autoAdvance:{attribute:`auto-advance`,type:`Number`},maxReviews:{attribute:`max-reviews`,type:`Number`},ctaShimmer:{attribute:`cta-shimmer`,type:`Boolean`},strings:{type:`Object`},fetchReviews:{type:`Object`}},[],[],{mode:`open`}));
|