@getmicdrop/venue-calendar 4.0.93 → 4.0.95

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