@getmicdrop/venue-calendar 4.0.65 → 4.0.67

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 (69) hide show
  1. package/dist/{CarouselView.legacy-CejJbK0e.js → CarouselView.legacy-BBwlnHGY.js} +3 -3
  2. package/dist/{CarouselView.legacy-CejJbK0e.js.map → CarouselView.legacy-BBwlnHGY.js.map} +1 -1
  3. package/dist/{CartView-DKpsKj2N.js → CartView-neRvx3wY.js} +3 -3
  4. package/dist/{CartView-DKpsKj2N.js.map → CartView-neRvx3wY.js.map} +1 -1
  5. package/dist/{Checkout-CXfFabtp.js → Checkout-CfaFR4jD.js} +5 -5
  6. package/dist/{Checkout-CXfFabtp.js.map → Checkout-CfaFR4jD.js.map} +1 -1
  7. package/dist/Checkout-neLq8bnZ.js +798 -0
  8. package/dist/Checkout-neLq8bnZ.js.map +1 -0
  9. package/dist/{Checkout.legacy-CDqjvIxB.js → Checkout.legacy-ByS44kay.js} +5 -5
  10. package/dist/{Checkout.legacy-CDqjvIxB.js.map → Checkout.legacy-ByS44kay.js.map} +1 -1
  11. package/dist/{CheckoutTimer-D1wyacc5.js → CheckoutTimer-DQsDJLwQ.js} +2 -2
  12. package/dist/{CheckoutTimer-D1wyacc5.js.map → CheckoutTimer-DQsDJLwQ.js.map} +1 -1
  13. package/dist/{CollectionView-DU3Rkjvr.js → CollectionView-PIMXDMir.js} +5 -5
  14. package/dist/{CollectionView-DU3Rkjvr.js.map → CollectionView-PIMXDMir.js.map} +1 -1
  15. package/dist/{CollectionView.legacy-DfXDsEqF.js → CollectionView.legacy-DpzdMxaY.js} +3 -3
  16. package/dist/{CollectionView.legacy-DfXDsEqF.js.map → CollectionView.legacy-DpzdMxaY.js.map} +1 -1
  17. package/dist/{Event-DBmvRsu8.js → Event-YSQ84uZG.js} +4 -4
  18. package/dist/{Event-DBmvRsu8.js.map → Event-YSQ84uZG.js.map} +1 -1
  19. package/dist/{EventDetailsView-CIR9vl2Q.js → EventDetailsView-CYiyqOuR.js} +6 -6
  20. package/dist/{EventDetailsView-CIR9vl2Q.js.map → EventDetailsView-CYiyqOuR.js.map} +1 -1
  21. package/dist/{EventPage-BEh2QNPL.js → EventPage-DH2L98MK.js} +5 -5
  22. package/dist/{EventPage-BEh2QNPL.js.map → EventPage-DH2L98MK.js.map} +1 -1
  23. package/dist/{EventPage.legacy-AeHwkFwN.js → EventPage.legacy-2IjniLB2.js} +5 -5
  24. package/dist/{EventPage.legacy-AeHwkFwN.js.map → EventPage.legacy-2IjniLB2.js.map} +1 -1
  25. package/dist/{FeaturedView.legacy-DKJDwuwQ.js → FeaturedView.legacy-BciGRyS4.js} +2 -2
  26. package/dist/{FeaturedView.legacy-DKJDwuwQ.js.map → FeaturedView.legacy-BciGRyS4.js.map} +1 -1
  27. package/dist/{GalleryCard-CG3tCBwa.js → GalleryCard-Ccriw4rf.js} +2 -2
  28. package/dist/{GalleryCard-CG3tCBwa.js.map → GalleryCard-Ccriw4rf.js.map} +1 -1
  29. package/dist/{GalleryView.legacy-BVBblLTv.js → GalleryView.legacy-9yQBBGk4.js} +3 -3
  30. package/dist/{GalleryView.legacy-BVBblLTv.js.map → GalleryView.legacy-9yQBBGk4.js.map} +1 -1
  31. package/dist/{GroupedListView.legacy-bxfuoVIx.js → GroupedListView.legacy-DjmtlEHN.js} +2 -2
  32. package/dist/{GroupedListView.legacy-bxfuoVIx.js.map → GroupedListView.legacy-DjmtlEHN.js.map} +1 -1
  33. package/dist/{OrderSummary-CB03zYc9.js → OrderSummary-DfYrkOm8.js} +2 -2
  34. package/dist/{OrderSummary-CB03zYc9.js.map → OrderSummary-DfYrkOm8.js.map} +1 -1
  35. package/dist/{PromoCodeInput-Db6sjP0w.js → PromoCodeInput-2qhorZ4R.js} +3 -3
  36. package/dist/{PromoCodeInput-Db6sjP0w.js.map → PromoCodeInput-2qhorZ4R.js.map} +1 -1
  37. package/dist/{SeriesPage-BJclJLCZ.js → SeriesPage-DSp3Tk96.js} +5 -5
  38. package/dist/{SeriesPage-BJclJLCZ.js.map → SeriesPage-DSp3Tk96.js.map} +1 -1
  39. package/dist/{SeriesPage.legacy-DTq4mcUR.js → SeriesPage.legacy-Cp4kgJX0.js} +2 -2
  40. package/dist/{SeriesPage.legacy-DTq4mcUR.js.map → SeriesPage.legacy-Cp4kgJX0.js.map} +1 -1
  41. package/dist/{Success-ECRExX_Z.js → Success-4pmaO3_j.js} +6 -6
  42. package/dist/{Success-ECRExX_Z.js.map → Success-4pmaO3_j.js.map} +1 -1
  43. package/dist/{Success.legacy-P9mcS21c.js → Success.legacy-C9kgMMJf.js} +2 -2
  44. package/dist/{Success.legacy-P9mcS21c.js.map → Success.legacy-C9kgMMJf.js.map} +1 -1
  45. package/dist/{VenueCalendar-DweCc8I9.js → VenueCalendar-Blt02sO6.js} +34 -22
  46. package/dist/{VenueCalendar-DweCc8I9.js.map → VenueCalendar-Blt02sO6.js.map} +1 -1
  47. package/dist/{ViewTicketsEmbed-xMyAlSnT.js → ViewTicketsEmbed-CjvjdfNp.js} +2 -2
  48. package/dist/{ViewTicketsEmbed-xMyAlSnT.js.map → ViewTicketsEmbed-CjvjdfNp.js.map} +1 -1
  49. package/dist/{WaitlistModal-Cd-3AkNr.js → WaitlistModal-CJZwJnqM.js} +2 -2
  50. package/dist/{WaitlistModal-Cd-3AkNr.js.map → WaitlistModal-CJZwJnqM.js.map} +1 -1
  51. package/dist/{api-CV_GBl7b.js → api-BEAW5Ft0.js} +2 -2
  52. package/dist/{api-CV_GBl7b.js.map → api-BEAW5Ft0.js.map} +1 -1
  53. package/dist/{data-toggle-store.svelte-CqcDkRSv.js → data-toggle-store.svelte-D9f6ubIy.js} +2 -2
  54. package/dist/{data-toggle-store.svelte-CqcDkRSv.js.map → data-toggle-store.svelte-D9f6ubIy.js.map} +1 -1
  55. package/dist/seo/seo.cjs.map +1 -1
  56. package/dist/seo/seo.mjs +16 -4
  57. package/dist/seo/seo.mjs.map +1 -1
  58. package/dist/seo/types.d.ts +150 -150
  59. package/dist/{transform-_Mlec4Vr.js → transform-qymk5ZMA.js} +78 -78
  60. package/dist/transform-qymk5ZMA.js.map +1 -0
  61. package/dist/venue-calendar.es.js +1 -1
  62. package/dist/venue-calendar.iife.js +24 -24
  63. package/dist/venue-calendar.iife.js.map +1 -1
  64. package/dist/venue-calendar.umd.js +30 -30
  65. package/dist/venue-calendar.umd.js.map +1 -1
  66. package/package.json +1 -1
  67. package/dist/Checkout-zR2LPgmX.js +0 -798
  68. package/dist/Checkout-zR2LPgmX.js.map +0 -1
  69. package/dist/transform-_Mlec4Vr.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { aW as y, u, as as D } from "./VenueCalendar-DweCc8I9.js";
