@getmicdrop/venue-calendar 4.0.91 → 4.0.93

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.
Files changed (103) hide show
  1. package/dist/CartView-R5Z2q4Hy.js +2380 -0
  2. package/dist/CartView-R5Z2q4Hy.js.map +1 -0
  3. package/dist/Checkout-BUwdMMjA.js +1040 -0
  4. package/dist/Checkout-BUwdMMjA.js.map +1 -0
  5. package/dist/Checkout-avoTg_Zw.js +1742 -0
  6. package/dist/Checkout-avoTg_Zw.js.map +1 -0
  7. package/dist/{CheckoutTimer-seT9skG1.js → CheckoutTimer-C_ax1Uo2.js} +35 -35
  8. package/dist/CheckoutTimer-C_ax1Uo2.js.map +1 -0
  9. package/dist/ClockIcon-C5muTIYL.js +32 -0
  10. package/dist/ClockIcon-C5muTIYL.js.map +1 -0
  11. package/dist/CollectionView-3MHrh5Zm.js +299 -0
  12. package/dist/CollectionView-3MHrh5Zm.js.map +1 -0
  13. package/dist/{Event-wKLQzQod.js → Event-vR1aE543.js} +1593 -1509
  14. package/dist/Event-vR1aE543.js.map +1 -0
  15. package/dist/EventPage-Bhg-8-5x.js +566 -0
  16. package/dist/EventPage-Bhg-8-5x.js.map +1 -0
  17. package/dist/{Heading-C1g2tMwa.js → Heading-ZcvybCi8.js} +34 -34
  18. package/dist/Heading-ZcvybCi8.js.map +1 -0
  19. package/dist/ScarcityBadge-CjTFAhat.js +167 -0
  20. package/dist/ScarcityBadge-CjTFAhat.js.map +1 -0
  21. package/dist/{SeriesPage-DBtQarUf.js → SeriesPage-DTEY83yR.js} +7 -7
  22. package/dist/{SeriesPage-DBtQarUf.js.map → SeriesPage-DTEY83yR.js.map} +1 -1
  23. package/dist/{Spinner-Cg931di6.js → Spinner--YBVljiP.js} +10 -10
  24. package/dist/Spinner--YBVljiP.js.map +1 -0
  25. package/dist/Success-ClCvTxTH.js +848 -0
  26. package/dist/Success-ClCvTxTH.js.map +1 -0
  27. package/dist/Text-SlV9H-GU.js +171 -0
  28. package/dist/Text-SlV9H-GU.js.map +1 -0
  29. package/dist/VenueCalendar-Bth_j-Wp.js +15657 -0
  30. package/dist/VenueCalendar-Bth_j-Wp.js.map +1 -0
  31. package/dist/{ViewTicketsEmbed-C53Noeou.js → ViewTicketsEmbed-D7g7RYZI.js} +391 -380
  32. package/dist/{ViewTicketsEmbed-C53Noeou.js.map → ViewTicketsEmbed-D7g7RYZI.js.map} +1 -1
  33. package/dist/api/{events.d.ts → api/events.d.ts} +9 -10
  34. package/dist/api/{index.d.ts → api/index.d.ts} +2 -1
  35. package/dist/api/api/result.d.ts +48 -0
  36. package/dist/api/{transformers → api/transformers}/event.d.ts +19 -10
  37. package/dist/api/api.cjs +1 -1
  38. package/dist/api/api.cjs.map +1 -1
  39. package/dist/api/api.mjs +688 -594
  40. package/dist/api/api.mjs.map +1 -1
  41. package/dist/api/types.d.ts +447 -438
  42. package/dist/{data-toggle-store.svelte-LbtOs016.js → data-toggle-store.svelte-CFAVM8I0.js} +2 -2
  43. package/dist/{data-toggle-store.svelte-LbtOs016.js.map → data-toggle-store.svelte-CFAVM8I0.js.map} +1 -1
  44. package/dist/labels-CnpAWtkz.js +640 -0
  45. package/dist/labels-CnpAWtkz.js.map +1 -0
  46. package/dist/{modalManager.svelte-DH07yk5J.js → modalManager.svelte-T2RGHhZH.js} +2 -2
  47. package/dist/{modalManager.svelte-DH07yk5J.js.map → modalManager.svelte-T2RGHhZH.js.map} +1 -1
  48. package/dist/seo/seo.cjs +1 -1
  49. package/dist/seo/seo.cjs.map +1 -1
  50. package/dist/seo/seo.mjs +78 -74
  51. package/dist/seo/seo.mjs.map +1 -1
  52. package/dist/transform-C3TwZSH6.js +349 -0
  53. package/dist/transform-C3TwZSH6.js.map +1 -0
  54. package/dist/types/index.d.ts +22 -10
  55. package/dist/venue-calendar.css +1 -1
  56. package/dist/venue-calendar.es.js +16 -16
  57. package/dist/venue-calendar.iife.js +46 -32
  58. package/dist/venue-calendar.iife.js.map +1 -1
  59. package/dist/venue-calendar.umd.js +45 -31
  60. package/dist/venue-calendar.umd.js.map +1 -1
  61. package/package.json +7 -5
  62. package/dist/CartView-gasx8QHt.js +0 -2366
  63. package/dist/CartView-gasx8QHt.js.map +0 -1
  64. package/dist/Checkout-Bm5un0yn.js +0 -1763
  65. package/dist/Checkout-Bm5un0yn.js.map +0 -1
  66. package/dist/Checkout-DU8QW51B.js +0 -916
  67. package/dist/Checkout-DU8QW51B.js.map +0 -1
  68. package/dist/CheckoutTimer-seT9skG1.js.map +0 -1
  69. package/dist/CollectionView-Dy1PWTZg.js +0 -299
  70. package/dist/CollectionView-Dy1PWTZg.js.map +0 -1
  71. package/dist/Event-wKLQzQod.js.map +0 -1
  72. package/dist/EventPage-GprihVCY.js +0 -532
  73. package/dist/EventPage-GprihVCY.js.map +0 -1
  74. package/dist/Heading-C1g2tMwa.js.map +0 -1
  75. package/dist/ScarcityBadge-BCJIS4dt.js +0 -90
  76. package/dist/ScarcityBadge-BCJIS4dt.js.map +0 -1
  77. package/dist/Spinner-Cg931di6.js.map +0 -1
  78. package/dist/Success-B-X7iUhg.js +0 -729
  79. package/dist/Success-B-X7iUhg.js.map +0 -1
  80. package/dist/Text-DkbT1W8b.js +0 -167
  81. package/dist/Text-DkbT1W8b.js.map +0 -1
  82. package/dist/VenueCalendar-DpXlpxlW.js +0 -18307
  83. package/dist/VenueCalendar-DpXlpxlW.js.map +0 -1
  84. package/dist/labels-BWRJZD5n.js +0 -965
  85. package/dist/labels-BWRJZD5n.js.map +0 -1
  86. package/dist/transform-0JpmvWCo.js +0 -274
  87. package/dist/transform-0JpmvWCo.js.map +0 -1
  88. /package/dist/api/{client.d.ts → api/client.d.ts} +0 -0
  89. /package/dist/api/{cta.d.ts → api/cta.d.ts} +0 -0
  90. /package/dist/api/{gift-cards.d.ts → api/gift-cards.d.ts} +0 -0
  91. /package/dist/api/{orders.d.ts → api/orders.d.ts} +0 -0
  92. /package/dist/api/{promo.d.ts → api/promo.d.ts} +0 -0
  93. /package/dist/api/{transformers → api/transformers}/address.d.ts +0 -0
  94. /package/dist/api/{transformers → api/transformers}/cart.d.ts +0 -0
  95. /package/dist/api/{transformers → api/transformers}/collection.d.ts +0 -0
  96. /package/dist/api/{transformers → api/transformers}/giftCard.d.ts +0 -0
  97. /package/dist/api/{transformers → api/transformers}/index.d.ts +0 -0
  98. /package/dist/api/{transformers → api/transformers}/order.d.ts +0 -0
  99. /package/dist/api/{transformers → api/transformers}/performer.d.ts +0 -0
  100. /package/dist/api/{transformers → api/transformers}/series.d.ts +0 -0
  101. /package/dist/api/{transformers → api/transformers}/venue.d.ts +0 -0
  102. /package/dist/api/{venues.d.ts → api/venues.d.ts} +0 -0
  103. /package/dist/api/{waitlist.d.ts → api/waitlist.d.ts} +0 -0
