@getmicdrop/venue-calendar 3.8.4 → 4.0.3

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 (92) hide show
  1. package/README.md +700 -661
  2. package/dist/AirbnbSplitMain-BfddFqOQ.js +2201 -0
  3. package/dist/AirbnbSplitMain-BfddFqOQ.js.map +1 -0
  4. package/dist/{CarouselView.legacy-G433jD--.js → CarouselView.legacy-BKXwmB2P.js} +11 -10
  5. package/dist/CarouselView.legacy-BKXwmB2P.js.map +1 -0
  6. package/dist/CartView-iIEjDwFN.js +1667 -0
  7. package/dist/CartView-iIEjDwFN.js.map +1 -0
  8. package/dist/Checkout-Cu0D8mFn.js +743 -0
  9. package/dist/Checkout-Cu0D8mFn.js.map +1 -0
  10. package/dist/{Checkout.legacy-HODJd0ax.js → Checkout.legacy-C6V9HmUZ.js} +374 -359
  11. package/dist/Checkout.legacy-C6V9HmUZ.js.map +1 -0
  12. package/dist/CheckoutMain-B17znLe0.js +1403 -0
  13. package/dist/CheckoutMain-B17znLe0.js.map +1 -0
  14. package/dist/CheckoutTimer-BsI1r6lY.js +34 -0
  15. package/dist/CheckoutTimer-BsI1r6lY.js.map +1 -0
  16. package/dist/CollectionView-CQgKWQHT.js +142 -0
  17. package/dist/CollectionView-CQgKWQHT.js.map +1 -0
  18. package/dist/{CollectionView.legacy-CmNcGUzq.js → CollectionView.legacy-B8SDspBL.js} +25 -24
  19. package/dist/CollectionView.legacy-B8SDspBL.js.map +1 -0
  20. package/dist/EventDetailsView-XXl8aQJ9.js +1187 -0
  21. package/dist/EventDetailsView-XXl8aQJ9.js.map +1 -0
  22. package/dist/{FeaturedView.legacy-9h2qZMOt.js → FeaturedView.legacy-Dse2jnrt.js} +15 -15
  23. package/dist/FeaturedView.legacy-Dse2jnrt.js.map +1 -0
  24. package/dist/GalleryCard-CDaYD8XI.js +92 -0
  25. package/dist/GalleryCard-CDaYD8XI.js.map +1 -0
  26. package/dist/{GalleryView.legacy-DiA_IVST.js → GalleryView.legacy-U_ripo22.js} +18 -17
  27. package/dist/GalleryView.legacy-U_ripo22.js.map +1 -0
  28. package/dist/{GroupedListView.legacy-Bo-kep9X.js → GroupedListView.legacy-BrickaeB.js} +25 -25
  29. package/dist/GroupedListView.legacy-BrickaeB.js.map +1 -0
  30. package/dist/Heading-AFd3o0xt.js +44 -0
  31. package/dist/Heading-AFd3o0xt.js.map +1 -0
  32. package/dist/OrderSummarySkeleton-dDKUH741.js +16 -0
  33. package/dist/OrderSummarySkeleton-dDKUH741.js.map +1 -0
  34. package/dist/SeriesPage-CNoI4R4M.js +56 -0
  35. package/dist/SeriesPage-CNoI4R4M.js.map +1 -0
  36. package/dist/SeriesPage.legacy-Cugebbf0.js +195 -0
  37. package/dist/SeriesPage.legacy-Cugebbf0.js.map +1 -0
  38. package/dist/Success-BQAu7uZn.js +715 -0
  39. package/dist/Success-BQAu7uZn.js.map +1 -0
  40. package/dist/Success.legacy-DSmTsdB_.js +195 -0
  41. package/dist/Success.legacy-DSmTsdB_.js.map +1 -0
  42. package/dist/Text-CXR2fhx6.js +54 -0
  43. package/dist/Text-CXR2fhx6.js.map +1 -0
  44. package/dist/{VenueCalendar-DkyugLs1.js → VenueCalendar-DzTrcN8J.js} +11242 -21624
  45. package/dist/VenueCalendar-DzTrcN8J.js.map +1 -0
  46. package/dist/ViewTicketsEmbed-DOTq6kSz.js +2038 -0
  47. package/dist/ViewTicketsEmbed-DOTq6kSz.js.map +1 -0
  48. package/dist/__SKIP_NAVIGATION__-CJ96TTPE.js +7 -0
  49. package/dist/__SKIP_NAVIGATION__-CJ96TTPE.js.map +1 -0
  50. package/dist/api/api.cjs +1 -1
  51. package/dist/api/api.cjs.map +1 -1
  52. package/dist/api/api.mjs +511 -279
  53. package/dist/api/api.mjs.map +1 -1
  54. package/dist/api/client.d.ts +3 -33
  55. package/dist/api/cta.d.ts +38 -0
  56. package/dist/api/events.d.ts +3 -1
  57. package/dist/api/gift-cards.d.ts +88 -0
  58. package/dist/api/index.d.ts +6 -0
  59. package/dist/api/types.d.ts +353 -349
  60. package/dist/api/waitlist.d.ts +23 -0
  61. package/dist/colors-BZoMuXdh.js.map +1 -1
  62. package/dist/labels-BPzDu-3y.js +1351 -0
  63. package/dist/labels-BPzDu-3y.js.map +1 -0
  64. package/dist/seo/HostSeoController.d.ts +9 -1
  65. package/dist/seo/seo.cjs +1 -1
  66. package/dist/seo/seo.cjs.map +1 -1
  67. package/dist/seo/seo.mjs +53 -50
  68. package/dist/seo/seo.mjs.map +1 -1
  69. package/dist/seo/types.d.ts +137 -136
  70. package/dist/transform-CZI_M7Wk.js +218 -0
  71. package/dist/transform-CZI_M7Wk.js.map +1 -0
  72. package/dist/types/index.d.ts +387 -387
  73. package/dist/venue-calendar.css +1 -1
  74. package/dist/venue-calendar.es.js +36 -28
  75. package/dist/venue-calendar.es.js.map +1 -1
  76. package/dist/venue-calendar.iife.js +43 -43
  77. package/dist/venue-calendar.iife.js.map +1 -1
  78. package/dist/venue-calendar.umd.js +40 -40
  79. package/dist/venue-calendar.umd.js.map +1 -1
  80. package/package.json +44 -6
  81. package/src/lib/theme.js +13 -0
  82. package/dist/CarouselView.legacy-G433jD--.js.map +0 -1
  83. package/dist/Checkout.legacy-HODJd0ax.js.map +0 -1
  84. package/dist/CollectionView.legacy-CmNcGUzq.js.map +0 -1
  85. package/dist/FeaturedView.legacy-9h2qZMOt.js.map +0 -1
  86. package/dist/GalleryView.legacy-DiA_IVST.js.map +0 -1
  87. package/dist/GroupedListView.legacy-Bo-kep9X.js.map +0 -1
  88. package/dist/SeriesPage.legacy-BjDBPDcq.js +0 -190
  89. package/dist/SeriesPage.legacy-BjDBPDcq.js.map +0 -1
  90. package/dist/Success.legacy-D86LAPHq.js +0 -194
  91. package/dist/Success.legacy-D86LAPHq.js.map +0 -1
  92. package/dist/VenueCalendar-DkyugLs1.js.map +0 -1
