@getmicdrop/venue-calendar 4.0.95 → 4.0.96

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 (63) hide show
  1. package/dist/{CartView-Cq0DU1Cy.js → CartView-DC-YjxhJ.js} +721 -726
  2. package/dist/CartView-DC-YjxhJ.js.map +1 -0
  3. package/dist/{Checkout-BV5f49vY.js → Checkout-DFEzsNwm.js} +8 -4
  4. package/dist/Checkout-DFEzsNwm.js.map +1 -0
  5. package/dist/{Checkout-BA43iGDc.js → Checkout-SGb68I5A.js} +271 -259
  6. package/dist/Checkout-SGb68I5A.js.map +1 -0
  7. package/dist/{CheckoutTimer-KyKyInco.js → CheckoutTimer-BUlr4C7O.js} +5 -5
  8. package/dist/{CheckoutTimer-KyKyInco.js.map → CheckoutTimer-BUlr4C7O.js.map} +1 -1
  9. package/dist/{ClockIcon-BD24dBol.js → ClockIcon-CI96OiJj.js} +2 -2
  10. package/dist/{ClockIcon-BD24dBol.js.map → ClockIcon-CI96OiJj.js.map} +1 -1
  11. package/dist/{CollectionView-CKIxku9-.js → CollectionView-kDS8R_bu.js} +35 -35
  12. package/dist/CollectionView-kDS8R_bu.js.map +1 -0
  13. package/dist/{Event-BPdt1Io5.js → Event-DUViqNEG.js} +497 -497
  14. package/dist/{Event-BPdt1Io5.js.map → Event-DUViqNEG.js.map} +1 -1
  15. package/dist/{EventPage-DRnTMGTK.js → EventPage-CbYWOehC.js} +6 -6
  16. package/dist/{EventPage-DRnTMGTK.js.map → EventPage-CbYWOehC.js.map} +1 -1
  17. package/dist/{Heading-pQuVpBrL.js → Heading-DtOhaDMn.js} +10 -10
  18. package/dist/{Heading-pQuVpBrL.js.map → Heading-DtOhaDMn.js.map} +1 -1
  19. package/dist/{ScarcityBadge-DoYdujCs.js → ScarcityBadge-CBKc57di.js} +16 -16
  20. package/dist/{ScarcityBadge-DoYdujCs.js.map → ScarcityBadge-CBKc57di.js.map} +1 -1
  21. package/dist/{SeriesPage-vw7Hva9F.js → SeriesPage-BPDSiLWH.js} +5 -5
  22. package/dist/{SeriesPage-vw7Hva9F.js.map → SeriesPage-BPDSiLWH.js.map} +1 -1
  23. package/dist/{Spinner-BfFZMaDP.js → Spinner-BUWcjtbI.js} +2 -2
  24. package/dist/{Spinner-BfFZMaDP.js.map → Spinner-BUWcjtbI.js.map} +1 -1
  25. package/dist/{Success-Cjj6CC4w.js → Success-6kCesfnC.js} +15 -9
  26. package/dist/Success-6kCesfnC.js.map +1 -0
  27. package/dist/{Text-CT79Zi5n.js → Text-B5MZ6L1O.js} +2 -2
  28. package/dist/{Text-CT79Zi5n.js.map → Text-B5MZ6L1O.js.map} +1 -1
  29. package/dist/{VenueCalendar-Cz7_VBC6.js → VenueCalendar-BRTDpyWV.js} +1504 -1498
  30. package/dist/VenueCalendar-BRTDpyWV.js.map +1 -0
  31. package/dist/{ViewTicketsEmbed-BvCfoKY3.js → ViewTicketsEmbed-BgIXGtz6.js} +5 -5
  32. package/dist/ViewTicketsEmbed-BgIXGtz6.js.map +1 -0
  33. package/dist/api/api/transformers/event.d.ts +6 -4
  34. package/dist/api/api.cjs +1 -1
  35. package/dist/api/api.cjs.map +1 -1
  36. package/dist/api/api.mjs +204 -207
  37. package/dist/api/api.mjs.map +1 -1
  38. package/dist/{data-toggle-store.svelte-BHwbM34q.js → data-toggle-store.svelte-D3w7V3t9.js} +2 -2
  39. package/dist/data-toggle-store.svelte-D3w7V3t9.js.map +1 -0
  40. package/dist/{labels-_x9WkVuZ.js → labels-wyDolzF_.js} +8 -8
  41. package/dist/labels-wyDolzF_.js.map +1 -0
  42. package/dist/{modalManager.svelte-Csm1WlvP.js → modalManager.svelte-DBBSS3Zi.js} +2 -2
  43. package/dist/{modalManager.svelte-Csm1WlvP.js.map → modalManager.svelte-DBBSS3Zi.js.map} +1 -1
  44. package/dist/seo/seo.cjs.map +1 -1
  45. package/dist/seo/seo.mjs.map +1 -1
  46. package/dist/{transform-WRPgSKLN.js → transform-Bcl3riJb.js} +2 -2
  47. package/dist/{transform-WRPgSKLN.js.map → transform-Bcl3riJb.js.map} +1 -1
  48. package/dist/venue-calendar.css +1 -1
  49. package/dist/venue-calendar.es.js +4 -4
  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 +33 -33
  53. package/dist/venue-calendar.umd.js.map +1 -1
  54. package/package.json +5 -2
  55. package/dist/CartView-Cq0DU1Cy.js.map +0 -1
  56. package/dist/Checkout-BA43iGDc.js.map +0 -1
  57. package/dist/Checkout-BV5f49vY.js.map +0 -1
  58. package/dist/CollectionView-CKIxku9-.js.map +0 -1
  59. package/dist/Success-Cjj6CC4w.js.map +0 -1
  60. package/dist/VenueCalendar-Cz7_VBC6.js.map +0 -1
  61. package/dist/ViewTicketsEmbed-BvCfoKY3.js.map +0 -1
  62. package/dist/data-toggle-store.svelte-BHwbM34q.js.map +0 -1
  63. package/dist/labels-_x9WkVuZ.js.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import "svelte/internal/disclose-version";
