@forgebuild/hotal-ui 0.23.205 → 0.24.1
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 +2 -2
- 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 +11297 -11106
- package/dist/index.d.ts +44 -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,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{
|
|
2
|
+
import{n as e}from"./chunks/rolldown-runtime-CbXtAM7H.js";import{A as t,B as n,C as r,E as i,G as a,H as o,L as s,O as c,P as l,Q as u,R as d,T as f,U as p,V as m,W as h,Y as ee,Z as g,b as _,d as te,f as v,h as y,n as b,q as x,r as S,s as C,t as w,tt as T,x as ne}from"./chunks/client-DNa0V682.js";import{t as E}from"./chunks/preload-helper-Czpn1I53.js";import{t as D}from"./chunks/gsap-DWxn8li7.js";var re=c(`<span><svg class="lrbf-live-icon svelte-wutv4y" 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-wutv4y"></path></svg></span> <span class="lrbf-visually-hidden svelte-wutv4y"> </span>`,1),O=c(`<div><!></div>`),k=c(`<div class="lrbf-header svelte-wutv4y"><h2 class="lrbf-heading svelte-wutv4y"><svg class="lrbf-heading-icon svelte-wutv4y" aria-hidden="true" viewBox="0 -960 960 960" width="20" height="20" fill="currentColor"><path d="M176-200h-30.3L126-280H80v-214q0-25.9 17-43.95Q114-556 140-556h26v-144q0-24.75 17.63-42.38Q201.25-760 226-760h507q24.75 0 42.38 17.62Q793-724.75 793-700v144h27q24.75 0 42.38 17.62Q880-520.75 880-496v216h-46l-19.78 80h-30.44L764-280H197l-21 80Zm334-356h223v-144H510v144Zm-284 0h224v-144H226v144Zm-86 216h680v-156H140v156Zm680 0H140h680Z" class="svelte-wutv4y"></path></svg> </h2> <!></div>`),A=c(`<li class="lrbf-item lrbf-skeleton-item svelte-wutv4y"><span class="lrbf-item-accent svelte-wutv4y" aria-hidden="true"></span> <div class="lrbf-item-main svelte-wutv4y"><div class="lrbf-item-top svelte-wutv4y"><span class="lrbf-skeleton-bar lrbf-skeleton-bar-name svelte-wutv4y"></span> <span class="lrbf-skeleton-bar lrbf-skeleton-bar-received svelte-wutv4y"></span></div> <span class="lrbf-skeleton-bar lrbf-skeleton-bar-sub svelte-wutv4y"></span> <span class="lrbf-skeleton-bar lrbf-skeleton-bar-status svelte-wutv4y"></span> <div class="lrbf-item-body svelte-wutv4y"><div class="lrbf-item-guests svelte-wutv4y"><span class="lrbf-skeleton-bar lrbf-skeleton-bar-stat svelte-wutv4y"></span> <span class="lrbf-skeleton-bar lrbf-skeleton-bar-stat-label svelte-wutv4y"></span></div> <span class="lrbf-skeleton-bar lrbf-skeleton-bar-meta svelte-wutv4y"></span></div> <div class="lrbf-item-contact svelte-wutv4y"><span class="lrbf-skeleton-bar lrbf-skeleton-bar-contact svelte-wutv4y"></span></div></div></li>`),ie=c(`<ul class="lrbf-list svelte-wutv4y" aria-hidden="true"></ul>`),j=c(`<p class="lrbf-empty svelte-wutv4y"> </p>`),ae=c(`<span class="lrbf-item-nights svelte-wutv4y"> </span>`),oe=c(`<span class="lrbf-item-total svelte-wutv4y"> </span>`),se=c(`<a class="svelte-wutv4y"> </a>`),ce=c(`<span class="svelte-wutv4y"> </span>`),le=c(`<div class="lrbf-item-contact svelte-wutv4y"><!> <!></div>`),ue=c(`<li class="lrbf-item svelte-wutv4y"><span class="lrbf-item-accent svelte-wutv4y" aria-hidden="true"></span> <div class="lrbf-item-main svelte-wutv4y"><div class="lrbf-item-top svelte-wutv4y"><span class="lrbf-item-name svelte-wutv4y"> </span> <span class="lrbf-item-received svelte-wutv4y"> </span></div> <span class="lrbf-item-room svelte-wutv4y"><!> <!> <!> </span> <span class="lrbf-item-status svelte-wutv4y"> </span> <div class="lrbf-item-body svelte-wutv4y"><div class="lrbf-item-guests svelte-wutv4y"><span class="lrbf-item-guests-number svelte-wutv4y"> </span> <span class="lrbf-item-guests-label svelte-wutv4y"> </span></div> <!> <!></div> <!></div></li>`),M=c(`<p class="lrbf-loading-more svelte-wutv4y" aria-live="polite">Loading more…</p>`),N=c(`<div class="lrbf-sentinel svelte-wutv4y" aria-hidden="true"></div>`),de=c(`<ul class="lrbf-list svelte-wutv4y"></ul> <!> <!>`,1),fe=c(`<section class="lrbf-root svelte-wutv4y"><!> <!></section>`),P={hash:`svelte-wutv4y`,code:`.lrbf-root.svelte-wutv4y {display:block;font-family:inherit;color:var(--lrbf-text-color, #1a1a1a);}.lrbf-header.svelte-wutv4y {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;}.lrbf-heading.svelte-wutv4y {display:flex;align-items:center;gap:0.5rem;margin:0;font-family:var(--lrbf-heading-font-family, inherit);font-size:var(--lrbf-heading-font-size, 1.125rem);font-weight:var(--lrbf-heading-font-weight, 700);}.lrbf-heading-icon.svelte-wutv4y {flex-shrink:0;color:var(--lrbf-heading-icon-color, currentColor);opacity:0.8;}.lrbf-status.svelte-wutv4y {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(--lrbf-live-color, #1a7d3a);}.lrbf-header.svelte-wutv4y .lrbf-status:where(.svelte-wutv4y) {margin-bottom:0;}.lrbf-status-error.svelte-wutv4y {color:var(--lrbf-error-color, #b3261e);}.lrbf-live-icon-wrap.svelte-wutv4y {position:relative;display:inline-flex;flex-shrink:0;}.lrbf-live-icon-wrap.svelte-wutv4y::before {content:'';position:absolute;inset:0;border-radius:9999px;background:currentColor;opacity:0;\r
|
|
3
3
|
animation: svelte-wutv4y-lrbf-pulse 4s ease-out infinite;}\r
|
|
4
4
|
@media (prefers-reduced-motion: reduce) {.lrbf-live-icon-wrap.svelte-wutv4y::before {\r
|
|
5
5
|
animation: none;}\r
|
|
@@ -15,4 +15,4 @@ import{n as e}from"./chunks/rolldown-runtime-CbXtAM7H.js";import{B as t,D as n,H
|
|
|
15
15
|
transform: scale(2.5);\r
|
|
16
16
|
opacity: 0;\r
|
|
17
17
|
}\r
|
|
18
|
-
}.lrbf-empty.svelte-wutv4y {opacity:0.6;font-size:0.875rem;}.lrbf-loading-more.svelte-wutv4y {opacity:0.6;font-size:0.8125rem;text-align:center;margin:0.75rem 0 0;}.lrbf-list.svelte-wutv4y {display:flex;flex-direction:column;gap:0.75rem;margin:0;padding:0;list-style:none;}.lrbf-item.svelte-wutv4y {position:relative;display:flex;align-items:flex-start;gap:0.75rem;border:1px solid transparent;border-radius:12px;padding:0.875rem 1rem 0.875rem 1.75rem;background:var(--lrbf-item-bg, #fff);overflow:hidden;transition:border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;}.lrbf-item.svelte-wutv4y:hover {border-color:var(--lrbf-item-hover-border, rgba(0, 0, 0, 0.25));box-shadow:var(--lrbf-item-hover-shadow, 0 4px 16px rgba(0, 0, 0, 0.08));transform:translateY(-1px);cursor:pointer;}.lrbf-item-accent.svelte-wutv4y {position:absolute;left:0;top:0;bottom:0;width:12px;background:var(--lrbf-accent, currentColor);}.lrbf-item-main.svelte-wutv4y {flex:1;min-width:0;display:flex;flex-direction:column;gap:0.25rem;}.lrbf-item-top.svelte-wutv4y {display:flex;align-items:baseline;justify-content:space-between;gap:0.75rem;}.lrbf-item-name.svelte-wutv4y {font-weight:700;}.lrbf-item-room.svelte-wutv4y {font-size:0.8125rem;}.lrbf-item-status.svelte-wutv4y {font-size:0.75rem;font-weight:700;color:var(--lrbf-accent, currentColor);}.lrbf-item-received.svelte-wutv4y {font-size:0.6875rem;white-space:nowrap;flex-shrink:0;opacity:0.55;}.lrbf-item-body.svelte-wutv4y {display:flex;align-items:center;gap:0.875rem;margin-top:0.25rem;}.lrbf-item-guests.svelte-wutv4y {display:flex;flex-direction:column;align-items:center;flex-shrink:0;line-height:1;padding-right:0.875rem;border-right:1px solid var(--lrbf-border-color, rgba(0, 0, 0, 0.1));}.lrbf-item-guests-number.svelte-wutv4y {font-size:1.75rem;font-weight:800;line-height:1;}.lrbf-item-guests-label.svelte-wutv4y {font-size:0.625rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;margin-top:0.1875rem;}.lrbf-item-total.svelte-wutv4y {margin-left:auto;font-size:1.75rem;font-weight:800;line-height:1;}.lrbf-item-nights.svelte-wutv4y {font-size:0.8125rem;}.lrbf-item-contact.svelte-wutv4y {display:flex;flex-wrap:wrap;gap:0.5rem 0.75rem;font-size:0.8125rem;margin-top:0.375rem;}.lrbf-item-contact.svelte-wutv4y a:where(.svelte-wutv4y) {color:inherit;}.lrbf-sentinel.svelte-wutv4y {height:1px;}.lrbf-skeleton-item.svelte-wutv4y {pointer-events:none;}.lrbf-skeleton-item.svelte-wutv4y .lrbf-item-accent:where(.svelte-wutv4y) {opacity:0.15;}.lrbf-skeleton-bar.svelte-wutv4y {display:inline-block;height:0.75rem;border-radius:3px;background:var(--lrbf-skeleton-color, color-mix(in srgb, currentColor 8%, transparent));}.lrbf-skeleton-bar-name.svelte-wutv4y {width:8.5rem;}.lrbf-skeleton-bar-sub.svelte-wutv4y {width:6rem;height:0.625rem;}.lrbf-skeleton-bar-status.svelte-wutv4y {width:4.5rem;}.lrbf-skeleton-bar-received.svelte-wutv4y {width:5.5rem;height:0.5625rem;}.lrbf-skeleton-bar-stat.svelte-wutv4y {width:2.5rem;height:1.75rem;}.lrbf-skeleton-bar-stat-label.svelte-wutv4y {width:2.5rem;height:0.5rem;margin-top:0.25rem;}.lrbf-skeleton-bar-meta.svelte-wutv4y {width:5rem;}.lrbf-skeleton-bar-contact.svelte-wutv4y {width:55%;}`};function F(n,S){h(S,!0),te(n,P);let F=e=>{var n=O();let r;var a=T(n),o=e=>{var t=y(`Live updates unavailable — showing loaded bookings only.`);u(e,t)},s=e=>{var n=re(),r=t(n);let a;var o=f(r,2),s=T(o,!0);_(o),i(()=>{a=v(r,1,`lrbf-live-icon-wrap svelte-wutv4y`,null,a,{"lrbf-live-icon-wrap-connecting":c(q)===`connecting`}),C(s,c(q)===`connecting`?`Connecting…`:`Live`)}),u(e,n)};l(a,e=>{c(q)===`error`?e(o):e(s,-1)}),_(n),i(()=>r=v(n,1,`lrbf-status svelte-wutv4y`,null,r,{"lrbf-status-error":c(q)===`error`})),u(e,n)},I=b(S,`heading`,7),L=b(S,`channelName`,7),R=b(S,`ablyAuthUrl`,7),z=b(S,`fetchBookings`,7),B=b(S,`maxItems`,7,30),V=b(S,`autoLoadMore`,7,!0),H=b(S,`emptyLabel`,7,`No bookings yet.`),U=b(S,`showEmail`,7,!0),W=b(S,`currency`,7,``),G=p(r([])),K=p(void 0),q=p(`connecting`),J=p(!0),Y=p(!1),X=p(!0),Z=p(void 0),Q=p(void 0);function pe(){return typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches}function me(e){let t=[e,...c(G).filter(t=>t.id!==e.id)];d(G,V()?t:t.slice(0,B()),!0)}async function he(){if(!(c(Y)||!c(X)||!z())){d(Y,!0);try{let e=c(G)[c(G).length-1]?.created_at,t=await z()({cursor:e,limit:B()}),n=new Set(c(G).map(e=>e.id)),r=t.filter(e=>!n.has(e.id));d(G,[...c(G),...r],!0),d(X,t.length===B()&&r.length>0,!0)}catch(e){console.error(`live-room-bookings-feed: failed to load more bookings`,e),d(X,!1)}finally{d(Y,!1)}}}function ge(e){try{return new Date(`${e.slice(0,10)}T00:00:00`).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}catch{return e}}function _e(e,t){let n=Date.parse(`${e.slice(0,10)}T00:00:00`),r=Date.parse(`${t.slice(0,10)}T00:00:00`);if(Number.isNaN(n)||Number.isNaN(r))return null;let i=Math.round((r-n)/864e5);return i>0?i:null}function ve(e){let t=Number(e);return Number.isNaN(t)?`${W()}${e}`:`${W()}${Number.isInteger(t)?t:t.toFixed(2)}`}function ye(e){try{return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}catch{return e}}function be(e){return e===`confirmed`?`var(--lrbf-status-confirmed-text, #22c55e)`:e===`cancelled`?`var(--lrbf-status-cancelled-text, #ef4444)`:`var(--lrbf-status-neutral-text, currentColor)`}function xe(e){return e===`confirmed`?`Booked`:e.charAt(0).toUpperCase()+e.slice(1)}s(()=>{if(typeof window>`u`||!L()||!R())return;let t,n=!1;return(async()=>{if(z())try{let e=await z()({limit:B()});n||(d(G,e,!0),d(X,e.length===B()))}catch(e){console.error(`live-room-bookings-feed: failed to load existing bookings`,e)}finally{n||d(J,!1)}else d(J,!1);try{let{default:r}=await E(async()=>{let{default:t}=await import(`./chunks/ably-5cVT4knS.js`).then(t=>e(t.default));return{default:t}},__vite__mapDeps([0,1]));if(n)return;t=new r.Realtime({authUrl:R()});let i=t.channels.get(L());t.connection.on(`connected`,()=>{n||d(q,`connected`)}),t.connection.on(`failed`,()=>{n||d(q,`error`)}),await i.subscribe(`new-booking`,e=>{n||me(e.data)}),await i.subscribe(`booking-status-changed`,e=>{n||me(e.data)})}catch(e){console.error(`live-room-bookings-feed: Ably connection failed`,e),n||d(q,`error`)}})(),()=>{n=!0,t?.close()}}),s(()=>{if(!c(J)||!c(Z)||pe())return;let e=c(Z).querySelectorAll(`.lrbf-skeleton-bar`),t=D.to(e,{opacity:.35,duration:.7,ease:`sine.inOut`,repeat:-1,yoyo:!0,stagger:.08});return()=>{t.kill()}});let Se=new Set;s(()=>{if(c(G).length,c(J)||!c(Q))return;let e=Array.from(c(Q).querySelectorAll(`.lrbf-item`)).filter(e=>{let t=e.dataset.id;return t!==void 0&&!Se.has(t)});if(e.length){for(let t of e)t.dataset.id&&Se.add(t.dataset.id);if(pe()){D.set(e,{opacity:1,y:0});return}D.fromTo(e,{opacity:0,y:8},{opacity:1,y:0,duration:.4,ease:`power2.out`,stagger:.06})}}),s(()=>{if(!V()||!c(K))return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&he()},{rootMargin:`200px`});return e.observe(c(K)),()=>e.disconnect()});var Ce={get heading(){return I()},set heading(e){I(e),o()},get channelName(){return L()},set channelName(e){L(e),o()},get ablyAuthUrl(){return R()},set ablyAuthUrl(e){R(e),o()},get fetchBookings(){return z()},set fetchBookings(e){z(e),o()},get maxItems(){return B()},set maxItems(e=30){B(e),o()},get autoLoadMore(){return V()},set autoLoadMore(e=!0){V(e),o()},get emptyLabel(){return H()},set emptyLabel(e=`No bookings yet.`){H(e),o()},get showEmail(){return U()},set showEmail(e=!0){U(e),o()},get currency(){return W()},set currency(e=``){W(e),o()}},$=fe(),we=T($),Te=e=>{var t=k(),n=T(t),r=f(T(n));_(n);var a=f(n,2);F(a),_(t),i(()=>C(r,` ${I()??``}`)),u(e,t)},Ee=e=>{F(e)};l(we,e=>{I()?e(Te):e(Ee,-1)});var De=f(we,2),Oe=e=>{var t=ie();w(t,20,()=>({length:3}),g,(e,t)=>{var n=A();u(e,n)}),_(t),x(t,e=>d(Z,e),()=>c(Z)),u(e,t)},ke=e=>{var t=j(),n=T(t,!0);_(t),i(()=>C(n,H())),u(e,t)},Ae=e=>{var n=de(),r=t(n);w(r,21,()=>c(G),e=>e.id,(e,t)=>{let n=a(()=>_e(c(t).check_in,c(t).check_out));var r=ue(),o=f(T(r),2),s=T(o),d=T(s),p=T(d);_(d);var m=f(d,2),h=T(m,!0);_(m),_(s);var g=f(s,2),v=T(g),te=e=>{var n=y();i(()=>C(n,`Room ${c(t).room_number??``}`)),u(e,n)};l(v,e=>{c(t).room_number&&e(te)});var b=f(v,2),x=e=>{var t=y(`\xA0·\xA0`);u(e,t)};l(b,e=>{c(t).room_number&&c(t).room_type_name&&e(x)});var S=f(b,2),w=e=>{var n=y();i(()=>C(n,`${c(t).room_type_name??``} · `)),u(e,n)};l(S,e=>{c(t).room_type_name&&e(w)});var E=f(S);_(g);var D=f(g,2),re=T(D,!0);_(D);var O=f(D,2),k=T(O),A=T(k),ie=T(A,!0);_(A);var j=f(A,2),M=T(j);_(j),_(k);var N=f(k,2),de=e=>{var t=ae(),r=T(t);_(t),i(()=>C(r,`${c(n)??``} night${c(n)===1?``:`s`}`)),u(e,t)};l(N,e=>{c(n)&&e(de)});var fe=f(N,2),P=e=>{var n=oe(),r=T(n,!0);_(n),i(e=>C(r,e),[()=>ve(c(t).total_price)]),u(e,n)};l(fe,e=>{c(t).total_price!=null&&e(P)}),_(O);var F=f(O,2),I=e=>{var n=le(),r=T(n),a=e=>{var n=se(),r=T(n,!0);_(n),i(()=>{ne(n,`href`,`mailto:${c(t).email}`),C(r,c(t).email)}),u(e,n)};l(r,e=>{U()&&c(t).email&&e(a)});var o=f(r,2),s=e=>{var n=ce(),r=T(n,!0);_(n),i(()=>C(r,c(t).phone)),u(e,n)};l(o,e=>{c(t).phone&&e(s)}),_(n),u(e,n)};l(F,e=>{(U()&&c(t).email||c(t).phone)&&e(I)}),_(o),_(r),i((e,n,i,a,o)=>{ne(r,`data-id`,c(t).id),ee(r,e),C(p,`${c(t).first_name??``} ${c(t).last_name??``}`),C(h,n),C(E,` ${i??``} → ${a??``}`),C(re,o),C(ie,c(t).guests),C(M,`guest${c(t).guests===1?``:`s`}`)},[()=>`--lrbf-accent: ${be(c(t).status)}`,()=>ye(c(t).created_at),()=>ge(c(t).check_in),()=>ge(c(t).check_out),()=>xe(c(t).status)]),u(e,r)}),_(r),x(r,e=>d(Q,e),()=>c(Q));var o=f(r,2),s=e=>{var t=M();u(e,t)};l(o,e=>{c(Y)&&e(s)});var p=f(o,2),m=e=>{var t=N();x(t,e=>d(K,e),()=>c(K)),u(e,t)};l(p,e=>{V()&&c(X)&&e(m)}),u(e,n)};return l(De,e=>{c(J)?e(Oe):c(G).length===0?e(ke,1):e(Ae,-1)}),_($),u(n,$),m(Ce)}customElements.define(`live-room-bookings-feed`,S(F,{heading:{attribute:`heading`,type:`String`},channelName:{attribute:`channel-name`,type:`String`},ablyAuthUrl:{attribute:`ably-auth-url`,type:`String`},maxItems:{attribute:`max-items`,type:`Number`},autoLoadMore:{attribute:`auto-load-more`,type:`Boolean`},emptyLabel:{attribute:`empty-label`,type:`String`},showEmail:{attribute:`show-email`,type:`Boolean`},currency:{attribute:`currency`,type:`String`},fetchBookings:{}},[],[],{mode:`open`}));
|
|
18
|
+
}.lrbf-empty.svelte-wutv4y {opacity:0.6;font-size:0.875rem;}.lrbf-loading-more.svelte-wutv4y {opacity:0.6;font-size:0.8125rem;text-align:center;margin:0.75rem 0 0;}.lrbf-list.svelte-wutv4y {display:flex;flex-direction:column;gap:0.75rem;margin:0;padding:0;list-style:none;}.lrbf-item.svelte-wutv4y {position:relative;display:flex;align-items:flex-start;gap:0.75rem;border:1px solid transparent;border-radius:12px;padding:0.875rem 1rem 0.875rem 1.75rem;background:var(--lrbf-item-bg, #fff);overflow:hidden;transition:border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;}.lrbf-item.svelte-wutv4y:hover {border-color:var(--lrbf-item-hover-border, rgba(0, 0, 0, 0.25));box-shadow:var(--lrbf-item-hover-shadow, 0 4px 16px rgba(0, 0, 0, 0.08));transform:translateY(-1px);cursor:pointer;}.lrbf-item-accent.svelte-wutv4y {position:absolute;left:0;top:0;bottom:0;width:12px;background:var(--lrbf-accent, currentColor);}.lrbf-item-main.svelte-wutv4y {flex:1;min-width:0;display:flex;flex-direction:column;gap:0.25rem;}.lrbf-item-top.svelte-wutv4y {display:flex;align-items:baseline;justify-content:space-between;gap:0.75rem;}.lrbf-item-name.svelte-wutv4y {font-weight:700;}.lrbf-item-room.svelte-wutv4y {font-size:0.8125rem;}.lrbf-item-status.svelte-wutv4y {font-size:0.75rem;font-weight:700;color:var(--lrbf-accent, currentColor);}.lrbf-item-received.svelte-wutv4y {font-size:0.6875rem;white-space:nowrap;flex-shrink:0;opacity:0.55;}.lrbf-item-body.svelte-wutv4y {display:flex;align-items:center;gap:0.875rem;margin-top:0.25rem;}.lrbf-item-guests.svelte-wutv4y {display:flex;flex-direction:column;align-items:center;flex-shrink:0;line-height:1;padding-right:0.875rem;border-right:1px solid var(--lrbf-border-color, rgba(0, 0, 0, 0.1));}.lrbf-item-guests-number.svelte-wutv4y {font-size:1.75rem;font-weight:800;line-height:1;}.lrbf-item-guests-label.svelte-wutv4y {font-size:0.625rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;margin-top:0.1875rem;}.lrbf-item-total.svelte-wutv4y {margin-left:auto;font-size:1.75rem;font-weight:800;line-height:1;}.lrbf-item-nights.svelte-wutv4y {font-size:0.8125rem;}.lrbf-item-contact.svelte-wutv4y {display:flex;flex-wrap:wrap;gap:0.5rem 0.75rem;font-size:0.8125rem;margin-top:0.375rem;}.lrbf-item-contact.svelte-wutv4y a:where(.svelte-wutv4y) {color:inherit;}.lrbf-sentinel.svelte-wutv4y {height:1px;}.lrbf-skeleton-item.svelte-wutv4y {pointer-events:none;}.lrbf-skeleton-item.svelte-wutv4y .lrbf-item-accent:where(.svelte-wutv4y) {opacity:0.15;}.lrbf-skeleton-bar.svelte-wutv4y {display:inline-block;height:0.75rem;border-radius:3px;background:var(--lrbf-skeleton-color, color-mix(in srgb, currentColor 8%, transparent));}.lrbf-skeleton-bar-name.svelte-wutv4y {width:8.5rem;}.lrbf-skeleton-bar-sub.svelte-wutv4y {width:6rem;height:0.625rem;}.lrbf-skeleton-bar-status.svelte-wutv4y {width:4.5rem;}.lrbf-skeleton-bar-received.svelte-wutv4y {width:5.5rem;height:0.5625rem;}.lrbf-skeleton-bar-stat.svelte-wutv4y {width:2.5rem;height:1.75rem;}.lrbf-skeleton-bar-stat-label.svelte-wutv4y {width:2.5rem;height:0.5rem;margin-top:0.25rem;}.lrbf-skeleton-bar-meta.svelte-wutv4y {width:5rem;}.lrbf-skeleton-bar-contact.svelte-wutv4y {width:55%;}`};function F(c,w){u(w,!0),y(c,P);let F=e=>{var a=O();let c;var u=n(a),d=e=>{var n=t(`Live updates unavailable — showing loaded bookings only.`);i(e,n)},p=e=>{var t=re(),r=m(t);let a;var c=o(r,2),u=n(c,!0);T(c),s(()=>{a=v(r,1,`lrbf-live-icon-wrap svelte-wutv4y`,null,a,{"lrbf-live-icon-wrap-connecting":l(q)===`connecting`}),f(u,l(q)===`connecting`?`Connecting…`:`Live`)}),i(e,t)};r(u,e=>{l(q)===`error`?e(d):e(p,-1)}),T(a),s(()=>c=v(a,1,`lrbf-status svelte-wutv4y`,null,c,{"lrbf-status-error":l(q)===`error`})),i(e,a)},I=b(w,`heading`,7),L=b(w,`channelName`,7),R=b(w,`ablyAuthUrl`,7),z=b(w,`fetchBookings`,7),B=b(w,`maxItems`,7,30),V=b(w,`autoLoadMore`,7,!0),H=b(w,`emptyLabel`,7,`No bookings yet.`),U=b(w,`showEmail`,7,!0),W=b(w,`currency`,7,``),G=a(p([])),K=a(void 0),q=a(`connecting`),J=a(!0),Y=a(!1),X=a(!0),Z=a(void 0),Q=a(void 0);function pe(){return typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches}function me(e){let t=[e,...l(G).filter(t=>t.id!==e.id)];h(G,V()?t:t.slice(0,B()),!0)}async function he(){if(!(l(Y)||!l(X)||!z())){h(Y,!0);try{let e=l(G)[l(G).length-1]?.created_at,t=await z()({cursor:e,limit:B()}),n=new Set(l(G).map(e=>e.id)),r=t.filter(e=>!n.has(e.id));h(G,[...l(G),...r],!0),h(X,t.length===B()&&r.length>0,!0)}catch(e){console.error(`live-room-bookings-feed: failed to load more bookings`,e),h(X,!1)}finally{h(Y,!1)}}}function ge(e){try{return new Date(`${e.slice(0,10)}T00:00:00`).toLocaleDateString(void 0,{month:`short`,day:`numeric`,year:`numeric`})}catch{return e}}function _e(e,t){let n=Date.parse(`${e.slice(0,10)}T00:00:00`),r=Date.parse(`${t.slice(0,10)}T00:00:00`);if(Number.isNaN(n)||Number.isNaN(r))return null;let i=Math.round((r-n)/864e5);return i>0?i:null}function ve(e){let t=Number(e);return Number.isNaN(t)?`${W()}${e}`:`${W()}${Number.isInteger(t)?t:t.toFixed(2)}`}function ye(e){try{return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}catch{return e}}function be(e){return e===`confirmed`?`var(--lrbf-status-confirmed-text, #22c55e)`:e===`cancelled`?`var(--lrbf-status-cancelled-text, #ef4444)`:`var(--lrbf-status-neutral-text, currentColor)`}function xe(e){return e===`confirmed`?`Booked`:e.charAt(0).toUpperCase()+e.slice(1)}d(()=>{if(typeof window>`u`||!L()||!R())return;let t,n=!1;return(async()=>{if(z())try{let e=await z()({limit:B()});n||(h(G,e,!0),h(X,e.length===B()))}catch(e){console.error(`live-room-bookings-feed: failed to load existing bookings`,e)}finally{n||h(J,!1)}else h(J,!1);try{let{default:r}=await E(async()=>{let{default:t}=await import(`./chunks/ably-5cVT4knS.js`).then(t=>e(t.default));return{default:t}},__vite__mapDeps([0,1]));if(n)return;t=new r.Realtime({authUrl:R()});let i=t.channels.get(L());t.connection.on(`connected`,()=>{n||h(q,`connected`)}),t.connection.on(`failed`,()=>{n||h(q,`error`)}),await i.subscribe(`new-booking`,e=>{n||me(e.data)}),await i.subscribe(`booking-status-changed`,e=>{n||me(e.data)})}catch(e){console.error(`live-room-bookings-feed: Ably connection failed`,e),n||h(q,`error`)}})(),()=>{n=!0,t?.close()}}),d(()=>{if(!l(J)||!l(Z)||pe())return;let e=l(Z).querySelectorAll(`.lrbf-skeleton-bar`),t=D.to(e,{opacity:.35,duration:.7,ease:`sine.inOut`,repeat:-1,yoyo:!0,stagger:.08});return()=>{t.kill()}});let Se=new Set;d(()=>{if(l(G).length,l(J)||!l(Q))return;let e=Array.from(l(Q).querySelectorAll(`.lrbf-item`)).filter(e=>{let t=e.dataset.id;return t!==void 0&&!Se.has(t)});if(e.length){for(let t of e)t.dataset.id&&Se.add(t.dataset.id);if(pe()){D.set(e,{opacity:1,y:0});return}D.fromTo(e,{opacity:0,y:8},{opacity:1,y:0,duration:.4,ease:`power2.out`,stagger:.06})}}),d(()=>{if(!V()||!l(K))return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&he()},{rootMargin:`200px`});return e.observe(l(K)),()=>e.disconnect()});var Ce={get heading(){return I()},set heading(e){I(e),x()},get channelName(){return L()},set channelName(e){L(e),x()},get ablyAuthUrl(){return R()},set ablyAuthUrl(e){R(e),x()},get fetchBookings(){return z()},set fetchBookings(e){z(e),x()},get maxItems(){return B()},set maxItems(e=30){B(e),x()},get autoLoadMore(){return V()},set autoLoadMore(e=!0){V(e),x()},get emptyLabel(){return H()},set emptyLabel(e=`No bookings yet.`){H(e),x()},get showEmail(){return U()},set showEmail(e=!0){U(e),x()},get currency(){return W()},set currency(e=``){W(e),x()}},$=fe(),we=n($),Te=e=>{var t=k(),r=n(t),a=o(n(r));T(r);var c=o(r,2);F(c),T(t),s(()=>f(a,` ${I()??``}`)),i(e,t)},Ee=e=>{F(e)};r(we,e=>{I()?e(Te):e(Ee,-1)});var De=o(we,2),Oe=e=>{var t=ie();_(t,20,()=>({length:3}),ne,(e,t)=>{var n=A();i(e,n)}),T(t),S(t,e=>h(Z,e),()=>l(Z)),i(e,t)},ke=e=>{var t=j(),r=n(t,!0);T(t),s(()=>f(r,H())),i(e,t)},Ae=e=>{var a=de(),c=m(a);_(c,21,()=>l(G),e=>e.id,(e,a)=>{let c=ee(()=>_e(l(a).check_in,l(a).check_out));var u=ue(),d=o(n(u),2),p=n(d),m=n(p),h=n(m);T(m);var g=o(m,2),_=n(g,!0);T(g),T(p);var v=o(p,2),y=n(v),b=e=>{var n=t();s(()=>f(n,`Room ${l(a).room_number??``}`)),i(e,n)};r(y,e=>{l(a).room_number&&e(b)});var x=o(y,2),S=e=>{var n=t(`\xA0·\xA0`);i(e,n)};r(x,e=>{l(a).room_number&&l(a).room_type_name&&e(S)});var w=o(x,2),ne=e=>{var n=t();s(()=>f(n,`${l(a).room_type_name??``} · `)),i(e,n)};r(w,e=>{l(a).room_type_name&&e(ne)});var E=o(w);T(v);var D=o(v,2),re=n(D,!0);T(D);var O=o(D,2),k=n(O),A=n(k),ie=n(A,!0);T(A);var j=o(A,2),M=n(j);T(j),T(k);var N=o(k,2),de=e=>{var t=ae(),r=n(t);T(t),s(()=>f(r,`${l(c)??``} night${l(c)===1?``:`s`}`)),i(e,t)};r(N,e=>{l(c)&&e(de)});var fe=o(N,2),P=e=>{var t=oe(),r=n(t,!0);T(t),s(e=>f(r,e),[()=>ve(l(a).total_price)]),i(e,t)};r(fe,e=>{l(a).total_price!=null&&e(P)}),T(O);var F=o(O,2),I=e=>{var t=le(),c=n(t),u=e=>{var t=se(),r=n(t,!0);T(t),s(()=>{C(t,`href`,`mailto:${l(a).email}`),f(r,l(a).email)}),i(e,t)};r(c,e=>{U()&&l(a).email&&e(u)});var d=o(c,2),p=e=>{var t=ce(),r=n(t,!0);T(t),s(()=>f(r,l(a).phone)),i(e,t)};r(d,e=>{l(a).phone&&e(p)}),T(t),i(e,t)};r(F,e=>{(U()&&l(a).email||l(a).phone)&&e(I)}),T(d),T(u),s((e,t,n,r,i)=>{C(u,`data-id`,l(a).id),te(u,e),f(h,`${l(a).first_name??``} ${l(a).last_name??``}`),f(_,t),f(E,` ${n??``} → ${r??``}`),f(re,i),f(ie,l(a).guests),f(M,`guest${l(a).guests===1?``:`s`}`)},[()=>`--lrbf-accent: ${be(l(a).status)}`,()=>ye(l(a).created_at),()=>ge(l(a).check_in),()=>ge(l(a).check_out),()=>xe(l(a).status)]),i(e,u)}),T(c),S(c,e=>h(Q,e),()=>l(Q));var u=o(c,2),d=e=>{var t=M();i(e,t)};r(u,e=>{l(Y)&&e(d)});var p=o(u,2),g=e=>{var t=N();S(t,e=>h(K,e),()=>l(K)),i(e,t)};r(p,e=>{V()&&l(X)&&e(g)}),i(e,a)};return r(De,e=>{l(J)?e(Oe):l(G).length===0?e(ke,1):e(Ae,-1)}),T($),i(c,$),g(Ce)}customElements.define(`live-room-bookings-feed`,w(F,{heading:{attribute:`heading`,type:`String`},channelName:{attribute:`channel-name`,type:`String`},ablyAuthUrl:{attribute:`ably-auth-url`,type:`String`},maxItems:{attribute:`max-items`,type:`Number`},autoLoadMore:{attribute:`auto-load-more`,type:`Boolean`},emptyLabel:{attribute:`empty-label`,type:`String`},showEmail:{attribute:`show-email`,type:`Boolean`},currency:{attribute:`currency`,type:`String`},fetchBookings:{}},[],[],{mode:`open`}));
|
|
@@ -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{
|
|
2
|
+
import{n as e}from"./chunks/rolldown-runtime-CbXtAM7H.js";import{A as t,B as n,C as r,E as i,G as a,H as o,L as s,O as c,P as l,Q as u,R as d,T as f,U as p,V as m,W as h,Y as g,Z as _,b as v,d as ee,f as y,h as b,n as x,q as S,r as C,s as w,t as T,tt as E,x as D}from"./chunks/client-DNa0V682.js";import{t as O}from"./chunks/preload-helper-Czpn1I53.js";import{t as k}from"./chunks/gsap-DWxn8li7.js";var A=c(`<span><svg class="lsof-live-icon svelte-uc2k28" 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-uc2k28"></path></svg></span> <span class="lsof-visually-hidden svelte-uc2k28"> </span>`,1),j=c(`<div><!></div>`),M=c(`<div class="lsof-header svelte-uc2k28"><h2 class="lsof-heading svelte-uc2k28"><svg class="lsof-heading-icon svelte-uc2k28" aria-hidden="true" viewBox="0 -960 960 960" width="20" height="20" fill="currentColor"><path d="M220-80q-24 0-42-18t-18-42v-520q0-24 18-42t42-18h110v-10q0-63 43.5-106.5T480-880q63 0 106.5 43.5T630-730v10h110q24 0 42 18t18 42v520q0 24-18 42t-42 18H220Zm0-60h520v-520H630v90q0 12.75-8.68 21.37-8.67 8.63-21.5 8.63-12.82 0-21.32-8.63-8.5-8.62-8.5-21.37v-90H390v90q0 12.75-8.68 21.37-8.67 8.63-21.5 8.63-12.82 0-21.32-8.63-8.5-8.62-8.5-21.37v-90H220v520Zm170-580h180v-10q0-38-26-64t-64-26q-38 0-64 26t-26 64v10ZM220-140v-520 520Z" class="svelte-uc2k28"></path></svg> </h2> <!></div>`),N=c(`<li class="lsof-item lsof-skeleton-item svelte-uc2k28"><span class="lsof-item-accent svelte-uc2k28" aria-hidden="true"></span> <div class="lsof-item-main svelte-uc2k28"><div class="lsof-item-top svelte-uc2k28"><span class="lsof-skeleton-bar lsof-skeleton-bar-name svelte-uc2k28"></span> <div class="lsof-item-top-right svelte-uc2k28"><span class="lsof-skeleton-bar lsof-skeleton-bar-received svelte-uc2k28"></span> <span class="lsof-skeleton-bar lsof-skeleton-bar-status svelte-uc2k28"></span></div></div> <span class="lsof-skeleton-bar lsof-skeleton-bar-sub svelte-uc2k28"></span> <div class="lsof-item-body svelte-uc2k28"><span class="lsof-skeleton-bar lsof-skeleton-bar-meta svelte-uc2k28"></span></div> <div class="lsof-item-lines svelte-uc2k28"><span class="lsof-skeleton-bar lsof-skeleton-bar-line svelte-uc2k28"></span> <span class="lsof-skeleton-bar lsof-skeleton-bar-line svelte-uc2k28"></span></div></div></li>`),te=c(`<ul class="lsof-list svelte-uc2k28" aria-hidden="true"></ul>`),ne=c(`<p class="lsof-empty svelte-uc2k28"> </p>`),re=c(`<span class="lsof-status-dot svelte-uc2k28" tabindex="0" role="status" aria-label="Cancelled" data-tooltip="Cancelled"></span>`),ie=c(`<span></span>`),ae=c(`<div class="lsof-stepper svelte-uc2k28" tabindex="0" role="status"></div>`),oe=c(`<span class="lsof-line-variant svelte-uc2k28"> </span>`),se=c(`<li class="lsof-line svelte-uc2k28"><span class="lsof-line-qty svelte-uc2k28"> </span> <span class="lsof-line-name svelte-uc2k28"> <!></span> <span class="lsof-line-price svelte-uc2k28"> </span></li>`),ce=c(`<div class="lsof-notes svelte-uc2k28"> </div>`),le=c(`<li class="lsof-item svelte-uc2k28"><span class="lsof-item-accent svelte-uc2k28" aria-hidden="true"></span> <div class="lsof-item-main svelte-uc2k28"><div class="lsof-item-top svelte-uc2k28"><span class="lsof-item-name svelte-uc2k28"> </span> <div class="lsof-item-top-right svelte-uc2k28"><span class="lsof-item-received svelte-uc2k28"> </span> <!></div></div> <span class="lsof-item-treatment svelte-uc2k28"> </span> <div class="lsof-item-body svelte-uc2k28"><span class="lsof-item-total svelte-uc2k28"> </span></div> <ul class="lsof-item-lines svelte-uc2k28"></ul> <!></div></li>`),ue=c(`<p class="lsof-loading-more svelte-uc2k28" aria-live="polite">Loading more…</p>`),de=c(`<div class="lsof-sentinel svelte-uc2k28" aria-hidden="true"></div>`),fe=c(`<ul class="lsof-list svelte-uc2k28"></ul> <!> <!>`,1),pe=c(`<section class="lsof-root svelte-uc2k28"><!> <!></section>`),me={hash:`svelte-uc2k28`,code:`.lsof-root.svelte-uc2k28 {display:block;font-family:inherit;color:var(--lsof-text-color, #1a1a1a);}.lsof-header.svelte-uc2k28 {display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;}.lsof-heading.svelte-uc2k28 {display:flex;align-items:center;gap:0.5rem;margin:0;font-family:var(--lsof-heading-font-family, inherit);font-size:var(--lsof-heading-font-size, 1.125rem);font-weight:var(--lsof-heading-font-weight, 700);}.lsof-heading-icon.svelte-uc2k28 {flex-shrink:0;color:var(--lsof-heading-icon-color, currentColor);opacity:0.8;}.lsof-status.svelte-uc2k28 {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(--lsof-live-color, #1a7d3a);}.lsof-header.svelte-uc2k28 .lsof-status:where(.svelte-uc2k28) {margin-bottom:0;}.lsof-status-error.svelte-uc2k28 {color:var(--lsof-error-color, #b3261e);}.lsof-live-icon-wrap.svelte-uc2k28 {position:relative;display:inline-flex;flex-shrink:0;}.lsof-live-icon-wrap.svelte-uc2k28::before {content:'';position:absolute;inset:0;border-radius:9999px;background:currentColor;opacity:0;
|
|
3
3
|
animation: svelte-uc2k28-lsof-live-pulse 4s ease-out infinite;}
|
|
4
4
|
@media (prefers-reduced-motion: reduce) {.lsof-live-icon-wrap.svelte-uc2k28::before {
|
|
5
5
|
animation: none;}
|
|
@@ -34,4 +34,4 @@ import{n as e}from"./chunks/rolldown-runtime-CbXtAM7H.js";import{B as t,D as n,H
|
|
|
34
34
|
transform: scale(2);
|
|
35
35
|
opacity: 0;
|
|
36
36
|
}
|
|
37
|
-
}.lsof-item-received.svelte-uc2k28 {font-size:0.6875rem;white-space:nowrap;flex-shrink:0;opacity:0.55;}.lsof-item-body.svelte-uc2k28 {display:flex;align-items:center;gap:0.875rem;margin-top:0.25rem;}.lsof-item-total.svelte-uc2k28 {margin-left:auto;font-size:1.75rem;font-weight:800;line-height:1;}.lsof-item-lines.svelte-uc2k28 {display:flex;flex-direction:column;gap:0.25rem;list-style:none;margin:0.625rem 0 0;padding:0.625rem 0 0;border-top:1px solid var(--lsof-border-color, rgba(0, 0, 0, 0.1));}.lsof-line.svelte-uc2k28 {display:flex;align-items:baseline;gap:0.4375rem;font-size:0.8125rem;}.lsof-line-qty.svelte-uc2k28 {flex-shrink:0;font-variant-numeric:tabular-nums;}.lsof-line-name.svelte-uc2k28 {flex:1;min-width:0;}.lsof-line-variant.svelte-uc2k28 {font-size:0.75rem;}.lsof-line-price.svelte-uc2k28 {flex-shrink:0;font-variant-numeric:tabular-nums;}.lsof-notes.svelte-uc2k28 {margin-top:0.5rem;font-size:0.8125rem;font-style:italic;}.lsof-sentinel.svelte-uc2k28 {height:1px;}.lsof-skeleton-item.svelte-uc2k28 {pointer-events:none;}.lsof-skeleton-item.svelte-uc2k28 .lsof-item-accent:where(.svelte-uc2k28) {opacity:0.15;}.lsof-skeleton-bar.svelte-uc2k28 {display:inline-block;height:0.75rem;border-radius:3px;background:var(--lsof-skeleton-color, color-mix(in srgb, currentColor 8%, transparent));}.lsof-skeleton-bar-name.svelte-uc2k28 {width:8.5rem;}.lsof-skeleton-bar-sub.svelte-uc2k28 {width:6rem;height:0.625rem;}.lsof-skeleton-bar-status.svelte-uc2k28 {width:4.5rem;}.lsof-skeleton-bar-received.svelte-uc2k28 {width:5.5rem;height:0.5625rem;}.lsof-skeleton-bar-meta.svelte-uc2k28 {width:5rem;}.lsof-skeleton-bar-line.svelte-uc2k28 {width:65%;}.lsof-skeleton-bar-line.svelte-uc2k28 + .lsof-skeleton-bar-line:where(.svelte-uc2k28) {width:45%;}`};function
|
|
37
|
+
}.lsof-item-received.svelte-uc2k28 {font-size:0.6875rem;white-space:nowrap;flex-shrink:0;opacity:0.55;}.lsof-item-body.svelte-uc2k28 {display:flex;align-items:center;gap:0.875rem;margin-top:0.25rem;}.lsof-item-total.svelte-uc2k28 {margin-left:auto;font-size:1.75rem;font-weight:800;line-height:1;}.lsof-item-lines.svelte-uc2k28 {display:flex;flex-direction:column;gap:0.25rem;list-style:none;margin:0.625rem 0 0;padding:0.625rem 0 0;border-top:1px solid var(--lsof-border-color, rgba(0, 0, 0, 0.1));}.lsof-line.svelte-uc2k28 {display:flex;align-items:baseline;gap:0.4375rem;font-size:0.8125rem;}.lsof-line-qty.svelte-uc2k28 {flex-shrink:0;font-variant-numeric:tabular-nums;}.lsof-line-name.svelte-uc2k28 {flex:1;min-width:0;}.lsof-line-variant.svelte-uc2k28 {font-size:0.75rem;}.lsof-line-price.svelte-uc2k28 {flex-shrink:0;font-variant-numeric:tabular-nums;}.lsof-notes.svelte-uc2k28 {margin-top:0.5rem;font-size:0.8125rem;font-style:italic;}.lsof-sentinel.svelte-uc2k28 {height:1px;}.lsof-skeleton-item.svelte-uc2k28 {pointer-events:none;}.lsof-skeleton-item.svelte-uc2k28 .lsof-item-accent:where(.svelte-uc2k28) {opacity:0.15;}.lsof-skeleton-bar.svelte-uc2k28 {display:inline-block;height:0.75rem;border-radius:3px;background:var(--lsof-skeleton-color, color-mix(in srgb, currentColor 8%, transparent));}.lsof-skeleton-bar-name.svelte-uc2k28 {width:8.5rem;}.lsof-skeleton-bar-sub.svelte-uc2k28 {width:6rem;height:0.625rem;}.lsof-skeleton-bar-status.svelte-uc2k28 {width:4.5rem;}.lsof-skeleton-bar-received.svelte-uc2k28 {width:5.5rem;height:0.5625rem;}.lsof-skeleton-bar-meta.svelte-uc2k28 {width:5rem;}.lsof-skeleton-bar-line.svelte-uc2k28 {width:65%;}.lsof-skeleton-bar-line.svelte-uc2k28 + .lsof-skeleton-bar-line:where(.svelte-uc2k28) {width:45%;}`};function P(c,T){u(T,!0),b(c,me);let P=e=>{var a=j();let c;var u=n(a),d=e=>{var n=t(`Live updates unavailable — showing loaded orders only.`);i(e,n)},p=e=>{var t=A(),r=m(t);let a;var c=o(r,2),u=n(c,!0);E(c),s(()=>{a=y(r,1,`lsof-live-icon-wrap svelte-uc2k28`,null,a,{"lsof-live-icon-wrap-connecting":l(q)===`connecting`}),f(u,l(q)===`connecting`?`Connecting…`:`Live`)}),i(e,t)};r(u,e=>{l(q)===`error`?e(d):e(p,-1)}),E(a),s(()=>c=y(a,1,`lsof-status svelte-uc2k28`,null,c,{"lsof-status-error":l(q)===`error`})),i(e,a)},F=x(T,`heading`,7),I=x(T,`channelName`,7),L=x(T,`ablyAuthUrl`,7),R=x(T,`fetchOrders`,7),z=x(T,`bookings`,7),B=x(T,`maxItems`,7,30),V=x(T,`autoLoadMore`,7,!0),H=x(T,`emptyLabel`,7,`No orders yet.`),U=x(T,`currency`,7,``),W=x(T,`filterBookingId`,7),he=[`pending`,`confirmed`,`ready`,`fulfilled`],G=a(p([])),K=a(void 0),q=a(`connecting`),J=a(!0),Y=a(!1),X=a(!0),Z=a(void 0),Q=a(void 0);function ge(){return typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches}let _e=g(()=>new Map((z()??[]).map(e=>[e.id,e])));function ve(e){if(e.booking_id){let t=l(_e).get(e.booking_id);return t?.guest_name&&t?.room_number?`${t.guest_name} · Room ${t.room_number}`:t?.guest_name?t.guest_name:t?.room_number?`Room ${t.room_number}`:`Booking ${e.booking_id.slice(0,8)}`}return e.guest_id?`Guest ${e.guest_id.slice(0,8)}`:`Order`}function ye(e){return he.indexOf(e)}function be(e){let t=[e,...l(G).filter(t=>t.id!==e.id)];h(G,V()?t:t.slice(0,B()),!0)}async function xe(){if(!(l(Y)||!l(X)||!R())){h(Y,!0);try{let e=l(G)[l(G).length-1]?.created_at,t=await R()({cursor:e,limit:B()}),n=new Set(l(G).map(e=>e.id)),r=t.filter(e=>!n.has(e.id));h(G,[...l(G),...r],!0),h(X,t.length===B()&&r.length>0,!0)}catch(e){console.error(`live-shop-orders-feed: failed to load more orders`,e),h(X,!1)}finally{h(Y,!1)}}}function Se(e){let t=Number(e);return Number.isNaN(t)?`${U()}${e}`:`${U()}${Number.isInteger(t)?t:t.toFixed(2)}`}function Ce(e){try{return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}catch{return e}}function we(e){return e.total==null?Number(e.unit_price??0)*e.quantity:e.total}function Te(e){return e===`cancelled`?`var(--lsof-status-cancelled-text, #ef4444)`:e===`fulfilled`?`var(--lsof-status-fulfilled-color, #22c55e)`:e===`ready`?`var(--lsof-status-ready-color, #b4650a)`:`var(--lsof-status-neutral-text, currentColor)`}function Ee(e){return e.charAt(0).toUpperCase()+e.slice(1)}d(()=>{if(typeof window>`u`||!I()||!L())return;let t,n=!1;return(async()=>{if(R())try{let e=await R()({limit:B()});n||(h(G,e,!0),h(X,e.length===B()))}catch(e){console.error(`live-shop-orders-feed: failed to load existing orders`,e)}finally{n||h(J,!1)}else h(J,!1);try{let{default:r}=await O(async()=>{let{default:t}=await import(`./chunks/ably-5cVT4knS.js`).then(t=>e(t.default));return{default:t}},__vite__mapDeps([0,1]));if(n)return;t=new r.Realtime({authUrl:L()});let i=t.channels.get(I());t.connection.on(`connected`,()=>{n||h(q,`connected`)}),t.connection.on(`failed`,()=>{n||h(q,`error`)}),await i.subscribe(`new-order`,e=>{if(n)return;let t=e.data;(!W()||t.booking_id===W())&&be(t)}),await i.subscribe(`order-status-changed`,e=>{if(!n){let t=e.data,n=l(G).find(e=>e.id===t.id);n&&be({...n,...t})}})}catch(e){console.error(`live-shop-orders-feed: Ably connection failed`,e),n||h(q,`error`)}})(),()=>{n=!0,t?.close()}}),d(()=>{if(!l(J)||!l(Z)||ge())return;let e=l(Z).querySelectorAll(`.lsof-skeleton-bar`),t=k.to(e,{opacity:.35,duration:.7,ease:`sine.inOut`,repeat:-1,yoyo:!0,stagger:.08});return()=>{t.kill()}});let De=new Set;d(()=>{if(l(G).length,l(J)||!l(Q))return;let e=Array.from(l(Q).querySelectorAll(`.lsof-item`)).filter(e=>{let t=e.dataset.id;return t!==void 0&&!De.has(t)});if(e.length){for(let t of e)t.dataset.id&&De.add(t.dataset.id);if(ge()){k.set(e,{opacity:1,y:0});return}k.fromTo(e,{opacity:0,y:8},{opacity:1,y:0,duration:.4,ease:`power2.out`,stagger:.06})}}),d(()=>{if(!V()||!l(K))return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&xe()},{rootMargin:`200px`});return e.observe(l(K)),()=>e.disconnect()});var Oe={get heading(){return F()},set heading(e){F(e),S()},get channelName(){return I()},set channelName(e){I(e),S()},get ablyAuthUrl(){return L()},set ablyAuthUrl(e){L(e),S()},get fetchOrders(){return R()},set fetchOrders(e){R(e),S()},get bookings(){return z()},set bookings(e){z(e),S()},get maxItems(){return B()},set maxItems(e=30){B(e),S()},get autoLoadMore(){return V()},set autoLoadMore(e=!0){V(e),S()},get emptyLabel(){return H()},set emptyLabel(e=`No orders yet.`){H(e),S()},get currency(){return U()},set currency(e=``){U(e),S()},get filterBookingId(){return W()},set filterBookingId(e){W(e),S()}},$=pe(),ke=n($),Ae=e=>{var t=M(),r=n(t),a=o(n(r));E(r);var c=o(r,2);P(c),E(t),s(()=>f(a,` ${F()??``}`)),i(e,t)},je=e=>{P(e)};r(ke,e=>{F()?e(Ae):e(je,-1)});var Me=o(ke,2),Ne=e=>{var t=te();v(t,20,()=>({length:3}),D,(e,t)=>{var n=N();i(e,n)}),E(t),C(t,e=>h(Z,e),()=>l(Z)),i(e,t)},Pe=e=>{var t=ne(),r=n(t,!0);E(t),s(()=>f(r,H())),i(e,t)},Fe=e=>{var t=fe(),a=m(t);v(a,21,()=>l(G),e=>e.id,(e,t)=>{let a=g(()=>ye(l(t).status)),c=g(()=>l(t).items.reduce((e,t)=>e+(t.quantity??0),0));var u=le(),d=o(n(u),2),p=n(d),m=n(p),h=n(m,!0);E(m);var _=o(m,2),b=n(_),x=n(b,!0);E(b);var S=o(b,2),C=e=>{var t=re();i(e,t)},T=e=>{var n=ae();v(n,21,()=>he,D,(e,n,r)=>{var o=ie();let c;s(()=>c=y(o,1,`lsof-step svelte-uc2k28`,null,c,{"lsof-step-done":r<=l(a),"lsof-step-current":r===l(a)&&l(t).status!==`fulfilled`})),i(e,o)}),E(n),s((e,t)=>{w(n,`aria-label`,e),w(n,`data-tooltip`,t)},[()=>Ee(l(t).status),()=>Ee(l(t).status)]),i(e,n)};r(S,e=>{l(t).status===`cancelled`?e(C):e(T,-1)}),E(_),E(p);var O=o(p,2),k=n(O);E(O);var A=o(O,2),j=n(A),M=n(j,!0);E(j),E(A);var N=o(A,2);v(N,21,()=>l(t).items,D,(e,t)=>{var a=se(),c=n(a),u=n(c);E(c);var d=o(c,2),p=n(d),m=o(p),h=e=>{var r=oe(),a=n(r);E(r),s(()=>f(a,`(${l(t).variant??``})`)),i(e,r)};r(m,e=>{l(t).variant&&e(h)}),E(d);var g=o(d,2),_=n(g,!0);E(g),E(a),s(e=>{f(u,`${l(t).quantity??``}×`),f(p,`${l(t).item_name??``} `),f(_,e)},[()=>Se(we(l(t)))]),i(e,a)}),E(N);var te=o(N,2),ne=e=>{var r=ce(),a=n(r);E(r),s(()=>f(a,`"${l(t).notes??``}"`)),i(e,r)};r(te,e=>{l(t).notes&&e(ne)}),E(d),E(u),s((e,n,r,i)=>{w(u,`data-id`,l(t).id),ee(u,e),f(h,n),f(x,r),f(k,`${l(c)??``} item${l(c)===1?``:`s`} · ${l(t).fulfillment_method===`shipping`?`Ships to guest`:`Pickup at pro shop`}`),f(M,i)},[()=>`--lsof-accent: ${Te(l(t).status)}`,()=>ve(l(t)),()=>Ce(l(t).created_at),()=>Se(l(t).total_price)]),i(e,u)}),E(a),C(a,e=>h(Q,e),()=>l(Q));var c=o(a,2),u=e=>{var t=ue();i(e,t)};r(c,e=>{l(Y)&&e(u)});var d=o(c,2),p=e=>{var t=de();C(t,e=>h(K,e),()=>l(K)),i(e,t)};r(d,e=>{V()&&l(X)&&e(p)}),i(e,t)};return r(Me,e=>{l(J)?e(Ne):l(G).length===0?e(Pe,1):e(Fe,-1)}),E($),i(c,$),_(Oe)}customElements.define(`live-shop-orders-feed`,T(P,{heading:{attribute:`heading`,type:`String`},channelName:{attribute:`channel-name`,type:`String`},ablyAuthUrl:{attribute:`ably-auth-url`,type:`String`},maxItems:{attribute:`max-items`,type:`Number`},autoLoadMore:{attribute:`auto-load-more`,type:`Boolean`},emptyLabel:{attribute:`empty-label`,type:`String`},currency:{attribute:`currency`,type:`String`},filterBookingId:{attribute:`filter-booking-id`,type:`String`},fetchOrders:{},bookings:{}},[],[],{mode:`open`}));
|
|
@@ -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{
|
|
2
|
+
import{n as e}from"./chunks/rolldown-runtime-CbXtAM7H.js";import{A as t,B as n,C as r,E as i,G as a,H 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 ee,Z as te,b as _,d as ne,et as re,f as v,h as ie,j as y,l as b,n as x,q as S,r as C,s as w,t as T,tt as E,x as ae}from"./chunks/client-DNa0V682.js";import{t as oe}from"./chunks/preload-helper-Czpn1I53.js";import{t as D}from"./chunks/gsap-DWxn8li7.js";var O=l(`<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),se=l(`<div><!></div>`),ce=l(`<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>`),le=l(`<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>`),ue=l(`<ul class="lsbf-list svelte-wxeez" aria-hidden="true"></ul>`),de=l(`<p class="lsbf-empty svelte-wxeez"> </p>`),fe=l(`<span class="lsbf-item-status svelte-wxeez"> </span>`),pe=l(`<button type="button" class="lsbf-item-status lsbf-item-status-btn svelte-wxeez" aria-haspopup="dialog"> </button>`),me=l(`<span class="lsbf-item-total svelte-wxeez"> </span>`),he=l(`<a class="svelte-wxeez"> </a>`),ge=l(`<span class="svelte-wxeez"> </span>`),_e=l(`<div class="lsbf-item-contact svelte-wxeez"><!> <!></div>`),ve=l(`<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>`),ye=l(`<p class="lsbf-loading-more svelte-wxeez" aria-live="polite">Loading more…</p>`),be=l(`<div class="lsbf-sentinel svelte-wxeez" aria-hidden="true"></div>`),xe=l(`<ul class="lsbf-list svelte-wxeez"></ul> <!> <!>`,1),Se=l(`<button type="button" class="lsbf-cancel-popover-dismiss lsbf-cancel-popover-checkin svelte-wxeez">Check in</button>`),Ce=l(`<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>`),we=l(`<spa-booking-widget></spa-booking-widget>`,2),Te=l(`<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>`),Ee={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
|
|
@@ -52,4 +52,4 @@ import{n as e}from"./chunks/rolldown-runtime-CbXtAM7H.js";import{$ as t,A as n,B
|
|
|
52
52
|
bookings' global.css). No --sbw-cal-nav-hover-border-color\r
|
|
53
53
|
override here on purpose -- it falls back to --sbw-accent-color\r
|
|
54
54
|
below, the same green already used for the selected day/time in\r
|
|
55
|
-
this same sheet, rather than a second, slightly different green. */--sbw-cal-nav-border-color: var(--sbw-bg);--sbw-service-hover-bg: rgba(255, 255, 255, 0.04);--sbw-accent-color: rgb(16, 185, 129);--sbw-accent-contrast: #fff;--sbw-accent-bg: linear-gradient(167deg, rgb(5, 150, 105) 0%, rgb(16, 185, 129) 50%, rgb(52, 211, 153) 100%);--sbw-accent-hover-bg: linear-gradient(167deg, rgb(16, 185, 129) 0%, rgb(52, 211, 153) 50%, rgb(110, 231, 183) 100%);--sbw-success-bg: linear-gradient(167deg, rgb(5, 150, 105) 0%, rgb(16, 185, 129) 50%, rgb(52, 211, 153) 100%);--sbw-danger-color: rgb(247, 37, 133);--sbw-heading-font-family: 'Unbounded', sans-serif;}`};function A(n,i){ee(i,!0),re(n,Te);let T=e=>{var t=oe();let n;var i=D(t),a=e=>{var t=b(`Live updates unavailable — showing loaded bookings only.`);f(e,t)},s=e=>{var t=k(),n=r(t);let i;var a=m(n,2),s=D(a,!0);_(a),o(()=>{i=v(n,1,`lsbf-live-icon-wrap svelte-wxeez`,null,i,{"lsbf-live-icon-wrap-connecting":u(W)===`connecting`}),E(s,u(W)===`connecting`?`Connecting…`:`Live`)}),f(e,t)};d(i,e=>{u(W)===`error`?e(a):e(s,-1)}),_(t),o(()=>n=v(t,1,`lsbf-status svelte-wxeez`,null,n,{"lsbf-status-error":u(W)===`error`})),f(e,t)},A=S(i,`heading`,7),j=S(i,`channelName`,7),M=S(i,`ablyAuthUrl`,7),N=S(i,`fetchBookings`,7),P=S(i,`maxItems`,7,30),F=S(i,`autoLoadMore`,7,!0),Ee=S(i,`emptyLabel`,7,`No spa bookings yet.`),De=S(i,`showEmail`,7,!0),Oe=S(i,`currency`,7,``),I=S(i,`fetchTreatments`,7),L=S(i,`fetchTherapists`,7),R=S(i,`fetchAvailability`,7),z=S(i,`submitBooking`,7),ke=S(i,`createBooking`,7),B=S(i,`openNewBooking`,7),Ae=S(i,`newBookingDate`,7),V=S(i,`widgetStrings`,7),H=h(a([])),U=h(void 0),W=h(`connecting`),G=h(!0),je=h(!1),K=h(!0),Me=h(void 0),Ne=h(void 0);function Pe(){return typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches}function Fe(e){let t=[e,...u(H).filter(t=>t.id!==e.id)];p(H,F()?t:t.slice(0,P()),!0),q(`booking-updated`,e)}async function Ie(){if(!(u(je)||!u(K)||!N())){p(je,!0);try{let e=u(H)[u(H).length-1]?.created_at,t=await N()({cursor:e,limit:P()}),n=new Set(u(H).map(e=>e.id)),r=t.filter(e=>!n.has(e.id));p(H,[...u(H),...r],!0),p(K,t.length===P()&&r.length>0,!0)}catch(e){console.error(`live-spa-bookings-feed: failed to load more bookings`,e),p(K,!1)}finally{p(je,!1)}}}function Le(e){try{return new Date(e).toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}catch{return e}}function Re(e){let t=Number(e);return Number.isNaN(t)?`${Oe()}${e}`:`${Oe()}${Number.isInteger(t)?t:t.toFixed(2)}`}function ze(e){try{return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}catch{return e}}function Be(e){return e===`confirmed`?`var(--lsbf-status-confirmed-text, #3b82f6)`:e===`cancelled`?`var(--lsbf-status-cancelled-text, #ef4444)`:e===`checked_in`?`var(--lsbf-status-checked-in-text, #f59e0b)`:e===`completed`?`var(--lsbf-status-completed-text, #14b8a6)`:e===`no_show`?`var(--lsbf-status-no-show-text, #ec4899)`:`var(--lsbf-status-neutral-text, currentColor)`}function Ve(e){return e===`confirmed`?`Booked`:e===`checked_in`?`Checked in`:e===`no_show`?`No show`:e.charAt(0).toUpperCase()+e.slice(1)}function He(e){return e===`cancelled`||e===`completed`||e===`no_show`}function q(e,t){i.$$host?.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}let J=h(null),Ue=h(a({top:0,left:0})),We=h(void 0);function Ge(e,t){if(u(J)?.id===e.id){p(J,null);return}let n=u(We).getBoundingClientRect(),r=t.getBoundingClientRect();p(Ue,{top:r.bottom-n.top+6,left:r.left-n.left},!0),p(J,e,!0)}function Y(){p(J,null)}function Ke(){u(J)&&(q(`cancel-booking`,{id:u(J).id,booking:u(J)}),Y())}function qe(){u(J)&&(q(`mark-checked-in`,{id:u(J).id,booking:u(J)}),Y())}function Je(){u(J)&&(q(`mark-completed`,{id:u(J).id,booking:u(J)}),Y())}function Ye(){u(J)&&(q(`mark-no-show`,{id:u(J).id,booking:u(J)}),Y())}l(()=>{if(!u(J)||typeof window>`u`)return;function e(e){e.composedPath().some(e=>e instanceof HTMLElement&&(e.classList.contains(`lsbf-cancel-popover`)||e.classList.contains(`lsbf-item-status-btn`)))||Y()}function t(e){e.key===`Escape`&&Y()}return window.addEventListener(`pointerdown`,e,!0),window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`pointerdown`,e,!0),window.removeEventListener(`keydown`,t)}});let X=h(null),Xe=h(!1),Z=h(void 0),Ze=h(!1),Q=h(void 0);function Qe(e){p(X,e,!0),u(Z)?.showModal(),requestAnimationFrame(()=>requestAnimationFrame(()=>p(Ze,!0)))}function $e(){p(Xe,!0),u(Z)?.showModal(),requestAnimationFrame(()=>requestAnimationFrame(()=>p(Ze,!0)))}function et(){p(Ze,!1),setTimeout(()=>{u(Z)?.close(),p(X,null),p(Xe,!1)},250)}let tt;l(()=>{B()!=null&&B()!==tt&&(tt=B(),$e())}),l(()=>{if(!u(Q))return;let e=()=>et();return u(Q).addEventListener(`booking-submitted`,e),()=>u(Q)?.removeEventListener(`booking-submitted`,e)}),l(()=>{if(!u(Q)||!u(X))return;let e=u(Q),t=u(X);e.fetchTreatments=I()&&(()=>I()(t)),e.fetchTherapists=L()&&(()=>L()(t)),e.fetchAvailability=R()&&((e,n,r,i)=>R()(e,n,r,i,t)),e.submitBooking=z()&&(e=>z()({...e,appointmentId:t.id,spaId:t.spa_id})),V()&&(e.strings=V())}),l(()=>{if(!u(Q)||!u(Xe))return;let e=u(Q);e.fetchTreatments=I()&&(()=>I()()),e.fetchTherapists=L()&&(()=>L()()),e.fetchAvailability=R()&&((e,t,n,r)=>R()(e,t,n,r)),e.submitBooking=ke(),V()&&(e.strings=V())}),l(()=>{if(typeof window>`u`||!j()||!M())return;let t,n=!1;return(async()=>{if(N())try{let e=await N()({limit:P()});n||(p(H,e,!0),p(K,e.length===P()))}catch(e){console.error(`live-spa-bookings-feed: failed to load existing bookings`,e)}finally{n||p(G,!1)}else p(G,!1);try{let{default:r}=await ae(async()=>{let{default:t}=await import(`./chunks/ably-5cVT4knS.js`).then(t=>e(t.default));return{default:t}},__vite__mapDeps([0,1]));if(n)return;t=new r.Realtime({authUrl:M()});let i=t.channels.get(j());t.connection.on(`connected`,()=>{n||p(W,`connected`)}),t.connection.on(`failed`,()=>{n||p(W,`error`)}),await i.subscribe(`new-booking`,e=>{n||Fe(e.data)}),await i.subscribe(`booking-status-changed`,e=>{n||Fe(e.data)})}catch(e){console.error(`live-spa-bookings-feed: Ably connection failed`,e),n||p(W,`error`)}})(),()=>{n=!0,t?.close()}}),l(()=>{if(!u(G)||!u(Me)||Pe())return;let e=u(Me).querySelectorAll(`.lsbf-skeleton-bar`),t=O.to(e,{opacity:.35,duration:.7,ease:`sine.inOut`,repeat:-1,yoyo:!0,stagger:.08});return()=>{t.kill()}});let nt=new Set;l(()=>{if(u(H).length,u(G)||!u(Ne))return;let e=Array.from(u(Ne).querySelectorAll(`.lsbf-item`)).filter(e=>{let t=e.dataset.id;return t!==void 0&&!nt.has(t)});if(e.length){for(let t of e)t.dataset.id&&nt.add(t.dataset.id);if(Pe()){O.set(e,{opacity:1,y:0});return}O.fromTo(e,{opacity:0,y:8},{opacity:1,y:0,duration:.4,ease:`power2.out`,stagger:.06})}}),l(()=>{if(!F()||!u(U))return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&Ie()},{rootMargin:`200px`});return e.observe(u(U)),()=>e.disconnect()});var rt={get heading(){return A()},set heading(e){A(e),c()},get channelName(){return j()},set channelName(e){j(e),c()},get ablyAuthUrl(){return M()},set ablyAuthUrl(e){M(e),c()},get fetchBookings(){return N()},set fetchBookings(e){N(e),c()},get maxItems(){return P()},set maxItems(e=30){P(e),c()},get autoLoadMore(){return F()},set autoLoadMore(e=!0){F(e),c()},get emptyLabel(){return Ee()},set emptyLabel(e=`No spa bookings yet.`){Ee(e),c()},get showEmail(){return De()},set showEmail(e=!0){De(e),c()},get currency(){return Oe()},set currency(e=``){Oe(e),c()},get fetchTreatments(){return I()},set fetchTreatments(e){I(e),c()},get fetchTherapists(){return L()},set fetchTherapists(e){L(e),c()},get fetchAvailability(){return R()},set fetchAvailability(e){R(e),c()},get submitBooking(){return z()},set submitBooking(e){z(e),c()},get createBooking(){return ke()},set createBooking(e){ke(e),c()},get openNewBooking(){return B()},set openNewBooking(e){B(e),c()},get newBookingDate(){return Ae()},set newBookingDate(e){Ae(e),c()},get widgetStrings(){return V()},set widgetStrings(e){V(e),c()}},it=we(),at=D(it),ot=e=>{var t=se(),n=D(t),r=m(D(n));_(n);var i=m(n,2);T(i),_(t),o(()=>E(r,` ${A()??``}`)),f(e,t)},st=e=>{T(e)};d(at,e=>{A()?e(ot):e(st,-1)});var ct=m(at,2),lt=e=>{var t=le();ie(t,20,()=>({length:3}),te,(e,t)=>{var n=ce();f(e,n)}),_(t),C(t,e=>p(Me,e),()=>u(Me)),f(e,t)},ut=e=>{var t=ue(),n=D(t,!0);_(t),o(()=>E(n,Ee())),f(e,t)},dt=e=>{var n=be(),i=r(n);ie(i,21,()=>u(H),e=>e.id,(e,n)=>{var r=_e(),i=m(D(r),2),a=D(i),c=D(a),l=D(c);_(c);var p=m(c,2),h=D(p,!0);_(p),_(a);var g=m(a,2),ee=D(g),te=e=>{var t=b();o(()=>E(t,u(n).treatment_name)),f(e,t)};d(ee,e=>{u(n).treatment_name&&e(te)});var v=m(ee,2),re=e=>{var t=b(`\xA0·\xA0`);f(e,t)};d(v,e=>{u(n).treatment_name&&u(n).therapist_name&&e(re)});var x=m(v,2),S=e=>{var t=b();o(()=>E(t,`with ${u(n).therapist_name??``}`)),f(e,t)};d(x,e=>{u(n).therapist_name&&e(S)}),_(g);var C=m(g,2),T=e=>{var t=de(),r=D(t,!0);_(t),o(e=>E(r,e),[()=>Ve(u(n).status)]),f(e,t)},ie=s(()=>He(u(n).status)),ae=e=>{var t=fe(),r=D(t,!0);_(t),o(e=>{w(t,`aria-expanded`,u(J)?.id===u(n).id),E(r,e)},[()=>Ve(u(n).status)]),y(`click`,t,e=>Ge(u(n),e.currentTarget)),f(e,t)};d(C,e=>{u(ie)?e(T):e(ae,-1)});var O=m(C,2),k=D(O),oe=D(k,!0);_(k);var se=m(k,2),ce=D(se),le=D(ce,!0);_(ce),t(2),_(se);var ue=m(se,2),ve=e=>{var t=pe(),r=D(t,!0);_(t),o(e=>E(r,e),[()=>Re(u(n).price)]),f(e,t)};d(ue,e=>{u(n).price!=null&&e(ve)}),_(O);var ye=m(O,2),be=e=>{var t=ge(),r=D(t),i=e=>{var t=me(),r=D(t,!0);_(t),o(()=>{w(t,`href`,`mailto:${u(n).email}`),E(r,u(n).email)}),f(e,t)};d(r,e=>{De()&&u(n).email&&e(i)});var a=m(r,2),s=e=>{var t=he(),r=D(t,!0);_(t),o(()=>E(r,u(n).phone)),f(e,t)};d(a,e=>{u(n).phone&&e(s)}),_(t),f(e,t)};d(ye,e=>{(De()&&u(n).email||u(n).phone)&&e(be)}),_(i),_(r),o((e,t,i)=>{w(r,`data-id`,u(n).id),ne(r,e),E(l,`${u(n).first_name??``} ${u(n).last_name??``}`),E(h,t),E(oe,i),E(le,u(n).duration_minutes)},[()=>`--lsbf-accent: ${Be(u(n).status)}`,()=>ze(u(n).created_at),()=>Le(u(n).start_time)]),y(`click`,k,()=>Qe(u(n))),f(e,r)}),_(i),C(i,e=>p(Ne,e),()=>u(Ne));var a=m(i,2),c=e=>{var t=ve();f(e,t)};d(a,e=>{u(je)&&e(c)});var l=m(a,2),h=e=>{var t=ye();C(t,e=>p(U,e),()=>u(U)),f(e,t)};d(l,e=>{F()&&u(K)&&e(h)}),f(e,n)};d(ct,e=>{u(G)?e(lt):u(H).length===0?e(ut,1):e(dt,-1)});var ft=m(ct,2),pt=e=>{var t=Se(),n=D(t),r=D(n);_(n);var i=m(n,2),a=D(i),s=e=>{var t=xe();y(`click`,t,qe),f(e,t)};d(a,e=>{u(J).status===`confirmed`&&e(s)});var c=m(a,2),l=m(c,2),p=m(l,2);_(i),_(t),o(e=>{w(t,`aria-label`,`${u(J).first_name}'s booking`),ne(t,e),E(r,`${u(J).first_name??``}'s booking`)},[()=>`top:${u(Ue).top}px; left:${u(Ue).left}px; --lsbf-popover-accent: ${Be(u(J).status)};`]),y(`click`,c,Je),y(`click`,l,Ye),y(`click`,p,Ke),f(e,t)};d(ft,e=>{u(J)&&e(pt)});var $=m(ft,2);let mt;var ht=D($),gt=D(ht),_t=D(gt),vt=D(_t,!0);_(_t);var yt=m(_t,2);_(gt);var bt=m(gt,2),xt=D(bt),St=e=>{var t=Ce();x(t,`heading`,``),x(t,`skip-details-step`,!0),o(()=>x(t,`initial-treatment-title`,u(X).treatment_name??``)),o(()=>x(t,`initial-date`,u(X).start_time.slice(0,10))),o(()=>x(t,`initial-time`,u(X).start_time.slice(11,16))),o(()=>x(t,`initial-name`,`${u(X).first_name} ${u(X).last_name}`.trim())),o(()=>x(t,`initial-email`,u(X).email??``)),o(()=>x(t,`initial-phone`,u(X).phone??``)),v(t,1,`svelte-wxeez`),C(t,e=>p(Q,e),()=>u(Q)),f(e,t)},Ct=e=>{var t=Ce();x(t,`heading`,``),x(t,`email-optional`,!0),o(()=>x(t,`initial-date`,Ae()??``)),v(t,1,`svelte-wxeez`),C(t,e=>p(Q,e),()=>u(Q)),f(e,t)};return d(xt,e=>{u(X)?e(St):u(Xe)&&e(Ct,1)}),_(bt),_(ht),_($),C($,e=>p(Z,e),()=>u(Z)),_(it),C(it,e=>p(We,e),()=>u(We)),o(()=>{mt=v($,1,`lsbf-sheet svelte-wxeez`,null,mt,{"lsbf-sheet-visible":u(Ze)}),w($,`aria-label`,u(X)?`Change booking`:`New booking`),E(vt,u(X)?`Change booking`:`New booking`)}),y(`click`,$,e=>e.target===u(Z)&&et()),y(`click`,yt,et),f(n,it),g(rt)}n([`click`]),customElements.define(`live-spa-bookings-feed`,T(A,{heading:{attribute:`heading`,type:`String`},channelName:{attribute:`channel-name`,type:`String`},ablyAuthUrl:{attribute:`ably-auth-url`,type:`String`},maxItems:{attribute:`max-items`,type:`Number`},autoLoadMore:{attribute:`auto-load-more`,type:`Boolean`},emptyLabel:{attribute:`empty-label`,type:`String`},showEmail:{attribute:`show-email`,type:`Boolean`},currency:{attribute:`currency`,type:`String`},fetchTreatments:{type:`Object`},fetchTherapists:{type:`Object`},fetchAvailability:{type:`Object`},submitBooking:{type:`Object`},createBooking:{type:`Object`},openNewBooking:{type:`Number`},newBookingDate:{attribute:`new-booking-date`,type:`String`},widgetStrings:{type:`Object`},fetchBookings:{}},[],[],{mode:`open`}));
|
|
55
|
+
this same sheet, rather than a second, slightly different green. */--sbw-cal-nav-border-color: var(--sbw-bg);--sbw-service-hover-bg: rgba(255, 255, 255, 0.04);--sbw-accent-color: rgb(16, 185, 129);--sbw-accent-contrast: #fff;--sbw-accent-bg: linear-gradient(167deg, rgb(5, 150, 105) 0%, rgb(16, 185, 129) 50%, rgb(52, 211, 153) 100%);--sbw-accent-hover-bg: linear-gradient(167deg, rgb(16, 185, 129) 0%, rgb(52, 211, 153) 50%, rgb(110, 231, 183) 100%);--sbw-success-bg: linear-gradient(167deg, rgb(5, 150, 105) 0%, rgb(16, 185, 129) 50%, rgb(52, 211, 153) 100%);--sbw-danger-color: rgb(247, 37, 133);--sbw-heading-font-family: 'Unbounded', sans-serif;}`};function k(l,y){d(y,!0),ie(l,Ee);let T=e=>{var a=se();let c;var l=n(a),d=e=>{var n=t(`Live updates unavailable — showing loaded bookings only.`);i(e,n)},f=e=>{var t=O(),r=h(t);let a;var c=o(r,2),l=n(c,!0);E(c),s(()=>{a=v(r,1,`lsbf-live-icon-wrap svelte-wxeez`,null,a,{"lsbf-live-icon-wrap-connecting":u(U)===`connecting`}),p(l,u(U)===`connecting`?`Connecting…`:`Live`)}),i(e,t)};r(l,e=>{u(U)===`error`?e(d):e(f,-1)}),E(a),s(()=>c=v(a,1,`lsbf-status svelte-wxeez`,null,c,{"lsbf-status-error":u(U)===`error`})),i(e,a)},k=x(y,`heading`,7),A=x(y,`channelName`,7),De=x(y,`ablyAuthUrl`,7),j=x(y,`fetchBookings`,7),M=x(y,`maxItems`,7,30),N=x(y,`autoLoadMore`,7,!0),Oe=x(y,`emptyLabel`,7,`No spa bookings yet.`),P=x(y,`showEmail`,7,!0),ke=x(y,`currency`,7,``),F=x(y,`fetchTreatments`,7),I=x(y,`fetchTherapists`,7),L=x(y,`fetchAvailability`,7),R=x(y,`submitBooking`,7),Ae=x(y,`createBooking`,7),z=x(y,`openNewBooking`,7),je=x(y,`newBookingDate`,7),B=x(y,`widgetStrings`,7),V=a(m([])),H=a(void 0),U=a(`connecting`),W=a(!0),G=a(!1),K=a(!0),Me=a(void 0),Ne=a(void 0);function Pe(){return typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches}function Fe(e){let t=[e,...u(V).filter(t=>t.id!==e.id)];g(V,N()?t:t.slice(0,M()),!0),q(`booking-updated`,e)}async function Ie(){if(!(u(G)||!u(K)||!j())){g(G,!0);try{let e=u(V)[u(V).length-1]?.created_at,t=await j()({cursor:e,limit:M()}),n=new Set(u(V).map(e=>e.id)),r=t.filter(e=>!n.has(e.id));g(V,[...u(V),...r],!0),g(K,t.length===M()&&r.length>0,!0)}catch(e){console.error(`live-spa-bookings-feed: failed to load more bookings`,e),g(K,!1)}finally{g(G,!1)}}}function Le(e){try{return new Date(e).toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`})}catch{return e}}function Re(e){let t=Number(e);return Number.isNaN(t)?`${ke()}${e}`:`${ke()}${Number.isInteger(t)?t:t.toFixed(2)}`}function ze(e){try{return new Date(e).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`numeric`,minute:`2-digit`})}catch{return e}}function Be(e){return e===`confirmed`?`var(--lsbf-status-confirmed-text, #3b82f6)`:e===`cancelled`?`var(--lsbf-status-cancelled-text, #ef4444)`:e===`checked_in`?`var(--lsbf-status-checked-in-text, #f59e0b)`:e===`completed`?`var(--lsbf-status-completed-text, #14b8a6)`:e===`no_show`?`var(--lsbf-status-no-show-text, #ec4899)`:`var(--lsbf-status-neutral-text, currentColor)`}function Ve(e){return e===`confirmed`?`Booked`:e===`checked_in`?`Checked in`:e===`no_show`?`No show`:e.charAt(0).toUpperCase()+e.slice(1)}function He(e){return e===`cancelled`||e===`completed`||e===`no_show`}function q(e,t){y.$$host?.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}let J=a(null),Ue=a(m({top:0,left:0})),We=a(void 0);function Ge(e,t){if(u(J)?.id===e.id){g(J,null);return}let n=u(We).getBoundingClientRect(),r=t.getBoundingClientRect();g(Ue,{top:r.bottom-n.top+6,left:r.left-n.left},!0),g(J,e,!0)}function Y(){g(J,null)}function Ke(){u(J)&&(q(`cancel-booking`,{id:u(J).id,booking:u(J)}),Y())}function qe(){u(J)&&(q(`mark-checked-in`,{id:u(J).id,booking:u(J)}),Y())}function Je(){u(J)&&(q(`mark-completed`,{id:u(J).id,booking:u(J)}),Y())}function Ye(){u(J)&&(q(`mark-no-show`,{id:u(J).id,booking:u(J)}),Y())}f(()=>{if(!u(J)||typeof window>`u`)return;function e(e){e.composedPath().some(e=>e instanceof HTMLElement&&(e.classList.contains(`lsbf-cancel-popover`)||e.classList.contains(`lsbf-item-status-btn`)))||Y()}function t(e){e.key===`Escape`&&Y()}return window.addEventListener(`pointerdown`,e,!0),window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`pointerdown`,e,!0),window.removeEventListener(`keydown`,t)}});let X=a(null),Xe=a(!1),Z=a(void 0),Ze=a(!1),Q=a(void 0);function Qe(e){g(X,e,!0),u(Z)?.showModal(),requestAnimationFrame(()=>requestAnimationFrame(()=>g(Ze,!0)))}function $e(){g(Xe,!0),u(Z)?.showModal(),requestAnimationFrame(()=>requestAnimationFrame(()=>g(Ze,!0)))}function et(){g(Ze,!1),setTimeout(()=>{u(Z)?.close(),g(X,null),g(Xe,!1)},250)}let tt;f(()=>{z()!=null&&z()!==tt&&(tt=z(),$e())}),f(()=>{if(!u(Q))return;let e=()=>et();return u(Q).addEventListener(`booking-submitted`,e),()=>u(Q)?.removeEventListener(`booking-submitted`,e)}),f(()=>{if(!u(Q)||!u(X))return;let e=u(Q),t=u(X);e.fetchTreatments=F()&&(()=>F()(t)),e.fetchTherapists=I()&&(()=>I()(t)),e.fetchAvailability=L()&&((e,n,r,i)=>L()(e,n,r,i,t)),e.submitBooking=R()&&(e=>R()({...e,appointmentId:t.id,spaId:t.spa_id})),B()&&(e.strings=B())}),f(()=>{if(!u(Q)||!u(Xe))return;let e=u(Q);e.fetchTreatments=F()&&(()=>F()()),e.fetchTherapists=I()&&(()=>I()()),e.fetchAvailability=L()&&((e,t,n,r)=>L()(e,t,n,r)),e.submitBooking=Ae(),B()&&(e.strings=B())}),f(()=>{if(typeof window>`u`||!A()||!De())return;let t,n=!1;return(async()=>{if(j())try{let e=await j()({limit:M()});n||(g(V,e,!0),g(K,e.length===M()))}catch(e){console.error(`live-spa-bookings-feed: failed to load existing bookings`,e)}finally{n||g(W,!1)}else g(W,!1);try{let{default:r}=await oe(async()=>{let{default:t}=await import(`./chunks/ably-5cVT4knS.js`).then(t=>e(t.default));return{default:t}},__vite__mapDeps([0,1]));if(n)return;t=new r.Realtime({authUrl:De()});let i=t.channels.get(A());t.connection.on(`connected`,()=>{n||g(U,`connected`)}),t.connection.on(`failed`,()=>{n||g(U,`error`)}),await i.subscribe(`new-booking`,e=>{n||Fe(e.data)}),await i.subscribe(`booking-status-changed`,e=>{n||Fe(e.data)})}catch(e){console.error(`live-spa-bookings-feed: Ably connection failed`,e),n||g(U,`error`)}})(),()=>{n=!0,t?.close()}}),f(()=>{if(!u(W)||!u(Me)||Pe())return;let e=u(Me).querySelectorAll(`.lsbf-skeleton-bar`),t=D.to(e,{opacity:.35,duration:.7,ease:`sine.inOut`,repeat:-1,yoyo:!0,stagger:.08});return()=>{t.kill()}});let nt=new Set;f(()=>{if(u(V).length,u(W)||!u(Ne))return;let e=Array.from(u(Ne).querySelectorAll(`.lsbf-item`)).filter(e=>{let t=e.dataset.id;return t!==void 0&&!nt.has(t)});if(e.length){for(let t of e)t.dataset.id&&nt.add(t.dataset.id);if(Pe()){D.set(e,{opacity:1,y:0});return}D.fromTo(e,{opacity:0,y:8},{opacity:1,y:0,duration:.4,ease:`power2.out`,stagger:.06})}}),f(()=>{if(!N()||!u(H))return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&Ie()},{rootMargin:`200px`});return e.observe(u(H)),()=>e.disconnect()});var rt={get heading(){return k()},set heading(e){k(e),S()},get channelName(){return A()},set channelName(e){A(e),S()},get ablyAuthUrl(){return De()},set ablyAuthUrl(e){De(e),S()},get fetchBookings(){return j()},set fetchBookings(e){j(e),S()},get maxItems(){return M()},set maxItems(e=30){M(e),S()},get autoLoadMore(){return N()},set autoLoadMore(e=!0){N(e),S()},get emptyLabel(){return Oe()},set emptyLabel(e=`No spa bookings yet.`){Oe(e),S()},get showEmail(){return P()},set showEmail(e=!0){P(e),S()},get currency(){return ke()},set currency(e=``){ke(e),S()},get fetchTreatments(){return F()},set fetchTreatments(e){F(e),S()},get fetchTherapists(){return I()},set fetchTherapists(e){I(e),S()},get fetchAvailability(){return L()},set fetchAvailability(e){L(e),S()},get submitBooking(){return R()},set submitBooking(e){R(e),S()},get createBooking(){return Ae()},set createBooking(e){Ae(e),S()},get openNewBooking(){return z()},set openNewBooking(e){z(e),S()},get newBookingDate(){return je()},set newBookingDate(e){je(e),S()},get widgetStrings(){return B()},set widgetStrings(e){B(e),S()}},it=Te(),at=n(it),ot=e=>{var t=ce(),r=n(t),a=o(n(r));E(r);var c=o(r,2);T(c),E(t),s(()=>p(a,` ${k()??``}`)),i(e,t)},st=e=>{T(e)};r(at,e=>{k()?e(ot):e(st,-1)});var ct=o(at,2),lt=e=>{var t=ue();_(t,20,()=>({length:3}),ae,(e,t)=>{var n=le();i(e,n)}),E(t),C(t,e=>g(Me,e),()=>u(Me)),i(e,t)},ut=e=>{var t=de(),r=n(t,!0);E(t),s(()=>p(r,Oe())),i(e,t)},dt=e=>{var a=xe(),l=h(a);_(l,21,()=>u(V),e=>e.id,(e,a)=>{var l=ve(),d=o(n(l),2),f=n(d),m=n(f),h=n(m);E(m);var g=o(m,2),te=n(g,!0);E(g),E(f);var _=o(f,2),v=n(_),ie=e=>{var n=t();s(()=>p(n,u(a).treatment_name)),i(e,n)};r(v,e=>{u(a).treatment_name&&e(ie)});var y=o(v,2),b=e=>{var n=t(`\xA0·\xA0`);i(e,n)};r(y,e=>{u(a).treatment_name&&u(a).therapist_name&&e(b)});var x=o(y,2),S=e=>{var n=t();s(()=>p(n,`with ${u(a).therapist_name??``}`)),i(e,n)};r(x,e=>{u(a).therapist_name&&e(S)}),E(_);var C=o(_,2),T=e=>{var t=fe(),r=n(t,!0);E(t),s(e=>p(r,e),[()=>Ve(u(a).status)]),i(e,t)},ae=ee(()=>He(u(a).status)),oe=e=>{var t=pe(),r=n(t,!0);E(t),s(e=>{w(t,`aria-expanded`,u(J)?.id===u(a).id),p(r,e)},[()=>Ve(u(a).status)]),c(`click`,t,e=>Ge(u(a),e.currentTarget)),i(e,t)};r(C,e=>{u(ae)?e(T):e(oe,-1)});var D=o(C,2),O=n(D),se=n(O,!0);E(O);var ce=o(O,2),le=n(ce),ue=n(le,!0);E(le),re(2),E(ce);var de=o(ce,2),ye=e=>{var t=me(),r=n(t,!0);E(t),s(e=>p(r,e),[()=>Re(u(a).price)]),i(e,t)};r(de,e=>{u(a).price!=null&&e(ye)}),E(D);var be=o(D,2),xe=e=>{var t=_e(),c=n(t),l=e=>{var t=he(),r=n(t,!0);E(t),s(()=>{w(t,`href`,`mailto:${u(a).email}`),p(r,u(a).email)}),i(e,t)};r(c,e=>{P()&&u(a).email&&e(l)});var d=o(c,2),f=e=>{var t=ge(),r=n(t,!0);E(t),s(()=>p(r,u(a).phone)),i(e,t)};r(d,e=>{u(a).phone&&e(f)}),E(t),i(e,t)};r(be,e=>{(P()&&u(a).email||u(a).phone)&&e(xe)}),E(d),E(l),s((e,t,n)=>{w(l,`data-id`,u(a).id),ne(l,e),p(h,`${u(a).first_name??``} ${u(a).last_name??``}`),p(te,t),p(se,n),p(ue,u(a).duration_minutes)},[()=>`--lsbf-accent: ${Be(u(a).status)}`,()=>ze(u(a).created_at),()=>Le(u(a).start_time)]),c(`click`,O,()=>Qe(u(a))),i(e,l)}),E(l),C(l,e=>g(Ne,e),()=>u(Ne));var d=o(l,2),f=e=>{var t=ye();i(e,t)};r(d,e=>{u(G)&&e(f)});var m=o(d,2),te=e=>{var t=be();C(t,e=>g(H,e),()=>u(H)),i(e,t)};r(m,e=>{N()&&u(K)&&e(te)}),i(e,a)};r(ct,e=>{u(W)?e(lt):u(V).length===0?e(ut,1):e(dt,-1)});var ft=o(ct,2),pt=e=>{var t=Ce(),a=n(t),l=n(a);E(a);var d=o(a,2),f=n(d),m=e=>{var t=Se();c(`click`,t,qe),i(e,t)};r(f,e=>{u(J).status===`confirmed`&&e(m)});var h=o(f,2),g=o(h,2),ee=o(g,2);E(d),E(t),s(e=>{w(t,`aria-label`,`${u(J).first_name}'s booking`),ne(t,e),p(l,`${u(J).first_name??``}'s booking`)},[()=>`top:${u(Ue).top}px; left:${u(Ue).left}px; --lsbf-popover-accent: ${Be(u(J).status)};`]),c(`click`,h,Je),c(`click`,g,Ye),c(`click`,ee,Ke),i(e,t)};r(ft,e=>{u(J)&&e(pt)});var $=o(ft,2);let mt;var ht=n($),gt=n(ht),_t=n(gt),vt=n(_t,!0);E(_t);var yt=o(_t,2);E(gt);var bt=o(gt,2),xt=n(bt),St=e=>{var t=we();b(t,`heading`,``),b(t,`skip-details-step`,!0),s(()=>b(t,`initial-treatment-title`,u(X).treatment_name??``)),s(()=>b(t,`initial-date`,u(X).start_time.slice(0,10))),s(()=>b(t,`initial-time`,u(X).start_time.slice(11,16))),s(()=>b(t,`initial-name`,`${u(X).first_name} ${u(X).last_name}`.trim())),s(()=>b(t,`initial-email`,u(X).email??``)),s(()=>b(t,`initial-phone`,u(X).phone??``)),v(t,1,`svelte-wxeez`),C(t,e=>g(Q,e),()=>u(Q)),i(e,t)},Ct=e=>{var t=we();b(t,`heading`,``),b(t,`email-optional`,!0),s(()=>b(t,`initial-date`,je()??``)),v(t,1,`svelte-wxeez`),C(t,e=>g(Q,e),()=>u(Q)),i(e,t)};return r(xt,e=>{u(X)?e(St):u(Xe)&&e(Ct,1)}),E(bt),E(ht),E($),C($,e=>g(Z,e),()=>u(Z)),E(it),C(it,e=>g(We,e),()=>u(We)),s(()=>{mt=v($,1,`lsbf-sheet svelte-wxeez`,null,mt,{"lsbf-sheet-visible":u(Ze)}),w($,`aria-label`,u(X)?`Change booking`:`New booking`),p(vt,u(X)?`Change booking`:`New booking`)}),c(`click`,$,e=>e.target===u(Z)&&et()),c(`click`,yt,et),i(l,it),te(rt)}y([`click`]),customElements.define(`live-spa-bookings-feed`,T(k,{heading:{attribute:`heading`,type:`String`},channelName:{attribute:`channel-name`,type:`String`},ablyAuthUrl:{attribute:`ably-auth-url`,type:`String`},maxItems:{attribute:`max-items`,type:`Number`},autoLoadMore:{attribute:`auto-load-more`,type:`Boolean`},emptyLabel:{attribute:`empty-label`,type:`String`},showEmail:{attribute:`show-email`,type:`Boolean`},currency:{attribute:`currency`,type:`String`},fetchTreatments:{type:`Object`},fetchTherapists:{type:`Object`},fetchAvailability:{type:`Object`},submitBooking:{type:`Object`},createBooking:{type:`Object`},openNewBooking:{type:`Number`},newBookingDate:{attribute:`new-booking-date`,type:`String`},widgetStrings:{type:`Object`},fetchBookings:{}},[],[],{mode:`open`}));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
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,S as m,T as h,U as g,V as _,W as v,Y as y,Z as b,a as x,b as S,d as C,et as ee,f as w,g as T,h as te,j as E,n as D,q as O,r as k,s as A,t as j,tt as M,v as ne,w as re,x as N,y as ie}from"./chunks/client-DNa0V682.js";import{t as P}from"./chunks/gsap-DWxn8li7.js";var ae=u(`<div class="msp-eyebrow svelte-5fgoxp"><span class="msp-eyebrow-line svelte-5fgoxp"></span> <span class="msp-eyebrow-text svelte-5fgoxp"> </span></div>`),oe=u(`<button type="button" role="tab"> </button>`),se=u(`<div class="msp-tabs svelte-5fgoxp" role="tablist" aria-labelledby="menu-heading"><span class="msp-tab-indicator svelte-5fgoxp" aria-hidden="true"></span> <!></div>`),ce=u(`<div class="msp-info-item svelte-5fgoxp"><span class="msp-info-label svelte-5fgoxp"> </span> <span class="msp-info-value svelte-5fgoxp"> </span></div>`),le=u(`<div class="msp-info svelte-5fgoxp"><!></div>`),ue=u(`<p class="ms-cat-aside svelte-5fgoxp"> </p>`),de=u(`<p class="ms-cat-note svelte-5fgoxp"> </p>`),fe=u(`<div class="ms-cat-intro svelte-5fgoxp"><!> <!></div>`),pe=u(`<span> </span>`),me=u(`<div class="ms-badges svelte-5fgoxp"></div>`),he=u(`<li class="svelte-5fgoxp"> </li>`),ge=u(`<ul class="ms-notes svelte-5fgoxp"></ul>`),_e=u(`<button type="button" class="ms-allergen svelte-5fgoxp"><img class="ms-allergen-icon svelte-5fgoxp" loading="lazy"/> <span class="ms-allergen-tip svelte-5fgoxp" role="tooltip"> </span></button>`),ve=u(`<div class="ms-allergens svelte-5fgoxp"></div>`),F=u(`<div class="msp-item svelte-5fgoxp" part="item"><div class="msp-item-name svelte-5fgoxp"> </div> <!> <div class="msp-item-desc svelte-5fgoxp"> </div> <!> <div class="msp-item-footer svelte-5fgoxp"><div class="msp-item-price svelte-5fgoxp" part="item-price"> </div> <!></div></div>`),ye=u(`<div><!> <!></div>`),be=u(`<p class="ms-footnote svelte-5fgoxp"> </p>`),xe=u(`<section class="msp-root svelte-5fgoxp"><div class="msp-header svelte-5fgoxp"><div class="svelte-5fgoxp"><!> <!> <!></div> <!></div> <!> <!> <!></section>`),Se=u(`<div class="ms-heading-circle svelte-5fgoxp"></div>`),Ce=u(`<img alt="" class="ms-flourish svelte-5fgoxp"/>`),we=u(`<!> <div class="ms-heading-rule svelte-5fgoxp"></div> <!>`,1),Te=u(`<img alt="" class="ms-flourish ms-flourish-tail svelte-5fgoxp"/>`),Ee=u(`<button type="button" class="ms-pdf-trigger svelte-5fgoxp"> <span aria-hidden="true" class="svelte-5fgoxp">→</span></button>`),De=u(`<button type="button"> </button>`),Oe=u(`<div class="ms-filters svelte-5fgoxp" part="filters"><button type="button"> </button> <!></div>`),ke=u(`<button type="button"> </button> <!>`,1),Ae=u(`<div part="filters"><!></div>`),je=u(`<!> <!>`,1),Me=u(`<div class="ms-info-item svelte-5fgoxp"><span class="ms-info-label svelte-5fgoxp"> </span> <span class="ms-info-value svelte-5fgoxp"> </span></div>`),Ne=u(`<div class="ms-info-bar svelte-5fgoxp"><!></div>`),Pe=u(`<div class="ms-item-group svelte-5fgoxp"> </div>`),Fe=u(`<div class="ms-item-meta svelte-5fgoxp"> </div>`),Ie=u(`<div class="ms-item-description svelte-5fgoxp"> </div>`),Le=u(`<div class="ms-item-price svelte-5fgoxp" part="item-price"> </div>`),Re=u(`<div class="ms-qty svelte-5fgoxp" part="qty"><button type="button" class="ms-qty-btn svelte-5fgoxp"><span class="svelte-5fgoxp">−</span></button> <span> </span> <button type="button" class="ms-qty-btn svelte-5fgoxp"><span class="svelte-5fgoxp">+</span></button></div>`),ze=u(`<div class="ms-item svelte-5fgoxp" part="item"><div class="ms-item-name svelte-5fgoxp"> </div> <!> <!> <!> <!> <!> <div class="ms-item-footer svelte-5fgoxp"><!> <!> <!></div></div>`),Be=u(`<div role="tabpanel"><!> <!></div>`),Ve=u(`<section><div class="ms-container svelte-5fgoxp"><div class="ms-header svelte-5fgoxp"><div class="ms-heading-col svelte-5fgoxp"><div class="ms-heading-block svelte-5fgoxp"><!> <!> <!> <!></div> <!> <!></div> <div class="ms-controls svelte-5fgoxp"><div class="ms-tabs svelte-5fgoxp" role="tablist" aria-labelledby="menu-heading"><!> <span class="ms-tab-indicator svelte-5fgoxp" aria-hidden="true"></span></div> <!> <!></div></div> <!> <!></div></section>`),He=u(`<dialog class="ms-pdf-dialog svelte-5fgoxp"><div class="ms-pdf-dialog-header svelte-5fgoxp"><span class="ms-pdf-dialog-title svelte-5fgoxp"> </span> <div class="ms-pdf-dialog-actions svelte-5fgoxp"><a target="_blank" rel="noreferrer noopener" class="ms-pdf-open-link svelte-5fgoxp"> </a> <button type="button" class="ms-pdf-close svelte-5fgoxp"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" class="svelte-5fgoxp"><path d="M6 6l12 12M18 6L6 18" stroke-linecap="round" class="svelte-5fgoxp"></path></svg></button></div></div> <iframe class="ms-pdf-frame svelte-5fgoxp"></iframe></dialog>`),Ue={hash:`svelte-5fgoxp`,code:`.ms-root.svelte-5fgoxp {display:block;\r
|
|
2
2
|
/* The panel/tab breakpoints below are about how much room this\r
|
|
3
3
|
component has been given, not how wide the window is -- a shadow-DOM\r
|
|
4
4
|
@media matches the viewport, so a host that drops this into a narrow\r
|
|
@@ -7,7 +7,7 @@ import{$ as e,A as t,B as n,C as r,D as i,E as a,H as o,I as s,J as c,K as l,L a
|
|
|
7
7
|
keeps those queries pointed here even if a host nests another\r
|
|
8
8
|
container around it. Inline-size containment also stops this\r
|
|
9
9
|
element handing its contents' min-content width up to the host,\r
|
|
10
|
-
which is what made it wider than its column in the first place. */container:ms / inline-size;font-family:inherit;color:var(--ms-text-color, #1a1a1a);background:var(--ms-bg, #faf6ec);padding:var(--ms-padding, 7rem 1.5rem 4rem);}.ms-container.svelte-5fgoxp {max-width:72rem;margin:0 auto;}.ms-header.svelte-5fgoxp {display:flex;flex-direction:column;gap:1.5rem;}.ms-heading-col.svelte-5fgoxp {display:flex;flex-direction:column;align-items:center;gap:1rem;}.ms-align-left.svelte-5fgoxp .ms-heading-col:where(.svelte-5fgoxp) {align-items:flex-start;}.ms-heading-block.svelte-5fgoxp {position:relative;text-align:center;line-height:1.6;}.ms-align-left.svelte-5fgoxp .ms-heading-block:where(.svelte-5fgoxp) {width:fit-content;text-align:left;}.ms-heading-circle.svelte-5fgoxp {position:absolute;top:50%;left:50%;width:16rem;height:16rem;transform:translate(-50%, -50%);border-radius:50%;pointer-events:none;}.ms-flourish.svelte-5fgoxp {position:relative;display:block;margin:0 auto 0.5rem;max-width:11rem;}.ms-flourish-tail.svelte-5fgoxp {max-width:7.5rem;}.ms-heading.svelte-5fgoxp {position:relative;margin:0;font-size:1rem;line-height:1.625;}.ms-heading
|
|
10
|
+
which is what made it wider than its column in the first place. */container:ms / inline-size;font-family:inherit;color:var(--ms-text-color, #1a1a1a);background:var(--ms-bg, #faf6ec);padding:var(--ms-padding, 7rem 1.5rem 4rem);}.ms-container.svelte-5fgoxp {max-width:72rem;margin:0 auto;}.ms-header.svelte-5fgoxp {display:flex;flex-direction:column;gap:1.5rem;}.ms-heading-col.svelte-5fgoxp {display:flex;flex-direction:column;align-items:center;gap:1rem;}.ms-align-left.svelte-5fgoxp .ms-heading-col:where(.svelte-5fgoxp) {align-items:flex-start;}.ms-heading-block.svelte-5fgoxp {position:relative;text-align:center;line-height:1.6;}.ms-align-left.svelte-5fgoxp .ms-heading-block:where(.svelte-5fgoxp) {width:fit-content;text-align:left;}.ms-heading-circle.svelte-5fgoxp {position:absolute;top:50%;left:50%;width:16rem;height:16rem;transform:translate(-50%, -50%);border-radius:50%;pointer-events:none;}.ms-flourish.svelte-5fgoxp {position:relative;display:block;margin:0 auto 0.5rem;max-width:11rem;}.ms-flourish-tail.svelte-5fgoxp {max-width:7.5rem;}.ms-heading.svelte-5fgoxp {position:relative;margin:0;font-size:1rem;line-height:1.625;}.ms-heading.svelte-5fgoxp .ms-heading-title {font-size:3rem;font-weight:600;line-height:1;color:var(--ms-heading-color, #1a1a1a);}\r
|
|
11
11
|
/* Matches .ms-heading-title above so a host that slots its own title\r
|
|
12
12
|
element (instead of the title attribute) gets the same base size/line-\r
|
|
13
13
|
height for free -- targeted by the slot attribute, not a class, so it\r
|
|
@@ -15,7 +15,7 @@ import{$ as e,A as t,B as n,C as r,D as i,E as a,H as o,I as s,J as c,K as l,L a
|
|
|
15
15
|
deliberately omitted (see SpaBookingWidget's heading slot precedent):\r
|
|
16
16
|
it's part of a host's own typographic identity, not a layout default,\r
|
|
17
17
|
and including it here would out-specificity a host class trying to\r
|
|
18
|
-
set its own weight. */::slotted([slot='heading-title']) {font-size:3rem;line-height:1;}.ms-heading-rule.svelte-5fgoxp {margin:0.25rem auto;height:1px;width:4rem;background:var(--ms-rule-color, rgba(196, 158, 90, 0.5));}.ms-align-left.svelte-5fgoxp .ms-heading-rule:where(.svelte-5fgoxp) {margin-left:0;}.ms-heading
|
|
18
|
+
set its own weight. */::slotted([slot='heading-title']) {font-size:3rem;line-height:1;}.ms-heading-rule.svelte-5fgoxp {margin:0.25rem auto;height:1px;width:4rem;background:var(--ms-rule-color, rgba(196, 158, 90, 0.5));}.ms-align-left.svelte-5fgoxp .ms-heading-rule:where(.svelte-5fgoxp) {margin-left:0;}.ms-heading.svelte-5fgoxp .ms-heading-eyebrow {font-size:0.875rem;font-weight:100;line-height:1.25rem;color:var(--ms-heading-color, #1a1a1a);}\r
|
|
19
19
|
/* Matches .ms-heading-eyebrow above so a host that slots its own eyebrow\r
|
|
20
20
|
element gets the same base size/line-height for free -- see the\r
|
|
21
21
|
heading-title ::slotted rule for why font-weight/color are left to\r
|
|
@@ -32,7 +32,11 @@ import{$ as e,A as t,B as n,C as r,D as i,E as a,H as o,I as s,J as c,K as l,L a
|
|
|
32
32
|
/* Hold each pill at its natural width so a narrow strip scrolls (see\r
|
|
33
33
|
.ms-tabs) instead of the default flex shrink squeezing the pills\r
|
|
34
34
|
until their labels wrap -- a two-line "Wine Specials" mid-row was\r
|
|
35
|
-
the visible symptom of that. */flex:0 0 auto;white-space:nowrap;cursor:pointer;border:none;border-radius:2px;background:transparent;color:inherit;padding:0.5rem 1.25rem;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;transition:color 150ms ease;}.ms-tab-active.svelte-5fgoxp {color:var(--ms-accent-text, #fff);}
|
|
35
|
+
the visible symptom of that. */flex:0 0 auto;white-space:nowrap;cursor:pointer;border:none;border-radius:2px;background:transparent;color:inherit;padding:0.5rem 1.25rem;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;transition:color 150ms ease;}.ms-tab-active.svelte-5fgoxp {color:var(--ms-accent-text, #fff);}\r
|
|
36
|
+
/* Before the sliding indicator has been measured and placed -- a\r
|
|
37
|
+
prerendered element, or JS off -- the active tab fills itself, so its\r
|
|
38
|
+
accent-text label is never left on the strip's own background. The\r
|
|
39
|
+
indicator covers the same box once placed, so nothing visibly changes. */.ms-tabs.svelte-5fgoxp:not([data-indicator-ready]) .ms-tab-active:where(.svelte-5fgoxp) {background:var(--ms-accent-bg, #1a1a1a);}.ms-tab-indicator.svelte-5fgoxp {position:absolute;top:4px;bottom:4px;z-index:0;border-radius:2px;background:var(--ms-accent-bg, #1a1a1a);transition:left 300ms cubic-bezier(0.4, 0, 0.2, 1), width 300ms cubic-bezier(0.4, 0, 0.2, 1);}.ms-info-bar.svelte-5fgoxp {display:grid;grid-template-columns:repeat(2, 1fr);gap:1px;overflow:hidden;border-radius:2px;border:1px solid var(--ms-border-color, rgba(0, 0, 0, 0.1));background:var(--ms-info-gap-bg, var(--ms-border-color, rgba(0, 0, 0, 0.1)));}.ms-info-item.svelte-5fgoxp {display:flex;flex-direction:column;gap:0.25rem;background:var(--ms-panel-bg, #fff);padding:1rem;}.ms-info-label.svelte-5fgoxp {font-size:0.75rem;font-weight:100;text-transform:uppercase;letter-spacing:0.05em;}.ms-info-value.svelte-5fgoxp {font-size:0.875rem;font-weight:600;}.ms-panel.svelte-5fgoxp {display:grid;grid-template-columns:1fr;gap:1px;margin-top:3rem;overflow:hidden;border-radius:2px;border:1px solid var(--ms-border-color, rgba(0, 0, 0, 0.1));background:var(--ms-panel-gap-bg, var(--ms-border-color, rgba(0, 0, 0, 0.1)));}\r
|
|
36
40
|
/* Same 640/1024 steps as before, but measured against .ms-root's own\r
|
|
37
41
|
content box instead of the viewport. An .ms-item needs ~330px before\r
|
|
38
42
|
its name/description/price/stepper row stops being cramped, so these\r
|
|
@@ -47,7 +51,9 @@ import{$ as e,A as t,B as n,C as r,D as i,E as a,H as o,I as s,J as c,K as l,L a
|
|
|
47
51
|
textColor a host already set, silently ending up low-contrast\r
|
|
48
52
|
against a dark theme.textColor/panelBg pairing no matter how\r
|
|
49
53
|
readable the item name right above it is. mutedTextColor lets a\r
|
|
50
|
-
host override this directly instead of fighting the multiply. */color:var(--ms-muted-text-color, color-mix(in srgb, var(--ms-text-color, #1a1a1a) 70%, transparent));}.ms-item-footer.svelte-5fgoxp {display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin-top:0.5rem;}.ms-item-price.svelte-5fgoxp {font-size:0.875rem;font-weight:600;color:var(--ms-price-color, inherit);}.ms-
|
|
54
|
+
host override this directly instead of fighting the multiply. */color:var(--ms-muted-text-color, color-mix(in srgb, var(--ms-text-color, #1a1a1a) 70%, transparent));}.ms-item-footer.svelte-5fgoxp {display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin-top:0.5rem;}.ms-item-price.svelte-5fgoxp {font-size:0.875rem;font-weight:600;color:var(--ms-price-color, inherit);}.ms-cat-intro.svelte-5fgoxp {grid-column:1 / -1;display:flex;flex-direction:column;gap:0.375rem;background:var(--ms-panel-bg, #fff);padding:1.25rem 1.75rem;}.msp-grid.svelte-5fgoxp .ms-cat-intro:where(.svelte-5fgoxp) {background:transparent;padding:0 0 1rem;}.ms-cat-aside.svelte-5fgoxp {margin:0;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;}.ms-cat-note.svelte-5fgoxp,\r
|
|
55
|
+
.ms-notes.svelte-5fgoxp,\r
|
|
56
|
+
.ms-footnote.svelte-5fgoxp {color:var(--ms-muted-text-color, color-mix(in srgb, var(--ms-text-color, #1a1a1a) 70%, transparent));}.ms-cat-note.svelte-5fgoxp {margin:0;max-width:64ch;line-height:1.6;}.ms-badges.svelte-5fgoxp {display:flex;flex-wrap:wrap;gap:0.375rem;}.ms-badge.svelte-5fgoxp {border:1px solid var(--ms-border-color, rgba(0, 0, 0, 0.15));border-radius:2px;padding:0.125rem 0.5rem;font-size:0.6875rem;font-weight:600;letter-spacing:0.04em;color:var(--ms-muted-text-color, color-mix(in srgb, var(--ms-text-color, #1a1a1a) 70%, transparent));}.ms-badge-accent.svelte-5fgoxp {border-color:var(--ms-rule-color, rgba(196, 158, 90, 0.5));color:var(--ms-price-color, inherit);}.ms-notes.svelte-5fgoxp {margin:0;padding:0;list-style:none;font-size:0.8125rem;line-height:1.5;}.ms-footnote.svelte-5fgoxp {margin:2rem 0 0;font-size:0.8125rem;line-height:1.5;}::slotted([slot='intro']) {margin:0;max-width:60ch;}.ms-qty.svelte-5fgoxp {display:flex;align-items:center;gap:0.5rem;margin-left:auto;}.ms-qty-btn.svelte-5fgoxp {position:relative;display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex-shrink:0;overflow:hidden;border-radius:50%;border:1.5px solid var(--ms-border-color, rgba(0, 0, 0, 0.18));background:none;font:inherit;font-size:0.875rem;color:inherit;cursor:pointer;transition:color 250ms ease, border-color 250ms ease;}\r
|
|
51
57
|
/* Expanding-circle fill, same trick as <proshop-catalogue>'s own qty\r
|
|
52
58
|
buttons (ProshopCatalogue.svelte) -- an instant background swap read as\r
|
|
53
59
|
flat next to that component's motion, so this matches it exactly\r
|
|
@@ -80,11 +86,11 @@ import{$ as e,A as t,B as n,C as r,D as i,E as a,H as o,I as s,J as c,K as l,L a
|
|
|
80
86
|
/* ── Panel variant ─────────────────────────────────────────────────────\r
|
|
81
87
|
Eyebrow-above-heading header row, tabs right, full-width boxed info\r
|
|
82
88
|
grid, bordered item-card grid. Light-surface design; host page supplies\r
|
|
83
|
-
the background and horizontal padding. */.msp-root.svelte-5fgoxp {display:block;border-top:1px solid rgba(26, 26, 24, 0.1);padding-bottom:4rem;font-family:'Inter', sans-serif;color:#1a1a18;}.msp-header.svelte-5fgoxp {display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;}.msp-eyebrow.svelte-5fgoxp {display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;}.msp-eyebrow-line.svelte-5fgoxp {width:2rem;height:1px;background:rgba(26, 26, 24, 0.15);}.msp-eyebrow-text.svelte-5fgoxp {font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:rgba(26, 26, 24, 0.65);}.msp-heading.svelte-5fgoxp {margin:0;font-family:'Syne', sans-serif;font-size:32px;font-weight:800;line-height:0.95;letter-spacing:-1px;color:#1a1a18;}.msp-tabs.svelte-5fgoxp {position:relative;display:flex;gap:0.25rem;background:rgba(26, 26, 24, 0.04);border:1px solid rgba(26, 26, 24, 0.08);padding:0.25rem;}.msp-tab.svelte-5fgoxp {position:relative;z-index:1;cursor:pointer;border:none;background:transparent;padding:0.5rem 1.25rem;font-family:'Inter', sans-serif;font-size:13px;font-weight:600;color:rgba(26, 26, 24, 0.7);transition:color 200ms ease;}.msp-tab-active.svelte-5fgoxp {color:#f5f2ec;}.msp-tab-indicator.svelte-5fgoxp {position:absolute;top:0.25rem;bottom:0.25rem;z-index:0;background:#1a1a18;pointer-events:none;transition:left 300ms cubic-bezier(0.645, 0.045, 0.355, 1),\r
|
|
89
|
+
the background and horizontal padding. */.msp-root.svelte-5fgoxp {display:block;border-top:1px solid rgba(26, 26, 24, 0.1);padding-bottom:4rem;font-family:'Inter', sans-serif;color:#1a1a18;}.msp-header.svelte-5fgoxp {display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem;}.msp-eyebrow.svelte-5fgoxp {display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;}.msp-eyebrow-line.svelte-5fgoxp {width:2rem;height:1px;background:rgba(26, 26, 24, 0.15);}.msp-eyebrow-text.svelte-5fgoxp {font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:2px;color:rgba(26, 26, 24, 0.65);}.msp-heading.svelte-5fgoxp {margin:0;font-family:'Syne', sans-serif;font-size:32px;font-weight:800;line-height:0.95;letter-spacing:-1px;color:#1a1a18;}.msp-tabs.svelte-5fgoxp {position:relative;display:flex;gap:0.25rem;background:rgba(26, 26, 24, 0.04);border:1px solid rgba(26, 26, 24, 0.08);padding:0.25rem;}.msp-tab.svelte-5fgoxp {position:relative;z-index:1;cursor:pointer;border:none;background:transparent;padding:0.5rem 1.25rem;font-family:'Inter', sans-serif;font-size:13px;font-weight:600;color:rgba(26, 26, 24, 0.7);transition:color 200ms ease;}.msp-tab-active.svelte-5fgoxp {color:#f5f2ec;}.msp-tabs.svelte-5fgoxp:not([data-indicator-ready]) .msp-tab-active:where(.svelte-5fgoxp) {background:#1a1a18;}.msp-tab-indicator.svelte-5fgoxp {position:absolute;top:0.25rem;bottom:0.25rem;z-index:0;background:#1a1a18;pointer-events:none;transition:left 300ms cubic-bezier(0.645, 0.045, 0.355, 1),\r
|
|
84
90
|
width 300ms cubic-bezier(0.645, 0.045, 0.355, 1);}.msp-info.svelte-5fgoxp {display:grid;grid-template-columns:repeat(2, 1fr);gap:2px;margin-bottom:3rem;}.msp-info-item.svelte-5fgoxp {display:flex;flex-direction:column;gap:0.25rem;padding:1rem;background:rgba(26, 26, 24, 0.02);border:1px solid rgba(26, 26, 24, 0.06);}.msp-info-label.svelte-5fgoxp {font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1.2px;color:rgba(26, 26, 24, 0.65);}.msp-info-value.svelte-5fgoxp {font-size:14px;font-weight:500;color:#1a1a18;}.msp-grid.svelte-5fgoxp {display:grid;grid-template-columns:1fr;gap:2px;}.msp-hidden.svelte-5fgoxp {display:none;}.msp-item.svelte-5fgoxp {display:flex;flex-direction:column;gap:0.5rem;padding:1.75rem;border:1px solid rgba(26, 26, 24, 0.08);background:transparent;transition:background-color 150ms ease;}.msp-item.svelte-5fgoxp:hover {background:rgba(26, 26, 24, 0.02);}.msp-item-name.svelte-5fgoxp {font-family:'Syne', sans-serif;font-size:18px;font-weight:800;letter-spacing:-0.3px;color:#1a1a18;}.msp-item-desc.svelte-5fgoxp {flex:1;font-size:14px;line-height:1.6;color:rgba(26, 26, 24, 0.72);}.msp-item-footer.svelte-5fgoxp {display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin-top:0.5rem;}.msp-item-price.svelte-5fgoxp {font-size:15px;font-weight:600;color:#1a1a18;}\r
|
|
85
91
|
/* Panel items are ink-on-light; the shared .ms-allergen-icon rule sizes the\r
|
|
86
92
|
glyphs at 1rem and fades them to 70% until hovered. */\r
|
|
87
93
|
@media (min-width: 640px) {.msp-grid.svelte-5fgoxp {grid-template-columns:repeat(2, 1fr);}\r
|
|
88
94
|
}\r
|
|
89
95
|
@media (min-width: 1024px) {.msp-root.svelte-5fgoxp {padding-bottom:150px;}.msp-header.svelte-5fgoxp {flex-direction:row;align-items:flex-end;justify-content:space-between;}.msp-heading.svelte-5fgoxp {font-size:44px;letter-spacing:-1.32px;}.msp-grid.svelte-5fgoxp {grid-template-columns:repeat(3, 1fr);}\r
|
|
90
|
-
}`};function I(t,i){y(i,!0),w(t,Ae);let k={textColor:`--ms-text-color`,headingColor:`--ms-heading-color`,accentBg:`--ms-accent-bg`,accentText:`--ms-accent-text`,priceColor:`--ms-price-color`,ruleColor:`--ms-rule-color`,panelBg:`--ms-panel-bg`,borderColor:`--ms-border-color`,groupBg:`--ms-group-bg`,panelGapBg:`--ms-panel-gap-bg`,infoGapBg:`--ms-info-gap-bg`,bg:`--ms-bg`,padding:`--ms-padding`,mutedTextColor:`--ms-muted-text-color`},I=E(i,`title`,7,`MENU`),L=E(i,`eyebrow`,7,``),R=E(i,`categories`,23,()=>[]),z=E(i,`info`,23,()=>[]),je=E(i,`allergens`,23,()=>[]),B=E(i,`pdfUrl`,7),V=E(i,`pdfLabel`,7,`View PDF Menu`),Me=E(i,`topFlourishSrc`,7),Ne=E(i,`tailFlourishSrc`,7),H=E(i,`headingCircleColor`,7),Pe=E(i,`headingAlign`,7,`center`),Fe=E(i,`layout`,7,`stacked`),U=E(i,`variant`,7,`default`),Ie=E(i,`disableHeadingMotion`,7,!1),Le=E(i,`itemColumns`,7,3),Re=E(i,`theme`,23,()=>({})),ze=E(i,`openInNewTabLabel`,7,`Open in New Tab`),Be=E(i,`closeAriaLabel`,7,`Close`),W=E(i,`groupFilter`,7,!1),Ve=E(i,`countryFilter`,7,!1),He=E(i,`groupFilterAllLabel`,7,`All`),Ue=E(i,`countryFilterAllLabel`,7,`All`),We=E(i,`cartEnabled`,7,!1),Ge=E(i,`initial`,23,()=>[]);function Ke(e,t){i.$$host?.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}let G=_(o({}));u(()=>{h(G,Object.fromEntries(Ge().filter(e=>e.quantity>0).map(e=>[String(e.id),e.quantity])),!0)});function qe(e,t){f(G)[e]=Math.max(0,Math.min(t,99))}function Je(e){e.animate([{transform:`scale(1)`,offset:0},{transform:`scale(0.82)`,offset:.15},{transform:`scale(1.1)`,offset:.55},{transform:`scale(1)`,offset:1}],{duration:420,easing:`ease`})}let Ye=_(null);function Xe(e){h(Ye,null),queueMicrotask(()=>h(Ye,e,!0))}let Ze=c(()=>R().flatMap(e=>e.items).filter(e=>e.id!=null&&e.priceValue!=null&&(f(G)[e.id]??0)>0).map(e=>({id:e.id,name:e.name,price:e.priceValue,quantity:f(G)[e.id]}))),Qe=c(()=>f(Ze).reduce((e,t)=>e+t.price*t.quantity,0));u(()=>{We()&&Ke(`cart-change`,{items:f(Ze),total:f(Qe)})}),u(()=>{let e=i.$$host;if(e)for(let t of Object.keys(k)){let n=Re()[t],r=k[t];n?e.style.setProperty(r,n):e.style.removeProperty(r)}});let K=_(0),q=_(o({})),J=c(()=>f(q)[f(K)]?.g??null),$e=c(()=>f(q)[f(K)]?.c??null);function et(e){h(q,{...f(q),[f(K)]:{g:e,c:null}},!0)}function tt(e){h(q,{...f(q),[f(K)]:{g:f(J),c:e}},!0)}function nt(e){let t=f(q)[e];return`${t?.g??``}|${t?.c??``}`}function rt(e){return[...new Set(e.filter(e=>!!e))]}function it(e){return rt(e.items.map(e=>e.group))}function at(e){return rt(e.items.filter(e=>!f(J)||e.group===f(J)).map(e=>e.country))}let ot=c(()=>R().map((e,t)=>{let n=f(q)[t]?.g??null,r=f(q)[t]?.c??null;return e.items.filter(e=>(!n||e.group===n)&&(!r||e.country===r))})),st=c(()=>f(ot).map(e=>{let t=[],n;return e.forEach((e,r)=>{e.group&&e.group!==n&&t.push({key:`g:${e.group}`,group:e.group}),n=e.group,t.push({key:`i:${r}:${e.name}`,item:e})}),t})),Y=_(!1),X=_(void 0);u(()=>{f(X)&&(f(Y)?f(X).showModal():f(X).close())});function ct(e){return je().find(t=>t.id===e)}let Z=_(0),Q=_(void 0),lt=_(o([])),ut=_(``);function dt(){let e=f(lt)[f(Z)];!e||!f(Q)||h(ut,`left: ${e.offsetLeft}px; width: ${e.offsetWidth}px;`)}u(()=>{f(Z),R(),dt()}),u(()=>{if(!(typeof window>`u`))return window.addEventListener(`resize`,dt),document.fonts?.ready.then(dt),()=>window.removeEventListener(`resize`,dt)}),u(()=>{if(typeof ResizeObserver>`u`||!f(Q))return;let e=new ResizeObserver(dt);return e.observe(f(Q)),()=>e.disconnect()});let $=_(o([])),ft=_(void 0),pt=_(void 0);r(()=>{if(typeof window>`u`||U()===`panel`||window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;f(ft)&&!Ie()&&H()&&P.from(f(ft).children,{opacity:0,x:-200,duration:.7,ease:`power2.out`,stagger:.22}),f(Q)&&P.from(f(Q),{opacity:0,y:-30,duration:.6,ease:`power2.out`,delay:.2}),f(pt)&&P.from(f(pt).children,{opacity:0,y:20,duration:.6,ease:`power2.out`,stagger:.1,delay:.4});let e=f($)[f(K)];e&&P.from(e.children,{opacity:0,y:24,duration:.5,ease:`power2.out`,stagger:.04,delay:.6})});function mt(e,t){t||P.fromTo(e.children,{opacity:0,y:16},{opacity:1,y:0,duration:.4,ease:`power2.out`,stagger:Math.min(.03,.45/Math.max(e.children.length,1))})}function ht(e){if(e===f(K))return;let t=U()===`panel`||typeof window<`u`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,n=f($)[f(K)],r=e;if(h(Z,r,!0),t||!n){h(K,r,!0);return}P.killTweensOf(n.children),P.to(n.children,{opacity:0,y:-12,duration:.2,ease:`power1.in`,stagger:Math.min(.015,.25/Math.max(n.children.length,1)),onComplete:()=>{h(K,r,!0);let e=f($)[r];e&&mt(e,!1)}})}var gt={get title(){return I()},set title(e=`MENU`){I(e),l()},get eyebrow(){return L()},set eyebrow(e=``){L(e),l()},get categories(){return R()},set categories(e=[]){R(e),l()},get info(){return z()},set info(e=[]){z(e),l()},get allergens(){return je()},set allergens(e=[]){je(e),l()},get pdfUrl(){return B()},set pdfUrl(e){B(e),l()},get pdfLabel(){return V()},set pdfLabel(e=`View PDF Menu`){V(e),l()},get topFlourishSrc(){return Me()},set topFlourishSrc(e){Me(e),l()},get tailFlourishSrc(){return Ne()},set tailFlourishSrc(e){Ne(e),l()},get headingCircleColor(){return H()},set headingCircleColor(e){H(e),l()},get headingAlign(){return Pe()},set headingAlign(e=`center`){Pe(e),l()},get layout(){return Fe()},set layout(e=`stacked`){Fe(e),l()},get variant(){return U()},set variant(e=`default`){U(e),l()},get disableHeadingMotion(){return Ie()},set disableHeadingMotion(e=!1){Ie(e),l()},get itemColumns(){return Le()},set itemColumns(e=3){Le(e),l()},get theme(){return Re()},set theme(e={}){Re(e),l()},get openInNewTabLabel(){return ze()},set openInNewTabLabel(e=`Open in New Tab`){ze(e),l()},get closeAriaLabel(){return Be()},set closeAriaLabel(e=`Close`){Be(e),l()},get groupFilter(){return W()},set groupFilter(e=!1){W(e),l()},get countryFilter(){return Ve()},set countryFilter(e=!1){Ve(e),l()},get groupFilterAllLabel(){return He()},set groupFilterAllLabel(e=`All`){He(e),l()},get countryFilterAllLabel(){return Ue()},set countryFilterAllLabel(e=`All`){Ue(e),l()},get cartEnabled(){return We()},set cartEnabled(e=!1){We(e),l()},get initial(){return Ge()},set initial(e=[]){Ge(e),l()}},_t=be(),vt=n(_t),yt=e=>{var t=ue(),r=N(t),o=N(r),l=N(o),u=e=>{var t=te(),n=g(N(t),2),r=N(n,!0);S(n),S(t),s(()=>j(r,L())),m(e,t)};p(l,e=>{L()&&e(u)});var d=g(l,2),_=N(d,!0);S(d),S(o);var v=g(o,2),y=e=>{var t=re(),n=N(t),r=g(n,2);M(r,17,R,b,(e,t,n)=>{var r=ne();let i;var a=N(r,!0);S(r),D(r,(e,t)=>f(lt)[t]=e,e=>f(lt)?.[e],()=>[n]),s(()=>{i=C(r,1,`msp-tab svelte-5fgoxp`,null,i,{"msp-tab-active":n===f(Z)}),O(r,`part`,n===f(Z)?`tab tab-active`:`tab`),j(a,f(t).label)}),T(`click`,r,()=>ht(n)),m(e,r)}),S(t),D(t,e=>h(Q,e),()=>f(Q)),s(()=>x(n,f(ut))),m(e,t)};p(v,e=>{R().length>1&&e(y)}),S(r);var w=g(r,2),E=e=>{var t=ae(),r=N(t);A(r,i,`info`,{},e=>{var t=a(),r=n(t);M(r,17,z,b,(e,t)=>{var n=ie(),r=N(n),i=N(r,!0);S(r);var a=g(r,2),o=N(a,!0);S(a),S(n),s(()=>{j(i,f(t).label),j(o,f(t).value)}),m(e,n)}),m(e,t)}),S(t),m(e,t)};p(w,e=>{z().length&&e(E)});var k=g(w,2);M(k,19,R,(e,t)=>`${t}:${nt(t)}`,(e,t,r)=>{var i=le();let o;M(i,21,()=>f(st)[f(r)],b,(e,t)=>{var r=a(),i=n(r),o=e=>{var r=ce(),i=N(r),o=N(i,!0);S(i);var l=g(i,2),u=N(l,!0);S(l);var d=g(l,2),h=N(d),_=N(h,!0);S(h);var v=g(h,2),y=e=>{var r=se();M(r,21,()=>f(t).item.allergens,b,(e,t)=>{let r=c(()=>ct(f(t)));var i=a(),o=n(i),l=e=>{var t=oe(),n=N(t),i=g(n,2),a=N(i,!0);S(i),S(t),s(()=>{O(n,`src`,f(r).icon),O(n,`alt`,f(r).label),j(a,f(r).label)}),m(e,t)};p(o,e=>{f(r)&&e(l)}),m(e,i)}),S(r),m(e,r)};p(v,e=>{f(t).item.allergens&&f(t).item.allergens.length&&e(y)}),S(d),S(r),s(()=>{j(o,f(t).item.name),j(u,f(t).item.description),j(_,f(t).item.price)}),m(e,r)};p(i,e=>{f(t).item&&e(o)}),m(e,r)}),S(i),D(i,(e,t)=>f($)[t]=e,e=>f($)?.[e],()=>[f(r)]),s(()=>o=C(i,1,`msp-grid svelte-5fgoxp`,null,o,{"msp-hidden":f(r)!==f(K)})),m(e,i)}),S(t),s(()=>j(_,I())),m(e,t)},bt=t=>{var r=ke();let o;var l=N(r),u=N(l),d=N(u),_=N(d),v=N(_),y=e=>{var t=de();s(()=>x(t,`background-color: ${H()}`)),m(e,t)};p(v,e=>{H()&&e(y)});var w=g(v,2),E=e=>{var t=fe();s(()=>O(t,`src`,Me())),m(e,t)};p(w,e=>{Me()&&e(E)});var k=g(w,2),P=N(k);A(P,i,`heading-title`,{},e=>{var t=pe(),n=N(t,!0);S(t),s(()=>j(n,I())),m(e,t)});var te=g(P,4);A(te,i,`eyebrow`,{},e=>{var t=me(),n=N(t,!0);S(t),s(()=>j(n,L())),m(e,t)}),S(k);var re=g(k,2),ie=e=>{var t=he();s(()=>O(t,`src`,Ne())),m(e,t)};p(re,e=>{Ne()&&e(ie)}),S(_);var ae=g(_,2),ce=t=>{var n=ge(),r=N(n);e(),S(n),s(()=>j(r,`${V()??``} `)),T(`click`,n,()=>h(Y,!0)),m(t,n)};p(ae,e=>{B()&&e(ce)}),S(d),D(d,e=>h(ft,e),()=>f(ft));var ue=g(d,2),F=N(ue),Ae=N(F);M(Ae,17,R,b,(e,t,n)=>{var r=ne();let i;var a=N(r,!0);S(r),D(r,(e,t)=>f(lt)[t]=e,e=>f(lt)?.[e],()=>[n]),s(()=>{i=C(r,1,`ms-tab svelte-5fgoxp`,null,i,{"ms-tab-active":n===f(Z)}),O(r,`part`,n===f(Z)?`tab tab-active`:`tab`),j(a,f(t).label)}),T(`click`,r,()=>ht(n)),m(e,r)});var je=g(Ae,2);S(F),D(F,e=>h(Q,e),()=>f(Q));var U=g(F,2),Ie=e=>{let t=c(()=>R()[f(K)]);var r=be(),i=n(r),a=e=>{var n=_e(),r=N(n);let i;var a=N(r,!0);S(r);var o=g(r,2);M(o,16,()=>it(f(t)),e=>e,(e,t)=>{var n=ne();let r;var i=N(n,!0);S(n),s(()=>{r=C(n,1,`ms-filter svelte-5fgoxp`,null,r,{"ms-filter-active":f(J)===t}),j(i,t)}),T(`click`,n,()=>et(t)),m(e,n)}),S(n),s(()=>{i=C(r,1,`ms-filter svelte-5fgoxp`,null,i,{"ms-filter-active":f(J)===null}),j(a,He())}),T(`click`,r,()=>et(null)),m(e,n)},o=c(()=>W()&&it(f(t)).length>1);p(i,e=>{f(o)&&e(a)});var l=g(i,2),u=e=>{var r=ye();let i;var a=N(r);ee(a,()=>f(J),e=>{var r=ve(),i=n(r);let a;var o=N(i,!0);S(i);var c=g(i,2);M(c,16,()=>at(f(t)),e=>e,(e,t)=>{var n=ne();let r;var i=N(n,!0);S(n),s(()=>{r=C(n,1,`ms-filter svelte-5fgoxp`,null,r,{"ms-filter-active":f($e)===t}),j(i,t)}),T(`click`,n,()=>tt(t)),m(e,n)}),s(()=>{a=C(i,1,`ms-filter svelte-5fgoxp`,null,a,{"ms-filter-active":f($e)===null}),j(o,Ue())}),T(`click`,i,()=>tt(null)),m(e,r)}),S(r),s(e=>i=C(r,1,`ms-filters ms-filters-secondary svelte-5fgoxp`,null,i,e),[()=>({"ms-filters-hidden":W()&&f(J)===null||at(f(t)).length<=1})]),m(e,r)};p(l,e=>{Ve()&&e(u)}),m(e,r)};p(U,e=>{(W()||Ve())&&R()[f(K)]&&e(Ie)});var Re=g(U,2),ze=e=>{var t=Se(),r=N(t);A(r,i,`info`,{},e=>{var t=a(),r=n(t);M(r,17,z,b,(e,t)=>{var n=xe(),r=N(n),i=N(r,!0);S(r);var a=g(r,2),o=N(a,!0);S(a),S(n),s(()=>{j(i,f(t).label),j(o,f(t).value)}),m(e,n)}),m(e,t)}),S(t),D(t,e=>h(pt,e),()=>f(pt)),m(e,t)};p(Re,e=>{z().length&&e(ze)}),S(ue),S(u);var Be=g(u,2);M(Be,19,R,(e,t)=>`${t}:${nt(t)}`,(e,t,r)=>{var i=le();let o;M(i,21,()=>f(st)[f(r)],b,(e,t)=>{var r=a(),i=n(r),o=e=>{var n=Ce(),r=N(n,!0);S(n),s(()=>j(r,f(t).group)),m(e,n)},l=e=>{var r=Oe(),i=N(r),o=N(i,!0);S(i);var l=g(i,2),u=e=>{var n=we(),r=N(n,!0);S(n),s(()=>j(r,f(t).item.tagline)),m(e,n)};p(l,e=>{f(t).item.tagline&&e(u)});var d=g(l,2),h=e=>{var n=we(),r=N(n,!0);S(n),s(()=>j(r,f(t).item.country)),m(e,n)};p(d,e=>{f(t).item.country&&e(h)});var _=g(d,2),v=e=>{var n=Te(),r=N(n,!0);S(n),s(()=>j(r,f(t).item.description)),m(e,n)};p(_,e=>{f(t).item.description&&e(v)});var y=g(_,2),x=N(y),w=e=>{var n=Ee(),r=N(n,!0);S(n),s(()=>j(r,f(t).item.price)),m(e,n)};p(x,e=>{f(t).item.price&&e(w)});var E=g(x,2),D=e=>{let n=c(()=>f(t).item.id),r=c(()=>f(t).item.name);var i=De(),a=N(i),o=g(a,2);let l;var u=N(o,!0);S(o);var d=g(o,2);S(i),s(()=>{O(a,`aria-label`,`Remove one ${f(r)}`),l=C(o,1,`ms-qty-val svelte-5fgoxp`,null,l,{"ms-qty-pop":f(Ye)===f(n)}),j(u,f(G)[f(n)]??0),O(d,`aria-label`,`Add one ${f(r)}`)}),T(`click`,a,e=>{Je(e.currentTarget),qe(f(n),(f(G)[f(n)]??0)-1)}),T(`click`,d,e=>{Je(e.currentTarget),qe(f(n),(f(G)[f(n)]??0)+1),Xe(f(n))}),m(e,i)};p(E,e=>{We()&&f(t).item.id!=null&&f(t).item.priceValue!=null&&e(D)});var k=g(E,2),A=e=>{var r=se();M(r,21,()=>f(t).item.allergens,b,(e,t)=>{let r=c(()=>ct(f(t)));var i=a(),o=n(i),l=e=>{var t=oe(),n=N(t),i=g(n,2),a=N(i,!0);S(i),S(t),s(()=>{O(n,`src`,f(r).icon),O(n,`alt`,f(r).label),j(a,f(r).label)}),m(e,t)};p(o,e=>{f(r)&&e(l)}),m(e,i)}),S(r),m(e,r)};p(k,e=>{f(t).item.allergens&&f(t).item.allergens.length&&e(A)}),S(y),S(r),s(()=>j(o,f(t).item.name)),m(e,r)};p(i,e=>{f(t).group?e(o):f(t).item&&e(l,1)}),m(e,r)}),S(i),D(i,(e,t)=>f($)[t]=e,e=>f($)?.[e],()=>[f(r)]),s(()=>o=C(i,1,`ms-panel svelte-5fgoxp`,null,o,{"ms-panel-hidden":f(r)!==f(K)})),m(e,i)}),S(l),S(r),s(()=>{o=C(r,1,`ms-root svelte-5fgoxp`,null,o,{"ms-align-left":Pe()===`left`,"ms-layout-split":Fe()===`split`,"ms-has-circle":!!H(),"ms-columns-2":Le()===2}),x(je,f(ut))}),m(t,r)};p(vt,e=>{U()===`panel`?e(yt):e(bt,-1)});var xt=g(vt,2),St=e=>{var t=F(),n=N(t),r=N(n),i=N(r,!0);S(r);var a=g(r,2),o=N(a),c=N(o,!0);S(o);var l=g(o,2);S(a),S(n);var u=g(n,2);S(t),D(t,e=>h(X,e),()=>f(X)),s(()=>{j(i,V()),O(o,`href`,B()),j(c,ze()),O(l,`aria-label`,Be()),O(u,`src`,B()),O(u,`title`,V())}),T(`click`,t,e=>{e.target===f(X)&&h(Y,!1)}),d(`close`,t,()=>h(Y,!1)),T(`click`,l,()=>h(Y,!1)),m(e,t)};return p(xt,e=>{B()&&e(St)}),m(t,_t),v(gt)}t([`click`]),customElements.define(`menu-section`,k(I,{title:{attribute:`title`,type:`String`},eyebrow:{attribute:`eyebrow`,type:`String`},categories:{attribute:`categories`,type:`Object`},info:{attribute:`info`,type:`Object`},allergens:{attribute:`allergens`,type:`Object`},pdfUrl:{attribute:`pdf-url`,type:`String`},pdfLabel:{attribute:`pdf-label`,type:`String`},topFlourishSrc:{attribute:`top-flourish-src`,type:`String`},tailFlourishSrc:{attribute:`tail-flourish-src`,type:`String`},headingCircleColor:{attribute:`heading-circle-color`,type:`String`},headingAlign:{attribute:`heading-align`,type:`String`},layout:{attribute:`layout`,type:`String`},variant:{attribute:`variant`,type:`String`},disableHeadingMotion:{attribute:`disable-heading-motion`,type:`Boolean`},itemColumns:{attribute:`item-columns`,type:`Number`},theme:{attribute:`theme`,type:`Object`},openInNewTabLabel:{attribute:`open-in-new-tab-label`,type:`String`},closeAriaLabel:{attribute:`close-aria-label`,type:`String`},groupFilter:{attribute:`group-filter`,type:`Boolean`},countryFilter:{attribute:`country-filter`,type:`Boolean`},groupFilterAllLabel:{attribute:`group-filter-all-label`,type:`String`},countryFilterAllLabel:{attribute:`country-filter-all-label`,type:`String`},cartEnabled:{attribute:`cart-enabled`,type:`Boolean`},initial:{attribute:`initial`,type:`Object`}},[`info`,`heading-title`,`eyebrow`],[],{mode:`open`}));
|
|
96
|
+
}`};function I(u,E){f(E,!0),te(u,Ue);let j={textColor:`--ms-text-color`,headingColor:`--ms-heading-color`,accentBg:`--ms-accent-bg`,accentText:`--ms-accent-text`,priceColor:`--ms-price-color`,ruleColor:`--ms-rule-color`,panelBg:`--ms-panel-bg`,borderColor:`--ms-border-color`,groupBg:`--ms-group-bg`,panelGapBg:`--ms-panel-gap-bg`,infoGapBg:`--ms-info-gap-bg`,bg:`--ms-bg`,padding:`--ms-padding`,mutedTextColor:`--ms-muted-text-color`},I=D(E,`title`,7,`MENU`),L=D(E,`eyebrow`,7,``),R=D(E,`categories`,23,()=>[]),z=D(E,`info`,23,()=>[]),We=D(E,`allergens`,23,()=>[]),B=D(E,`pdfUrl`,7),Ge=D(E,`pdfLabel`,7,`View PDF Menu`),Ke=D(E,`topFlourishSrc`,7),qe=D(E,`tailFlourishSrc`,7),V=D(E,`headingCircleColor`,7),Je=D(E,`headingAlign`,7,`center`),Ye=D(E,`layout`,7,`stacked`),H=D(E,`variant`,7,`default`),Xe=D(E,`disableHeadingMotion`,7,!1),Ze=D(E,`itemColumns`,7,3),Qe=D(E,`theme`,23,()=>({})),$e=D(E,`openInNewTabLabel`,7,`Open in New Tab`),et=D(E,`closeAriaLabel`,7,`Close`),tt=D(E,`groupFilter`,7,!1),nt=D(E,`countryFilter`,7,!1),rt=D(E,`groupFilterAllLabel`,7,`All`),it=D(E,`countryFilterAllLabel`,7,`All`),at=D(E,`cartEnabled`,7,!1),ot=D(E,`initial`,23,()=>[]),st=D(E,`prerendered`,7,!1),U=D(E,`footnote`,7,``),W=D(E,`headingLevel`,7),ct=y(()=>`h${W()===1||W()===2||W()===3?W():H()===`panel`?2:1}`);function lt(e){return e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function ut(e,t){E.$$host?.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}let G=a(g({}));p(()=>{v(G,Object.fromEntries(ot().filter(e=>e.quantity>0).map(e=>[String(e.id),e.quantity])),!0)});function dt(e,t){d(G)[e]=Math.max(0,Math.min(t,99))}function ft(e){e.animate([{transform:`scale(1)`,offset:0},{transform:`scale(0.82)`,offset:.15},{transform:`scale(1.1)`,offset:.55},{transform:`scale(1)`,offset:1}],{duration:420,easing:`ease`})}let pt=a(null);function mt(e){v(pt,null),queueMicrotask(()=>v(pt,e,!0))}let ht=y(()=>R().flatMap(e=>e.items).filter(e=>e.id!=null&&e.priceValue!=null&&(d(G)[e.id]??0)>0).map(e=>({id:e.id,name:e.name,price:e.priceValue,quantity:d(G)[e.id]}))),gt=y(()=>d(ht).reduce((e,t)=>e+t.price*t.quantity,0));p(()=>{at()&&ut(`cart-change`,{items:d(ht),total:d(gt)})}),p(()=>{let e=E.$$host;if(e)for(let t of Object.keys(j)){let n=Qe()[t],r=j[t];n?e.style.setProperty(r,n):e.style.removeProperty(r)}});let K=a(0),q=a(g({})),J=y(()=>d(q)[d(K)]?.g??null),_t=y(()=>d(q)[d(K)]?.c??null);function vt(e){v(q,{...d(q),[d(K)]:{g:e,c:null}},!0)}function yt(e){v(q,{...d(q),[d(K)]:{g:d(J),c:e}},!0)}function bt(e){let t=d(q)[e];return`${t?.g??``}|${t?.c??``}`}function xt(e){return[...new Set(e.filter(e=>!!e))]}function St(e){return xt(e.items.map(e=>e.group))}function Ct(e){return xt(e.items.filter(e=>!d(J)||e.group===d(J)).map(e=>e.country))}let wt=y(()=>R().map((e,t)=>{let n=d(q)[t]?.g??null,r=d(q)[t]?.c??null;return e.items.filter(e=>(!n||e.group===n)&&(!r||e.country===r))})),Tt=y(()=>d(wt).map(e=>{let t=[],n;return e.forEach((e,r)=>{e.group&&e.group!==n&&t.push({key:`g:${e.group}`,group:e.group}),n=e.group,t.push({key:`i:${r}:${e.name}`,item:e})}),t})),Et=a(!1),Y=a(void 0);p(()=>{d(Y)&&(d(Et)?d(Y).showModal():d(Y).close())});function Dt(e){return We().find(t=>t.id===e)}let X=a(0),Z=a(void 0),Q=a(g([])),Ot=a(``),kt=a(!1);function At(){let e=d(Q)[d(X)];!e||!d(Z)||(v(Ot,`left: ${e.offsetLeft}px; width: ${e.offsetWidth}px;`),v(kt,e.offsetWidth>0))}p(()=>{d(X),R(),At()}),p(()=>{if(!(typeof window>`u`))return window.addEventListener(`resize`,At),document.fonts?.ready.then(At),()=>window.removeEventListener(`resize`,At)}),p(()=>{if(typeof ResizeObserver>`u`||!d(Z))return;let e=new ResizeObserver(At);return e.observe(d(Z)),()=>e.disconnect()});let $=a(g([])),jt=a(void 0),Mt=a(void 0);re(()=>{if(typeof window>`u`||H()===`panel`||st()||window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;d(jt)&&!Xe()&&V()&&P.from(d(jt).children,{opacity:0,x:-200,duration:.7,ease:`power2.out`,stagger:.22}),d(Z)&&P.from(d(Z),{opacity:0,y:-30,duration:.6,ease:`power2.out`,delay:.2}),d(Mt)&&P.from(d(Mt).children,{opacity:0,y:20,duration:.6,ease:`power2.out`,stagger:.1,delay:.4});let e=d($)[d(K)];e&&P.from(e.children,{opacity:0,y:24,duration:.5,ease:`power2.out`,stagger:.04,delay:.6})});function Nt(e,t){t||P.fromTo(e.children,{opacity:0,y:16},{opacity:1,y:0,duration:.4,ease:`power2.out`,stagger:Math.min(.03,.45/Math.max(e.children.length,1))})}function Pt(e){if(e===d(K))return;let t=H()===`panel`||typeof window<`u`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,n=d($)[d(K)],r=e;if(v(X,r,!0),t||!n){v(K,r,!0);return}P.killTweensOf(n.children),P.to(n.children,{opacity:0,y:-12,duration:.2,ease:`power1.in`,stagger:Math.min(.015,.25/Math.max(n.children.length,1)),onComplete:()=>{v(K,r,!0);let e=d($)[r];e&&Nt(e,!1)}})}function Ft(e,t){let n=R().length-1,r=e.key===`ArrowRight`?t===n?0:t+1:e.key===`ArrowLeft`?t===0?n:t-1:e.key===`Home`?0:e.key===`End`?n:null;r!==null&&(e.preventDefault(),Pt(r),d(Q)[r]?.focus())}var It={get title(){return I()},set title(e=`MENU`){I(e),O()},get eyebrow(){return L()},set eyebrow(e=``){L(e),O()},get categories(){return R()},set categories(e=[]){R(e),O()},get info(){return z()},set info(e=[]){z(e),O()},get allergens(){return We()},set allergens(e=[]){We(e),O()},get pdfUrl(){return B()},set pdfUrl(e){B(e),O()},get pdfLabel(){return Ge()},set pdfLabel(e=`View PDF Menu`){Ge(e),O()},get topFlourishSrc(){return Ke()},set topFlourishSrc(e){Ke(e),O()},get tailFlourishSrc(){return qe()},set tailFlourishSrc(e){qe(e),O()},get headingCircleColor(){return V()},set headingCircleColor(e){V(e),O()},get headingAlign(){return Je()},set headingAlign(e=`center`){Je(e),O()},get layout(){return Ye()},set layout(e=`stacked`){Ye(e),O()},get variant(){return H()},set variant(e=`default`){H(e),O()},get disableHeadingMotion(){return Xe()},set disableHeadingMotion(e=!1){Xe(e),O()},get itemColumns(){return Ze()},set itemColumns(e=3){Ze(e),O()},get theme(){return Qe()},set theme(e={}){Qe(e),O()},get openInNewTabLabel(){return $e()},set openInNewTabLabel(e=`Open in New Tab`){$e(e),O()},get closeAriaLabel(){return et()},set closeAriaLabel(e=`Close`){et(e),O()},get groupFilter(){return tt()},set groupFilter(e=!1){tt(e),O()},get countryFilter(){return nt()},set countryFilter(e=!1){nt(e),O()},get groupFilterAllLabel(){return rt()},set groupFilterAllLabel(e=`All`){rt(e),O()},get countryFilterAllLabel(){return it()},set countryFilterAllLabel(e=`All`){it(e),O()},get cartEnabled(){return at()},set cartEnabled(e=!1){at(e),O()},get initial(){return ot()},set initial(e=[]){ot(e),O()},get prerendered(){return st()},set prerendered(e=!1){st(e),O()},get footnote(){return U()},set footnote(e=``){U(e),O()},get headingLevel(){return W()},set headingLevel(e){W(e),O()}},Lt=je(),Rt=_(Lt),zt=a=>{var l=xe(),u=t(l),f=t(u),p=t(f),m=e=>{var n=ae(),r=o(t(n),2),a=t(r,!0);M(r),M(n),s(()=>h(a,L())),i(e,n)};n(p,e=>{L()&&e(m)});var g=o(p,2);T(g,()=>d(ct),!1,(t,n)=>{x(t,()=>({class:`msp-heading`,id:`menu-heading`}),void 0,void 0,void 0,`svelte-5fgoxp`);var r=e();s(()=>h(r,I())),i(n,r)});var b=o(g,2);ie(b,()=>`<slot name="intro"></slot>`),M(f);var ee=o(f,2),te=e=>{var n=se(),r=t(n),a=o(r,2);S(a,17,R,N,(e,n,r)=>{var a=oe();let o;A(a,`id`,`tab-${r}`),A(a,`aria-controls`,`panel-${r}`);var l=t(a,!0);M(a),k(a,(e,t)=>d(Q)[t]=e,e=>d(Q)?.[e],()=>[r]),s(()=>{o=w(a,1,`msp-tab svelte-5fgoxp`,null,o,{"msp-tab-active":r===d(X)}),A(a,`part`,r===d(X)?`tab tab-active`:`tab`),A(a,`aria-selected`,r===d(X)),A(a,`tabindex`,r===d(X)?0:-1),h(l,d(n).label)}),c(`click`,a,()=>Pt(r)),c(`keydown`,a,e=>Ft(e,r)),i(e,a)}),M(n),k(n,e=>v(Z,e),()=>d(Z)),s(()=>{A(n,`data-indicator-ready`,d(kt)?``:void 0),C(r,d(Ot))}),i(e,n)};n(ee,e=>{R().length>1&&e(te)}),M(u);var D=o(u,2),O=e=>{var n=le(),a=t(n);ne(a,E,`info`,{},e=>{var n=r(),a=_(n);S(a,17,z,N,(e,n)=>{var r=ce(),a=t(r),c=t(a,!0);M(a);var l=o(a,2),u=t(l,!0);M(l),M(r),s(()=>{h(c,d(n).label),h(u,d(n).value)}),i(e,r)}),i(e,n)}),M(n),i(e,n)};n(D,e=>{z().length&&e(O)});var j=o(D,2);S(j,19,R,(e,t)=>`${t}:${bt(t)}`,(e,a,c)=>{var l=ye();let u;var f=t(l),p=e=>{var r=fe(),c=t(r),l=e=>{var n=ue(),r=t(n,!0);M(n),s(()=>h(r,d(a).aside)),i(e,n)};n(c,e=>{d(a).aside&&e(l)});var u=o(c,2),f=e=>{var n=de(),r=t(n,!0);M(n),s(()=>h(r,d(a).note)),i(e,n)};n(u,e=>{d(a).note&&e(f)}),M(r),i(e,r)};n(f,e=>{(d(a).aside||d(a).note)&&e(p)});var m=o(f,2);S(m,17,()=>d(Tt)[d(c)],N,(e,a)=>{var c=r(),l=_(c),u=e=>{var c=F(),l=t(c),u=t(l,!0);M(l);var f=o(l,2),p=e=>{var n=me();S(n,21,()=>d(a).item.badges,N,(e,n)=>{var r=pe();let a;var o=t(r,!0);M(r),s(()=>{a=w(r,1,`ms-badge svelte-5fgoxp`,null,a,{"ms-badge-accent":d(n).tone===`accent`}),h(o,d(n).label)}),i(e,r)}),M(n),i(e,n)};n(f,e=>{d(a).item.badges?.length&&e(p)});var m=o(f,2),g=t(m,!0);M(m);var v=o(m,2),b=e=>{var n=ge();S(n,21,()=>d(a).item.notes,N,(e,n)=>{var r=he(),a=t(r,!0);M(r),s(()=>h(a,d(n))),i(e,r)}),M(n),i(e,n)};n(v,e=>{d(a).item.notes?.length&&e(b)});var x=o(v,2),C=t(x),ee=t(C,!0);M(C);var T=o(C,2),te=e=>{var c=ve();S(c,21,()=>d(a).item.allergens,N,(e,a)=>{let c=y(()=>Dt(d(a)));var l=r(),u=_(l),f=e=>{var n=_e(),r=t(n),a=o(r,2),l=t(a,!0);M(a),M(n),s(()=>{A(r,`src`,d(c).icon),A(r,`alt`,d(c).label),h(l,d(c).label)}),i(e,n)};n(u,e=>{d(c)&&e(f)}),i(e,l)}),M(c),i(e,c)};n(T,e=>{d(a).item.allergens&&d(a).item.allergens.length&&e(te)}),M(x),M(c),s(()=>{h(u,d(a).item.name),h(g,d(a).item.description),h(ee,d(a).item.price)}),i(e,c)};n(l,e=>{d(a).item&&e(u)}),i(e,c)}),M(l),k(l,(e,t)=>d($)[t]=e,e=>d($)?.[e],()=>[d(c)]),s(()=>{u=w(l,1,`msp-grid svelte-5fgoxp`,null,u,{"msp-hidden":d(c)!==d(K)}),A(l,`role`,R().length>1?`tabpanel`:void 0),A(l,`id`,`panel-${d(c)}`),A(l,`aria-labelledby`,R().length>1?`tab-${d(c)}`:void 0)}),i(e,l)});var re=o(j,2),P=e=>{var n=be(),r=t(n,!0);M(n),s(()=>h(r,U())),i(e,n)};n(re,e=>{U()&&e(P)}),M(l),i(a,l)},Bt=e=>{var a=Ve();let l;var u=t(a),f=t(u),p=t(f),g=t(p),b=t(g),te=e=>{var t=Se();s(()=>C(t,`background-color: ${V()}`)),i(e,t)};n(b,e=>{V()&&e(te)});var D=o(b,2),O=e=>{var t=Ce();s(()=>A(t,`src`,Ke())),i(e,t)};n(D,e=>{Ke()&&e(O)});var j=o(D,2);T(j,()=>d(ct),!1,(e,t)=>{x(e,()=>({class:`ms-heading`,id:`menu-heading`}),void 0,void 0,void 0,`svelte-5fgoxp`);var n=we(),r=_(n);ie(r,()=>`<slot name="heading-title"><span class="ms-heading-title">${lt(I())}</span></slot>`);var a=o(r,4);ie(a,()=>`<slot name="eyebrow"><span class="ms-heading-eyebrow">${lt(L())}</span></slot>`),i(t,n)});var re=o(j,2),P=e=>{var t=Te();s(()=>A(t,`src`,qe())),i(e,t)};n(re,e=>{qe()&&e(P)}),M(g);var ae=o(g,2);ie(ae,()=>`<slot name="intro"></slot>`);var se=o(ae,2),ce=e=>{var n=Ee(),r=t(n);ee(),M(n),s(()=>h(r,`${Ge()??``} `)),c(`click`,n,()=>v(Et,!0)),i(e,n)};n(se,e=>{B()&&e(ce)}),M(p),k(p,e=>v(jt,e),()=>d(jt));var le=o(p,2),F=t(le),ye=t(F);S(ye,17,R,N,(e,n,r)=>{var a=oe();let o;A(a,`id`,`tab-${r}`),A(a,`aria-controls`,`panel-${r}`);var l=t(a,!0);M(a),k(a,(e,t)=>d(Q)[t]=e,e=>d(Q)?.[e],()=>[r]),s(()=>{o=w(a,1,`ms-tab svelte-5fgoxp`,null,o,{"ms-tab-active":r===d(X)}),A(a,`part`,r===d(X)?`tab tab-active`:`tab`),A(a,`aria-selected`,r===d(X)),A(a,`tabindex`,r===d(X)?0:-1),h(l,d(n).label)}),c(`click`,a,()=>Pt(r)),c(`keydown`,a,e=>Ft(e,r)),i(e,a)});var xe=o(ye,2);M(F),k(F,e=>v(Z,e),()=>d(Z));var He=o(F,2),Ue=e=>{let r=y(()=>R()[d(K)]);var a=je(),l=_(a),u=e=>{var n=Oe(),a=t(n);let l;var u=t(a,!0);M(a);var f=o(a,2);S(f,16,()=>St(d(r)),e=>e,(e,n)=>{var r=De();let a;var o=t(r,!0);M(r),s(()=>{a=w(r,1,`ms-filter svelte-5fgoxp`,null,a,{"ms-filter-active":d(J)===n}),h(o,n)}),c(`click`,r,()=>vt(n)),i(e,r)}),M(n),s(()=>{l=w(a,1,`ms-filter svelte-5fgoxp`,null,l,{"ms-filter-active":d(J)===null}),h(u,rt())}),c(`click`,a,()=>vt(null)),i(e,n)},f=y(()=>tt()&&St(d(r)).length>1);n(l,e=>{d(f)&&e(u)});var p=o(l,2),g=e=>{var n=Ae();let a;var l=t(n);m(l,()=>d(J),e=>{var n=ke(),a=_(n);let l;var u=t(a,!0);M(a);var f=o(a,2);S(f,16,()=>Ct(d(r)),e=>e,(e,n)=>{var r=De();let a;var o=t(r,!0);M(r),s(()=>{a=w(r,1,`ms-filter svelte-5fgoxp`,null,a,{"ms-filter-active":d(_t)===n}),h(o,n)}),c(`click`,r,()=>yt(n)),i(e,r)}),s(()=>{l=w(a,1,`ms-filter svelte-5fgoxp`,null,l,{"ms-filter-active":d(_t)===null}),h(u,it())}),c(`click`,a,()=>yt(null)),i(e,n)}),M(n),s(e=>a=w(n,1,`ms-filters ms-filters-secondary svelte-5fgoxp`,null,a,e),[()=>({"ms-filters-hidden":tt()&&d(J)===null||Ct(d(r)).length<=1})]),i(e,n)};n(p,e=>{nt()&&e(g)}),i(e,a)};n(He,e=>{(tt()||nt())&&R()[d(K)]&&e(Ue)});var We=o(He,2),H=e=>{var n=Ne(),a=t(n);ne(a,E,`info`,{},e=>{var n=r(),a=_(n);S(a,17,z,N,(e,n)=>{var r=Me(),a=t(r),c=t(a,!0);M(a);var l=o(a,2),u=t(l,!0);M(l),M(r),s(()=>{h(c,d(n).label),h(u,d(n).value)}),i(e,r)}),i(e,n)}),M(n),k(n,e=>v(Mt,e),()=>d(Mt)),i(e,n)};n(We,e=>{z().length&&e(H)}),M(le),M(f);var Xe=o(f,2);S(Xe,19,R,(e,t)=>`${t}:${bt(t)}`,(e,a,l)=>{var u=Be();let f;var p=t(u),m=e=>{var r=fe(),c=t(r),l=e=>{var n=ue(),r=t(n,!0);M(n),s(()=>h(r,d(a).aside)),i(e,n)};n(c,e=>{d(a).aside&&e(l)});var u=o(c,2),f=e=>{var n=de(),r=t(n,!0);M(n),s(()=>h(r,d(a).note)),i(e,n)};n(u,e=>{d(a).note&&e(f)}),M(r),i(e,r)};n(p,e=>{(d(a).aside||d(a).note)&&e(m)});var g=o(p,2);S(g,17,()=>d(Tt)[d(l)],N,(e,a)=>{var l=r(),u=_(l),f=e=>{var n=Pe(),r=t(n,!0);M(n),s(()=>h(r,d(a).group)),i(e,n)},p=e=>{var l=ze(),u=t(l),f=t(u,!0);M(u);var p=o(u,2),m=e=>{var n=me();S(n,21,()=>d(a).item.badges,N,(e,n)=>{var r=pe();let a;var o=t(r,!0);M(r),s(()=>{a=w(r,1,`ms-badge svelte-5fgoxp`,null,a,{"ms-badge-accent":d(n).tone===`accent`}),h(o,d(n).label)}),i(e,r)}),M(n),i(e,n)};n(p,e=>{d(a).item.badges?.length&&e(m)});var g=o(p,2),v=e=>{var n=Fe(),r=t(n,!0);M(n),s(()=>h(r,d(a).item.tagline)),i(e,n)};n(g,e=>{d(a).item.tagline&&e(v)});var b=o(g,2),x=e=>{var n=Fe(),r=t(n,!0);M(n),s(()=>h(r,d(a).item.country)),i(e,n)};n(b,e=>{d(a).item.country&&e(x)});var C=o(b,2),ee=e=>{var n=Ie(),r=t(n,!0);M(n),s(()=>h(r,d(a).item.description)),i(e,n)};n(C,e=>{d(a).item.description&&e(ee)});var T=o(C,2),te=e=>{var n=ge();S(n,21,()=>d(a).item.notes,N,(e,n)=>{var r=he(),a=t(r,!0);M(r),s(()=>h(a,d(n))),i(e,r)}),M(n),i(e,n)};n(T,e=>{d(a).item.notes?.length&&e(te)});var E=o(T,2),D=t(E),O=e=>{var n=Le(),r=t(n,!0);M(n),s(()=>h(r,d(a).item.price)),i(e,n)};n(D,e=>{d(a).item.price&&e(O)});var k=o(D,2),j=e=>{let n=y(()=>d(a).item.id),r=y(()=>d(a).item.name);var l=Re(),u=t(l),f=o(u,2);let p;var m=t(f,!0);M(f);var g=o(f,2);M(l),s(()=>{A(u,`aria-label`,`Remove one ${d(r)}`),p=w(f,1,`ms-qty-val svelte-5fgoxp`,null,p,{"ms-qty-pop":d(pt)===d(n)}),h(m,d(G)[d(n)]??0),A(g,`aria-label`,`Add one ${d(r)}`)}),c(`click`,u,e=>{ft(e.currentTarget),dt(d(n),(d(G)[d(n)]??0)-1)}),c(`click`,g,e=>{ft(e.currentTarget),dt(d(n),(d(G)[d(n)]??0)+1),mt(d(n))}),i(e,l)};n(k,e=>{at()&&d(a).item.id!=null&&d(a).item.priceValue!=null&&e(j)});var ne=o(k,2),re=e=>{var c=ve();S(c,21,()=>d(a).item.allergens,N,(e,a)=>{let c=y(()=>Dt(d(a)));var l=r(),u=_(l),f=e=>{var n=_e(),r=t(n),a=o(r,2),l=t(a,!0);M(a),M(n),s(()=>{A(r,`src`,d(c).icon),A(r,`alt`,d(c).label),h(l,d(c).label)}),i(e,n)};n(u,e=>{d(c)&&e(f)}),i(e,l)}),M(c),i(e,c)};n(ne,e=>{d(a).item.allergens&&d(a).item.allergens.length&&e(re)}),M(E),M(l),s(()=>h(f,d(a).item.name)),i(e,l)};n(u,e=>{d(a).group?e(f):d(a).item&&e(p,1)}),i(e,l)}),M(u),k(u,(e,t)=>d($)[t]=e,e=>d($)?.[e],()=>[d(l)]),s(()=>{f=w(u,1,`ms-panel svelte-5fgoxp`,null,f,{"ms-panel-hidden":d(l)!==d(K)}),A(u,`id`,`panel-${d(l)}`),A(u,`aria-labelledby`,`tab-${d(l)}`)}),i(e,u)});var Qe=o(Xe,2),$e=e=>{var n=be(),r=t(n,!0);M(n),s(()=>h(r,U())),i(e,n)};n(Qe,e=>{U()&&e($e)}),M(u),M(a),s(()=>{l=w(a,1,`ms-root svelte-5fgoxp`,null,l,{"ms-align-left":Je()===`left`,"ms-layout-split":Ye()===`split`,"ms-has-circle":!!V(),"ms-columns-2":Ze()===2}),A(F,`data-indicator-ready`,d(kt)?``:void 0),C(xe,d(Ot))}),i(e,a)};n(Rt,e=>{H()===`panel`?e(zt):e(Bt,-1)});var Vt=o(Rt,2),Ht=e=>{var n=He(),r=t(n),a=t(r),u=t(a,!0);M(a);var f=o(a,2),p=t(f),m=t(p,!0);M(p);var g=o(p,2);M(f),M(r);var _=o(r,2);M(n),k(n,e=>v(Y,e),()=>d(Y)),s(()=>{h(u,Ge()),A(p,`href`,B()),h(m,$e()),A(g,`aria-label`,et()),A(_,`src`,B()),A(_,`title`,Ge())}),c(`click`,n,e=>{e.target===d(Y)&&v(Et,!1)}),l(`close`,n,()=>v(Et,!1)),c(`click`,g,()=>v(Et,!1)),i(e,n)};return n(Vt,e=>{B()&&e(Ht)}),i(u,Lt),b(It)}E([`click`,`keydown`]),customElements.define(`menu-section`,j(I,{title:{attribute:`title`,type:`String`},eyebrow:{attribute:`eyebrow`,type:`String`},categories:{attribute:`categories`,type:`Object`},info:{attribute:`info`,type:`Object`},allergens:{attribute:`allergens`,type:`Object`},pdfUrl:{attribute:`pdf-url`,type:`String`},pdfLabel:{attribute:`pdf-label`,type:`String`},topFlourishSrc:{attribute:`top-flourish-src`,type:`String`},tailFlourishSrc:{attribute:`tail-flourish-src`,type:`String`},headingCircleColor:{attribute:`heading-circle-color`,type:`String`},headingAlign:{attribute:`heading-align`,type:`String`},layout:{attribute:`layout`,type:`String`},variant:{attribute:`variant`,type:`String`},disableHeadingMotion:{attribute:`disable-heading-motion`,type:`Boolean`},itemColumns:{attribute:`item-columns`,type:`Number`},theme:{attribute:`theme`,type:`Object`},openInNewTabLabel:{attribute:`open-in-new-tab-label`,type:`String`},closeAriaLabel:{attribute:`close-aria-label`,type:`String`},groupFilter:{attribute:`group-filter`,type:`Boolean`},countryFilter:{attribute:`country-filter`,type:`Boolean`},groupFilterAllLabel:{attribute:`group-filter-all-label`,type:`String`},countryFilterAllLabel:{attribute:`country-filter-all-label`,type:`String`},cartEnabled:{attribute:`cart-enabled`,type:`Boolean`},initial:{attribute:`initial`,type:`Object`},prerendered:{attribute:`prerendered`,type:`Boolean`},footnote:{attribute:`footnote`,type:`String`},headingLevel:{attribute:`heading-level`,type:`Number`}},[`info`],[],{mode:`open`}));
|