@forgebuild/hotal-ui 0.23.203 → 0.23.205

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.
@@ -1,4 +1,4 @@
1
- import{$ as e,A as t,B as n,D as r,H as i,I as a,J as o,K as s,L as c,M as l,N as u,P as d,S as f,T as p,U as m,V as h,W as g,X as _,Y as ee,Z as v,et as y,f as b,h as x,i as S,j as C,n as w,o as te,s as ne,t as T,u as re,w as E,y as D,z as O}from"./chunks/client-BDk8LqGN.js";import{i as ie,o as ae,r as oe,t as se}from"./chunks/calendar-B8eNjUm2.js";import{t as k}from"./chunks/preload-helper-Czpn1I53.js";var A=r(`<div class="bf-loading svelte-gavyia"><div class="bf-spinner svelte-gavyia"></div></div>`),ce=r(`<span class="svelte-gavyia"> </span>`),le=r(`<button type="button" class="bf-cal-cell svelte-gavyia"> </button>`),j=r(`<div class="bf-empty svelte-gavyia"><p class="svelte-gavyia"> </p> <div class="bf-cal svelte-gavyia"><div class="bf-cal-header svelte-gavyia"><p class="bf-cal-month svelte-gavyia"> </p> <div class="bf-cal-nav svelte-gavyia"><button type="button" class="svelte-gavyia">‹</button> <button type="button" class="svelte-gavyia">›</button></div></div> <div class="bf-cal-weekdays svelte-gavyia"></div> <div class="bf-cal-grid svelte-gavyia"></div></div></div>`),ue=r(`<button type="button"> </button>`),de=r(`<option class="svelte-gavyia"> </option>`),fe=r(`<label class="svelte-gavyia"><span class="svelte-gavyia"> </span> <div class="bf-select-wrap svelte-gavyia"><select class="svelte-gavyia"><option class="svelte-gavyia"> </option><!></select> <svg class="bf-select-icon svelte-gavyia" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><path d="m6 9 6 6 6-6" stroke-linecap="round" stroke-linejoin="round" class="svelte-gavyia"></path></svg></div></label>`),pe=r(`<p class="bf-error svelte-gavyia"> </p>`),me=r(`<div class="bf-payment svelte-gavyia"><div class="bf-payment-header svelte-gavyia"><span class="svelte-gavyia"> </span> <span class="svelte-gavyia"> </span></div> <div class="bf-payment-slot-anchor svelte-gavyia"></div> <p class="bf-payment-hint svelte-gavyia"> </p> <!></div>`),he=r(`<span class="bf-spinner svelte-gavyia"></span>`),ge=r(`<form class="bf-form svelte-gavyia"><label class="svelte-gavyia"><span class="svelte-gavyia"> </span> <div class="bf-input-icon-wrap svelte-gavyia"><svg class="bf-input-icon svelte-gavyia" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><circle cx="12" cy="8" r="3.5" class="svelte-gavyia"></circle><path stroke-linecap="round" d="M5 20c1.2-3.4 4-5 7-5s5.8 1.6 7 5" class="svelte-gavyia"></path></svg> <input type="text" name="name" autocomplete="name" required="" class="svelte-gavyia"/></div></label> <label class="svelte-gavyia"><span class="svelte-gavyia"> </span> <div class="bf-input-icon-wrap svelte-gavyia"><svg class="bf-input-icon svelte-gavyia" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><rect x="2" y="4" width="20" height="16" rx="2" class="svelte-gavyia"></rect><path stroke-linecap="round" stroke-linejoin="round" d="m4 6 8 7 8-7" class="svelte-gavyia"></path></svg> <input type="email" name="email" autocomplete="email" class="svelte-gavyia"/></div></label> <label class="svelte-gavyia"><span class="svelte-gavyia"> </span> <div class="bf-input-icon-wrap svelte-gavyia"><svg class="bf-input-icon svelte-gavyia" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92Z" class="svelte-gavyia"></path></svg> <input type="tel" name="phone" autocomplete="tel" class="svelte-gavyia"/></div></label> <!> <!> <label class="svelte-gavyia"><span class="svelte-gavyia"> </span> <textarea name="notes" rows="3" class="svelte-gavyia"></textarea></label> <label class="bf-checkbox-row svelte-gavyia"><input type="checkbox" name="cancellation_policy" class="bf-checkbox svelte-gavyia" required=""/> <span class="svelte-gavyia"> </span></label> <button type="submit" class="bf-submit svelte-gavyia"><!> </button> <!></form>`),_e=r(`<div class="bf-slots svelte-gavyia"><p class="bf-section-label svelte-gavyia"><svg class="bf-section-icon svelte-gavyia" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><circle cx="12" cy="12" r="9" class="svelte-gavyia"></circle><path stroke-linecap="round" stroke-linejoin="round" d="M12 7v5l3.5 2" class="svelte-gavyia"></path></svg> </p> <div class="bf-slot-list svelte-gavyia"></div></div> <!>`,1),M=r(`<div class="bf-confirmed svelte-gavyia"><div class="bf-check-circle svelte-gavyia">✓</div> <p class="bf-confirmed-title svelte-gavyia"> </p> <div class="bf-confirmed-card svelte-gavyia"><div class="bf-confirmed-row svelte-gavyia"><span class="svelte-gavyia"> </span><span class="svelte-gavyia"> </span></div> <div class="bf-confirmed-row svelte-gavyia"><span class="svelte-gavyia"> </span><span class="svelte-gavyia"> </span></div> <div class="bf-confirmed-row svelte-gavyia"><span class="svelte-gavyia"> </span><span class="svelte-gavyia"> </span></div></div></div>`),ve=r(`<div class="bf-root svelte-gavyia"><!></div>`),ye={hash:`svelte-gavyia`,code:`.bf-root.svelte-gavyia {font-family:inherit;color:var(--bf-text-color, #1a1a1a);}.bf-loading.svelte-gavyia {display:flex;flex-direction:column;align-items:center;gap:0.75rem;padding:2rem 0;}.bf-spinner.svelte-gavyia {width:24px;height:24px;border-radius:9999px;border:2px solid var(--bf-spinner-track, rgba(0, 0, 0, 0.15));border-top-color:var(--bf-spinner-active, #1a1a1a);
1
+ import{$ as e,A as t,B as n,D as r,H as i,I as a,J as o,K as s,L as c,M as l,N as u,P as d,S as f,T as p,U as m,V as h,W as g,X as _,Y as ee,Z as v,et as y,f as b,h as x,i as S,j as C,n as w,o as te,s as ne,t as T,u as re,w as E,y as D,z as O}from"./chunks/client-BDk8LqGN.js";import{i as ie,o as ae,r as oe,t as se}from"./chunks/calendar-B8eNjUm2.js";import{t as k}from"./chunks/stripe-BjXf5ZQJ.js";import{t as A}from"./chunks/preload-helper-Czpn1I53.js";var ce=r(`<div class="bf-loading svelte-gavyia"><div class="bf-spinner svelte-gavyia"></div></div>`),le=r(`<span class="svelte-gavyia"> </span>`),j=r(`<button type="button" class="bf-cal-cell svelte-gavyia"> </button>`),ue=r(`<div class="bf-empty svelte-gavyia"><p class="svelte-gavyia"> </p> <div class="bf-cal svelte-gavyia"><div class="bf-cal-header svelte-gavyia"><p class="bf-cal-month svelte-gavyia"> </p> <div class="bf-cal-nav svelte-gavyia"><button type="button" class="svelte-gavyia">‹</button> <button type="button" class="svelte-gavyia">›</button></div></div> <div class="bf-cal-weekdays svelte-gavyia"></div> <div class="bf-cal-grid svelte-gavyia"></div></div></div>`),de=r(`<button type="button"> </button>`),fe=r(`<option class="svelte-gavyia"> </option>`),pe=r(`<label class="svelte-gavyia"><span class="svelte-gavyia"> </span> <div class="bf-select-wrap svelte-gavyia"><select class="svelte-gavyia"><option class="svelte-gavyia"> </option><!></select> <svg class="bf-select-icon svelte-gavyia" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><path d="m6 9 6 6 6-6" stroke-linecap="round" stroke-linejoin="round" class="svelte-gavyia"></path></svg></div></label>`),me=r(`<p class="bf-error svelte-gavyia"> </p>`),he=r(`<div class="bf-payment svelte-gavyia"><div class="bf-payment-header svelte-gavyia"><span class="svelte-gavyia"> </span> <span class="svelte-gavyia"> </span></div> <div class="bf-payment-slot-anchor svelte-gavyia"></div> <p class="bf-payment-hint svelte-gavyia"> </p> <!></div>`),ge=r(`<span class="bf-spinner svelte-gavyia"></span>`),_e=r(`<form class="bf-form svelte-gavyia"><label class="svelte-gavyia"><span class="svelte-gavyia"> </span> <div class="bf-input-icon-wrap svelte-gavyia"><svg class="bf-input-icon svelte-gavyia" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><circle cx="12" cy="8" r="3.5" class="svelte-gavyia"></circle><path stroke-linecap="round" d="M5 20c1.2-3.4 4-5 7-5s5.8 1.6 7 5" class="svelte-gavyia"></path></svg> <input type="text" name="name" autocomplete="name" required="" class="svelte-gavyia"/></div></label> <label class="svelte-gavyia"><span class="svelte-gavyia"> </span> <div class="bf-input-icon-wrap svelte-gavyia"><svg class="bf-input-icon svelte-gavyia" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><rect x="2" y="4" width="20" height="16" rx="2" class="svelte-gavyia"></rect><path stroke-linecap="round" stroke-linejoin="round" d="m4 6 8 7 8-7" class="svelte-gavyia"></path></svg> <input type="email" name="email" autocomplete="email" class="svelte-gavyia"/></div></label> <label class="svelte-gavyia"><span class="svelte-gavyia"> </span> <div class="bf-input-icon-wrap svelte-gavyia"><svg class="bf-input-icon svelte-gavyia" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92Z" class="svelte-gavyia"></path></svg> <input type="tel" name="phone" autocomplete="tel" class="svelte-gavyia"/></div></label> <!> <!> <label class="svelte-gavyia"><span class="svelte-gavyia"> </span> <textarea name="notes" rows="3" class="svelte-gavyia"></textarea></label> <label class="bf-checkbox-row svelte-gavyia"><input type="checkbox" name="cancellation_policy" class="bf-checkbox svelte-gavyia" required=""/> <span class="svelte-gavyia"> </span></label> <button type="submit" class="bf-submit svelte-gavyia"><!> </button> <!></form>`),M=r(`<div class="bf-slots svelte-gavyia"><p class="bf-section-label svelte-gavyia"><svg class="bf-section-icon svelte-gavyia" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" aria-hidden="true"><circle cx="12" cy="12" r="9" class="svelte-gavyia"></circle><path stroke-linecap="round" stroke-linejoin="round" d="M12 7v5l3.5 2" class="svelte-gavyia"></path></svg> </p> <div class="bf-slot-list svelte-gavyia"></div></div> <!>`,1),ve=r(`<div class="bf-confirmed svelte-gavyia"><div class="bf-check-circle svelte-gavyia">✓</div> <p class="bf-confirmed-title svelte-gavyia"> </p> <div class="bf-confirmed-card svelte-gavyia"><div class="bf-confirmed-row svelte-gavyia"><span class="svelte-gavyia"> </span><span class="svelte-gavyia"> </span></div> <div class="bf-confirmed-row svelte-gavyia"><span class="svelte-gavyia"> </span><span class="svelte-gavyia"> </span></div> <div class="bf-confirmed-row svelte-gavyia"><span class="svelte-gavyia"> </span><span class="svelte-gavyia"> </span></div></div></div>`),ye=r(`<div class="bf-root svelte-gavyia"><!></div>`),be={hash:`svelte-gavyia`,code:`.bf-root.svelte-gavyia {font-family:inherit;color:var(--bf-text-color, #1a1a1a);}.bf-loading.svelte-gavyia {display:flex;flex-direction:column;align-items:center;gap:0.75rem;padding:2rem 0;}.bf-spinner.svelte-gavyia {width:24px;height:24px;border-radius:9999px;border:2px solid var(--bf-spinner-track, rgba(0, 0, 0, 0.15));border-top-color:var(--bf-spinner-active, #1a1a1a);
2
2
  animation: svelte-gavyia-bf-spin 0.7s linear infinite;}
3
3
  @keyframes svelte-gavyia-bf-spin {
4
4
  to {
@@ -23,4 +23,4 @@ import{$ as e,A as t,B as n,D as r,H as i,I as a,J as o,K as s,L as c,M as l,N a
23
23
  }
24
24
  @media (prefers-reduced-motion: reduce) {.bf-spinner.svelte-gavyia {
25
25
  animation: none;}
26
- }.bf-confirmed.svelte-gavyia {text-align:center;}.bf-check-circle.svelte-gavyia {display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin:0 auto 1rem;border-radius:9999px;background:var(--bf-accent-bg, #1a1a1a);color:var(--bf-accent-text, #fff);font-size:1.5rem;}.bf-confirmed-title.svelte-gavyia {font-size:1.1rem;}.bf-confirmed-card.svelte-gavyia {max-width:20rem;margin:1.5rem auto 0;border:1px solid var(--bf-border-color, rgba(0, 0, 0, 0.15));border-radius:2px;padding:1.25rem;text-align:left;}.bf-confirmed-row.svelte-gavyia {display:flex;justify-content:space-between;padding:0.6rem 0;border-bottom:1px solid var(--bf-border-color, rgba(0, 0, 0, 0.1));font-size:0.85rem;}.bf-confirmed-row.svelte-gavyia:last-child {border-bottom:none;}.bf-cal.svelte-gavyia {max-width:20rem;margin:1.5rem auto 0;border:1px solid var(--bf-border-color, rgba(0, 0, 0, 0.15));border-radius:2px;padding:1rem;}.bf-cal-header.svelte-gavyia {display:flex;align-items:center;justify-content:space-between;}.bf-cal-month.svelte-gavyia {margin:0;font-size:0.875rem;font-weight:600;}.bf-cal-nav.svelte-gavyia {display:flex;gap:0.25rem;}.bf-cal-nav.svelte-gavyia button:where(.svelte-gavyia) {display:flex;height:28px;width:28px;align-items:center;justify-content:center;border-radius:9999px;border:none;background:transparent;color:inherit;cursor:pointer;}.bf-cal-nav.svelte-gavyia button:where(.svelte-gavyia):disabled {cursor:default;opacity:0.3;}.bf-cal-weekdays.svelte-gavyia {display:grid;grid-template-columns:repeat(7, 1fr);margin-top:0.75rem;text-align:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;opacity:0.4;}.bf-cal-grid.svelte-gavyia {display:grid;grid-template-columns:repeat(7, 1fr);row-gap:0.25rem;justify-items:center;margin-top:0.25rem;}.bf-cal-cell.svelte-gavyia {display:flex;height:32px;width:32px;align-items:center;justify-content:center;border-radius:9999px;border:none;background:transparent;color:inherit;font-size:0.875rem;cursor:pointer;}.bf-cal-cell.svelte-gavyia:disabled {cursor:default;opacity:0.25;}`};function N(t,r){v(r,!0),x(t,ye);let T={pickDateEmpty:`Pick a date to see available times:`,errorEmpty:`Something went wrong checking availability. Pick a date to try again:`,noSlotsEmpty:`No tables available for that date. Pick another date below:`,previousMonth:`Previous month`,nextMonth:`Next month`,availableTimes:`Available Times`,nameLabel:`Name`,emailLabel:`Email`,phoneLabel:`Phone`,selectOption:`Select an option`,paymentMethod:`Payment Method`,holdSuffix:`hold`,paymentHint:`A hold is placed on your card and released when you arrive — you're only charged if you no-show.`,paymentUnavailable:`Payment form unavailable — refresh to try again.`,notesLabel:`Notes`,cancellationPolicy:`I understand a card hold will be placed for this reservation, released when I arrive, and only charged if I don't show up.`,confirmButton:`Confirm Reservation`,processingButton:`Processing…`,paymentNotReady:`Payment form is not ready yet — please wait a moment and try again.`,cardHoldFailed:`Your card hold could not be placed. Please try again.`,confirmedTitle:`You're booked! We look forward to seeing you.`,dateLabel:`Date`,timeLabel:`Time`,partySizeLabel:`Party Size`,guestSingular:`Guest`,guestPlural:`Guests`},N=w(r,`date`,7),P=w(r,`guests`,7,2),F=w(r,`preferredTime`,7),be=w(r,`closedWeekdays`,23,()=>[]),xe=w(r,`customFields`,23,()=>[]),I=w(r,`locale`,7),Se=w(r,`currency`,7,`USD`),Ce=w(r,`strings`,7),L=w(r,`fetchAvailableDates`,7),R=w(r,`searchSlots`,7),z=w(r,`createPaymentIntent`,7),B=w(r,`book`,7),V=w(r,`stripePublishableKey`,7),we=w(r,`stripeAppearance`,7),H=o(()=>({...T,...Ce()})),Te=o(()=>oe(I())),Ee=o(()=>ie(I()));function De(e,t){r.$$host?.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}let U=g(`loading`),Oe=g(i([])),W=g(null),ke=new Set([`bif`,`clp`,`djf`,`gnf`,`jpy`,`kmf`,`krw`,`mga`,`pyg`,`rwf`,`ugx`,`vnd`,`vuv`,`xaf`,`xof`,`xpf`]);function Ae(e,t){let n=ke.has(t.toLowerCase())?e:e/100;return new Intl.NumberFormat(I(),{style:`currency`,currency:t,maximumFractionDigits:0}).format(n)}function je(e){let[t,n]=e.split(`:`),r=Number(t),i=r>=12?`PM`:`AM`;return`${r%12==0?12:r%12}:${n} ${i}`}function Me(e){let[t,n]=e.split(`:`);return Number(t)*60+Number(n)}function Ne(e){if(!e)return null;let t=e.match(/^(\d+):(\d+)\s*(AM|PM)$/i);if(!t)return null;let n=Number(t[1])%12;return t[3].toUpperCase()===`PM`&&(n+=12),n*60+Number(t[2])}function Pe(e){m(W,e,!0),m(U,`form`),We()}async function Fe(){if(!(!N()||!R())){m(U,`loading`);try{let e=await R()(N(),P());if(!e.length){await ct(`no-slots`);return}m(Oe,e,!0),m(U,`slots`);let t=Ne(F()),n=e[0],r=1/0;for(let i of e){if(t===null)break;let e=Math.abs(Me(i.time)-t);e<r&&(r=e,n=i)}Pe(n)}catch{await ct(`error`)}}}c(()=>{if(!N()){ct(`no-date`);return}Fe()});let G=null,Ie=null,K=null,Le=null,Re=null,ze=null,Be=g(``),Ve=g(``),q=g(!1),He=o(()=>!!(V()&&z()));async function Ue(){return V()?(Ie||=k(async()=>{let{loadStripe:e}=await import(`./chunks/lib-Bd4dedte.js`);return{loadStripe:e}},[]).then(({loadStripe:e})=>e(V())),G=await Ie,G):null}async function We(){if(!(Le||!N()||!z())){m(q,!0);try{await d();let e=await Ue();if(!e)throw Error(`Stripe failed to load`);let{clientSecret:t,paymentIntentId:n,amountCents:i}=await z()(N(),P());Re=t,ze=n,m(Ve,`${Ae(i,Se())} ${u(H).holdSuffix}`),K=e.elements({clientSecret:t,appearance:we()});let a=K.create(`payment`,{layout:{type:`tabs`,defaultCollapsed:!1},fields:{billingDetails:{address:{country:`auto`,postalCode:`never`}}}}),o=r.$$host,s=(o?.shadowRoot)?.querySelector(`.bf-payment-slot-anchor`);if(!s)throw Error(`payment slot anchor not found`);if(!s.querySelector(`slot[name="payment-mount"]`)){let e=document.createElement(`slot`);e.setAttribute(`name`,`payment-mount`),s.appendChild(e)}let c=document.createElement(`div`);c.slot=`payment-mount`,c.className=`bf-card-element`,o.appendChild(c),a.mount(c),Le=a}catch{m(Be,u(H).paymentUnavailable,!0)}finally{m(q,!1)}}}let J=g(``),Y=g(``),Ge=g(``),Ke=g(i({})),qe=g(``),X=g(``),Je=g(``),Ye=g(``),Xe=g(0),Ze=!1,Z=g(0),Q=g(0),$=g(null),Qe=g(`no-date`),$e=ae(new Date),et=o(()=>se(u(Z),u(Q),$e,be())),tt=o(()=>u(Z)!==$e.getFullYear()||u(Q)!==$e.getMonth()),nt=o(()=>u(Qe)===`no-date`?u(H).pickDateEmpty:u(Qe)===`error`?u(H).errorEmpty:u(H).noSlotsEmpty);function rt(e){return!!(!e.inMonth||e.isPast||e.isClosedWeekday||L()&&u($)!==null&&!u($).has(e.iso))}async function it(){if(!L()){m($,null);return}try{m($,new Set(await L()(P())),!0)}catch{m($,new Set,!0)}}function at(){u(tt)&&(m(Q,u(Q)-1),u(Q)<0&&(m(Q,11),m(Z,u(Z)-1)))}function ot(){m(Q,u(Q)+1),u(Q)>11&&(m(Q,0),m(Z,u(Z)+1))}function st(e){rt(e)||N(e.iso)}async function ct(e){m(U,`empty`),m(Qe,e,!0);let t=N()?new Date(N()):new Date;m(Z,t.getFullYear(),!0),m(Q,t.getMonth(),!0),await it()}function lt(e){return new Date(`${e}T00:00:00`).toLocaleDateString(I(),{weekday:`long`,month:`long`,day:`numeric`})}async function ut(e){if(e.preventDefault(),m(X,``),!u(W)||!N()||!B())return;if(u(He)&&(!G||!K||!Re||!ze)){m(X,u(H).paymentNotReady,!0);return}if(m(q,!0),u(He)&&!Ze){let e;try{e=await G.confirmPayment({elements:K,confirmParams:{payment_method_data:{billing_details:{name:u(J),email:u(Y)||void 0,phone:u(Ge)||void 0,address:{postal_code:`00000`}}}},redirect:`if_required`})}catch{m(X,u(H).cardHoldFailed,!0),m(q,!1);return}let{error:t,paymentIntent:n}=e;if(t||n?.status!==`requires_capture`){m(X,t?.message??u(H).cardHoldFailed,!0),m(q,!1);return}Ze=!0}let t=je(u(W).time),n=Object.fromEntries(Object.entries(u(Ke)).filter(([,e])=>e)),r=await B()({date:N(),startTime:u(W).time,timeDisplay:t,partySize:P(),contactName:u(J),contactEmail:u(Y)||void 0,contactPhone:u(Ge)||void 0,notes:u(qe)||void 0,customFieldValues:Object.keys(n).length?n:void 0,stripePaymentIntentId:ze??void 0,clerkUserId:window.Clerk?.user?.id||void 0});if(r.ok){m(Je,lt(N()),!0),m(Ye,t,!0),m(Xe,P()),m(U,`confirmed`),De(`booking-confirmed`,{date:N(),time:t,guests:P()});return}m(X,r.message,!0),m(q,!1),r.status===409&&Fe()}var dt={get date(){return N()},set date(e){N(e),s()},get guests(){return P()},set guests(e=2){P(e),s()},get preferredTime(){return F()},set preferredTime(e){F(e),s()},get closedWeekdays(){return be()},set closedWeekdays(e=[]){be(e),s()},get customFields(){return xe()},set customFields(e=[]){xe(e),s()},get locale(){return I()},set locale(e){I(e),s()},get currency(){return Se()},set currency(e=`USD`){Se(e),s()},get strings(){return Ce()},set strings(e){Ce(e),s()},get fetchAvailableDates(){return L()},set fetchAvailableDates(e){L(e),s()},get searchSlots(){return R()},set searchSlots(e){R(e),s()},get createPaymentIntent(){return z()},set createPaymentIntent(e){z(e),s()},get book(){return B()},set book(e){B(e),s()},get stripePublishableKey(){return V()},set stripePublishableKey(e){V(e),s()},get stripeAppearance(){return we()},set stripeAppearance(e){we(e),s()}},ft=ve(),pt=O(ft),mt=e=>{var t=A();p(e,t)},ht=e=>{var t=j(),n=O(t),r=O(n,!0);y(n);var i=h(n,2),o=O(i),s=O(o),c=O(s);y(s);var l=h(s,2),d=O(l),f=h(d,2);y(l),y(o);var m=h(o,2);D(m,20,()=>u(Ee),e=>e,(e,t)=>{var n=ce(),r=O(n,!0);y(n),a(()=>E(r,t)),p(e,n)}),y(m);var g=h(m,2);D(g,21,()=>u(et),e=>e.iso,(e,t)=>{var n=le(),r=O(n,!0);y(n),a(e=>{n.disabled=e,E(r,u(t).dayNumber)},[()=>rt(u(t))]),C(`click`,n,()=>st(u(t))),p(e,n)}),y(g),y(i),y(t),a(()=>{E(r,u(nt)),E(c,`${u(Te)[u(Q)]??``} ${u(Z)??``}`),d.disabled=!u(tt),ne(d,`aria-label`,u(H).previousMonth),ne(f,`aria-label`,u(H).nextMonth)}),C(`click`,d,at),C(`click`,f,ot),p(e,t)},gt=t=>{var r=_e(),i=n(r),o=O(i),s=h(O(o));y(o);var c=h(o,2);D(c,21,()=>u(Oe),e=>e.time,(e,t)=>{var n=ue();let r;var i=O(n,!0);y(n),a(e=>{r=b(n,1,`bf-slot svelte-gavyia`,null,r,{"bf-slot-selected":u(W)?.time===u(t).time}),E(i,e)},[()=>je(u(t).time)]),C(`click`,n,()=>Pe(u(t))),p(e,n)}),y(c),y(i);var d=h(i,2),g=t=>{var n=ge(),r=O(n),i=O(r),o=O(i,!0);y(i);var s=h(i,2),c=h(O(s),2);te(c),y(s),y(r);var d=h(r,2),g=O(d),_=O(g,!0);y(g);var v=h(g,2),b=h(O(v),2);te(b),y(v),y(d);var x=h(d,2),C=O(x),w=O(C,!0);y(C);var T=h(C,2),ie=h(O(T),2);te(ie),y(T),y(x);var ae=h(x,2);D(ae,17,xe,e=>e.key,(t,n)=>{var r=fe(),i=O(r),o=O(i,!0);y(i);var s=h(i,2),c=O(s),l=O(c),d=O(l,!0);y(l),l.value=l.__value=``;var f=h(l);D(f,16,()=>u(n).options,e=>e,(e,t)=>{var n=de(),r=O(n,!0);y(n);var i={};a(()=>{E(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),p(e,n)}),y(c),e(2),y(s),y(r),a(()=>{E(o,u(n).label),ne(c,`name`,u(n).key),E(d,u(H).selectOption)}),re(c,()=>u(Ke)[u(n).key],e=>u(Ke)[u(n).key]=e),p(t,r)});var oe=h(ae,2),se=e=>{var t=me(),n=O(t),r=O(n),i=O(r,!0);y(r);var o=h(r,2),s=O(o,!0);y(o),y(n);var c=h(n,4),l=O(c,!0);y(c);var d=h(c,2),m=e=>{var t=pe(),n=O(t,!0);y(t),a(()=>E(n,u(Be))),p(e,t)};f(d,e=>{u(Be)&&e(m)}),y(t),a(()=>{E(i,u(H).paymentMethod),E(s,u(Ve)),E(l,u(H).paymentHint)}),p(e,t)};f(oe,e=>{u(He)&&e(se)});var k=h(oe,2),A=O(k),ce=O(A,!0);y(A);var le=h(A,2);ee(le),y(k);var j=h(k,2),ue=h(O(j),2),_e=O(ue,!0);y(ue),y(j);var M=h(j,2),ve=O(M),ye=e=>{var t=he();p(e,t)};f(ve,e=>{u(q)&&e(ye)});var N=h(ve);y(M);var P=h(M,2),F=e=>{var t=pe(),n=O(t,!0);y(t),a(()=>E(n,u(X))),p(e,t)};f(P,e=>{u(X)&&e(F)}),y(n),a(()=>{E(o,u(H).nameLabel),E(_,u(H).emailLabel),E(w,u(H).phoneLabel),E(ce,u(H).notesLabel),E(_e,u(H).cancellationPolicy),M.disabled=u(q),E(N,` ${(u(q)?u(H).processingButton:u(H).confirmButton)??``}`)}),l(`submit`,n,ut),S(c,()=>u(J),e=>m(J,e)),S(b,()=>u(Y),e=>m(Y,e)),S(ie,()=>u(Ge),e=>m(Ge,e)),S(le,()=>u(qe),e=>m(qe,e)),p(t,n)};f(d,e=>{u(U)===`form`&&e(g)}),a(()=>E(s,` ${u(H).availableTimes??``}`)),p(t,r)},_t=e=>{var t=M(),n=h(O(t),2),r=O(n,!0);y(n);var i=h(n,2),o=O(i),s=O(o),c=O(s,!0);y(s);var l=h(s),d=O(l,!0);y(l),y(o);var f=h(o,2),m=O(f),g=O(m,!0);y(m);var _=h(m),ee=O(_,!0);y(_),y(f);var v=h(f,2),b=O(v),x=O(b,!0);y(b);var S=h(b),C=O(S);y(S),y(v),y(i),y(t),a(()=>{E(r,u(H).confirmedTitle),E(c,u(H).dateLabel),E(d,u(Je)),E(g,u(H).timeLabel),E(ee,u(Ye)),E(x,u(H).partySizeLabel),E(C,`${u(Xe)??``} ${(u(Xe)===1?u(H).guestSingular:u(H).guestPlural)??``}`)}),p(e,t)};return f(pt,e=>{u(U)===`loading`?e(mt):u(U)===`empty`?e(ht,1):u(U)===`slots`||u(U)===`form`?e(gt,2):u(U)===`confirmed`&&e(_t,3)}),y(ft),p(t,ft),_(dt)}t([`click`]),customElements.define(`booking-flow`,T(N,{date:{type:`String`},guests:{type:`Number`},preferredTime:{type:`String`},closedWeekdays:{attribute:`closed-weekdays`,type:`Array`},customFields:{type:`Array`},locale:{attribute:`locale`,type:`String`},currency:{attribute:`currency`,type:`String`},strings:{type:`Object`},fetchAvailableDates:{type:`Object`},searchSlots:{type:`Object`},createPaymentIntent:{type:`Object`},book:{type:`Object`},stripePublishableKey:{type:`String`},stripeAppearance:{type:`Object`}},[],[],{mode:`open`}));
26
+ }.bf-confirmed.svelte-gavyia {text-align:center;}.bf-check-circle.svelte-gavyia {display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin:0 auto 1rem;border-radius:9999px;background:var(--bf-accent-bg, #1a1a1a);color:var(--bf-accent-text, #fff);font-size:1.5rem;}.bf-confirmed-title.svelte-gavyia {font-size:1.1rem;}.bf-confirmed-card.svelte-gavyia {max-width:20rem;margin:1.5rem auto 0;border:1px solid var(--bf-border-color, rgba(0, 0, 0, 0.15));border-radius:2px;padding:1.25rem;text-align:left;}.bf-confirmed-row.svelte-gavyia {display:flex;justify-content:space-between;padding:0.6rem 0;border-bottom:1px solid var(--bf-border-color, rgba(0, 0, 0, 0.1));font-size:0.85rem;}.bf-confirmed-row.svelte-gavyia:last-child {border-bottom:none;}.bf-cal.svelte-gavyia {max-width:20rem;margin:1.5rem auto 0;border:1px solid var(--bf-border-color, rgba(0, 0, 0, 0.15));border-radius:2px;padding:1rem;}.bf-cal-header.svelte-gavyia {display:flex;align-items:center;justify-content:space-between;}.bf-cal-month.svelte-gavyia {margin:0;font-size:0.875rem;font-weight:600;}.bf-cal-nav.svelte-gavyia {display:flex;gap:0.25rem;}.bf-cal-nav.svelte-gavyia button:where(.svelte-gavyia) {display:flex;height:28px;width:28px;align-items:center;justify-content:center;border-radius:9999px;border:none;background:transparent;color:inherit;cursor:pointer;}.bf-cal-nav.svelte-gavyia button:where(.svelte-gavyia):disabled {cursor:default;opacity:0.3;}.bf-cal-weekdays.svelte-gavyia {display:grid;grid-template-columns:repeat(7, 1fr);margin-top:0.75rem;text-align:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;opacity:0.4;}.bf-cal-grid.svelte-gavyia {display:grid;grid-template-columns:repeat(7, 1fr);row-gap:0.25rem;justify-items:center;margin-top:0.25rem;}.bf-cal-cell.svelte-gavyia {display:flex;height:32px;width:32px;align-items:center;justify-content:center;border-radius:9999px;border:none;background:transparent;color:inherit;font-size:0.875rem;cursor:pointer;}.bf-cal-cell.svelte-gavyia:disabled {cursor:default;opacity:0.25;}`};function N(t,r){v(r,!0),x(t,be);let T={pickDateEmpty:`Pick a date to see available times:`,errorEmpty:`Something went wrong checking availability. Pick a date to try again:`,noSlotsEmpty:`No tables available for that date. Pick another date below:`,previousMonth:`Previous month`,nextMonth:`Next month`,availableTimes:`Available Times`,nameLabel:`Name`,emailLabel:`Email`,phoneLabel:`Phone`,selectOption:`Select an option`,paymentMethod:`Payment Method`,holdSuffix:`hold`,paymentHint:`A hold is placed on your card and released when you arrive — you're only charged if you no-show.`,paymentUnavailable:`Payment form unavailable — refresh to try again.`,notesLabel:`Notes`,cancellationPolicy:`I understand a card hold will be placed for this reservation, released when I arrive, and only charged if I don't show up.`,confirmButton:`Confirm Reservation`,processingButton:`Processing…`,paymentNotReady:`Payment form is not ready yet — please wait a moment and try again.`,cardHoldFailed:`Your card hold could not be placed. Please try again.`,confirmedTitle:`You're booked! We look forward to seeing you.`,dateLabel:`Date`,timeLabel:`Time`,partySizeLabel:`Party Size`,guestSingular:`Guest`,guestPlural:`Guests`},N=w(r,`date`,7),P=w(r,`guests`,7,2),xe=w(r,`preferredTime`,7),Se=w(r,`closedWeekdays`,23,()=>[]),Ce=w(r,`customFields`,23,()=>[]),F=w(r,`locale`,7),we=w(r,`currency`,7,`USD`),Te=w(r,`strings`,7),I=w(r,`fetchAvailableDates`,7),L=w(r,`searchSlots`,7),R=w(r,`createPaymentIntent`,7),z=w(r,`book`,7),B=w(r,`stripePublishableKey`,7),Ee=w(r,`stripeAppearance`,7),V=o(()=>({...T,...Te()})),De=o(()=>oe(F())),Oe=o(()=>ie(F()));function ke(e,t){r.$$host?.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}let H=g(`loading`),Ae=g(i([])),U=g(null);function je(e,t){let n=k(e,t);return new Intl.NumberFormat(F(),{style:`currency`,currency:t,maximumFractionDigits:0}).format(n)}function Me(e){let[t,n]=e.split(`:`),r=Number(t),i=r>=12?`PM`:`AM`;return`${r%12==0?12:r%12}:${n} ${i}`}function Ne(e){let[t,n]=e.split(`:`);return Number(t)*60+Number(n)}function Pe(e){if(!e)return null;let t=e.match(/^(\d+):(\d+)\s*(AM|PM)$/i);if(!t)return null;let n=Number(t[1])%12;return t[3].toUpperCase()===`PM`&&(n+=12),n*60+Number(t[2])}function Fe(e){m(U,e,!0),m(H,`form`),Ge()}async function Ie(){if(!(!N()||!L())){m(H,`loading`);try{let e=await L()(N(),P());if(!e.length){await ct(`no-slots`);return}m(Ae,e,!0),m(H,`slots`);let t=Pe(xe()),n=e[0],r=1/0;for(let i of e){if(t===null)break;let e=Math.abs(Ne(i.time)-t);e<r&&(r=e,n=i)}Fe(n)}catch{await ct(`error`)}}}c(()=>{if(!N()){ct(`no-date`);return}Ie()});let W=null,Le=null,G=null,Re=null,ze=null,Be=null,Ve=g(``),He=g(``),K=g(!1),Ue=o(()=>!!(B()&&R()));async function We(){return B()?(Le||=A(async()=>{let{loadStripe:e}=await import(`./chunks/lib-Bd4dedte.js`);return{loadStripe:e}},[]).then(({loadStripe:e})=>e(B())),W=await Le,W):null}async function Ge(){if(!(Re||!N()||!R())){m(K,!0);try{await d();let e=await We();if(!e)throw Error(`Stripe failed to load`);let{clientSecret:t,paymentIntentId:n,amountCents:i}=await R()(N(),P());ze=t,Be=n,m(He,`${je(i,we())} ${u(V).holdSuffix}`),G=e.elements({clientSecret:t,appearance:Ee()});let a=G.create(`payment`,{layout:{type:`tabs`,defaultCollapsed:!1},fields:{billingDetails:{address:{country:`auto`,postalCode:`never`}}}}),o=r.$$host,s=(o?.shadowRoot)?.querySelector(`.bf-payment-slot-anchor`);if(!s)throw Error(`payment slot anchor not found`);if(!s.querySelector(`slot[name="payment-mount"]`)){let e=document.createElement(`slot`);e.setAttribute(`name`,`payment-mount`),s.appendChild(e)}let c=document.createElement(`div`);c.slot=`payment-mount`,c.className=`bf-card-element`,o.appendChild(c),a.mount(c),Re=a}catch{m(Ve,u(V).paymentUnavailable,!0)}finally{m(K,!1)}}}let q=g(``),J=g(``),Y=g(``),Ke=g(i({})),qe=g(``),X=g(``),Je=g(``),Ye=g(``),Xe=g(0),Ze=!1,Z=g(0),Q=g(0),$=g(null),Qe=g(`no-date`),$e=ae(new Date),et=o(()=>se(u(Z),u(Q),$e,Se())),tt=o(()=>u(Z)!==$e.getFullYear()||u(Q)!==$e.getMonth()),nt=o(()=>u(Qe)===`no-date`?u(V).pickDateEmpty:u(Qe)===`error`?u(V).errorEmpty:u(V).noSlotsEmpty);function rt(e){return!!(!e.inMonth||e.isPast||e.isClosedWeekday||I()&&u($)!==null&&!u($).has(e.iso))}async function it(){if(!I()){m($,null);return}try{m($,new Set(await I()(P())),!0)}catch{m($,new Set,!0)}}function at(){u(tt)&&(m(Q,u(Q)-1),u(Q)<0&&(m(Q,11),m(Z,u(Z)-1)))}function ot(){m(Q,u(Q)+1),u(Q)>11&&(m(Q,0),m(Z,u(Z)+1))}function st(e){rt(e)||N(e.iso)}async function ct(e){m(H,`empty`),m(Qe,e,!0);let t=N()?new Date(N()):new Date;m(Z,t.getFullYear(),!0),m(Q,t.getMonth(),!0),await it()}function lt(e){return new Date(`${e}T00:00:00`).toLocaleDateString(F(),{weekday:`long`,month:`long`,day:`numeric`})}async function ut(e){if(e.preventDefault(),m(X,``),!u(U)||!N()||!z())return;if(u(Ue)&&(!W||!G||!ze||!Be)){m(X,u(V).paymentNotReady,!0);return}if(m(K,!0),u(Ue)&&!Ze){let e;try{e=await W.confirmPayment({elements:G,confirmParams:{payment_method_data:{billing_details:{name:u(q),email:u(J)||void 0,phone:u(Y)||void 0,address:{postal_code:`00000`}}}},redirect:`if_required`})}catch{m(X,u(V).cardHoldFailed,!0),m(K,!1);return}let{error:t,paymentIntent:n}=e;if(t||n?.status!==`requires_capture`){m(X,t?.message??u(V).cardHoldFailed,!0),m(K,!1);return}Ze=!0}let t=Me(u(U).time),n=Object.fromEntries(Object.entries(u(Ke)).filter(([,e])=>e)),r=await z()({date:N(),startTime:u(U).time,timeDisplay:t,partySize:P(),contactName:u(q),contactEmail:u(J)||void 0,contactPhone:u(Y)||void 0,notes:u(qe)||void 0,customFieldValues:Object.keys(n).length?n:void 0,stripePaymentIntentId:Be??void 0,clerkUserId:window.Clerk?.user?.id||void 0});if(r.ok){m(Je,lt(N()),!0),m(Ye,t,!0),m(Xe,P()),m(H,`confirmed`),ke(`booking-confirmed`,{date:N(),time:t,guests:P()});return}m(X,r.message,!0),m(K,!1),r.status===409&&Ie()}var dt={get date(){return N()},set date(e){N(e),s()},get guests(){return P()},set guests(e=2){P(e),s()},get preferredTime(){return xe()},set preferredTime(e){xe(e),s()},get closedWeekdays(){return Se()},set closedWeekdays(e=[]){Se(e),s()},get customFields(){return Ce()},set customFields(e=[]){Ce(e),s()},get locale(){return F()},set locale(e){F(e),s()},get currency(){return we()},set currency(e=`USD`){we(e),s()},get strings(){return Te()},set strings(e){Te(e),s()},get fetchAvailableDates(){return I()},set fetchAvailableDates(e){I(e),s()},get searchSlots(){return L()},set searchSlots(e){L(e),s()},get createPaymentIntent(){return R()},set createPaymentIntent(e){R(e),s()},get book(){return z()},set book(e){z(e),s()},get stripePublishableKey(){return B()},set stripePublishableKey(e){B(e),s()},get stripeAppearance(){return Ee()},set stripeAppearance(e){Ee(e),s()}},ft=ye(),pt=O(ft),mt=e=>{var t=ce();p(e,t)},ht=e=>{var t=ue(),n=O(t),r=O(n,!0);y(n);var i=h(n,2),o=O(i),s=O(o),c=O(s);y(s);var l=h(s,2),d=O(l),f=h(d,2);y(l),y(o);var m=h(o,2);D(m,20,()=>u(Oe),e=>e,(e,t)=>{var n=le(),r=O(n,!0);y(n),a(()=>E(r,t)),p(e,n)}),y(m);var g=h(m,2);D(g,21,()=>u(et),e=>e.iso,(e,t)=>{var n=j(),r=O(n,!0);y(n),a(e=>{n.disabled=e,E(r,u(t).dayNumber)},[()=>rt(u(t))]),C(`click`,n,()=>st(u(t))),p(e,n)}),y(g),y(i),y(t),a(()=>{E(r,u(nt)),E(c,`${u(De)[u(Q)]??``} ${u(Z)??``}`),d.disabled=!u(tt),ne(d,`aria-label`,u(V).previousMonth),ne(f,`aria-label`,u(V).nextMonth)}),C(`click`,d,at),C(`click`,f,ot),p(e,t)},gt=t=>{var r=M(),i=n(r),o=O(i),s=h(O(o));y(o);var c=h(o,2);D(c,21,()=>u(Ae),e=>e.time,(e,t)=>{var n=de();let r;var i=O(n,!0);y(n),a(e=>{r=b(n,1,`bf-slot svelte-gavyia`,null,r,{"bf-slot-selected":u(U)?.time===u(t).time}),E(i,e)},[()=>Me(u(t).time)]),C(`click`,n,()=>Fe(u(t))),p(e,n)}),y(c),y(i);var d=h(i,2),g=t=>{var n=_e(),r=O(n),i=O(r),o=O(i,!0);y(i);var s=h(i,2),c=h(O(s),2);te(c),y(s),y(r);var d=h(r,2),g=O(d),_=O(g,!0);y(g);var v=h(g,2),b=h(O(v),2);te(b),y(v),y(d);var x=h(d,2),C=O(x),w=O(C,!0);y(C);var T=h(C,2),ie=h(O(T),2);te(ie),y(T),y(x);var ae=h(x,2);D(ae,17,Ce,e=>e.key,(t,n)=>{var r=pe(),i=O(r),o=O(i,!0);y(i);var s=h(i,2),c=O(s),l=O(c),d=O(l,!0);y(l),l.value=l.__value=``;var f=h(l);D(f,16,()=>u(n).options,e=>e,(e,t)=>{var n=fe(),r=O(n,!0);y(n);var i={};a(()=>{E(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),p(e,n)}),y(c),e(2),y(s),y(r),a(()=>{E(o,u(n).label),ne(c,`name`,u(n).key),E(d,u(V).selectOption)}),re(c,()=>u(Ke)[u(n).key],e=>u(Ke)[u(n).key]=e),p(t,r)});var oe=h(ae,2),se=e=>{var t=he(),n=O(t),r=O(n),i=O(r,!0);y(r);var o=h(r,2),s=O(o,!0);y(o),y(n);var c=h(n,4),l=O(c,!0);y(c);var d=h(c,2),m=e=>{var t=me(),n=O(t,!0);y(t),a(()=>E(n,u(Ve))),p(e,t)};f(d,e=>{u(Ve)&&e(m)}),y(t),a(()=>{E(i,u(V).paymentMethod),E(s,u(He)),E(l,u(V).paymentHint)}),p(e,t)};f(oe,e=>{u(Ue)&&e(se)});var k=h(oe,2),A=O(k),ce=O(A,!0);y(A);var le=h(A,2);ee(le),y(k);var j=h(k,2),ue=h(O(j),2),de=O(ue,!0);y(ue),y(j);var M=h(j,2),ve=O(M),ye=e=>{var t=ge();p(e,t)};f(ve,e=>{u(K)&&e(ye)});var be=h(ve);y(M);var N=h(M,2),P=e=>{var t=me(),n=O(t,!0);y(t),a(()=>E(n,u(X))),p(e,t)};f(N,e=>{u(X)&&e(P)}),y(n),a(()=>{E(o,u(V).nameLabel),E(_,u(V).emailLabel),E(w,u(V).phoneLabel),E(ce,u(V).notesLabel),E(de,u(V).cancellationPolicy),M.disabled=u(K),E(be,` ${(u(K)?u(V).processingButton:u(V).confirmButton)??``}`)}),l(`submit`,n,ut),S(c,()=>u(q),e=>m(q,e)),S(b,()=>u(J),e=>m(J,e)),S(ie,()=>u(Y),e=>m(Y,e)),S(le,()=>u(qe),e=>m(qe,e)),p(t,n)};f(d,e=>{u(H)===`form`&&e(g)}),a(()=>E(s,` ${u(V).availableTimes??``}`)),p(t,r)},_t=e=>{var t=ve(),n=h(O(t),2),r=O(n,!0);y(n);var i=h(n,2),o=O(i),s=O(o),c=O(s,!0);y(s);var l=h(s),d=O(l,!0);y(l),y(o);var f=h(o,2),m=O(f),g=O(m,!0);y(m);var _=h(m),ee=O(_,!0);y(_),y(f);var v=h(f,2),b=O(v),x=O(b,!0);y(b);var S=h(b),C=O(S);y(S),y(v),y(i),y(t),a(()=>{E(r,u(V).confirmedTitle),E(c,u(V).dateLabel),E(d,u(Je)),E(g,u(V).timeLabel),E(ee,u(Ye)),E(x,u(V).partySizeLabel),E(C,`${u(Xe)??``} ${(u(Xe)===1?u(V).guestSingular:u(V).guestPlural)??``}`)}),p(e,t)};return f(pt,e=>{u(H)===`loading`?e(mt):u(H)===`empty`?e(ht,1):u(H)===`slots`||u(H)===`form`?e(gt,2):u(H)===`confirmed`&&e(_t,3)}),y(ft),p(t,ft),_(dt)}t([`click`]),customElements.define(`booking-flow`,T(N,{date:{type:`String`},guests:{type:`Number`},preferredTime:{type:`String`},closedWeekdays:{attribute:`closed-weekdays`,type:`Array`},customFields:{type:`Array`},locale:{attribute:`locale`,type:`String`},currency:{attribute:`currency`,type:`String`},strings:{type:`Object`},fetchAvailableDates:{type:`Object`},searchSlots:{type:`Object`},createPaymentIntent:{type:`Object`},book:{type:`Object`},stripePublishableKey:{type:`String`},stripeAppearance:{type:`Object`}},[],[],{mode:`open`}));
@@ -0,0 +1 @@
1
+ var e=new Set([`bif`,`clp`,`djf`,`gnf`,`jpy`,`kmf`,`krw`,`mga`,`pyg`,`rwf`,`ugx`,`vnd`,`vuv`,`xaf`,`xof`,`xpf`]);function t(t,n){return e.has(n.toLowerCase())?t:t/100}export{t};
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["chunks/ably-5cVT4knS.js","chunks/rolldown-runtime-CbXtAM7H.js"])))=>i.map(i=>d[i]);
2
- import{n as e}from"./chunks/rolldown-runtime-CbXtAM7H.js";import{$ as t,A as n,B as r,D as i,H as a,I as o,J as s,K as c,L as l,N as u,S as d,T as f,U as p,V as m,W as h,X as g,Z as ee,b as te,d as ne,et as _,f as v,h as re,j as y,k as b,l as x,n as S,r as C,s as w,t as T,w as E,y as ie,z as D}from"./chunks/client-BDk8LqGN.js";import{t as ae}from"./chunks/preload-helper-Czpn1I53.js";import{t as O}from"./chunks/gsap-DWxn8li7.js";var k=i(`<span><svg class="lsbf-live-icon svelte-wxeez" aria-hidden="true" viewBox="0 -960 960 960" width="20" height="20" fill="currentColor"><path d="M198-278q-57-57-87.5-129.5T80-560q0-80 30.5-152.5T198-842l48 48q-47 47-72.5 107.5T148-560q0 66 25.5 126.5T246-326l-48 48Zm92-92q-38-38-58-87t-20-103q0-54 20-103t58-87l48 48q-29 29-43.5 65.5T280-560q0 40 14.5 76.5T338-418l-48 48Zm150 250v-348q-27-12-43.5-37T380-560q0-42 29-71t71-29q42 0 71 29t29 71q0 30-16.5 55T520-468v348h-80Zm230-250-48-48q29-29 43.5-65.5T680-560q0-40-14.5-76.5T622-702l48-48q38 38 58 87t20 103q0 54-20 103t-58 87Zm92 92-48-48q47-47 72.5-107.5T812-560q0-66-25.5-126.5T714-794l48-48q57 57 87.5 129.5T880-560q0 80-30.5 152.5T762-278Z" class="svelte-wxeez"></path></svg></span> <span class="lsbf-visually-hidden svelte-wxeez"> </span>`,1),oe=i(`<div><!></div>`),se=i(`<div class="lsbf-header svelte-wxeez"><h2 class="lsbf-heading svelte-wxeez"><svg class="lsbf-heading-icon svelte-wxeez" aria-hidden="true" viewBox="0 -960 960 960" width="20" height="20" fill="currentColor"><path d="M782-114 481-415 364-298q11 17 13.5 33t2.5 35q0 64-43 107T230-80q-64 0-107-43T80-230q0-64 43-107t107-43q18 0 35.5 5t36.5 15l116-116-118-118q-17 8-34.5 11t-35.5 3q-64 0-107-43T80-730q0-64 43-107t107-43q64 0 107 43t43 107q0 19-2.5 36T367-662l514 514v34h-99ZM599-527l-66-66 249-249h99v33L599-527ZM294-666q26-26 26-64t-26-64q-26-26-64-26t-64 26q-26 26-26 64t26 64q26 26 64 26t64-26Zm202.5 203.5Q502-468 502-476t-5.5-13.5Q491-495 483-495t-13.5 5.5Q464-484 464-476t5.5 13.5Q475-457 483-457t13.5-5.5ZM294-166q26-26 26-64t-26-64q-26-26-64-26t-64 26q-26 26-26 64t26 64q26 26 64 26t64-26Z" class="svelte-wxeez"></path></svg> </h2> <!></div>`),ce=i(`<li class="lsbf-item lsbf-skeleton-item svelte-wxeez"><span class="lsbf-item-accent svelte-wxeez" aria-hidden="true"></span> <div class="lsbf-item-main svelte-wxeez"><div class="lsbf-item-top svelte-wxeez"><span class="lsbf-skeleton-bar lsbf-skeleton-bar-name svelte-wxeez"></span> <span class="lsbf-skeleton-bar lsbf-skeleton-bar-received svelte-wxeez"></span></div> <span class="lsbf-skeleton-bar lsbf-skeleton-bar-sub svelte-wxeez"></span> <span class="lsbf-skeleton-bar lsbf-skeleton-bar-status svelte-wxeez"></span> <div class="lsbf-item-body svelte-wxeez"><div class="lsbf-item-duration svelte-wxeez"><span class="lsbf-skeleton-bar lsbf-skeleton-bar-stat svelte-wxeez"></span> <span class="lsbf-skeleton-bar lsbf-skeleton-bar-stat-label svelte-wxeez"></span></div> <span class="lsbf-skeleton-bar lsbf-skeleton-bar-meta svelte-wxeez"></span></div> <div class="lsbf-item-contact svelte-wxeez"><span class="lsbf-skeleton-bar lsbf-skeleton-bar-contact svelte-wxeez"></span></div></div></li>`),le=i(`<ul class="lsbf-list svelte-wxeez" aria-hidden="true"></ul>`),ue=i(`<p class="lsbf-empty svelte-wxeez"> </p>`),de=i(`<span class="lsbf-item-status svelte-wxeez"> </span>`),fe=i(`<button type="button" class="lsbf-item-status lsbf-item-status-btn svelte-wxeez" aria-haspopup="dialog"> </button>`),pe=i(`<span class="lsbf-item-total svelte-wxeez"> </span>`),me=i(`<a class="svelte-wxeez"> </a>`),he=i(`<span class="svelte-wxeez"> </span>`),ge=i(`<div class="lsbf-item-contact svelte-wxeez"><!> <!></div>`),_e=i(`<li class="lsbf-item svelte-wxeez"><span class="lsbf-item-accent svelte-wxeez" aria-hidden="true"></span> <div class="lsbf-item-main svelte-wxeez"><div class="lsbf-item-top svelte-wxeez"><span class="lsbf-item-name svelte-wxeez"> </span> <span class="lsbf-item-received svelte-wxeez"> </span></div> <span class="lsbf-item-treatment svelte-wxeez"><!> <!> <!></span> <!> <div class="lsbf-item-body svelte-wxeez"><button type="button" class="lsbf-item-datetime-btn svelte-wxeez"> </button> <div class="lsbf-item-duration svelte-wxeez"><span class="lsbf-item-duration-number svelte-wxeez"> </span> <span class="lsbf-item-duration-label svelte-wxeez">min</span></div> <!></div> <!></div></li>`),ve=i(`<p class="lsbf-loading-more svelte-wxeez" aria-live="polite">Loading more…</p>`),ye=i(`<div class="lsbf-sentinel svelte-wxeez" aria-hidden="true"></div>`),be=i(`<ul class="lsbf-list svelte-wxeez"></ul> <!> <!>`,1),xe=i(`<button type="button" class="lsbf-cancel-popover-dismiss lsbf-cancel-popover-checkin svelte-wxeez">Check in</button>`),Se=i(`<div class="lsbf-cancel-popover svelte-wxeez" role="dialog"><p class="lsbf-cancel-popover-text svelte-wxeez"> </p> <div class="lsbf-cancel-popover-actions svelte-wxeez"><!> <button type="button" class="lsbf-cancel-popover-dismiss lsbf-cancel-popover-complete svelte-wxeez">Mark completed</button> <button type="button" class="lsbf-cancel-popover-dismiss lsbf-cancel-popover-noshow svelte-wxeez">No show</button> <button type="button" class="lsbf-cancel-popover-confirm svelte-wxeez">Cancel booking</button></div></div>`),Ce=i(`<spa-booking-widget></spa-booking-widget>`,2),we=i(`<section class="lsbf-root svelte-wxeez"><!> <!> <!> <dialog><div class="lsbf-sheet-inner svelte-wxeez"><div class="lsbf-sheet-header svelte-wxeez"><h3 class="lsbf-sheet-title svelte-wxeez"> </h3> <button type="button" class="lsbf-sheet-close svelte-wxeez" aria-label="Close">✕</button></div> <div class="lsbf-sheet-body svelte-wxeez"><!></div></div></dialog></section>`),Te={hash:`svelte-wxeez`,code:`.lsbf-root.svelte-wxeez {position:relative;display:block;font-family:inherit;color:var(--lsbf-text-color, #1a1a1a);}.lsbf-header.svelte-wxeez {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;}.lsbf-heading.svelte-wxeez {display:flex;align-items:center;gap:0.5rem;margin:0;font-family:var(--lsbf-heading-font-family, inherit);font-size:var(--lsbf-heading-font-size, 1.125rem);font-weight:var(--lsbf-heading-font-weight, 700);}.lsbf-heading-icon.svelte-wxeez {flex-shrink:0;color:var(--lsbf-heading-icon-color, currentColor);opacity:0.8;}.lsbf-status.svelte-wxeez {display:flex;justify-content:flex-end;align-items:center;gap:0.375rem;margin-bottom:1rem;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--lsbf-live-color, #1a7d3a);}.lsbf-header.svelte-wxeez .lsbf-status:where(.svelte-wxeez) {margin-bottom:0;}.lsbf-status-error.svelte-wxeez {color:var(--lsbf-error-color, #b3261e);}.lsbf-live-icon-wrap.svelte-wxeez {position:relative;display:inline-flex;flex-shrink:0;}.lsbf-live-icon-wrap.svelte-wxeez::before {content:'';position:absolute;inset:0;border-radius:9999px;background:currentColor;opacity:0;\r
2
+ import{n as e}from"./chunks/rolldown-runtime-CbXtAM7H.js";import{$ as t,A as n,B as r,D as i,H as a,I as o,J as s,K as c,L as l,N as u,S as d,T as f,U as p,V as m,W as h,X as g,Z as ee,b as te,d as ne,et as _,f as v,h as re,j as y,k as b,l as x,n as S,r as C,s as w,t as T,w as E,y as ie,z as D}from"./chunks/client-BDk8LqGN.js";import{t as ae}from"./chunks/preload-helper-Czpn1I53.js";import{t as O}from"./chunks/gsap-DWxn8li7.js";var k=i(`<span><svg class="lsbf-live-icon svelte-wxeez" aria-hidden="true" viewBox="0 -960 960 960" width="20" height="20" fill="currentColor"><path d="M198-278q-57-57-87.5-129.5T80-560q0-80 30.5-152.5T198-842l48 48q-47 47-72.5 107.5T148-560q0 66 25.5 126.5T246-326l-48 48Zm92-92q-38-38-58-87t-20-103q0-54 20-103t58-87l48 48q-29 29-43.5 65.5T280-560q0 40 14.5 76.5T338-418l-48 48Zm150 250v-348q-27-12-43.5-37T380-560q0-42 29-71t71-29q42 0 71 29t29 71q0 30-16.5 55T520-468v348h-80Zm230-250-48-48q29-29 43.5-65.5T680-560q0-40-14.5-76.5T622-702l48-48q38 38 58 87t20 103q0 54-20 103t-58 87Zm92 92-48-48q47-47 72.5-107.5T812-560q0-66-25.5-126.5T714-794l48-48q57 57 87.5 129.5T880-560q0 80-30.5 152.5T762-278Z" class="svelte-wxeez"></path></svg></span> <span class="lsbf-visually-hidden svelte-wxeez"> </span>`,1),oe=i(`<div><!></div>`),se=i(`<div class="lsbf-header svelte-wxeez"><h2 class="lsbf-heading svelte-wxeez"><svg class="lsbf-heading-icon svelte-wxeez" aria-hidden="true" viewBox="0 -960 960 960" width="20" height="20" fill="currentColor"><path d="M180-80q-24 0-42-18t-18-42v-620q0-24 18-42t42-18h65v-60h65v60h340v-60h65v60h65q24 0 42 18t18 42v620q0 24-18 42t-42 18H180Zm0-60h600v-430H180v430Zm0-490h600v-130H180v130Zm0 0v-130 130Zm300 230q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-188.5-11.5Q280-423 280-440t11.5-28.5Q303-480 320-480t28.5 11.5Q360-457 360-440t-11.5 28.5Q337-400 320-400t-28.5-11.5ZM640-400q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-188.5-11.5Q280-263 280-280t11.5-28.5Q303-320 320-320t28.5 11.5Q360-297 360-280t-11.5 28.5Q337-240 320-240t-28.5-11.5ZM640-240q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z" class="svelte-wxeez"></path></svg> </h2> <!></div>`),ce=i(`<li class="lsbf-item lsbf-skeleton-item svelte-wxeez"><span class="lsbf-item-accent svelte-wxeez" aria-hidden="true"></span> <div class="lsbf-item-main svelte-wxeez"><div class="lsbf-item-top svelte-wxeez"><span class="lsbf-skeleton-bar lsbf-skeleton-bar-name svelte-wxeez"></span> <span class="lsbf-skeleton-bar lsbf-skeleton-bar-received svelte-wxeez"></span></div> <span class="lsbf-skeleton-bar lsbf-skeleton-bar-sub svelte-wxeez"></span> <span class="lsbf-skeleton-bar lsbf-skeleton-bar-status svelte-wxeez"></span> <div class="lsbf-item-body svelte-wxeez"><div class="lsbf-item-duration svelte-wxeez"><span class="lsbf-skeleton-bar lsbf-skeleton-bar-stat svelte-wxeez"></span> <span class="lsbf-skeleton-bar lsbf-skeleton-bar-stat-label svelte-wxeez"></span></div> <span class="lsbf-skeleton-bar lsbf-skeleton-bar-meta svelte-wxeez"></span></div> <div class="lsbf-item-contact svelte-wxeez"><span class="lsbf-skeleton-bar lsbf-skeleton-bar-contact svelte-wxeez"></span></div></div></li>`),le=i(`<ul class="lsbf-list svelte-wxeez" aria-hidden="true"></ul>`),ue=i(`<p class="lsbf-empty svelte-wxeez"> </p>`),de=i(`<span class="lsbf-item-status svelte-wxeez"> </span>`),fe=i(`<button type="button" class="lsbf-item-status lsbf-item-status-btn svelte-wxeez" aria-haspopup="dialog"> </button>`),pe=i(`<span class="lsbf-item-total svelte-wxeez"> </span>`),me=i(`<a class="svelte-wxeez"> </a>`),he=i(`<span class="svelte-wxeez"> </span>`),ge=i(`<div class="lsbf-item-contact svelte-wxeez"><!> <!></div>`),_e=i(`<li class="lsbf-item svelte-wxeez"><span class="lsbf-item-accent svelte-wxeez" aria-hidden="true"></span> <div class="lsbf-item-main svelte-wxeez"><div class="lsbf-item-top svelte-wxeez"><span class="lsbf-item-name svelte-wxeez"> </span> <span class="lsbf-item-received svelte-wxeez"> </span></div> <span class="lsbf-item-treatment svelte-wxeez"><!> <!> <!></span> <!> <div class="lsbf-item-body svelte-wxeez"><button type="button" class="lsbf-item-datetime-btn svelte-wxeez"> </button> <div class="lsbf-item-duration svelte-wxeez"><span class="lsbf-item-duration-number svelte-wxeez"> </span> <span class="lsbf-item-duration-label svelte-wxeez">min</span></div> <!></div> <!></div></li>`),ve=i(`<p class="lsbf-loading-more svelte-wxeez" aria-live="polite">Loading more…</p>`),ye=i(`<div class="lsbf-sentinel svelte-wxeez" aria-hidden="true"></div>`),be=i(`<ul class="lsbf-list svelte-wxeez"></ul> <!> <!>`,1),xe=i(`<button type="button" class="lsbf-cancel-popover-dismiss lsbf-cancel-popover-checkin svelte-wxeez">Check in</button>`),Se=i(`<div class="lsbf-cancel-popover svelte-wxeez" role="dialog"><p class="lsbf-cancel-popover-text svelte-wxeez"> </p> <div class="lsbf-cancel-popover-actions svelte-wxeez"><!> <button type="button" class="lsbf-cancel-popover-dismiss lsbf-cancel-popover-complete svelte-wxeez">Mark completed</button> <button type="button" class="lsbf-cancel-popover-dismiss lsbf-cancel-popover-noshow svelte-wxeez">No show</button> <button type="button" class="lsbf-cancel-popover-confirm svelte-wxeez">Cancel booking</button></div></div>`),Ce=i(`<spa-booking-widget></spa-booking-widget>`,2),we=i(`<section class="lsbf-root svelte-wxeez"><!> <!> <!> <dialog><div class="lsbf-sheet-inner svelte-wxeez"><div class="lsbf-sheet-header svelte-wxeez"><h3 class="lsbf-sheet-title svelte-wxeez"> </h3> <button type="button" class="lsbf-sheet-close svelte-wxeez" aria-label="Close">✕</button></div> <div class="lsbf-sheet-body svelte-wxeez"><!></div></div></dialog></section>`),Te={hash:`svelte-wxeez`,code:`.lsbf-root.svelte-wxeez {position:relative;display:block;font-family:inherit;color:var(--lsbf-text-color, #1a1a1a);}.lsbf-header.svelte-wxeez {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;}.lsbf-heading.svelte-wxeez {display:flex;align-items:center;gap:0.5rem;margin:0;font-family:var(--lsbf-heading-font-family, inherit);font-size:var(--lsbf-heading-font-size, 1.125rem);font-weight:var(--lsbf-heading-font-weight, 700);}.lsbf-heading-icon.svelte-wxeez {flex-shrink:0;color:var(--lsbf-heading-icon-color, currentColor);opacity:0.8;}.lsbf-status.svelte-wxeez {display:flex;justify-content:flex-end;align-items:center;gap:0.375rem;margin-bottom:1rem;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;color:var(--lsbf-live-color, #1a7d3a);}.lsbf-header.svelte-wxeez .lsbf-status:where(.svelte-wxeez) {margin-bottom:0;}.lsbf-status-error.svelte-wxeez {color:var(--lsbf-error-color, #b3261e);}.lsbf-live-icon-wrap.svelte-wxeez {position:relative;display:inline-flex;flex-shrink:0;}.lsbf-live-icon-wrap.svelte-wxeez::before {content:'';position:absolute;inset:0;border-radius:9999px;background:currentColor;opacity:0;\r
3
3
  animation: svelte-wxeez-lsbf-pulse 4s ease-out infinite;}\r
4
4
  @media (prefers-reduced-motion: reduce) {.lsbf-live-icon-wrap.svelte-wxeez::before {\r
5
5
  animation: none;}\r