2
2
  import * as e from "svelte/internal/client";
3
3
  import { untrack as N, onMount as M, onDestroy as O } from "svelte";
4
- import { g as j } from "./ScarcityBadge-DoYdujCs.js";
5
- import { E as B } from "./Event-BPdt1Io5.js";
6
- import { b as A } from "./transform-WRPgSKLN.js";
7
- import { s as G, ax as Q, aa as U, l as H, ay as J } from "./VenueCalendar-Cz7_VBC6.js";
4
+ import { g as j } from "./ScarcityBadge-CBKc57di.js";
5
+ import { E as B } from "./Event-DUViqNEG.js";
6
+ import { b as A } from "./transform-Bcl3riJb.js";
7
+ import { s as G, ay as Q, aa as U, l as H, az as J } from "./VenueCalendar-BRTDpyWV.js";
8
8
  import { cubicOut as K } from "svelte/easing";
9
9
  var X = e.from_html("<div></div>"), Y = e.from_html('<div class="pt-2 space-y-2"><div class="flex gap-1.5"></div> <!></div>');
10
10
  function Z(I, t) {
@@ -15,16 +15,16 @@ function Z(I, t) {
15
15
  good: "Good",
16
16
  strong: "Strong"
17
17
  };
18
- let u = e.prop(t, "password", 3, ""), i = e.prop(t, "strengthText", 15, ""), m = e.prop(t, "score", 31, () => -1), g = e.prop(t, "textColor", 15, ""), f = e.prop(t, "labels", 19, () => ({})), a = e.derived(() => ({ ..._, ...f() })), d = e.state(""), v, p = e.state(null);
18
+ let u = e.prop(t, "password", 3, ""), i = e.prop(t, "strengthText", 15, ""), w = e.prop(t, "score", 31, () => -1), g = e.prop(t, "textColor", 15, ""), f = e.prop(t, "labels", 19, () => ({})), a = e.derived(() => ({ ..._, ...f() })), d = e.state(""), v, p = e.state(null);
19
19
  const b = Q(() => import("./index-BsWecoW1.js"));
20
- function w() {
20
+ function x() {
21
21
  b().then((r) => {
22
22
  e.set(p, r.passwordStrength, !0);
23
23
  }).catch(() => {
24
24
  });
25
25
  }
26
26
  e.user_effect(() => {
27
- u() && !e.get(p) && w();
27
+ u() && !e.get(p) && x();
28
28
  });
29
29
  let y = e.derived(() => [
30
30
  {
@@ -61,31 +61,31 @@ function Z(I, t) {
61
61
  let L = e.derived(() => e.get(d) && e.get(p) ? e.get(p)(e.get(d), e.get(y)) : null), n = e.derived(() => e.get(d).length > 12 ? 3 : e.get(L)?.id ?? -1);
62
62
  e.user_effect(() => {
63
63
  const r = e.get(n);
64
- N(() => m()) !== r && m(r);
64
+ N(() => w()) !== r && w(r);
65
65
  });
66
66
  let C = e.derived(() => e.get(n) === 0 ? e.get(a).tooWeak : e.get(n) === 1 ? e.get(a).weak : e.get(n) === 2 ? e.get(a).good : e.get(n) === 3 ? e.get(a).strong : ""), q = e.derived(() => e.get(n) < 0 ? "" : e.get(n) <= 1 ? "text-accent-danger" : "text-accent-success");
67
67
  e.user_effect(() => {
68
68
  const r = e.get(C);
69
69
  N(() => i()) !== r && i(r);
70
70
  });
71
- let D = e.derived(() => e.get(n) <= 1 ? "bg-accent-danger" : "bg-accent-success");
71
+ let z = e.derived(() => e.get(n) <= 1 ? "bg-accent-danger" : "bg-accent-success");
72
72
  e.user_effect(() => {
73
73
  const r = e.get(q);
74
74
  N(() => g()) !== r && g(r);
75
75
  });
76
- let k = e.derived(() => e.get(n) === 0 ? 1 : e.get(n) === 1 ? 2 : e.get(n) >= 2 ? 3 : 0);
77
- var T = e.comment(), z = e.first_child(T);
76
+ let D = e.derived(() => e.get(n) === 0 ? 1 : e.get(n) === 1 ? 2 : e.get(n) >= 2 ? 3 : 0);
77
+ var T = e.comment(), k = e.first_child(T);
78
78
  {
79
79
  var l = (r) => {
80
80
  var o = Y(), s = e.child(o);
81
- e.each(s, 20, () => [0, 1, 2], e.index, (x, E) => {
81
+ e.each(s, 20, () => [0, 1, 2], (m) => m, (m, E) => {
82
82
  var c = X();
83
- e.template_effect(() => e.set_class(c, 1, `h-1 flex-1 rounded-full transition-colors duration-300 ${(E < e.get(k) ? e.get(D) : "bg-bg-tertiary") ?? ""}`)), e.append(x, c);
83
+ e.template_effect(() => e.set_class(c, 1, `h-1 flex-1 rounded-full transition-colors duration-300 ${(E < e.get(D) ? e.get(z) : "bg-bg-tertiary") ?? ""}`)), e.append(m, c);
84
84
  }), e.reset(s);
85
85
  var P = e.sibling(s, 2);
86
86
  e.snippet(P, () => t.children ?? e.noop), e.reset(o), e.transition(3, o, () => G, () => ({ duration: 600, easing: K })), e.append(r, o);
87
87
  };
88
- e.if(z, (r) => {
88
+ e.if(k, (r) => {
89
89
  e.get(d).length > 0 && r(l);
90
90
  });
91
91
  }
@@ -95,7 +95,7 @@ var $ = e.from_html("<p> </p>"), ee = e.from_html("<div><!> <!></div>");
95
95
  function te(I, t) {
96
96
  e.push(t, !0);
97
97
  const _ = { passwordStrength: "Password strength:" };
98
- let u = e.prop(t, "value", 15, ""), i = e.prop(t, "label", 3, ""), m = e.prop(t, "placeholder", 3, ""), g = e.prop(t, "name", 3, ""), f = e.prop(t, "id", 3, ""), a = e.prop(t, "required", 3, !1), d = e.prop(t, "disableBuiltInValidation", 3, !1), v = e.prop(t, "disabled", 3, !1), p = e.prop(t, "error", 3, ""), b = e.prop(t, "hint", 3, ""), w = e.prop(t, "showStrength", 3, !1), y = e.prop(t, "size", 3, "md"), L = e.prop(t, "minlength", 3, null), n = e.prop(t, "maxlength", 3, null), C = e.prop(t, "autocomplete", 3, "new-password"), q = e.prop(t, "showPasswordToggle", 3, !0), D = e.prop(t, "class", 3, ""), k = e.prop(t, "labels", 19, () => ({})), T = e.derived(() => ({ ..._, ...k() })), z = e.derived(() => d() ? !1 : a()), l = e.state(-1), r = e.state(""), o = e.state("");
98
+ let u = e.prop(t, "value", 15, ""), i = e.prop(t, "label", 3, ""), w = e.prop(t, "placeholder", 3, ""), g = e.prop(t, "name", 3, ""), f = e.prop(t, "id", 3, ""), a = e.prop(t, "required", 3, !1), d = e.prop(t, "disableBuiltInValidation", 3, !1), v = e.prop(t, "disabled", 3, !1), p = e.prop(t, "error", 3, ""), b = e.prop(t, "hint", 3, ""), x = e.prop(t, "showStrength", 3, !1), y = e.prop(t, "size", 3, "md"), L = e.prop(t, "minlength", 3, null), n = e.prop(t, "maxlength", 3, null), C = e.prop(t, "autocomplete", 3, "new-password"), q = e.prop(t, "showPasswordToggle", 3, !0), z = e.prop(t, "class", 3, ""), D = e.prop(t, "labels", 19, () => ({})), T = e.derived(() => ({ ..._, ...D() })), k = e.derived(() => d() ? !1 : a()), l = e.state(-1), r = e.state(""), o = e.state("");
99
99
  var s = ee(), P = e.child(s);
100
100
  U(P, {
101
101
  type: "password",
@@ -106,13 +106,13 @@ function te(I, t) {
106
106
  return g();
107
107
  },
108
108
  get placeholder() {
109
- return m();
109
+ return w();
110
110
  },
111
111
  get label() {
112
112
  return i();
113
113
  },
114
114
  get required() {
115
- return e.get(z);
115
+ return e.get(k);
116
116
  },
117
117
  get disabled() {
118
118
  return v();
@@ -154,7 +154,7 @@ function te(I, t) {
154
154
  u(c);
155
155
  }
156
156
  });
157
- var x = e.sibling(P, 2);
157
+ var m = e.sibling(P, 2);
158
158
  {
159
159
  var E = (c) => {
160
160
  Z(c, {
@@ -188,21 +188,21 @@ function te(I, t) {
188
188
  $$slots: { default: !0 }
189
189
  });
190
190
  };
191
- e.if(x, (c) => {
192
- w() && u() && c(E);
191
+ e.if(m, (c) => {
192
+ x() && u() && c(E);
193
193
  });
194
194
  }
195
- e.reset(s), e.template_effect(() => e.set_class(s, 1, e.clsx(D()))), e.append(I, s), e.pop();
195
+ e.reset(s), e.template_effect(() => e.set_class(s, 1, e.clsx(z()))), e.append(I, s), e.pop();
196
196
  }
197
197
  var re = e.from_html('<div class="flex items-center justify-center py-12 text-center loading-container svelte-q4dz4y"><p> </p></div>'), le = 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"><!> <button type="submit" class="password-submit px-4 py-2 rounded-lg type-label svelte-q4dz4y"> </button></form></div></div>'), oe = 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>');
198
198
  function ue(I, t) {
199
199
  e.push(t, !0), H("CollectionView"), e.prop(t, "organizationId", 3, "");
200
200
  let _ = e.prop(t, "onNavigateToEvent", 3, void 0), u = e.prop(t, "password", 3, void 0);
201
201
  e.prop(t, "displayMode", 3, "gallery"), e.prop(t, "showViewSwitcher", 3, !0);
202
- let i = e.prop(t, "labels", 19, () => ({})), m = e.state(null), g = e.state(!0), f = e.state(null), a = e.state(!1), d = e.state(!1), v = e.state(""), p = e.state(!1), b = e.derived(() => e.get(m) ? A(e.get(m)) : null), w = 0;
202
+ let i = e.prop(t, "labels", 19, () => ({})), w = e.state(null), g = e.state(!0), f = e.state(null), a = e.state(!1), d = e.state(!1), v = e.state(""), p = e.state(!1), b = e.derived(() => e.get(w) ? A(e.get(w)) : null), x = 0;
203
203
  async function y(l) {
204
204
  if (!e.get(a)) return;
205
- const r = ++w;
205
+ const r = ++x;
206
206
  if (!t.collectionId) {
207
207
  e.set(f, i().noCollectionIdProvided || "No collection ID provided", !0), e.set(g, !1);
208
208
  return;
@@ -210,13 +210,13 @@ function ue(I, t) {
210
210
  e.set(g, !0), e.set(f, null), e.set(p, !1);
211
211
  try {
212
212
  const o = await J(t.collectionId, l);
213
- if (!e.get(a) || r !== w) return;
213
+ if (!e.get(a) || r !== x) return;
214
214
  if (o) {
215
215
  if (o.passwordRequired || o.error?.code === "PASSWORD_REQUIRED") {
216
216
  e.set(d, !0), e.set(g, !1);
217
217
  return;
218
218
  }
219
- e.set(m, o, !0), e.set(d, !1);
219
+ e.set(w, o, !0), e.set(d, !1);
220
220
  } else {
221
221
  if (l) {
222
222
  e.set(d, !0), e.set(p, !0), e.set(g, !1);
@@ -225,12 +225,12 @@ function ue(I, t) {
225
225
  e.set(f, i().failedToLoadCollection || "Failed to load collection", !0);
226
226
  }
227
227
  } catch (o) {
228
- if (e.get(a) && r === w) {
228
+ if (e.get(a) && r === x) {
229
229
  const s = o.message || "";
230
230
  s.includes("401") || s.includes("403") || s.includes("password") ? e.set(d, !0) : e.set(f, s || i().failedToLoadCollection || "Failed to load collection", !0);
231
231
  }
232
232
  } finally {
233
- e.get(a) && r === w && e.set(g, !1);
233
+ e.get(a) && r === x && e.set(g, !1);
234
234
  }
235
235
  }
236
236
  function L(l) {
@@ -246,15 +246,15 @@ function ue(I, t) {
246
246
  });
247
247
  var C = e.comment(), q = e.first_child(C);
248
248
  {
249
- var D = (l) => {
249
+ var z = (l) => {
250
250
  var r = re(), o = e.child(r), s = e.child(o, !0);
251
251
  e.reset(o), e.reset(r), e.template_effect(() => e.set_text(s, i().loadingCollection || "Loading collection...")), e.append(l, r);
252
- }, k = (l) => {
252
+ }, D = (l) => {
253
253
  var r = le(), o = e.child(r), s = e.child(o), P = e.child(s, !0);
254
254
  e.reset(s);
255
- var x = e.sibling(s, 2), E = e.child(x, !0);
256
- e.reset(x);
257
- var c = e.sibling(x, 2), h = e.child(c);
255
+ var m = e.sibling(s, 2), E = e.child(m, !0);
256
+ e.reset(m);
257
+ var c = e.sibling(m, 2), h = e.child(c);
258
258
  {
259
259
  let V = e.derived(() => i().enterPassword || "Enter password"), W = e.derived(() => e.get(p) ? i().incorrectPassword || "Incorrect password. Please try again." : "");
260
260
  te(h, {
@@ -279,7 +279,7 @@ function ue(I, t) {
279
279
  }, T = (l) => {
280
280
  var r = oe(), o = e.child(r), s = e.child(o);
281
281
  e.reset(o), e.reset(r), e.template_effect(() => e.set_text(s, `${(i().errorPrefix || "Error:") ?? ""} ${e.get(f) ?? ""}`)), e.append(l, r);
282
- }, z = (l) => {
282
+ }, k = (l) => {
283
283
  B(l, {
284
284
  get event() {
285
285
  return e.get(b);
@@ -288,7 +288,7 @@ function ue(I, t) {
288
288
  });
289
289
  };
290
290
  e.if(q, (l) => {
291
- e.get(g) ? l(D) : e.get(d) ? l(k, 1) : e.get(f) ? l(T, 2) : e.get(b) && l(z, 3);
291
+ e.get(g) ? l(z) : e.get(d) ? l(D, 1) : e.get(f) ? l(T, 2) : e.get(b) && l(k, 3);
292
292
  });
293
293
  }
294
294
  e.append(I, C), e.pop();
@@ -296,4 +296,4 @@ function ue(I, t) {
296
296
  export {
297
297
  ue as default
298
298
  };
299
- //# sourceMappingURL=CollectionView-CKIxku9-.js.map
299
+ //# sourceMappingURL=CollectionView-kDS8R_bu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CollectionView-kDS8R_bu.js","sources":["../node_modules/@getmicdrop/svelte-components/dist/recipes/inputs/PasswordStrengthIndicator/PasswordStrengthIndicator.svelte","../node_modules/@getmicdrop/svelte-components/dist/recipes/inputs/PasswordInput.svelte","../src/components/Views/CollectionView.svelte"],"sourcesContent":["<script lang=\"ts\">\n import type { Snippet } from 'svelte';\n import { safeSlide } from \"../../../utils/transitions.js\";\n import { lazyOnce } from \"../../../utils/lazyOnce.js\";\n import { cubicOut } from \"svelte/easing\";\n import { untrack } from \"svelte\";\n\n const defaultLabels = {\n tooWeak: 'Too weak',\n weak: 'Weak',\n good: 'Good',\n strong: 'Strong',\n };\n\n interface Props {\n password?: string;\n strengthText?: string;\n score?: number;\n textColor?: string;\n children?: Snippet;\n labels?: Partial<typeof defaultLabels>;\n }\n\n let {\n password = \"\",\n strengthText = $bindable(\"\"),\n score = $bindable(-1),\n textColor = $bindable(\"\"),\n children,\n labels: userLabels = {},\n }: Props = $props();\n\n let labels = $derived({ ...defaultLabels, ...userLabels });\n\n let debouncedPassword = $state(\"\");\n // Use a plain variable for timer to avoid reactive dependency\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n // Lazily load the (~10 KB) strength library only once a password exists.\n // Until it resolves, `strengthFn` is null and the indicator shows its\n // neutral (no-result) state — the debounce window absorbs the load latency.\n //\n // lazyOnce memoizes the import on success but RESETS on rejection: a\n // transient chunk-load failure must not be cached, or the indicator would\n // stay bricked until a page reload. On failure the next keystroke retries.\n let strengthFn: typeof import('check-password-strength').passwordStrength | null = $state(null);\n const loadStrengthModule = lazyOnce(() => import('check-password-strength'));\n function ensureStrengthFn() {\n void loadStrengthModule()\n .then((m) => {\n strengthFn = m.passwordStrength;\n })\n .catch(() => {\n // Swallow — strengthFn stays null (neutral state) and lazyOnce\n // has already dropped its memo, so a later keystroke retries.\n });\n }\n\n // Kick off the load on the first keystroke, before the debounce fires.\n // Retries naturally on subsequent keystrokes after a transient failure\n // because lazyOnce does not cache the rejection.\n $effect(() => {\n if (password && !strengthFn) ensureStrengthFn();\n });\n\n let customOptions = $derived([\n {\n id: 0,\n value: labels.tooWeak,\n minDiversity: 0,\n minLength: 0,\n },\n {\n id: 1,\n value: labels.weak,\n minDiversity: 1,\n minLength: 6,\n },\n {\n id: 2,\n value: labels.good,\n minDiversity: 2,\n minLength: 8,\n },\n {\n id: 3,\n value: labels.strong,\n minDiversity: 3,\n minLength: 10,\n },\n ] as const);\n\n // Debounce password updates - timer is not reactive to avoid dependency cycle\n $effect(() => {\n clearTimeout(timer);\n if (password.length === 0) {\n debouncedPassword = \"\";\n } else {\n timer = setTimeout(() => {\n debouncedPassword = password;\n }, 400); // 400ms delay as requested\n }\n return () => clearTimeout(timer);\n });\n\n let strength = $derived(debouncedPassword && strengthFn\n ? strengthFn(debouncedPassword, customOptions as any)\n : null);\n\n // Derive score based on password length and strength\n let computedScore = $derived(debouncedPassword.length > 12 ? 3 : (strength?.id ?? -1));\n\n // Sync computed values to bindable props using effects with untrack\n $effect(() => {\n const newScore = computedScore;\n if (untrack(() => score) !== newScore) {\n score = newScore;\n }\n });\n\n // Derive text and color from computedScore (not from bindable score)\n let computedStrengthText = $derived(\n computedScore === 0 ? labels.tooWeak :\n computedScore === 1 ? labels.weak :\n computedScore === 2 ? labels.good :\n computedScore === 3 ? labels.strong : \"\"\n );\n\n // No color until a real strength result exists. computedScore is -1 while\n // the lazily-loaded strength library is still in flight (and during the\n // debounce window), so emitting danger here would flash a red \"Password\n // strength\" line with empty text in consumers (e.g. PasswordInput).\n let computedTextColor = $derived(\n computedScore < 0 ? \"\" :\n computedScore <= 1 ? \"text-accent-danger\" : \"text-accent-success\"\n );\n\n $effect(() => {\n const newText = computedStrengthText;\n if (untrack(() => strengthText) !== newText) {\n strengthText = newText;\n }\n });\n\n let strengthColor = $derived(computedScore <= 1 ? \"bg-accent-danger\" : \"bg-accent-success\");\n\n $effect(() => {\n const newColor = computedTextColor;\n if (untrack(() => textColor) !== newColor) {\n textColor = newColor;\n }\n });\n\n // Calculate how many bars to fill (1-3)\n let filledBars = $derived(computedScore === 0 ? 1 : computedScore === 1 ? 2 : computedScore >= 2 ? 3 : 0);\n</script>\n\n{#if debouncedPassword.length > 0}\n <div\n transition:safeSlide={{ duration: 600, easing: cubicOut }}\n class=\"pt-2 space-y-2\"\n >\n <!-- 3 segment bars -->\n <div class=\"flex gap-1.5\">\n {#each [0, 1, 2] as barIndex (barIndex)}\n <div\n class=\"h-1 flex-1 rounded-full transition-colors duration-300 {barIndex <\n filledBars\n ? strengthColor\n : 'bg-bg-tertiary'}\"\n ></div>\n {/each}\n </div>\n {@render children?.()}\n </div>\n{/if}\n","<script lang=\"ts\">\n /**\n * PasswordInput - Password field with show/hide toggle and strength indicator\n *\n * Combines Input (password type) with PasswordStrengthIndicator for\n * a complete password entry experience.\n *\n * @example\n * <PasswordInput\n * label=\"New Password\"\n * bind:value={password}\n * showStrength\n * error={$errors.password}\n * required\n * />\n *\n * @example Consumer-owned validation (e.g. Zod): opt out of the built-in\n * `required` constraint so the consuming form is the single source of truth.\n * <PasswordInput\n * label=\"Password\"\n * bind:value={password}\n * required\n * disableBuiltInValidation\n * error={$errors.password}\n * />\n */\n import Input from '../../primitives/Input/Input.svelte';\n import PasswordStrengthIndicator from './PasswordStrengthIndicator/PasswordStrengthIndicator.svelte';\n\n const defaultLabels = {\n passwordStrength: 'Password strength:',\n };\n\n interface Props {\n /** Password value */\n value?: string;\n /** Label text */\n label?: string;\n /** Placeholder text */\n placeholder?: string;\n /** Input name attribute */\n name?: string;\n /** Input id attribute */\n id?: string;\n /** Whether the field is required */\n required?: boolean;\n /**\n * Opt out of the component's built-in `required` validation so the\n * consumer owns validation entirely (e.g. a Zod schema on the form).\n * When `true`, the `required` constraint is NOT forwarded to the\n * underlying field (no `aria-required`, no required asterisk). The\n * visual error/hint still render via `error`/`hint`. Defaults to\n * `false`, preserving the existing built-in behavior exactly.\n */\n disableBuiltInValidation?: boolean;\n /** Whether the field is disabled */\n disabled?: boolean;\n /** Error message to display */\n error?: string;\n /** Hint text shown below input */\n hint?: string;\n /** Show password strength indicator */\n showStrength?: boolean;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Minimum password length */\n minlength?: number | null;\n /** Maximum password length */\n maxlength?: number | null;\n /** Autocomplete attribute */\n autocomplete?: string;\n /** Whether to show the password toggle button */\n showPasswordToggle?: boolean;\n /** Additional class for the wrapper div */\n class?: string;\n // Optional callbacks (matching Input component signatures)\n // eslint-disable-next-line no-unused-vars -- intentionally retained (prop/slot/forward-compat or Svelte-5 reactive binding eslint cannot see)\n oninput?: (value: string) => void;\n onblur?: () => void;\n onfocus?: () => void;\n /** Override user-visible strings */\n labels?: Partial<typeof defaultLabels>;\n }\n\n let {\n value = $bindable(''),\n label = '',\n placeholder = '',\n name = '',\n id = '',\n required = false,\n disableBuiltInValidation = false,\n disabled = false,\n error = '',\n hint = '',\n showStrength = false,\n size = 'md',\n minlength = null,\n maxlength = null,\n autocomplete = 'new-password',\n showPasswordToggle = true,\n class: className = '',\n oninput,\n onblur,\n onfocus,\n labels: userLabels = {},\n }: Props = $props();\n\n let labels = $derived({ ...defaultLabels, ...userLabels });\n\n // When the consumer opts out of built-in validation, do NOT forward the\n // `required` constraint to the underlying field — the consuming form owns\n // validation entirely. Default (false) forwards `required` as-is, exactly\n // preserving existing behavior.\n let effectiveRequired = $derived(disableBuiltInValidation ? false : required);\n\n // Password strength tracking\n let strengthScore = $state(-1);\n let strengthText = $state('');\n let strengthColor = $state('');\n</script>\n\n<div class={className}>\n <Input\n type=\"password\"\n {id}\n {name}\n {placeholder}\n {label}\n required={effectiveRequired}\n {disabled}\n {size}\n {minlength}\n {maxlength}\n {autocomplete}\n {showPasswordToggle}\n errorText={error}\n hintText={hint}\n bind:value\n oninputchange={oninput}\n {onblur}\n {onfocus}\n />\n\n {#if showStrength && value}\n <PasswordStrengthIndicator\n password={value}\n bind:score={strengthScore}\n bind:strengthText\n bind:textColor={strengthColor}\n >\n <p class=\"type-caption {strengthColor}\">\n {labels.passwordStrength} {strengthText}\n </p>\n </PasswordStrengthIndicator>\n {/if}\n</div>\n","<!-- native-element-exception: VC is an embeddable widget — native <button>s are intentional here (widget-controlled styling on calendar cells, date selectors, checkout/nav CTAs). -->\n<!-- @route-escape: widget-intentional. -->\n<script lang=\"ts\">\n import { onMount, onDestroy } from 'svelte';\n import { goto } from '$app/navigation';\n import EventExperience from '$lib/public-calendar-flow/Event.svelte';\n import { transformCollectionData } from '$lib/public-calendar-flow/transform';\n import { fetchPublicCollection } from '$lib/api/events';\n import type { PublicCollectionData } from '$lib/api/types';\n import { createLogger, PasswordInput } from '@getmicdrop/svelte-components';\n\n const logger = createLogger('CollectionView');\n\n // --- Props (matches old CollectionView external interface) ---\n interface Props {\n collectionId: string | number;\n organizationId?: string;\n onNavigateToEvent?: (id: number, slug: string) => void;\n password?: string;\n displayMode?: string;\n showViewSwitcher?: boolean;\n labels?: Record<string, string>;\n }\n\n let {\n collectionId,\n organizationId = '',\n onNavigateToEvent = undefined,\n password = undefined,\n displayMode = 'gallery',\n showViewSwitcher = true,\n labels = {},\n }: Props = $props();\n\n // --- State ---\n let collection = $state<PublicCollectionData | null>(null);\n let isLoading = $state(true);\n let error = $state<string | null>(null);\n let isMounted = $state(false);\n let passwordRequired = $state(false);\n let passwordInput = $state('');\n let passwordError = $state(false);\n\n // --- Derived ---\n let eventData = $derived(\n collection ? transformCollectionData(collection) : null\n );\n\n // Monotonic id for collection loads. loadCollection runs on mount AND on each\n // password submit; a slower EARLIER request resolving last would otherwise\n // clobber the latest attempt (isMounted only covers unmount, not overlap).\n let latestLoad = 0;\n\n // --- Load collection data ---\n async function loadCollection(pwd?: string): Promise<void> {\n if (!isMounted) return;\n const loadId = ++latestLoad;\n if (!collectionId) {\n error = labels.noCollectionIdProvided || 'No collection ID provided';\n isLoading = false;\n return;\n }\n\n isLoading = true;\n error = null;\n passwordError = false;\n\n try {\n const data = await fetchPublicCollection(collectionId, pwd);\n // A newer load superseded us — discard this stale response.\n if (!isMounted || loadId !== latestLoad) return;\n\n if (data) {\n if (data.passwordRequired || data.error?.code === 'PASSWORD_REQUIRED') {\n passwordRequired = true;\n isLoading = false;\n return;\n }\n collection = data;\n passwordRequired = false;\n } else {\n if (pwd) {\n passwordRequired = true;\n passwordError = true;\n isLoading = false;\n return;\n }\n error = labels.failedToLoadCollection || 'Failed to load collection';\n }\n } catch (err: any) {\n // A superseded load failing must not overwrite the latest load's state\n // (e.g. a slow wrong-password 401 re-locking an already-loaded collection).\n if (isMounted && loadId === latestLoad) {\n const msg = err.message || '';\n if (\n msg.includes('401') ||\n msg.includes('403') ||\n msg.includes('password')\n ) {\n passwordRequired = true;\n } else {\n error =\n msg || labels.failedToLoadCollection || 'Failed to load collection';\n }\n }\n } finally {\n // Only the latest load may clear the spinner — a stale load settling\n // first must not reveal content while the newest load is still pending.\n if (isMounted && loadId === latestLoad) {\n isLoading = false;\n }\n }\n }\n\n function handlePasswordSubmit(e: Event): void {\n e.preventDefault();\n if (!passwordInput.trim()) return;\n loadCollection(passwordInput);\n }\n\n function handleCollectionEventClick(galleryEvent: {\n id?: number | string;\n slug: string;\n }): void {\n if (onNavigateToEvent && galleryEvent.id) {\n onNavigateToEvent(Number(galleryEvent.id), galleryEvent.slug);\n } else {\n // @url-builder-escape: widget-internal route; SC's url-builders cover /a admin paths, not embedded calendar navigation.\n goto(`/${galleryEvent.id}/${galleryEvent.slug}`);\n }\n }\n\n // --- Lifecycle ---\n onMount(() => {\n isMounted = true;\n loadCollection(password);\n });\n\n onDestroy(() => {\n isMounted = false;\n });\n</script>\n\n<!-- @pageloader-escape: 4-state gate (loading / private-password-card / error /\n content) — PageLoader models only loading/error/children, so it can't own the\n password-required branch that sits as a sibling here. -->\n{#if isLoading}\n <div\n class=\"flex items-center justify-center py-12 text-center loading-container\"\n >\n <p>{labels.loadingCollection || 'Loading collection...'}</p>\n </div>\n{:else if passwordRequired}\n <div\n class=\"flex flex-col items-center justify-center min-h-[50vh] text-center\"\n >\n <div class=\"password-card rounded-lg p-8 max-w-sm w-full\">\n <h2 class=\"password-title type-heading mb-2\">\n {labels.collectionPrivateTitle || 'This collection is private'}\n </h2>\n <p class=\"password-description type-body mb-6\">\n {labels.collectionPrivateDescription ||\n 'Please enter the password to view this collection.'}\n </p>\n <form onsubmit={handlePasswordSubmit} class=\"flex flex-col gap-3\">\n <PasswordInput\n bind:value={passwordInput}\n placeholder={labels.enterPassword || 'Enter password'}\n error={passwordError\n ? labels.incorrectPassword ||\n 'Incorrect password. Please try again.'\n : ''}\n />\n <button\n type=\"submit\"\n class=\"password-submit px-4 py-2 rounded-lg type-label\"\n >{labels.viewCollection || 'View Collection'}</button\n >\n </form>\n </div>\n </div>\n{:else if error}\n <div\n class=\"flex flex-col items-center justify-center min-h-[50vh] text-center\"\n >\n <p class=\"error-text\">{labels.errorPrefix || 'Error:'} {error}</p>\n </div>\n{:else if eventData}\n <EventExperience\n event={eventData}\n onCollectionEventClick={handleCollectionEventClick}\n />\n{/if}\n\n<style>\n .loading-container {\n color: hsl(var(--text-secondary, 215 16% 47%));\n }\n\n .error-text {\n color: hsl(var(--status-sold-out, 0 72% 51%));\n }\n\n .password-card {\n background: hsl(var(--surface-primary, 0 0% 100%));\n box-shadow: 0 2px 10px color-mix(in srgb, black 10%, transparent);\n }\n\n .password-title {\n color: hsl(var(--text-primary, 0 0% 10%));\n }\n\n .password-description {\n color: hsl(var(--text-secondary, 0 0% 45%));\n }\n\n .password-submit {\n background: hsl(var(--brand-primary, 220 90% 56%));\n color: hsl(var(--text-on-primary, 0 0% 100%));\n }\n\n .password-submit:hover {\n filter: brightness(0.95);\n }\n</style>\n"],"names":["defaultLabels","password","$","$$props","strengthText","score","textColor","userLabels","labels","debouncedPassword","timer","strengthFn","loadStrengthModule","lazyOnce","ensureStrengthFn","m","customOptions","strength","computedScore","newScore","untrack","computedStrengthText","computedTextColor","newText","strengthColor","newColor","filledBars","div","root_1","div_1","barIndex","$$anchor","div_2","root","cubicOut","$$render","consequent","value","label","placeholder","name","id","required","disableBuiltInValidation","disabled","error","hint","showStrength","size","minlength","maxlength","autocomplete","showPasswordToggle","className","effectiveRequired","strengthScore","Input","node","$$value","PasswordStrengthIndicator","p","createLogger","onNavigateToEvent","collection","isLoading","isMounted","passwordRequired","passwordInput","passwordError","eventData","transformCollectionData","latestLoad","loadCollection","pwd","loadId","data","fetchPublicCollection","err","msg","handlePasswordSubmit","e","handleCollectionEventClick","galleryEvent","goto","onMount","onDestroy","h2","p_1","form","PasswordInput","node_1","button","div_3","root_2","p_2","text_4","EventExperience","consequent_1","consequent_3"],"mappings":"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","x_google_ignoreList":[0,1]}