1
+ import { aW as y, u as g, as as D } from "./VenueCalendar-Blt02sO6.js";
2
2
  import "svelte/internal/disclose-version";
3
3
  import "svelte/internal/client";
4
4
  import "svelte/transition";
@@ -7,10 +7,10 @@ function h(e) {
7
7
  if (!e) return [];
8
8
  const a = e.split(",").map((n) => n.trim());
9
9
  if (a.length < 2) return [e];
10
- const d = a[a.length - 1].match(/^([A-Z]{2})\s+(\d{5}(-\d{4})?)$/);
11
- if (d && a.length >= 3) {
12
- const n = d[1], i = d[2], m = a[a.length - 2], l = a.slice(0, -2);
13
- return l.push(`${m}, ${n} ${i}`), l;
10
+ const r = a[a.length - 1].match(/^([A-Z]{2})\s+(\d{5}(-\d{4})?)$/);
11
+ if (r && a.length >= 3) {
12
+ const n = r[1], s = r[2], l = a[a.length - 2], d = a.slice(0, -2);
13
+ return d.push(`${l}, ${n} ${s}`), d;
14
14
  }
15
15
  return [a[0], a.slice(1).join(", ")];
16
16
  }
@@ -18,32 +18,32 @@ function _(e) {
18
18
  return e ? `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(e)}` : "";
19
19
  }
20
20
  function q(e) {
21
- const a = /* @__PURE__ */ new Date(), s = e.remainingCapacity ?? e.quantityRemaining ?? e.quantity ?? 0, d = e.salesBegin || e.salesStart || e.saleBegin || e.onSaleStart, n = e.salesEnd || e.saleEnd || e.onSaleEnd;
22
- return s <= 0 ? "sold_out" : n && new Date(n) < a ? "sales_ended" : d && new Date(d) > a ? "coming_soon" : "on_sale";
21
+ const a = /* @__PURE__ */ new Date(), i = e.remainingCapacity ?? e.quantityRemaining ?? e.quantity ?? 0, r = e.salesBegin || e.salesStart || e.saleBegin || e.onSaleStart, n = e.salesEnd || e.saleEnd || e.onSaleEnd;
22
+ return i <= 0 ? "sold_out" : n && new Date(n) < a ? "sales_ended" : r && new Date(r) > a ? "coming_soon" : "on_sale";
23
23
  }
24
24
  function I(e, a) {
25
- const s = (e || "").toLowerCase().replace(/\s+/g, "_");
26
- if (s === "cancelled" || s === "canceled") return "cancelled";
27
- if (s === "past" || s === "ended") return "past";
25
+ const i = (e || "").toLowerCase().replace(/\s+/g, "_");
26
+ if (i === "cancelled" || i === "canceled") return "cancelled";
27
+ if (i === "past" || i === "ended") return "past";
28
28
  if (a.some(
29
- (i) => i.isHidden && i.status === "on_sale"
29
+ (s) => s.isHidden && s.status === "on_sale"
30
30
  )) return "on_sale";
31
- const n = a.filter((i) => !i.isHidden);
31
+ const n = a.filter((s) => !s.isHidden);
32
32
  if (n.length > 0) {
33
- if (n.every((i) => i.status === "sold_out")) return "sold_out";
34
- if (n.every((i) => i.status === "coming_soon"))
33
+ if (n.every((s) => s.status === "sold_out")) return "sold_out";
34
+ if (n.every((s) => s.status === "coming_soon"))
35
35
  return "coming_soon";
36
36
  if (n.every(
37
- (i) => i.status === "sales_ended" || i.status === "sold_out"
37
+ (s) => s.status === "sales_ended" || s.status === "sold_out"
38
38
  ))
39
39
  return "sales_ended";
40
40
  }
41
- return s === "sold_out" || s === "soldout" ? "sold_out" : s === "coming_soon" || s === "comingsoon" ? "coming_soon" : s === "sales_ended" || s === "salesended" ? "sales_ended" : "on_sale";
41
+ return i === "sold_out" || i === "soldout" ? "sold_out" : i === "coming_soon" || i === "comingsoon" ? "coming_soon" : i === "sales_ended" || i === "salesended" ? "sales_ended" : "on_sale";
42
42
  }
43
43
  function k(e) {
44
- const a = y(
45
- e.timeZone || e.timezone || "UTC"
46
- ), d = (e.availableTickets || []).map((t) => ({
44
+ const a = e.venue || {}, i = y(
45
+ e.timeZone || e.timezone || a.timeZone || a.timezone || "UTC"
46
+ ), n = (e.availableTickets || []).map((t) => ({
47
47
  id: t.id || t.ID,
48
48
  name: t.name || t.title || "",
49
49
  description: t.description || void 0,
@@ -60,21 +60,21 @@ function k(e) {
60
60
  isHidden: t.visibility === 2 || t.isHidden === !0,
61
61
  ticketType: t.type || t.ticketType || void 0,
62
62
  sectionName: t.sectionName || t.section || void 0
63
- })), n = d.filter((t) => !t.isHidden && !t.isDonation), i = n.reduce(
63
+ })), s = n.filter((t) => !t.isHidden && !t.isDonation), l = s.reduce(
64
64
  (t, p) => t + p.quantityAvailable,
65
65
  0
66
- ), m = n.reduce(
66
+ ), d = s.reduce(
67
67
  (t, p) => t + p.quantityTotal,
68
68
  0
69
- ), l = I(e.status, d), c = e.image || e.imageUrl || e.image_url || "", g = c.startsWith("http") ? c : u(c), o = e.venue || {}, r = {
70
- id: o.id || o.ID || 0,
71
- name: o.name || o.googleLocationNameCache || "",
72
- address: o.address || o.googleLocationNameCache || "",
73
- timezone: a,
74
- serviceFeePercentage: o.serviceFeePercentage ?? o.fee ?? 0,
75
- serviceFeeCents: o.serviceFeeCents ?? 0,
76
- taxPercentage: o.taxPercentage ?? o.tax ?? 0,
77
- contactEmail: o.contactEmail || o.email || void 0
69
+ ), c = I(e.status, n), m = e.image || e.imageUrl || e.image_url || "", u = m.startsWith("http") ? m : g(m), o = {
70
+ id: a.id || a.ID || 0,
71
+ name: a.name || a.googleLocationNameCache || "",
72
+ address: a.address || a.googleLocationNameCache || "",
73
+ timezone: i,
74
+ serviceFeePercentage: a.serviceFeePercentage ?? a.fee ?? 0,
75
+ serviceFeeCents: a.serviceFeeCents ?? 0,
76
+ taxPercentage: a.taxPercentage ?? a.tax ?? 0,
77
+ contactEmail: a.contactEmail || a.email || void 0
78
78
  }, C = (e.performers || []).map((t) => ({
79
79
  id: t.id || t.ID,
80
80
  displayName: t.displayName || t.name || "",
@@ -89,7 +89,7 @@ function k(e) {
89
89
  const t = new Date(e.startDateTime);
90
90
  T = D(
91
91
  t,
92
- { timeZone: a, year: "numeric", month: "2-digit", day: "2-digit" },
92
+ { timeZone: i, year: "numeric", month: "2-digit", day: "2-digit" },
93
93
  "en-CA"
94
94
  );
95
95
  }
@@ -102,19 +102,19 @@ function k(e) {
102
102
  startDateTime: e.startDateTime || "",
103
103
  endDateTime: e.endDateTime || "",
104
104
  doorsOpenTime: e.doorsOpenTime || "",
105
- timezone: a,
106
- imageUrl: g,
107
- venue: r,
105
+ timezone: i,
106
+ imageUrl: u,
107
+ venue: o,
108
108
  performers: C,
109
- tickets: d,
109
+ tickets: n,
110
110
  faqs: P,
111
111
  disclaimer: e.disclaimer || void 0,
112
- status: l,
112
+ status: c,
113
113
  eventSeriesId: e.eventSeriesId || void 0,
114
114
  isPasswordProtected: !!e.password,
115
115
  isRegistrationEvent: e.ticketType === 1 || e.eventTicketingType === 1,
116
- totalTicketsRemaining: i,
117
- totalTicketsCapacity: m,
116
+ totalTicketsRemaining: l,
117
+ totalTicketsCapacity: d,
118
118
  stageName: e.stage?.name || e.stageName || void 0,
119
119
  ageRestriction: e.ageRestriction || void 0,
120
120
  displayAgeRestriction: e.displayAgeRestriction ?? !1,
@@ -123,68 +123,68 @@ function k(e) {
123
123
  displayDoorsTime: e.displayDoorsTime ?? !0,
124
124
  collectionId: e.collectionId || e.collection_id || void 0,
125
125
  venueAddressLines: h(
126
- o.address || o.googleLocationNameCache || ""
126
+ a.address || a.googleLocationNameCache || ""
127
127
  ),
128
128
  googleMapsUrl: _(
129
- o.address || o.googleLocationNameCache || ""
129
+ a.address || a.googleLocationNameCache || ""
130
130
  )
131
131
  };
132
132
  }
133
133
  function U(e) {
134
- const a = y(e.timeZone || "UTC"), s = e.image || "", d = s.startsWith("http") ? s : s ? u(s) : "", n = (e.occurrences || []).map(
135
- (r) => ({
136
- id: r.id,
137
- slug: r.slug || "",
138
- startDateTime: r.startDateTime,
139
- endDateTime: r.endDateTime || "",
140
- status: r.ctaState?.reason === "sold_out" ? "sold_out" : "on_sale",
141
- ctaText: r.ctaState?.text || "Get Tickets",
142
- ctaDisabled: r.ctaState?.disabled || !1
134
+ const a = y(e.timeZone || "UTC"), i = e.image || "", r = i.startsWith("http") ? i : i ? g(i) : "", n = (e.occurrences || []).map(
135
+ (o) => ({
136
+ id: o.id,
137
+ slug: o.slug || "",
138
+ startDateTime: o.startDateTime,
139
+ endDateTime: o.endDateTime || "",
140
+ status: o.ctaState?.reason === "sold_out" ? "sold_out" : "on_sale",
141
+ ctaText: o.ctaState?.text || "Get Tickets",
142
+ ctaDisabled: o.ctaState?.disabled || !1
143
143
  })
144
- ), i = e.occurrences?.[0];
145
- let m = "";
146
- if (i?.startDateTime) {
147
- const r = new Date(i.startDateTime);
148
- m = D(
149
- r,
144
+ ), s = e.occurrences?.[0];
145
+ let l = "";
146
+ if (s?.startDateTime) {
147
+ const o = new Date(s.startDateTime);
148
+ l = D(
149
+ o,
150
150
  { timeZone: a, year: "numeric", month: "2-digit", day: "2-digit" },
151
151
  "en-CA"
152
152
  );
153
153
  }
154
- const l = e.venue?.faq;
154
+ const d = e.venue?.faq;
155
155
  let c = [];
156
- Array.isArray(l) ? c = l.map((r) => ({
157
- question: r.question || "",
158
- answer: r.answer || ""
159
- })) : typeof l == "string" && l && (c = [{ question: "FAQ", answer: l }]);
160
- const g = (e.performers || []).map(
161
- (r, f) => ({
156
+ Array.isArray(d) ? c = d.map((o) => ({
157
+ question: o.question || "",
158
+ answer: o.answer || ""
159
+ })) : typeof d == "string" && d && (c = [{ question: "FAQ", answer: d }]);
160
+ const m = (e.performers || []).map(
161
+ (o, f) => ({
162
162
  id: f + 1,
163
- displayName: r.displayName || [r.firstName, r.lastName].filter(Boolean).join(" "),
164
- profileImage: r.profileImage || void 0
163
+ displayName: o.displayName || [o.firstName, o.lastName].filter(Boolean).join(" "),
164
+ profileImage: o.profileImage || void 0
165
165
  })
166
- ), o = e.venue?.location || e.venue?.googleLocationNameCache || "";
166
+ ), u = e.venue?.location || e.venue?.googleLocationNameCache || "";
167
167
  return {
168
168
  id: e.id,
169
169
  title: e.title || "",
170
170
  slug: "",
171
171
  description: e.description || e.eventSummary || "",
172
- date: m,
173
- startDateTime: i?.startDateTime || "",
174
- endDateTime: i?.endDateTime || "",
172
+ date: l,
173
+ startDateTime: s?.startDateTime || "",
174
+ endDateTime: s?.endDateTime || "",
175
175
  doorsOpenTime: "",
176
176
  timezone: a,
177
- imageUrl: d,
177
+ imageUrl: r,
178
178
  venue: {
179
179
  id: e.venue?.id || 0,
180
180
  name: e.venue?.name || "",
181
- address: o,
181
+ address: u,
182
182
  timezone: a,
183
183
  serviceFeePercentage: 0,
184
184
  serviceFeeCents: 0,
185
185
  taxPercentage: 0
186
186
  },
187
- performers: g,
187
+ performers: m,
188
188
  tickets: [],
189
189
  faqs: c,
190
190
  disclaimer: e.venue?.disclaimer || void 0,
@@ -195,24 +195,24 @@ function U(e) {
195
195
  isRegistrationEvent: !1,
196
196
  totalTicketsRemaining: 0,
197
197
  totalTicketsCapacity: 0,
198
- venueAddressLines: h(o),
199
- googleMapsUrl: _(o)
198
+ venueAddressLines: h(u),
199
+ googleMapsUrl: _(u)
200
200
  };
201
201
  }
202
202
  function b(e) {
203
203
  const a = (e.events || []).map(
204
204
  (n) => {
205
- const i = n.image || "";
205
+ const s = n.image || "";
206
206
  return {
207
207
  id: n.id,
208
208
  name: n.title || "",
209
209
  slug: n.slug || "",
210
- image: i.startsWith("http") ? i : i ? u(i) : "",
210
+ image: s.startsWith("http") ? s : s ? g(s) : "",
211
211
  startDateTime: n.startDateTime || "",
212
212
  status: n.status || "on_sale"
213
213
  };
214
214
  }
215
- ), s = e.coverImage || "", d = s.startsWith("http") ? s : s ? u(s) : "";
215
+ ), i = e.coverImage || "", r = i.startsWith("http") ? i : i ? g(i) : "";
216
216
  return {
217
217
  id: e.id,
218
218
  title: e.collectionTitle || "",
@@ -223,7 +223,7 @@ function b(e) {
223
223
  endDateTime: "",
224
224
  doorsOpenTime: "",
225
225
  timezone: "UTC",
226
- imageUrl: d,
226
+ imageUrl: r,
227
227
  venue: {
228
228
  id: 0,
229
229
  name: "",
@@ -250,4 +250,4 @@ export {
250
250
  b,
251
251
  k as t
252
252
  };
253
- //# sourceMappingURL=transform-_Mlec4Vr.js.map
253
+ //# sourceMappingURL=transform-qymk5ZMA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-qymk5ZMA.js","sources":["../src/lib/public-calendar-flow/transform.ts"],"sourcesContent":["import { formatDateRaw } from '@getmicdrop/svelte-components';\n// Premium Ticket Experience — API → EventData Transformer\n// Maps raw API event responses to our clean EventData interface.\n// Used when plugging in real API data. The showcase continues using mock-data.ts directly.\n\nimport { getImageUrl } from '$lib/utils/utils.js';\nimport { getIANATimezone } from '$lib/utils/datetime.js';\nimport type {\n EventData,\n EventStatus,\n TicketTypeData,\n TicketStatus,\n VenueData,\n PerformerData,\n FAQItem,\n SeriesOccurrence,\n CollectionEvent,\n} from './types';\nimport type { SeriesPageData, PublicCollectionData } from '$lib/api/types';\n\n/**\n * Parse a single-line address string into display lines.\n * E.g. \"123 Main St, Los Angeles, CA 90012\" → [\"123 Main St\", \"Los Angeles, CA 90012\"]\n */\nfunction parseAddress(addressStr: string): string[] {\n if (!addressStr) return [];\n const parts = addressStr.split(',').map(p => p.trim());\n if (parts.length < 2) return [addressStr];\n const lastPart = parts[parts.length - 1];\n const stateZipMatch = lastPart.match(/^([A-Z]{2})\\s+(\\d{5}(-\\d{4})?)$/);\n if (stateZipMatch && parts.length >= 3) {\n const state = stateZipMatch[1];\n const zip = stateZipMatch[2];\n const city = parts[parts.length - 2];\n const lines = parts.slice(0, -2);\n lines.push(`${city}, ${state} ${zip}`);\n return lines;\n }\n return [parts[0], parts.slice(1).join(', ')];\n}\n\n/**\n * Build a Google Maps search URL from an address string.\n */\nfunction buildGoogleMapsUrl(address: string): string {\n if (!address) return '';\n return `https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(address)}`;\n}\n\n/**\n * Map a raw API ticket status/state to our TicketStatus union.\n */\nfunction mapTicketStatus(ticket: any): TicketStatus {\n const now = new Date();\n const remaining =\n ticket.remainingCapacity ??\n ticket.quantityRemaining ??\n ticket.quantity ??\n 0;\n const salesBegin =\n ticket.salesBegin ||\n ticket.salesStart ||\n ticket.saleBegin ||\n ticket.onSaleStart;\n const salesEnd = ticket.salesEnd || ticket.saleEnd || ticket.onSaleEnd;\n\n if (remaining <= 0) return 'sold_out';\n if (salesEnd && new Date(salesEnd) < now) return 'sales_ended';\n if (salesBegin && new Date(salesBegin) > now) return 'coming_soon';\n return 'on_sale';\n}\n\n/**\n * Map a raw API event status string to our EventStatus union.\n */\nfunction mapEventStatus(\n rawStatus: string,\n tickets: TicketTypeData[]\n): EventStatus {\n const s = (rawStatus || '').toLowerCase().replace(/\\s+/g, '_');\n\n if (s === 'cancelled' || s === 'canceled') return 'cancelled';\n\n // Check if event is past based on end time (handled by caller if needed)\n if (s === 'past' || s === 'ended') return 'past';\n\n // MIC-1039: if any hidden ticket is still on sale, the event is \"on_sale\"\n // regardless of visible-ticket states — the user just needs a promo code.\n const hasPurchasableHiddenTickets = tickets.some(\n t => t.isHidden && t.status === 'on_sale'\n );\n if (hasPurchasableHiddenTickets) return 'on_sale';\n\n // Derive from ticket states\n const publicTickets = tickets.filter(t => !t.isHidden);\n if (publicTickets.length > 0) {\n if (publicTickets.every(t => t.status === 'sold_out')) return 'sold_out';\n if (publicTickets.every(t => t.status === 'coming_soon'))\n return 'coming_soon';\n if (\n publicTickets.every(\n t => t.status === 'sales_ended' || t.status === 'sold_out'\n )\n )\n return 'sales_ended';\n }\n\n if (s === 'sold_out' || s === 'soldout') return 'sold_out';\n if (s === 'coming_soon' || s === 'comingsoon') return 'coming_soon';\n if (s === 'sales_ended' || s === 'salesended') return 'sales_ended';\n\n return 'on_sale';\n}\n\n/**\n * Transform a raw API event response into our clean EventData interface.\n * This is the bridge between the API and our premium ticket experience components.\n */\nexport function transformApiEvent(rawEvent: any): EventData {\n const rawVenue = rawEvent.venue || {};\n // Event-level timeZone is an OPTIONAL per-event override; when absent/blank it\n // must inherit the venue timezone. Falling straight to 'UTC' here rendered\n // venue-local times (e.g. a Fri 10pm Central show) in UTC (\"Sat 3:00 AM\"),\n // which made already-ended events look like future ones.\n const timezone = getIANATimezone(\n rawEvent.timeZone ||\n rawEvent.timezone ||\n rawVenue.timeZone ||\n rawVenue.timezone ||\n 'UTC'\n );\n\n // Transform tickets\n const rawTickets = rawEvent.availableTickets || [];\n const tickets: TicketTypeData[] = rawTickets.map((t: any) => ({\n id: t.id || t.ID,\n name: t.name || t.title || '',\n description: t.description || undefined,\n price: t.price ?? 0,\n fee: t.fee ?? 0,\n quantityAvailable:\n t.remainingCapacity ?? t.quantityRemaining ?? t.quantity ?? 0,\n quantityTotal: t.totalCapacity ?? t.quantity ?? 0,\n minPerOrder: t.minPerOrder ?? t.minQuantity ?? 1,\n maxPerOrder: t.maxPerOrder ?? t.maxQuantity ?? 10,\n status: mapTicketStatus(t),\n salesStartDate:\n t.salesBegin || t.salesStart || t.saleBegin || t.onSaleStart || undefined,\n salesEndDate: t.salesEnd || t.saleEnd || t.onSaleEnd || undefined,\n isDonation: t.type === 2 || t.ticketType === 2 || t.isDonation === true,\n isHidden: t.visibility === 2 || t.isHidden === true,\n ticketType: t.type || t.ticketType || undefined,\n sectionName: t.sectionName || t.section || undefined,\n }));\n\n // Calculate totals from public tickets\n const publicTickets = tickets.filter(t => !t.isHidden && !t.isDonation);\n const totalRemaining = publicTickets.reduce(\n (sum, t) => sum + t.quantityAvailable,\n 0\n );\n const totalCapacity = publicTickets.reduce(\n (sum, t) => sum + t.quantityTotal,\n 0\n );\n\n // Determine event status\n const status = mapEventStatus(rawEvent.status, tickets);\n\n // Build image URL\n const rawImage =\n rawEvent.image || rawEvent.imageUrl || rawEvent.image_url || '';\n const imageUrl = rawImage.startsWith('http')\n ? rawImage\n : getImageUrl(rawImage);\n\n // Venue\n const venue: VenueData = {\n id: rawVenue.id || rawVenue.ID || 0,\n name: rawVenue.name || rawVenue.googleLocationNameCache || '',\n address: rawVenue.address || rawVenue.googleLocationNameCache || '',\n timezone,\n serviceFeePercentage: rawVenue.serviceFeePercentage ?? rawVenue.fee ?? 0,\n serviceFeeCents: rawVenue.serviceFeeCents ?? 0,\n taxPercentage: rawVenue.taxPercentage ?? rawVenue.tax ?? 0,\n contactEmail: rawVenue.contactEmail || rawVenue.email || undefined,\n };\n\n // Performers\n const rawPerformers = rawEvent.performers || [];\n const performers: PerformerData[] = rawPerformers.map((p: any) => ({\n id: p.id || p.ID,\n displayName: p.displayName || p.name || '',\n profileImage: p.avatar || p.profileImage || undefined,\n role: p.role || undefined,\n }));\n\n // FAQs (may not be in API response)\n const faqs: FAQItem[] = (rawEvent.faqs || []).map((f: any) => ({\n question: f.question || '',\n answer: f.answer || '',\n }));\n\n // Date in venue timezone\n let date = '';\n if (rawEvent.startDateTime) {\n const dt = new Date(rawEvent.startDateTime);\n date = formatDateRaw(\n dt,\n { timeZone: timezone, year: 'numeric', month: '2-digit', day: '2-digit' },\n 'en-CA'\n );\n }\n\n return {\n id: rawEvent.id || rawEvent.ID,\n title: rawEvent.title || rawEvent.name || '',\n slug: rawEvent.slug || '',\n description: rawEvent.description || rawEvent.eventSummary || '',\n date,\n startDateTime: rawEvent.startDateTime || '',\n endDateTime: rawEvent.endDateTime || '',\n doorsOpenTime: rawEvent.doorsOpenTime || '',\n timezone,\n imageUrl,\n venue,\n performers,\n tickets,\n faqs,\n disclaimer: rawEvent.disclaimer || undefined,\n status,\n eventSeriesId: rawEvent.eventSeriesId || undefined,\n isPasswordProtected: !!rawEvent.password,\n isRegistrationEvent:\n rawEvent.ticketType === 1 || rawEvent.eventTicketingType === 1,\n totalTicketsRemaining: totalRemaining,\n totalTicketsCapacity: totalCapacity,\n stageName: rawEvent.stage?.name || rawEvent.stageName || undefined,\n ageRestriction: rawEvent.ageRestriction || undefined,\n displayAgeRestriction: rawEvent.displayAgeRestriction ?? false,\n displayStartTime: rawEvent.displayStartTime ?? true,\n displayEndTime: rawEvent.displayEndTime ?? true,\n displayDoorsTime: rawEvent.displayDoorsTime ?? true,\n collectionId: rawEvent.collectionId || rawEvent.collection_id || undefined,\n venueAddressLines: parseAddress(\n rawVenue.address || rawVenue.googleLocationNameCache || ''\n ),\n googleMapsUrl: buildGoogleMapsUrl(\n rawVenue.address || rawVenue.googleLocationNameCache || ''\n ),\n };\n}\n\n/**\n * Transform SeriesPageData (from the series API) into our clean EventData interface.\n * Sets eventSeriesId so AirbnbSplitMain renders in full-width series mode.\n */\nexport function transformSeriesPageData(series: SeriesPageData): EventData {\n const timezone = getIANATimezone(series.timeZone || 'UTC');\n\n // Build image URL\n const rawImage = series.image || '';\n const imageUrl = rawImage.startsWith('http')\n ? rawImage\n : rawImage\n ? getImageUrl(rawImage)\n : '';\n\n // Map occurrences to SeriesOccurrence[]\n const seriesOccurrences: SeriesOccurrence[] = (series.occurrences || []).map(\n occ => ({\n id: occ.id,\n slug: occ.slug || '',\n startDateTime: occ.startDateTime,\n endDateTime: occ.endDateTime || '',\n status: (occ.ctaState?.reason === 'sold_out'\n ? 'sold_out'\n : 'on_sale') as EventStatus,\n ctaText: occ.ctaState?.text || 'Get Tickets',\n ctaDisabled: occ.ctaState?.disabled || false,\n })\n );\n\n // Use first occurrence for date fields\n const firstOcc = series.occurrences?.[0];\n let date = '';\n if (firstOcc?.startDateTime) {\n const dt = new Date(firstOcc.startDateTime);\n date = formatDateRaw(\n dt,\n { timeZone: timezone, year: 'numeric', month: '2-digit', day: '2-digit' },\n 'en-CA'\n );\n }\n\n // Map FAQs\n const rawFaq = series.venue?.faq;\n let faqs: FAQItem[] = [];\n if (Array.isArray(rawFaq)) {\n faqs = rawFaq.map(f => ({\n question: f.question || '',\n answer: f.answer || '',\n }));\n } else if (typeof rawFaq === 'string' && rawFaq) {\n faqs = [{ question: 'FAQ', answer: rawFaq }];\n }\n\n // Map performers\n const performers: PerformerData[] = (series.performers || []).map(\n (p, index) => ({\n id: index + 1,\n displayName:\n p.displayName || [p.firstName, p.lastName].filter(Boolean).join(' '),\n profileImage: p.profileImage || undefined,\n })\n );\n\n // Venue address\n const venueAddress =\n series.venue?.location || series.venue?.googleLocationNameCache || '';\n\n return {\n id: series.id,\n title: series.title || '',\n slug: '',\n description: series.description || series.eventSummary || '',\n date,\n startDateTime: firstOcc?.startDateTime || '',\n endDateTime: firstOcc?.endDateTime || '',\n doorsOpenTime: '',\n timezone,\n imageUrl,\n venue: {\n id: series.venue?.id || 0,\n name: series.venue?.name || '',\n address: venueAddress,\n timezone,\n serviceFeePercentage: 0,\n serviceFeeCents: 0,\n taxPercentage: 0,\n },\n performers,\n tickets: [],\n faqs,\n disclaimer: series.venue?.disclaimer || undefined,\n status: 'on_sale',\n eventSeriesId: series.id,\n seriesOccurrences,\n isPasswordProtected: false,\n isRegistrationEvent: false,\n totalTicketsRemaining: 0,\n totalTicketsCapacity: 0,\n venueAddressLines: parseAddress(venueAddress),\n googleMapsUrl: buildGoogleMapsUrl(venueAddress),\n };\n}\n\n/**\n * Transform PublicCollectionData (from the collection API) into our clean EventData interface.\n * Sets collectionId so AirbnbSplitMain renders in full-width collection mode.\n */\nexport function transformCollectionData(\n collection: PublicCollectionData\n): EventData {\n // Map collection events to CollectionEvent[]\n const collectionEvents: CollectionEvent[] = (collection.events || []).map(\n ev => {\n const rawImg = ev.image || '';\n return {\n id: ev.id,\n name: ev.title || '',\n slug: ev.slug || '',\n image: rawImg.startsWith('http')\n ? rawImg\n : rawImg\n ? getImageUrl(rawImg)\n : '',\n startDateTime: ev.startDateTime || '',\n status: (ev.status || 'on_sale') as EventStatus,\n };\n }\n );\n\n // Cover image\n const rawCover = collection.coverImage || '';\n const imageUrl = rawCover.startsWith('http')\n ? rawCover\n : rawCover\n ? getImageUrl(rawCover)\n : '';\n\n return {\n id: collection.id,\n title: collection.collectionTitle || '',\n slug: '',\n description: collection.description || collection.summary || '',\n date: '',\n startDateTime: '',\n endDateTime: '',\n doorsOpenTime: '',\n timezone: 'UTC',\n imageUrl,\n venue: {\n id: 0,\n name: '',\n address: '',\n timezone: 'UTC',\n serviceFeePercentage: 0,\n serviceFeeCents: 0,\n taxPercentage: 0,\n },\n performers: [],\n tickets: [],\n faqs: [],\n status: 'on_sale',\n collectionId: collection.id,\n collectionEvents,\n isPasswordProtected: false,\n isRegistrationEvent: false,\n totalTicketsRemaining: 0,\n totalTicketsCapacity: 0,\n };\n}\n"],"names":["parseAddress","addressStr","parts","p","stateZipMatch","state","zip","city","lines","buildGoogleMapsUrl","address","mapTicketStatus","ticket","now","remaining","salesBegin","salesEnd","mapEventStatus","rawStatus","tickets","s","t","publicTickets","transformApiEvent","rawEvent","rawVenue","timezone","getIANATimezone","totalRemaining","sum","totalCapacity","status","rawImage","imageUrl","getImageUrl","venue","performers","faqs","f","date","dt","formatDateRaw","transformSeriesPageData","series","seriesOccurrences","occ","firstOcc","rawFaq","index","venueAddress","transformCollectionData","collection","collectionEvents","ev","rawImg","rawCover"],"mappings":";;;;;AAwBA,SAASA,EAAaC,GAA8B;AAClD,MAAI,CAACA,EAAY,QAAO,CAAA;AACxB,QAAMC,IAAQD,EAAW,MAAM,GAAG,EAAE,IAAI,CAAAE,MAAKA,EAAE,MAAM;AACrD,MAAID,EAAM,SAAS,EAAG,QAAO,CAACD,CAAU;AAExC,QAAMG,IADWF,EAAMA,EAAM,SAAS,CAAC,EACR,MAAM,iCAAiC;AACtE,MAAIE,KAAiBF,EAAM,UAAU,GAAG;AACtC,UAAMG,IAAQD,EAAc,CAAC,GACvBE,IAAMF,EAAc,CAAC,GACrBG,IAAOL,EAAMA,EAAM,SAAS,CAAC,GAC7BM,IAAQN,EAAM,MAAM,GAAG,EAAE;AAC/B,WAAAM,EAAM,KAAK,GAAGD,CAAI,KAAKF,CAAK,IAAIC,CAAG,EAAE,GAC9BE;AAAA,EACT;AACA,SAAO,CAACN,EAAM,CAAC,GAAGA,EAAM,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;AAC7C;AAKA,SAASO,EAAmBC,GAAyB;AACnD,SAAKA,IACE,mDAAmD,mBAAmBA,CAAO,CAAC,KADhE;AAEvB;AAKA,SAASC,EAAgBC,GAA2B;AAClD,QAAMC,wBAAU,KAAA,GACVC,IACJF,EAAO,qBACPA,EAAO,qBACPA,EAAO,YACP,GACIG,IACJH,EAAO,cACPA,EAAO,cACPA,EAAO,aACPA,EAAO,aACHI,IAAWJ,EAAO,YAAYA,EAAO,WAAWA,EAAO;AAE7D,SAAIE,KAAa,IAAU,aACvBE,KAAY,IAAI,KAAKA,CAAQ,IAAIH,IAAY,gBAC7CE,KAAc,IAAI,KAAKA,CAAU,IAAIF,IAAY,gBAC9C;AACT;AAKA,SAASI,EACPC,GACAC,GACa;AACb,QAAMC,KAAKF,KAAa,IAAI,cAAc,QAAQ,QAAQ,GAAG;AAE7D,MAAIE,MAAM,eAAeA,MAAM,WAAY,QAAO;AAGlD,MAAIA,MAAM,UAAUA,MAAM,QAAS,QAAO;AAO1C,MAHoCD,EAAQ;AAAA,IAC1C,CAAAE,MAAKA,EAAE,YAAYA,EAAE,WAAW;AAAA,EAAA,EAED,QAAO;AAGxC,QAAMC,IAAgBH,EAAQ,OAAO,CAAAE,MAAK,CAACA,EAAE,QAAQ;AACrD,MAAIC,EAAc,SAAS,GAAG;AAC5B,QAAIA,EAAc,MAAM,CAAAD,MAAKA,EAAE,WAAW,UAAU,EAAG,QAAO;AAC9D,QAAIC,EAAc,MAAM,CAAAD,MAAKA,EAAE,WAAW,aAAa;AACrD,aAAO;AACT,QACEC,EAAc;AAAA,MACZ,CAAAD,MAAKA,EAAE,WAAW,iBAAiBA,EAAE,WAAW;AAAA,IAAA;AAGlD,aAAO;AAAA,EACX;AAEA,SAAID,MAAM,cAAcA,MAAM,YAAkB,aAC5CA,MAAM,iBAAiBA,MAAM,eAAqB,gBAClDA,MAAM,iBAAiBA,MAAM,eAAqB,gBAE/C;AACT;AAMO,SAASG,EAAkBC,GAA0B;AAC1D,QAAMC,IAAWD,EAAS,SAAS,CAAA,GAK7BE,IAAWC;AAAA,IACfH,EAAS,YACPA,EAAS,YACTC,EAAS,YACTA,EAAS,YACT;AAAA,EAAA,GAKEN,KADaK,EAAS,oBAAoB,CAAA,GACH,IAAI,CAAC,OAAY;AAAA,IAC5D,IAAI,EAAE,MAAM,EAAE;AAAA,IACd,MAAM,EAAE,QAAQ,EAAE,SAAS;AAAA,IAC3B,aAAa,EAAE,eAAe;AAAA,IAC9B,OAAO,EAAE,SAAS;AAAA,IAClB,KAAK,EAAE,OAAO;AAAA,IACd,mBACE,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,YAAY;AAAA,IAC9D,eAAe,EAAE,iBAAiB,EAAE,YAAY;AAAA,IAChD,aAAa,EAAE,eAAe,EAAE,eAAe;AAAA,IAC/C,aAAa,EAAE,eAAe,EAAE,eAAe;AAAA,IAC/C,QAAQb,EAAgB,CAAC;AAAA,IACzB,gBACE,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe;AAAA,IAClE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa;AAAA,IACxD,YAAY,EAAE,SAAS,KAAK,EAAE,eAAe,KAAK,EAAE,eAAe;AAAA,IACnE,UAAU,EAAE,eAAe,KAAK,EAAE,aAAa;AAAA,IAC/C,YAAY,EAAE,QAAQ,EAAE,cAAc;AAAA,IACtC,aAAa,EAAE,eAAe,EAAE,WAAW;AAAA,EAAA,EAC3C,GAGIW,IAAgBH,EAAQ,OAAO,CAAA,MAAK,CAAC,EAAE,YAAY,CAAC,EAAE,UAAU,GAChES,IAAiBN,EAAc;AAAA,IACnC,CAACO,GAAKR,MAAMQ,IAAMR,EAAE;AAAA,IACpB;AAAA,EAAA,GAEIS,IAAgBR,EAAc;AAAA,IAClC,CAACO,GAAKR,MAAMQ,IAAMR,EAAE;AAAA,IACpB;AAAA,EAAA,GAIIU,IAASd,EAAeO,EAAS,QAAQL,CAAO,GAGhDa,IACJR,EAAS,SAASA,EAAS,YAAYA,EAAS,aAAa,IACzDS,IAAWD,EAAS,WAAW,MAAM,IACvCA,IACAE,EAAYF,CAAQ,GAGlBG,IAAmB;AAAA,IACvB,IAAIV,EAAS,MAAMA,EAAS,MAAM;AAAA,IAClC,MAAMA,EAAS,QAAQA,EAAS,2BAA2B;AAAA,IAC3D,SAASA,EAAS,WAAWA,EAAS,2BAA2B;AAAA,IACjE,UAAAC;AAAA,IACA,sBAAsBD,EAAS,wBAAwBA,EAAS,OAAO;AAAA,IACvE,iBAAiBA,EAAS,mBAAmB;AAAA,IAC7C,eAAeA,EAAS,iBAAiBA,EAAS,OAAO;AAAA,IACzD,cAAcA,EAAS,gBAAgBA,EAAS,SAAS;AAAA,EAAA,GAKrDW,KADgBZ,EAAS,cAAc,CAAA,GACK,IAAI,CAACrB,OAAY;AAAA,IACjE,IAAIA,EAAE,MAAMA,EAAE;AAAA,IACd,aAAaA,EAAE,eAAeA,EAAE,QAAQ;AAAA,IACxC,cAAcA,EAAE,UAAUA,EAAE,gBAAgB;AAAA,IAC5C,MAAMA,EAAE,QAAQ;AAAA,EAAA,EAChB,GAGIkC,KAAmBb,EAAS,QAAQ,CAAA,GAAI,IAAI,CAACc,OAAY;AAAA,IAC7D,UAAUA,EAAE,YAAY;AAAA,IACxB,QAAQA,EAAE,UAAU;AAAA,EAAA,EACpB;AAGF,MAAIC,IAAO;AACX,MAAIf,EAAS,eAAe;AAC1B,UAAMgB,IAAK,IAAI,KAAKhB,EAAS,aAAa;AAC1C,IAAAe,IAAOE;AAAA,MACLD;AAAA,MACA,EAAE,UAAUd,GAAU,MAAM,WAAW,OAAO,WAAW,KAAK,UAAA;AAAA,MAC9D;AAAA,IAAA;AAAA,EAEJ;AAEA,SAAO;AAAA,IACL,IAAIF,EAAS,MAAMA,EAAS;AAAA,IAC5B,OAAOA,EAAS,SAASA,EAAS,QAAQ;AAAA,IAC1C,MAAMA,EAAS,QAAQ;AAAA,IACvB,aAAaA,EAAS,eAAeA,EAAS,gBAAgB;AAAA,IAC9D,MAAAe;AAAA,IACA,eAAef,EAAS,iBAAiB;AAAA,IACzC,aAAaA,EAAS,eAAe;AAAA,IACrC,eAAeA,EAAS,iBAAiB;AAAA,IACzC,UAAAE;AAAA,IACA,UAAAO;AAAA,IACA,OAAAE;AAAA,IACA,YAAAC;AAAA,IACA,SAAAjB;AAAA,IACA,MAAAkB;AAAA,IACA,YAAYb,EAAS,cAAc;AAAA,IACnC,QAAAO;AAAA,IACA,eAAeP,EAAS,iBAAiB;AAAA,IACzC,qBAAqB,CAAC,CAACA,EAAS;AAAA,IAChC,qBACEA,EAAS,eAAe,KAAKA,EAAS,uBAAuB;AAAA,IAC/D,uBAAuBI;AAAA,IACvB,sBAAsBE;AAAA,IACtB,WAAWN,EAAS,OAAO,QAAQA,EAAS,aAAa;AAAA,IACzD,gBAAgBA,EAAS,kBAAkB;AAAA,IAC3C,uBAAuBA,EAAS,yBAAyB;AAAA,IACzD,kBAAkBA,EAAS,oBAAoB;AAAA,IAC/C,gBAAgBA,EAAS,kBAAkB;AAAA,IAC3C,kBAAkBA,EAAS,oBAAoB;AAAA,IAC/C,cAAcA,EAAS,gBAAgBA,EAAS,iBAAiB;AAAA,IACjE,mBAAmBxB;AAAA,MACjByB,EAAS,WAAWA,EAAS,2BAA2B;AAAA,IAAA;AAAA,IAE1D,eAAehB;AAAA,MACbgB,EAAS,WAAWA,EAAS,2BAA2B;AAAA,IAAA;AAAA,EAC1D;AAEJ;AAMO,SAASiB,EAAwBC,GAAmC;AACzE,QAAMjB,IAAWC,EAAgBgB,EAAO,YAAY,KAAK,GAGnDX,IAAWW,EAAO,SAAS,IAC3BV,IAAWD,EAAS,WAAW,MAAM,IACvCA,IACAA,IACEE,EAAYF,CAAQ,IACpB,IAGAY,KAAyCD,EAAO,eAAe,CAAA,GAAI;AAAA,IACvE,CAAAE,OAAQ;AAAA,MACN,IAAIA,EAAI;AAAA,MACR,MAAMA,EAAI,QAAQ;AAAA,MAClB,eAAeA,EAAI;AAAA,MACnB,aAAaA,EAAI,eAAe;AAAA,MAChC,QAASA,EAAI,UAAU,WAAW,aAC9B,aACA;AAAA,MACJ,SAASA,EAAI,UAAU,QAAQ;AAAA,MAC/B,aAAaA,EAAI,UAAU,YAAY;AAAA,IAAA;AAAA,EACzC,GAIIC,IAAWH,EAAO,cAAc,CAAC;AACvC,MAAIJ,IAAO;AACX,MAAIO,GAAU,eAAe;AAC3B,UAAMN,IAAK,IAAI,KAAKM,EAAS,aAAa;AAC1C,IAAAP,IAAOE;AAAA,MACLD;AAAA,MACA,EAAE,UAAUd,GAAU,MAAM,WAAW,OAAO,WAAW,KAAK,UAAA;AAAA,MAC9D;AAAA,IAAA;AAAA,EAEJ;AAGA,QAAMqB,IAASJ,EAAO,OAAO;AAC7B,MAAIN,IAAkB,CAAA;AACtB,EAAI,MAAM,QAAQU,CAAM,IACtBV,IAAOU,EAAO,IAAI,CAAAT,OAAM;AAAA,IACtB,UAAUA,EAAE,YAAY;AAAA,IACxB,QAAQA,EAAE,UAAU;AAAA,EAAA,EACpB,IACO,OAAOS,KAAW,YAAYA,MACvCV,IAAO,CAAC,EAAE,UAAU,OAAO,QAAQU,GAAQ;AAI7C,QAAMX,KAA+BO,EAAO,cAAc,CAAA,GAAI;AAAA,IAC5D,CAACxC,GAAG6C,OAAW;AAAA,MACb,IAAIA,IAAQ;AAAA,MACZ,aACE7C,EAAE,eAAe,CAACA,EAAE,WAAWA,EAAE,QAAQ,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;AAAA,MACrE,cAAcA,EAAE,gBAAgB;AAAA,IAAA;AAAA,EAClC,GAII8C,IACJN,EAAO,OAAO,YAAYA,EAAO,OAAO,2BAA2B;AAErE,SAAO;AAAA,IACL,IAAIA,EAAO;AAAA,IACX,OAAOA,EAAO,SAAS;AAAA,IACvB,MAAM;AAAA,IACN,aAAaA,EAAO,eAAeA,EAAO,gBAAgB;AAAA,IAC1D,MAAAJ;AAAA,IACA,eAAeO,GAAU,iBAAiB;AAAA,IAC1C,aAAaA,GAAU,eAAe;AAAA,IACtC,eAAe;AAAA,IACf,UAAApB;AAAA,IACA,UAAAO;AAAA,IACA,OAAO;AAAA,MACL,IAAIU,EAAO,OAAO,MAAM;AAAA,MACxB,MAAMA,EAAO,OAAO,QAAQ;AAAA,MAC5B,SAASM;AAAA,MACT,UAAAvB;AAAA,MACA,sBAAsB;AAAA,MACtB,iBAAiB;AAAA,MACjB,eAAe;AAAA,IAAA;AAAA,IAEjB,YAAAU;AAAA,IACA,SAAS,CAAA;AAAA,IACT,MAAAC;AAAA,IACA,YAAYM,EAAO,OAAO,cAAc;AAAA,IACxC,QAAQ;AAAA,IACR,eAAeA,EAAO;AAAA,IACtB,mBAAAC;AAAA,IACA,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,IACvB,sBAAsB;AAAA,IACtB,mBAAmB5C,EAAaiD,CAAY;AAAA,IAC5C,eAAexC,EAAmBwC,CAAY;AAAA,EAAA;AAElD;AAMO,SAASC,EACdC,GACW;AAEX,QAAMC,KAAuCD,EAAW,UAAU,CAAA,GAAI;AAAA,IACpE,CAAAE,MAAM;AACJ,YAAMC,IAASD,EAAG,SAAS;AAC3B,aAAO;AAAA,QACL,IAAIA,EAAG;AAAA,QACP,MAAMA,EAAG,SAAS;AAAA,QAClB,MAAMA,EAAG,QAAQ;AAAA,QACjB,OAAOC,EAAO,WAAW,MAAM,IAC3BA,IACAA,IACEpB,EAAYoB,CAAM,IAClB;AAAA,QACN,eAAeD,EAAG,iBAAiB;AAAA,QACnC,QAASA,EAAG,UAAU;AAAA,MAAA;AAAA,IAE1B;AAAA,EAAA,GAIIE,IAAWJ,EAAW,cAAc,IACpClB,IAAWsB,EAAS,WAAW,MAAM,IACvCA,IACAA,IACErB,EAAYqB,CAAQ,IACpB;AAEN,SAAO;AAAA,IACL,IAAIJ,EAAW;AAAA,IACf,OAAOA,EAAW,mBAAmB;AAAA,IACrC,MAAM;AAAA,IACN,aAAaA,EAAW,eAAeA,EAAW,WAAW;AAAA,IAC7D,MAAM;AAAA,IACN,eAAe;AAAA,IACf,aAAa;AAAA,IACb,eAAe;AAAA,IACf,UAAU;AAAA,IACV,UAAAlB;AAAA,IACA,OAAO;AAAA,MACL,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU;AAAA,MACV,sBAAsB;AAAA,MACtB,iBAAiB;AAAA,MACjB,eAAe;AAAA,IAAA;AAAA,IAEjB,YAAY,CAAA;AAAA,IACZ,SAAS,CAAA;AAAA,IACT,MAAM,CAAA;AAAA,IACN,QAAQ;AAAA,IACR,cAAckB,EAAW;AAAA,IACzB,kBAAAC;AAAA,IACA,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,IACvB,sBAAsB;AAAA,EAAA;AAE1B;"}
@@ -10,7 +10,7 @@
10
10
  }
11
11
  }
12
12
  })();
13
- import { b9 as r, ba as o, bb as u, bc as m, bd as c, be as h, bf as C, bg as l, bh as p, bi as V, bj as w, bk as d, bl as g, bm as k, bn as S, bo as T, bp as f, bq as E, br as v, bs as x, bt as y, bu as D, bv as M, bw as P, bx as j, by as q, bz as z, bA as A } from "./VenueCalendar-DweCc8I9.js";
13
+ import { b9 as r, ba as o, bb as u, bc as m, bd as c, be as h, bf as C, bg as l, bh as p, bi as V, bj as w, bk as d, bl as g, bm as k, bn as S, bo as T, bp as f, bq as E, br as v, bs as x, bt as y, bu as D, bv as M, bw as P, bx as j, by as q, bz as z, bA as A } from "./VenueCalendar-Blt02sO6.js";
14
14
  import "svelte/internal/disclose-version";
15
15
  import "svelte/internal/client";
16
16
  import "svelte/transition";