@@ -0,0 +1,2380 @@
1
+ import "svelte/internal/disclose-version";
2
+ import * as e from "svelte/internal/client";
3
+ import { onMount as $t, onDestroy as na } from "svelte";
4
+ import { C as la, S as oa, A as da, a as ca, g as jt } from "./ScarcityBadge-CjTFAhat.js";
5
+ import { u as va, J as tt, a2 as Lt, a3 as Bt, t as we, a4 as ua, q as ee, a5 as pa, a6 as Et, a7 as fa, x as Je, a8 as ea, a9 as ga, k as ta, aa as et, v as _a, ab as gt, a1 as at, I as ma, S as ha, ac as ba, ad as xa, Q as ya, ae as ka, af as wa, a0 as Ta, y as zt, f as Ca, ag as Ot, A as Da, e as Ia, ah as Sa, F as Aa, l as Qt, ai as Pa, m as qt, n as Nt, o as Rt } from "./VenueCalendar-Bth_j-Wp.js";
6
+ import { M as Ft, C as Ea } from "./CheckoutTimer-C_ax1Uo2.js";
7
+ import { I as Oa } from "./Text-SlV9H-GU.js";
8
+ import { c as Mt } from "./modalManager.svelte-T2RGHhZH.js";
9
+ import { cubicOut as Gt } from "svelte/easing";
10
+ import { S as Ct } from "./Spinner--YBVljiP.js";
11
+ var Fa = e.from_svg('<svg aria-hidden="true" fill="none" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path></svg>');
12
+ function Ma(H, t) {
13
+ let L = e.prop(t, "size", 3, "24"), x = e.prop(t, "color", 3, "currentColor"), p = e.prop(t, "class", 3, "");
14
+ var s = Fa();
15
+ e.template_effect(() => {
16
+ e.set_class(s, 0, e.clsx(p())), e.set_attribute(s, "width", L()), e.set_attribute(s, "height", L()), e.set_attribute(s, "stroke", x());
17
+ }), e.append(H, s);
18
+ }
19
+ var ja = e.from_svg('<path d="M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm-4,48a12,12,0,1,1-12,12A12,12,0,0,1,124,72Zm12,112a16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40a8,8,0,0,1,0,16Z"></path>'), La = e.from_svg('<circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></circle><path d="M120,120a8,8,0,0,1,8,8v40a8,8,0,0,0,8,8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></path><circle cx="124" cy="84" r="12"></circle>', 1), Ba = e.from_svg('<svg aria-hidden="true" viewBox="0 0 256 256" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><!></svg>');
20
+ function za(H, t) {
21
+ e.push(t, !0);
22
+ let L = e.prop(t, "size", 3, "24"), x = e.prop(t, "color", 3, "currentColor"), p = e.prop(t, "class", 3, "");
23
+ const s = va();
24
+ let A = e.derived(() => t.weight ?? s?.weight ?? "regular");
25
+ var a = Ba();
26
+ let q;
27
+ var te = e.child(a);
28
+ {
29
+ var W = (Z) => {
30
+ var j = ja();
31
+ e.append(Z, j);
32
+ }, ye = (Z) => {
33
+ var j = La();
34
+ e.next(2), e.append(Z, j);
35
+ };
36
+ e.if(te, (Z) => {
37
+ e.get(A) === "fill" ? Z(W) : Z(ye, -1);
38
+ });
39
+ }
40
+ e.reset(a), e.template_effect(() => {
41
+ e.set_class(a, 0, e.clsx(p())), e.set_attribute(a, "width", L()), e.set_attribute(a, "height", L()), q = e.set_style(a, "", q, { color: x() });
42
+ }), e.append(H, a), e.pop();
43
+ }
44
+ var Qa = e.from_html('<div class="py-8 text-center"><p> </p></div>'), qa = e.from_html('<div class="flex justify-between py-3 border-b border-border/50"><div><p> </p> <p><!></p></div> <div><!></div></div>'), Na = e.from_html('<div class="flex justify-between tone-secondary"><span> </span><span> </span></div>'), Dt = e.from_html('<div class="flex justify-between text-accent-success"><span> </span><span> </span></div>'), Ht = e.from_html('<span class="inline-flex items-center gap-1"><!> Calculating...</span>'), Vt = e.from_html('<div class="flex justify-between tone-muted type-caption"><span> </span> <span> </span></div>'), Ut = e.from_html('<div class="flex justify-between text-accent-success"><span> </span> <span> </span></div> <!>', 1), Ra = e.from_html('<div class="flex justify-between py-4 type-subheading border-t border-border"><span class="font-semibold tone-primary"> </span> <span class="font-bold text-accent-success">$0.00</span></div> <p class="type-caption tone-muted text-center -mt-2 mb-2"> </p>', 1), Wt = e.from_html("<div><span> </span><span> </span></div>"), Ga = e.from_html('<!> <div><!> <!> <div class="flex justify-between tone-secondary"><span> </span><span> </span></div> <div class="flex justify-between tone-secondary"><span> </span><span> </span></div> <div class="flex justify-between tone-secondary"><span> </span> <span><!></span></div> <!></div> <!>', 1), Ha = e.from_html('<p> <a href="https://get-micdrop.com/tos" class="text-brand-primary underline hover:opacity-80" target="_blank" rel="noopener noreferrer"> </a></p>'), Zt = e.from_html('<span translate="no"> </span>'), Va = e.from_html('<div class="flex justify-between py-4 border-b border-border"><div><p> </p> <p><!></p></div> <div><!></div></div>'), Ua = e.from_html('<div class="flex justify-between"><span> </span><span> </span></div>'), Wa = e.from_html('<div class="flex justify-between py-5 border-t border-border"><span class="font-semibold tone-primary"> </span> <span class="font-bold text-accent-success">$0.00</span></div> <p class="type-caption tone-muted text-center -mt-2 mb-2"> </p>', 1), Za = e.from_html('<button class="md:hidden fixed inset-0 bg-overlay-bg z-40 border-none cursor-pointer"></button> <div class="md:hidden fixed bottom-0 left-0 w-full overflow-x-hidden overflow-y-auto z-50 max-h-[80vh] rounded-t-lg shadow-xl bg-card"><div class="flex flex-row justify-between items-center px-5 py-4 border-b border-border"><h2> </h2> <button class="transition-colors p-2 rounded-lg tone-muted hover:tone-primary hover:bg-bg-secondary"><!></button></div> <div class="px-5 pb-5"><!> <div class="flex flex-col py-4 gap-3 tone-secondary"><!> <!> <div class="flex justify-between"><span> </span><span> </span></div> <div class="flex justify-between"><span> </span><span> </span></div> <div class="flex justify-between"><span> </span> <span><!></span></div> <!></div> <!></div></div>', 1), Ja = e.from_html('<div class="md:hidden fixed bottom-0 left-0 right-0 z-40 bg-card border-t border-border shadow-xl p-4 pb-[max(16px,calc(env(safe-area-inset-bottom)+8px))] select-none touch-manipulation"><div class="flex items-stretch gap-3"><button class="flex flex-col justify-between items-start shrink-0 whitespace-nowrap bg-transparent border-none p-0 cursor-pointer touch-manipulation"><span> <!></span> <span> </span></button> <button><!></button></div></div>'), Ya = e.from_html('<div id="orderSummary" class="hidden md:block h-fit rounded-lg bg-card border border-border"><div class="px-5 py-4 border-b border-border"><h3> </h3></div> <div class="px-5 pb-5"><!> <!> <button><!></button></div></div> <!> <!>', 1);
45
+ function Xa(H, t) {
46
+ e.push(t, !0);
47
+ const L = {
48
+ orderSummary: "Order summary",
49
+ selectTickets: "Select tickets to continue",
50
+ free: "Free",
51
+ fullPrice: "Full Price",
52
+ discount: "Discount",
53
+ subtotal: "Subtotal",
54
+ fees: "Fees",
55
+ taxes: "Taxes",
56
+ giftCardAppliedLabel: "Gift Card Applied",
57
+ giftCardBalanceAfterOrder: "Gift card balance after order",
58
+ amountDue: "Amount Due",
59
+ fullyCoveredByGiftCard: "Fully covered by gift card",
60
+ total: "Total",
61
+ checkoutButtonText: "Checkout",
62
+ placeOrderButtonText: "Place order",
63
+ placeOrderTos: "By selecting Place order, I agree to the",
64
+ termsOfService: "terms of service",
65
+ checkout: "Checkout",
66
+ ticketSingular: "ticket",
67
+ ticketPlural: "tickets",
68
+ closeOrderSummary: "Close order summary"
69
+ };
70
+ let x = e.prop(t, "loading", 3, !1), p = e.prop(t, "quantities", 19, () => ({})), s = e.prop(t, "donationAmounts", 19, () => ({})), A = e.prop(t, "eventTickets", 19, () => []), a = e.prop(t, "checkoutTicket", 3, null), q = e.prop(t, "isAgreed", 3, !0), te = e.prop(t, "btnText", 3, void 0), W = e.prop(t, "showTerms", 3, !1), ye = e.prop(t, "promoApplied", 3, !1), Z = e.prop(t, "promoDiscount", 3, 0), j = e.prop(t, "currentPromoRule", 3, null), Te = e.prop(t, "executePurchase", 3, null), _e = e.prop(t, "elements", 3, null), Ae = e.prop(t, "venueServiceCharge", 19, () => ({
71
+ serviceFeeCents: 0,
72
+ serviceFeePercentage: 0,
73
+ serviceFeeChargeType: "both",
74
+ maxServiceFeeCents: 0,
75
+ taxPercentage: 0
76
+ })), _ = e.prop(
77
+ t,
78
+ "giftCardApplied",
79
+ 3,
80
+ null
81
+ // { code, giftCardAmount, giftCardBalance, stripeAmount, paymentType, requiresStripe }
82
+ ), oe = e.prop(
83
+ t,
84
+ "taxAmount",
85
+ 3,
86
+ null
87
+ // Server-provided tax amount in dollars (from Stripe Tax API), null means not yet loaded
88
+ ), B = e.prop(
89
+ t,
90
+ "taxLoading",
91
+ 3,
92
+ !1
93
+ // Whether tax is being loaded from server
94
+ ), pe = e.prop(t, "labels", 19, () => ({})), T = e.derived(() => ({ ...L, ...pe() }));
95
+ function fe(m) {
96
+ if (I(m)) {
97
+ const y = s()[m.ID];
98
+ return parseFloat(y) || 0;
99
+ }
100
+ return parseFloat(m.price) || 0;
101
+ }
102
+ function I(m) {
103
+ const y = m.type ?? m.ticketType ?? 0;
104
+ return Number(y) === 2;
105
+ }
106
+ function z(m) {
107
+ return m == null ? !1 : Number(m) === 0;
108
+ }
109
+ function M(m) {
110
+ return z(m?.price);
111
+ }
112
+ let E = e.state(!1);
113
+ function k(m) {
114
+ const y = ua(Ae().serviceFeeChargeType || "both");
115
+ let S = 0;
116
+ (y === "fixed" || y === "both") && (S += (Ae().serviceFeeCents || 0) / 100), (y === "percentage" || y === "both") && (S += (Ae().serviceFeePercentage || 0) / 100 * m);
117
+ const N = Ae().maxServiceFeeCents || 0;
118
+ return N > 0 && S > N / 100 && (S = N / 100), tt(S);
119
+ }
120
+ function f() {
121
+ e.set(E, !e.get(E));
122
+ }
123
+ function U(m) {
124
+ if (!j()?.provideDiscount) return null;
125
+ const y = j().discountTicketIds || [];
126
+ if (y.length > 0 && !y.includes(m.ID))
127
+ return null;
128
+ const S = parseFloat(m.price) || 0, N = parseFloat(j()?.amount || "0") || 0;
129
+ return j().discountType === "%" ? (S * (1 - N / 100)).toFixed(2) : j().discountType === "$" ? Math.max(0, S - N).toFixed(2) : null;
130
+ }
131
+ let b = e.derived(() => Object.values(p()).reduce((m, y) => m + y, 0)), Q = e.derived(() => e.get(b) > 0), ae = e.derived(() => tt(Object.keys(p()).reduce(
132
+ (m, y) => {
133
+ const S = A().find((ge) => ge.ID == y);
134
+ if (!S) return m;
135
+ const N = fe(S);
136
+ return m + p()[y] * N;
137
+ },
138
+ 0
139
+ ))), se = e.derived(() => tt(Object.keys(p()).reduce(
140
+ (m, y) => {
141
+ const S = A().find((de) => de.ID == y);
142
+ if (!S) return m;
143
+ if (I(S)) {
144
+ const de = fe(S);
145
+ return m + p()[y] * de;
146
+ }
147
+ const N = U(S), ge = N !== null ? parseFloat(N) : S.price;
148
+ return m + p()[y] * ge;
149
+ },
150
+ 0
151
+ ))), re = e.derived(() => j()?.provideDiscount ? e.get(ae) - e.get(se) : 0), Be = e.derived(() => tt(Object.keys(p()).reduce(
152
+ (m, y) => {
153
+ const S = A().find((de) => de.ID == y);
154
+ if (!S || I(S)) return m;
155
+ const N = U(S), ge = N !== null ? parseFloat(N) : S.price;
156
+ return z(ge) ? m : m + p()[y] * k(ge);
157
+ },
158
+ 0
159
+ ))), xe = e.derived(() => oe() !== null && oe() !== void 0 ? tt(oe()) : 0), me = e.derived(() => _() ? Lt(Bt(_().giftCardAmount)) : null), be = e.derived(() => _() ? Lt(Bt(_().giftCardBalance - _().giftCardAmount)) : null), Ce = e.derived(() => tt(Math.max(0, e.get(se) + e.get(Be) + e.get(xe) - (ye() && !j()?.provideDiscount ? Z() : 0) - (_() ? _().giftCardAmount / 100 : 0))));
160
+ e.user_effect(() => {
161
+ t.onPriceUpdate?.({
162
+ subtotal: e.get(se),
163
+ fees: e.get(Be),
164
+ taxes: e.get(xe),
165
+ total: e.get(Ce),
166
+ promoSavings: e.get(re)
167
+ });
168
+ });
169
+ var De = Ya(), O = e.first_child(De), Ee = e.child(O), Oe = e.child(Ee), ot = e.child(Oe, !0);
170
+ e.reset(Oe), e.reset(Ee);
171
+ var ze = e.sibling(Ee, 2), Ye = e.child(ze);
172
+ {
173
+ var He = (m) => {
174
+ var y = Qa(), S = e.child(y), N = e.child(S, !0);
175
+ e.reset(S), e.reset(y), e.template_effect(() => {
176
+ e.set_class(S, 1, we.smMuted), e.set_text(N, e.get(T).selectTickets);
177
+ }), e.append(m, y);
178
+ }, rt = (m) => {
179
+ var y = Ga(), S = e.first_child(y);
180
+ e.each(S, 16, () => Object.keys(p()), (r) => r, (r, o) => {
181
+ var h = e.comment(), R = e.first_child(h);
182
+ {
183
+ var P = (D) => {
184
+ var G = e.comment(), ke = e.first_child(G);
185
+ e.each(ke, 17, A, (c) => c.ID, (c, l) => {
186
+ var C = e.comment(), V = e.first_child(C);
187
+ {
188
+ var ue = (K) => {
189
+ const he = e.derived(() => fe(e.get(l))), J = e.derived(() => I(e.get(l)));
190
+ var $ = qa(), ie = e.child($), Pe = e.child(ie), ut = e.child(Pe, !0);
191
+ e.reset(Pe);
192
+ var pt = e.sibling(Pe, 2), nt = e.child(pt);
193
+ {
194
+ var mt = (Se) => {
195
+ var Me = e.text();
196
+ e.template_effect(() => e.set_text(Me, `${e.get(T).free ?? ""} x ${p()[o] ?? ""}`)), e.append(Se, Me);
197
+ }, xt = e.derived(() => M(e.get(l)) && !e.get(J)), yt = (Se) => {
198
+ var Me = e.text();
199
+ e.template_effect((ft) => e.set_text(Me, `${ft ?? ""} x ${p()[o] ?? ""}`), [() => ee(e.get(he))]), e.append(Se, Me);
200
+ }, kt = (Se) => {
201
+ var Me = e.text();
202
+ e.template_effect((ft) => e.set_text(Me, `${ft ?? ""} x ${p()[o] ?? ""}`), [() => ee(e.get(l).price)]), e.append(Se, Me);
203
+ };
204
+ e.if(nt, (Se) => {
205
+ e.get(xt) ? Se(mt) : e.get(J) ? Se(yt, 1) : Se(kt, -1);
206
+ });
207
+ }
208
+ e.reset(pt), e.reset(ie);
209
+ var lt = e.sibling(ie, 2), It = e.child(lt);
210
+ {
211
+ var wt = (Se) => {
212
+ var Me = e.text();
213
+ e.template_effect(() => e.set_text(Me, e.get(T).free)), e.append(Se, Me);
214
+ }, St = e.derived(() => M(e.get(l)) && !e.get(J)), At = (Se) => {
215
+ var Me = e.text();
216
+ e.template_effect((ft) => e.set_text(Me, ft), [
217
+ () => ee(e.get(he) * p()[o])
218
+ ]), e.append(Se, Me);
219
+ };
220
+ e.if(It, (Se) => {
221
+ e.get(St) ? Se(wt) : Se(At, -1);
222
+ });
223
+ }
224
+ e.reset(lt), e.reset($), e.template_effect(() => {
225
+ e.set_class(Pe, 1, we.label), e.set_text(ut, e.get(l).name), e.set_class(pt, 1, we.smMuted), e.set_class(lt, 1, we.label);
226
+ }), e.append(K, $);
227
+ };
228
+ e.if(V, (K) => {
229
+ e.get(l).ID == o && K(ue);
230
+ });
231
+ }
232
+ e.append(c, C);
233
+ }), e.append(D, G);
234
+ };
235
+ e.if(R, (D) => {
236
+ p()[o] > 0 && D(P);
237
+ });
238
+ }
239
+ e.append(r, h);
240
+ });
241
+ var N = e.sibling(S, 2), ge = e.child(N);
242
+ {
243
+ var de = (r) => {
244
+ var o = Na(), h = e.child(o), R = e.child(h, !0);
245
+ e.reset(h);
246
+ var P = e.sibling(h), D = e.child(P, !0);
247
+ e.reset(P), e.reset(o), e.template_effect(
248
+ (G) => {
249
+ e.set_text(R, e.get(T).fullPrice), e.set_text(D, G);
250
+ },
251
+ [() => ee(e.get(ae))]
252
+ ), e.append(r, o);
253
+ };
254
+ e.if(ge, (r) => {
255
+ (e.get(re) > 0 || Z() > 0 && !j()?.provideDiscount) && r(de);
256
+ });
257
+ }
258
+ var ce = e.sibling(ge, 2);
259
+ {
260
+ var d = (r) => {
261
+ var o = Dt(), h = e.child(o), R = e.child(h, !0);
262
+ e.reset(h);
263
+ var P = e.sibling(h), D = e.child(P);
264
+ e.reset(P), e.reset(o), e.template_effect(
265
+ (G) => {
266
+ e.set_text(R, e.get(T).discount), e.set_text(D, `-${G ?? ""}`);
267
+ },
268
+ [() => ee(e.get(re))]
269
+ ), e.append(r, o);
270
+ }, g = (r) => {
271
+ var o = Dt(), h = e.child(o), R = e.child(h, !0);
272
+ e.reset(h);
273
+ var P = e.sibling(h), D = e.child(P);
274
+ e.reset(P), e.reset(o), e.template_effect(
275
+ (G) => {
276
+ e.set_text(R, e.get(T).discount), e.set_text(D, `-${G ?? ""}`);
277
+ },
278
+ [() => ee(Z())]
279
+ ), e.append(r, o);
280
+ };
281
+ e.if(ce, (r) => {
282
+ e.get(re) > 0 ? r(d) : Z() > 0 && !j()?.provideDiscount && r(g, 1);
283
+ });
284
+ }
285
+ var w = e.sibling(ce, 2), ve = e.child(w), ne = e.child(ve, !0);
286
+ e.reset(ve);
287
+ var X = e.sibling(ve), F = e.child(X, !0);
288
+ e.reset(X), e.reset(w);
289
+ var Y = e.sibling(w, 2), le = e.child(Y), Fe = e.child(le, !0);
290
+ e.reset(le);
291
+ var Ie = e.sibling(le), Qe = e.child(Ie, !0);
292
+ e.reset(Ie), e.reset(Y);
293
+ var Ge = e.sibling(Y, 2), Ze = e.child(Ge), ht = e.child(Ze, !0);
294
+ e.reset(Ze);
295
+ var st = e.sibling(Ze, 2), ct = e.child(st);
296
+ {
297
+ var _t = (r) => {
298
+ var o = Ht(), h = e.child(o);
299
+ Ct(h, { size: "xs" }), e.next(), e.reset(o), e.append(r, o);
300
+ }, vt = (r) => {
301
+ var o = e.text();
302
+ e.template_effect((h) => e.set_text(o, h), [() => ee(e.get(xe))]), e.append(r, o);
303
+ };
304
+ e.if(ct, (r) => {
305
+ B() ? r(_t) : r(vt, -1);
306
+ });
307
+ }
308
+ e.reset(st), e.reset(Ge);
309
+ var bt = e.sibling(Ge, 2);
310
+ {
311
+ var n = (r) => {
312
+ var o = Ut(), h = e.first_child(o), R = e.child(h), P = e.child(R, !0);
313
+ e.reset(R);
314
+ var D = e.sibling(R, 2), G = e.child(D);
315
+ e.reset(D), e.reset(h);
316
+ var ke = e.sibling(h, 2);
317
+ {
318
+ var c = (l) => {
319
+ var C = Vt(), V = e.child(C), ue = e.child(V, !0);
320
+ e.reset(V);
321
+ var K = e.sibling(V, 2), he = e.child(K, !0);
322
+ e.reset(K), e.reset(C), e.template_effect(() => {
323
+ e.set_text(ue, e.get(T).giftCardBalanceAfterOrder), e.set_text(he, e.get(be));
324
+ }), e.append(l, C);
325
+ };
326
+ e.if(ke, (l) => {
327
+ e.get(be) && _().giftCardBalance - _().giftCardAmount > 0 && l(c);
328
+ });
329
+ }
330
+ e.template_effect(() => {
331
+ e.set_text(P, e.get(T).giftCardAppliedLabel), e.set_text(G, `-${e.get(me) ?? ""}`);
332
+ }), e.append(r, o);
333
+ };
334
+ e.if(bt, (r) => {
335
+ _() && r(n);
336
+ });
337
+ }
338
+ e.reset(N);
339
+ var i = e.sibling(N, 2);
340
+ {
341
+ var v = (r) => {
342
+ var o = Ra(), h = e.first_child(o), R = e.child(h), P = e.child(R, !0);
343
+ e.reset(R), e.next(2), e.reset(h);
344
+ var D = e.sibling(h, 2), G = e.child(D, !0);
345
+ e.reset(D), e.template_effect(() => {
346
+ e.set_text(P, e.get(T).amountDue), e.set_text(G, e.get(T).fullyCoveredByGiftCard);
347
+ }), e.append(r, o);
348
+ }, u = (r) => {
349
+ var o = Wt(), h = e.child(o), R = e.child(h, !0);
350
+ e.reset(h);
351
+ var P = e.sibling(h), D = e.child(P, !0);
352
+ e.reset(P), e.reset(o), e.template_effect(
353
+ (G) => {
354
+ e.set_class(o, 1, `flex justify-between ${we.h3} py-4 type-subheading border-t border-border`), e.set_text(R, e.get(T).total), e.set_text(D, G);
355
+ },
356
+ [() => ee(e.get(Ce))]
357
+ ), e.append(r, o);
358
+ };
359
+ e.if(i, (r) => {
360
+ _()?.paymentType === "gift_card_only" ? r(v) : r(u, -1);
361
+ });
362
+ }
363
+ e.template_effect(
364
+ (r, o) => {
365
+ e.set_class(N, 1, `${we.sm} flex flex-col py-3 gap-2`), e.set_text(ne, e.get(T).subtotal), e.set_text(F, r), e.set_text(Fe, e.get(T).fees), e.set_text(Qe, o), e.set_text(ht, e.get(T).taxes);
366
+ },
367
+ [
368
+ () => ee(e.get(se)),
369
+ () => ee(e.get(Be))
370
+ ]
371
+ ), e.append(m, y);
372
+ };
373
+ e.if(Ye, (m) => {
374
+ e.get(b) === 0 ? m(He) : m(rt, -1);
375
+ });
376
+ }
377
+ var Ne = e.sibling(Ye, 2);
378
+ {
379
+ var Xe = (m) => {
380
+ var y = Ha(), S = e.child(y), N = e.sibling(S), ge = e.child(N, !0);
381
+ e.reset(N), e.reset(y), e.template_effect(() => {
382
+ e.set_class(y, 1, `${we.xsMuted} text-center mb-3`), e.set_text(S, `${e.get(T).placeOrderTos ?? ""} `), e.set_text(ge, e.get(T).termsOfService);
383
+ }), e.append(m, y);
384
+ };
385
+ e.if(Ne, (m) => {
386
+ e.get(b) > 0 && W() && m(Xe);
387
+ });
388
+ }
389
+ var Re = e.sibling(Ne, 2), it = e.child(Re);
390
+ {
391
+ var Ve = (m) => {
392
+ Ct(m, { size: "sm", color: "white" });
393
+ }, Ue = (m) => {
394
+ var y = Zt(), S = e.child(y, !0);
395
+ e.reset(y), e.template_effect(() => e.set_text(S, te() ?? (W() ? e.get(T).placeOrderButtonText : e.get(T).checkoutButtonText))), e.append(m, y);
396
+ };
397
+ e.if(it, (m) => {
398
+ x() ? m(Ve) : m(Ue, -1);
399
+ });
400
+ }
401
+ e.reset(Re), e.reset(ze), e.reset(O);
402
+ var We = e.sibling(O, 2);
403
+ {
404
+ var dt = (m) => {
405
+ var y = Za(), S = e.first_child(y), N = e.sibling(S, 2), ge = e.child(N), de = e.child(ge), ce = e.child(de, !0);
406
+ e.reset(de);
407
+ var d = e.sibling(de, 2), g = e.child(d);
408
+ Ma(g, { class: "w-7 h-7" }), e.reset(d), e.reset(ge);
409
+ var w = e.sibling(ge, 2), ve = e.child(w);
410
+ e.each(ve, 16, () => Object.keys(p()), (c) => c, (c, l) => {
411
+ var C = e.comment(), V = e.first_child(C);
412
+ {
413
+ var ue = (K) => {
414
+ var he = e.comment(), J = e.first_child(he);
415
+ e.each(J, 17, A, ($) => $.ID, ($, ie) => {
416
+ var Pe = e.comment(), ut = e.first_child(Pe);
417
+ {
418
+ var pt = (nt) => {
419
+ const mt = e.derived(() => fe(e.get(ie))), xt = e.derived(() => I(e.get(ie)));
420
+ var yt = Va(), kt = e.child(yt), lt = e.child(kt), It = e.child(lt, !0);
421
+ e.reset(lt);
422
+ var wt = e.sibling(lt, 2), St = e.child(wt);
423
+ {
424
+ var At = (je) => {
425
+ var Le = e.text();
426
+ e.template_effect(() => e.set_text(Le, `${e.get(T).free ?? ""} x ${p()[l] ?? ""}`)), e.append(je, Le);
427
+ }, Se = e.derived(() => M(e.get(ie)) && !e.get(xt)), Me = (je) => {
428
+ var Le = e.text();
429
+ e.template_effect((Tt) => e.set_text(Le, `${Tt ?? ""} x ${p()[l] ?? ""}`), [() => ee(e.get(mt))]), e.append(je, Le);
430
+ }, ft = (je) => {
431
+ var Le = e.text();
432
+ e.template_effect((Tt) => e.set_text(Le, `${Tt ?? ""} x ${p()[l] ?? ""}`), [() => ee(e.get(ie).price)]), e.append(je, Le);
433
+ };
434
+ e.if(St, (je) => {
435
+ e.get(Se) ? je(At) : e.get(xt) ? je(Me, 1) : je(ft, -1);
436
+ });
437
+ }
438
+ e.reset(wt), e.reset(kt);
439
+ var Pt = e.sibling(kt, 2), aa = e.child(Pt);
440
+ {
441
+ var ra = (je) => {
442
+ var Le = e.text();
443
+ e.template_effect(() => e.set_text(Le, e.get(T).free)), e.append(je, Le);
444
+ }, ia = e.derived(() => M(e.get(ie)) && !e.get(xt)), sa = (je) => {
445
+ var Le = e.text();
446
+ e.template_effect((Tt) => e.set_text(Le, Tt), [
447
+ () => ee(e.get(mt) * p()[l])
448
+ ]), e.append(je, Le);
449
+ };
450
+ e.if(aa, (je) => {
451
+ e.get(ia) ? je(ra) : je(sa, -1);
452
+ });
453
+ }
454
+ e.reset(Pt), e.reset(yt), e.template_effect(() => {
455
+ e.set_class(lt, 1, we.h5), e.set_text(It, e.get(ie).name), e.set_class(wt, 1, we.smMuted), e.set_class(Pt, 1, we.h5);
456
+ }), e.append(nt, yt);
457
+ };
458
+ e.if(ut, (nt) => {
459
+ e.get(ie).ID == l && nt(pt);
460
+ });
461
+ }
462
+ e.append($, Pe);
463
+ }), e.append(K, he);
464
+ };
465
+ e.if(V, (K) => {
466
+ p()[l] > 0 && K(ue);
467
+ });
468
+ }
469
+ e.append(c, C);
470
+ });
471
+ var ne = e.sibling(ve, 2), X = e.child(ne);
472
+ {
473
+ var F = (c) => {
474
+ var l = Ua(), C = e.child(l), V = e.child(C, !0);
475
+ e.reset(C);
476
+ var ue = e.sibling(C), K = e.child(ue, !0);
477
+ e.reset(ue), e.reset(l), e.template_effect(
478
+ (he) => {
479
+ e.set_text(V, e.get(T).fullPrice), e.set_text(K, he);
480
+ },
481
+ [() => ee(e.get(ae))]
482
+ ), e.append(c, l);
483
+ };
484
+ e.if(X, (c) => {
485
+ (e.get(re) > 0 || Z() > 0 && !j()?.provideDiscount) && c(F);
486
+ });
487
+ }
488
+ var Y = e.sibling(X, 2);
489
+ {
490
+ var le = (c) => {
491
+ var l = Dt(), C = e.child(l), V = e.child(C, !0);
492
+ e.reset(C);
493
+ var ue = e.sibling(C), K = e.child(ue);
494
+ e.reset(ue), e.reset(l), e.template_effect(
495
+ (he) => {
496
+ e.set_text(V, e.get(T).discount), e.set_text(K, `-${he ?? ""}`);
497
+ },
498
+ [() => ee(e.get(re))]
499
+ ), e.append(c, l);
500
+ }, Fe = (c) => {
501
+ var l = Dt(), C = e.child(l), V = e.child(C, !0);
502
+ e.reset(C);
503
+ var ue = e.sibling(C), K = e.child(ue);
504
+ e.reset(ue), e.reset(l), e.template_effect(
505
+ (he) => {
506
+ e.set_text(V, e.get(T).discount), e.set_text(K, `-${he ?? ""}`);
507
+ },
508
+ [() => ee(Z())]
509
+ ), e.append(c, l);
510
+ };
511
+ e.if(Y, (c) => {
512
+ e.get(re) > 0 ? c(le) : Z() > 0 && !j()?.provideDiscount && c(Fe, 1);
513
+ });
514
+ }
515
+ var Ie = e.sibling(Y, 2), Qe = e.child(Ie), Ge = e.child(Qe, !0);
516
+ e.reset(Qe);
517
+ var Ze = e.sibling(Qe), ht = e.child(Ze, !0);
518
+ e.reset(Ze), e.reset(Ie);
519
+ var st = e.sibling(Ie, 2), ct = e.child(st), _t = e.child(ct, !0);
520
+ e.reset(ct);
521
+ var vt = e.sibling(ct), bt = e.child(vt, !0);
522
+ e.reset(vt), e.reset(st);
523
+ var n = e.sibling(st, 2), i = e.child(n), v = e.child(i, !0);
524
+ e.reset(i);
525
+ var u = e.sibling(i, 2), r = e.child(u);
526
+ {
527
+ var o = (c) => {
528
+ var l = Ht(), C = e.child(l);
529
+ Ct(C, { size: "xs" }), e.next(), e.reset(l), e.append(c, l);
530
+ }, h = (c) => {
531
+ var l = e.text();
532
+ e.template_effect((C) => e.set_text(l, C), [() => ee(e.get(xe))]), e.append(c, l);
533
+ };
534
+ e.if(r, (c) => {
535
+ B() ? c(o) : c(h, -1);
536
+ });
537
+ }
538
+ e.reset(u), e.reset(n);
539
+ var R = e.sibling(n, 2);
540
+ {
541
+ var P = (c) => {
542
+ var l = Ut(), C = e.first_child(l), V = e.child(C), ue = e.child(V, !0);
543
+ e.reset(V);
544
+ var K = e.sibling(V, 2), he = e.child(K);
545
+ e.reset(K), e.reset(C);
546
+ var J = e.sibling(C, 2);
547
+ {
548
+ var $ = (ie) => {
549
+ var Pe = Vt(), ut = e.child(Pe), pt = e.child(ut, !0);
550
+ e.reset(ut);
551
+ var nt = e.sibling(ut, 2), mt = e.child(nt, !0);
552
+ e.reset(nt), e.reset(Pe), e.template_effect(() => {
553
+ e.set_text(pt, e.get(T).giftCardBalanceAfterOrder), e.set_text(mt, e.get(be));
554
+ }), e.append(ie, Pe);
555
+ };
556
+ e.if(J, (ie) => {
557
+ e.get(be) && _().giftCardBalance - _().giftCardAmount > 0 && ie($);
558
+ });
559
+ }
560
+ e.template_effect(() => {
561
+ e.set_text(ue, e.get(T).giftCardAppliedLabel), e.set_text(he, `-${e.get(me) ?? ""}`);
562
+ }), e.append(c, l);
563
+ };
564
+ e.if(R, (c) => {
565
+ _() && c(P);
566
+ });
567
+ }
568
+ e.reset(ne);
569
+ var D = e.sibling(ne, 2);
570
+ {
571
+ var G = (c) => {
572
+ var l = Wa(), C = e.first_child(l), V = e.child(C), ue = e.child(V, !0);
573
+ e.reset(V), e.next(2), e.reset(C);
574
+ var K = e.sibling(C, 2), he = e.child(K, !0);
575
+ e.reset(K), e.template_effect(() => {
576
+ e.set_text(ue, e.get(T).amountDue), e.set_text(he, e.get(T).fullyCoveredByGiftCard);
577
+ }), e.append(c, l);
578
+ }, ke = (c) => {
579
+ var l = Wt(), C = e.child(l), V = e.child(C, !0);
580
+ e.reset(C);
581
+ var ue = e.sibling(C), K = e.child(ue, !0);
582
+ e.reset(ue), e.reset(l), e.template_effect(
583
+ (he) => {
584
+ e.set_class(l, 1, `flex justify-between ${we.h3} py-5 border-t border-border`), e.set_text(V, e.get(T).total), e.set_text(K, he);
585
+ },
586
+ [() => ee(e.get(Ce))]
587
+ ), e.append(c, l);
588
+ };
589
+ e.if(D, (c) => {
590
+ _()?.paymentType === "gift_card_only" ? c(G) : c(ke, -1);
591
+ });
592
+ }
593
+ e.reset(w), e.reset(N), e.template_effect(
594
+ (c, l) => {
595
+ e.set_attribute(S, "aria-label", e.get(T).closeOrderSummary), e.set_class(de, 1, `${we.h2} type-heading`), e.set_text(ce, e.get(T).orderSummary), e.set_attribute(d, "aria-label", e.get(T).closeOrderSummary), e.set_text(Ge, e.get(T).subtotal), e.set_text(ht, c), e.set_text(_t, e.get(T).fees), e.set_text(bt, l), e.set_text(v, e.get(T).taxes);
596
+ },
597
+ [
598
+ () => ee(e.get(se)),
599
+ () => ee(e.get(Be))
600
+ ]
601
+ ), e.delegated("click", S, () => e.set(E, !1)), e.transition(3, S, () => pa, () => ({ duration: 200 })), e.delegated("click", d, () => e.set(E, !1)), e.transition(1, N, () => Et, () => ({ y: 800, duration: 300, easing: Gt })), e.transition(2, N, () => Et, () => ({ y: 800, duration: 300, easing: Gt })), e.append(m, y);
602
+ };
603
+ e.if(We, (m) => {
604
+ e.get(E) && m(dt);
605
+ });
606
+ }
607
+ var Ke = e.sibling(We, 2);
608
+ {
609
+ var $e = (m) => {
610
+ var y = Ja(), S = e.child(y), N = e.child(S), ge = e.child(N), de = e.child(ge), ce = e.sibling(de);
611
+ {
612
+ let F = e.derived(() => `w-4 h-4 ${we.iconMuted} transition-transform duration-200 ${e.get(E) ? "rotate-180" : ""}`);
613
+ la(ce, {
614
+ get class() {
615
+ return e.get(F);
616
+ }
617
+ });
618
+ }
619
+ e.reset(ge);
620
+ var d = e.sibling(ge, 2), g = e.child(d, !0);
621
+ e.reset(d), e.reset(N);
622
+ var w = e.sibling(N, 2), ve = e.child(w);
623
+ {
624
+ var ne = (F) => {
625
+ Ct(F, { size: "sm", color: "white" });
626
+ }, X = (F) => {
627
+ var Y = Zt(), le = e.child(Y, !0);
628
+ e.reset(Y), e.template_effect(() => e.set_text(le, e.get(T).checkout)), e.append(F, Y);
629
+ };
630
+ e.if(ve, (F) => {
631
+ x() ? F(ne) : F(X, -1);
632
+ });
633
+ }
634
+ e.reset(w), e.reset(S), e.reset(y), e.template_effect(
635
+ (F) => {
636
+ e.set_class(ge, 1, `${we.sm} flex items-center gap-1 tone-secondary`), e.set_text(de, `${e.get(b) ?? ""} ${(e.get(b) > 1 ? e.get(T).ticketPlural : e.get(T).ticketSingular) ?? ""} `), e.set_class(d, 1, `${we.h2} type-heading`), e.set_text(g, F), e.set_class(w, 1, `${we.label} flex-1 min-w-36 h-12 rounded-lg touch-manipulation flex items-center justify-center ${e.get(b) === 0 || !q() || B() ? "bg-bg-tertiary tone-muted cursor-not-allowed" : "bg-brand-primary text-white hover:bg-brand-primary/90"}`), w.disabled = e.get(b) === 0 || !q() || B();
637
+ },
638
+ [() => ee(e.get(Ce))]
639
+ ), e.delegated("click", N, f), e.delegated("click", w, () => {
640
+ B() || (Te() ? Te()(_e()) : a() && a()());
641
+ }), e.transition(3, y, () => Et, () => ({ y: 100, duration: 200 })), e.append(m, y);
642
+ };
643
+ e.if(Ke, (m) => {
644
+ e.get(Q) && m($e);
645
+ });
646
+ }
647
+ e.template_effect(() => {
648
+ e.set_class(Oe, 1, e.clsx(we.h3)), e.set_text(ot, e.get(T).orderSummary), e.set_class(Re, 1, `w-full h-12 font-semibold rounded-lg flex items-center justify-center transition-colors select-none touch-manipulation ${e.get(b) === 0 || !q() || B() ? "bg-bg-tertiary tone-muted cursor-not-allowed" : "bg-brand-primary text-white hover:bg-brand-primary/90"}`), Re.disabled = e.get(b) === 0 || !q() || B();
649
+ }), e.delegated("click", Re, () => {
650
+ e.get(b) === 0 || !q() || B() || (Te() ? Te()(_e()) : a() && a()());
651
+ }), e.append(H, De), e.pop();
652
+ }
653
+ e.delegate(["click"]);
654
+ function Ka(H) {
655
+ return H === "percentage" || H === "%";
656
+ }
657
+ function $a(H, t, L) {
658
+ if (!(t > 0) || !(H > 0)) return 0;
659
+ const x = Ka(L) ? H * t / 100 : t, p = Math.max(0, Math.min(H, x));
660
+ return Math.round(p * 100) / 100;
661
+ }
662
+ const er = {
663
+ /** Percent remaining at or below which a ticket is "urgent" (exact count). */
664
+ URGENT_PCT: 10,
665
+ /** Percent remaining at or below which a ticket is "low" (vague badge). */
666
+ LOW_PCT: 25,
667
+ /** Absolute cap on exact-count copy; above this we fall back to vague badge. */
668
+ MAX_EXACT_COUNT: 20
669
+ };
670
+ function tr(H, t) {
671
+ if (H <= 0) return "sold-out";
672
+ if (t <= 0) return "plenty";
673
+ const L = H / t * 100, { URGENT_PCT: x, LOW_PCT: p, MAX_EXACT_COUNT: s } = er;
674
+ return L <= x && H <= s ? "urgent" : L <= p ? "low" : "plenty";
675
+ }
676
+ function ar(H, t) {
677
+ if (!H || typeof H != "object") return {};
678
+ if (!Array.isArray(t) || t.length === 0) {
679
+ const p = {};
680
+ for (const [s, A] of Object.entries(H))
681
+ typeof A == "number" && A > 0 && (p[s] = A);
682
+ return p;
683
+ }
684
+ const L = /* @__PURE__ */ new Map();
685
+ for (const p of t)
686
+ p && p.ID !== void 0 && p.ID !== null && L.set(String(p.ID), p);
687
+ const x = {};
688
+ for (const [p, s] of Object.entries(H)) {
689
+ if (typeof s != "number" || !Number.isFinite(s) || s <= 0) continue;
690
+ const A = L.get(String(p));
691
+ let a = s;
692
+ if (A) {
693
+ const q = A.remainingCapacity;
694
+ typeof q == "number" && Number.isFinite(q) && (a = Math.min(a, Math.max(0, q)));
695
+ const te = A.maxQuantity;
696
+ typeof te == "number" && Number.isFinite(te) && te > 0 && (a = Math.min(a, te));
697
+ }
698
+ a > 0 && (x[p] = a);
699
+ }
700
+ return x;
701
+ }
702
+ var rr = e.from_html('<div role="group"><!> <span class="qty-display svelte-12zmutv" aria-live="polite" aria-atomic="true" role="status"><span class="sr-only"> </span> </span> <!></div>'), ir = e.from_html('<span class="sold-out-pill type-caption whitespace-nowrap svelte-12zmutv" role="status"> </span>'), sr = e.from_html('<span class="sales-start-badge type-caption text-secondary whitespace-nowrap svelte-12zmutv" role="status"> </span>'), nr = e.from_html('<span class="sr-only" role="alert"> </span>'), lr = e.from_html('<div class="donation-input-wrapper svelte-12zmutv"><!> <!></div>'), or = e.from_html('<span class="price-lg text-primary svelte-12zmutv"> </span> <span class="price-strikethrough"><span class="sr-only"> </span> </span> <span class="price-fee" aria-hidden="true"> </span> <span class="sr-only"> </span>', 1), dr = e.from_html('<span class="price-lg text-primary svelte-12zmutv"> </span>'), cr = e.from_html('<span class="price-lg text-primary svelte-12zmutv"> </span> <span class="price-fee" aria-hidden="true"> </span> <span class="sr-only"> </span>', 1), vr = e.from_html('<span class="badge badge-discount"> </span>'), ur = e.from_html('<span class="badge badge-unlocked"> </span>'), pr = e.from_html('<div class="flex-row-2 mb-2 flex-wrap" role="status" aria-live="polite"><!> <!></div>'), fr = e.from_html('<p class="type-body text-secondary mb-3 svelte-12zmutv"> </p>'), gr = e.from_html("<span> </span>"), _r = e.from_html('<p class="sales-end-text type-caption svelte-12zmutv" role="status"> </p>'), mr = e.from_html('<article><div class="p-4 pb-0"><div class="vc-flex-between-start gap-4"><div class="flex-1 min-w-0"><h3 class="type-subheading text-primary svelte-12zmutv"> </h3></div> <!></div></div> <hr class="divider-line my-3 svelte-12zmutv" aria-hidden="true"/> <div class="p-4 pt-0"><div class="flex-row-2 mb-2"><!></div> <!> <!> <div class="flex-row-2 mb-2 flex-wrap" role="status"><!> <!></div> <!></div></article>');
703
+ function hr(H, t) {
704
+ e.push(t, !0);
705
+ let L = e.prop(t, "fee", 3, "0.00"), x = e.prop(t, "quantity", 3, 0), p = e.prop(t, "soldOut", 3, !1), s = e.prop(t, "status", 3, null), A = e.prop(t, "salesBegin", 3, null), a = e.prop(t, "salesEnd", 3, null), q = e.prop(t, "remainingCapacity", 3, null), te = e.prop(
706
+ t,
707
+ "totalCapacity",
708
+ 3,
709
+ null
710
+ // Total ticket capacity for percentage calculation
711
+ );
712
+ e.prop(
713
+ t,
714
+ "minQuantity",
715
+ 3,
716
+ 1
717
+ // Minimum quantity per order (default 1)
718
+ );
719
+ let W = e.prop(
720
+ t,
721
+ "maxQuantity",
722
+ 3,
723
+ null
724
+ // Maximum quantity per order (null = unlimited)
725
+ ), ye = e.prop(
726
+ t,
727
+ "discountedPrice",
728
+ 3,
729
+ null
730
+ // Discounted price when promo applied
731
+ ), Z = e.prop(
732
+ t,
733
+ "isRevealed",
734
+ 3,
735
+ !1
736
+ // Badge: Unlocked via promo
737
+ ), j = e.prop(
738
+ t,
739
+ "isDiscounted",
740
+ 3,
741
+ !1
742
+ // Badge: Discount applied
743
+ ), Te = e.prop(
744
+ t,
745
+ "ticketType",
746
+ 3,
747
+ 0
748
+ // 0 = paid/standard, 1 = registration/free, 2 = donation
749
+ ), _e = e.prop(
750
+ t,
751
+ "donationAmount",
752
+ 3,
753
+ ""
754
+ // User-entered donation amount (string for input binding)
755
+ ), Ae = e.prop(t, "syncing", 3, !1), _ = e.prop(t, "labels", 19, () => ({}));
756
+ const oe = e.derived(() => Te() === 2), B = e.derived(() => parseFloat(_e()) || 0), pe = e.derived(() => e.get(oe) && _e() !== "" && e.get(B) < 1 ? _().minimumDonation || "Minimum $1.00" : ""), T = e.derived(() => !e.get(oe) || _e() !== "" && e.get(B) >= 1), fe = e.derived(() => parseFloat(t.price) || 0), I = e.derived(() => e.get(fe) === 0 ? 0 : parseFloat(L()) || 0), z = e.derived(() => ee(e.get(fe) + e.get(I))), M = e.derived(() => ee(e.get(I))), E = e.derived(() => ye() ? parseFloat(ye()) : null), k = e.derived(() => e.get(E) === null || e.get(E) === 0 ? 0 : parseFloat(L()) || 0), f = e.derived(() => e.get(E) !== null ? ee(e.get(E) + e.get(k)) : null), U = e.derived(() => te() ?? q() ?? 0), b = e.derived(() => {
757
+ const d = q() ?? 0, g = e.get(U);
758
+ if (g === 0 || s() === "scheduled" || s() === "sales_ended" || e.get(
759
+ fe
760
+ // no scarcity on free tickets
761
+ ) === 0) return null;
762
+ const w = tr(d, g);
763
+ return w === "sold-out" ? { text: "Sold out", type: "sold-out" } : w === "urgent" ? {
764
+ text: `Only ${d} left`,
765
+ type: "scarcity",
766
+ showFlame: !0
767
+ } : w === "low" ? { text: "Few tickets left", type: "scarcity", showFlame: !0 } : null;
768
+ }), Q = e.derived(() => e.get(b) != null && e.get(b).type === "scarcity");
769
+ function ae(d) {
770
+ return d ? fa(d, { year: void 0, timeZone: "UTC" }) : "";
771
+ }
772
+ function se(d) {
773
+ return {
774
+ text: ga(d, _()),
775
+ preposition: ""
776
+ };
777
+ }
778
+ function re(d) {
779
+ const { text: g } = se(d);
780
+ return g;
781
+ }
782
+ function Be(d) {
783
+ return se(d);
784
+ }
785
+ const xe = e.derived(() => (() => {
786
+ if (!s()) return null;
787
+ switch (s()) {
788
+ case "scheduled":
789
+ return {
790
+ showAsMessage: !0,
791
+ // Display as inline message instead of badge
792
+ message: (_().salesStart || "Sales start {salesStart}").replace("{salesStart}", re(A()))
793
+ };
794
+ case "on_sale":
795
+ return null;
796
+ case // Don't show badge for normal on-sale status
797
+ "sales_ended":
798
+ return {
799
+ badge: _().statusSalesEnded || "Sales ended",
800
+ badgeClass: "badge-ended",
801
+ label: "Ended",
802
+ date: ae(a())
803
+ };
804
+ default:
805
+ return null;
806
+ }
807
+ })());
808
+ var me = mr();
809
+ let be;
810
+ var Ce = e.child(me), De = e.child(Ce), O = e.child(De), Ee = e.child(O), Oe = e.child(Ee, !0);
811
+ e.reset(Ee), e.reset(O);
812
+ var ot = e.sibling(O, 2);
813
+ {
814
+ var ze = (d) => {
815
+ var g = rr();
816
+ let w;
817
+ var ve = e.child(g);
818
+ {
819
+ let Fe = e.derived(() => x() === 0 || Ae()), Ie = e.derived(() => (_().decreaseQuantity || "Decrease quantity for {title}").replace("{title}", t.title));
820
+ Je(ve, {
821
+ variant: "icon-brand",
822
+ size: "icon-sm",
823
+ onclick: () => t.ondecrement?.(),
824
+ get disabled() {
825
+ return e.get(Fe);
826
+ },
827
+ get "aria-label"() {
828
+ return e.get(Ie);
829
+ },
830
+ children: (Qe, Ge) => {
831
+ oa(Qe, { size: "20" });
832
+ },
833
+ $$slots: { default: !0 }
834
+ });
835
+ }
836
+ var ne = e.sibling(ve, 2), X = e.child(ne), F = e.child(X, !0);
837
+ e.reset(X);
838
+ var Y = e.sibling(X);
839
+ e.reset(ne);
840
+ var le = e.sibling(ne, 2);
841
+ {
842
+ let Fe = e.derived(() => W() !== null && x() >= W() || q() !== null && x() >= q() || !e.get(T) || Ae()), Ie = e.derived(() => (_().increaseQuantity || "Increase quantity for {title}").replace("{title}", t.title));
843
+ Je(le, {
844
+ variant: "icon-brand",
845
+ size: "icon-sm",
846
+ onclick: () => t.onincrement?.(),
847
+ get disabled() {
848
+ return e.get(Fe);
849
+ },
850
+ get "aria-label"() {
851
+ return e.get(Ie);
852
+ },
853
+ children: (Qe, Ge) => {
854
+ da(Qe, { size: "20" });
855
+ },
856
+ $$slots: { default: !0 }
857
+ });
858
+ }
859
+ e.reset(g), e.template_effect(
860
+ (Fe) => {
861
+ w = e.set_class(g, 1, "flex items-center quantity-selector svelte-12zmutv", null, w, { active: x() > 0 }), e.set_attribute(g, "aria-label", Fe), e.set_text(F, _().quantity || "Quantity:"), e.set_text(Y, ` ${x() ?? ""}`);
862
+ },
863
+ [
864
+ () => (_().quantitySelector || "Quantity selector for {title}").replace("{title}", t.title)
865
+ ]
866
+ ), e.append(d, g);
867
+ }, Ye = (d) => {
868
+ var g = ir(), w = e.child(g, !0);
869
+ e.reset(g), e.template_effect(() => {
870
+ e.set_attribute(g, "aria-label", _().statusSoldOut || "Sold out"), e.set_text(w, _().statusSoldOut || "Sold out");
871
+ }), e.append(d, g);
872
+ }, He = (d) => {
873
+ var g = sr(), w = e.child(g, !0);
874
+ e.reset(g), e.template_effect(() => e.set_text(w, e.get(xe).message)), e.append(d, g);
875
+ };
876
+ e.if(ot, (d) => {
877
+ !p() && s() !== "scheduled" && s() !== "sales_ended" ? d(ze) : p() ? d(Ye, 1) : s() === "scheduled" && e.get(xe)?.message && d(He, 2);
878
+ });
879
+ }
880
+ e.reset(De), e.reset(Ce);
881
+ var rt = e.sibling(Ce, 4), Ne = e.child(rt), Xe = e.child(Ne);
882
+ {
883
+ var Re = (d) => {
884
+ var g = lr(), w = e.child(g);
885
+ {
886
+ let X = e.derived(() => _().donationAmountLabel || "Donation amount in dollars"), F = e.derived(() => p() || s() === "scheduled" || s() === "sales_ended"), Y = e.derived(() => e.get(pe) ? "donation-error-" + t.title?.replace(/\s+/g, "-").toLowerCase() : void 0);
887
+ ea(w, {
888
+ get label() {
889
+ return e.get(X);
890
+ },
891
+ size: "lg",
892
+ type: "text",
893
+ inputmode: "decimal",
894
+ placeholder: "0.00",
895
+ get value() {
896
+ return _e();
897
+ },
898
+ oninputchange: (le) => t.ondonationchange?.(le),
899
+ get disabled() {
900
+ return e.get(F);
901
+ },
902
+ get errorText() {
903
+ return e.get(pe);
904
+ },
905
+ get "aria-describedby"() {
906
+ return e.get(Y);
907
+ }
908
+ });
909
+ }
910
+ var ve = e.sibling(w, 2);
911
+ {
912
+ var ne = (X) => {
913
+ var F = nr(), Y = e.child(F, !0);
914
+ e.reset(F), e.template_effect(
915
+ (le) => {
916
+ e.set_attribute(F, "id", `donation-error-${le ?? ""}`), e.set_text(Y, e.get(pe));
917
+ },
918
+ [() => t.title?.replace(/\s+/g, "-").toLowerCase()]
919
+ ), e.append(X, F);
920
+ };
921
+ e.if(ve, (X) => {
922
+ e.get(pe) && X(ne);
923
+ });
924
+ }
925
+ e.reset(g), e.append(d, g);
926
+ }, it = (d) => {
927
+ var g = or(), w = e.first_child(g), ve = e.child(w, !0);
928
+ e.reset(w);
929
+ var ne = e.sibling(w, 2), X = e.child(ne), F = e.child(X, !0);
930
+ e.reset(X);
931
+ var Y = e.sibling(X, 1, !0);
932
+ e.reset(ne);
933
+ var le = e.sibling(ne, 2), Fe = e.child(le, !0);
934
+ e.reset(le);
935
+ var Ie = e.sibling(le, 2), Qe = e.child(Ie, !0);
936
+ e.reset(Ie), e.template_effect(
937
+ (Ge, Ze) => {
938
+ e.set_attribute(w, "aria-label", `Discounted price ${e.get(f) ?? ""}`), e.set_text(ve, e.get(f)), e.set_attribute(ne, "aria-label", `Original price ${e.get(z) ?? ""}`), e.set_text(F, _().originalPrice || "Original price:"), e.set_text(Y, e.get(z)), e.set_text(Fe, Ge), e.set_text(Qe, Ze);
939
+ },
940
+ [
941
+ () => (_().inclFee || "incl. {fee} fee").replace("{fee}", e.get(M)),
942
+ () => (_().includingFee || "including {fee} service fee").replace("{fee}", e.get(M))
943
+ ]
944
+ ), e.append(d, g);
945
+ }, Ve = (d) => {
946
+ var g = dr(), w = e.child(g, !0);
947
+ e.reset(g), e.template_effect(() => e.set_text(w, _().free || "Free")), e.append(d, g);
948
+ }, Ue = (d) => {
949
+ var g = cr(), w = e.first_child(g), ve = e.child(w, !0);
950
+ e.reset(w);
951
+ var ne = e.sibling(w, 2), X = e.child(ne, !0);
952
+ e.reset(ne);
953
+ var F = e.sibling(ne, 2), Y = e.child(F, !0);
954
+ e.reset(F), e.template_effect(
955
+ (le, Fe) => {
956
+ e.set_attribute(w, "aria-label", `Price ${e.get(z) ?? ""}`), e.set_text(ve, e.get(z)), e.set_text(X, le), e.set_text(Y, Fe);
957
+ },
958
+ [
959
+ () => (_().inclFee || "incl. {fee} fee").replace("{fee}", e.get(M)),
960
+ () => (_().includingFee || "including {fee} service fee").replace("{fee}", e.get(M))
961
+ ]
962
+ ), e.append(d, g);
963
+ };
964
+ e.if(Xe, (d) => {
965
+ e.get(oe) ? d(Re) : e.get(f) !== null ? d(it, 1) : e.get(fe) === 0 ? d(Ve, 2) : d(Ue, -1);
966
+ });
967
+ }
968
+ e.reset(Ne);
969
+ var We = e.sibling(Ne, 2);
970
+ {
971
+ var dt = (d) => {
972
+ var g = pr(), w = e.child(g);
973
+ {
974
+ var ve = (F) => {
975
+ var Y = vr(), le = e.child(Y, !0);
976
+ e.reset(Y), e.template_effect(() => e.set_text(le, _().discountApplied || "Discount applied")), e.append(F, Y);
977
+ };
978
+ e.if(w, (F) => {
979
+ j() && F(ve);
980
+ });
981
+ }
982
+ var ne = e.sibling(w, 2);
983
+ {
984
+ var X = (F) => {
985
+ var Y = ur(), le = e.child(Y, !0);
986
+ e.reset(Y), e.template_effect(() => e.set_text(le, _().unlocked || "Unlocked")), e.append(F, Y);
987
+ };
988
+ e.if(ne, (F) => {
989
+ Z() && F(X);
990
+ });
991
+ }
992
+ e.reset(g), e.append(d, g);
993
+ };
994
+ e.if(We, (d) => {
995
+ (j() || Z()) && d(dt);
996
+ });
997
+ }
998
+ var Ke = e.sibling(We, 2);
999
+ {
1000
+ var $e = (d) => {
1001
+ var g = fr(), w = e.child(g, !0);
1002
+ e.reset(g), e.template_effect(
1003
+ (ve) => {
1004
+ e.set_attribute(g, "id", `ticket-desc-${ve ?? ""}`), e.set_text(w, t.description);
1005
+ },
1006
+ [
1007
+ () => t.title?.replace(/\s+/g, "-").toLowerCase() || "ticket"
1008
+ ]
1009
+ ), e.append(d, g);
1010
+ };
1011
+ e.if(Ke, (d) => {
1012
+ t.description && d($e);
1013
+ });
1014
+ }
1015
+ var m = e.sibling(Ke, 2), y = e.child(m);
1016
+ {
1017
+ var S = (d) => {
1018
+ var g = gr(), w = e.child(g, !0);
1019
+ e.reset(g), e.template_effect(() => {
1020
+ e.set_class(g, 1, `badge ${e.get(xe).badgeClass ?? ""}`, "svelte-12zmutv"), e.set_attribute(g, "aria-label", `${(_().statusLabel || "Status:") ?? ""} ${e.get(xe).badge ?? ""}`), e.set_text(w, e.get(xe).badge);
1021
+ }), e.append(d, g);
1022
+ };
1023
+ e.if(y, (d) => {
1024
+ e.get(xe) && e.get(xe).badge && d(S);
1025
+ });
1026
+ }
1027
+ var N = e.sibling(y, 2);
1028
+ {
1029
+ var ge = (d) => {
1030
+ {
1031
+ let g = e.derived(() => q() ?? 0);
1032
+ ca(d, {
1033
+ get remaining() {
1034
+ return e.get(g);
1035
+ },
1036
+ get total() {
1037
+ return e.get(U);
1038
+ },
1039
+ context: "ticket",
1040
+ get labels() {
1041
+ return _();
1042
+ }
1043
+ });
1044
+ }
1045
+ };
1046
+ e.if(N, (d) => {
1047
+ e.get(Q) && d(ge);
1048
+ });
1049
+ }
1050
+ e.reset(m);
1051
+ var de = e.sibling(m, 2);
1052
+ {
1053
+ var ce = (d) => {
1054
+ const g = e.derived(() => Be(a()));
1055
+ var w = _r(), ve = e.child(w);
1056
+ e.reset(w), e.template_effect(() => e.set_text(ve, `${(_().salesEndPrefix || "Sales end") ?? ""}
1057
+ ${e.get(g).text ?? ""}`)), e.append(d, w);
1058
+ };
1059
+ e.if(de, (d) => {
1060
+ a() && s() !== "sales_ended" && s() !== "scheduled" && d(ce);
1061
+ });
1062
+ }
1063
+ e.reset(rt), e.reset(me), e.template_effect(
1064
+ (d, g, w) => {
1065
+ be = e.set_class(me, 1, `ticket-block rounded-lg border transition-all ${x() > 0 ? "shadow-sm" : ""}`, "svelte-12zmutv", be, {
1066
+ selected: x() > 0,
1067
+ "disabled-ticket": p() || s() === "scheduled" || s() === "sales_ended"
1068
+ }), e.set_attribute(me, "aria-label", `${d ?? ""}${(p() ? _().ticketSoldOutSuffix || ", sold out" : "") ?? ""}${(s() === "scheduled" ? _().ticketSalesNotStartedSuffix || ", sales not yet started" : "") ?? ""}${(s() === "sales_ended" ? _().ticketSalesEndedSuffix || ", sales ended" : "") ?? ""}`), e.set_attribute(Ee, "id", `ticket-title-${g ?? ""}`), e.set_text(Oe, t.title), e.set_attribute(Ne, "id", `ticket-price-${w ?? ""}`);
1069
+ },
1070
+ [
1071
+ () => (_().ticketAriaLabel || "{title} ticket").replace("{title}", t.title),
1072
+ () => t.title?.replace(/\s+/g, "-").toLowerCase() || "ticket",
1073
+ () => t.title?.replace(/\s+/g, "-").toLowerCase() || "ticket"
1074
+ ]
1075
+ ), e.append(H, me), e.pop();
1076
+ }
1077
+ var br = e.from_html('<div class="rounded-lg overflow-hidden animate-pulse bg-surface-primary border-default" role="status" aria-busy="true"><span class="sr-only svelte-1hpsukj">Loading ticket...</span> <div class="px-3 py-2.5 rounded-t-lg border-t border-l border-r border-border" aria-hidden="true"><div class="skeleton h-4 w-2/3 mb-2"></div> <div class="skeleton h-3 w-1/2"></div></div> <div class="flex items-center gap-2" aria-hidden="true"><div class="border w-6 rounded-full h-6 -ml-3 -mt-0.5 bg-card border-border"></div> <hr class="skeleton-divider w-full my-3 svelte-1hpsukj"/> <div class="border w-6 rounded-full h-6 -mr-3 -mt-0.5 bg-card border-border"></div></div> <div class="flex justify-between items-center px-3 py-2.5 rounded-b-lg -mt-0.5 border-b border-l border-r border-border" aria-hidden="true"><div class="space-y-1"><div class="h-4 rounded w-16 bg-bg-tertiary"></div> <div class="h-3 rounded w-20 bg-muted"></div></div> <div class="flex items-center gap-2"><div class="w-10 h-10 rounded-md bg-bg-tertiary"></div> <div class="w-10 h-10 rounded-md bg-muted"></div> <div class="w-10 h-10 rounded-md bg-bg-tertiary"></div></div></div></div>');
1078
+ function xr(H, t) {
1079
+ e.push(t, !0);
1080
+ let L = e.prop(t, "labels", 19, () => ({}));
1081
+ var x = br();
1082
+ e.template_effect(() => e.set_attribute(x, "aria-label", L().loadingTicketInfo || "Loading ticket information")), e.append(H, x), e.pop();
1083
+ }
1084
+ var yr = e.from_html('<div class="empty-state flex flex-col items-center justify-center py-12 px-6 text-center" role="status"><div class="empty-state-icon tone-muted mb-4" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z"></path><path d="M13 5v2"></path><path d="M13 17v2"></path><path d="M13 11v2"></path></svg></div> <h3> </h3> <p class="type-body tone-secondary max-w-72"> </p></div>'), kr = e.from_html('<div class="section-header bg-bg-secondary px-5 py-3"><h2 class="type-subheading tone-primary"> </h2></div>'), wr = e.from_html('<div role="group"><!> <div role="list"><!></div></div>'), Tr = e.from_html("<section></section>");
1085
+ function Cr(H, t) {
1086
+ e.push(t, !0);
1087
+ let L = e.prop(t, "venueFeesReady", 3, !1), x = e.prop(t, "tickets", 19, () => []), p = e.prop(t, "quantities", 19, () => ({})), s = e.prop(t, "donationAmounts", 19, () => ({})), A = e.prop(t, "revealHiddenTickets", 3, !1), a = e.prop(t, "revealTicketIds", 19, () => []), q = e.prop(
1088
+ t,
1089
+ "currentPromoRule",
1090
+ 3,
1091
+ null
1092
+ // Current applied promo code rule
1093
+ ), te = e.prop(
1094
+ t,
1095
+ "syncing",
1096
+ 3,
1097
+ !1
1098
+ // True while a cart-sync network call is in flight
1099
+ ), W = e.prop(t, "labels", 19, () => ({}));
1100
+ function ye(I) {
1101
+ const z = /* @__PURE__ */ new Date(), M = I.salesBegin || I.salesStart || I.saleBegin || I.saleStart || I.onSaleStart, E = I.salesEnd || I.saleEnd || I.onSaleEnd;
1102
+ return M && new Date(M) > z ? "scheduled" : E && new Date(E) < z ? "sales_ended" : "on_sale";
1103
+ }
1104
+ function Z(I) {
1105
+ return I.salesBegin || I.salesStart || I.saleBegin || I.saleStart || I.onSaleStart || null;
1106
+ }
1107
+ const j = e.derived(() => x().filter((I) => I.visibility === 0 || A() ? !0 : a()?.includes(I.ID)));
1108
+ function Te(I) {
1109
+ const z = [], M = [];
1110
+ for (const E of I) {
1111
+ const k = ye(E), f = E.minQuantity ?? 1, U = E.remainingCapacity, b = E.soldOut || U != null && f > U;
1112
+ k === "on_sale" && !b ? z.push(E) : M.push(E);
1113
+ }
1114
+ return [...z, ...M];
1115
+ }
1116
+ function _e(I) {
1117
+ const z = {};
1118
+ for (const M of I) {
1119
+ const E = M.TicketSection?.name || W().other || "Other";
1120
+ z[E] || (z[E] = []), z[E].push(M);
1121
+ }
1122
+ for (const M of Object.keys(z))
1123
+ z[M] = Te(z[M]);
1124
+ return z;
1125
+ }
1126
+ const Ae = e.derived(() => _e(e.get(j))), _ = e.derived(() => W().other || "Other"), oe = e.derived(() => Object.keys(e.get(Ae)).filter((I) => I !== e.get(_)).length > 0);
1127
+ var B = e.comment(), pe = e.first_child(B);
1128
+ {
1129
+ var T = (I) => {
1130
+ var z = yr(), M = e.sibling(e.child(z), 2), E = e.child(M, !0);
1131
+ e.reset(M);
1132
+ var k = e.sibling(M, 2), f = e.child(k, !0);
1133
+ e.reset(k), e.reset(z), e.template_effect(() => {
1134
+ e.set_attribute(z, "aria-label", W().noTicketsAvailable || "No tickets available"), e.set_class(M, 1, `mb-2 ${we.h3}`), e.set_text(E, W().noTicketsAvailable || "No tickets available"), e.set_text(f, W().noTicketsAvailableDescription || "There are currently no tickets available for this event.");
1135
+ }), e.append(I, z);
1136
+ }, fe = (I) => {
1137
+ var z = Tr();
1138
+ e.each(z, 21, () => Object.entries(e.get(Ae)), e.index, (M, E) => {
1139
+ var k = e.derived(() => e.to_array(e.get(E), 2));
1140
+ let f = () => e.get(k)[0], U = () => e.get(k)[1];
1141
+ var b = wr(), Q = e.child(b);
1142
+ {
1143
+ var ae = (me) => {
1144
+ var be = kr(), Ce = e.child(be), De = e.child(Ce, !0);
1145
+ e.reset(Ce), e.reset(be), e.template_effect(
1146
+ (O) => {
1147
+ e.set_attribute(Ce, "id", `section-${O ?? ""}`), e.set_text(De, f());
1148
+ },
1149
+ [() => f().replace(/\s+/g, "-").toLowerCase()]
1150
+ ), e.append(me, be);
1151
+ };
1152
+ e.if(Q, (me) => {
1153
+ e.get(oe) && f() !== e.get(_) && me(ae);
1154
+ });
1155
+ }
1156
+ var se = e.sibling(Q, 2), re = e.child(se);
1157
+ {
1158
+ var Be = (me) => {
1159
+ var be = e.comment(), Ce = e.first_child(be);
1160
+ e.each(Ce, 17, U, e.index, (De, O) => {
1161
+ const Ee = e.derived(() => e.get(O).visibility >= 2 && A() || a().includes(e.get(O).ID)), Oe = e.derived(() => q()?.discountTicketIds || []), ot = e.derived(() => e.get(Oe).length === 0 || e.get(Oe).includes(e.get(O).ID)), ze = e.derived(() => q()?.provideDiscount && e.get(ot) && (q()?.discountType === "%" || q()?.discountType === "$")), Ye = e.derived(() => (() => {
1162
+ if (!e.get(ze)) return null;
1163
+ const Ve = parseFloat(e.get(O).price) || 0, Ue = parseFloat(q()?.amount || "0") || 0;
1164
+ return q().discountType === "%" ? (Ve * (1 - Ue / 100)).toFixed(2) : q().discountType === "$" ? Math.max(0, Ve - Ue).toFixed(2) : null;
1165
+ })()), He = e.derived(() => ye(e.get(O))), rt = e.derived(() => Z(e.get(O))), Ne = e.derived(() => e.get(O).minQuantity ?? 1), Xe = e.derived(() => e.get(O).remainingCapacity), Re = e.derived(() => e.get(O).soldOut || e.get(Xe) !== null && e.get(Xe) !== void 0 && e.get(Ne) > e.get(Xe)), it = e.derived(() => e.get(O).type ?? 0);
1166
+ e.derived(() => e.get(it) === 2);
1167
+ {
1168
+ let Ve = e.derived(() => p()[e.get(O).ID] ?? 0), Ue = e.derived(() => e.get(O).totalCapacity ?? e.get(O).quantity ?? e.get(O).remainingCapacity), We = e.derived(() => e.get(O).minQuantity ?? 1), dt = e.derived(() => e.get(O).maxQuantity ?? null), Ke = e.derived(() => s()[e.get(O).ID] ?? "");
1169
+ hr(De, {
1170
+ get labels() {
1171
+ return W();
1172
+ },
1173
+ get title() {
1174
+ return e.get(O).name;
1175
+ },
1176
+ get description() {
1177
+ return e.get(O).description;
1178
+ },
1179
+ get price() {
1180
+ return e.get(O).price;
1181
+ },
1182
+ get discountedPrice() {
1183
+ return e.get(Ye);
1184
+ },
1185
+ get quantity() {
1186
+ return e.get(Ve);
1187
+ },
1188
+ get soldOut() {
1189
+ return e.get(Re);
1190
+ },
1191
+ get status() {
1192
+ return e.get(He);
1193
+ },
1194
+ get salesBegin() {
1195
+ return e.get(rt);
1196
+ },
1197
+ get salesEnd() {
1198
+ return e.get(O).salesEnd;
1199
+ },
1200
+ get remainingCapacity() {
1201
+ return e.get(O).remainingCapacity;
1202
+ },
1203
+ get totalCapacity() {
1204
+ return e.get(Ue);
1205
+ },
1206
+ get minQuantity() {
1207
+ return e.get(We);
1208
+ },
1209
+ get maxQuantity() {
1210
+ return e.get(dt);
1211
+ },
1212
+ get isRevealed() {
1213
+ return e.get(Ee);
1214
+ },
1215
+ get isDiscounted() {
1216
+ return e.get(ze);
1217
+ },
1218
+ get ticketType() {
1219
+ return e.get(it);
1220
+ },
1221
+ get donationAmount() {
1222
+ return e.get(Ke);
1223
+ },
1224
+ onincrement: () => t.handleQuantityChange(e.get(O).ID, 1),
1225
+ ondecrement: () => t.handleQuantityChange(e.get(O).ID, -1),
1226
+ ondonationchange: ($e) => t.handleDonationChange?.(e.get(O).ID, $e),
1227
+ get syncing() {
1228
+ return te();
1229
+ }
1230
+ });
1231
+ }
1232
+ }), e.append(me, be);
1233
+ }, xe = (me) => {
1234
+ var be = e.comment(), Ce = e.first_child(be);
1235
+ e.each(Ce, 16, () => Array(2), e.index, (De, O) => {
1236
+ xr(De, {});
1237
+ }), e.append(me, be);
1238
+ };
1239
+ e.if(re, (me) => {
1240
+ L() ? me(Be) : me(xe, -1);
1241
+ });
1242
+ }
1243
+ e.reset(se), e.reset(b), e.template_effect(
1244
+ (me, be) => {
1245
+ e.set_class(b, 1, e.clsx(e.get(oe) && f() !== e.get(_) ? "ticket-section-group border border-border rounded-lg overflow-hidden" : "")), e.set_attribute(b, "aria-labelledby", me), e.set_class(se, 1, `space-y-4 ${e.get(oe) && f() !== e.get(_) ? "p-4" : ""}`), e.set_attribute(se, "aria-label", be);
1246
+ },
1247
+ [
1248
+ () => e.get(oe) && f() !== e.get(_) ? `section-${f().replace(/\s+/g, "-").toLowerCase()}` : void 0,
1249
+ () => (W().ticketsInSection || "Tickets in {section}").replace("{section}", f())
1250
+ ]
1251
+ ), e.append(M, b);
1252
+ }), e.reset(z), e.template_effect(() => e.set_attribute(z, "aria-label", W().availableTickets || "Available tickets")), e.append(I, z);
1253
+ };
1254
+ e.if(pe, (I) => {
1255
+ L() && e.get(j).length === 0 ? I(T) : I(fe, -1);
1256
+ });
1257
+ }
1258
+ e.append(H, B), e.pop();
1259
+ }
1260
+ const Dr = ta("PromocodeInput");
1261
+ var Jt = e.from_html('<div class="self-start mt-5"><!></div>'), Ir = e.from_html('<p id="promo-hint" class="promo-message success mt-2 body-sm text-accent-success" role="status" aria-live="polite"> </p>'), Sr = e.from_html('<p id="promo-error" class="sr-only svelte-ztoygy" role="alert"> </p>'), Ar = e.from_html('<div class="promo-section p-4 md:p-5" role="group" aria-labelledby="promo-label"><span id="promo-label" class="sr-only svelte-ztoygy"> </span> <div class="promo-input-wrapper flex gap-2 items-start"><div class="flex-1"><!></div> <!></div> <!> <!></div>');
1262
+ function Pr(H, t) {
1263
+ e.push(t, !0);
1264
+ let L = e.prop(t, "eventID", 3, ""), x = e.prop(t, "labels", 19, () => ({})), p = e.state(""), s = e.state(!1), A = e.state(""), a = e.state(""), q = e.state(!1), te = e.state(!1);
1265
+ const W = async () => {
1266
+ const k = e.get(p).trim().toUpperCase();
1267
+ if (e.set(A, ""), e.set(a, ""), e.set(q, !1), !k) {
1268
+ e.set(A, x().pleaseEnterPromoCode || "Please enter a promo code.", !0), e.set(s, !0);
1269
+ return;
1270
+ }
1271
+ e.set(te, !0);
1272
+ try {
1273
+ const f = await _a(L(), k);
1274
+ if (f.valid) {
1275
+ e.set(q, !0);
1276
+ let U = 0;
1277
+ const b = [];
1278
+ if (f.revealHiddenTickets && b.push(x().hiddenTicketsVisible || "Hidden tickets are now visible."), f.provideDiscount) {
1279
+ const ae = parseFloat(String(f.amount || "0")) || 0;
1280
+ U = ae, f.discountType === "fixed" ? b.push((x().dollarDiscountAvailable || "A {amount} discount is available.").replace("{amount}", ee(
1281
+ ae
1282
+ /* FIXME(canonical-cleanup:toFixed): heuristic guess — verify this is USD (not cents); when migrating to TS, add `as USD` brand cast at the API-response-transform layer. */
1283
+ ))) : f.discountType === "percentage" && b.push((x().percentDiscountAvailable || "A {amount}% discount is available.").replace("{amount}", String(ae)));
1284
+ }
1285
+ e.set(
1286
+ a,
1287
+ b.length > 0 ? `${(x().promoApplied || "{code} applied.").replace("{code}", k)} ${b.join(" ")}` : (x().promoApplied || "{code} applied.").replace("{code}", k),
1288
+ !0
1289
+ );
1290
+ const Q = { expires: 1, secure: !0, sameSite: "none", path: "/" };
1291
+ gt(`checkout-promocode-${L()}`, k, Q), gt("checkout-promo-discount", U.toString(), Q), gt(`checkout-promo-reveal-${L()}`, f.revealHiddenTickets ? "1" : "0", Q), gt(`checkout-promo-reveal-ids-${L()}`, JSON.stringify(f.revealTicketIds || []), Q), gt(`checkout-promo-discount-type-${L()}`, f.discountType || "", Q), t.onpromoChange?.({
1292
+ code: k,
1293
+ error: "",
1294
+ hint: e.get(a),
1295
+ discount: U,
1296
+ provideDiscount: f.provideDiscount || !1,
1297
+ discountType: f.discountType || "",
1298
+ discountTicketIds: (
1299
+ /** @type {any} */
1300
+ f.discountTicketIds || []
1301
+ ),
1302
+ // Which tickets the discount applies to
1303
+ revealHiddenTickets: f.revealHiddenTickets || !1,
1304
+ revealTicketIds: f.revealTicketIds || [],
1305
+ isApplied: !0
1306
+ });
1307
+ } else
1308
+ e.set(A, x().invalidOrExpiredPromoCode || "Invalid or expired promo code.", !0), e.set(s, !0), t.onpromoChange?.({
1309
+ code: k,
1310
+ error: e.get(A),
1311
+ hint: "",
1312
+ discount: 0,
1313
+ provideDiscount: !1,
1314
+ discountType: "",
1315
+ discountTicketIds: [],
1316
+ revealHiddenTickets: !1,
1317
+ revealTicketIds: [],
1318
+ isApplied: !1
1319
+ });
1320
+ } catch (f) {
1321
+ Dr.error("Error validating promo code:", f), e.set(A, x().unableToValidatePromoCode || "Unable to validate promo code. Please try again.", !0), e.set(s, !0);
1322
+ } finally {
1323
+ e.set(te, !1);
1324
+ }
1325
+ }, ye = () => {
1326
+ e.set(p, ""), e.set(A, ""), e.set(a, ""), e.set(q, !1), e.set(s, !1), at(`checkout-promocode-${L()}`), at("checkout-promo-discount"), at(`checkout-promo-reveal-${L()}`), at(`checkout-promo-reveal-ids-${L()}`), at(`checkout-promo-discount-type-${L()}`), t.onpromoChange?.({
1327
+ code: "",
1328
+ error: "",
1329
+ hint: "",
1330
+ discount: 0,
1331
+ provideDiscount: !1,
1332
+ discountType: "",
1333
+ discountTicketIds: [],
1334
+ revealHiddenTickets: !1,
1335
+ revealTicketIds: [],
1336
+ isApplied: !1
1337
+ });
1338
+ }, Z = (k) => {
1339
+ e.set(p, k.target.value, !0), e.get(A) && e.set(A, "");
1340
+ }, j = (k) => {
1341
+ k.key === "Enter" && (k.preventDefault(), W());
1342
+ };
1343
+ $t(() => {
1344
+ const k = et(`checkout-promocode-${L()}`);
1345
+ k && (e.set(p, k, !0), W());
1346
+ });
1347
+ var Te = Ar(), _e = e.child(Te), Ae = e.child(_e, !0);
1348
+ e.reset(_e);
1349
+ var _ = e.sibling(_e, 2), oe = e.child(_), B = e.child(oe);
1350
+ {
1351
+ let k = e.derived(() => x().promoCode || "Promo code"), f = e.derived(() => e.get(q) || e.get(te)), U = e.derived(() => e.get(s) ? e.get(A) : ""), b = e.derived(() => e.get(a) ? "promo-hint" : e.get(A) ? "promo-error" : void 0);
1352
+ ea(B, {
1353
+ get label() {
1354
+ return e.get(k);
1355
+ },
1356
+ size: "lg",
1357
+ type: "text",
1358
+ oninputchange: Z,
1359
+ onkeydown: j,
1360
+ onblur: () => e.set(s, !0),
1361
+ get disabled() {
1362
+ return e.get(f);
1363
+ },
1364
+ get errorText() {
1365
+ return e.get(U);
1366
+ },
1367
+ get "aria-describedby"() {
1368
+ return e.get(b);
1369
+ },
1370
+ get value() {
1371
+ return e.get(p);
1372
+ },
1373
+ set value(Q) {
1374
+ e.set(p, Q, !0);
1375
+ }
1376
+ });
1377
+ }
1378
+ e.reset(oe);
1379
+ var pe = e.sibling(oe, 2);
1380
+ {
1381
+ var T = (k) => {
1382
+ var f = Jt(), U = e.child(f);
1383
+ {
1384
+ let b = e.derived(() => x().removePromoCode || "Remove promo code"), Q = e.derived(() => e.get(p));
1385
+ Je(U, {
1386
+ variant: "outline",
1387
+ onclick: ye,
1388
+ class: "h-10",
1389
+ get "aria-label"() {
1390
+ return `${e.get(b) ?? ""} ${e.get(Q) ?? ""}`;
1391
+ },
1392
+ children: (ae, se) => {
1393
+ e.next();
1394
+ var re = e.text();
1395
+ e.template_effect(() => e.set_text(re, x().remove || "Remove")), e.append(ae, re);
1396
+ },
1397
+ $$slots: { default: !0 }
1398
+ });
1399
+ }
1400
+ e.reset(f), e.append(k, f);
1401
+ }, fe = (k) => {
1402
+ var f = Jt(), U = e.child(f);
1403
+ {
1404
+ let b = e.derived(() => e.get(te) ? x().checkingPromoCode || "Checking promo code" : x().applyPromoCode || "Apply promo code");
1405
+ Je(U, {
1406
+ onclick: W,
1407
+ get disabled() {
1408
+ return e.get(te);
1409
+ },
1410
+ class: "h-10",
1411
+ get "aria-label"() {
1412
+ return e.get(b);
1413
+ },
1414
+ children: (Q, ae) => {
1415
+ e.next();
1416
+ var se = e.text();
1417
+ e.template_effect(() => e.set_text(se, e.get(te) ? x().checking || "Checking..." : x().apply || "Apply")), e.append(Q, se);
1418
+ },
1419
+ $$slots: { default: !0 }
1420
+ });
1421
+ }
1422
+ e.reset(f), e.append(k, f);
1423
+ };
1424
+ e.if(pe, (k) => {
1425
+ e.get(q) ? k(T) : k(fe, -1);
1426
+ });
1427
+ }
1428
+ e.reset(_);
1429
+ var I = e.sibling(_, 2);
1430
+ {
1431
+ var z = (k) => {
1432
+ var f = Ir(), U = e.child(f, !0);
1433
+ e.reset(f), e.template_effect(() => e.set_text(U, e.get(a))), e.append(k, f);
1434
+ };
1435
+ e.if(I, (k) => {
1436
+ e.get(a) && k(z);
1437
+ });
1438
+ }
1439
+ var M = e.sibling(I, 2);
1440
+ {
1441
+ var E = (k) => {
1442
+ var f = Sr(), U = e.child(f, !0);
1443
+ e.reset(f), e.template_effect(() => e.set_text(U, e.get(A))), e.append(k, f);
1444
+ };
1445
+ e.if(M, (k) => {
1446
+ e.get(A) && e.get(s) && k(E);
1447
+ });
1448
+ }
1449
+ e.reset(Te), e.template_effect(() => e.set_text(Ae, x().promoCodeEntry || "Promo code entry")), e.append(H, Te), e.pop();
1450
+ }
1451
+ var Er = e.from_html('<div class="flex justify-between items-center pb-4 border-b border-border" aria-hidden="true"><div><div class="h-4 rounded w-24 mb-2 bg-bg-tertiary"></div> <div class="h-3 rounded w-16 bg-bg-tertiary"></div></div> <div class="h-4 rounded w-12 bg-bg-tertiary"></div></div>'), Or = e.from_html('<div class="hidden md:block h-fit rounded-lg p-5 space-y-5 animate-pulse bg-card border border-border" role="status" aria-busy="true"><span class="sr-only svelte-19v1kvb">Loading order summary...</span> <div class="h-6 rounded w-2/3 bg-bg-tertiary" aria-hidden="true"></div> <!> <div class="space-y-3 pt-4" aria-hidden="true"><div class="flex justify-between"><div class="h-4 rounded w-20 bg-bg-tertiary"></div> <div class="h-4 rounded w-12 bg-bg-tertiary"></div></div> <div class="flex justify-between"><div class="h-4 rounded w-16 bg-bg-tertiary"></div> <div class="h-4 rounded w-12 bg-bg-tertiary"></div></div> <div class="flex justify-between"><div class="h-4 rounded w-12 bg-bg-tertiary"></div> <div class="h-4 rounded w-12 bg-bg-tertiary"></div></div></div> <div class="h-10 rounded mt-5 bg-muted" aria-hidden="true"></div></div>');
1452
+ function Fr(H, t) {
1453
+ e.push(t, !0);
1454
+ let L = e.prop(t, "labels", 19, () => ({}));
1455
+ var x = Or(), p = e.sibling(e.child(x), 4);
1456
+ e.each(p, 16, () => Array(2), e.index, (s, A) => {
1457
+ var a = Er();
1458
+ e.append(s, a);
1459
+ }), e.next(4), e.reset(x), e.template_effect(() => e.set_attribute(x, "aria-label", L().loadingOrderSummary || "Loading order summary")), e.append(H, x), e.pop();
1460
+ }
1461
+ var Mr = e.from_html('<div class="w-14 h-14 shrink-0 rounded-md overflow-hidden bg-bg-secondary" aria-hidden="true"><!></div>'), jr = e.from_html("<p> </p>"), Lr = e.from_html('<div class="flex-row-2 shrink-0"><span class="price-md"> </span> <button type="button" class="sc-btn-icon btn-icon-ghost w-7 h-7"><!></button></div>'), Br = e.from_html('<header class="flex items-center gap-3 px-4 md:px-5 py-4 border-b border-border"><button type="button" class="p-2 -ml-2 rounded-full transition-colors shrink-0 tone-secondary hover:bg-bg-secondary"><!></button> <!> <div class="flex-1 min-w-0"><h1 class="heading-lg break-words"> </h1> <div class="body-sm tone-secondary"><p><time> </time></p> <p> </p> <!></div></div> <!></header>');
1462
+ function zr(H, t) {
1463
+ e.push(t, !0);
1464
+ let L = e.prop(t, "variant", 3, "tickets"), x = e.prop(t, "total", 3, 0), p = e.prop(t, "onCancel", 3, () => {
1465
+ }), s = e.prop(t, "onInfoClick", 3, () => {
1466
+ }), A = e.prop(t, "labels", 19, () => ({})), a = e.derived(() => t.event.timeZone || t.event.timezone || ma()), q = e.derived(() => t.event.displayEndTime === !0), te = e.derived(() => t.event.displayDoorsTime === !0), W = e.derived(() => L() === "checkout"), ye = e.derived(() => x() > 0 ? `${ee(x())}` : (
1467
+ /* FIXME(canonical-cleanup:toFixed): heuristic guess — verify this is USD (not cents); when migrating to TS, add `as USD` brand cast at the API-response-transform layer. */
1468
+ A().free || "Free"
1469
+ ));
1470
+ var Z = Br(), j = e.child(Z), Te = e.child(j);
1471
+ ha(Te, { size: "20" }), e.reset(j);
1472
+ var _e = e.sibling(j, 2);
1473
+ {
1474
+ var Ae = (b) => {
1475
+ var Q = Mr(), ae = e.child(Q);
1476
+ Oa(ae, {
1477
+ get src() {
1478
+ return t.event.image;
1479
+ },
1480
+ alt: "",
1481
+ class: "w-full h-full"
1482
+ }), e.reset(Q), e.append(b, Q);
1483
+ };
1484
+ e.if(_e, (b) => {
1485
+ t.event.image && b(Ae);
1486
+ });
1487
+ }
1488
+ var _ = e.sibling(_e, 2), oe = e.child(_), B = e.child(oe, !0);
1489
+ e.reset(oe);
1490
+ var pe = e.sibling(oe, 2), T = e.child(pe), fe = e.child(T), I = e.child(fe, !0);
1491
+ e.reset(fe), e.reset(T);
1492
+ var z = e.sibling(T, 2), M = e.child(z, !0);
1493
+ e.reset(z);
1494
+ var E = e.sibling(z, 2);
1495
+ {
1496
+ var k = (b) => {
1497
+ var Q = jr(), ae = e.child(Q, !0);
1498
+ e.reset(Q), e.template_effect((se) => e.set_text(ae, se), [
1499
+ () => (A().doorsOpen || "Doors open {time}").replace("{time}", ka(t.event.doorsOpenTime, e.get(a)))
1500
+ ]), e.append(b, Q);
1501
+ };
1502
+ e.if(E, (b) => {
1503
+ e.get(te) && t.event.doorsOpenTime && b(k);
1504
+ });
1505
+ }
1506
+ e.reset(pe), e.reset(_);
1507
+ var f = e.sibling(_, 2);
1508
+ {
1509
+ var U = (b) => {
1510
+ var Q = Lr(), ae = e.child(Q), se = e.child(ae, !0);
1511
+ e.reset(ae);
1512
+ var re = e.sibling(ae, 2), Be = e.child(re);
1513
+ za(Be, { size: "20" }), e.reset(re), e.reset(Q), e.template_effect(
1514
+ (xe) => {
1515
+ e.set_attribute(ae, "aria-label", xe), e.set_text(se, e.get(ye)), e.set_attribute(re, "aria-label", A().viewOrderDetails || "View order details");
1516
+ },
1517
+ [
1518
+ () => (A().ariaOrderTotal || "Order total: {total}").replace("{total}", e.get(ye))
1519
+ ]
1520
+ ), e.delegated("click", re, function(...xe) {
1521
+ s()?.apply(this, xe);
1522
+ }), e.append(b, Q);
1523
+ };
1524
+ e.if(f, (b) => {
1525
+ e.get(W) && b(U);
1526
+ });
1527
+ }
1528
+ e.reset(Z), e.template_effect(
1529
+ (b, Q) => {
1530
+ e.set_attribute(j, "aria-label", e.get(W) ? A().goBackToTicketSelection || "Go back to ticket selection" : A().goBackToEventDetails || "Go back to event details"), e.set_text(B, t.event.name), e.set_attribute(pe, "aria-label", A().ariaEventDateTime || "Event date and time"), e.set_attribute(fe, "datetime", t.event.startDateTime), e.set_text(I, b), e.set_text(M, Q);
1531
+ },
1532
+ [
1533
+ () => ba(t.event.startDateTime, e.get(a)),
1534
+ () => e.get(q) && t.event.endDateTime ? xa(t.event.startDateTime, t.event.endDateTime, e.get(a)) : ya(t.event.startDateTime, e.get(a))
1535
+ ]
1536
+ ), e.delegated("click", j, function(...b) {
1537
+ p()?.apply(this, b);
1538
+ }), e.append(H, Z), e.pop();
1539
+ }
1540
+ e.delegate(["click"]);
1541
+ const qe = ta("CartView");
1542
+ var Qr = e.from_html('<div class="flex items-center justify-center py-12" aria-live="polite"><p class="tone-secondary"> </p></div>'), qr = e.from_html('<div class="text-center py-8" role="alert"><p class="text-accent-danger mb-2"> </p> <button class="go-back-btn text-white mt-4 px-4 py-2 rounded-lg svelte-19g9ni4"> </button></div>'), Nr = e.from_html('<div class="text-center py-12" role="alert"><p> </p> <p class="tone-secondary mb-6"> </p> <button class="go-back-btn text-white px-4 py-2 rounded-lg svelte-19g9ni4"> </button></div>'), Rr = e.from_html('<div class="text-center py-12" role="alert"><p>This event has ended</p> <p class="tone-secondary mb-6">Tickets are no longer available for this event.</p> <button class="go-back-btn px-4 py-2 rounded-lg svelte-19g9ni4" aria-label="Go back to event details">Go back</button></div>'), Yt = e.from_html('<div class="px-4 md:px-5 pt-3"><!></div>'), Gr = e.from_html('<div class="hidden md:block w-80 h-[calc(100vh-40px)]"></div>'), Hr = e.from_html('<div class="w-full flex md:gap-5 flex-wrap"><div class="flex-1 pb-16 md:pb-0"><div class="bg-card border-border rounded-lg md:shadow md:border py-3"><!> <!> <!> <div class="space-y-4 md:px-5"><!></div></div></div> <!> <div><!></div></div>'), Vr = e.from_html('<h3 id="error-modal-title" class="heading-lg"><!></h3>'), Xt = e.from_html('<p class="body-sm"> </p> <p class="tone-secondary mt-2"> </p>', 1), Ur = e.from_html('<div id="error-modal-description"><!></div>'), Wr = e.from_html("<!> <!>", 1), Zr = e.from_html('<div role="group" aria-label="Error modal actions"><!></div>'), Jr = e.from_html('<h3 id="expired-modal-title" class="heading-lg"> </h3>'), Yr = e.from_html('<p id="expired-modal-description" class="body-sm tone-secondary"> </p>'), Xr = e.from_html('<h3 id="availability-modal-title" class="heading-lg"> </h3>'), Kr = e.from_html('<li class="tone-secondary type-body"><span class="type-label"> </span> <!></li>'), Kt = e.from_html('<p class="tone-secondary mt-4"> </p>'), $r = e.from_html('<div id="availability-modal-description"><p class="tone-secondary mb-4"> </p> <ul class="space-y-2"></ul> <!></div>'), ei = e.from_html('<div role="group" aria-label="Availability modal actions"><!> <!></div>'), ti = e.from_html('<div class="px-5 md:px-10 py-12 bg-card"><!></div> <!> <!> <!>', 1);
1543
+ function vi(H, t) {
1544
+ e.push(t, !0);
1545
+ let L = e.prop(t, "organizationId", 3, ""), x = e.prop(t, "venueId", 3, ""), p = e.prop(t, "initialEventData", 3, null), s = e.prop(t, "labels", 19, () => ({})), A = e.state(!1), a = e.state(null), q = e.state(null), te = e.state(e.proxy([])), W = e.state(!1), ye = e.state(!0), Z = e.state(null), j = e.state(!1), Te = e.state(!1), _e = e.state(!1), Ae = e.state(0), _ = e.state(void 0), oe = e.state(void 0), B = e.state(e.proxy({})), pe = e.state(""), T = e.state(""), fe = e.state(0), I = e.state(""), z = e.state(!1), M = e.state(0), E = e.state(!1), k = null, f = null;
1546
+ const U = Mt(), b = Mt();
1547
+ let Q = e.state(
1548
+ "cart_failed"
1549
+ // 'cart_failed' | 'cart_success_network_error'
1550
+ ), ae = e.state(!1);
1551
+ const se = Mt();
1552
+ let re = e.state(e.proxy(
1553
+ []
1554
+ // Array of {ticketId, ticketName, requestedQty, availableQty}
1555
+ )), Be = e.state(0), xe = e.state(0), me = e.derived(() => e.get(a)?.availableTickets?.filter(
1556
+ /** @param {any} t */
1557
+ (n) => n.visibility === 0
1558
+ )?.every(
1559
+ /** @param {any} t */
1560
+ (n) => n.price === 0
1561
+ )), be = e.derived(() => e.get(me) ? 0 : tt(Object.entries(e.get(B)).reduce(
1562
+ (n, [i, v]) => {
1563
+ const u = e.get(a)?.availableTickets?.find((r) => r.id == i);
1564
+ return u ? n + tt(v * u.price) : n;
1565
+ },
1566
+ 0
1567
+ ))), Ce = 0, De = e.state(0), O = e.state(0), Ee = e.state(!1), Oe = null;
1568
+ e.derived(() => tt(e.get(be) + Ce + e.get(De)));
1569
+ let ot = e.derived(() => $a(e.get(be), e.get(fe), e.get(I))), ze = e.state(!1), Ye = !1, He = e.state(!1);
1570
+ async function rt(n, i) {
1571
+ if (e.get(He) || e.get(ze))
1572
+ return;
1573
+ const v = {
1574
+ ...e.get(B),
1575
+ [n]: Math.max(0, (e.get(B)[n] ?? 0) + i)
1576
+ }, u = Object.values(v).reduce((r, o) => r + o, 0);
1577
+ if (e.set(B, v, !0), e.get(a) && Qt({
1578
+ eventID: e.get(a).eventID,
1579
+ quantities: e.get(B),
1580
+ promocode: e.get(pe),
1581
+ promoDiscountAmount: e.get(fe),
1582
+ tickets: e.get(a).availableTickets
1583
+ }), u > 0 && !e.get(E))
1584
+ await Ne();
1585
+ else if (e.get(E)) {
1586
+ const r = typeof document < "u" ? et("checkout-cartid") ?? null : null;
1587
+ if (!r) return;
1588
+ e.set(He, !0);
1589
+ try {
1590
+ await Pa(r, e.get(B)) || qe.warn("Cart quantity sync failed; UI may not match server");
1591
+ } finally {
1592
+ e.set(He, !1);
1593
+ }
1594
+ }
1595
+ }
1596
+ async function Ne() {
1597
+ if (!(e.get(ze) || e.get(E))) {
1598
+ e.set(ze, !0);
1599
+ try {
1600
+ const n = await qt({
1601
+ eventID: e.get(a).eventID,
1602
+ quantities: e.get(B),
1603
+ promoCode: e.get(pe) || void 0,
1604
+ // Attribution (MISSION-TRUTH C2) rides additively on cart-create.
1605
+ attribution: Nt()
1606
+ });
1607
+ n?.success && n.uuid && (Ye = !0, g(), Rt(e.get(a).eventID, null, e.get(a).venueID || e.get(a).venueId || null));
1608
+ } catch (n) {
1609
+ qe.error("Error creating cart on ticket select:", n);
1610
+ } finally {
1611
+ e.set(ze, !1);
1612
+ }
1613
+ }
1614
+ }
1615
+ function Xe() {
1616
+ if (!e.get(a)?.availableTickets) return;
1617
+ const i = e.get(a).availableTickets.filter((v) => v.visibility === 0).map((v) => Number(v.price) || 0);
1618
+ if (i.length === 0) {
1619
+ e.set(Be, e.set(xe, 0), !0);
1620
+ return;
1621
+ }
1622
+ e.set(Be, ee(
1623
+ Math.min(...i)
1624
+ /* FIXME(canonical-cleanup:toFixed): heuristic guess — verify this is USD (not cents); when migrating to TS, add `as USD` brand cast at the API-response-transform layer. */
1625
+ ), !0), e.set(xe, ee(
1626
+ Math.max(...i)
1627
+ /* FIXME(canonical-cleanup:toFixed): heuristic guess — verify this is USD (not cents); when migrating to TS, add `as USD` brand cast at the API-response-transform layer. */
1628
+ ), !0);
1629
+ }
1630
+ async function Re() {
1631
+ const n = [];
1632
+ for (const [i, v] of Object.entries(e.get(B))) {
1633
+ if (v <= 0) continue;
1634
+ const u = e.get(a)?.availableTickets?.find((r) => r.ID == i);
1635
+ !u || u.price === 0 || n.push({
1636
+ amountCents: Math.round(u.price * 100) * v,
1637
+ reference: `ticket-${i}`,
1638
+ quantity: v
1639
+ });
1640
+ }
1641
+ if (n.length === 0) {
1642
+ e.set(O, 0), e.set(De, 0), e.set(Ee, !1);
1643
+ return;
1644
+ }
1645
+ Oe && Oe.abort(), Oe = new AbortController(), e.set(Ee, !0);
1646
+ try {
1647
+ const i = await fetch("https://get-micdrop.com/api/v2/public/tax-preview", {
1648
+ method: "POST",
1649
+ headers: { "Content-Type": "application/json" },
1650
+ signal: Oe.signal,
1651
+ body: JSON.stringify({ venueId: Number(e.get(a).venueID), lineItems: n })
1652
+ });
1653
+ if (!i.ok) {
1654
+ i.status === 422 ? qe.debug("Tax preview: venue has no tax address, falling back to 0") : qe.error("Tax preview failed:", i.status), e.set(O, 0), e.set(De, 0), e.set(Ee, !1);
1655
+ return;
1656
+ }
1657
+ const v = await i.json();
1658
+ e.set(O, (v.taxTotal ?? 0) / 100), e.set(De, e.get(O), !0);
1659
+ } catch (i) {
1660
+ if (i.name === "AbortError") return;
1661
+ qe.error("Tax preview error:", i), e.set(O, 0), e.set(De, 0);
1662
+ } finally {
1663
+ Oe?.signal?.aborted || e.set(Ee, !1);
1664
+ }
1665
+ }
1666
+ function it() {
1667
+ if (!e.get(a)) return;
1668
+ e.set(pe, et(`checkout-promocode-${e.get(a).eventID}`) || "", !0);
1669
+ const n = parseFloat(et("checkout-promo-discount") || "0");
1670
+ e.set(T, e.get(pe) ? `${e.get(pe)} applied.` : "", !0), e.set(fe, n, !0), e.set(I, et(`checkout-promo-discount-type-${e.get(a).eventID}`) || "", !0);
1671
+ }
1672
+ async function Ve() {
1673
+ try {
1674
+ const n = await Ot(t.eventId), i = [];
1675
+ for (const [v, u] of Object.entries(e.get(B))) {
1676
+ if (u <= 0) continue;
1677
+ const r = (
1678
+ /** @type {any} */
1679
+ n.find((h) => String(h.id) === String(v))
1680
+ );
1681
+ if (!r) continue;
1682
+ const o = r.remainingCapacity ?? r.quantity ?? 1 / 0;
1683
+ if (o < u) {
1684
+ const h = e.get(a)?.availableTickets?.find((R) => String(R.id) === String(v));
1685
+ i.push({
1686
+ ticketId: v,
1687
+ ticketName: h?.name || r?.name || "Ticket",
1688
+ requestedQty: u,
1689
+ availableQty: Math.max(0, o)
1690
+ });
1691
+ }
1692
+ }
1693
+ return i;
1694
+ } catch (n) {
1695
+ return qe.error("Error checking ticket availability:", n), [];
1696
+ }
1697
+ }
1698
+ async function Ue() {
1699
+ if (!e.get(a)) return;
1700
+ e.set(W, !0), e.set(ae, !1);
1701
+ const n = await Ve();
1702
+ if (n.length > 0) {
1703
+ e.set(W, !1), e.set(re, n, !0), se.open();
1704
+ return;
1705
+ }
1706
+ await We();
1707
+ }
1708
+ async function We() {
1709
+ if (e.set(W, !0), Qt({
1710
+ eventID: e.get(a).eventID,
1711
+ quantities: e.get(B),
1712
+ promocode: e.get(pe),
1713
+ promoDiscountAmount: e.get(fe),
1714
+ tickets: e.get(a).availableTickets
1715
+ }), typeof document < "u" ? et("checkout-cartid") ?? null : null)
1716
+ e.set(ae, !0);
1717
+ else
1718
+ try {
1719
+ const i = await qt({
1720
+ eventID: e.get(a).eventID,
1721
+ quantities: e.get(B),
1722
+ promoCode: e.get(pe) || void 0,
1723
+ // Attribution (MISSION-TRUTH C2) rides additively on cart-create.
1724
+ attribution: Nt()
1725
+ });
1726
+ if (!i) {
1727
+ e.set(W, !1), e.set(Q, "cart_failed"), b.open();
1728
+ return;
1729
+ }
1730
+ e.set(ae, !0), i.success && Rt(e.get(a).eventID, null, e.get(a).venueID || e.get(a).venueId || null);
1731
+ } catch (i) {
1732
+ qe.error("Order initiation failed:", i), e.set(W, !1), e.set(Q, "cart_failed"), b.open();
1733
+ return;
1734
+ }
1735
+ try {
1736
+ if (t.onNavigateToCheckout) {
1737
+ t.onNavigateToCheckout(t.eventId, e.get(a)), e.set(W, !1);
1738
+ return;
1739
+ }
1740
+ const i = new URLSearchParams();
1741
+ L() && i.set("orgId", L()), x() && i.set("venueId", x()), i.set("event_id", t.eventId), i.set("subroute", "checkout");
1742
+ const v = `/?${i.toString()}`;
1743
+ jt(v, { noScroll: !1 }), e.set(W, !1);
1744
+ } catch (i) {
1745
+ qe.error("Navigation failed after cart creation:", i), e.set(W, !1), e.set(Q, "cart_success_network_error"), b.open();
1746
+ }
1747
+ }
1748
+ function dt() {
1749
+ for (const i of e.get(re))
1750
+ i.availableQty > 0 ? e.get(B)[i.ticketId] = i.availableQty : delete e.get(B)[i.ticketId];
1751
+ e.set(B, { ...e.get(
1752
+ B
1753
+ // Trigger reactivity
1754
+ ) }, !0), se.close(), e.set(re, [], !0), Object.values(e.get(B)).reduce((i, v) => i + v, 0) > 0 ? We() : de();
1755
+ }
1756
+ function Ke() {
1757
+ se.close(), e.set(re, [], !0), de();
1758
+ }
1759
+ function $e() {
1760
+ b.close(), e.get(Q) === "cart_failed" && de();
1761
+ }
1762
+ function m() {
1763
+ b.close(), window.location.reload();
1764
+ }
1765
+ function y() {
1766
+ e.set(Te, window.innerWidth < 767);
1767
+ }
1768
+ let S = !1;
1769
+ function N() {
1770
+ S || (window.requestAnimationFrame(() => {
1771
+ ge(), S = !1;
1772
+ }), S = !0);
1773
+ }
1774
+ function ge() {
1775
+ if (e.get(Te) || !e.get(oe) || !e.get(_)) {
1776
+ e.set(_e, !1);
1777
+ return;
1778
+ }
1779
+ const n = e.get(oe).getBoundingClientRect();
1780
+ if (e.set(_e, n.top <= 20), e.get(_e)) {
1781
+ const i = e.get(_).getBoundingClientRect();
1782
+ e.set(Ae, i.left + i.width - 340 - 40);
1783
+ }
1784
+ }
1785
+ function de() {
1786
+ if (e.get(a) && Ta(e.get(a).eventID), t.onNavigateBack)
1787
+ t.onNavigateBack();
1788
+ else {
1789
+ const n = new URLSearchParams(window.location.search);
1790
+ n.set("subroute", "details");
1791
+ const i = `/?${n.toString()}`;
1792
+ jt(i, {});
1793
+ }
1794
+ }
1795
+ let ce = null;
1796
+ async function d() {
1797
+ ce && localStorage.removeItem(`checkout-expiry-${ce}`), at("checkout-cartid"), ce = null, e.set(E, !1), e.set(M, 0), U.open();
1798
+ }
1799
+ async function g() {
1800
+ if (e.get(E)) return;
1801
+ if (e.set(E, !0), ce = typeof document < "u" ? et("checkout-cartid") ?? null : null, e.set(M, 900), ce) {
1802
+ const v = localStorage.getItem(
1803
+ // @storage-escape: cart checkout-expiry persistence (intentional raw localStorage)
1804
+ `checkout-expiry-${ce}`
1805
+ );
1806
+ if (v) {
1807
+ const u = Math.max(0, Math.floor((parseInt(v, 10) - Date.now()) / 1e3));
1808
+ if (u > 0)
1809
+ e.set(M, u, !0);
1810
+ else {
1811
+ await d();
1812
+ return;
1813
+ }
1814
+ } else if (Ye)
1815
+ e.set(M, 900), localStorage.setItem(
1816
+ // @storage-escape: cart checkout-expiry persistence (intentional raw localStorage)
1817
+ `checkout-expiry-${ce}`,
1818
+ String(Date.now() + 900 * 1e3)
1819
+ );
1820
+ else {
1821
+ await d();
1822
+ return;
1823
+ }
1824
+ }
1825
+ const n = () => {
1826
+ if (!ce) return;
1827
+ const v = parseInt(
1828
+ localStorage.getItem(`checkout-expiry-${ce}`) || "0",
1829
+ // @storage-escape: cart checkout-expiry persistence (intentional raw localStorage)
1830
+ 10
1831
+ );
1832
+ v && e.set(M, Math.max(0, Math.floor((v - Date.now()) / 1e3)), !0);
1833
+ };
1834
+ k = setInterval(
1835
+ () => {
1836
+ n(), e.get(M) <= 0 && (clearInterval(k), e.set(E, !1), U.open(), ce && localStorage.removeItem(`checkout-expiry-${ce}`));
1837
+ },
1838
+ 1e3
1839
+ ), f = () => {
1840
+ typeof document < "u" && document.visibilityState === "visible" && n();
1841
+ }, typeof document < "u" && document.addEventListener("visibilitychange", f), typeof window < "u" && window.addEventListener("pageshow", f);
1842
+ const i = setInterval(
1843
+ async () => {
1844
+ if (!e.get(E) || !ce) {
1845
+ clearInterval(i);
1846
+ return;
1847
+ }
1848
+ try {
1849
+ const v = await Aa(ce);
1850
+ if (v.notFound) {
1851
+ clearInterval(i);
1852
+ const u = ce;
1853
+ e.set(E, !1), U.open(), localStorage.removeItem(`checkout-expiry-${u}`), at("checkout-cartid"), ce = null;
1854
+ return;
1855
+ }
1856
+ if (!v.error && v.expiresAt) {
1857
+ const u = Math.max(0, Math.floor((new Date(v.expiresAt).getTime() - Date.now()) / 1e3));
1858
+ e.set(M, u, !0), localStorage.setItem(
1859
+ // @storage-escape: cart checkout-expiry persistence (intentional raw localStorage)
1860
+ `checkout-expiry-${ce}`,
1861
+ String(new Date(v.expiresAt).getTime())
1862
+ );
1863
+ }
1864
+ } catch {
1865
+ }
1866
+ },
1867
+ 6e4
1868
+ );
1869
+ }
1870
+ async function w(n) {
1871
+ const i = n?.detail ?? n, { code: v, discount: u, discountType: r } = i;
1872
+ if (e.set(pe, v || "", !0), e.set(fe, u || 0, !0), e.set(I, r || "", !0), e.set(T, v ? `${v} applied.` : "", !0), i.revealHiddenTickets !== void 0 && e.get(a) && (gt(`checkout-promo-reveal-${e.get(a).eventID}`, i.revealHiddenTickets ? "1" : "0", { path: "/" }), i.revealTicketIds?.length && gt(`checkout-promo-reveal-ids-${e.get(a).eventID}`, JSON.stringify(i.revealTicketIds), { path: "/" }), v && i.revealHiddenTickets)) {
1873
+ const o = ++F;
1874
+ try {
1875
+ const h = await Ot(t.eventId);
1876
+ o === F && h.length > 0 && e.get(a) && e.set(a, { ...e.get(a), availableTickets: h }, !0);
1877
+ } catch (h) {
1878
+ qe.error("Error re-fetching tickets with promo:", h);
1879
+ }
1880
+ }
1881
+ }
1882
+ let ve = e.derived(() => e.get(a) ? et(`checkout-promo-reveal-${e.get(a).eventID}`) === "1" : !1), ne = e.derived(() => {
1883
+ if (!e.get(a)) return [];
1884
+ try {
1885
+ const n = et(`checkout-promo-reveal-ids-${e.get(a).eventID}`);
1886
+ return n ? JSON.parse(n) : [];
1887
+ } catch {
1888
+ return [];
1889
+ }
1890
+ }), X = e.derived(() => {
1891
+ if (!e.get(a)) return !1;
1892
+ const n = e.get(a).endDateTime || e.get(a).startDateTime;
1893
+ return n ? new Date(n) < /* @__PURE__ */ new Date() : !1;
1894
+ }), F = 0;
1895
+ async function Y() {
1896
+ if (!e.get(j))
1897
+ return;
1898
+ const n = ++F;
1899
+ if (!t.eventId) {
1900
+ e.set(Z, s().noEventIdProvided || "No event ID provided", !0), e.set(ye, !1);
1901
+ return;
1902
+ }
1903
+ e.set(ye, !0), e.set(Z, null);
1904
+ try {
1905
+ if (p()) {
1906
+ if (e.set(q, p()), !e.get(j)) return;
1907
+ e.set(a, zt(e.get(q)), !0), e.set(te, e.get(a).availableTickets || [], !0);
1908
+ } else {
1909
+ try {
1910
+ const u = await Ca(t.eventId);
1911
+ if (!e.get(j) || n !== F) return;
1912
+ e.set(q, u, !0), e.set(a, zt(e.get(q)), !0);
1913
+ } catch (u) {
1914
+ if (qe.error("Event fetch failed:", u), !e.get(j) || n !== F) return;
1915
+ e.set(Z, s().failedToLoadEvent || "Failed to load event", !0), e.set(ye, !1);
1916
+ return;
1917
+ }
1918
+ try {
1919
+ const u = await Ot(t.eventId);
1920
+ if (!e.get(j) || n !== F) return;
1921
+ e.set(te, u, !0), e.get(te).length > 0 && (e.get(a).availableTickets = e.get(te));
1922
+ } catch (u) {
1923
+ if (!e.get(j) || n !== F) return;
1924
+ qe.error("Error fetching tickets:", u), e.set(te, e.get(a).availableTickets || [], !0);
1925
+ }
1926
+ }
1927
+ e.get(a).availableTickets && e.get(a).availableTickets.forEach((u) => e.get(B)[u.ID] = 0);
1928
+ const i = Da(e.get(a).eventID);
1929
+ if (e.set(B, ar(i.quantities || {}, e.get(a).availableTickets), !0), e.set(pe, i.promocode || "", !0), e.set(fe, i.promoDiscountAmount || 0, !0), e.get(a).eventID && (await Ia(e.get(a).eventID), !e.get(j)))
1930
+ return;
1931
+ e.set(A, !0), Xe(), Object.values(e.get(B)).reduce((u, r) => u + r, 0) > 0 && g(), it(), await Sa(String(e.get(a).eventID));
1932
+ } catch (i) {
1933
+ e.get(j) && (qe.error("Error loading event:", i), e.set(Z, i.message || s().failedToLoadEvent || "Failed to load event", !0));
1934
+ } finally {
1935
+ e.get(j) && e.set(ye, !1);
1936
+ }
1937
+ }
1938
+ $t(async () => {
1939
+ e.set(j, !0), y(), window.addEventListener("resize", y), window.addEventListener("scroll", N), await Y(), wa(t.eventId).then((n) => {
1940
+ e.set(z, n, !0);
1941
+ }).catch(() => {
1942
+ e.set(z, !0);
1943
+ });
1944
+ }), na(() => {
1945
+ e.set(j, !1), window.removeEventListener("resize", y), window.removeEventListener("scroll", N), k && clearInterval(k), f && (typeof document < "u" && document.removeEventListener("visibilitychange", f), typeof window < "u" && window.removeEventListener("pageshow", f), f = null), Oe && Oe.abort();
1946
+ });
1947
+ let le = null;
1948
+ e.user_effect(() => {
1949
+ e.get(j) && t.eventId && t.eventId !== le && (le = t.eventId, Y());
1950
+ }), e.user_effect(() => {
1951
+ const n = Object.values(e.get(B)).reduce((i, v) => i + v, 0);
1952
+ e.get(A) && e.get(a) && n > 0 ? Re() : n === 0 && (e.set(O, 0), e.set(De, 0), e.set(Ee, !1));
1953
+ });
1954
+ var Fe = ti(), Ie = e.first_child(Fe), Qe = e.child(Ie);
1955
+ {
1956
+ var Ge = (n) => {
1957
+ var i = Qr(), v = e.child(i), u = e.child(v, !0);
1958
+ e.reset(v), e.reset(i), e.template_effect(() => e.set_text(u, s().loadingEvent || "Loading event...")), e.append(n, i);
1959
+ }, Ze = (n) => {
1960
+ var i = qr(), v = e.child(i), u = e.child(v);
1961
+ e.reset(v);
1962
+ var r = e.sibling(v, 2), o = e.child(r, !0);
1963
+ e.reset(r), e.reset(i), e.template_effect(() => {
1964
+ e.set_text(u, `${(s().errorPrefix || "Error:") ?? ""}
1965
+ ${e.get(Z) ?? ""}`), e.set_attribute(r, "aria-label", s().goBackToEventDetails || "Go back to event details"), e.set_text(o, s().goBack || "Go back");
1966
+ }), e.delegated("click", r, de), e.append(n, i);
1967
+ }, ht = (n) => {
1968
+ var i = Nr(), v = e.child(i), u = e.child(v, !0);
1969
+ e.reset(v);
1970
+ var r = e.sibling(v, 2), o = e.child(r, !0);
1971
+ e.reset(r);
1972
+ var h = e.sibling(r, 2), R = e.child(h, !0);
1973
+ e.reset(h), e.reset(i), e.template_effect(() => {
1974
+ e.set_class(v, 1, `mb-2 ${we.h2}`, "svelte-19g9ni4"), e.set_text(u, s().thisEventHasEnded || "This event has ended"), e.set_text(o, s().ticketsNoLongerAvailable || "Tickets are no longer available for this event."), e.set_attribute(h, "aria-label", s().goBackToEventDetails || "Go back to event details"), e.set_text(R, s().goBack || "Go back");
1975
+ }), e.delegated("click", h, de), e.append(n, i);
1976
+ }, st = (n) => {
1977
+ var i = Rr(), v = e.child(i), u = e.sibling(v, 4);
1978
+ e.reset(i), e.template_effect(() => e.set_class(v, 1, `mb-2 ${we.h2}`, "svelte-19g9ni4")), e.delegated("click", u, de), e.append(n, i);
1979
+ }, ct = (n) => {
1980
+ var i = Hr(), v = e.child(i), u = e.child(v), r = e.child(u);
1981
+ zr(r, {
1982
+ get event() {
1983
+ return e.get(a);
1984
+ },
1985
+ onCancel: de,
1986
+ get labels() {
1987
+ return s();
1988
+ }
1989
+ });
1990
+ var o = e.sibling(r, 2);
1991
+ {
1992
+ var h = (J) => {
1993
+ var $ = Yt(), ie = e.child($);
1994
+ {
1995
+ let Pe = e.derived(() => e.get(M) <= 300);
1996
+ Ea(ie, {
1997
+ get seconds() {
1998
+ return e.get(M);
1999
+ },
2000
+ get isUrgent() {
2001
+ return e.get(Pe);
2002
+ },
2003
+ get labels() {
2004
+ return s();
2005
+ }
2006
+ });
2007
+ }
2008
+ e.reset($), e.append(J, $);
2009
+ };
2010
+ e.if(o, (J) => {
2011
+ e.get(E) && e.get(M) > 0 && J(h);
2012
+ });
2013
+ }
2014
+ var R = e.sibling(o, 2);
2015
+ {
2016
+ var P = (J) => {
2017
+ var $ = Yt(), ie = e.child($);
2018
+ Pr(ie, {
2019
+ get eventID() {
2020
+ return t.eventId;
2021
+ },
2022
+ onpromoChange: w,
2023
+ get labels() {
2024
+ return s();
2025
+ }
2026
+ }), e.reset($), e.append(J, $);
2027
+ };
2028
+ e.if(R, (J) => {
2029
+ e.get(z) && J(P);
2030
+ });
2031
+ }
2032
+ var D = e.sibling(R, 2), G = e.child(D);
2033
+ {
2034
+ let J = e.derived(() => e.get(He) || e.get(ze));
2035
+ Cr(G, {
2036
+ get tickets() {
2037
+ return e.get(a).availableTickets;
2038
+ },
2039
+ get quantities() {
2040
+ return e.get(B);
2041
+ },
2042
+ handleQuantityChange: rt,
2043
+ handleDonationChange: () => {
2044
+ },
2045
+ get revealHiddenTickets() {
2046
+ return e.get(ve);
2047
+ },
2048
+ get revealTicketIds() {
2049
+ return e.get(ne);
2050
+ },
2051
+ get venueFeesReady() {
2052
+ return e.get(A);
2053
+ },
2054
+ get syncing() {
2055
+ return e.get(J);
2056
+ },
2057
+ get labels() {
2058
+ return s();
2059
+ }
2060
+ });
2061
+ }
2062
+ e.reset(D), e.reset(u), e.reset(v);
2063
+ var ke = e.sibling(v, 2);
2064
+ {
2065
+ var c = (J) => {
2066
+ var $ = Gr();
2067
+ e.append(J, $);
2068
+ };
2069
+ e.if(ke, (J) => {
2070
+ e.get(_e) && !e.get(Te) && J(c);
2071
+ });
2072
+ }
2073
+ var l = e.sibling(ke, 2);
2074
+ let C, V;
2075
+ var ue = e.child(l);
2076
+ {
2077
+ var K = (J) => {
2078
+ Fr(J, {});
2079
+ }, he = (J) => {
2080
+ {
2081
+ let $ = e.derived(() => s().checkout || "Checkout"), ie = e.derived(() => !!e.get(T));
2082
+ Xa(J, {
2083
+ get btnText() {
2084
+ return e.get($);
2085
+ },
2086
+ get loading() {
2087
+ return e.get(W);
2088
+ },
2089
+ checkoutTicket: Ue,
2090
+ get quantities() {
2091
+ return e.get(B);
2092
+ },
2093
+ get eventTickets() {
2094
+ return e.get(a).availableTickets;
2095
+ },
2096
+ get promoApplied() {
2097
+ return e.get(ie);
2098
+ },
2099
+ get promoDiscount() {
2100
+ return e.get(ot);
2101
+ },
2102
+ get taxAmount() {
2103
+ return e.get(O);
2104
+ },
2105
+ get taxLoading() {
2106
+ return e.get(Ee);
2107
+ },
2108
+ onPriceUpdate: () => {
2109
+ }
2110
+ });
2111
+ }
2112
+ };
2113
+ e.if(ue, (J) => {
2114
+ e.get(A) ? e.get(a) && e.get(a).availableTickets?.length && J(he, 1) : J(K);
2115
+ });
2116
+ }
2117
+ e.reset(l), e.reset(i), e.bind_this(i, (J) => e.set(oe, J), () => e.get(oe)), e.template_effect(() => {
2118
+ C = e.set_class(l, 1, "w-full md:w-80 flex flex-col transition-all will-change-[left] svelte-19g9ni4", null, C, { "is-sticky": e.get(_e) }), V = e.set_style(l, "", V, { left: e.get(_e) ? `${e.get(Ae)}px` : "auto" });
2119
+ }), e.append(n, i);
2120
+ };
2121
+ e.if(Qe, (n) => {
2122
+ e.get(ye) ? n(Ge) : e.get(Z) ? n(Ze, 1) : e.get(a) && e.get(X) ? n(ht, 2) : e.get(a) && e.get(X) ? n(st, 3) : e.get(a) && n(ct, 4);
2123
+ });
2124
+ }
2125
+ e.reset(Ie), e.bind_this(Ie, (n) => e.set(_, n), () => e.get(_));
2126
+ var _t = e.sibling(Ie, 2);
2127
+ Ft(_t, {
2128
+ get open() {
2129
+ return b.isOpen;
2130
+ },
2131
+ size: "sm",
2132
+ oncancel: $e,
2133
+ "aria-labelledby": "error-modal-title",
2134
+ header: (u) => {
2135
+ var r = Vr(), o = e.child(r);
2136
+ {
2137
+ var h = (P) => {
2138
+ var D = e.text();
2139
+ e.template_effect(() => e.set_text(D, s().unableToReserveTickets || "Unable to Reserve Tickets")), e.append(P, D);
2140
+ }, R = (P) => {
2141
+ var D = e.text();
2142
+ e.template_effect(() => e.set_text(D, s().connectionIssue || "Connection Issue")), e.append(P, D);
2143
+ };
2144
+ e.if(o, (P) => {
2145
+ e.get(Q) === "cart_failed" ? P(h) : P(R, -1);
2146
+ });
2147
+ }
2148
+ e.reset(r), e.append(u, r);
2149
+ },
2150
+ body: (u) => {
2151
+ var r = Ur(), o = e.child(r);
2152
+ {
2153
+ var h = (P) => {
2154
+ var D = Xt(), G = e.first_child(D), ke = e.child(G, !0);
2155
+ e.reset(G);
2156
+ var c = e.sibling(G, 2), l = e.child(c, !0);
2157
+ e.reset(c), e.template_effect(() => {
2158
+ e.set_text(ke, s().cartFailedMessage || "We couldn't reserve your tickets. This may be due to a network issue or the tickets may no longer be available."), e.set_text(l, s().pleaseGoBackAndTryAgain || "Please go back and try again.");
2159
+ }), e.append(P, D);
2160
+ }, R = (P) => {
2161
+ var D = Xt(), G = e.first_child(D), ke = e.child(G, !0);
2162
+ e.reset(G);
2163
+ var c = e.sibling(G, 2), l = e.child(c, !0);
2164
+ e.reset(c), e.template_effect(() => {
2165
+ e.set_text(ke, s().cartSuccessMessage || "Good news! Your tickets have been reserved and are being held for you."), e.set_text(l, s().cartSuccessNetworkError || "However, we encountered a connection issue. Please refresh the page to continue to checkout.");
2166
+ }), e.append(P, D);
2167
+ };
2168
+ e.if(o, (P) => {
2169
+ e.get(Q) === "cart_failed" ? P(h) : P(R, -1);
2170
+ });
2171
+ }
2172
+ e.reset(r), e.append(u, r);
2173
+ },
2174
+ footer: (u) => {
2175
+ var r = Zr(), o = e.child(r);
2176
+ {
2177
+ var h = (P) => {
2178
+ {
2179
+ let D = e.derived(() => s().goBack || "Go back");
2180
+ Je(P, {
2181
+ variant: "default",
2182
+ onclick: $e,
2183
+ get "aria-label"() {
2184
+ return e.get(D);
2185
+ },
2186
+ children: (G, ke) => {
2187
+ e.next();
2188
+ var c = e.text();
2189
+ e.template_effect(() => e.set_text(c, s().goBack || "Go back")), e.append(G, c);
2190
+ },
2191
+ $$slots: { default: !0 }
2192
+ });
2193
+ }
2194
+ }, R = (P) => {
2195
+ var D = Wr(), G = e.first_child(D);
2196
+ {
2197
+ let c = e.derived(() => s().cancel || "Cancel");
2198
+ Je(G, {
2199
+ variant: "alternative",
2200
+ onclick: $e,
2201
+ get "aria-label"() {
2202
+ return e.get(c);
2203
+ },
2204
+ children: (l, C) => {
2205
+ e.next();
2206
+ var V = e.text();
2207
+ e.template_effect(() => e.set_text(V, s().cancel || "Cancel")), e.append(l, V);
2208
+ },
2209
+ $$slots: { default: !0 }
2210
+ });
2211
+ }
2212
+ var ke = e.sibling(G, 2);
2213
+ {
2214
+ let c = e.derived(() => s().refreshPage || "Refresh Page");
2215
+ Je(ke, {
2216
+ variant: "default",
2217
+ onclick: m,
2218
+ get "aria-label"() {
2219
+ return e.get(c);
2220
+ },
2221
+ children: (l, C) => {
2222
+ e.next();
2223
+ var V = e.text();
2224
+ e.template_effect(() => e.set_text(V, s().refreshPage || "Refresh Page")), e.append(l, V);
2225
+ },
2226
+ $$slots: { default: !0 }
2227
+ });
2228
+ }
2229
+ e.append(P, D);
2230
+ };
2231
+ e.if(o, (P) => {
2232
+ e.get(Q) === "cart_failed" ? P(h) : P(R, -1);
2233
+ });
2234
+ }
2235
+ e.reset(r), e.append(u, r);
2236
+ },
2237
+ $$slots: { header: !0, body: !0, footer: !0 }
2238
+ });
2239
+ var vt = e.sibling(_t, 2);
2240
+ Ft(vt, {
2241
+ get open() {
2242
+ return U.isOpen;
2243
+ },
2244
+ size: "sm",
2245
+ persistent: !0,
2246
+ oncancel: () => {
2247
+ U.close(), at("checkout-cartid"), window.location.reload();
2248
+ },
2249
+ "aria-labelledby": "expired-modal-title",
2250
+ header: (u) => {
2251
+ var r = Jr(), o = e.child(r, !0);
2252
+ e.reset(r), e.template_effect(() => e.set_text(o, s().cartExpiredTitle || "Your cart has expired")), e.append(u, r);
2253
+ },
2254
+ body: (u) => {
2255
+ var r = Yr(), o = e.child(r, !0);
2256
+ e.reset(r), e.template_effect(() => e.set_text(o, s().cartExpiredMessage || "Your cart has expired. Please start your purchase again.")), e.append(u, r);
2257
+ },
2258
+ footer: (u) => {
2259
+ Je(u, {
2260
+ variant: "default",
2261
+ onclick: () => {
2262
+ U.close(), at("checkout-cartid"), window.location.reload();
2263
+ },
2264
+ children: (r, o) => {
2265
+ e.next();
2266
+ var h = e.text();
2267
+ e.template_effect(() => e.set_text(h, s().startOver || "Start over")), e.append(r, h);
2268
+ },
2269
+ $$slots: { default: !0 }
2270
+ });
2271
+ },
2272
+ $$slots: { header: !0, body: !0, footer: !0 }
2273
+ });
2274
+ var bt = e.sibling(vt, 2);
2275
+ Ft(bt, {
2276
+ get open() {
2277
+ return se.isOpen;
2278
+ },
2279
+ size: "sm",
2280
+ oncancel: Ke,
2281
+ "aria-labelledby": "availability-modal-title",
2282
+ header: (u) => {
2283
+ var r = Xr(), o = e.child(r, !0);
2284
+ e.reset(r), e.template_effect(() => e.set_text(o, s().limitedAvailability || "Limited Availability")), e.append(u, r);
2285
+ },
2286
+ body: (u) => {
2287
+ var r = $r(), o = e.child(r), h = e.child(o, !0);
2288
+ e.reset(o);
2289
+ var R = e.sibling(o, 2);
2290
+ e.each(R, 21, () => e.get(re), e.index, (c, l) => {
2291
+ var C = Kr(), V = e.child(C), ue = e.child(V);
2292
+ e.reset(V);
2293
+ var K = e.sibling(V, 2);
2294
+ {
2295
+ var he = ($) => {
2296
+ var ie = e.text();
2297
+ e.template_effect((Pe) => e.set_text(ie, Pe), [
2298
+ () => (s().onlyNAvailable || "Only {available} available (you selected {requested})").replace("{available}", String(e.get(l).availableQty)).replace("{requested}", String(e.get(l).requestedQty))
2299
+ ]), e.append($, ie);
2300
+ }, J = ($) => {
2301
+ var ie = e.text();
2302
+ e.template_effect((Pe) => e.set_text(ie, Pe), [
2303
+ () => (s().soldOutYouSelected || "Sold out (you selected {requested})").replace("{requested}", String(e.get(l).requestedQty))
2304
+ ]), e.append($, ie);
2305
+ };
2306
+ e.if(K, ($) => {
2307
+ e.get(l).availableQty > 0 ? $(he) : $(J, -1);
2308
+ });
2309
+ }
2310
+ e.reset(C), e.template_effect(() => e.set_text(ue, `${e.get(l).ticketName ?? ""}:`)), e.append(c, C);
2311
+ }), e.reset(R);
2312
+ var P = e.sibling(R, 2);
2313
+ {
2314
+ var D = (c) => {
2315
+ var l = Kt(), C = e.child(l, !0);
2316
+ e.reset(l), e.template_effect(() => e.set_text(C, s().partialAvailabilityContinue || "Would you like to continue with the available tickets?")), e.append(c, l);
2317
+ }, G = e.derived(() => e.get(re).some((c) => c.availableQty > 0)), ke = (c) => {
2318
+ var l = Kt(), C = e.child(l, !0);
2319
+ e.reset(l), e.template_effect(() => e.set_text(C, s().allTicketsSoldOut || "Unfortunately, all the tickets you selected have sold out.")), e.append(c, l);
2320
+ };
2321
+ e.if(P, (c) => {
2322
+ e.get(G) ? c(D) : c(ke, -1);
2323
+ });
2324
+ }
2325
+ e.reset(r), e.template_effect(() => {
2326
+ e.set_text(h, s().ticketsNoLongerAvailableMessage || "Some tickets you selected are no longer available in the requested quantities:"), e.set_attribute(R, "aria-label", s().ticketAvailabilityChanges || "Ticket availability changes");
2327
+ }), e.append(u, r);
2328
+ },
2329
+ footer: (u) => {
2330
+ var r = ei(), o = e.child(r);
2331
+ {
2332
+ let D = e.derived(() => s().goBack || "Go back");
2333
+ Je(o, {
2334
+ variant: "alternative",
2335
+ onclick: Ke,
2336
+ get "aria-label"() {
2337
+ return e.get(D);
2338
+ },
2339
+ children: (G, ke) => {
2340
+ e.next();
2341
+ var c = e.text();
2342
+ e.template_effect(() => e.set_text(c, s().goBack || "Go back")), e.append(G, c);
2343
+ },
2344
+ $$slots: { default: !0 }
2345
+ });
2346
+ }
2347
+ var h = e.sibling(o, 2);
2348
+ {
2349
+ var R = (D) => {
2350
+ {
2351
+ let G = e.derived(() => s().continueWithAvailable || "Continue with available");
2352
+ Je(D, {
2353
+ variant: "default",
2354
+ onclick: dt,
2355
+ get "aria-label"() {
2356
+ return e.get(G);
2357
+ },
2358
+ children: (ke, c) => {
2359
+ e.next();
2360
+ var l = e.text();
2361
+ e.template_effect(() => e.set_text(l, s().continueWithAvailable || "Continue with available")), e.append(ke, l);
2362
+ },
2363
+ $$slots: { default: !0 }
2364
+ });
2365
+ }
2366
+ }, P = e.derived(() => e.get(re).some((D) => D.availableQty > 0));
2367
+ e.if(h, (D) => {
2368
+ e.get(P) && D(R);
2369
+ });
2370
+ }
2371
+ e.reset(r), e.append(u, r);
2372
+ },
2373
+ $$slots: { header: !0, body: !0, footer: !0 }
2374
+ }), e.append(H, Fe), e.pop();
2375
+ }
2376
+ e.delegate(["click"]);
2377
+ export {
2378
+ vi as default
2379
+ };
2380
+ //# sourceMappingURL=CartView-R5Z2q4Hy.js.map