@getmicdrop/venue-calendar 4.0.94 → 4.0.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/{CartView-hnrXbE_O.js → CartView-Cq0DU1Cy.js} +101 -101
  2. package/dist/{CartView-hnrXbE_O.js.map → CartView-Cq0DU1Cy.js.map} +1 -1
  3. package/dist/{Checkout-Bvre3lYs.js → Checkout-BA43iGDc.js} +263 -263
  4. package/dist/Checkout-BA43iGDc.js.map +1 -0
  5. package/dist/{Checkout-C4Kr5pVp.js → Checkout-BV5f49vY.js} +3 -3
  6. package/dist/{Checkout-C4Kr5pVp.js.map → Checkout-BV5f49vY.js.map} +1 -1
  7. package/dist/{CheckoutTimer-D2HnWYm7.js → CheckoutTimer-KyKyInco.js} +5 -5
  8. package/dist/{CheckoutTimer-D2HnWYm7.js.map → CheckoutTimer-KyKyInco.js.map} +1 -1
  9. package/dist/{ClockIcon-DA4wXK5Q.js → ClockIcon-BD24dBol.js} +2 -2
  10. package/dist/{ClockIcon-DA4wXK5Q.js.map → ClockIcon-BD24dBol.js.map} +1 -1
  11. package/dist/{CollectionView-DU1lTGU_.js → CollectionView-CKIxku9-.js} +18 -18
  12. package/dist/{CollectionView-DU1lTGU_.js.map → CollectionView-CKIxku9-.js.map} +1 -1
  13. package/dist/{Event-BuOnGjPB.js → Event-BPdt1Io5.js} +174 -169
  14. package/dist/{Event-BuOnGjPB.js.map → Event-BPdt1Io5.js.map} +1 -1
  15. package/dist/EventPage-DRnTMGTK.js +575 -0
  16. package/dist/EventPage-DRnTMGTK.js.map +1 -0
  17. package/dist/{Heading-D4iOOm-C.js → Heading-pQuVpBrL.js} +8 -8
  18. package/dist/{Heading-D4iOOm-C.js.map → Heading-pQuVpBrL.js.map} +1 -1
  19. package/dist/{ScarcityBadge-D37JY-BJ.js → ScarcityBadge-DoYdujCs.js} +7 -7
  20. package/dist/{ScarcityBadge-D37JY-BJ.js.map → ScarcityBadge-DoYdujCs.js.map} +1 -1
  21. package/dist/{SeriesPage-CZdi_-a4.js → SeriesPage-vw7Hva9F.js} +7 -7
  22. package/dist/{SeriesPage-CZdi_-a4.js.map → SeriesPage-vw7Hva9F.js.map} +1 -1
  23. package/dist/{Spinner-BZYln43S.js → Spinner-BfFZMaDP.js} +5 -5
  24. package/dist/{Spinner-BZYln43S.js.map → Spinner-BfFZMaDP.js.map} +1 -1
  25. package/dist/{Success-CQYI5SZO.js → Success-Cjj6CC4w.js} +325 -329
  26. package/dist/{Success-CQYI5SZO.js.map → Success-Cjj6CC4w.js.map} +1 -1
  27. package/dist/{Text-C-6sDfH2.js → Text-CT79Zi5n.js} +2 -2
  28. package/dist/{Text-C-6sDfH2.js.map → Text-CT79Zi5n.js.map} +1 -1
  29. package/dist/{VenueCalendar-Um0PQCVy.js → VenueCalendar-Cz7_VBC6.js} +1948 -1951
  30. package/dist/VenueCalendar-Cz7_VBC6.js.map +1 -0
  31. package/dist/{ViewTicketsEmbed-D2jQ8AMb.js → ViewTicketsEmbed-BvCfoKY3.js} +80 -80
  32. package/dist/{ViewTicketsEmbed-D2jQ8AMb.js.map → ViewTicketsEmbed-BvCfoKY3.js.map} +1 -1
  33. package/dist/api/api/events.d.ts +18 -0
  34. package/dist/api/api/gift-cards.d.ts +19 -0
  35. package/dist/api/api/index.d.ts +2 -2
  36. package/dist/api/api/result.d.ts +31 -1
  37. package/dist/api/api.cjs +1 -1
  38. package/dist/api/api.cjs.map +1 -1
  39. package/dist/api/api.mjs +295 -284
  40. package/dist/api/api.mjs.map +1 -1
  41. package/dist/{data-toggle-store.svelte-CyXPU9Oq.js → data-toggle-store.svelte-BHwbM34q.js} +2 -2
  42. package/dist/{data-toggle-store.svelte-CyXPU9Oq.js.map → data-toggle-store.svelte-BHwbM34q.js.map} +1 -1
  43. package/dist/{labels-BNiV89mT.js → labels-_x9WkVuZ.js} +65 -62
  44. package/dist/labels-_x9WkVuZ.js.map +1 -0
  45. package/dist/{modalManager.svelte-D_9E6W5P.js → modalManager.svelte-Csm1WlvP.js} +2 -2
  46. package/dist/{modalManager.svelte-D_9E6W5P.js.map → modalManager.svelte-Csm1WlvP.js.map} +1 -1
  47. package/dist/{transform-HKz55B2D.js → transform-WRPgSKLN.js} +6 -6
  48. package/dist/{transform-HKz55B2D.js.map → transform-WRPgSKLN.js.map} +1 -1
  49. package/dist/venue-calendar.es.js +1 -1
  50. package/dist/venue-calendar.iife.js +33 -33
  51. package/dist/venue-calendar.iife.js.map +1 -1
  52. package/dist/venue-calendar.umd.js +36 -36
  53. package/dist/venue-calendar.umd.js.map +1 -1
  54. package/package.json +2 -2
  55. package/dist/Checkout-Bvre3lYs.js.map +0 -1
  56. package/dist/EventPage-vBSbuSaG.js +0 -566
  57. package/dist/EventPage-vBSbuSaG.js.map +0 -1
  58. package/dist/VenueCalendar-Um0PQCVy.js.map +0 -1
  59. package/dist/labels-BNiV89mT.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { I as w } from "./VenueCalendar-Um0PQCVy.js";
1
+ import { J as w } from "./VenueCalendar-Cz7_VBC6.js";
2
2
  import * as a from "svelte/internal/client";
