@getmicdrop/venue-calendar 4.1.52 → 4.1.53

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 (72) hide show
  1. package/dist/{BlockPlaceholder-oM2MmZuu.js → BlockPlaceholder-CqhToSye.js} +2 -2
  2. package/dist/{BlockPlaceholder-oM2MmZuu.js.map → BlockPlaceholder-CqhToSye.js.map} +1 -1
  3. package/dist/{CalendarFoundryView-BJv0QDcv.js → CalendarFoundryView-CMO7-AQi.js} +17 -17
  4. package/dist/{CalendarFoundryView-BJv0QDcv.js.map → CalendarFoundryView-CMO7-AQi.js.map} +1 -1
  5. package/dist/{CalendarIcon-BAz0d_Pj.js → CalendarIcon-BXHIKvAr.js} +2 -2
  6. package/dist/{CalendarIcon-BAz0d_Pj.js.map → CalendarIcon-BXHIKvAr.js.map} +1 -1
  7. package/dist/{CartView-DLjJPQbt.js → CartView-DXP-NdfF.js} +12 -12
  8. package/dist/{CartView-DLjJPQbt.js.map → CartView-DXP-NdfF.js.map} +1 -1
  9. package/dist/{Checkout-U0zc-Ws2.js → Checkout-DbYfIm3T.js} +7 -7
  10. package/dist/{Checkout-U0zc-Ws2.js.map → Checkout-DbYfIm3T.js.map} +1 -1
  11. package/dist/{Checkout-CnnLbRNr.js → Checkout-V9_dY_sS.js} +11 -11
  12. package/dist/{Checkout-CnnLbRNr.js.map → Checkout-V9_dY_sS.js.map} +1 -1
  13. package/dist/{CheckoutTimer-CoV5cHRL.js → CheckoutTimer--6OOtdTB.js} +3 -3
  14. package/dist/{CheckoutTimer-CoV5cHRL.js.map → CheckoutTimer--6OOtdTB.js.map} +1 -1
  15. package/dist/{ClockIcon-CRdviY8o.js → ClockIcon-CxfsowHx.js} +2 -2
  16. package/dist/{ClockIcon-CRdviY8o.js.map → ClockIcon-CxfsowHx.js.map} +1 -1
  17. package/dist/{CloseIcon-JYYIdhBY.js → CloseIcon-C5SCeQOk.js} +2 -2
  18. package/dist/{CloseIcon-JYYIdhBY.js.map → CloseIcon-C5SCeQOk.js.map} +1 -1
  19. package/dist/{CollectionView-C660avPQ.js → CollectionView-Bq8xpn6T.js} +6 -6
  20. package/dist/{CollectionView-C660avPQ.js.map → CollectionView-Bq8xpn6T.js.map} +1 -1
  21. package/dist/{Event-DlxxdMrP.js → Event-DJusXK29.js} +13 -13
  22. package/dist/{Event-DlxxdMrP.js.map → Event-DJusXK29.js.map} +1 -1
  23. package/dist/{EventPage-jhF3OOpv.js → EventPage-c9woM8dq.js} +9 -9
  24. package/dist/{EventPage-jhF3OOpv.js.map → EventPage-c9woM8dq.js.map} +1 -1
  25. package/dist/{Heading-B9gB4-Za.js → Heading-D81DQHoP.js} +2 -2
  26. package/dist/{Heading-B9gB4-Za.js.map → Heading-D81DQHoP.js.map} +1 -1
  27. package/dist/{Image-BrI6RXFh.js → Image-BktsxRho.js} +2 -2
  28. package/dist/{Image-BrI6RXFh.js.map → Image-BktsxRho.js.map} +1 -1
  29. package/dist/{MailIcon-Nxg7y-ub.js → MailIcon-3o_dDUzN.js} +2 -2
  30. package/dist/{MailIcon-Nxg7y-ub.js.map → MailIcon-3o_dDUzN.js.map} +1 -1
  31. package/dist/{Modal-CIRQUVSH.js → Modal-aWfERkXe.js} +3 -3
  32. package/dist/{Modal-CIRQUVSH.js.map → Modal-aWfERkXe.js.map} +1 -1
  33. package/dist/{PasswordInput-URDphAa4.js → PasswordInput-CLFuYYgC.js} +2 -2
  34. package/dist/{PasswordInput-URDphAa4.js.map → PasswordInput-CLFuYYgC.js.map} +1 -1
  35. package/dist/{ScarcityBadge-Dwah85WZ.js → ScarcityBadge-5RMumV4l.js} +3 -3
  36. package/dist/{ScarcityBadge-Dwah85WZ.js.map → ScarcityBadge-5RMumV4l.js.map} +1 -1
  37. package/dist/{SeriesPage-phkzskyq.js → SeriesPage-Dy28yKRV.js} +5 -5
  38. package/dist/{SeriesPage-phkzskyq.js.map → SeriesPage-Dy28yKRV.js.map} +1 -1
  39. package/dist/{Spinner-DsGKt_54.js → Spinner-D-c4nFeN.js} +2 -2
  40. package/dist/{Spinner-DsGKt_54.js.map → Spinner-D-c4nFeN.js.map} +1 -1
  41. package/dist/{Success-D1Voif89.js → Success-Zx8HLwlN.js} +11 -11
  42. package/dist/{Success-D1Voif89.js.map → Success-Zx8HLwlN.js.map} +1 -1
  43. package/dist/{VenueCalendar-DcX-R9GN.js → VenueCalendar-Ys8-209-.js} +14 -14
  44. package/dist/{VenueCalendar-DcX-R9GN.js.map → VenueCalendar-Ys8-209-.js.map} +1 -1
  45. package/dist/{ViewTicketsEmbed-pVa7jt9E.js → ViewTicketsEmbed-BjVMnRnA.js} +5 -5
  46. package/dist/{ViewTicketsEmbed-pVa7jt9E.js.map → ViewTicketsEmbed-BjVMnRnA.js.map} +1 -1
  47. package/dist/{WarningCircleIcon-CRvgz4mx.js → WarningCircleIcon-eOM57ZiU.js} +2 -2
  48. package/dist/{WarningCircleIcon-CRvgz4mx.js.map → WarningCircleIcon-eOM57ZiU.js.map} +1 -1
  49. package/dist/{allowlist-BB9UJJQv.js → allowlist-BVbx-J6B.js} +3 -3
  50. package/dist/{allowlist-BB9UJJQv.js.map → allowlist-BVbx-J6B.js.map} +1 -1
  51. package/dist/{cancel-CywDLP7Z.js → cancel-BIH3xozo.js} +2 -2
  52. package/dist/{cancel-CywDLP7Z.js.map → cancel-BIH3xozo.js.map} +1 -1
  53. package/dist/{copyToClipboard-iOR2YHXj.js → copyToClipboard-Ct55SL-r.js} +2 -2
  54. package/dist/{copyToClipboard-iOR2YHXj.js.map → copyToClipboard-Ct55SL-r.js.map} +1 -1
  55. package/dist/{index-C70I4S7a.js → index-B5pEXtmb.js} +2 -2
  56. package/dist/{index-C70I4S7a.js.map → index-B5pEXtmb.js.map} +1 -1
  57. package/dist/{modalManager.svelte-DUrbp7PG.js → modalManager.svelte-C6kq14zr.js} +2 -2
  58. package/dist/{modalManager.svelte-DUrbp7PG.js.map → modalManager.svelte-C6kq14zr.js.map} +1 -1
  59. package/dist/{promo-CytPOSIe.js → promo-Iv83zhP5.js} +2 -2
  60. package/dist/{promo-CytPOSIe.js.map → promo-Iv83zhP5.js.map} +1 -1
  61. package/dist/{serverTotals-BGK9EZcX.js → serverTotals-Bx9REXQW.js} +2 -2
  62. package/dist/{serverTotals-BGK9EZcX.js.map → serverTotals-Bx9REXQW.js.map} +1 -1
  63. package/dist/{showcase-state-options-B7OzbBdo.js → showcase-state-options-QYvDSYq0.js} +2 -2
  64. package/dist/{showcase-state-options-B7OzbBdo.js.map → showcase-state-options-QYvDSYq0.js.map} +1 -1
  65. package/dist/{transform-BaKV88mB.js → transform-DiYvD4iM.js} +3 -3
  66. package/dist/{transform-BaKV88mB.js.map → transform-DiYvD4iM.js.map} +1 -1
  67. package/dist/{utm-DBME8yC6.js → utm-TGZ2W8Ii.js} +2 -2
  68. package/dist/{utm-DBME8yC6.js.map → utm-TGZ2W8Ii.js.map} +1 -1
  69. package/dist/venue-calendar.es.js +1 -1
  70. package/dist/venue-calendar.iife.js +1 -1
  71. package/dist/venue-calendar.umd.js +1 -1
  72. package/package.json +2 -2
@@ -1,8 +1,8 @@
1
- import { ar as u, as as p, at as v } from "./VenueCalendar-DcX-R9GN.js";
1
+ import { ar as u, as as p, at as v } from "./VenueCalendar-Ys8-209-.js";
2
2
  import "svelte/internal/disclose-version";
3
3
  import * as e from "svelte/internal/client";
4
4
  import { d as g } from "./labels-BhvPsg7u.js";
5
- import { C as h } from "./ClockIcon-CRdviY8o.js";
5
+ import { C as h } from "./ClockIcon-CxfsowHx.js";
6
6
  import { T as b } from "./Text-DacTw_9X.js";