@@ -0,0 +1,743 @@
1
+ import "svelte/internal/disclose-version";
2
+ import { k as ue, f as me, G as we, r as Ce, h as ye, l as Pe, m as Ie, n as Te, t as ke, o as Ee, p as Fe, g as Ae, q as Re, s as De, u as fe, v as ge, w as je, x as ze, y as Ge } from "./VenueCalendar-DzTrcN8J.js";
3
+ import * as e from "svelte/internal/client";
4
+ import "svelte/internal/flags/legacy";
5
+ import { slide as de } from "svelte/transition";
6
+ import "svelte/easing";
7
+ import { onMount as Le } from "svelte";
8
+ import { C as Oe } from "./CheckoutMain-B17znLe0.js";
9
+ function le(u) {
10
+ "@babel/helpers - typeof";
11
+ return typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? le = function(t) {
12
+ return typeof t;
13
+ } : le = function(t) {
14
+ return t && typeof Symbol == "function" && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t;
15
+ }, le(u);
16
+ }
17
+ var he = "clover", Ne = function(t) {
18
+ return t === 3 ? "v3" : t;
19
+ }, _e = "https://js.stripe.com", qe = "".concat(_e, "/").concat(he, "/stripe.js"), Me = /^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/, Ue = /^https:\/\/js\.stripe\.com\/(v3|[a-z]+)\/stripe\.js(\?.*)?$/;
20
+ var Ve = function(t) {
21
+ return Me.test(t) || Ue.test(t);
22
+ }, We = function() {
23
+ for (var t = document.querySelectorAll('script[src^="'.concat(_e, '"]')), s = 0; s < t.length; s++) {
24
+ var d = t[s];
25
+ if (Ve(d.src))
26
+ return d;
27
+ }
28
+ return null;
29
+ }, pe = function(t) {
30
+ var s = "", d = document.createElement("script");
31
+ d.src = "".concat(qe).concat(s);
32
+ var o = document.head || document.body;
33
+ if (!o)
34
+ throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");
35
+ return o.appendChild(d), d;
36
+ }, Be = function(t, s) {
37
+ !t || !t._registerWrapper || t._registerWrapper({
38
+ name: "stripe-js",
39
+ version: "8.8.0",
40
+ startTime: s
41
+ });
42
+ }, $ = null, se = null, oe = null, Ye = function(t) {
43
+ return function(s) {
44
+ t(new Error("Failed to load Stripe.js", {
45
+ cause: s
46
+ }));
47
+ };
48
+ }, Je = function(t, s) {
49
+ return function() {
50
+ window.Stripe ? t(window.Stripe) : s(new Error("Stripe.js not available"));
51
+ };
52
+ }, Ke = function(t) {
53
+ return $ !== null ? $ : ($ = new Promise(function(s, d) {
54
+ if (typeof window > "u" || typeof document > "u") {
55
+ s(null);
56
+ return;
57
+ }
58
+ if (window.Stripe) {
59
+ s(window.Stripe);
60
+ return;
61
+ }
62
+ try {
63
+ var o = We();
64
+ if (!(o && t)) {
65
+ if (!o)
66
+ o = pe(t);
67
+ else if (o && oe !== null && se !== null) {
68
+ var g;
69
+ o.removeEventListener("load", oe), o.removeEventListener("error", se), (g = o.parentNode) === null || g === void 0 || g.removeChild(o), o = pe(t);
70
+ }
71
+ }
72
+ oe = Je(s, d), se = Ye(d), o.addEventListener("load", oe), o.addEventListener("error", se);
73
+ } catch (x) {
74
+ d(x);
75
+ return;
76
+ }
77
+ }), $.catch(function(s) {
78
+ return $ = null, Promise.reject(s);
79
+ }));
80
+ }, Xe = function(t, s, d) {
81
+ if (t === null)
82
+ return null;
83
+ var o = s[0];
84
+ if (typeof o != "string")
85
+ throw new Error("Expected publishable key to be of type string, got type ".concat(le(o), " instead."));
86
+ var g = o.match(/^pk_test/), x = Ne(t.version), y = he;
87
+ g && x !== y && console.warn("Stripe.js@".concat(x, " was loaded on the page, but @stripe/stripe-js@").concat("8.8.0", " expected Stripe.js@").concat(y, ". This may result in unexpected behavior. For more information, see https://docs.stripe.com/sdks/stripejs-versioning"));
88
+ var S = t.apply(void 0, s);
89
+ return Be(S, d), S;
90
+ }, ee, be = !1, xe = function() {
91
+ return ee || (ee = Ke(null).catch(function(t) {
92
+ return ee = null, Promise.reject(t);
93
+ }), ee);
94
+ };
95
+ Promise.resolve().then(function() {
96
+ return xe();
97
+ }).catch(function(u) {
98
+ be || console.warn(u);
99
+ });
100
+ var He = function() {
101
+ for (var t = arguments.length, s = new Array(t), d = 0; d < t; d++)
102
+ s[d] = arguments[d];
103
+ be = !0;
104
+ var o = Date.now();
105
+ return xe().then(function(g) {
106
+ return Xe(g, s, o);
107
+ });
108
+ };
109
+ function te(u) {
110
+ const t = u?.code || u?.decline_code || "", s = u?.type || "", d = u?.message || "";
111
+ if (t === "card_declined" || s === "card_error") {
112
+ const o = u?.decline_code || "";
113
+ return o === "insufficient_funds" ? {
114
+ type: "card_declined",
115
+ title: "Insufficient funds",
116
+ message: "Your card has insufficient funds to complete this purchase.",
117
+ suggestion: "Please try a different payment method or contact your bank.",
118
+ retryable: !0
119
+ } : o === "lost_card" || o === "stolen_card" ? {
120
+ type: "card_declined",
121
+ title: "Card cannot be used",
122
+ message: "This card cannot be used for this transaction.",
123
+ suggestion: "Please use a different payment method.",
124
+ retryable: !0
125
+ } : o === "expired_card" ? {
126
+ type: "card_declined",
127
+ title: "Card expired",
128
+ message: "Your card has expired.",
129
+ suggestion: "Please use a different card or update your card details.",
130
+ retryable: !0
131
+ } : {
132
+ type: "card_declined",
133
+ title: "Card declined",
134
+ message: "Your card was declined by your bank.",
135
+ suggestion: "Please try a different card or contact your bank for more information.",
136
+ retryable: !0
137
+ };
138
+ }
139
+ return s === "api_connection_error" || d.includes("network") || d.includes("connection") ? {
140
+ type: "network",
141
+ title: "Connection error",
142
+ message: "We couldn't connect to the payment server.",
143
+ suggestion: "Please check your internet connection and try again.",
144
+ retryable: !0
145
+ } : t === "rate_limit" ? {
146
+ type: "rate_limit",
147
+ title: "Too many attempts",
148
+ message: "Too many payment attempts. Please wait a moment.",
149
+ suggestion: "Wait 30 seconds before trying again.",
150
+ retryable: !0
151
+ } : t === "incorrect_number" || t === "invalid_number" ? {
152
+ type: "validation",
153
+ title: "Invalid card number",
154
+ message: "The card number you entered is invalid.",
155
+ suggestion: "Please check your card number and try again.",
156
+ retryable: !0
157
+ } : t === "incorrect_cvc" || t === "invalid_cvc" ? {
158
+ type: "validation",
159
+ title: "Invalid security code",
160
+ message: "The security code (CVC) is incorrect.",
161
+ suggestion: "Please check the 3-digit code on the back of your card.",
162
+ retryable: !0
163
+ } : t === "invalid_expiry_month" || t === "invalid_expiry_year" ? {
164
+ type: "validation",
165
+ title: "Invalid expiration date",
166
+ message: "The expiration date is invalid.",
167
+ suggestion: "Please check your card's expiration date.",
168
+ retryable: !0
169
+ } : {
170
+ type: "general",
171
+ title: "Payment failed",
172
+ message: d || "Something went wrong with your payment.",
173
+ suggestion: "Please try again or use a different payment method.",
174
+ retryable: !0
175
+ };
176
+ }
177
+ const ve = ye("GiftCardInput");
178
+ var Ze = e.from_html('<span class="gc-spinner gc-spinner-sm svelte-emw0hd"></span>'), Qe = e.from_html('<div class="full-coverage-badge svelte-emw0hd"><!> <span> </span></div>'), $e = e.from_html('<div class="flex justify-between items-center text-sm mt-1.5"><span class="text-text-secondary"> </span> <span class="font-medium text-text-primary"> </span></div>'), et = e.from_html('<div class="applied-card svelte-emw0hd"><div class="flex items-center gap-3"><div class="applied-icon svelte-emw0hd"><!></div> <div class="flex flex-col flex-1"><span class="text-xs text-status-success-text font-medium"> </span> <span class="text-sm font-mono text-text-primary"> </span></div> <button class="remove-btn svelte-emw0hd"><!></button></div> <div class="applied-details svelte-emw0hd"><div class="flex justify-between items-center text-sm"><span class="text-text-secondary"> </span> <span class="font-medium text-accent-success"> </span></div> <!></div></div>'), tt = e.from_html('<span class="gc-spinner svelte-emw0hd"></span>'), rt = e.from_html('<div class="flex items-center gap-1.5 mt-2 text-sm text-accent-danger"><!> <span> </span></div>'), at = e.from_html('<div class="input-section svelte-emw0hd"><div class="flex gap-2"><input type="text" autocomplete="off" autocapitalize="characters"/> <button class="apply-btn svelte-emw0hd"><!></button></div> <!></div>'), nt = e.from_html('<button class="gift-card-toggle svelte-emw0hd"><!> <span> </span> <span class="toggle-indicator svelte-emw0hd"> </span></button> <!>', 1), it = e.from_html('<div class="mb-4"><!></div>');
179
+ function st(u, t) {
180
+ e.push(t, !0);
181
+ let s = e.prop(t, "onApplied", 3, () => {
182
+ }), d = e.prop(t, "onRemoved", 3, () => {
183
+ }), o = e.prop(t, "disabled", 3, !1), g = e.prop(t, "labels", 19, () => ({})), x = e.state(""), y = e.state(!1), S = e.state(""), m = e.state(null), k = e.state(!1);
184
+ async function re() {
185
+ if (!(!e.get(x).trim() || e.get(y) || !t.cartId)) {
186
+ e.set(y, !0), e.set(S, "");
187
+ try {
188
+ const c = await Ie(t.cartId, e.get(x).trim().toUpperCase());
189
+ c.valid ? (e.set(
190
+ m,
191
+ {
192
+ code: c.giftCardCode || e.get(x).trim().toUpperCase(),
193
+ giftCardAmount: c.giftCardAmount,
194
+ giftCardBalance: c.giftCardBalance,
195
+ paymentType: c.paymentType,
196
+ stripeAmount: c.stripeAmount,
197
+ orderTotal: c.orderTotal,
198
+ requiresStripe: c.requiresStripe
199
+ },
200
+ !0
201
+ ), e.set(x, ""), e.set(k, !1), s()(e.get(m))) : e.set(S, c.error || g().invalidGiftCardCode || "Invalid gift card code", !0);
202
+ } catch (c) {
203
+ ve.error("Error applying gift card:", c), e.set(S, g().failedToApplyGiftCard || "Failed to apply gift card. Please try again.", !0);
204
+ }
205
+ e.set(y, !1);
206
+ }
207
+ }
208
+ async function ae() {
209
+ if (!(e.get(y) || !t.cartId)) {
210
+ e.set(y, !0), e.set(S, "");
211
+ try {
212
+ const c = await Ce(t.cartId);
213
+ if (c.error)
214
+ e.set(S, c.error, !0);
215
+ else {
216
+ const b = e.get(m);
217
+ e.set(m, null), e.set(k, !1), d()(b);
218
+ }
219
+ } catch (c) {
220
+ ve.error("Error removing gift card:", c), e.set(S, g().failedToRemoveGiftCard || "Failed to remove gift card. Please try again.", !0);
221
+ }
222
+ e.set(y, !1);
223
+ }
224
+ }
225
+ function h(c) {
226
+ c.key === "Enter" && !e.get(y) && re();
227
+ }
228
+ function _() {
229
+ e.get(m) || (e.set(k, !e.get(k)), e.get(k) || (e.set(x, ""), e.set(S, "")));
230
+ }
231
+ var A = it(), ne = e.child(A);
232
+ {
233
+ var q = (c) => {
234
+ var b = et(), C = e.child(b), D = e.child(C), E = e.child(D);
235
+ ue(E, { size: 16 }), e.reset(D);
236
+ var f = e.sibling(D, 2), L = e.child(f), B = e.child(L, !0);
237
+ e.reset(L);
238
+ var O = e.sibling(L, 2), N = e.child(O, !0);
239
+ e.reset(O), e.reset(f);
240
+ var F = e.sibling(f, 2), M = e.child(F);
241
+ {
242
+ var U = (v) => {
243
+ var I = Ze();
244
+ e.append(v, I);
245
+ }, R = (v) => {
246
+ Pe(v, { size: 16 });
247
+ };
248
+ e.if(M, (v) => {
249
+ e.get(y) ? v(U) : v(R, !1);
250
+ });
251
+ }
252
+ e.reset(F), e.reset(C);
253
+ var V = e.sibling(C, 2), j = e.child(V), W = e.child(j), X = e.child(W, !0);
254
+ e.reset(W);
255
+ var Y = e.sibling(W, 2), H = e.child(Y);
256
+ e.reset(Y), e.reset(j);
257
+ var Z = e.sibling(j, 2);
258
+ {
259
+ var w = (v) => {
260
+ var I = Qe(), z = e.child(I);
261
+ ue(z, { size: 14 });
262
+ var J = e.sibling(z, 2), K = e.child(J, !0);
263
+ e.reset(J), e.reset(I), e.template_effect(() => e.set_text(K, g().fullyCoveredByGiftCard || "Fully covered by gift card")), e.append(v, I);
264
+ }, P = (v) => {
265
+ var I = $e(), z = e.child(I), J = e.child(z, !0);
266
+ e.reset(z);
267
+ var K = e.sibling(z, 2), r = e.child(K, !0);
268
+ e.reset(K), e.reset(I), e.template_effect(
269
+ (a) => {
270
+ e.set_text(J, g().remainingToPay || "Remaining to pay"), e.set_text(r, a);
271
+ },
272
+ [() => me(e.get(m).stripeAmount)]
273
+ ), e.append(v, I);
274
+ };
275
+ e.if(Z, (v) => {
276
+ e.get(m).paymentType === "gift_card_only" ? v(w) : e.get(m).paymentType === "split" && v(P, 1);
277
+ });
278
+ }
279
+ e.reset(V), e.reset(b), e.template_effect(
280
+ (v) => {
281
+ e.set_text(B, g().giftCardApplied || "Gift card applied"), e.set_text(N, e.get(m).code), F.disabled = e.get(y) || o(), e.set_attribute(F, "aria-label", g().removeGiftCard || "Remove gift card"), e.set_text(X, g().appliedToOrder || "Applied to order"), e.set_text(H, `-${v ?? ""}`);
282
+ },
283
+ [() => me(e.get(m).giftCardAmount)]
284
+ ), e.delegated("click", F, ae), e.transition(3, b, () => de, () => ({ duration: 200 })), e.append(c, b);
285
+ }, ie = (c) => {
286
+ var b = nt(), C = e.first_child(b), D = e.child(C);
287
+ we(D, { size: 18, class: "gift-icon" });
288
+ var E = e.sibling(D, 2), f = e.child(E, !0);
289
+ e.reset(E);
290
+ var L = e.sibling(E, 2), B = e.child(L, !0);
291
+ e.reset(L), e.reset(C);
292
+ var O = e.sibling(C, 2);
293
+ {
294
+ var N = (F) => {
295
+ var M = at(), U = e.child(M), R = e.child(U);
296
+ e.remove_input_defaults(R);
297
+ let V;
298
+ var j = e.sibling(R, 2), W = e.child(j);
299
+ {
300
+ var X = (w) => {
301
+ var P = tt();
302
+ e.append(w, P);
303
+ }, Y = (w) => {
304
+ var P = e.text();
305
+ e.template_effect(() => e.set_text(P, g().apply || "Apply")), e.append(w, P);
306
+ };
307
+ e.if(W, (w) => {
308
+ e.get(y) ? w(X) : w(Y, !1);
309
+ });
310
+ }
311
+ e.reset(j), e.reset(U);
312
+ var H = e.sibling(U, 2);
313
+ {
314
+ var Z = (w) => {
315
+ var P = rt(), v = e.child(P);
316
+ Te(v, { size: 14 });
317
+ var I = e.sibling(v, 2), z = e.child(I, !0);
318
+ e.reset(I), e.reset(P), e.template_effect(() => e.set_text(z, e.get(S))), e.transition(3, P, () => de, () => ({ duration: 150 })), e.append(w, P);
319
+ };
320
+ e.if(H, (w) => {
321
+ e.get(S) && w(Z);
322
+ });
323
+ }
324
+ e.reset(M), e.template_effect(
325
+ (w) => {
326
+ e.set_attribute(R, "placeholder", g().enterGiftCardCode || "Enter gift card code"), R.disabled = e.get(y) || o(), V = e.set_class(R, 1, "gift-input svelte-emw0hd", null, V, { "has-error": !!e.get(S) }), j.disabled = w;
327
+ },
328
+ [() => !e.get(x).trim() || e.get(y) || o()]
329
+ ), e.delegated("keydown", R, h), e.bind_value(R, () => e.get(x), (w) => e.set(x, w)), e.delegated("click", j, re), e.transition(3, M, () => de, () => ({ duration: 200 })), e.append(F, M);
330
+ };
331
+ e.if(O, (F) => {
332
+ e.get(k) && F(N);
333
+ });
334
+ }
335
+ e.template_effect(() => {
336
+ C.disabled = o(), e.set_attribute(C, "aria-expanded", e.get(k)), e.set_text(f, g().haveAGiftCard || "Have a gift card?"), e.set_text(B, e.get(k) ? "-" : "+");
337
+ }), e.delegated("click", C, _), e.append(c, b);
338
+ };
339
+ e.if(ne, (c) => {
340
+ e.get(m) ? c(q) : c(ie, !1);
341
+ });
342
+ }
343
+ e.reset(A), e.append(u, A), e.pop();
344
+ }
345
+ e.delegate(["click", "keydown"]);
346
+ const G = ye("Checkout");
347
+ var ot = e.from_html('<div class="max-w-6xl mx-auto px-4 md:px-6 -mt-4 mb-8"><!></div>'), lt = e.from_html("<!> <!>", 1), dt = e.from_html('<div class="p-8 text-center"><p class="text-accent-danger"> </p></div>'), ct = e.from_html('<div class="p-8 text-center"><p class="text-muted-foreground"> </p></div>');
348
+ function ut(u, t) {
349
+ e.push(t, !0);
350
+ let s = e.state(!1), d = e.state(null);
351
+ typeof window < "u" && new URLSearchParams(window.location.search).get("legacy") === "1" && e.set(s, !0), e.user_effect(() => {
352
+ e.get(s) && !e.get(d) && (G.warn("[VC] DEPRECATED: ?legacy=1 fallback for Checkout retires on 2026-08-13. See docs/LEGACY_RETIREMENT.md."), import("./Checkout.legacy-C6V9HmUZ.js").then((r) => {
353
+ e.set(d, r.default, !0);
354
+ }).catch(() => {
355
+ e.set(s, !1);
356
+ }));
357
+ });
358
+ let o = e.prop(t, "availableTickets", 23, () => []), g = e.prop(t, "value", 3, ""), x = e.prop(t, "venueId", 3, ""), y = e.prop(t, "organizationId", 3, ""), S = e.prop(t, "initialError", 3, void 0), m = e.prop(t, "labels", 19, () => ({})), k = e.derived(() => (t.data || {}).id);
359
+ e.derived(() => (t.data || {}).orgSlug);
360
+ let re = e.derived(() => (t.data || {}).slug), ae = e.derived(() => (t.data || {}).event), h = e.derived(() => e.get(ae) ? ke(e.get(ae)) : t.data && (t.data.id || e.get(k)) ? {
361
+ id: t.data.id || e.get(k),
362
+ eventID: t.data.id || e.get(k),
363
+ venueID: t.data.venueID ?? t.data.venueId ?? null,
364
+ venueId: t.data.venueId ?? t.data.venueID ?? null,
365
+ eventTicketingType: 0,
366
+ ticketType: 0,
367
+ availableTickets: []
368
+ } : null), _ = e.state(""), A = e.state(e.proxy({})), ne = e.state(e.proxy({})), q = e.state(e.proxy([])), ie = e.state(""), c = e.state(0), b = e.state(!1), C = e.state(null), D = e.state(""), E = e.state(void 0), f = e.state(""), L = e.state(!1), B = e.state(""), O = e.state(null), N = e.state(null);
369
+ Le(async () => {
370
+ if (e.set(_, Ee.get("checkout-cartid"), !0), !e.get(_)) {
371
+ e.set(L, !0), e.set(B, m().noCheckoutSession || "No checkout session found. Please select tickets first.", !0);
372
+ return;
373
+ }
374
+ try {
375
+ const i = Fe(e.get(h)?.eventID || e.get(h)?.id || e.get(k));
376
+ e.set(A, i.quantities || {}, !0), e.set(ne, i.donationAmounts || {}, !0), e.set(ie, i.promocode || "", !0), e.set(c, i.promoDiscountAmount || 0, !0), e.set(q, i.tickets || [], !0);
377
+ } catch (i) {
378
+ G.error("Error loading checkout state:", i), e.set(A, {}, !0), e.set(q, [], !0);
379
+ }
380
+ e.get(q).length > 0 && e.get(h) && (e.get(h).availableTickets = e.get(q), o(e.get(q)));
381
+ let r = {
382
+ serviceFeeCents: 0,
383
+ serviceFeePercentage: 0,
384
+ serviceFeeChargeType: "both",
385
+ maxServiceFeeCents: 0,
386
+ taxPercentage: 0
387
+ };
388
+ try {
389
+ const i = await Ae(e.get(h)?.venueID || e.get(h)?.venueId || x());
390
+ r = {
391
+ serviceFeeCents: i?.serviceFeeCents ?? 0,
392
+ serviceFeePercentage: i?.serviceFeePercentage ?? 0,
393
+ serviceFeeChargeType: i?.serviceFeeChargeType ?? "both",
394
+ maxServiceFeeCents: i?.maxServiceFeeCents ?? 0,
395
+ taxPercentage: i?.taxPercentage ?? 0
396
+ };
397
+ } catch (i) {
398
+ G.error("Error fetching venue data:", i);
399
+ }
400
+ const a = U(e.get(A), e.get(q), r), n = a.reduce((i, l) => i + Math.round((l.unitPrice ?? 0) * 100) * (l.quantity ?? 0), 0);
401
+ Object.keys(e.get(A)).length > 0 && n > 0 && await F();
402
+ let p = 900;
403
+ if (e.get(_)) {
404
+ const i = typeof localStorage < "u" ? localStorage.getItem(`checkout-expiry-${e.get(_)}`) : null;
405
+ if (i) {
406
+ const l = Math.max(0, Math.floor((parseInt(i, 10) - Date.now()) / 1e3));
407
+ l > 0 && (p = l);
408
+ }
409
+ try {
410
+ const l = await Re(e.get(_));
411
+ !l.error && l.expiresAt && (p = Math.max(0, Math.floor((new Date(l.expiresAt) - /* @__PURE__ */ new Date()) / 1e3)), localStorage.setItem(`checkout-expiry-${e.get(_)}`, String(new Date(l.expiresAt).getTime())));
412
+ } catch {
413
+ }
414
+ }
415
+ if (e.set(
416
+ N,
417
+ {
418
+ event: M(e.get(h), r),
419
+ lines: a,
420
+ timerStart: p,
421
+ promoApplied: !!e.get(ie),
422
+ promoDiscount: e.get(c),
423
+ forceExpired: !1
424
+ },
425
+ !0
426
+ ), S()) {
427
+ const i = te(typeof S() == "object" ? S() : {
428
+ code: "card_declined",
429
+ message: "Your card was declined. Please try a different payment method."
430
+ });
431
+ e.set(f, i.message, !0);
432
+ }
433
+ });
434
+ async function F() {
435
+ if (!e.get(_)) {
436
+ G.error("Missing cartId!");
437
+ return;
438
+ }
439
+ const r = Object.fromEntries(Object.entries(e.get(A)).filter(([a, n]) => n > 0));
440
+ try {
441
+ const a = Object.fromEntries(Object.entries(e.get(ne)).filter(([, i]) => parseFloat(String(i)) > 0).map(([i, l]) => [parseInt(i, 10), parseFloat(String(l))])), n = await De(e.get(_), r, Object.keys(a).length > 0 ? a : void 0);
442
+ if (!n) {
443
+ e.set(f, m().failedToCreatePaymentIntent || "Failed to create payment intent. Please try again.", !0);
444
+ return;
445
+ }
446
+ const p = n.stripe_publishable_key;
447
+ if (!p) {
448
+ G.error("No Stripe publishable key in payment intent response"), e.set(f, m().paymentConfigError || "Payment configuration error. Please try again.", !0);
449
+ return;
450
+ }
451
+ e.set(C, await He(p), !0), n.client_secret ? e.set(D, n.client_secret, !0) : e.set(f, m().failedToInitPayment || "Failed to initialize payment. Please try again.", !0);
452
+ } catch (a) {
453
+ G.error("Failed to initialize Stripe payment:", a), e.set(f, a.message || m().failedToInitPayment || "Failed to initialize payment. Please try again.", !0);
454
+ }
455
+ }
456
+ function M(r, a) {
457
+ return r ? {
458
+ id: r.id || r.eventID,
459
+ title: r.name || r.title || "",
460
+ slug: r.slug || e.get(re) || "",
461
+ description: r.description || "",
462
+ date: r.date || "",
463
+ startDateTime: r.startDateTime || "",
464
+ endDateTime: r.endDateTime || "",
465
+ doorsOpenTime: r.doorsOpenTime || "",
466
+ timezone: r.timeZone || r.timezone || fe(),
467
+ imageUrl: r.imageUrl || r.image || "",
468
+ venue: {
469
+ id: r.venueID || r.venueId || 0,
470
+ name: r.venueName || "",
471
+ address: r.venueAddress || "",
472
+ timezone: r.timeZone || r.timezone || fe(),
473
+ serviceFeePercentage: a.serviceFeePercentage,
474
+ serviceFeeCents: a.serviceFeeCents,
475
+ taxPercentage: a.taxPercentage,
476
+ serviceFeeChargeType: a.serviceFeeChargeType,
477
+ maxServiceFeeCents: a.maxServiceFeeCents
478
+ },
479
+ performers: r.performers || [],
480
+ tickets: (r.availableTickets || []).map((n) => ({
481
+ id: n.ID || n.id,
482
+ name: n.name || "",
483
+ description: n.description || "",
484
+ price: (n.price || 0) / 100,
485
+ fee: 0,
486
+ quantityAvailable: n.quantityAvailable || 0,
487
+ quantityTotal: n.quantityTotal || 0,
488
+ minPerOrder: n.minPerOrder || 1,
489
+ maxPerOrder: n.maxPerOrder || 10,
490
+ status: "on_sale",
491
+ isDonation: n.type === 2,
492
+ isHidden: !1
493
+ })),
494
+ faqs: r.faqs || [],
495
+ status: "on_sale",
496
+ isPasswordProtected: !1,
497
+ isRegistrationEvent: r.eventTicketingType === 1 || r.ticketType === 1,
498
+ totalTicketsRemaining: 100,
499
+ totalTicketsCapacity: 100
500
+ } : null;
501
+ }
502
+ function U(r, a, n) {
503
+ const p = [];
504
+ for (const [i, l] of Object.entries(r)) {
505
+ if (l <= 0) continue;
506
+ const T = a.find((ce) => String(ce.ID) === i || String(ce.id) === i);
507
+ if (!T) continue;
508
+ const Q = T.price || 0, Se = R(Q, n);
509
+ p.push({
510
+ ticketId: parseInt(i),
511
+ ticketName: T.name || "",
512
+ quantity: l,
513
+ unitPrice: Q,
514
+ fee: Se,
515
+ subtotal: ge(Q * l)
516
+ });
517
+ }
518
+ return p;
519
+ }
520
+ function R(r, a) {
521
+ if (r === 0) return 0;
522
+ const {
523
+ serviceFeePercentage: n = 0,
524
+ serviceFeeCents: p = 0,
525
+ serviceFeeChargeType: i = "both",
526
+ maxServiceFeeCents: l = 0
527
+ } = a;
528
+ let T = 0;
529
+ return (i === "percentage" || i === "both") && (T += r * (n / 100)), (i === "flat" || i === "both") && (T += p / 100), l > 0 && (T = Math.min(T, l / 100)), ge(T);
530
+ }
531
+ let V = e.derived(() => e.get(N) ? e.get(N).lines.every((r) => r.unitPrice === 0) : !0);
532
+ async function j(r) {
533
+ if (!e.get(b)) {
534
+ e.set(b, !0), e.set(f, "");
535
+ try {
536
+ if (e.get(O) && !e.get(O).requiresStripe) {
537
+ await W(r);
538
+ return;
539
+ }
540
+ if (!e.get(E)) {
541
+ e.set(f, m().paymentFormNotReady || "Payment form is not ready. Please wait a moment and try again.", !0), e.set(b, !1);
542
+ return;
543
+ }
544
+ if (!e.get(C)) {
545
+ e.set(f, m().paymentSystemNotInitialized || "Payment system is not initialized. Please refresh the page.", !0), e.set(b, !1);
546
+ return;
547
+ }
548
+ const { error: a } = await e.get(E).submit();
549
+ if (a) {
550
+ const l = te(a);
551
+ e.set(f, l.message, !0), e.set(b, !1);
552
+ return;
553
+ }
554
+ const n = await e.get(C).confirmPayment({ elements: e.get(E), redirect: "if_required" });
555
+ if (n.error) {
556
+ const l = te(n.error);
557
+ e.set(f, l.message, !0), e.set(b, !1);
558
+ return;
559
+ }
560
+ const p = {
561
+ id: e.get(_),
562
+ paymentIntentId: n.paymentIntent.id,
563
+ tickets: e.get(A),
564
+ firstName: r.firstName,
565
+ lastName: r.lastName,
566
+ email: r.email,
567
+ paymentMethod: "credit-card",
568
+ mailingList: r.keepMeUpdated,
569
+ saleType: "online"
570
+ }, i = await ze(e.get(_), p);
571
+ if (i?.status === "Payment succeeded") {
572
+ const l = {
573
+ orderId: e.get(_),
574
+ eventId: e.get(h)?.id || e.get(h)?.eventID || null,
575
+ event: e.get(h) || null,
576
+ venueId: x() || e.get(h)?.venueId || null,
577
+ organizationId: y() || e.get(h)?.organizationId || null
578
+ };
579
+ t.onNavigateToSuccess && t.onNavigateToSuccess(l);
580
+ } else i?.status === "Payment amount does not match the total price" ? e.set(f, m().paymentAmountMismatch || "Payment amount mismatch. Please refresh and try again.", !0) : e.set(f, m().paymentValidationFailed || "Payment validation failed. Please try again.", !0);
581
+ } catch (a) {
582
+ G.error("Payment execution error:", a);
583
+ const n = te(a);
584
+ e.set(f, n.message, !0);
585
+ } finally {
586
+ e.set(b, !1);
587
+ }
588
+ }
589
+ }
590
+ async function W(r) {
591
+ try {
592
+ const a = await Ge(e.get(_), {
593
+ firstName: r.firstName,
594
+ lastName: r.lastName,
595
+ email: r.email,
596
+ phoneNumber: null,
597
+ mailingList: r.keepMeUpdated
598
+ });
599
+ if (a?.success) {
600
+ const n = {
601
+ orderId: a.orderId || e.get(_),
602
+ eventId: e.get(h)?.id || e.get(h)?.eventID || null,
603
+ event: e.get(h) || null,
604
+ venueId: x() || e.get(h)?.venueId || null,
605
+ organizationId: y() || e.get(h)?.organizationId || null,
606
+ paymentType: "gift_card_only"
607
+ };
608
+ t.onNavigateToSuccess && t.onNavigateToSuccess(n);
609
+ } else
610
+ e.set(f, a?.error || m().failedToCompleteOrder || "Failed to complete order. Please try again.", !0);
611
+ } catch (a) {
612
+ G.error("Gift card payment error:", a);
613
+ const n = te(a);
614
+ e.set(f, n.message, !0);
615
+ } finally {
616
+ e.set(b, !1);
617
+ }
618
+ }
619
+ function X(r) {
620
+ e.set(O, r, !0), r.requiresStripe || (e.set(E, void 0), e.set(C, null), e.set(D, ""));
621
+ }
622
+ function Y() {
623
+ e.set(O, null), e.get(_) && Object.keys(e.get(A)).length > 0 && F();
624
+ }
625
+ function H() {
626
+ window.history.back();
627
+ }
628
+ function Z() {
629
+ window.history.back();
630
+ }
631
+ async function w() {
632
+ if (!e.get(_)) return null;
633
+ try {
634
+ const r = await je(e.get(_));
635
+ return r.success ? {
636
+ newExpiryTime: r.newExpiryTime,
637
+ remainingExtensions: r.remainingExtensions
638
+ } : (G.error("Failed to extend session:", r.error), null);
639
+ } catch (r) {
640
+ return G.error("Error extending checkout session:", r), null;
641
+ }
642
+ }
643
+ var P = e.comment(), v = e.first_child(P);
644
+ {
645
+ var I = (r) => {
646
+ var a = e.comment(), n = e.first_child(a);
647
+ e.component(n, () => e.get(d), (p, i) => {
648
+ i(p, {
649
+ get data() {
650
+ return t.data;
651
+ },
652
+ get availableTickets() {
653
+ return o();
654
+ },
655
+ get value() {
656
+ return g();
657
+ },
658
+ get venueId() {
659
+ return x();
660
+ },
661
+ get organizationId() {
662
+ return y();
663
+ },
664
+ get onNavigateToSuccess() {
665
+ return t.onNavigateToSuccess;
666
+ },
667
+ get initialError() {
668
+ return S();
669
+ },
670
+ get labels() {
671
+ return m();
672
+ }
673
+ });
674
+ }), e.append(r, a);
675
+ }, z = (r) => {
676
+ var a = lt(), n = e.first_child(a);
677
+ Oe(n, {
678
+ get config() {
679
+ return e.get(N);
680
+ },
681
+ onPlaceOrder: j,
682
+ onBack: H,
683
+ onRetryExpired: Z,
684
+ onExtendSession: w,
685
+ get stripe() {
686
+ return e.get(C);
687
+ },
688
+ get paymentIntent() {
689
+ return e.get(D);
690
+ },
691
+ get paymentError() {
692
+ return e.get(f);
693
+ },
694
+ get elements() {
695
+ return e.get(E);
696
+ },
697
+ set elements(l) {
698
+ e.set(E, l, !0);
699
+ }
700
+ });
701
+ var p = e.sibling(n, 2);
702
+ {
703
+ var i = (l) => {
704
+ var T = ot(), Q = e.child(T);
705
+ st(Q, {
706
+ get cartId() {
707
+ return e.get(_);
708
+ },
709
+ onApplied: X,
710
+ onRemoved: Y,
711
+ get disabled() {
712
+ return e.get(b);
713
+ }
714
+ }), e.reset(T), e.append(l, T);
715
+ };
716
+ e.if(p, (l) => {
717
+ e.get(V) || l(i);
718
+ });
719
+ }
720
+ e.append(r, a);
721
+ }, J = (r) => {
722
+ var a = dt(), n = e.child(a), p = e.child(n, !0);
723
+ e.reset(n), e.reset(a), e.template_effect(() => e.set_text(p, e.get(B))), e.append(r, a);
724
+ }, K = (r) => {
725
+ var a = ct(), n = e.child(a), p = e.child(n, !0);
726
+ e.reset(n), e.reset(a), e.template_effect(() => e.set_text(p, m().loadingSecurePaymentForm || "Loading secure payment form...")), e.append(r, a);
727
+ };
728
+ e.if(v, (r) => {
729
+ e.get(s) && e.get(d) ? r(I) : e.get(N) ? r(z, 1) : e.get(L) ? r(J, 2) : r(K, !1);
730
+ });
731
+ }
732
+ e.append(u, P), e.pop();
733
+ }
734
+ const _t = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
735
+ __proto__: null,
736
+ default: ut
737
+ }, Symbol.toStringTag, { value: "Module" }));
738
+ export {
739
+ _t as C,
740
+ st as G,
741
+ He as l
742
+ };
743
+ //# sourceMappingURL=Checkout-Cu0D8mFn.js.map