@getmicdrop/venue-calendar 4.0.81 → 4.0.83

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