7
7
  function w(s, t = v()) {
8
8
  if (!s) return !1;
@@ -37,4 +37,4 @@ export {
37
37
  y as C,
38
38
  w as i
39
39
  };
40
- //# sourceMappingURL=CheckoutTimer-CoV5cHRL.js.map
40
+ //# sourceMappingURL=CheckoutTimer--6OOtdTB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckoutTimer-CoV5cHRL.js","sources":["../src/lib/utils/event-ended.ts","../src/lib/public-calendar-flow/CheckoutTimer.svelte"],"sourcesContent":["import {\r\n browserNow,\r\n compareInstants,\r\n toInstantOrNull,\r\n} from '@getmicdrop/svelte-components/datetime';\r\n\r\n/**\r\n * The minimum an event has to carry to be judged ended. Both fields are\r\n * optional here so callers can pass a partially-loaded event without casting —\r\n * an event with neither timestamp is simply never \"ended\".\r\n */\r\nexport interface EndableEvent {\r\n startDateTime?: string | null;\r\n endDateTime?: string | null;\r\n}\r\n\r\n/**\r\n * Has this event's end time already passed?\r\n *\r\n * Extracted verbatim from CartView's `isEventEnded` derivation so the cart and\r\n * the checkout answer this question the same way — same source field\r\n * (`endDateTime` falling back to `startDateTime`), same absolute-instant\r\n * comparison against the buyer's own clock, tz-independent.\r\n *\r\n * `now` is a parameter so a ticking caller (checkout, where the event can end\r\n * while the buyer is mid-flow) can re-derive against a clock it owns. It\r\n * defaults to `browserNow()` for callers that only need the mount-time answer.\r\n */\r\nexport function isEventEnded(\r\n event: EndableEvent | null | undefined,\r\n now: Date = browserNow()\r\n): boolean {\r\n if (!event) return false;\r\n // Absolute instant vs the buyer's clock, tz-independent\r\n const eventEnd = toInstantOrNull(event.endDateTime || event.startDateTime);\r\n return eventEnd ? compareInstants(eventEnd, now) < 0 : false;\r\n}\r\n","<script lang=\"ts\">\r\n import { defaultLabels } from '$lib/public-calendar-flow/i18n/labels.js';\r\n import { ClockIcon } from '@getmicdrop/svelte-components/primitives/Icons/phosphor/index.js';\r\n import { Text } from '@getmicdrop/svelte-components';\r\n\r\n interface Props {\r\n seconds: number;\r\n isUrgent: boolean;\r\n labels?: Record<string, string>;\r\n }\r\n\r\n let { seconds, isUrgent, labels = defaultLabels }: Props = $props();\r\n\r\n let display = $derived(\r\n (() => {\r\n const m = Math.floor(seconds / 60);\r\n const s = seconds % 60;\r\n return `${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\r\n })()\r\n );\r\n\r\n // vc#706: these were bare string literals with no catalogue entry, so they\r\n // were unreachable by every locale mechanism while on screen for the entire\r\n // checkout session. Keyed now; the `||` keeps English when no labels arrive.\r\n let label = $derived(\r\n isUrgent\r\n ? labels.completeSoon || 'Complete soon'\r\n : labels.reservationHeld || 'Reservation held'\r\n );\r\n</script>\r\n\r\n<div class=\"timer-display text-color-secondary\" class:urgent={isUrgent}>\r\n <ClockIcon size=\"16\" class=\"shrink-0\" />\r\n <Text size=\"sm\" weight=\"medium\" class=\"tabular-nums\">\r\n {label} &middot; {display}\r\n </Text>\r\n</div>\r\n\r\n<style>\r\n .timer-display {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n }\r\n\r\n .timer-display.urgent {\r\n color: hsl(var(--accent-warning)); /* orange-500 */\r\n }\r\n</style>\r\n"],"names":["isEventEnded","event","now","browserNow","eventEnd","toInstantOrNull","compareInstants","labels","$","$$props","defaultLabels","display","m","s","label","div","root","ClockIcon","node","Text","node_1","text","classes"],"mappings":";;;;;;AA4BO,SAASA,EACdC,GACAC,IAAYC,KACH;AACT,MAAI,CAACF,EAAO,QAAO;AAEnB,QAAMG,IAAWC,EAAgBJ,EAAM,eAAeA,EAAM,aAAa;AACzE,SAAOG,IAAWE,EAAgBF,GAAUF,CAAG,IAAI,IAAI;AACzD;;iBCpCA;;AAWE,MAAyBK,IAAMC,EAAA,KAAAC,GAAA,UAAA,GAAGC,CAAa,GAE3CC,2BACK;AACL,UAAMC,IAAI,KAAK,kBAAgB,EAAE,GAC3BC,gBAAc;AACpB,cAAUD,EAAE,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAA,IAAKC,EAAE,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAA;AAAA,EACzE,IAAC,GAMCC,IAAKN,EAAA,QAAA,MAAAC,EAAA,WAEHF,EAAM,EAAC,gBAAgB,kBACvBA,EAAM,EAAC,mBAAmB,kBAAkB;MAInDQ,IAAGC,EAAA;;kBAAHD,CAAG;AACD,EAAAE,EAASC,GAAA,EAAA,MAAA,MAAA,OAAA,YAAA;;AACT,EAAAC,EAAIC,GAAA;AAAA;;;;;;AACF,MAAAZ,EAAA,gBAAA,MAAAA,EAAA,SAAAa,GAAA,GAAAb,EAAA,IAAAM,CAAK,mBAAYH,CAAO,KAAA,EAAA,EAAA,CAAA;;;cAH5BI,CAAG,2CAAHA,GAAG,GAAA,oDAAA,MAAAO,GAAA,EAAA,QAAAb,EAAA,SAAA,CAAA,CAAA,eAAHM,CAAG;AAFI;"}
1
+ {"version":3,"file":"CheckoutTimer--6OOtdTB.js","sources":["../src/lib/utils/event-ended.ts","../src/lib/public-calendar-flow/CheckoutTimer.svelte"],"sourcesContent":["import {\r\n browserNow,\r\n compareInstants,\r\n toInstantOrNull,\r\n} from '@getmicdrop/svelte-components/datetime';\r\n\r\n/**\r\n * The minimum an event has to carry to be judged ended. Both fields are\r\n * optional here so callers can pass a partially-loaded event without casting —\r\n * an event with neither timestamp is simply never \"ended\".\r\n */\r\nexport interface EndableEvent {\r\n startDateTime?: string | null;\r\n endDateTime?: string | null;\r\n}\r\n\r\n/**\r\n * Has this event's end time already passed?\r\n *\r\n * Extracted verbatim from CartView's `isEventEnded` derivation so the cart and\r\n * the checkout answer this question the same way — same source field\r\n * (`endDateTime` falling back to `startDateTime`), same absolute-instant\r\n * comparison against the buyer's own clock, tz-independent.\r\n *\r\n * `now` is a parameter so a ticking caller (checkout, where the event can end\r\n * while the buyer is mid-flow) can re-derive against a clock it owns. It\r\n * defaults to `browserNow()` for callers that only need the mount-time answer.\r\n */\r\nexport function isEventEnded(\r\n event: EndableEvent | null | undefined,\r\n now: Date = browserNow()\r\n): boolean {\r\n if (!event) return false;\r\n // Absolute instant vs the buyer's clock, tz-independent\r\n const eventEnd = toInstantOrNull(event.endDateTime || event.startDateTime);\r\n return eventEnd ? compareInstants(eventEnd, now) < 0 : false;\r\n}\r\n","<script lang=\"ts\">\r\n import { defaultLabels } from '$lib/public-calendar-flow/i18n/labels.js';\r\n import { ClockIcon } from '@getmicdrop/svelte-components/primitives/Icons/phosphor/index.js';\r\n import { Text } from '@getmicdrop/svelte-components';\r\n\r\n interface Props {\r\n seconds: number;\r\n isUrgent: boolean;\r\n labels?: Record<string, string>;\r\n }\r\n\r\n let { seconds, isUrgent, labels = defaultLabels }: Props = $props();\r\n\r\n let display = $derived(\r\n (() => {\r\n const m = Math.floor(seconds / 60);\r\n const s = seconds % 60;\r\n return `${m.toString().padStart(2, '0')}:${s.toString().padStart(2, '0')}`;\r\n })()\r\n );\r\n\r\n // vc#706: these were bare string literals with no catalogue entry, so they\r\n // were unreachable by every locale mechanism while on screen for the entire\r\n // checkout session. Keyed now; the `||` keeps English when no labels arrive.\r\n let label = $derived(\r\n isUrgent\r\n ? labels.completeSoon || 'Complete soon'\r\n : labels.reservationHeld || 'Reservation held'\r\n );\r\n</script>\r\n\r\n<div class=\"timer-display text-color-secondary\" class:urgent={isUrgent}>\r\n <ClockIcon size=\"16\" class=\"shrink-0\" />\r\n <Text size=\"sm\" weight=\"medium\" class=\"tabular-nums\">\r\n {label} &middot; {display}\r\n </Text>\r\n</div>\r\n\r\n<style>\r\n .timer-display {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n }\r\n\r\n .timer-display.urgent {\r\n color: hsl(var(--accent-warning)); /* orange-500 */\r\n }\r\n</style>\r\n"],"names":["isEventEnded","event","now","browserNow","eventEnd","toInstantOrNull","compareInstants","labels","$","$$props","defaultLabels","display","m","s","label","div","root","ClockIcon","node","Text","node_1","text","classes"],"mappings":";;;;;;AA4BO,SAASA,EACdC,GACAC,IAAYC,KACH;AACT,MAAI,CAACF,EAAO,QAAO;AAEnB,QAAMG,IAAWC,EAAgBJ,EAAM,eAAeA,EAAM,aAAa;AACzE,SAAOG,IAAWE,EAAgBF,GAAUF,CAAG,IAAI,IAAI;AACzD;;iBCpCA;;AAWE,MAAyBK,IAAMC,EAAA,KAAAC,GAAA,UAAA,GAAGC,CAAa,GAE3CC,2BACK;AACL,UAAMC,IAAI,KAAK,kBAAgB,EAAE,GAC3BC,gBAAc;AACpB,cAAUD,EAAE,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAA,IAAKC,EAAE,SAAQ,EAAG,SAAS,GAAG,GAAG,CAAA;AAAA,EACzE,IAAC,GAMCC,IAAKN,EAAA,QAAA,MAAAC,EAAA,WAEHF,EAAM,EAAC,gBAAgB,kBACvBA,EAAM,EAAC,mBAAmB,kBAAkB;MAInDQ,IAAGC,EAAA;;kBAAHD,CAAG;AACD,EAAAE,EAASC,GAAA,EAAA,MAAA,MAAA,OAAA,YAAA;;AACT,EAAAC,EAAIC,GAAA;AAAA;;;;;;AACF,MAAAZ,EAAA,gBAAA,MAAAA,EAAA,SAAAa,GAAA,GAAAb,EAAA,IAAAM,CAAK,mBAAYH,CAAO,KAAA,EAAA,EAAA,CAAA;;;cAH5BI,CAAG,2CAAHA,GAAG,GAAA,oDAAA,MAAAO,GAAA,EAAA,QAAAb,EAAA,SAAA,CAAA,CAAA,eAAHM,CAAG;AAFI;"}
@@ -1,6 +1,6 @@
1
1
  import "svelte/internal/disclose-version";
2
2
  import * as e from "svelte/internal/client";
3
- import { Z as h } from "./VenueCalendar-DcX-R9GN.js";
3
+ import { Z as h } from "./VenueCalendar-Ys8-209-.js";
4
4
  var g = e.from_svg('<path d="M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm56,112H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z"></path>'), m = e.from_svg('<circle cx="128" cy="128" r="96" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></circle><polyline points="128 72 128 128 184 128" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"></polyline>', 1), w = e.from_svg('<svg aria-hidden="true" viewBox="0 0 256 256" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><!></svg>');
5
5
  function x(a, o) {
6
6
  e.push(o, !0);
@@ -29,4 +29,4 @@ function x(a, o) {
29
29
  export {
30
30
  x as C
31
31
  };
32
- //# sourceMappingURL=ClockIcon-CRdviY8o.js.map
32
+ //# sourceMappingURL=ClockIcon-CxfsowHx.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClockIcon-CRdviY8o.js","sources":["../node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/ClockIcon.svelte"],"sourcesContent":["<script lang=\"ts\">\n /**\n * Clock — Phosphor icon (canonical Micdrop icon family).\n * Outline by default; pass `weight=\"fill\"` for solid, or let a stateful parent\n * (NavItem / Tabs / BottomNav / status badge) drive it via icon-weight context.\n */\n import { useIconWeight, type IconWeight } from './iconWeight.js';\n\n interface Props {\n /** Pixel size (width + height). */\n size?: string;\n /** Icon color; defaults to `currentColor` (inherits text color). */\n color?: string;\n /** Extra classes. */\n class?: string;\n /** `regular` (outline) or `fill` (solid). Overrides ambient state weight. */\n weight?: IconWeight;\n }\n\n let { size = '24', color = 'currentColor', class: className = '', weight }: Props = $props();\n\n const ctx = useIconWeight();\n let resolved: IconWeight = $derived(weight ?? ctx?.weight ?? 'regular');\n</script>\n\n<svg\n class={className}\n aria-hidden=\"true\"\n width={size}\n height={size}\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style:color={color === 'currentColor' ? undefined : color}\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n {#if resolved === 'fill'}<path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm56,112H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z\"/>{:else}<circle cx=\"128\" cy=\"128\" r=\"96\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"/><polyline points=\"128 72 128 128 184 128\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"/>{/if}\n</svg>\n"],"names":["size","$","$$props","color","className","ctx","useIconWeight","resolved","svg","root_2","path","root","$$render","consequent","alternate","styles"],"mappings":";;;;iBAAA;;AAmBE,MAAMA,IAAIC,EAAA,KAAAC,GAAA,QAAA,GAAG,IAAI,GAAEC,0BAAQ,cAAc,GAASC,0BAAY,EAAE;AAEhE,QAAMC,IAAMC,EAAa;AACzB,MAAIC,IAAoBN,EAAA,QAAA,MAAAC,EAAA,UAAsBG,GAAK,UAAU,SAAS;MAGvEG,IAAEC,EAAA;;kBAAFD,CAAE;;;UAUyBE,IAAIC,EAAA;kBAAJD,CAAI;AAAA;;;;;AAAzB,MAAAT,EAAA,IAAAM,CAAQ,MAAK,SAAMK,EAAAC,CAAA,IAAAD,EAAAE,GAAA,EAAA;AAAA;;UAVzBN,CAAE;AAAF,IAAAP,EAAA,UAAAO,aACQJ,EAAS,CAAA,CAAA,GADjBH,EAAA,cAAAO,YAGQR,EAAI,CAAA,GAHZC,EAAA,cAAAO,aAISR,EAAI,CAAA,GAJbe,IAAAd,EAAA,UAAAO,mBAOcL,EAAK,MAAK,iBAAiB,SAAYA,EAAK,EAAA,CAAA;AAAA,kBAP1DK,CAAE;AAFK;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"ClockIcon-CxfsowHx.js","sources":["../node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/ClockIcon.svelte"],"sourcesContent":["<script lang=\"ts\">\n /**\n * Clock — Phosphor icon (canonical Micdrop icon family).\n * Outline by default; pass `weight=\"fill\"` for solid, or let a stateful parent\n * (NavItem / Tabs / BottomNav / status badge) drive it via icon-weight context.\n */\n import { useIconWeight, type IconWeight } from './iconWeight.js';\n\n interface Props {\n /** Pixel size (width + height). */\n size?: string;\n /** Icon color; defaults to `currentColor` (inherits text color). */\n color?: string;\n /** Extra classes. */\n class?: string;\n /** `regular` (outline) or `fill` (solid). Overrides ambient state weight. */\n weight?: IconWeight;\n }\n\n let { size = '24', color = 'currentColor', class: className = '', weight }: Props = $props();\n\n const ctx = useIconWeight();\n let resolved: IconWeight = $derived(weight ?? ctx?.weight ?? 'regular');\n</script>\n\n<svg\n class={className}\n aria-hidden=\"true\"\n width={size}\n height={size}\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style:color={color === 'currentColor' ? undefined : color}\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n {#if resolved === 'fill'}<path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm56,112H128a8,8,0,0,1-8-8V72a8,8,0,0,1,16,0v48h48a8,8,0,0,1,0,16Z\"/>{:else}<circle cx=\"128\" cy=\"128\" r=\"96\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"/><polyline points=\"128 72 128 128 184 128\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"/>{/if}\n</svg>\n"],"names":["size","$","$$props","color","className","ctx","useIconWeight","resolved","svg","root_2","path","root","$$render","consequent","alternate","styles"],"mappings":";;;;iBAAA;;AAmBE,MAAMA,IAAIC,EAAA,KAAAC,GAAA,QAAA,GAAG,IAAI,GAAEC,0BAAQ,cAAc,GAASC,0BAAY,EAAE;AAEhE,QAAMC,IAAMC,EAAa;AACzB,MAAIC,IAAoBN,EAAA,QAAA,MAAAC,EAAA,UAAsBG,GAAK,UAAU,SAAS;MAGvEG,IAAEC,EAAA;;kBAAFD,CAAE;;;UAUyBE,IAAIC,EAAA;kBAAJD,CAAI;AAAA;;;;;AAAzB,MAAAT,EAAA,IAAAM,CAAQ,MAAK,SAAMK,EAAAC,CAAA,IAAAD,EAAAE,GAAA,EAAA;AAAA;;UAVzBN,CAAE;AAAF,IAAAP,EAAA,UAAAO,aACQJ,EAAS,CAAA,CAAA,GADjBH,EAAA,cAAAO,YAGQR,EAAI,CAAA,GAHZC,EAAA,cAAAO,aAISR,EAAI,CAAA,GAJbe,IAAAd,EAAA,UAAAO,mBAOcL,EAAK,MAAK,iBAAiB,SAAYA,EAAK,EAAA,CAAA;AAAA,kBAP1DK,CAAE;AAFK;","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
1
  import "svelte/internal/disclose-version";
2
2
  import * as e from "svelte/internal/client";
3
- import { Z as g } from "./VenueCalendar-DcX-R9GN.js";
3
+ import { Z as g } from "./VenueCalendar-Ys8-209-.js";
4
4
  var f = e.from_svg('<svg aria-hidden="true" fill="none" stroke-width="2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" d="M8 2.25v3M16 2.25v3M3.75 9.75h16.5M5.25 4.5h13.5a1.5 1.5 0 011.5 1.5v13.5a1.5 1.5 0 01-1.5 1.5H5.25a1.5 1.5 0 01-1.5-1.5V6a1.5 1.5 0 011.5-1.5z"></path></svg>');
5
5
  function M(n, t) {
6
6
  let l = e.prop(t, "size", 3, "24"), s = e.prop(t, "color", 3, "currentColor"), c = e.prop(t, "class", 3, "");
@@ -64,4 +64,4 @@ export {
64
64
  A as a,
65
65
  M as b
66
66
  };
67
- //# sourceMappingURL=CloseIcon-JYYIdhBY.js.map
67
+ //# sourceMappingURL=CloseIcon-C5SCeQOk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CloseIcon-JYYIdhBY.js","sources":["../node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/CalendarOutline.svelte","../node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/CheckIcon.svelte","../node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/CloseIcon.svelte"],"sourcesContent":["<script lang=\"ts\">\n interface Props {\n size?: string;\n color?: string;\n class?: string;\n }\n let { size = \"24\", color = \"currentColor\", class: className = \"\" }: Props = $props();\n</script>\n\n<svg\n class={className}\n aria-hidden=\"true\"\n width={size}\n height={size}\n fill=\"none\"\n stroke={color}\n stroke-width=\"2\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M8 2.25v3M16 2.25v3M3.75 9.75h16.5M5.25 4.5h13.5a1.5 1.5 0 011.5 1.5v13.5a1.5 1.5 0 01-1.5 1.5H5.25a1.5 1.5 0 01-1.5-1.5V6a1.5 1.5 0 011.5-1.5z\"\n />\n</svg>\n","<script lang=\"ts\">\n /**\n * Check — Phosphor icon (canonical Micdrop icon family).\n * Outline by default; pass `weight=\"fill\"` for solid, or let a stateful parent\n * (NavItem / Tabs / BottomNav / status badge) drive it via icon-weight context.\n */\n import { useIconWeight, type IconWeight } from './iconWeight.js';\n\n interface Props {\n /** Pixel size (width + height). */\n size?: string;\n /** Icon color; defaults to `currentColor` (inherits text color). */\n color?: string;\n /** Extra classes. */\n class?: string;\n /** `regular` (outline) or `fill` (solid). Overrides ambient state weight. */\n weight?: IconWeight;\n }\n\n let { size = '24', color = 'currentColor', class: className = '', weight }: Props = $props();\n\n const ctx = useIconWeight();\n let resolved: IconWeight = $derived(weight ?? ctx?.weight ?? 'regular');\n</script>\n\n<svg\n class={className}\n aria-hidden=\"true\"\n width={size}\n height={size}\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style:color={color === 'currentColor' ? undefined : color}\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n {#if resolved === 'fill'}<path d=\"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z\"/>{:else}<polyline points=\"40 144 96 200 224 72\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"/>{/if}\n</svg>\n","<script lang=\"ts\">\n /**\n * Close — Phosphor icon (canonical Micdrop icon family).\n * Outline by default; pass `weight=\"fill\"` for solid, or let a stateful parent\n * (NavItem / Tabs / BottomNav / status badge) drive it via icon-weight context.\n */\n import { useIconWeight, type IconWeight } from './iconWeight.js';\n\n interface Props {\n /** Pixel size (width + height). */\n size?: string;\n /** Icon color; defaults to `currentColor` (inherits text color). */\n color?: string;\n /** Extra classes. */\n class?: string;\n /** `regular` (outline) or `fill` (solid). Overrides ambient state weight. */\n weight?: IconWeight;\n }\n\n let { size = '24', color = 'currentColor', class: className = '', weight }: Props = $props();\n\n const ctx = useIconWeight();\n let resolved: IconWeight = $derived(weight ?? ctx?.weight ?? 'regular');\n</script>\n\n<svg\n class={className}\n aria-hidden=\"true\"\n width={size}\n height={size}\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style:color={color === 'currentColor' ? undefined : color}\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n {#if resolved === 'fill'}<path d=\"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM181.66,170.34a8,8,0,0,1-11.32,11.32L128,139.31,85.66,181.66a8,8,0,0,1-11.32-11.32L116.69,128,74.34,85.66A8,8,0,0,1,85.66,74.34L128,116.69l42.34-42.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"/>{:else}<line x1=\"200\" y1=\"56\" x2=\"56\" y2=\"200\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"/><line x1=\"200\" y1=\"200\" x2=\"56\" y2=\"56\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"/>{/if}\n</svg>\n"],"names":["size","$","$$props","color","className","svg","root","ctx","useIconWeight","resolved","root_2","path","polyline","root_1","$$render","consequent","alternate","styles"],"mappings":";;;;iBAAA;AAME,MAAMA,IAAIC,EAAA,KAAAC,GAAA,QAAA,GAAG,IAAI,GAAEC,0BAAQ,cAAc,GAASC,0BAAY,EAAE;MAGjEC,IAAEC,EAAA;;AAAF,IAAAL,EAAA,UAAAI,aACQD,EAAS,CAAA,CAAA,GADjBH,EAAA,cAAAI,YAGQL,EAAI,CAAA,GAHZC,EAAA,cAAAI,aAISL,EAAI,CAAA,GAJbC,EAAA,cAAAI,aAMSF,EAAK,CAAA;AAAA,kBANdE,CAAE;AAFK;;iBCPR;;AAmBE,MAAML,IAAIC,EAAA,KAAAC,GAAA,QAAA,GAAG,IAAI,GAAEC,0BAAQ,cAAc,GAASC,0BAAY,EAAE;AAEhE,QAAMG,IAAMC,EAAa;AACzB,MAAIC,IAAoBR,EAAA,QAAA,MAAAC,EAAA,UAAsBK,GAAK,UAAU,SAAS;MAGvEF,IAAEK,EAAA;;kBAAFL,CAAE;;;UAUyBM,IAAIL,EAAA;kBAAJK,CAAI;AAAA;UAA+NC,IAAQC,EAAA;kBAARD,CAAQ;AAAA;;AAAhQ,MAAAX,EAAA,IAAAQ,CAAQ,MAAK,SAAMK,EAAAC,CAAA,IAAAD,EAAAE,GAAA,EAAA;AAAA;;UAVzBX,CAAE;AAAF,IAAAJ,EAAA,UAAAI,aACQD,EAAS,CAAA,CAAA,GADjBH,EAAA,cAAAI,YAGQL,EAAI,CAAA,GAHZC,EAAA,cAAAI,aAISL,EAAI,CAAA,GAJbiB,IAAAhB,EAAA,UAAAI,mBAOcF,EAAK,MAAK,iBAAiB,SAAYA,EAAK,EAAA,CAAA;AAAA,kBAP1DE,CAAE;AAFK;;iBCvBR;;AAmBE,MAAML,IAAIC,EAAA,KAAAC,GAAA,QAAA,GAAG,IAAI,GAAEC,0BAAQ,cAAc,GAASC,0BAAY,EAAE;AAEhE,QAAMG,IAAMC,EAAa;AACzB,MAAIC,IAAoBR,EAAA,QAAA,MAAAC,EAAA,UAAsBK,GAAK,UAAU,SAAS;MAGvEF,IAAEK,EAAA;;kBAAFL,CAAE;;;UAUyBM,IAAIL,EAAA;kBAAJK,CAAI;AAAA;;;;;AAAzB,MAAAV,EAAA,IAAAQ,CAAQ,MAAK,SAAMK,EAAAC,CAAA,IAAAD,EAAAE,GAAA,EAAA;AAAA;;UAVzBX,CAAE;AAAF,IAAAJ,EAAA,UAAAI,aACQD,EAAS,CAAA,CAAA,GADjBH,EAAA,cAAAI,YAGQL,EAAI,CAAA,GAHZC,EAAA,cAAAI,aAISL,EAAI,CAAA,GAJbiB,IAAAhB,EAAA,UAAAI,mBAOcF,EAAK,MAAK,iBAAiB,SAAYA,EAAK,EAAA,CAAA;AAAA,kBAP1DE,CAAE;AAFK;","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"CloseIcon-C5SCeQOk.js","sources":["../node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/CalendarOutline.svelte","../node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/CheckIcon.svelte","../node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/CloseIcon.svelte"],"sourcesContent":["<script lang=\"ts\">\n interface Props {\n size?: string;\n color?: string;\n class?: string;\n }\n let { size = \"24\", color = \"currentColor\", class: className = \"\" }: Props = $props();\n</script>\n\n<svg\n class={className}\n aria-hidden=\"true\"\n width={size}\n height={size}\n fill=\"none\"\n stroke={color}\n stroke-width=\"2\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n d=\"M8 2.25v3M16 2.25v3M3.75 9.75h16.5M5.25 4.5h13.5a1.5 1.5 0 011.5 1.5v13.5a1.5 1.5 0 01-1.5 1.5H5.25a1.5 1.5 0 01-1.5-1.5V6a1.5 1.5 0 011.5-1.5z\"\n />\n</svg>\n","<script lang=\"ts\">\n /**\n * Check — Phosphor icon (canonical Micdrop icon family).\n * Outline by default; pass `weight=\"fill\"` for solid, or let a stateful parent\n * (NavItem / Tabs / BottomNav / status badge) drive it via icon-weight context.\n */\n import { useIconWeight, type IconWeight } from './iconWeight.js';\n\n interface Props {\n /** Pixel size (width + height). */\n size?: string;\n /** Icon color; defaults to `currentColor` (inherits text color). */\n color?: string;\n /** Extra classes. */\n class?: string;\n /** `regular` (outline) or `fill` (solid). Overrides ambient state weight. */\n weight?: IconWeight;\n }\n\n let { size = '24', color = 'currentColor', class: className = '', weight }: Props = $props();\n\n const ctx = useIconWeight();\n let resolved: IconWeight = $derived(weight ?? ctx?.weight ?? 'regular');\n</script>\n\n<svg\n class={className}\n aria-hidden=\"true\"\n width={size}\n height={size}\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style:color={color === 'currentColor' ? undefined : color}\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n {#if resolved === 'fill'}<path d=\"M216,40H40A16,16,0,0,0,24,56V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V56A16,16,0,0,0,216,40ZM205.66,85.66l-96,96a8,8,0,0,1-11.32,0l-40-40a8,8,0,0,1,11.32-11.32L104,164.69l90.34-90.35a8,8,0,0,1,11.32,11.32Z\"/>{:else}<polyline points=\"40 144 96 200 224 72\" fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"/>{/if}\n</svg>\n","<script lang=\"ts\">\n /**\n * Close — Phosphor icon (canonical Micdrop icon family).\n * Outline by default; pass `weight=\"fill\"` for solid, or let a stateful parent\n * (NavItem / Tabs / BottomNav / status badge) drive it via icon-weight context.\n */\n import { useIconWeight, type IconWeight } from './iconWeight.js';\n\n interface Props {\n /** Pixel size (width + height). */\n size?: string;\n /** Icon color; defaults to `currentColor` (inherits text color). */\n color?: string;\n /** Extra classes. */\n class?: string;\n /** `regular` (outline) or `fill` (solid). Overrides ambient state weight. */\n weight?: IconWeight;\n }\n\n let { size = '24', color = 'currentColor', class: className = '', weight }: Props = $props();\n\n const ctx = useIconWeight();\n let resolved: IconWeight = $derived(weight ?? ctx?.weight ?? 'regular');\n</script>\n\n<svg\n class={className}\n aria-hidden=\"true\"\n width={size}\n height={size}\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n style:color={color === 'currentColor' ? undefined : color}\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n {#if resolved === 'fill'}<path d=\"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM181.66,170.34a8,8,0,0,1-11.32,11.32L128,139.31,85.66,181.66a8,8,0,0,1-11.32-11.32L116.69,128,74.34,85.66A8,8,0,0,1,85.66,74.34L128,116.69l42.34-42.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"/>{:else}<line x1=\"200\" y1=\"56\" x2=\"56\" y2=\"200\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"/><line x1=\"200\" y1=\"200\" x2=\"56\" y2=\"56\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"16\"/>{/if}\n</svg>\n"],"names":["size","$","$$props","color","className","svg","root","ctx","useIconWeight","resolved","root_2","path","polyline","root_1","$$render","consequent","alternate","styles"],"mappings":";;;;iBAAA;AAME,MAAMA,IAAIC,EAAA,KAAAC,GAAA,QAAA,GAAG,IAAI,GAAEC,0BAAQ,cAAc,GAASC,0BAAY,EAAE;MAGjEC,IAAEC,EAAA;;AAAF,IAAAL,EAAA,UAAAI,aACQD,EAAS,CAAA,CAAA,GADjBH,EAAA,cAAAI,YAGQL,EAAI,CAAA,GAHZC,EAAA,cAAAI,aAISL,EAAI,CAAA,GAJbC,EAAA,cAAAI,aAMSF,EAAK,CAAA;AAAA,kBANdE,CAAE;AAFK;;iBCPR;;AAmBE,MAAML,IAAIC,EAAA,KAAAC,GAAA,QAAA,GAAG,IAAI,GAAEC,0BAAQ,cAAc,GAASC,0BAAY,EAAE;AAEhE,QAAMG,IAAMC,EAAa;AACzB,MAAIC,IAAoBR,EAAA,QAAA,MAAAC,EAAA,UAAsBK,GAAK,UAAU,SAAS;MAGvEF,IAAEK,EAAA;;kBAAFL,CAAE;;;UAUyBM,IAAIL,EAAA;kBAAJK,CAAI;AAAA;UAA+NC,IAAQC,EAAA;kBAARD,CAAQ;AAAA;;AAAhQ,MAAAX,EAAA,IAAAQ,CAAQ,MAAK,SAAMK,EAAAC,CAAA,IAAAD,EAAAE,GAAA,EAAA;AAAA;;UAVzBX,CAAE;AAAF,IAAAJ,EAAA,UAAAI,aACQD,EAAS,CAAA,CAAA,GADjBH,EAAA,cAAAI,YAGQL,EAAI,CAAA,GAHZC,EAAA,cAAAI,aAISL,EAAI,CAAA,GAJbiB,IAAAhB,EAAA,UAAAI,mBAOcF,EAAK,MAAK,iBAAiB,SAAYA,EAAK,EAAA,CAAA;AAAA,kBAP1DE,CAAE;AAFK;;iBCvBR;;AAmBE,MAAML,IAAIC,EAAA,KAAAC,GAAA,QAAA,GAAG,IAAI,GAAEC,0BAAQ,cAAc,GAASC,0BAAY,EAAE;AAEhE,QAAMG,IAAMC,EAAa;AACzB,MAAIC,IAAoBR,EAAA,QAAA,MAAAC,EAAA,UAAsBK,GAAK,UAAU,SAAS;MAGvEF,IAAEK,EAAA;;kBAAFL,CAAE;;;UAUyBM,IAAIL,EAAA;kBAAJK,CAAI;AAAA;;;;;AAAzB,MAAAV,EAAA,IAAAQ,CAAQ,MAAK,SAAMK,EAAAC,CAAA,IAAAD,EAAAE,GAAA,EAAA;AAAA;;UAVzBX,CAAE;AAAF,IAAAJ,EAAA,UAAAI,aACQD,EAAS,CAAA,CAAA,GADjBH,EAAA,cAAAI,YAGQL,EAAI,CAAA,GAHZC,EAAA,cAAAI,aAISL,EAAI,CAAA,GAJbiB,IAAAhB,EAAA,UAAAI,mBAOcF,EAAK,MAAK,iBAAiB,SAAYA,EAAK,EAAA,CAAA;AAAA,kBAP1DE,CAAE;AAFK;","x_google_ignoreList":[0,1,2]}
@@ -1,11 +1,11 @@
1
1
  import "svelte/internal/disclose-version";
2
2
  import * as e from "svelte/internal/client";
3
- import { u as F, g as U, aX as G, j as H, x as K } from "./VenueCalendar-DcX-R9GN.js";
3
+ import { u as F, g as U, aX as G, j as H, x as K } from "./VenueCalendar-Ys8-209-.js";
4
4
  import { onMount as Q, onDestroy as W } from "svelte";
5
- import { g as X } from "./ScarcityBadge-Dwah85WZ.js";
6
- import { E as Y } from "./Event-DlxxdMrP.js";
7
- import { b as Z } from "./transform-BaKV88mB.js";
8
- import { P as $ } from "./PasswordInput-URDphAa4.js";
5
+ import { g as X } from "./ScarcityBadge-5RMumV4l.js";
6
+ import { E as Y } from "./Event-DJusXK29.js";
7
+ import { b as Z } from "./transform-DiYvD4iM.js";
8
+ import { P as $ } from "./PasswordInput-CLFuYYgC.js";
9
9
  var ee = e.from_html('<div class="flex items-center justify-center py-12 text-center loading-container svelte-q4dz4y"><p> </p></div>'), te = e.from_html('<div class="flex flex-col items-center justify-center min-h-[50vh] text-center"><div class="password-card rounded-lg p-8 max-w-sm w-full svelte-q4dz4y"><h2 class="password-title type-heading mb-2 svelte-q4dz4y"> </h2> <p class="password-description type-body mb-6 svelte-q4dz4y"> </p> <form class="flex flex-col gap-3"><!> <!></form></div></div>'), re = e.from_html('<div class="flex flex-col items-center justify-center min-h-[50vh] text-center"><p class="error-text svelte-q4dz4y"> </p></div>');
10
10
  function ce(L, l) {
11
11
  e.push(l, !0), F("CollectionView"), e.prop(l, "organizationId", 3, "");
@@ -148,4 +148,4 @@ function ce(L, l) {
148
148
  export {
149
149
  ce as default
150
150
  };
151
- //# sourceMappingURL=CollectionView-C660avPQ.js.map
151
+ //# sourceMappingURL=CollectionView-Bq8xpn6T.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionView-C660avPQ.js","sources":["../src/components/Views/CollectionView.svelte"],"sourcesContent":["<!-- @route-escape: widget-intentional. -->\r\n<script lang=\"ts\">\r\n import { defaultLabels } from '$lib/i18n/defaultLabels.js';\r\n import { onMount, onDestroy } from 'svelte';\r\n import { goto } from '$app/navigation';\r\n import { resolve } from '$app/paths';\r\n import EventExperience from '$lib/public-calendar-flow/Event.svelte';\r\n import { transformCollectionData } from '$lib/public-calendar-flow/transform';\r\n import { fetchPublicCollection } from '$lib/api/events';\r\n import type { PublicCollectionData } from '$lib/api/types';\r\n import {\r\n Button,\r\n createLogger,\r\n PasswordInput,\r\n } from '@getmicdrop/svelte-components';\r\n\r\n const _logger = createLogger('CollectionView');\r\n\r\n // --- Props (matches old CollectionView external interface) ---\r\n interface Props {\r\n collectionId: string | number;\r\n organizationId?: string;\r\n onNavigateToEvent?: (_id: number, _slug: string) => void;\r\n password?: string;\r\n displayMode?: string;\r\n showViewSwitcher?: boolean;\r\n labels?: Record<string, string>;\r\n /** BCP-47 locale tag (e.g. 'es', 'es-MX'). Undefined → browser locale → en. */\r\n locale?: string;\r\n }\r\n\r\n let {\r\n collectionId,\r\n organizationId: _organizationId = '',\r\n onNavigateToEvent = undefined,\r\n password = undefined,\r\n displayMode: _displayMode = 'gallery',\r\n showViewSwitcher: _showViewSwitcher = true,\r\n labels = defaultLabels,\r\n locale = undefined,\r\n }: Props = $props();\r\n\r\n // --- State ---\r\n let collection = $state<PublicCollectionData | null>(null);\r\n let isLoading = $state(true);\r\n let error = $state<string | null>(null);\r\n let isMounted = $state(false);\r\n let passwordRequired = $state(false);\r\n let passwordInput = $state('');\r\n let passwordError = $state(false);\r\n\r\n // --- Derived ---\r\n let eventData = $derived(\r\n collection ? transformCollectionData(collection) : null\r\n );\r\n\r\n // Monotonic id for collection loads. loadCollection runs on mount AND on each\r\n // password submit; a slower EARLIER request resolving last would otherwise\r\n // clobber the latest attempt (isMounted only covers unmount, not overlap).\r\n let latestLoad = 0;\r\n\r\n // R-STORAGE-02 namespaced key (`micdrop:<feature>:<detail>`) — mirrors\r\n // EventPage's `micdrop:authedEvents:list` so the two public password gates\r\n // behave the same way: an unlock is sticky for the tab session instead of\r\n // re-prompting on every refresh.\r\n //\r\n // Events can store the id alone because their flag only suppresses a modal.\r\n // The public collection payload is served ONLY for a matching `?password=`\r\n // query (auth `isCollectionPasswordSatisfied` — there is no unlock cookie),\r\n // so the entry has to carry the password in order to replay it. The server\r\n // stays the authority: a stored password that no longer matches comes back\r\n // as `passwordRequired` and we re-prompt, so the flag can never reveal gated\r\n // content on its own. The value is a shared per-collection gate password,\r\n // not a visitor credential, and dies with the tab.\r\n const AUTHED_COLLECTIONS_STORAGE_KEY = 'micdrop:authedCollections:list';\r\n\r\n interface AuthedCollection {\r\n id: string;\r\n password: string;\r\n }\r\n\r\n function readAuthedCollections(): AuthedCollection[] {\r\n if (typeof window === 'undefined') return [];\r\n try {\r\n const parsed = JSON.parse(\r\n sessionStorage.getItem(AUTHED_COLLECTIONS_STORAGE_KEY) || '[]'\r\n ); // @storage-escape: authedCollections session-auth state (intentional raw sessionStorage)\r\n // A foreign/corrupt value under our key must degrade to \"locked\" rather\r\n // than throw and take the whole collection load down with it.\r\n return Array.isArray(parsed) ? parsed : [];\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n function getAuthedCollectionPassword(\r\n colId: string | number\r\n ): string | undefined {\r\n const entry = readAuthedCollections().find((c) => c?.id === String(colId));\r\n return entry?.password || undefined;\r\n }\r\n\r\n function setAuthedCollectionPassword(\r\n colId: string | number,\r\n pwd?: string\r\n ): void {\r\n if (typeof window === 'undefined' || !pwd) return;\r\n // Rewrite rather than push-if-absent so a rotated password replaces the\r\n // stale entry for this collection instead of being shadowed by it.\r\n const authedCollections = readAuthedCollections().filter(\r\n (c) => c?.id !== String(colId)\r\n );\r\n authedCollections.push({ id: String(colId), password: pwd });\r\n sessionStorage.setItem(\r\n AUTHED_COLLECTIONS_STORAGE_KEY,\r\n JSON.stringify(authedCollections)\r\n ); // @storage-escape: authedCollections session-auth state (intentional raw sessionStorage)\r\n }\r\n\r\n function clearAuthedCollection(colId: string | number): void {\r\n if (typeof window === 'undefined') return;\r\n const remaining = readAuthedCollections().filter(\r\n (c) => c?.id !== String(colId)\r\n );\r\n sessionStorage.setItem(\r\n AUTHED_COLLECTIONS_STORAGE_KEY,\r\n JSON.stringify(remaining)\r\n ); // @storage-escape: authedCollections session-auth state (intentional raw sessionStorage)\r\n }\r\n\r\n // --- Load collection data ---\r\n // `fromSession` marks a password replayed from sessionStorage rather than\r\n // typed just now — it must be dropped (not blamed on the visitor) if the\r\n // server no longer accepts it.\r\n async function loadCollection(\r\n pwd?: string,\r\n fromSession = false\r\n ): Promise<void> {\r\n if (!isMounted) return;\r\n const loadId = ++latestLoad;\r\n if (!collectionId) {\r\n error = labels.noCollectionIdProvided || 'No collection ID provided';\r\n isLoading = false;\r\n return;\r\n }\r\n\r\n isLoading = true;\r\n error = null;\r\n passwordError = false;\r\n\r\n try {\r\n const data = await fetchPublicCollection(collectionId, pwd);\r\n // A newer load superseded us — discard this stale response.\r\n if (!isMounted || loadId !== latestLoad) return;\r\n\r\n if (data) {\r\n if (data.passwordRequired || data.error?.code === 'PASSWORD_REQUIRED') {\r\n passwordRequired = true;\r\n if (fromSession) clearAuthedCollection(collectionId);\r\n isLoading = false;\r\n return;\r\n }\r\n collection = data;\r\n passwordRequired = false;\r\n // Remember the accepted password for this tab so a refresh re-opens the\r\n // collection instead of re-prompting. No-op when the collection isn't\r\n // protected (pwd undefined).\r\n setAuthedCollectionPassword(collectionId, pwd);\r\n } else {\r\n if (pwd) {\r\n passwordRequired = true;\r\n if (fromSession) {\r\n clearAuthedCollection(collectionId);\r\n } else {\r\n passwordError = true;\r\n }\r\n isLoading = false;\r\n return;\r\n }\r\n error = labels.failedToLoadCollection || 'Failed to load collection';\r\n }\r\n } catch (err: any) {\r\n // A superseded load failing must not overwrite the latest load's state\r\n // (e.g. a slow wrong-password 401 re-locking an already-loaded collection).\r\n if (isMounted && loadId === latestLoad) {\r\n const msg = err.message || '';\r\n if (\r\n msg.includes('401') ||\r\n msg.includes('403') ||\r\n msg.includes('password')\r\n ) {\r\n passwordRequired = true;\r\n if (fromSession) clearAuthedCollection(collectionId);\r\n } else {\r\n error =\r\n msg || labels.failedToLoadCollection || 'Failed to load collection';\r\n }\r\n }\r\n } finally {\r\n // Only the latest load may clear the spinner — a stale load settling\r\n // first must not reveal content while the newest load is still pending.\r\n if (isMounted && loadId === latestLoad) {\r\n isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n function handlePasswordSubmit(e: Event): void {\r\n e.preventDefault();\r\n if (!passwordInput.trim()) return;\r\n loadCollection(passwordInput);\r\n }\r\n\r\n function handleCollectionEventClick(galleryEvent: {\r\n id?: number | string;\r\n slug: string;\r\n }): void {\r\n if (onNavigateToEvent && galleryEvent.id) {\r\n onNavigateToEvent(Number(galleryEvent.id), galleryEvent.slug);\r\n } else {\r\n // @url-builder-escape: widget-internal route; SC's url-builders cover /a admin paths, not embedded calendar navigation.\r\n goto(\r\n resolve('/[id]/[slug]', {\r\n id: String(galleryEvent.id),\r\n slug: String(galleryEvent.slug),\r\n })\r\n );\r\n }\r\n }\r\n\r\n // --- Lifecycle ---\r\n onMount(() => {\r\n isMounted = true;\r\n // An explicit prop password wins (the embed host supplied it); otherwise\r\n // replay this tab's stored unlock. The stored entry is keyed to the\r\n // collection id alone, so unlocking a collection still does NOT authenticate\r\n // the events inside it — the per-event gate runs on its own on the event page.\r\n const sessionPwd = password\r\n ? undefined\r\n : getAuthedCollectionPassword(collectionId);\r\n loadCollection(password ?? sessionPwd, Boolean(sessionPwd));\r\n });\r\n\r\n onDestroy(() => {\r\n isMounted = false;\r\n });\r\n</script>\r\n\r\n<!-- @pageloader-escape: 4-state gate (loading / private-password-card / error /\r\n content) — PageLoader models only loading/error/children, so it can't own the\r\n password-required branch that sits as a sibling here. -->\r\n{#if isLoading}\r\n <div\r\n class=\"flex items-center justify-center py-12 text-center loading-container\"\r\n >\r\n <p>{labels.loadingCollection || 'Loading collection...'}</p>\r\n </div>\r\n{:else if passwordRequired}\r\n <div\r\n class=\"flex flex-col items-center justify-center min-h-[50vh] text-center\"\r\n >\r\n <div class=\"password-card rounded-lg p-8 max-w-sm w-full\">\r\n <h2 class=\"password-title type-heading mb-2\">\r\n {labels.collectionPrivateTitle || 'This collection is private'}\r\n </h2>\r\n <p class=\"password-description type-body mb-6\">\r\n {labels.collectionPrivateDescription ||\r\n 'Please enter the password to view this collection'}\r\n </p>\r\n <form onsubmit={handlePasswordSubmit} class=\"flex flex-col gap-3\">\r\n <PasswordInput\r\n bind:value={passwordInput}\r\n placeholder={labels.enterPassword || 'Enter password'}\r\n error={passwordError\r\n ? labels.incorrectPassword || 'Incorrect password. Please try again'\r\n : ''}\r\n />\r\n <Button variant=\"default\" type=\"submit\">\r\n {labels.viewCollection || 'View collection'}\r\n </Button>\r\n </form>\r\n </div>\r\n </div>\r\n{:else if error}\r\n <div\r\n class=\"flex flex-col items-center justify-center min-h-[50vh] text-center\"\r\n >\r\n <p class=\"error-text\">{labels.errorPrefix || 'Error:'} {error}</p>\r\n </div>\r\n{:else if eventData}\r\n <EventExperience\r\n event={eventData}\r\n onCollectionEventClick={handleCollectionEventClick}\r\n {labels}\r\n {locale}\r\n />\r\n{/if}\r\n\r\n<style>\r\n .loading-container {\r\n color: hsl(var(--text-secondary, 215 16% 47%));\r\n }\r\n\r\n .error-text {\r\n color: hsl(var(--status-sold-out, 0 72% 51%));\r\n }\r\n\r\n .password-card {\r\n background: hsl(var(--surface-primary, 0 0% 100%));\r\n box-shadow: 0 2px 10px color-mix(in srgb, rgb(0 0 0) 10%, transparent);\r\n }\r\n\r\n .password-title {\r\n color: hsl(var(--text-primary, 0 0% 10%));\r\n }\r\n\r\n .password-description {\r\n color: hsl(var(--text-secondary, 0 0% 45%));\r\n }\r\n</style>\r\n"],"names":["createLogger","$","$$props","onNavigateToEvent","password","labels","defaultLabels","locale","collection","isLoading","error","isMounted","passwordRequired","passwordInput","passwordError","eventData","transformCollectionData","latestLoad","AUTHED_COLLECTIONS_STORAGE_KEY","readAuthedCollections","parsed","getAuthedCollectionPassword","colId","c","setAuthedCollectionPassword","pwd","authedCollections","clearAuthedCollection","remaining","loadCollection","fromSession","loadId","data","fetchPublicCollection","err","msg","handlePasswordSubmit","e","handleCollectionEventClick","galleryEvent","goto","resolve","onMount","sessionPwd","onDestroy","div","root","p","div_1","root_1","div_2","h2","p_1","form","PasswordInput","node_1","$$value","Button","node_2","div_3","root_2","p_2","text_4","EventExperience","$$anchor","$$render","consequent","consequent_1","consequent_3"],"mappings":"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"}
1
+ {"version":3,"file":"CollectionView-Bq8xpn6T.js","sources":["../src/components/Views/CollectionView.svelte"],"sourcesContent":["<!-- @route-escape: widget-intentional. -->\r\n<script lang=\"ts\">\r\n import { defaultLabels } from '$lib/i18n/defaultLabels.js';\r\n import { onMount, onDestroy } from 'svelte';\r\n import { goto } from '$app/navigation';\r\n import { resolve } from '$app/paths';\r\n import EventExperience from '$lib/public-calendar-flow/Event.svelte';\r\n import { transformCollectionData } from '$lib/public-calendar-flow/transform';\r\n import { fetchPublicCollection } from '$lib/api/events';\r\n import type { PublicCollectionData } from '$lib/api/types';\r\n import {\r\n Button,\r\n createLogger,\r\n PasswordInput,\r\n } from '@getmicdrop/svelte-components';\r\n\r\n const _logger = createLogger('CollectionView');\r\n\r\n // --- Props (matches old CollectionView external interface) ---\r\n interface Props {\r\n collectionId: string | number;\r\n organizationId?: string;\r\n onNavigateToEvent?: (_id: number, _slug: string) => void;\r\n password?: string;\r\n displayMode?: string;\r\n showViewSwitcher?: boolean;\r\n labels?: Record<string, string>;\r\n /** BCP-47 locale tag (e.g. 'es', 'es-MX'). Undefined → browser locale → en. */\r\n locale?: string;\r\n }\r\n\r\n let {\r\n collectionId,\r\n organizationId: _organizationId = '',\r\n onNavigateToEvent = undefined,\r\n password = undefined,\r\n displayMode: _displayMode = 'gallery',\r\n showViewSwitcher: _showViewSwitcher = true,\r\n labels = defaultLabels,\r\n locale = undefined,\r\n }: Props = $props();\r\n\r\n // --- State ---\r\n let collection = $state<PublicCollectionData | null>(null);\r\n let isLoading = $state(true);\r\n let error = $state<string | null>(null);\r\n let isMounted = $state(false);\r\n let passwordRequired = $state(false);\r\n let passwordInput = $state('');\r\n let passwordError = $state(false);\r\n\r\n // --- Derived ---\r\n let eventData = $derived(\r\n collection ? transformCollectionData(collection) : null\r\n );\r\n\r\n // Monotonic id for collection loads. loadCollection runs on mount AND on each\r\n // password submit; a slower EARLIER request resolving last would otherwise\r\n // clobber the latest attempt (isMounted only covers unmount, not overlap).\r\n let latestLoad = 0;\r\n\r\n // R-STORAGE-02 namespaced key (`micdrop:<feature>:<detail>`) — mirrors\r\n // EventPage's `micdrop:authedEvents:list` so the two public password gates\r\n // behave the same way: an unlock is sticky for the tab session instead of\r\n // re-prompting on every refresh.\r\n //\r\n // Events can store the id alone because their flag only suppresses a modal.\r\n // The public collection payload is served ONLY for a matching `?password=`\r\n // query (auth `isCollectionPasswordSatisfied` — there is no unlock cookie),\r\n // so the entry has to carry the password in order to replay it. The server\r\n // stays the authority: a stored password that no longer matches comes back\r\n // as `passwordRequired` and we re-prompt, so the flag can never reveal gated\r\n // content on its own. The value is a shared per-collection gate password,\r\n // not a visitor credential, and dies with the tab.\r\n const AUTHED_COLLECTIONS_STORAGE_KEY = 'micdrop:authedCollections:list';\r\n\r\n interface AuthedCollection {\r\n id: string;\r\n password: string;\r\n }\r\n\r\n function readAuthedCollections(): AuthedCollection[] {\r\n if (typeof window === 'undefined') return [];\r\n try {\r\n const parsed = JSON.parse(\r\n sessionStorage.getItem(AUTHED_COLLECTIONS_STORAGE_KEY) || '[]'\r\n ); // @storage-escape: authedCollections session-auth state (intentional raw sessionStorage)\r\n // A foreign/corrupt value under our key must degrade to \"locked\" rather\r\n // than throw and take the whole collection load down with it.\r\n return Array.isArray(parsed) ? parsed : [];\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n function getAuthedCollectionPassword(\r\n colId: string | number\r\n ): string | undefined {\r\n const entry = readAuthedCollections().find((c) => c?.id === String(colId));\r\n return entry?.password || undefined;\r\n }\r\n\r\n function setAuthedCollectionPassword(\r\n colId: string | number,\r\n pwd?: string\r\n ): void {\r\n if (typeof window === 'undefined' || !pwd) return;\r\n // Rewrite rather than push-if-absent so a rotated password replaces the\r\n // stale entry for this collection instead of being shadowed by it.\r\n const authedCollections = readAuthedCollections().filter(\r\n (c) => c?.id !== String(colId)\r\n );\r\n authedCollections.push({ id: String(colId), password: pwd });\r\n sessionStorage.setItem(\r\n AUTHED_COLLECTIONS_STORAGE_KEY,\r\n JSON.stringify(authedCollections)\r\n ); // @storage-escape: authedCollections session-auth state (intentional raw sessionStorage)\r\n }\r\n\r\n function clearAuthedCollection(colId: string | number): void {\r\n if (typeof window === 'undefined') return;\r\n const remaining = readAuthedCollections().filter(\r\n (c) => c?.id !== String(colId)\r\n );\r\n sessionStorage.setItem(\r\n AUTHED_COLLECTIONS_STORAGE_KEY,\r\n JSON.stringify(remaining)\r\n ); // @storage-escape: authedCollections session-auth state (intentional raw sessionStorage)\r\n }\r\n\r\n // --- Load collection data ---\r\n // `fromSession` marks a password replayed from sessionStorage rather than\r\n // typed just now — it must be dropped (not blamed on the visitor) if the\r\n // server no longer accepts it.\r\n async function loadCollection(\r\n pwd?: string,\r\n fromSession = false\r\n ): Promise<void> {\r\n if (!isMounted) return;\r\n const loadId = ++latestLoad;\r\n if (!collectionId) {\r\n error = labels.noCollectionIdProvided || 'No collection ID provided';\r\n isLoading = false;\r\n return;\r\n }\r\n\r\n isLoading = true;\r\n error = null;\r\n passwordError = false;\r\n\r\n try {\r\n const data = await fetchPublicCollection(collectionId, pwd);\r\n // A newer load superseded us — discard this stale response.\r\n if (!isMounted || loadId !== latestLoad) return;\r\n\r\n if (data) {\r\n if (data.passwordRequired || data.error?.code === 'PASSWORD_REQUIRED') {\r\n passwordRequired = true;\r\n if (fromSession) clearAuthedCollection(collectionId);\r\n isLoading = false;\r\n return;\r\n }\r\n collection = data;\r\n passwordRequired = false;\r\n // Remember the accepted password for this tab so a refresh re-opens the\r\n // collection instead of re-prompting. No-op when the collection isn't\r\n // protected (pwd undefined).\r\n setAuthedCollectionPassword(collectionId, pwd);\r\n } else {\r\n if (pwd) {\r\n passwordRequired = true;\r\n if (fromSession) {\r\n clearAuthedCollection(collectionId);\r\n } else {\r\n passwordError = true;\r\n }\r\n isLoading = false;\r\n return;\r\n }\r\n error = labels.failedToLoadCollection || 'Failed to load collection';\r\n }\r\n } catch (err: any) {\r\n // A superseded load failing must not overwrite the latest load's state\r\n // (e.g. a slow wrong-password 401 re-locking an already-loaded collection).\r\n if (isMounted && loadId === latestLoad) {\r\n const msg = err.message || '';\r\n if (\r\n msg.includes('401') ||\r\n msg.includes('403') ||\r\n msg.includes('password')\r\n ) {\r\n passwordRequired = true;\r\n if (fromSession) clearAuthedCollection(collectionId);\r\n } else {\r\n error =\r\n msg || labels.failedToLoadCollection || 'Failed to load collection';\r\n }\r\n }\r\n } finally {\r\n // Only the latest load may clear the spinner — a stale load settling\r\n // first must not reveal content while the newest load is still pending.\r\n if (isMounted && loadId === latestLoad) {\r\n isLoading = false;\r\n }\r\n }\r\n }\r\n\r\n function handlePasswordSubmit(e: Event): void {\r\n e.preventDefault();\r\n if (!passwordInput.trim()) return;\r\n loadCollection(passwordInput);\r\n }\r\n\r\n function handleCollectionEventClick(galleryEvent: {\r\n id?: number | string;\r\n slug: string;\r\n }): void {\r\n if (onNavigateToEvent && galleryEvent.id) {\r\n onNavigateToEvent(Number(galleryEvent.id), galleryEvent.slug);\r\n } else {\r\n // @url-builder-escape: widget-internal route; SC's url-builders cover /a admin paths, not embedded calendar navigation.\r\n goto(\r\n resolve('/[id]/[slug]', {\r\n id: String(galleryEvent.id),\r\n slug: String(galleryEvent.slug),\r\n })\r\n );\r\n }\r\n }\r\n\r\n // --- Lifecycle ---\r\n onMount(() => {\r\n isMounted = true;\r\n // An explicit prop password wins (the embed host supplied it); otherwise\r\n // replay this tab's stored unlock. The stored entry is keyed to the\r\n // collection id alone, so unlocking a collection still does NOT authenticate\r\n // the events inside it — the per-event gate runs on its own on the event page.\r\n const sessionPwd = password\r\n ? undefined\r\n : getAuthedCollectionPassword(collectionId);\r\n loadCollection(password ?? sessionPwd, Boolean(sessionPwd));\r\n });\r\n\r\n onDestroy(() => {\r\n isMounted = false;\r\n });\r\n</script>\r\n\r\n<!-- @pageloader-escape: 4-state gate (loading / private-password-card / error /\r\n content) — PageLoader models only loading/error/children, so it can't own the\r\n password-required branch that sits as a sibling here. -->\r\n{#if isLoading}\r\n <div\r\n class=\"flex items-center justify-center py-12 text-center loading-container\"\r\n >\r\n <p>{labels.loadingCollection || 'Loading collection...'}</p>\r\n </div>\r\n{:else if passwordRequired}\r\n <div\r\n class=\"flex flex-col items-center justify-center min-h-[50vh] text-center\"\r\n >\r\n <div class=\"password-card rounded-lg p-8 max-w-sm w-full\">\r\n <h2 class=\"password-title type-heading mb-2\">\r\n {labels.collectionPrivateTitle || 'This collection is private'}\r\n </h2>\r\n <p class=\"password-description type-body mb-6\">\r\n {labels.collectionPrivateDescription ||\r\n 'Please enter the password to view this collection'}\r\n </p>\r\n <form onsubmit={handlePasswordSubmit} class=\"flex flex-col gap-3\">\r\n <PasswordInput\r\n bind:value={passwordInput}\r\n placeholder={labels.enterPassword || 'Enter password'}\r\n error={passwordError\r\n ? labels.incorrectPassword || 'Incorrect password. Please try again'\r\n : ''}\r\n />\r\n <Button variant=\"default\" type=\"submit\">\r\n {labels.viewCollection || 'View collection'}\r\n </Button>\r\n </form>\r\n </div>\r\n </div>\r\n{:else if error}\r\n <div\r\n class=\"flex flex-col items-center justify-center min-h-[50vh] text-center\"\r\n >\r\n <p class=\"error-text\">{labels.errorPrefix || 'Error:'} {error}</p>\r\n </div>\r\n{:else if eventData}\r\n <EventExperience\r\n event={eventData}\r\n onCollectionEventClick={handleCollectionEventClick}\r\n {labels}\r\n {locale}\r\n />\r\n{/if}\r\n\r\n<style>\r\n .loading-container {\r\n color: hsl(var(--text-secondary, 215 16% 47%));\r\n }\r\n\r\n .error-text {\r\n color: hsl(var(--status-sold-out, 0 72% 51%));\r\n }\r\n\r\n .password-card {\r\n background: hsl(var(--surface-primary, 0 0% 100%));\r\n box-shadow: 0 2px 10px color-mix(in srgb, rgb(0 0 0) 10%, transparent);\r\n }\r\n\r\n .password-title {\r\n color: hsl(var(--text-primary, 0 0% 10%));\r\n }\r\n\r\n .password-description {\r\n color: hsl(var(--text-secondary, 0 0% 45%));\r\n }\r\n</style>\r\n"],"names":["createLogger","$","$$props","onNavigateToEvent","password","labels","defaultLabels","locale","collection","isLoading","error","isMounted","passwordRequired","passwordInput","passwordError","eventData","transformCollectionData","latestLoad","AUTHED_COLLECTIONS_STORAGE_KEY","readAuthedCollections","parsed","getAuthedCollectionPassword","colId","c","setAuthedCollectionPassword","pwd","authedCollections","clearAuthedCollection","remaining","loadCollection","fromSession","loadId","data","fetchPublicCollection","err","msg","handlePasswordSubmit","e","handleCollectionEventClick","galleryEvent","goto","resolve","onMount","sessionPwd","onDestroy","div","root","p","div_1","root_1","div_2","h2","p_1","form","PasswordInput","node_1","$$value","Button","node_2","div_3","root_2","p_2","text_4","EventExperience","$$anchor","$$render","consequent","consequent_1","consequent_3"],"mappings":";;;;;;;;;kBACA;iBAekBA,EAAa,gBAAgB,GAiBZC,EAAA,KAAAC,GAAA,kBAAA,GAAG,EAAE;AACpC,MAAAC,sCAAoB,MAAS,GAC7BC,6BAAW,MAAS;8BACQ,SAAS,oCACC,EAAI;AAC1C,MAAAC,2BAASC,CAAa,GACtBC,2BAAS,MAAS,GAIhBC,IAAaP,EAAA,MAAoC,IAAI,GACrDQ,IAAYR,EAAA,MAAO,EAAI,GACvBS,IAAQT,EAAA,MAAsB,IAAI,GAClCU,IAAYV,EAAA,MAAO,EAAK,GACxBW,IAAmBX,EAAA,MAAO,EAAK,GAC/BY,IAAgBZ,EAAA,MAAO,EAAE,GACzBa,IAAgBb,EAAA,MAAO,EAAK,GAG5Bc,0BACFP,CAAU,IAAGQ,EAAuBf,EAAA,IAACO,CAAU,KAAI,IAAI,GAMrDS,IAAa;AAejB,QAAMC,IAAiC;AAOvC,WAASC,IAA4C;AACnD,QAAE,OAAS,SAAW,IAAa,QAAM,CAAA;AACzC,QAAI;AACF,YAAMC,IAAS,KAAK,MAClB,eAAe,QAAQF,CAA8B,KAAK,IAAI;AAIhE,aAAO,MAAM,QAAQE,CAAM,IAAIA,IAAM,CAAA;AAAA,IACvC,QAAQ;AACN,aAAM,CAAA;AAAA,IACR;AAAA,EACF;AAEA,WAASC,EACPC,GACoB;AAEpB,WADcH,EAAqB,EAAG,KAAI,CAAEI,MAAMA,GAAG,OAAO,OAAOD,CAAK,CAAA,GAC1D,YAAY;AAAA,EAC5B;AAEA,WAASE,EACPF,GACAG,GACM;AACN,eAAW,SAAW,OAAW,CAAKA,EAAK;AAG3C,UAAMC,IAAoBP,EAAqB,EAAG,OAAM,CACrDI,MAAMA,GAAG,OAAO,OAAOD,CAAK,CAAA;AAE/B,IAAAI,EAAkB,KAAI,EAAG,IAAI,OAAOJ,CAAK,GAAG,UAAUG,GAAG,GACzD,eAAe,QACbP,GACA,KAAK,UAAUQ,CAAiB,CAAA;AAAA,EAEpC;AAEA,WAASC,EAAsBL,GAA8B;AAC3D,QAAE,OAAS,SAAW,IAAa;AACnC,UAAMM,IAAYT,EAAqB,EAAG,OAAM,CAC7CI,MAAMA,GAAG,OAAO,OAAOD,CAAK,CAAA;AAE/B,mBAAe,QACbJ,GACA,KAAK,UAAUU,CAAS,CAAA;AAAA,EAE5B;AAMA,iBAAeC,EACbJ,GACAK,IAAc,IACC;AACf,QAAE,CAAA7B,EAAA,IAAGU,CAAS,EAAE;AAChB,UAAMoB,MAAWd;AACjB,yBAAmB;AACjB,MAAAhB,EAAA,IAAAS,GAAQL,EAAM,EAAC,0BAA0B,6BAA2B,EAAA,GACpEJ,EAAA,IAAAQ,GAAY,EAAK;AACjB;AAAA,IACF;AAEA,IAAAR,EAAA,IAAAQ,GAAY,EAAI,GAChBR,EAAA,IAAAS,GAAQ,IAAI,GACZT,EAAA,IAAAa,GAAgB,EAAK;AAErB,QAAI;AACF,YAAMkB,IAAO,MAAMC,kBAAoCR,CAAG;AAE1D,iBAAKd,CAAS,KAAIoB,MAAWd,EAAY;AAEzC,UAAIe,GAAM;AACR,YAAIA,EAAK,oBAAoBA,EAAK,OAAO,SAAS,qBAAqB;AACrE,UAAA/B,EAAA,IAAAW,GAAmB,EAAI,GACnBkB,KAAaH,EAAqBzB,EAAA,YAAA,GACtCD,EAAA,IAAAQ,GAAY,EAAK;AACjB;AAAA,QACF;AACA,QAAAR,EAAA,IAAAO,GAAawB,GAAI,EAAA,GACjB/B,EAAA,IAAAW,GAAmB,EAAK,GAIxBY,kBAA0CC,CAAG;AAAA,MAC/C,OAAO;AACL,YAAIA,GAAK;AACP,UAAAxB,EAAA,IAAAW,GAAmB,EAAI,GACnBkB,IACFH,EAAqBzB,EAAA,YAAA,IAErBD,EAAA,IAAAa,GAAgB,EAAI,GAEtBb,EAAA,IAAAQ,GAAY,EAAK;AACjB;AAAA,QACF;AACA,QAAAR,EAAA,IAAAS,GAAQL,EAAM,EAAC,0BAA0B,6BAA2B,EAAA;AAAA,MACtE;AAAA,IACF,SAAS6B,GAAU;AAGjB,gBAAIvB,CAAS,KAAIoB,MAAWd,GAAY;AACtC,cAAMkB,IAAMD,EAAI,WAAW;AAC3B,QACEC,EAAI,SAAS,KAAK,KAClBA,EAAI,SAAS,KAAK,KAClBA,EAAI,SAAS,UAAU,KAEvBlC,EAAA,IAAAW,GAAmB,EAAI,GACnBkB,KAAaH,EAAqBzB,EAAA,YAAA,KAEtCD,EAAA,IAAAS,GACEyB,KAAO9B,EAAM,EAAC,0BAA0B,6BAA2B,EAAA;AAAA,MAEzE;AAAA,IACF,UAAC;AAGC,YAAIM,CAAS,KAAIoB,MAAWd,KAC1BhB,EAAA,IAAAQ,GAAY,EAAK;AAAA,IAErB;AAAA,EACF;AAEA,WAAS2B,EAAqBC,GAAgB;AAE5C,IADAA,EAAE,eAAc,GACdpC,EAAA,IAAGY,CAAa,EAAC,KAAI,KACvBgB,QAAehB,CAAa,CAAA;AAAA,EAC9B;AAEA,WAASyB,EAA2BC,GAG3B;AACP,IAAIpC,EAAiB,KAAIoC,EAAa,KACpCpC,EAAiB,EAAC,OAAOoC,EAAa,EAAE,GAAGA,EAAa,IAAI,IAG5DC,EACEC,EAAQ,gBAAc,EACpB,IAAI,OAAOF,EAAa,EAAE,GAC1B,MAAM,OAAOA,EAAa,IAAI,EAAA,CAAA,CAAA;AAAA,EAItC;AAGA,EAAAG,QAAc;AACZ,IAAAzC,EAAA,IAAAU,GAAY,EAAI;AAKhB,UAAMgC,IAAavC,EAAQ,IACvB,SACAiB,EAA2BnB,EAAA,YAAA;AAC/B,IAAA2B,EAAezB,EAAQ,KAAIuC,GAAY,EAAQA,CAAU;AAAA,EAC3D,CAAC,GAEDC,QAAgB;AACd,IAAA3C,EAAA,IAAAU,GAAY,EAAK;AAAA,EACnB,CAAC;;;;UAOAkC,IAAGC,GAAA,GAGDC,YAHFF,CAAG,eAGDE,GAAC,EAAA;cAADA,CAAC,WAHHF,CAAG,yCAGExC,EAAM,EAAC,qBAAqB,uBAAuB,CAAA,eAHxDwC,CAAG;AAAA;UAMHG,IAAGC,GAAA,GAGDC,YAHFF,CAAG,GAICG,YADFD,CAAG,eACDC,GAAE,EAAA;cAAFA,CAAE;AAGF,UAAAC,cAHAD,GAAE,CAAA,eAGFC,GAAC,EAAA;cAADA,CAAC;AAID,UAAAC,cAJAD,GAAC,CAAA,eAIDC,CAAI;;gCAGYhD,EAAM,EAAC,iBAAiB,gBAAgB,6BAC9CS,CAAa,IAChBT,EAAM,EAAC,qBAAqB,yCAC5B,EAAE;AALP,QAAAiD,EAAaC,GAAA;AAAA;;;;;;cACZ,QAAU;yBAAE1C,CAAa;AAAA;cAAzB,MAAU2C,GAAA;kBAAE3C,GAAa2C,GAAA,EAAA;AAAA;;;;AAM1B,MAAAC,EAAMC,GAAA;AAAA;;;;;gDACJrD,EAAM,EAAC,kBAAkB,iBAAiB,CAAA;;;kBAT9CgD,CAAI,WARNH,CAAG,WAHLF,CAAG;sBAKG3C,EAAM,EAAC,0BAA0B,4BAA4B,iBAG7DA,EAAM,EAAC,gCACN,mDAAmD;AAAA,UAEtDJ,EAAA,MAAA,UAAAoD,GAAejB,CAAoB,eAXvCY,CAAG;AAAA;UA0BHW,IAAGC,GAAA,GAGDC,YAHFF,CAAG,eAGDE,CAAC;cAADA,CAAC,WAHHF,CAAG,GAGqB1D,EAAA,gBAAA,MAAAA,EAAA,SAAA6D,GAAA,IAAAzD,IAAO,eAAe,yBAAWK,CAAK,KAAA,EAAA,EAAA,CAAA,eAH9DiD,CAAG;AAAA;AAMHI,MAAAA,EAAeC,GAAA;AAAA;uBACPjD,CAAS;AAAA;gCACQuB;AAAA;iBACvBjC,EAAM;AAAA;;iBACNE,EAAM;AAAA;;;;AA3CN,MAAAN,EAAA,IAAAQ,CAAS,IAAAwD,EAAAC,CAAA,IAAAjE,EAAA,IAMJW,CAAgB,IAAAqD,EAAAE,GAAA,CAAA,IAAAlE,EAAA,IA0BhBS,CAAK,oBAMLK,CAAS,KAAAkD,EAAAG,GAAA,CAAA;AAAA;;;AA3CX;"}
@@ -1,20 +1,20 @@
1
1
  import "svelte/internal/disclose-version";
2
2
  import * as e from "svelte/internal/client";
3
- import { a as kt, b as yt, D as wt, d as ir, e as nr, O as mt, g as Sr, f as Je } from "./index-C70I4S7a.js";
4
- import { aY as Tt, Z as Er, m as sr, t as Ge, H as Ir, D as Dr, E as zr, a6 as je, P as Ot, aI as Lr, aZ as Or, Q as Rr, R as qr, u as lr, a1 as or, a0 as Ye, j as ve, a_ as dr, aA as Rt, az as Nr, a3 as At, ak as qt, am as Me, C as Vr, ax as Fr, aq as Wr, aS as Ze, I as cr, a$ as fr, b0 as ht, a2 as _t, ag as rt, b1 as ur, b2 as Hr, b3 as Ur, b4 as Br, b5 as Mr, b6 as jr } from "./VenueCalendar-DcX-R9GN.js";
5
- import { b as Gr } from "./serverTotals-BGK9EZcX.js";
6
- import { I as Xr } from "./Image-BrI6RXFh.js";
3
+ import { a as kt, b as yt, D as wt, d as ir, e as nr, O as mt, g as Sr, f as Je } from "./index-B5pEXtmb.js";
4
+ import { aY as Tt, Z as Er, m as sr, t as Ge, H as Ir, D as Dr, E as zr, a6 as je, P as Ot, aI as Lr, aZ as Or, Q as Rr, R as qr, u as lr, a1 as or, a0 as Ye, j as ve, a_ as dr, aA as Rt, az as Nr, a3 as At, ak as qt, am as Me, C as Vr, ax as Fr, aq as Wr, aS as Ze, I as cr, a$ as fr, b0 as ht, a2 as _t, ag as rt, b1 as ur, b2 as Hr, b3 as Ur, b4 as Br, b5 as Mr, b6 as jr } from "./VenueCalendar-Ys8-209-.js";
5
+ import { b as Gr } from "./serverTotals-Bx9REXQW.js";
6
+ import { I as Xr } from "./Image-BktsxRho.js";
7
7
  import { createContext as vr, onMount as Qr, onDestroy as Jr } from "svelte";
8
- import { c as Zr, E as Kr } from "./transform-BaKV88mB.js";
9
- import { S as Ct, a as Yr } from "./ScarcityBadge-Dwah85WZ.js";
10
- import { H as Le, C as Ke } from "./Heading-B9gB4-Za.js";
11
- import { C as gr } from "./CalendarIcon-BAz0d_Pj.js";
12
- import { L as $r } from "./copyToClipboard-iOR2YHXj.js";
13
- import { C as st } from "./ClockIcon-CRdviY8o.js";
14
- import { E as ea, a as ta, U as ra, A as aa } from "./allowlist-BB9UJJQv.js";
8
+ import { c as Zr, E as Kr } from "./transform-DiYvD4iM.js";
9
+ import { S as Ct, a as Yr } from "./ScarcityBadge-5RMumV4l.js";
10
+ import { H as Le, C as Ke } from "./Heading-D81DQHoP.js";
11
+ import { C as gr } from "./CalendarIcon-BXHIKvAr.js";
12
+ import { L as $r } from "./copyToClipboard-Ct55SL-r.js";
13
+ import { C as st } from "./ClockIcon-CxfsowHx.js";
14
+ import { E as ea, a as ta, U as ra, A as aa } from "./allowlist-BVbx-J6B.js";
15
15
  import { d as $e } from "./labels-BhvPsg7u.js";
16
16
  import { T as xe } from "./Text-DacTw_9X.js";
17
- import { C as ia, A as na } from "./WarningCircleIcon-CRvgz4mx.js";
17
+ import { C as ia, A as na } from "./WarningCircleIcon-eOM57ZiU.js";
18
18
  import { SvelteSet as sa, SvelteMap as la } from "svelte/reactivity";
19
19
  const [oa, da] = vr(), [pr, ca] = vr();
20
20
  var fa = e.from_html("<div><!></div>");
@@ -3320,4 +3320,4 @@ function Tn(s, r) {
3320
3320
  export {
3321
3321
  Tn as E
3322
3322
  };
3323
- //# sourceMappingURL=Event-DlxxdMrP.js.map
3323
+ //# sourceMappingURL=Event-DJusXK29.js.map