3
3
  function e(s, i, p = 0) {
4
4
  const r = /* @__PURE__ */ new Date(), h = (5 - r.getUTCDay() + 7) % 7 || 7, n = new Date(
@@ -417,4 +417,4 @@ export {
417
417
  A as d,
418
418
  _ as m
419
419
  };
420
- //# sourceMappingURL=data-toggle-store.svelte-CyXPU9Oq.js.map
420
+ //# sourceMappingURL=data-toggle-store.svelte-BHwbM34q.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data-toggle-store.svelte-CyXPU9Oq.js","sources":["../src/lib/public-calendar-flow/mock-data.ts","../src/lib/public-calendar-flow/data-toggle-store.svelte.ts"],"sourcesContent":["import { getDefaultTimezone } from '@getmicdrop/svelte-components/utils/timezones';\n// Premium Ticket Experience — Mock Data\n// Realistic event data for all design variants. DO NOT MODIFY per-variant.\n\nimport type {\n EventData,\n PerformerData,\n FAQItem,\n VenueData,\n TicketTypeData,\n} from './types';\n\n// All dates here are anchored to \"the upcoming Friday at 8pm\" so the showcase\n// stays in the future regardless of when it's loaded. Hardcoded calendar dates\n// rot every few months and cause `event_past` CTAs even when status === 'on_sale'.\nfunction showcaseDate(\n daysFromFriday: number,\n hour: number,\n minute = 0\n): string {\n const now = new Date();\n const day = now.getUTCDay(); // 0=Sun..6=Sat\n const daysToFriday = (5 - day + 7) % 7 || 7; // always the NEXT Friday (never today)\n const base = new Date(\n Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate())\n );\n base.setUTCDate(base.getUTCDate() + daysToFriday + daysFromFriday);\n const y = base.getUTCFullYear();\n const m = String(base.getUTCMonth() + 1).padStart(2, '0');\n const d = String(base.getUTCDate()).padStart(2, '0');\n const hh = String(hour).padStart(2, '0');\n const mm = String(minute).padStart(2, '0');\n return `${y}-${m}-${d}T${hh}:${mm}:00-08:00`;\n}\n\nfunction showcaseDateOnly(daysFromFriday: number): string {\n return showcaseDate(daysFromFriday, 0).slice(0, 10);\n}\n\n// --- Venue ---\nexport const mockVenue: VenueData = {\n id: 101,\n name: 'The Laugh Factory',\n address: '8001 Sunset Blvd, Los Angeles, CA 90046',\n timezone: getDefaultTimezone(),\n serviceFeePercentage: 10,\n serviceFeeCents: 0,\n taxPercentage: 9.5,\n contactEmail: 'help@thelaughfactory.com',\n};\n\n// --- Performers ---\nexport const mockPerformers: PerformerData[] = [\n {\n id: 1,\n displayName: 'Dave Martinez',\n profileImage:\n 'https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?w=200&h=200&fit=crop',\n },\n {\n id: 2,\n displayName: 'Sarah Chen',\n profileImage:\n 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=200&h=200&fit=crop',\n },\n {\n id: 3,\n displayName: 'Mike Thompson',\n profileImage:\n 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=200&h=200&fit=crop',\n },\n];\n\n// --- FAQs ---\nexport const mockFaqs: FAQItem[] = [\n {\n question: 'What time do doors open?',\n answer:\n 'Doors open at 7:00 PM, one hour before showtime. We recommend arriving early to get the best seats.',\n },\n {\n question: 'Is there a drink minimum?',\n answer:\n 'Yes, there is a 2-drink minimum per person. Both alcoholic and non-alcoholic beverages count toward the minimum.',\n },\n {\n question: 'Can I get a refund?',\n answer:\n 'Tickets are non-refundable but can be transferred to another person up to 24 hours before the show. Contact us for transfers.',\n },\n {\n question: 'Is the venue accessible?',\n answer:\n 'Yes, the venue is fully wheelchair accessible with ADA-compliant seating available. Please contact us to reserve accessible seating.',\n },\n];\n\n// --- Ticket Types ---\nexport const mockTickets: TicketTypeData[] = [\n\t{\n\t\tid: 101,\n\t\tname: 'General Admission',\n\t\tdescription: 'Standard seating in the main room',\n\t\tprice: 25,\n\t\tfee: 2.5,\n\t\tquantityAvailable: 12,\n\t\tquantityTotal: 150,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 8,\n\t\tstatus: 'on_sale',\n\t\tsalesEndDate: '2026-02-20T20:00:00-08:00',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 102,\n\t\tname: 'VIP Front Row',\n\t\tdescription: 'Premium seats in the first two rows with a complimentary drink',\n\t\tprice: 55,\n\t\tfee: 5.5,\n\t\tquantityAvailable: 3,\n\t\tquantityTotal: 20,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 4,\n\t\tstatus: 'on_sale',\n\t\tsalesEndDate: '2026-02-20T20:00:00-08:00',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 103,\n\t\tname: 'Table for 4',\n\t\tdescription: 'Reserved table for four guests with bottle service',\n\t\tprice: 180,\n\t\tfee: 18,\n\t\tquantityAvailable: 8,\n\t\tquantityTotal: 15,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 3,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 104,\n\t\tname: 'Student Discount',\n\t\tdescription: 'Valid student ID required at the door',\n\t\tprice: 15,\n\t\tfee: 1.5,\n\t\tquantityAvailable: 45,\n\t\tquantityTotal: 50,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 2,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 105,\n\t\tname: 'Early Bird Special',\n\t\tdescription: 'Limited early bird pricing — first come, first served',\n\t\tprice: 20,\n\t\tfee: 2,\n\t\tquantityAvailable: 15,\n\t\tquantityTotal: 30,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 4,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 106,\n\t\tname: 'Senior (65+)',\n\t\tdescription: 'Senior discount with valid ID at the door',\n\t\tprice: 18,\n\t\tfee: 1.8,\n\t\tquantityAvailable: 30,\n\t\tquantityTotal: 40,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 4,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 107,\n\t\tname: 'Industry Comp',\n\t\tdescription: 'Discount for industry professionals — credentials required',\n\t\tprice: 12,\n\t\tfee: 1.2,\n\t\tquantityAvailable: 25,\n\t\tquantityTotal: 30,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 2,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 108,\n\t\tname: 'Group of 6',\n\t\tdescription: 'Reserved booth for six guests with priority seating',\n\t\tprice: 240,\n\t\tfee: 24,\n\t\tquantityAvailable: 5,\n\t\tquantityTotal: 8,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 2,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 109,\n\t\tname: 'Standing Room',\n\t\tdescription: 'Standing room only at the back of the venue',\n\t\tprice: 12,\n\t\tfee: 1.2,\n\t\tquantityAvailable: 50,\n\t\tquantityTotal: 60,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 6,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 110,\n\t\tname: 'Day-of Door',\n\t\tdescription: 'Day-of pricing for walk-ins — limited availability',\n\t\tprice: 35,\n\t\tfee: 3.5,\n\t\tquantityAvailable: 20,\n\t\tquantityTotal: 25,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 4,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t}\n];\n\n// --- Main Event (on sale, multiple ticket types, scarcity on VIP) ---\n// Computed relative to today (showcase use): always lands ~21 days in the\n// future so the BookingWidget renders the on-sale state, not \"Sales ended\".\n// Memory: [[user_mastermind_date_awareness]] — never hardcode showcase dates.\nconst _now = new Date();\nconst _evDate = new Date(_now.getFullYear(), _now.getMonth(), _now.getDate() + 21);\nconst _ymd = `${_evDate.getFullYear()}-${String(_evDate.getMonth() + 1).padStart(2, '0')}-${String(_evDate.getDate()).padStart(2, '0')}`;\n\nexport const mockEvent: EventData = {\n id: 2405,\n title: 'Friday Night Comedy Throwdown',\n slug: 'friday-night-comedy-throwdown',\n description: `Get ready for the funniest night of the week! The Friday Night Comedy Throwdown brings together three of LA's hottest stand-up comics for two hours of non-stop laughs.\n\nHeadliner Dave Martinez (as seen on Netflix's \"Comedy Knockout\") brings his signature high-energy style, while Sarah Chen delivers her razor-sharp observational humor that's earned her a devoted following. Host Mike Thompson keeps the energy up between sets with crowd work that'll have you crying laughing.\n\nWhether you're a comedy regular or a first-timer, this show delivers. Grab your crew, grab some drinks, and prepare to laugh until your abs hurt.`,\n\tdate: _ymd,\n\tstartDateTime: `${_ymd}T20:00:00-08:00`,\n\tendDateTime: `${_ymd}T22:00:00-08:00`,\n\tdoorsOpenTime: `${_ymd}T19:00:00-08:00`,\n\ttimezone: 'America/Los_Angeles',\n\timageUrl: '/posters/Friday Night Showdown.jpg', // wide landscape 800×400\n\tvenue: mockVenue,\n\tperformers: mockPerformers,\n\ttickets: mockTickets,\n\tfaqs: mockFaqs,\n\tdisclaimer: '',\n\tstatus: 'on_sale',\n\tisPasswordProtected: false,\n\tisRegistrationEvent: false,\n\ttotalTicketsRemaining: 68,\n\ttotalTicketsCapacity: 265,\n\tdisplayStartTime: true,\n\tdisplayEndTime: true,\n\tdisplayDoorsTime: true\n};\n\n// --- Sold Out Event (no end time shown) ---\nexport const mockSoldOutEvent: EventData = {\n ...mockEvent,\n id: 2406,\n title: 'Saturday Night Special',\n slug: 'saturday-night-special',\n imageUrl: '/posters/the-duel-square.webp', // square 3000×3000\n date: showcaseDateOnly(1),\n startDateTime: showcaseDate(1, 21),\n endDateTime: showcaseDate(1, 23),\n displayEndTime: false,\n status: 'sold_out',\n totalTicketsRemaining: 0,\n tickets: mockTickets.map(t => ({\n ...t,\n quantityAvailable: 0,\n status: 'sold_out' as const,\n })),\n};\n\n// --- Free Event (no doors time shown) ---\nexport const mockFreeEvent: EventData = {\n ...mockEvent,\n id: 2407,\n title: 'Open Mic Night',\n slug: 'open-mic-night',\n imageUrl: '/posters/OpenMic-Twitter.jpg', // wide landscape 2127×1075\n date: showcaseDateOnly(-2),\n startDateTime: showcaseDate(-2, 19),\n endDateTime: showcaseDate(-2, 21),\n displayDoorsTime: false,\n description:\n 'Free open mic night! Sign up at the door. All skill levels welcome.',\n status: 'on_sale',\n tickets: [\n {\n id: 201,\n name: 'Free Entry',\n description: 'Sign up at the door for a 5-minute set',\n price: 0,\n fee: 0,\n quantityAvailable: 40,\n quantityTotal: 50,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n ],\n totalTicketsRemaining: 40,\n totalTicketsCapacity: 50,\n};\n\n// --- Series Event (with occurrences) ---\nexport const mockSeriesEvent: EventData = {\n ...mockEvent,\n id: 2410,\n title: 'Improv Throwdown',\n slug: 'improv-throwdown',\n imageUrl: '/posters/laughlab-tall.webp', // tall portrait 2550×3300\n eventSeriesId: 42,\n description:\n 'Weekly improv comedy show featuring rotating guest performers and audience participation games.',\n seriesOccurrences: [\n // Same-day shows (Fri Feb 20 — 7pm, 8pm, 9:30pm)\n {\n id: 2410,\n slug: 'improv-throwdown-feb-20-7pm',\n startDateTime: showcaseDate(0, 19),\n endDateTime: showcaseDate(0, 20, 30),\n status: 'sold_out',\n ctaText: 'Sold out',\n ctaDisabled: true,\n },\n {\n id: 2414,\n slug: 'improv-throwdown-feb-20-8pm',\n startDateTime: showcaseDate(0, 20),\n endDateTime: showcaseDate(0, 21, 30),\n status: 'on_sale',\n ctaText: 'Get tickets',\n ctaDisabled: false,\n },\n {\n id: 2415,\n slug: 'improv-throwdown-feb-20-930pm',\n startDateTime: showcaseDate(0, 21, 30),\n endDateTime: showcaseDate(0, 23),\n status: 'on_sale',\n ctaText: 'Get tickets',\n ctaDisabled: false,\n },\n // Single show days\n {\n id: 2411,\n slug: 'improv-throwdown-feb-27',\n startDateTime: showcaseDate(7, 20),\n endDateTime: showcaseDate(7, 22),\n status: 'sold_out',\n ctaText: 'Sold out',\n ctaDisabled: true,\n },\n {\n id: 2412,\n slug: 'improv-throwdown-mar-06',\n startDateTime: showcaseDate(14, 20),\n endDateTime: showcaseDate(14, 22),\n status: 'on_sale',\n ctaText: 'Get tickets',\n ctaDisabled: false,\n },\n {\n id: 2413,\n slug: 'improv-throwdown-mar-13',\n startDateTime: showcaseDate(21, 20),\n endDateTime: showcaseDate(21, 22),\n status: 'coming_soon',\n ctaText: 'Coming soon',\n ctaDisabled: true,\n },\n ],\n};\n\n// --- Series Instance (one specific occurrence of the series — regular event page with series link) ---\nexport const mockSeriesInstanceEvent: EventData = {\n ...mockEvent,\n id: 2414,\n title: 'Improv Throwdown',\n slug: 'improv-throwdown-feb-20-8pm',\n imageUrl: '/posters/laughlab-tall.webp',\n eventSeriesId: 42,\n startDateTime: showcaseDate(0, 20),\n endDateTime: showcaseDate(0, 21, 30),\n description:\n 'Weekly improv comedy show featuring rotating guest performers and audience participation games.',\n // No seriesOccurrences — this is a single instance, not the series home\n};\n\n// --- Collection Home (loose grouping of different events with widgets) ---\nexport const mockCollectionEvent: EventData = {\n ...mockEvent,\n id: 3000,\n title: 'February Comedy Festival',\n slug: 'february-comedy-festival',\n imageUrl: '/posters/Friday Night Showdown.jpg',\n description:\n \"A curated collection of the best comedy shows this February. From improv to stand-up, sketch to open mic — there's something for every comedy fan.\",\n collectionId: 7,\n collectionEvents: [\n {\n id: 2401,\n name: 'Friday Night Comedy Throwdown',\n slug: 'friday-night-comedy-throwdown',\n image: '/posters/Friday Night Showdown.jpg',\n startDateTime: showcaseDate(0, 20),\n status: 'on_sale',\n ticketsRemaining: 42,\n ticketsTotal: 200,\n },\n {\n id: 2402,\n name: 'Saturday Night Special',\n slug: 'saturday-night-special',\n image: '/posters/the-duel-square.webp',\n startDateTime: showcaseDate(1, 21),\n status: 'on_sale',\n ticketsRemaining: 8,\n ticketsTotal: 150,\n },\n {\n id: 2403,\n name: 'Stand-Up Comedy Workshop',\n slug: 'standup-comedy-workshop',\n image: '/posters/stand up 101.png',\n startDateTime: showcaseDate(2, 14),\n status: 'on_sale',\n ticketsRemaining: 15,\n ticketsTotal: 30,\n },\n {\n id: 2410,\n name: 'Improv Throwdown',\n slug: 'improv-throwdown',\n image: '/posters/laughlab-tall.webp',\n startDateTime: showcaseDate(7, 20),\n status: 'on_sale',\n ticketsRemaining: 65,\n ticketsTotal: 200,\n },\n {\n id: 2404,\n name: 'Open Mic Night',\n slug: 'open-mic-night',\n image: '/posters/OpenMic-Twitter.jpg',\n startDateTime: showcaseDate(8, 19),\n status: 'on_sale',\n ticketsRemaining: 100,\n ticketsTotal: 100,\n },\n {\n id: 2405,\n name: 'Late Night Comedy Underground',\n slug: 'late-night-comedy-underground',\n image: '/posters/standup-portrait.webp',\n startDateTime: showcaseDate(8, 22),\n status: 'sold_out',\n ticketsRemaining: 0,\n ticketsTotal: 80,\n },\n ],\n};\n\n// --- Registration Event (workshop — no time shown, just date + doors) ---\nexport const mockRegistrationEvent: EventData = {\n ...mockEvent,\n id: 2408,\n title: 'Stand-Up Comedy Workshop',\n slug: 'standup-comedy-workshop',\n imageUrl: '/posters/stand up 101.png', // 16:9 landscape 1920×1080\n description:\n 'Learn the fundamentals of stand-up comedy in this 3-hour intensive workshop. Write, refine, and perform your first 5-minute set.',\n isRegistrationEvent: true,\n displayStartTime: false,\n displayEndTime: false,\n status: 'on_sale',\n tickets: [\n {\n id: 301,\n name: 'Workshop Seat',\n description: 'Includes materials and performance slot',\n price: 75,\n fee: 7.5,\n quantityAvailable: 8,\n quantityTotal: 12,\n minPerOrder: 1,\n maxPerOrder: 1,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n ],\n totalTicketsRemaining: 8,\n totalTicketsCapacity: 12,\n};\n\n// --- Donation Event ---\nexport const mockDonationEvent: EventData = {\n ...mockEvent,\n id: 2414,\n title: 'Charity Comedy Benefit',\n slug: 'charity-comedy-benefit',\n imageUrl: '/posters/Friday Night Showdown.jpg',\n description:\n 'All proceeds go to the LA Comedy Relief Fund. Choose your own donation amount or grab a standard ticket.',\n status: 'on_sale',\n tickets: [\n {\n id: 401,\n name: 'Donation',\n description: 'Support the cause — choose your amount',\n price: 0,\n fee: 0,\n quantityAvailable: 200,\n quantityTotal: 200,\n minPerOrder: 1,\n maxPerOrder: 10,\n status: 'on_sale',\n isDonation: true,\n isHidden: false,\n ticketType: 2,\n },\n {\n id: 402,\n name: 'Standard Admission',\n description: 'Includes one drink ticket',\n price: 30,\n fee: 3,\n quantityAvailable: 80,\n quantityTotal: 100,\n minPerOrder: 1,\n maxPerOrder: 6,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n ],\n totalTicketsRemaining: 280,\n totalTicketsCapacity: 300,\n};\n\n// --- Mixed Event (ALL ticket states in one event) ---\nexport const mockMixedEvent: EventData = {\n ...mockEvent,\n id: 2415,\n title: 'The Everything Show',\n slug: 'the-everything-show',\n imageUrl: '/posters/the-duel-square.webp',\n description:\n 'A showcase event with every ticket state possible — for testing all edge cases.',\n status: 'on_sale',\n tickets: [\n {\n id: 501,\n name: 'General Admission',\n description: 'Standard seating in the main room',\n price: 25,\n fee: 2.5,\n quantityAvailable: 45,\n quantityTotal: 150,\n minPerOrder: 1,\n maxPerOrder: 8,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 502,\n name: 'Basic Entry',\n price: 15,\n fee: 1.5,\n quantityAvailable: 60,\n quantityTotal: 80,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 503,\n name: 'VIP Front Row',\n description: 'Premium seats with complimentary drink',\n price: 75,\n fee: 7.5,\n quantityAvailable: 2,\n quantityTotal: 20,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 504,\n name: 'Early Bird',\n description: 'Limited early bird pricing',\n price: 20,\n fee: 2,\n quantityAvailable: 0,\n quantityTotal: 30,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'sold_out',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 505,\n name: 'Late Night Add-On',\n description: 'Access to the after-party at midnight',\n price: 40,\n fee: 4,\n quantityAvailable: 50,\n quantityTotal: 50,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'coming_soon',\n salesStartDate: showcaseDate(9, 10),\n isDonation: false,\n isHidden: false,\n },\n {\n id: 506,\n name: 'Weekend Bundle',\n description: 'Includes Saturday + Sunday shows',\n price: 45,\n fee: 4.5,\n quantityAvailable: 0,\n quantityTotal: 25,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'sales_ended',\n salesEndDate: showcaseDate(-10, 23, 59),\n isDonation: false,\n isHidden: false,\n },\n {\n id: 507,\n name: 'Donation',\n description: 'Support the performers directly',\n price: 0,\n fee: 0,\n quantityAvailable: 100,\n quantityTotal: 100,\n minPerOrder: 1,\n maxPerOrder: 5,\n status: 'on_sale',\n isDonation: true,\n isHidden: false,\n ticketType: 2,\n },\n {\n id: 508,\n name: 'Secret VIP Lounge',\n description: 'Backstage access with meet & greet',\n price: 150,\n fee: 15,\n quantityAvailable: 10,\n quantityTotal: 10,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n {\n id: 509,\n name: 'Industry Comp',\n description: 'Complimentary ticket for industry professionals',\n price: 0,\n fee: 0,\n quantityAvailable: 20,\n quantityTotal: 20,\n minPerOrder: 1,\n maxPerOrder: 1,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n ],\n totalTicketsRemaining: 287,\n totalTicketsCapacity: 485,\n};\n\n// --- Sectioned Event (tickets grouped by section) ---\nexport const mockSectionedEvent: EventData = {\n ...mockEvent,\n id: 2416,\n title: 'Multi-Stage Festival',\n slug: 'multi-stage-festival',\n imageUrl: '/posters/OpenMic-Twitter.jpg',\n description:\n 'Three stages, one incredible night. Choose your zone and enjoy performances across the venue.',\n status: 'on_sale',\n tickets: [\n {\n id: 601,\n name: 'Floor Standing',\n description: 'Standing room on the main floor',\n price: 35,\n fee: 3.5,\n quantityAvailable: 100,\n quantityTotal: 200,\n minPerOrder: 1,\n maxPerOrder: 8,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n sectionName: 'Floor',\n },\n {\n id: 602,\n name: 'Floor Reserved',\n description: 'Reserved seat on the main floor',\n price: 50,\n fee: 5,\n quantityAvailable: 30,\n quantityTotal: 80,\n minPerOrder: 1,\n maxPerOrder: 6,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n sectionName: 'Floor',\n },\n {\n id: 603,\n name: 'Balcony Standard',\n description: 'Standard balcony seating with great views',\n price: 40,\n fee: 4,\n quantityAvailable: 50,\n quantityTotal: 60,\n minPerOrder: 1,\n maxPerOrder: 6,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n sectionName: 'Balcony',\n },\n {\n id: 604,\n name: 'Balcony Premium',\n description: 'Front-row balcony seats',\n price: 60,\n fee: 6,\n quantityAvailable: 5,\n quantityTotal: 20,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n sectionName: 'Balcony',\n },\n {\n id: 605,\n name: 'VIP Lounge Table',\n description:\n 'Private table for 4 with bottle service and backstage access',\n price: 250,\n fee: 25,\n quantityAvailable: 3,\n quantityTotal: 8,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n sectionName: 'VIP Lounge',\n },\n ],\n totalTicketsRemaining: 188,\n totalTicketsCapacity: 368,\n};\n\n// --- Promo Event (hidden tickets for promo reveal testing) ---\nexport const mockPromoEvent: EventData = {\n ...mockEvent,\n id: 2417,\n title: 'Secret Show',\n slug: 'secret-show',\n imageUrl: '/posters/luke-null-tall.webp',\n description:\n 'An intimate comedy experience. Some tickets are only available with a promo code.',\n status: 'on_sale',\n tickets: [\n {\n id: 701,\n name: 'General Admission',\n price: 30,\n fee: 3,\n quantityAvailable: 40,\n quantityTotal: 60,\n minPerOrder: 1,\n maxPerOrder: 6,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 702,\n name: 'Premium Seat',\n description: 'Reserved seating in rows 1-5',\n price: 50,\n fee: 5,\n quantityAvailable: 15,\n quantityTotal: 30,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 703,\n name: 'Artist Meet & Greet',\n description:\n 'Backstage pass with photo opportunity — promo code required',\n price: 100,\n fee: 10,\n quantityAvailable: 8,\n quantityTotal: 10,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n {\n id: 704,\n name: 'Industry Comp',\n description: 'Complimentary entry for industry professionals',\n price: 0,\n fee: 0,\n quantityAvailable: 10,\n quantityTotal: 10,\n minPerOrder: 1,\n maxPerOrder: 1,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n ],\n totalTicketsRemaining: 73,\n totalTicketsCapacity: 110,\n};\n\n// --- Hidden-Only Event (MIC-1039) — no visible tickets, only hidden remain ---\n// Lands the user on a page where the only purchasable seats are gated behind\n// a promo code. With zero visible tickets the page should suppress the ticket\n// list entirely and render only the PromoCodeInput.\nexport const mockHiddenOnlyEvent: EventData = {\n ...mockEvent,\n id: 2419,\n title: 'Industry Showcase',\n slug: 'industry-showcase',\n description:\n 'A private comedy showcase. Tickets are only available with a promo code.',\n status: 'on_sale',\n tickets: [\n {\n id: 902,\n name: 'Industry Comp',\n description:\n 'Complimentary entry for industry professionals — promo code required',\n price: 0,\n fee: 0,\n quantityAvailable: 15,\n quantityTotal: 20,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n {\n id: 903,\n name: 'Artist Hold',\n description: 'Held for artist guests — promo code required',\n price: 50,\n fee: 5,\n quantityAvailable: 5,\n quantityTotal: 10,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n ],\n totalTicketsRemaining: 0,\n totalTicketsCapacity: 0,\n};\n\n// --- Multi-Stage Event (stage name + age restriction) ---\nexport const mockMultiStageEvent: EventData = {\n ...mockEvent,\n id: 2418,\n title: 'Late Night Comedy Underground',\n slug: 'late-night-comedy-underground',\n imageUrl: '/posters/laughlab-tall.webp',\n description:\n 'The raunchiest, most unfiltered comedy night in LA. Side stage, no holds barred.',\n status: 'on_sale',\n stageName: 'Side Stage',\n ageRestriction: 21,\n displayAgeRestriction: true,\n tickets: [\n {\n id: 801,\n name: 'General Admission',\n price: 20,\n fee: 2,\n quantityAvailable: 25,\n quantityTotal: 40,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 802,\n name: 'VIP Booth',\n description: 'Reserved booth for 2 with drinks included',\n price: 80,\n fee: 8,\n quantityAvailable: 4,\n quantityTotal: 6,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n ],\n totalTicketsRemaining: 29,\n totalTicketsCapacity: 46,\n};\n\n// --- Long Name Event (Laugh Factory-style: all performers in the title) ---\nexport const mockLongNameEvent: EventData = {\n ...mockEvent,\n id: 2420,\n title:\n 'The Friday Night All-Star Comedy Throwdown featuring Dave Martinez, Sarah Chen, Mike Thompson, Bobby Lee, Andrew Santino, Hasan Minhaj, and Very Special Guests from Netflix, Comedy Central, HBO, and Amazon Prime',\n slug: 'the-friday-night-all-star-comedy-throwdown',\n imageUrl: '/posters/laughlab-tall.webp',\n description: `The biggest lineup of the year! Seven of the hottest comics in LA on one stage for one unforgettable night. This is the show comedy fans have been waiting for — a stacked bill from top to bottom with headliners you've seen on every major streaming platform.\n\nDave Martinez (Netflix's \"Comedy Knockout\") headlines with his signature high-energy style. Sarah Chen brings her razor-sharp observational humor. Mike Thompson keeps the energy sky-high between sets. Bobby Lee delivers his unhinged brilliance. Andrew Santino roasts everything in sight. Hasan Minhaj brings the political heat. Plus surprise guests you won't want to miss.\n\nTwo-drink minimum. No photography or recording. Arrive early — seating is first come, first served.`,\n ageRestriction: 18,\n displayAgeRestriction: true,\n displayStartTime: true,\n displayEndTime: true,\n displayDoorsTime: true,\n performers: [\n ...mockPerformers,\n {\n id: 4,\n displayName: 'Bobby Lee',\n profileImage:\n 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=200&h=200&fit=crop',\n },\n {\n id: 5,\n displayName: 'Andrew Santino',\n profileImage:\n 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=200&h=200&fit=crop',\n },\n {\n id: 6,\n displayName: 'Hasan Minhaj',\n profileImage:\n 'https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?w=200&h=200&fit=crop',\n },\n ],\n};\n\n// --- Wide/Panoramic Image Event (tests min-height behavior) ---\nexport const mockWideImageEvent: EventData = {\n ...mockEvent,\n id: 2421,\n title: 'Sunset Sessions: Rooftop Jazz & Cocktails',\n slug: 'sunset-sessions-rooftop-jazz',\n imageUrl: '/posters/Wide.jpg',\n description: `Join us on the rooftop for an evening of smooth jazz, craft cocktails, and stunning sunset views over the city. Featuring a rotating cast of LA's finest jazz musicians in an intimate outdoor setting.\n\nFull bar available with specialty cocktails curated for the evening. Light bites and small plates from our kitchen. Dress code: smart casual.`,\n displayStartTime: true,\n displayEndTime: true,\n displayDoorsTime: true,\n};\n\n// --- Password Protected Event ---\nexport const mockPasswordEvent: EventData = {\n ...mockEvent,\n id: 2409,\n title: 'Secret Comedy Club',\n slug: 'secret-comedy-club',\n imageUrl: '/posters/luke-null-tall.webp', // tall portrait 625×937\n description: 'An exclusive underground comedy experience. Password required.',\n isPasswordProtected: true,\n status: 'on_sale',\n};\n","export type DataVariant =\n\t| 'default'\n\t| 'sold_out'\n\t| 'free'\n\t| 'registration'\n\t| 'series'\n\t| 'series_instance'\n\t| 'collection'\n\t| 'donation'\n\t| 'mixed'\n\t| 'sections'\n\t| 'promo'\n\t| 'multi_stage'\n\t| 'long'\n\t| 'wide';\n\nexport interface ToggleOption {\n\tvalue: string;\n\tlabel: string;\n\tcolor: string;\n}\n\nclass DataToggleStore {\n\tcurrent = $state<string>('default');\n\toptions = $state<ToggleOption[]>([]);\n\tisActive = $state(false);\n}\n\nexport const dataToggleStore = new DataToggleStore();\n"],"names":["showcaseDate","daysFromFriday","hour","minute","now","daysToFriday","base","y","m","d","hh","mm","showcaseDateOnly","mockVenue","getDefaultTimezone","mockPerformers","mockFaqs","mockTickets","_now","_evDate","_ymd","mockEvent","t","mockFreeEvent","mockRegistrationEvent","mockDonationEvent","DataToggleStore","#current","$","#isActive","dataToggleStore"],"mappings":"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"}
1
+ {"version":3,"file":"data-toggle-store.svelte-BHwbM34q.js","sources":["../src/lib/public-calendar-flow/mock-data.ts","../src/lib/public-calendar-flow/data-toggle-store.svelte.ts"],"sourcesContent":["import { getDefaultTimezone } from '@getmicdrop/svelte-components/utils/timezones';\n// Premium Ticket Experience — Mock Data\n// Realistic event data for all design variants. DO NOT MODIFY per-variant.\n\nimport type {\n EventData,\n PerformerData,\n FAQItem,\n VenueData,\n TicketTypeData,\n} from './types';\n\n// All dates here are anchored to \"the upcoming Friday at 8pm\" so the showcase\n// stays in the future regardless of when it's loaded. Hardcoded calendar dates\n// rot every few months and cause `event_past` CTAs even when status === 'on_sale'.\nfunction showcaseDate(\n daysFromFriday: number,\n hour: number,\n minute = 0\n): string {\n const now = new Date();\n const day = now.getUTCDay(); // 0=Sun..6=Sat\n const daysToFriday = (5 - day + 7) % 7 || 7; // always the NEXT Friday (never today)\n const base = new Date(\n Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate())\n );\n base.setUTCDate(base.getUTCDate() + daysToFriday + daysFromFriday);\n const y = base.getUTCFullYear();\n const m = String(base.getUTCMonth() + 1).padStart(2, '0');\n const d = String(base.getUTCDate()).padStart(2, '0');\n const hh = String(hour).padStart(2, '0');\n const mm = String(minute).padStart(2, '0');\n return `${y}-${m}-${d}T${hh}:${mm}:00-08:00`;\n}\n\nfunction showcaseDateOnly(daysFromFriday: number): string {\n return showcaseDate(daysFromFriday, 0).slice(0, 10);\n}\n\n// --- Venue ---\nexport const mockVenue: VenueData = {\n id: 101,\n name: 'The Laugh Factory',\n address: '8001 Sunset Blvd, Los Angeles, CA 90046',\n timezone: getDefaultTimezone(),\n serviceFeePercentage: 10,\n serviceFeeCents: 0,\n taxPercentage: 9.5,\n contactEmail: 'help@thelaughfactory.com',\n};\n\n// --- Performers ---\nexport const mockPerformers: PerformerData[] = [\n {\n id: 1,\n displayName: 'Dave Martinez',\n profileImage:\n 'https://images.unsplash.com/photo-1506794778202-cad84cf45f1d?w=200&h=200&fit=crop',\n },\n {\n id: 2,\n displayName: 'Sarah Chen',\n profileImage:\n 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=200&h=200&fit=crop',\n },\n {\n id: 3,\n displayName: 'Mike Thompson',\n profileImage:\n 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=200&h=200&fit=crop',\n },\n];\n\n// --- FAQs ---\nexport const mockFaqs: FAQItem[] = [\n {\n question: 'What time do doors open?',\n answer:\n 'Doors open at 7:00 PM, one hour before showtime. We recommend arriving early to get the best seats.',\n },\n {\n question: 'Is there a drink minimum?',\n answer:\n 'Yes, there is a 2-drink minimum per person. Both alcoholic and non-alcoholic beverages count toward the minimum.',\n },\n {\n question: 'Can I get a refund?',\n answer:\n 'Tickets are non-refundable but can be transferred to another person up to 24 hours before the show. Contact us for transfers.',\n },\n {\n question: 'Is the venue accessible?',\n answer:\n 'Yes, the venue is fully wheelchair accessible with ADA-compliant seating available. Please contact us to reserve accessible seating.',\n },\n];\n\n// --- Ticket Types ---\nexport const mockTickets: TicketTypeData[] = [\n\t{\n\t\tid: 101,\n\t\tname: 'General Admission',\n\t\tdescription: 'Standard seating in the main room',\n\t\tprice: 25,\n\t\tfee: 2.5,\n\t\tquantityAvailable: 12,\n\t\tquantityTotal: 150,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 8,\n\t\tstatus: 'on_sale',\n\t\tsalesEndDate: '2026-02-20T20:00:00-08:00',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 102,\n\t\tname: 'VIP Front Row',\n\t\tdescription: 'Premium seats in the first two rows with a complimentary drink',\n\t\tprice: 55,\n\t\tfee: 5.5,\n\t\tquantityAvailable: 3,\n\t\tquantityTotal: 20,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 4,\n\t\tstatus: 'on_sale',\n\t\tsalesEndDate: '2026-02-20T20:00:00-08:00',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 103,\n\t\tname: 'Table for 4',\n\t\tdescription: 'Reserved table for four guests with bottle service',\n\t\tprice: 180,\n\t\tfee: 18,\n\t\tquantityAvailable: 8,\n\t\tquantityTotal: 15,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 3,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 104,\n\t\tname: 'Student Discount',\n\t\tdescription: 'Valid student ID required at the door',\n\t\tprice: 15,\n\t\tfee: 1.5,\n\t\tquantityAvailable: 45,\n\t\tquantityTotal: 50,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 2,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 105,\n\t\tname: 'Early Bird Special',\n\t\tdescription: 'Limited early bird pricing — first come, first served',\n\t\tprice: 20,\n\t\tfee: 2,\n\t\tquantityAvailable: 15,\n\t\tquantityTotal: 30,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 4,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 106,\n\t\tname: 'Senior (65+)',\n\t\tdescription: 'Senior discount with valid ID at the door',\n\t\tprice: 18,\n\t\tfee: 1.8,\n\t\tquantityAvailable: 30,\n\t\tquantityTotal: 40,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 4,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 107,\n\t\tname: 'Industry Comp',\n\t\tdescription: 'Discount for industry professionals — credentials required',\n\t\tprice: 12,\n\t\tfee: 1.2,\n\t\tquantityAvailable: 25,\n\t\tquantityTotal: 30,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 2,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 108,\n\t\tname: 'Group of 6',\n\t\tdescription: 'Reserved booth for six guests with priority seating',\n\t\tprice: 240,\n\t\tfee: 24,\n\t\tquantityAvailable: 5,\n\t\tquantityTotal: 8,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 2,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 109,\n\t\tname: 'Standing Room',\n\t\tdescription: 'Standing room only at the back of the venue',\n\t\tprice: 12,\n\t\tfee: 1.2,\n\t\tquantityAvailable: 50,\n\t\tquantityTotal: 60,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 6,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t},\n\t{\n\t\tid: 110,\n\t\tname: 'Day-of Door',\n\t\tdescription: 'Day-of pricing for walk-ins — limited availability',\n\t\tprice: 35,\n\t\tfee: 3.5,\n\t\tquantityAvailable: 20,\n\t\tquantityTotal: 25,\n\t\tminPerOrder: 1,\n\t\tmaxPerOrder: 4,\n\t\tstatus: 'on_sale',\n\t\tisDonation: false,\n\t\tisHidden: false\n\t}\n];\n\n// --- Main Event (on sale, multiple ticket types, scarcity on VIP) ---\n// Computed relative to today (showcase use): always lands ~21 days in the\n// future so the BookingWidget renders the on-sale state, not \"Sales ended\".\n// Memory: [[user_mastermind_date_awareness]] — never hardcode showcase dates.\nconst _now = new Date();\nconst _evDate = new Date(_now.getFullYear(), _now.getMonth(), _now.getDate() + 21);\nconst _ymd = `${_evDate.getFullYear()}-${String(_evDate.getMonth() + 1).padStart(2, '0')}-${String(_evDate.getDate()).padStart(2, '0')}`;\n\nexport const mockEvent: EventData = {\n id: 2405,\n title: 'Friday Night Comedy Throwdown',\n slug: 'friday-night-comedy-throwdown',\n description: `Get ready for the funniest night of the week! The Friday Night Comedy Throwdown brings together three of LA's hottest stand-up comics for two hours of non-stop laughs.\n\nHeadliner Dave Martinez (as seen on Netflix's \"Comedy Knockout\") brings his signature high-energy style, while Sarah Chen delivers her razor-sharp observational humor that's earned her a devoted following. Host Mike Thompson keeps the energy up between sets with crowd work that'll have you crying laughing.\n\nWhether you're a comedy regular or a first-timer, this show delivers. Grab your crew, grab some drinks, and prepare to laugh until your abs hurt.`,\n\tdate: _ymd,\n\tstartDateTime: `${_ymd}T20:00:00-08:00`,\n\tendDateTime: `${_ymd}T22:00:00-08:00`,\n\tdoorsOpenTime: `${_ymd}T19:00:00-08:00`,\n\ttimezone: 'America/Los_Angeles',\n\timageUrl: '/posters/Friday Night Showdown.jpg', // wide landscape 800×400\n\tvenue: mockVenue,\n\tperformers: mockPerformers,\n\ttickets: mockTickets,\n\tfaqs: mockFaqs,\n\tdisclaimer: '',\n\tstatus: 'on_sale',\n\tisPasswordProtected: false,\n\tisRegistrationEvent: false,\n\ttotalTicketsRemaining: 68,\n\ttotalTicketsCapacity: 265,\n\tdisplayStartTime: true,\n\tdisplayEndTime: true,\n\tdisplayDoorsTime: true\n};\n\n// --- Sold Out Event (no end time shown) ---\nexport const mockSoldOutEvent: EventData = {\n ...mockEvent,\n id: 2406,\n title: 'Saturday Night Special',\n slug: 'saturday-night-special',\n imageUrl: '/posters/the-duel-square.webp', // square 3000×3000\n date: showcaseDateOnly(1),\n startDateTime: showcaseDate(1, 21),\n endDateTime: showcaseDate(1, 23),\n displayEndTime: false,\n status: 'sold_out',\n totalTicketsRemaining: 0,\n tickets: mockTickets.map(t => ({\n ...t,\n quantityAvailable: 0,\n status: 'sold_out' as const,\n })),\n};\n\n// --- Free Event (no doors time shown) ---\nexport const mockFreeEvent: EventData = {\n ...mockEvent,\n id: 2407,\n title: 'Open Mic Night',\n slug: 'open-mic-night',\n imageUrl: '/posters/OpenMic-Twitter.jpg', // wide landscape 2127×1075\n date: showcaseDateOnly(-2),\n startDateTime: showcaseDate(-2, 19),\n endDateTime: showcaseDate(-2, 21),\n displayDoorsTime: false,\n description:\n 'Free open mic night! Sign up at the door. All skill levels welcome.',\n status: 'on_sale',\n tickets: [\n {\n id: 201,\n name: 'Free Entry',\n description: 'Sign up at the door for a 5-minute set',\n price: 0,\n fee: 0,\n quantityAvailable: 40,\n quantityTotal: 50,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n ],\n totalTicketsRemaining: 40,\n totalTicketsCapacity: 50,\n};\n\n// --- Series Event (with occurrences) ---\nexport const mockSeriesEvent: EventData = {\n ...mockEvent,\n id: 2410,\n title: 'Improv Throwdown',\n slug: 'improv-throwdown',\n imageUrl: '/posters/laughlab-tall.webp', // tall portrait 2550×3300\n eventSeriesId: 42,\n description:\n 'Weekly improv comedy show featuring rotating guest performers and audience participation games.',\n seriesOccurrences: [\n // Same-day shows (Fri Feb 20 — 7pm, 8pm, 9:30pm)\n {\n id: 2410,\n slug: 'improv-throwdown-feb-20-7pm',\n startDateTime: showcaseDate(0, 19),\n endDateTime: showcaseDate(0, 20, 30),\n status: 'sold_out',\n ctaText: 'Sold out',\n ctaDisabled: true,\n },\n {\n id: 2414,\n slug: 'improv-throwdown-feb-20-8pm',\n startDateTime: showcaseDate(0, 20),\n endDateTime: showcaseDate(0, 21, 30),\n status: 'on_sale',\n ctaText: 'Get tickets',\n ctaDisabled: false,\n },\n {\n id: 2415,\n slug: 'improv-throwdown-feb-20-930pm',\n startDateTime: showcaseDate(0, 21, 30),\n endDateTime: showcaseDate(0, 23),\n status: 'on_sale',\n ctaText: 'Get tickets',\n ctaDisabled: false,\n },\n // Single show days\n {\n id: 2411,\n slug: 'improv-throwdown-feb-27',\n startDateTime: showcaseDate(7, 20),\n endDateTime: showcaseDate(7, 22),\n status: 'sold_out',\n ctaText: 'Sold out',\n ctaDisabled: true,\n },\n {\n id: 2412,\n slug: 'improv-throwdown-mar-06',\n startDateTime: showcaseDate(14, 20),\n endDateTime: showcaseDate(14, 22),\n status: 'on_sale',\n ctaText: 'Get tickets',\n ctaDisabled: false,\n },\n {\n id: 2413,\n slug: 'improv-throwdown-mar-13',\n startDateTime: showcaseDate(21, 20),\n endDateTime: showcaseDate(21, 22),\n status: 'coming_soon',\n ctaText: 'Coming soon',\n ctaDisabled: true,\n },\n ],\n};\n\n// --- Series Instance (one specific occurrence of the series — regular event page with series link) ---\nexport const mockSeriesInstanceEvent: EventData = {\n ...mockEvent,\n id: 2414,\n title: 'Improv Throwdown',\n slug: 'improv-throwdown-feb-20-8pm',\n imageUrl: '/posters/laughlab-tall.webp',\n eventSeriesId: 42,\n startDateTime: showcaseDate(0, 20),\n endDateTime: showcaseDate(0, 21, 30),\n description:\n 'Weekly improv comedy show featuring rotating guest performers and audience participation games.',\n // No seriesOccurrences — this is a single instance, not the series home\n};\n\n// --- Collection Home (loose grouping of different events with widgets) ---\nexport const mockCollectionEvent: EventData = {\n ...mockEvent,\n id: 3000,\n title: 'February Comedy Festival',\n slug: 'february-comedy-festival',\n imageUrl: '/posters/Friday Night Showdown.jpg',\n description:\n \"A curated collection of the best comedy shows this February. From improv to stand-up, sketch to open mic — there's something for every comedy fan.\",\n collectionId: 7,\n collectionEvents: [\n {\n id: 2401,\n name: 'Friday Night Comedy Throwdown',\n slug: 'friday-night-comedy-throwdown',\n image: '/posters/Friday Night Showdown.jpg',\n startDateTime: showcaseDate(0, 20),\n status: 'on_sale',\n ticketsRemaining: 42,\n ticketsTotal: 200,\n },\n {\n id: 2402,\n name: 'Saturday Night Special',\n slug: 'saturday-night-special',\n image: '/posters/the-duel-square.webp',\n startDateTime: showcaseDate(1, 21),\n status: 'on_sale',\n ticketsRemaining: 8,\n ticketsTotal: 150,\n },\n {\n id: 2403,\n name: 'Stand-Up Comedy Workshop',\n slug: 'standup-comedy-workshop',\n image: '/posters/stand up 101.png',\n startDateTime: showcaseDate(2, 14),\n status: 'on_sale',\n ticketsRemaining: 15,\n ticketsTotal: 30,\n },\n {\n id: 2410,\n name: 'Improv Throwdown',\n slug: 'improv-throwdown',\n image: '/posters/laughlab-tall.webp',\n startDateTime: showcaseDate(7, 20),\n status: 'on_sale',\n ticketsRemaining: 65,\n ticketsTotal: 200,\n },\n {\n id: 2404,\n name: 'Open Mic Night',\n slug: 'open-mic-night',\n image: '/posters/OpenMic-Twitter.jpg',\n startDateTime: showcaseDate(8, 19),\n status: 'on_sale',\n ticketsRemaining: 100,\n ticketsTotal: 100,\n },\n {\n id: 2405,\n name: 'Late Night Comedy Underground',\n slug: 'late-night-comedy-underground',\n image: '/posters/standup-portrait.webp',\n startDateTime: showcaseDate(8, 22),\n status: 'sold_out',\n ticketsRemaining: 0,\n ticketsTotal: 80,\n },\n ],\n};\n\n// --- Registration Event (workshop — no time shown, just date + doors) ---\nexport const mockRegistrationEvent: EventData = {\n ...mockEvent,\n id: 2408,\n title: 'Stand-Up Comedy Workshop',\n slug: 'standup-comedy-workshop',\n imageUrl: '/posters/stand up 101.png', // 16:9 landscape 1920×1080\n description:\n 'Learn the fundamentals of stand-up comedy in this 3-hour intensive workshop. Write, refine, and perform your first 5-minute set.',\n isRegistrationEvent: true,\n displayStartTime: false,\n displayEndTime: false,\n status: 'on_sale',\n tickets: [\n {\n id: 301,\n name: 'Workshop Seat',\n description: 'Includes materials and performance slot',\n price: 75,\n fee: 7.5,\n quantityAvailable: 8,\n quantityTotal: 12,\n minPerOrder: 1,\n maxPerOrder: 1,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n ],\n totalTicketsRemaining: 8,\n totalTicketsCapacity: 12,\n};\n\n// --- Donation Event ---\nexport const mockDonationEvent: EventData = {\n ...mockEvent,\n id: 2414,\n title: 'Charity Comedy Benefit',\n slug: 'charity-comedy-benefit',\n imageUrl: '/posters/Friday Night Showdown.jpg',\n description:\n 'All proceeds go to the LA Comedy Relief Fund. Choose your own donation amount or grab a standard ticket.',\n status: 'on_sale',\n tickets: [\n {\n id: 401,\n name: 'Donation',\n description: 'Support the cause — choose your amount',\n price: 0,\n fee: 0,\n quantityAvailable: 200,\n quantityTotal: 200,\n minPerOrder: 1,\n maxPerOrder: 10,\n status: 'on_sale',\n isDonation: true,\n isHidden: false,\n ticketType: 2,\n },\n {\n id: 402,\n name: 'Standard Admission',\n description: 'Includes one drink ticket',\n price: 30,\n fee: 3,\n quantityAvailable: 80,\n quantityTotal: 100,\n minPerOrder: 1,\n maxPerOrder: 6,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n ],\n totalTicketsRemaining: 280,\n totalTicketsCapacity: 300,\n};\n\n// --- Mixed Event (ALL ticket states in one event) ---\nexport const mockMixedEvent: EventData = {\n ...mockEvent,\n id: 2415,\n title: 'The Everything Show',\n slug: 'the-everything-show',\n imageUrl: '/posters/the-duel-square.webp',\n description:\n 'A showcase event with every ticket state possible — for testing all edge cases.',\n status: 'on_sale',\n tickets: [\n {\n id: 501,\n name: 'General Admission',\n description: 'Standard seating in the main room',\n price: 25,\n fee: 2.5,\n quantityAvailable: 45,\n quantityTotal: 150,\n minPerOrder: 1,\n maxPerOrder: 8,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 502,\n name: 'Basic Entry',\n price: 15,\n fee: 1.5,\n quantityAvailable: 60,\n quantityTotal: 80,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 503,\n name: 'VIP Front Row',\n description: 'Premium seats with complimentary drink',\n price: 75,\n fee: 7.5,\n quantityAvailable: 2,\n quantityTotal: 20,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 504,\n name: 'Early Bird',\n description: 'Limited early bird pricing',\n price: 20,\n fee: 2,\n quantityAvailable: 0,\n quantityTotal: 30,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'sold_out',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 505,\n name: 'Late Night Add-On',\n description: 'Access to the after-party at midnight',\n price: 40,\n fee: 4,\n quantityAvailable: 50,\n quantityTotal: 50,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'coming_soon',\n salesStartDate: showcaseDate(9, 10),\n isDonation: false,\n isHidden: false,\n },\n {\n id: 506,\n name: 'Weekend Bundle',\n description: 'Includes Saturday + Sunday shows',\n price: 45,\n fee: 4.5,\n quantityAvailable: 0,\n quantityTotal: 25,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'sales_ended',\n salesEndDate: showcaseDate(-10, 23, 59),\n isDonation: false,\n isHidden: false,\n },\n {\n id: 507,\n name: 'Donation',\n description: 'Support the performers directly',\n price: 0,\n fee: 0,\n quantityAvailable: 100,\n quantityTotal: 100,\n minPerOrder: 1,\n maxPerOrder: 5,\n status: 'on_sale',\n isDonation: true,\n isHidden: false,\n ticketType: 2,\n },\n {\n id: 508,\n name: 'Secret VIP Lounge',\n description: 'Backstage access with meet & greet',\n price: 150,\n fee: 15,\n quantityAvailable: 10,\n quantityTotal: 10,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n {\n id: 509,\n name: 'Industry Comp',\n description: 'Complimentary ticket for industry professionals',\n price: 0,\n fee: 0,\n quantityAvailable: 20,\n quantityTotal: 20,\n minPerOrder: 1,\n maxPerOrder: 1,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n ],\n totalTicketsRemaining: 287,\n totalTicketsCapacity: 485,\n};\n\n// --- Sectioned Event (tickets grouped by section) ---\nexport const mockSectionedEvent: EventData = {\n ...mockEvent,\n id: 2416,\n title: 'Multi-Stage Festival',\n slug: 'multi-stage-festival',\n imageUrl: '/posters/OpenMic-Twitter.jpg',\n description:\n 'Three stages, one incredible night. Choose your zone and enjoy performances across the venue.',\n status: 'on_sale',\n tickets: [\n {\n id: 601,\n name: 'Floor Standing',\n description: 'Standing room on the main floor',\n price: 35,\n fee: 3.5,\n quantityAvailable: 100,\n quantityTotal: 200,\n minPerOrder: 1,\n maxPerOrder: 8,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n sectionName: 'Floor',\n },\n {\n id: 602,\n name: 'Floor Reserved',\n description: 'Reserved seat on the main floor',\n price: 50,\n fee: 5,\n quantityAvailable: 30,\n quantityTotal: 80,\n minPerOrder: 1,\n maxPerOrder: 6,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n sectionName: 'Floor',\n },\n {\n id: 603,\n name: 'Balcony Standard',\n description: 'Standard balcony seating with great views',\n price: 40,\n fee: 4,\n quantityAvailable: 50,\n quantityTotal: 60,\n minPerOrder: 1,\n maxPerOrder: 6,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n sectionName: 'Balcony',\n },\n {\n id: 604,\n name: 'Balcony Premium',\n description: 'Front-row balcony seats',\n price: 60,\n fee: 6,\n quantityAvailable: 5,\n quantityTotal: 20,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n sectionName: 'Balcony',\n },\n {\n id: 605,\n name: 'VIP Lounge Table',\n description:\n 'Private table for 4 with bottle service and backstage access',\n price: 250,\n fee: 25,\n quantityAvailable: 3,\n quantityTotal: 8,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n sectionName: 'VIP Lounge',\n },\n ],\n totalTicketsRemaining: 188,\n totalTicketsCapacity: 368,\n};\n\n// --- Promo Event (hidden tickets for promo reveal testing) ---\nexport const mockPromoEvent: EventData = {\n ...mockEvent,\n id: 2417,\n title: 'Secret Show',\n slug: 'secret-show',\n imageUrl: '/posters/luke-null-tall.webp',\n description:\n 'An intimate comedy experience. Some tickets are only available with a promo code.',\n status: 'on_sale',\n tickets: [\n {\n id: 701,\n name: 'General Admission',\n price: 30,\n fee: 3,\n quantityAvailable: 40,\n quantityTotal: 60,\n minPerOrder: 1,\n maxPerOrder: 6,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 702,\n name: 'Premium Seat',\n description: 'Reserved seating in rows 1-5',\n price: 50,\n fee: 5,\n quantityAvailable: 15,\n quantityTotal: 30,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 703,\n name: 'Artist Meet & Greet',\n description:\n 'Backstage pass with photo opportunity — promo code required',\n price: 100,\n fee: 10,\n quantityAvailable: 8,\n quantityTotal: 10,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n {\n id: 704,\n name: 'Industry Comp',\n description: 'Complimentary entry for industry professionals',\n price: 0,\n fee: 0,\n quantityAvailable: 10,\n quantityTotal: 10,\n minPerOrder: 1,\n maxPerOrder: 1,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n ],\n totalTicketsRemaining: 73,\n totalTicketsCapacity: 110,\n};\n\n// --- Hidden-Only Event (MIC-1039) — no visible tickets, only hidden remain ---\n// Lands the user on a page where the only purchasable seats are gated behind\n// a promo code. With zero visible tickets the page should suppress the ticket\n// list entirely and render only the PromoCodeInput.\nexport const mockHiddenOnlyEvent: EventData = {\n ...mockEvent,\n id: 2419,\n title: 'Industry Showcase',\n slug: 'industry-showcase',\n description:\n 'A private comedy showcase. Tickets are only available with a promo code.',\n status: 'on_sale',\n tickets: [\n {\n id: 902,\n name: 'Industry Comp',\n description:\n 'Complimentary entry for industry professionals — promo code required',\n price: 0,\n fee: 0,\n quantityAvailable: 15,\n quantityTotal: 20,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n {\n id: 903,\n name: 'Artist Hold',\n description: 'Held for artist guests — promo code required',\n price: 50,\n fee: 5,\n quantityAvailable: 5,\n quantityTotal: 10,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: true,\n },\n ],\n totalTicketsRemaining: 0,\n totalTicketsCapacity: 0,\n};\n\n// --- Multi-Stage Event (stage name + age restriction) ---\nexport const mockMultiStageEvent: EventData = {\n ...mockEvent,\n id: 2418,\n title: 'Late Night Comedy Underground',\n slug: 'late-night-comedy-underground',\n imageUrl: '/posters/laughlab-tall.webp',\n description:\n 'The raunchiest, most unfiltered comedy night in LA. Side stage, no holds barred.',\n status: 'on_sale',\n stageName: 'Side Stage',\n ageRestriction: 21,\n displayAgeRestriction: true,\n tickets: [\n {\n id: 801,\n name: 'General Admission',\n price: 20,\n fee: 2,\n quantityAvailable: 25,\n quantityTotal: 40,\n minPerOrder: 1,\n maxPerOrder: 4,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n {\n id: 802,\n name: 'VIP Booth',\n description: 'Reserved booth for 2 with drinks included',\n price: 80,\n fee: 8,\n quantityAvailable: 4,\n quantityTotal: 6,\n minPerOrder: 1,\n maxPerOrder: 2,\n status: 'on_sale',\n isDonation: false,\n isHidden: false,\n },\n ],\n totalTicketsRemaining: 29,\n totalTicketsCapacity: 46,\n};\n\n// --- Long Name Event (Laugh Factory-style: all performers in the title) ---\nexport const mockLongNameEvent: EventData = {\n ...mockEvent,\n id: 2420,\n title:\n 'The Friday Night All-Star Comedy Throwdown featuring Dave Martinez, Sarah Chen, Mike Thompson, Bobby Lee, Andrew Santino, Hasan Minhaj, and Very Special Guests from Netflix, Comedy Central, HBO, and Amazon Prime',\n slug: 'the-friday-night-all-star-comedy-throwdown',\n imageUrl: '/posters/laughlab-tall.webp',\n description: `The biggest lineup of the year! Seven of the hottest comics in LA on one stage for one unforgettable night. This is the show comedy fans have been waiting for — a stacked bill from top to bottom with headliners you've seen on every major streaming platform.\n\nDave Martinez (Netflix's \"Comedy Knockout\") headlines with his signature high-energy style. Sarah Chen brings her razor-sharp observational humor. Mike Thompson keeps the energy sky-high between sets. Bobby Lee delivers his unhinged brilliance. Andrew Santino roasts everything in sight. Hasan Minhaj brings the political heat. Plus surprise guests you won't want to miss.\n\nTwo-drink minimum. No photography or recording. Arrive early — seating is first come, first served.`,\n ageRestriction: 18,\n displayAgeRestriction: true,\n displayStartTime: true,\n displayEndTime: true,\n displayDoorsTime: true,\n performers: [\n ...mockPerformers,\n {\n id: 4,\n displayName: 'Bobby Lee',\n profileImage:\n 'https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=200&h=200&fit=crop',\n },\n {\n id: 5,\n displayName: 'Andrew Santino',\n profileImage:\n 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=200&h=200&fit=crop',\n },\n {\n id: 6,\n displayName: 'Hasan Minhaj',\n profileImage:\n 'https://images.unsplash.com/photo-1519085360753-af0119f7cbe7?w=200&h=200&fit=crop',\n },\n ],\n};\n\n// --- Wide/Panoramic Image Event (tests min-height behavior) ---\nexport const mockWideImageEvent: EventData = {\n ...mockEvent,\n id: 2421,\n title: 'Sunset Sessions: Rooftop Jazz & Cocktails',\n slug: 'sunset-sessions-rooftop-jazz',\n imageUrl: '/posters/Wide.jpg',\n description: `Join us on the rooftop for an evening of smooth jazz, craft cocktails, and stunning sunset views over the city. Featuring a rotating cast of LA's finest jazz musicians in an intimate outdoor setting.\n\nFull bar available with specialty cocktails curated for the evening. Light bites and small plates from our kitchen. Dress code: smart casual.`,\n displayStartTime: true,\n displayEndTime: true,\n displayDoorsTime: true,\n};\n\n// --- Password Protected Event ---\nexport const mockPasswordEvent: EventData = {\n ...mockEvent,\n id: 2409,\n title: 'Secret Comedy Club',\n slug: 'secret-comedy-club',\n imageUrl: '/posters/luke-null-tall.webp', // tall portrait 625×937\n description: 'An exclusive underground comedy experience. Password required.',\n isPasswordProtected: true,\n status: 'on_sale',\n};\n","export type DataVariant =\n\t| 'default'\n\t| 'sold_out'\n\t| 'free'\n\t| 'registration'\n\t| 'series'\n\t| 'series_instance'\n\t| 'collection'\n\t| 'donation'\n\t| 'mixed'\n\t| 'sections'\n\t| 'promo'\n\t| 'multi_stage'\n\t| 'long'\n\t| 'wide';\n\nexport interface ToggleOption {\n\tvalue: string;\n\tlabel: string;\n\tcolor: string;\n}\n\nclass DataToggleStore {\n\tcurrent = $state<string>('default');\n\toptions = $state<ToggleOption[]>([]);\n\tisActive = $state(false);\n}\n\nexport const dataToggleStore = new DataToggleStore();\n"],"names":["showcaseDate","daysFromFriday","hour","minute","now","daysToFriday","base","y","m","d","hh","mm","showcaseDateOnly","mockVenue","getDefaultTimezone","mockPerformers","mockFaqs","mockTickets","_now","_evDate","_ymd","mockEvent","t","mockFreeEvent","mockRegistrationEvent","mockDonationEvent","DataToggleStore","#current","$","#isActive","dataToggleStore"],"mappings":";;AAeA,SAASA,EACPC,GACAC,GACAC,IAAS,GACD;AACR,QAAMC,wBAAU,KAAA,GAEVC,KAAgB,IADVD,EAAI,UAAA,IACgB,KAAK,KAAK,GACpCE,IAAO,IAAI;AAAA,IACf,KAAK,IAAIF,EAAI,eAAA,GAAkBA,EAAI,YAAA,GAAeA,EAAI,WAAA,CAAY;AAAA,EAAA;AAEpE,EAAAE,EAAK,WAAWA,EAAK,WAAA,IAAeD,IAAeJ,CAAc;AACjE,QAAMM,IAAID,EAAK,eAAA,GACTE,IAAI,OAAOF,EAAK,YAAA,IAAgB,CAAC,EAAE,SAAS,GAAG,GAAG,GAClDG,IAAI,OAAOH,EAAK,WAAA,CAAY,EAAE,SAAS,GAAG,GAAG,GAC7CI,IAAK,OAAOR,CAAI,EAAE,SAAS,GAAG,GAAG,GACjCS,IAAK,OAAOR,CAAM,EAAE,SAAS,GAAG,GAAG;AACzC,SAAO,GAAGI,CAAC,IAAIC,CAAC,IAAIC,CAAC,IAAIC,CAAE,IAAIC,CAAE;AACnC;AAEA,SAASC,EAAiBX,GAAgC;AACxD,SAAOD,EAAaC,GAAgB,CAAC,EAAE,MAAM,GAAG,EAAE;AACpD;AAGO,MAAMY,IAAuB;AAAA,EAClC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,UAAUC,EAAA;AAAA,EACV,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,cAAc;AAChB,GAGaC,IAAkC;AAAA,EAC7C;AAAA,IACE,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,cACE;AAAA,EAAA;AAAA,EAEJ;AAAA,IACE,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,cACE;AAAA,EAAA;AAAA,EAEJ;AAAA,IACE,IAAI;AAAA,IACJ,aAAa;AAAA,IACb,cACE;AAAA,EAAA;AAEN,GAGaC,IAAsB;AAAA,EACjC;AAAA,IACE,UAAU;AAAA,IACV,QACE;AAAA,EAAA;AAAA,EAEJ;AAAA,IACE,UAAU;AAAA,IACV,QACE;AAAA,EAAA;AAAA,EAEJ;AAAA,IACE,UAAU;AAAA,IACV,QACE;AAAA,EAAA;AAAA,EAEJ;AAAA,IACE,UAAU;AAAA,IACV,QACE;AAAA,EAAA;AAEN,GAGaC,IAAgC;AAAA,EAC5C;AAAA,IACC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA;AAAA,EAEX;AAAA,IACC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA;AAAA,EAEX;AAAA,IACC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA;AAAA,EAEX;AAAA,IACC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA;AAAA,EAEX;AAAA,IACC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA;AAAA,EAEX;AAAA,IACC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA;AAAA,EAEX;AAAA,IACC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA;AAAA,EAEX;AAAA,IACC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA;AAAA,EAEX;AAAA,IACC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA;AAAA,EAEX;AAAA,IACC,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,KAAK;AAAA,IACL,mBAAmB;AAAA,IACnB,eAAe;AAAA,IACf,aAAa;AAAA,IACb,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,UAAU;AAAA,EAAA;AAEZ,GAMMC,wBAAW,KAAA,GACXC,IAAU,IAAI,KAAKD,EAAK,YAAA,GAAeA,EAAK,YAAYA,EAAK,QAAA,IAAY,EAAE,GAC3EE,IAAO,GAAGD,EAAQ,aAAa,IAAI,OAAOA,EAAQ,aAAa,CAAC,EAAE,SAAS,GAAG,GAAG,CAAC,IAAI,OAAOA,EAAQ,QAAA,CAAS,EAAE,SAAS,GAAG,GAAG,CAAC,IAEzHE,IAAuB;AAAA,EAClC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAKd,MAAMD;AAAA,EACN,eAAe,GAAGA,CAAI;AAAA,EACtB,aAAa,GAAGA,CAAI;AAAA,EACpB,eAAe,GAAGA,CAAI;AAAA,EACtB,UAAU;AAAA,EACV,UAAU;AAAA;AAAA,EACV,OAAOP;AAAA,EACP,YAAYE;AAAA,EACZ,SAASE;AAAA,EACT,MAAMD;AAAA,EACN,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,kBAAkB;AACnB;AAAA,CAG2C;AAAA,EACzC,GAAGK;AAAA;AAAA,EAKH,MAAMT,EAAiB,CAAC;AAAA,EACxB,eAAeZ,EAAa,GAAG,EAAE;AAAA,EACjC,aAAaA,EAAa,GAAG,EAAE;AAAA,EAI/B,SAASiB,EAAY,IAAI,CAAAK,OAAM;AAAA,IAC7B,GAAGA;AAAA,IACH,mBAAmB;AAAA,IACnB,QAAQ;AAAA,EAAA,EACR;AACJ;AAGO,MAAMC,IAA2B;AAAA,EACtC,GAAGF;AAAA,EACH,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,UAAU;AAAA;AAAA,EACV,MAAMT,EAAiB,EAAE;AAAA,EACzB,eAAeZ,EAAa,IAAI,EAAE;AAAA,EAClC,aAAaA,EAAa,IAAI,EAAE;AAAA,EAChC,kBAAkB;AAAA,EAClB,aACE;AAAA,EACF,QAAQ;AAAA,EACR,SAAS;AAAA,IACP;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO;AAAA,MACP,KAAK;AAAA,MACL,mBAAmB;AAAA,MACnB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,uBAAuB;AAAA,EACvB,sBAAsB;AACxB;AAAA,CAG0C;AAAA,EACxC,GAAGqB;AAAA,EAQH,oBAKmBrB,EAAa,GAAG,EAAE,GACpBA,EAAa,GAAG,IAAI,EAAE,GAQpBA,EAAa,GAAG,EAAE,GACpBA,EAAa,GAAG,IAAI,EAAE,GAQpBA,EAAa,GAAG,IAAI,EAAE,GACxBA,EAAa,GAAG,EAAE,GAShBA,EAAa,GAAG,EAAE,GACpBA,EAAa,GAAG,EAAE,GAQhBA,EAAa,IAAI,EAAE,GACrBA,EAAa,IAAI,EAAE,GAQjBA,EAAa,IAAI,EAAE,GACrBA,EAAa,IAAI,EAAE;AAMtC;AAAA,CAGkD;AAAA,EAChD,GAAGqB;AAAA,EAMH,eAAerB,EAAa,GAAG,EAAE;AAAA,EACjC,aAAaA,EAAa,GAAG,IAAI,EAAE;AAIrC;AAAA,CAG8C;AAAA,EAC5C,GAAGqB;AAAA,EAQH,mBAMmBrB,EAAa,GAAG,EAAE,GAUlBA,EAAa,GAAG,EAAE,GAUlBA,EAAa,GAAG,EAAE,GAUlBA,EAAa,GAAG,EAAE,GAUlBA,EAAa,GAAG,EAAE,GAUlBA,EAAa,GAAG,EAAE;AAMvC;AAGO,MAAMwB,IAAmC;AAAA,EAC9C,GAAGH;AAAA,EACH,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,UAAU;AAAA;AAAA,EACV,aACE;AAAA,EACF,qBAAqB;AAAA,EACrB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,SAAS;AAAA,IACP;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO;AAAA,MACP,KAAK;AAAA,MACL,mBAAmB;AAAA,MACnB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,uBAAuB;AAAA,EACvB,sBAAsB;AACxB,GAGaI,IAA+B;AAAA,EAC1C,GAAGJ;AAAA,EACH,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aACE;AAAA,EACF,QAAQ;AAAA,EACR,SAAS;AAAA,IACP;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO;AAAA,MACP,KAAK;AAAA,MACL,mBAAmB;AAAA,MACnB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,YAAY;AAAA,IAAA;AAAA,IAEd;AAAA,MACE,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,MACb,OAAO;AAAA,MACP,KAAK;AAAA,MACL,mBAAmB;AAAA,MACnB,eAAe;AAAA,MACf,aAAa;AAAA,MACb,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,uBAAuB;AAAA,EACvB,sBAAsB;AACxB;AAAA,CAGyC;AAAA,EACvC,GAAGA;AAAA,EAQH,UAmEoBrB,EAAa,GAAG,EAAE,GAepBA,EAAa,KAAK,IAAI,EAAE;AAkD5C;AAAA,CAG6C;AAAA,EAC3C,GAAGqB;AAwFL;AAAA,CAGyC;AAAA,EACvC,GAAGA;AAoEL;AAAA,CAM8C;AAAA,EAC5C,GAAGA;AAwCL;AAAA,CAG8C;AAAA,EAC5C,GAAGA;AA0CL;AAAA,CAG4C;AAAA,EAC1C,GAAGA;AAAA,EAgBH,YAAY;AAAA,IACV,GAAGN;AAAA,EAkBH;AAEJ;AAAA,CAG6C;AAAA,EAC3C,GAAGM;AAWL;AAAA,CAG4C;AAAA,EAC1C,GAAGA;AAQL;ACz/BA,MAAMK,EAAgB;AAAA;;;;;;;;;;;;;;;;;;;;;EAAtB,cAAA;AACW,SAAAC,KAAAC,EAAA,MAAe,SAAS,aACxBA,EAAA,MAAAA,EAAA,MAAA,CAAA,CAAA,CAAA,GACC,KAAAC,KAAAD,EAAA,MAAO,EAAK;AAAA,EAAA;AACxB;AAEO,MAAME,IAAkB,IAAIJ,EAAA;"}
@@ -1,16 +1,16 @@
1
1
  import "svelte/internal/disclose-version";
2
2
  import * as e from "svelte/internal/client";
3
- import { u as N, aL as V, aM as O, J as F, q as $, aB as I } from "./VenueCalendar-Um0PQCVy.js";
4
- import { T as m } from "./Text-C-6sDfH2.js";
3
+ import { u as I, aM as L, K as N, r as D, aC as V } from "./VenueCalendar-Cz7_VBC6.js";
4
+ import { T as m } from "./Text-CT79Zi5n.js";
5
5
  var G = e.from_svg('<path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM112,184a8,8,0,0,1-16,0V132.94l-4.42,2.22a8,8,0,0,1-7.16-14.32l16-8A8,8,0,0,1,112,120Zm56-8a8,8,0,0,1,0,16H136a8,8,0,0,1-6.4-12.8l28.78-38.37A8,8,0,1,0,145.07,132a8,8,0,1,1-13.85-8A24,24,0,0,1,176,136a23.76,23.76,0,0,1-4.84,14.45L152,176ZM48,80V48H72v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80Z"></path>'), U = e.from_svg('<rect x="40" y="40" width="176" height="176" rx="8" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></rect><line x1="176" y1="24" x2="176" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></line><line x1="80" y1="24" x2="80" y2="56" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></line><line x1="40" y1="88" x2="216" y2="88" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></line><polyline points="88 128 104 120 104 184" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></polyline><path d="M138.14,128a16,16,0,1,1,26.64,17.63L136,184h32" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></path>', 1), Y = e.from_svg('<svg aria-hidden="true" viewBox="0 0 256 256" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><!></svg>');
6
6
  function se(r, t) {
7
7
  e.push(t, !0);
8
- let o = e.prop(t, "size", 3, "24"), f = e.prop(t, "color", 3, "currentColor"), p = e.prop(t, "class", 3, "");
9
- const T = N();
8
+ let a = e.prop(t, "size", 3, "24"), f = e.prop(t, "color", 3, "currentColor"), p = e.prop(t, "class", 3, "");
9
+ const T = I();
10
10
  let k = e.derived(() => t.weight ?? T?.weight ?? "regular");
11
- var a = Y();
11
+ var o = Y();
12
12
  let S;
13
- var g = e.child(a);
13
+ var g = e.child(o);
14
14
  {
15
15
  var P = (v) => {
16
16
  var u = G();
@@ -23,22 +23,25 @@ function se(r, t) {
23
23
  e.get(k) === "fill" ? v(P) : v(E, -1);
24
24
  });
25
25
  }
26
- e.reset(a), e.template_effect(() => {
27
- e.set_class(a, 0, e.clsx(p())), e.set_attribute(a, "width", o()), e.set_attribute(a, "height", o()), S = e.set_style(a, "", S, { color: f() });
28
- }), e.append(r, a), e.pop();
26
+ e.reset(o), e.template_effect(() => {
27
+ e.set_class(o, 0, e.clsx(p())), e.set_attribute(o, "width", a()), e.set_attribute(o, "height", a()), S = e.set_style(o, "", S, { color: f() });
28
+ }), e.append(r, o), e.pop();
29
29
  }
30
- function j(r, t, o = {}) {
30
+ function O(r, t, a = "en-US") {
31
+ return new Intl.DateTimeFormat(a, t).format(r);
32
+ }
33
+ function j(r, t, a = {}) {
31
34
  const {
32
35
  cancelled: f = !1,
33
36
  isRegistration: p = !1,
34
37
  waitlistEnabled: T = !1
35
- } = o, k = /* @__PURE__ */ new Date();
38
+ } = a, k = /* @__PURE__ */ new Date();
36
39
  if (f)
37
40
  return { text: "Cancelled", disabled: !0, reason: "cancelled" };
38
- const a = r.endDateTime || r.startDateTime;
39
- if (a && new Date(a) < k)
41
+ const o = r.endDateTime || r.startDateTime;
42
+ if (o && new Date(o) < k)
40
43
  return { text: "Sales ended", disabled: !0, reason: "event_past" };
41
- const S = r?.hasPurchasableHiddenTickets === !0 || Array.isArray(t) && t.some(V), g = (t || []).filter(
44
+ const S = r?.hasPurchasableHiddenTickets === !0 || Array.isArray(t) && t.some(L), g = (t || []).filter(
42
45
  (i) => i.salesChannel !== 2 && !i.isHidden && !(typeof i.visibility == "number" && i.visibility >= 2)
43
46
  );
44
47
  if (g.length === 0)
@@ -53,8 +56,8 @@ function j(r, t, o = {}) {
53
56
  };
54
57
  let P = !1, E = !0, v = !0, u = null;
55
58
  for (const i of g) {
56
- const y = i.salesBegin || i.salesStart || i.saleBegin || i.onSaleStart, A = i.salesEnd || i.saleEnd || i.onSaleEnd, b = i.remainingCapacity ?? i.quantityRemaining ?? i.quantity, x = i.soldOut || b != null && b <= 0, h = y ? new Date(y) > k : !1, D = A ? new Date(A) < k : !1;
57
- if (!x && !h && !D && (P = !0), x || (E = !1), h || (v = !1), h && y && !x && !D) {
59
+ const y = i.salesBegin || i.salesStart || i.saleBegin || i.onSaleStart, A = i.salesEnd || i.saleEnd || i.onSaleEnd, b = i.remainingCapacity ?? i.quantityRemaining ?? i.quantity, x = i.soldOut || b != null && b <= 0, h = y ? new Date(y) > k : !1, $ = A ? new Date(A) < k : !1;
60
+ if (!x && !h && !$ && (P = !0), x || (E = !1), h || (v = !1), h && y && !x && !$) {
58
61
  const R = new Date(y);
59
62
  (!u || R < u) && (u = R);
60
63
  }
@@ -117,11 +120,11 @@ const H = {
117
120
  function re(r, t) {
118
121
  if (t === 0) return "none";
119
122
  if (r <= 0) return "sold_out";
120
- const o = r / t;
121
- return o <= H.URGENT ? "urgent" : o <= H.LOW ? "low" : "none";
123
+ const a = r / t;
124
+ return a <= H.URGENT ? "urgent" : a <= H.LOW ? "low" : "none";
122
125
  }
123
- function ae(r, t, o, f) {
124
- return r === "none" ? null : r === "sold_out" ? "Sold out" : r === "urgent" && o !== "browse" && t <= H.MAX_EXACT_COUNT ? `Only ${t} left` : r === "low" || r === "urgent" ? "Selling fast" : null;
126
+ function ae(r, t, a, f) {
127
+ return r === "none" ? null : r === "sold_out" ? "Sold out" : r === "urgent" && a !== "browse" && t <= H.MAX_EXACT_COUNT ? `Only ${t} left` : r === "low" || r === "urgent" ? "Selling fast" : null;
125
128
  }
126
129
  function oe(r) {
127
130
  const t = r.tickets.map((f) => ({
@@ -146,7 +149,7 @@ function oe(r) {
146
149
  disabled: !0,
147
150
  reason: "This event has ended"
148
151
  };
149
- const o = j(
152
+ const a = j(
150
153
  { startDateTime: r.startDateTime, endDateTime: r.endDateTime },
151
154
  t,
152
155
  {
@@ -156,12 +159,12 @@ function oe(r) {
156
159
  }
157
160
  );
158
161
  return {
159
- text: o.text,
160
- disabled: o.disabled,
161
- reason: o.disabled ? B(o.reason) : void 0
162
+ text: a.text,
163
+ disabled: a.disabled,
164
+ reason: a.disabled ? W(a.reason) : void 0
162
165
  };
163
166
  }
164
- function B(r) {
167
+ function W(r) {
165
168
  if (r)
166
169
  switch (r) {
167
170
  case "cancelled":
@@ -187,23 +190,23 @@ function B(r) {
187
190
  }
188
191
  function ie(r) {
189
192
  const t = r.tickets.filter(
190
- (a) => a.status === "on_sale" && !a.isHidden
193
+ (o) => o.status === "on_sale" && !o.isHidden
191
194
  );
192
195
  if (t.length === 0) return null;
193
- const o = t.some(
194
- (a) => a.isDonation || a.ticketType === 2
196
+ const a = t.some(
197
+ (o) => o.isDonation || o.ticketType === 2
195
198
  ), f = t.filter(
196
- (a) => !a.isDonation && a.ticketType !== 2
197
- ), p = f.some((a) => a.price === 0), T = f.filter((a) => a.price > 0);
198
- if (T.length === 0 && !p && o) return "Donation";
199
+ (o) => !o.isDonation && o.ticketType !== 2
200
+ ), p = f.some((o) => o.price === 0), T = f.filter((o) => o.price > 0);
201
+ if (T.length === 0 && !p && a) return "Donation";
199
202
  if (T.length === 0 && p) return null;
200
- const k = Math.min(...T.map((a) => a.price));
201
- return p ? "Free" : o ? `From $${k}` : T.length === 1 ? `$${k}` : `From $${k}`;
203
+ const k = Math.min(...T.map((o) => o.price));
204
+ return p ? "Free" : a ? `From $${k}` : T.length === 1 ? `$${k}` : `From $${k}`;
202
205
  }
203
206
  function ne(r, t) {
204
- return F(r * (t / 100));
207
+ return N(r * (t / 100));
205
208
  }
206
- const W = {
209
+ const B = {
207
210
  normal: 300
208
211
  };
209
212
  function le() {
@@ -223,7 +226,7 @@ function le() {
223
226
  var q = e.from_html('<div class="flex justify-between"><!> <!></div>'), K = e.from_html('<div class="flex justify-between pt-1 border-t border-default"><!> <!></div>'), X = e.from_html('<!> <!> <!> <!> <!> <div class="flex justify-between pt-2 border-t border-default"><!> <!></div>', 1), Z = e.from_html('<div class="space-y-2"><!> <!></div>');
224
227
  function de(r, t) {
225
228
  e.push(t, !0);
226
- let o = e.prop(t, "labels", 19, () => ({})), f = e.prop(t, "mode", 3, "full");
229
+ let a = e.prop(t, "labels", 19, () => ({})), f = e.prop(t, "mode", 3, "full");
227
230
  var p = Z(), T = e.child(p);
228
231
  {
229
232
  var k = (g) => {
@@ -245,8 +248,8 @@ function de(r, t) {
245
248
  children: (b, x) => {
246
249
  e.next();
247
250
  var h = e.text();
248
- e.template_effect((D) => e.set_text(h, D), [
249
- () => e.get(u).isDonation ? $(e.get(u).subtotal) : I(e.get(u).subtotal, o())
251
+ e.template_effect(($) => e.set_text(h, $), [
252
+ () => e.get(u).isDonation ? D(e.get(u).subtotal) : V(e.get(u).subtotal, a())
250
253
  ]), e.append(b, h);
251
254
  },
252
255
  $$slots: { default: !0 }
@@ -257,7 +260,7 @@ function de(r, t) {
257
260
  f() !== "totals" && g(k);
258
261
  });
259
262
  }
260
- var a = e.sibling(T, 2);
263
+ var o = e.sibling(T, 2);
261
264
  {
262
265
  var S = (g) => {
263
266
  var P = X(), E = e.first_child(P);
@@ -270,7 +273,7 @@ function de(r, t) {
270
273
  children: (c, w) => {
271
274
  e.next();
272
275
  var s = e.text();
273
- e.template_effect(() => e.set_text(s, o().subtotal || "Subtotal")), e.append(c, s);
276
+ e.template_effect(() => e.set_text(s, a().subtotal || "Subtotal")), e.append(c, s);
274
277
  },
275
278
  $$slots: { default: !0 }
276
279
  });
@@ -281,7 +284,7 @@ function de(r, t) {
281
284
  children: (c, w) => {
282
285
  e.next();
283
286
  var s = e.text();
284
- e.template_effect((C) => e.set_text(s, C), [() => $(t.orderTotals.subtotal)]), e.append(c, s);
287
+ e.template_effect((C) => e.set_text(s, C), [() => D(t.orderTotals.subtotal)]), e.append(c, s);
285
288
  },
286
289
  $$slots: { default: !0 }
287
290
  }), e.reset(l), e.append(n, l);
@@ -293,7 +296,7 @@ function de(r, t) {
293
296
  children: (c, w) => {
294
297
  e.next();
295
298
  var s = e.text();
296
- e.template_effect(() => e.set_text(s, o().subtotal || "Subtotal")), e.append(c, s);
299
+ e.template_effect(() => e.set_text(s, a().subtotal || "Subtotal")), e.append(c, s);
297
300
  },
298
301
  $$slots: { default: !0 }
299
302
  });
@@ -304,7 +307,7 @@ function de(r, t) {
304
307
  children: (c, w) => {
305
308
  e.next();
306
309
  var s = e.text();
307
- e.template_effect((C) => e.set_text(s, C), [() => $(t.orderTotals.subtotal)]), e.append(c, s);
310
+ e.template_effect((C) => e.set_text(s, C), [() => D(t.orderTotals.subtotal)]), e.append(c, s);
308
311
  },
309
312
  $$slots: { default: !0 }
310
313
  }), e.reset(l), e.append(n, l);
@@ -323,7 +326,7 @@ function de(r, t) {
323
326
  children: (c, w) => {
324
327
  e.next();
325
328
  var s = e.text();
326
- e.template_effect(() => e.set_text(s, o().serviceFees || "Service fees")), e.append(c, s);
329
+ e.template_effect(() => e.set_text(s, a().serviceFees || "Service fees")), e.append(c, s);
327
330
  },
328
331
  $$slots: { default: !0 }
329
332
  });
@@ -334,7 +337,7 @@ function de(r, t) {
334
337
  children: (c, w) => {
335
338
  e.next();
336
339
  var s = e.text();
337
- e.template_effect((C) => e.set_text(s, C), [() => $(t.orderTotals.fees)]), e.append(c, s);
340
+ e.template_effect((C) => e.set_text(s, C), [() => D(t.orderTotals.fees)]), e.append(c, s);
338
341
  },
339
342
  $$slots: { default: !0 }
340
343
  }), e.reset(l), e.append(n, l);
@@ -353,7 +356,7 @@ function de(r, t) {
353
356
  children: (c, w) => {
354
357
  e.next();
355
358
  var s = e.text();
356
- e.template_effect(() => e.set_text(s, o().taxes || "Taxes")), e.append(c, s);
359
+ e.template_effect(() => e.set_text(s, a().taxes || "Taxes")), e.append(c, s);
357
360
  },
358
361
  $$slots: { default: !0 }
359
362
  });
@@ -364,7 +367,7 @@ function de(r, t) {
364
367
  children: (c, w) => {
365
368
  e.next();
366
369
  var s = e.text();
367
- e.template_effect((C) => e.set_text(s, C), [() => $(t.orderTotals.taxes)]), e.append(c, s);
370
+ e.template_effect((C) => e.set_text(s, C), [() => D(t.orderTotals.taxes)]), e.append(c, s);
368
371
  },
369
372
  $$slots: { default: !0 }
370
373
  }), e.reset(l), e.append(n, l);
@@ -383,7 +386,7 @@ function de(r, t) {
383
386
  children: (c, w) => {
384
387
  e.next();
385
388
  var s = e.text();
386
- e.template_effect(() => e.set_text(s, o().promoDiscount || "Promo discount")), e.append(c, s);
389
+ e.template_effect(() => e.set_text(s, a().promoDiscount || "Promo discount")), e.append(c, s);
387
390
  },
388
391
  $$slots: { default: !0 }
389
392
  });
@@ -394,7 +397,7 @@ function de(r, t) {
394
397
  children: (c, w) => {
395
398
  e.next();
396
399
  var s = e.text();
397
- e.template_effect((C) => e.set_text(s, `-${C ?? ""}`), [() => $(t.orderTotals.promoDiscount)]), e.append(c, s);
400
+ e.template_effect((C) => e.set_text(s, `-${C ?? ""}`), [() => D(t.orderTotals.promoDiscount)]), e.append(c, s);
398
401
  },
399
402
  $$slots: { default: !0 }
400
403
  }), e.reset(l), e.append(n, l);
@@ -403,7 +406,7 @@ function de(r, t) {
403
406
  t.orderTotals.promoDiscount > 0 && n(h);
404
407
  });
405
408
  }
406
- var D = e.sibling(x, 2);
409
+ var $ = e.sibling(x, 2);
407
410
  {
408
411
  var z = (n) => {
409
412
  var l = q(), d = e.child(l);
@@ -413,7 +416,7 @@ function de(r, t) {
413
416
  children: (c, w) => {
414
417
  e.next();
415
418
  var s = e.text();
416
- e.template_effect(() => e.set_text(s, o().giftCard || "Gift card")), e.append(c, s);
419
+ e.template_effect(() => e.set_text(s, a().giftCard || "Gift card")), e.append(c, s);
417
420
  },
418
421
  $$slots: { default: !0 }
419
422
  });
@@ -424,43 +427,43 @@ function de(r, t) {
424
427
  children: (c, w) => {
425
428
  e.next();
426
429
  var s = e.text();
427
- e.template_effect((C) => e.set_text(s, `-${C ?? ""}`), [() => $(t.orderTotals.giftCardAmount)]), e.append(c, s);
430
+ e.template_effect((C) => e.set_text(s, `-${C ?? ""}`), [() => D(t.orderTotals.giftCardAmount)]), e.append(c, s);
428
431
  },
429
432
  $$slots: { default: !0 }
430
433
  }), e.reset(l), e.append(n, l);
431
434
  };
432
- e.if(D, (n) => {
435
+ e.if($, (n) => {
433
436
  t.orderTotals.giftCardAmount > 0 && n(z);
434
437
  });
435
438
  }
436
- var R = e.sibling(D, 2), M = e.child(R);
439
+ var R = e.sibling($, 2), M = e.child(R);
437
440
  m(M, {
438
441
  size: "base",
439
442
  weight: "semibold",
440
443
  children: (n, l) => {
441
444
  e.next();
442
445
  var d = e.text();
443
- e.template_effect(() => e.set_text(d, o().total || "Total")), e.append(n, d);
446
+ e.template_effect(() => e.set_text(d, a().total || "Total")), e.append(n, d);
444
447
  },
445
448
  $$slots: { default: !0 }
446
449
  });
447
- var L = e.sibling(M, 2);
448
- m(L, {
450
+ var F = e.sibling(M, 2);
451
+ m(F, {
449
452
  size: "base",
450
453
  weight: "semibold",
451
454
  children: (n, l) => {
452
455
  e.next();
453
456
  var d = e.text();
454
- e.template_effect((_) => e.set_text(d, _), [() => $(t.orderTotals.total)]), e.append(n, d);
457
+ e.template_effect((_) => e.set_text(d, _), [() => D(t.orderTotals.total)]), e.append(n, d);
455
458
  },
456
459
  $$slots: { default: !0 }
457
460
  }), e.reset(R), e.append(g, P);
458
461
  };
459
- e.if(a, (g) => {
462
+ e.if(o, (g) => {
460
463
  f() !== "lines" && g(S);
461
464
  });
462
465
  }
463
- e.reset(p), e.template_effect(() => e.set_style(p, `transition-duration: ${W.normal}ms;`)), e.append(r, p), e.pop();
466
+ e.reset(p), e.template_effect(() => e.set_style(p, `transition-duration: ${B.normal}ms;`)), e.append(r, p), e.pop();
464
467
  }
465
468
  const J = {
466
469
  // ── Ticket quantity controls ──────────────────────────────────────
@@ -623,7 +626,7 @@ function ce(r = {}) {
623
626
  }
624
627
  export {
625
628
  se as C,
626
- W as D,
629
+ B as D,
627
630
  de as O,
628
631
  ae as a,
629
632
  oe as b,
@@ -633,4 +636,4 @@ export {
633
636
  re as g,
634
637
  ce as m
635
638
  };
636
- //# sourceMappingURL=labels-BNiV89mT.js.map
639
+ //# sourceMappingURL=labels-_x9WkVuZ.js.map