@levo-so/site-runtime 0.3.21 → 0.3.23

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 (4) hide show
  1. package/CHANGELOG.md +352 -0
  2. package/index.d.ts +56 -1
  3. package/index.js +414 -367
  4. package/package.json +3 -3
package/index.js CHANGED
@@ -119,33 +119,75 @@ var H = [
119
119
  siteId: e.id || "",
120
120
  insightsUrl: e.levo?.insights_url || null,
121
121
  appMode: e.levo?.app_mode || "production"
122
- }), ke = (e) => [
122
+ }), ke = /\{\$([A-Za-z0-9_]+)\}/g, Ae = (e) => {
123
+ let t = [], n = [], r = 0;
124
+ for (let i of e.matchAll(ke)) n.push(e.slice(r, i.index)), t.push(i[1]), r = i.index + i[0].length;
125
+ n.push(e.slice(r));
126
+ let i = (t) => /* @__PURE__ */ Error(`Levo pattern "${e}" ${t}`);
127
+ if (t.length === 0) throw i("names no variable: write each record as {$name}");
128
+ if (new Set(t).size !== t.length) throw i("names a variable twice");
129
+ if (n.slice(1, -1).includes("")) throw i("has two variables with nothing between them, so the split would be ambiguous");
130
+ if (n.some((e) => /[{}]/.test(e))) throw i("has a stray { or }: variables are {$name} with [A-Za-z0-9_] names");
131
+ return {
132
+ names: t,
133
+ literals: n
134
+ };
135
+ }, je = (e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), Me = ({ literals: e }) => RegExp(`^${e.map(je).join("([^/]+)")}$`), Ne = /* @__PURE__ */ new Set(), Pe = (e, t, n) => {
136
+ let r = Ae(t), i = Me(r), a = (e) => {
137
+ let n = e;
138
+ return t.replace(ke, (e, r) => {
139
+ let i = n[r];
140
+ if (!i) throw Error(`Levo pattern "${t}" has no value for {$${r}}`);
141
+ return i;
142
+ });
143
+ };
144
+ return {
145
+ parse: (t) => {
146
+ if (!(e in t)) {
147
+ let n = Object.keys(t).join(", ") || "none";
148
+ return Ne.has(e) || (Ne.add(e), console.error(`levoParams("${e}", …) names a param this route does not have. Its params are: ${n}. The first argument must be the file's $param name.`)), !1;
149
+ }
150
+ let n = t[e], a = n ? i.exec(n) : null;
151
+ if (!a) return !1;
152
+ let o = Object.fromEntries(r.names.map((e, t) => [e, a[t + 1]]));
153
+ return {
154
+ ...t,
155
+ ...o
156
+ };
157
+ },
158
+ segment: a,
159
+ link: (t) => ({
160
+ ...t,
161
+ [e]: a(t)
162
+ })
163
+ };
164
+ }, Fe = (e, t, n) => t in n ? null : `Record binding "${e}" reads param "${t}", but this route has no such param. Its params are: ${Object.keys(n).join(", ") || "none"}. On a levoParams page, param names a pattern variable (packages, cities), never the segment.`, Ie = (e) => [
123
165
  "levo-source",
124
166
  "list",
125
167
  e.module,
126
168
  e.identifier,
127
169
  e.query ?? null,
128
170
  e.options ?? null
129
- ], Ae = (e, t) => [
171
+ ], Le = (e, t) => [
130
172
  "levo-source",
131
173
  "record",
132
174
  e.module,
133
175
  e.identifier,
134
176
  t ?? null
135
- ], je = (e) => [
177
+ ], Re = (e) => [
136
178
  "levo-source",
137
179
  "form",
138
180
  e.module,
139
181
  e.identifier
140
- ], Me = {
182
+ ], ze = {
141
183
  blog_author: "author",
142
184
  blog_category: "category",
143
185
  blog_tag: "tag"
144
- }, Ne = (e, t) => {
145
- let n = encodeURIComponent(e.identifier), r = t ? `${encodeURIComponent(t)}/get-single` : "list", i = Me[e.module];
186
+ }, Be = (e, t) => {
187
+ let n = encodeURIComponent(e.identifier), r = t ? `${encodeURIComponent(t)}/get-single` : "list", i = ze[e.module];
146
188
  return i ? `/v1/blog/${n}/${i}/${r}` : e.module === "community" ? `/v1/community/${n}/post/${r}` : null;
147
- }, Pe = async (e, t) => {
148
- let n = Ne(t);
189
+ }, Ve = async (e, t) => {
190
+ let n = Be(t);
149
191
  if (n) {
150
192
  let r = await e.fetch.url(n).post(t.query ?? {}).json();
151
193
  return {
@@ -161,16 +203,16 @@ var H = [
161
203
  data: r.content.data ?? [],
162
204
  meta: r.content.meta ?? null
163
205
  };
164
- }, Fe = async (e, t, n) => {
165
- let r = Ne(t, n);
206
+ }, He = async (e, t, n) => {
207
+ let r = Be(t, n);
166
208
  return r ? (await e.fetch.url(r).get().json()).content.data ?? null : (t.module === "collection" ? await e.collection.getCollectionContent({
167
209
  collection_key: t.identifier,
168
210
  slug: n
169
211
  }) : t.module === "blog" ? await e.blog.getSingleBlog(t.identifier, n, { workspace_id: e.workspace ?? "" }) : await e.event.getSingleEvent(n, { workspace_id: e.workspace ?? "" })).content.data ?? null;
170
- }, Ie = async (e, t) => (await e.collection.getCollectionByIDExpanded(t.identifier)).content.data ?? null, Le = (e) => {
212
+ }, Ue = async (e, t) => (await e.collection.getCollectionByIDExpanded(t.identifier)).content.data ?? null, We = (e) => {
171
213
  let t = i(), n = R({
172
- queryKey: ke(e),
173
- queryFn: () => Pe(t, e),
214
+ queryKey: Ie(e),
215
+ queryFn: () => Ve(t, e),
174
216
  enabled: !!t
175
217
  });
176
218
  return {
@@ -183,10 +225,10 @@ var H = [
183
225
  ...e
184
226
  }) }
185
227
  };
186
- }, Re = (e, t) => {
228
+ }, Ge = (e, t) => {
187
229
  let n = i(), r = R({
188
- queryKey: Ae(e, t),
189
- queryFn: () => Fe(n, e, t),
230
+ queryKey: Le(e, t),
231
+ queryFn: () => He(n, e, t),
190
232
  enabled: !!n && !!t
191
233
  });
192
234
  return {
@@ -198,10 +240,10 @@ var H = [
198
240
  ...e
199
241
  }) }
200
242
  };
201
- }, ze = (e) => {
243
+ }, Ke = (e) => {
202
244
  let t = i(), n = R({
203
- queryKey: je(e),
204
- queryFn: () => Ie(t, e),
245
+ queryKey: Re(e),
246
+ queryFn: () => Ue(t, e),
205
247
  enabled: !!t
206
248
  });
207
249
  return {
@@ -213,30 +255,35 @@ var H = [
213
255
  ...e
214
256
  }) }
215
257
  };
216
- }, Be = (e) => {
258
+ }, qe = (e) => {
217
259
  let t = Object.values(e ?? {});
218
260
  return t.length === 1 ? t[0] : e?.slug;
219
- }, Ve = async ({ queryClient: e, config: t, sources: n, params: r }) => {
261
+ }, Je = async ({ queryClient: e, config: t, sources: n, params: r }) => {
220
262
  let i = De(t);
221
263
  if (!i || !n) return {};
222
264
  let a = await Promise.all(Object.entries(n).map(async ([t, n]) => {
223
265
  if (n.mode === "record") {
224
- let a = n.param ? r?.[n.param] : Be(r);
225
- return a ? [t, await e.ensureQueryData({
226
- queryKey: Ae(n, a),
227
- queryFn: () => Fe(i, n, a)
266
+ let a = n.param ? Fe(t, n.param, r ?? {}) : null;
267
+ if (a) {
268
+ if (i.APP_MODE !== "production") throw Error(a);
269
+ return i.logger.error(a), [t, null];
270
+ }
271
+ let o = n.param ? r?.[n.param] : qe(r);
272
+ return o ? [t, await e.ensureQueryData({
273
+ queryKey: Le(n, o),
274
+ queryFn: () => He(i, n, o)
228
275
  }).catch(() => null)] : [t, null];
229
276
  }
230
277
  return n.mode === "form" ? [t, await e.ensureQueryData({
231
- queryKey: je(n),
232
- queryFn: () => Ie(i, n)
278
+ queryKey: Re(n),
279
+ queryFn: () => Ue(i, n)
233
280
  }).catch(() => null)] : [t, await e.ensureQueryData({
234
- queryKey: ke(n),
235
- queryFn: () => Pe(i, n)
281
+ queryKey: Ie(n),
282
+ queryFn: () => Ve(i, n)
236
283
  }).catch(() => null)];
237
284
  }));
238
285
  return Object.fromEntries(a);
239
- }, He = {
286
+ }, Ye = {
240
287
  background: "var(--color-page)",
241
288
  foreground: "var(--color-ink)",
242
289
  text: "var(--color-ink)",
@@ -258,10 +305,10 @@ var H = [
258
305
  input: "var(--color-background1)",
259
306
  inputForeground: "var(--color-ink)",
260
307
  ring: "var(--color-brand)"
261
- }, Ue = (e) => O(() => ({
308
+ }, Xe = (e) => O(() => ({
262
309
  ...a({
263
310
  colors: {
264
- ...He,
311
+ ...Ye,
265
312
  ...e?.colors
266
313
  },
267
314
  radius: e?.radius ?? "var(--radius-token)",
@@ -280,7 +327,7 @@ function G() {
280
327
  }
281
328
  //#endregion
282
329
  //#region src/access/useLevoAuth.ts
283
- var K = ["levo-auth", "session"], We = () => {
330
+ var K = ["levo-auth", "session"], Ze = () => {
284
331
  let e = i(), t = z(), n = G(), r = R({
285
332
  queryKey: K,
286
333
  queryFn: async () => {
@@ -315,11 +362,11 @@ var K = ["levo-auth", "session"], We = () => {
315
362
  signOut: s,
316
363
  isSigningOut: a.isPending
317
364
  };
318
- }, Ge = ({ collection: e, hidden: n, submitLabel: r = "Submit", onSuccess: a, theme: o, className: s }) => {
319
- let c = i(), { account: l } = We(), { schema: u, isLoading: d } = ze({
365
+ }, Qe = ({ collection: e, hidden: n, submitLabel: r = "Submit", onSuccess: a, theme: o, className: s }) => {
366
+ let c = i(), { account: l } = Ze(), { schema: u, isLoading: d } = Ke({
320
367
  module: "collection",
321
368
  identifier: e
322
- }), f = Ue(o);
369
+ }), f = Xe(o);
323
370
  return c ? /* @__PURE__ */ N("div", {
324
371
  className: s,
325
372
  children: /* @__PURE__ */ N(t, {
@@ -343,17 +390,17 @@ var K = ["levo-auth", "session"], We = () => {
343
390
  onSuccess: () => a?.()
344
391
  })
345
392
  }) : null;
346
- }, Ke = "so_levo_membership_account", qe = [
393
+ }, $e = "so_levo_membership_account", et = [
347
394
  "profile_picture",
348
395
  "first_name",
349
396
  "last_name",
350
397
  "email",
351
398
  "username",
352
399
  "socials"
353
- ], Je = ["email", "username"], Ye = (e) => qe.includes(e.key) || e.editable === !0, Xe = ({ hidden: t, submitLabel: n = "Save and continue", onSuccess: r, errorClassName: a = "text-sm text-[var(--color-danger)]", theme: o, className: s }) => {
354
- let c = i(), l = G(), { account: u } = We(), d = Ue(o), [f, p] = A(""), m = R({
400
+ ], tt = ["email", "username"], nt = (e) => et.includes(e.key) || e.editable === !0, rt = ({ hidden: t, submitLabel: n = "Save and continue", onSuccess: r, errorClassName: a = "text-sm text-[var(--color-danger)]", theme: o, className: s }) => {
401
+ let c = i(), l = G(), { account: u } = Ze(), d = Xe(o), [f, p] = A(""), m = R({
355
402
  queryKey: ["levo-access", "profile-schema"],
356
- queryFn: async () => (await c?.collection?.getCollectionByIDExpanded(Ke))?.content?.data ?? null,
403
+ queryFn: async () => (await c?.collection?.getCollectionByIDExpanded($e))?.content?.data ?? null,
357
404
  enabled: l && !!c,
358
405
  staleTime: 5 * 6e4,
359
406
  retry: 1
@@ -365,14 +412,14 @@ var K = ["levo-auth", "session"], We = () => {
365
412
  ...e,
366
413
  fields: e.fields?.map((e) => ({
367
414
  ...e,
368
- hidden: !Ye(e) || !!t?.includes(e.key),
369
- readonly: e.readonly || Je.includes(e.key)
415
+ hidden: !nt(e) || !!t?.includes(e.key),
416
+ readonly: e.readonly || tt.includes(e.key)
370
417
  }))
371
418
  }))
372
419
  } : null;
373
420
  }, [m.data, h]), _ = L({
374
421
  mutationFn: async (e) => {
375
- let n = g?.sections?.flatMap((e) => e?.fields ?? [])?.filter((e) => Ye(e) && !Je.includes(e.key) && !t?.includes(e.key))?.map((e) => e?.key) ?? [];
422
+ let n = g?.sections?.flatMap((e) => e?.fields ?? [])?.filter((e) => nt(e) && !tt.includes(e.key) && !t?.includes(e.key))?.map((e) => e?.key) ?? [];
376
423
  await c?.membership?.updateMe(Object.fromEntries(Object.entries(e).filter(([e]) => n.includes(e))));
377
424
  },
378
425
  onMutate: () => p(""),
@@ -403,15 +450,15 @@ var K = ["levo-auth", "session"], We = () => {
403
450
  onSubmit: (e) => _.mutate(e)
404
451
  }) : null]
405
452
  }) : null;
406
- }, Ze = null, Qe = /* @__PURE__ */ new Set(), $e = (e) => {
407
- if (Ze !== e) {
408
- Ze = e;
409
- for (let e of Qe) e();
453
+ }, it = null, at = /* @__PURE__ */ new Set(), ot = (e) => {
454
+ if (it !== e) {
455
+ it = e;
456
+ for (let e of at) e();
410
457
  }
411
- }, et = (e) => (Qe.add(e), () => {
412
- Qe.delete(e);
413
- }), tt = () => j(et, () => Ze, () => null), nt = (e) => {
414
- let t = i(), n = z(), r = G(), { isLoggedIn: a, isLoaded: o } = We(), s = tt(), c = e.id?.trim() || "", { rules: l, invalid: u } = O(() => be(e.access), [e.access]), d = O(() => xe(l), [l]), f = r && !!t && l.length > 0 && !u && !!c && a && !s, p = R({
458
+ }, st = (e) => (at.add(e), () => {
459
+ at.delete(e);
460
+ }), ct = () => j(st, () => it, () => null), lt = (e) => {
461
+ let t = i(), n = z(), r = G(), { isLoggedIn: a, isLoaded: o } = Ze(), s = ct(), c = e.id?.trim() || "", { rules: l, invalid: u } = O(() => be(e.access), [e.access]), d = O(() => xe(l), [l]), f = r && !!t && l.length > 0 && !u && !!c && a && !s, p = R({
415
462
  queryKey: ["levo-access", c],
416
463
  queryFn: async () => (await t?.fetch.url(`/v1/builder/page/${c}/check-access`).post().json())?.content?.data ?? null,
417
464
  enabled: f,
@@ -447,26 +494,26 @@ var K = ["levo-auth", "session"], We = () => {
447
494
  recheck: m,
448
495
  isChecking: p.isFetching
449
496
  };
450
- }, rt = "membership.account.ACCOUNT_PENDING_APPROVAL", it = (e) => e ? e === "membership.account.ACCOUNT_PENDING_APPROVAL" || e.includes("ACCOUNT_PENDING_APPROVAL") : !1, at = (e) => {
497
+ }, ut = "membership.account.ACCOUNT_PENDING_APPROVAL", dt = (e) => e ? e === "membership.account.ACCOUNT_PENDING_APPROVAL" || e.includes("ACCOUNT_PENDING_APPROVAL") : !1, ft = (e) => {
451
498
  let t = b(e);
452
499
  return {
453
500
  code: t?.code || "SOMETHING_WENT_WRONG",
454
501
  title: t?.title || "Something went wrong",
455
502
  message: t?.message || "Something went wrong. Please try again.",
456
503
  fieldErrors: Object.fromEntries((t?.fieldErrors ?? []).map((e) => [e.param, e.message])),
457
- isPendingApproval: it(t?.code)
504
+ isPendingApproval: dt(t?.code)
458
505
  };
459
- }, ot = {
506
+ }, pt = {
460
507
  code: "site.NOT_CONNECTED",
461
508
  title: "Sign-in unavailable",
462
509
  message: "This site is not connected to an account system yet.",
463
510
  fieldErrors: {},
464
511
  isPendingApproval: !1
465
- }, st = () => {
512
+ }, mt = () => {
466
513
  let e = i(), t = z(), n = w(async (t, n) => {
467
514
  if (!e?.membership) return {
468
515
  ok: !1,
469
- error: ot
516
+ error: pt
470
517
  };
471
518
  try {
472
519
  return {
@@ -477,7 +524,7 @@ var K = ["levo-auth", "session"], We = () => {
477
524
  let r = b(n);
478
525
  return e.logger?.error(t, { exception: r }), {
479
526
  ok: !1,
480
- error: at(r)
527
+ error: ft(r)
481
528
  };
482
529
  }
483
530
  }, [e]), r = w(async ({ identifier: t, medium: n }) => {
@@ -504,10 +551,10 @@ var K = ["levo-auth", "session"], We = () => {
504
551
  isVerifying: s.isPending,
505
552
  isSendingMagicLink: c.isPending
506
553
  };
507
- }, ct = 700, lt = 500, ut = 700, dt = (e, t) => {
508
- let n = window.screenX + (window.outerWidth - lt) / 2, r = window.screenY + (window.outerHeight - ut) / 2.5;
509
- return window.open(e, t, `width=${lt},height=${ut},left=${n},top=${r}`);
510
- }, ft = ({ methods: e, title: t = "Sign in", onSuccess: n, onError: r }) => {
554
+ }, ht = 700, gt = 500, _t = 700, vt = (e, t) => {
555
+ let n = window.screenX + (window.outerWidth - gt) / 2, r = window.screenY + (window.outerHeight - _t) / 2.5;
556
+ return window.open(e, t, `width=${gt},height=${_t},left=${n},top=${r}`);
557
+ }, yt = ({ methods: e, title: t = "Sign in", onSuccess: n, onError: r }) => {
511
558
  let a = i(), o = z(), s = G(), [c, l] = A(null), [u, d] = A(null), f = k(null), p = k(void 0), m = k({
512
559
  onSuccess: n,
513
560
  onError: r
@@ -564,10 +611,10 @@ var K = ["levo-auth", "session"], We = () => {
564
611
  title: t.get("title") || "Sign-in failed",
565
612
  message: t.get("message") || "We could not sign you in. Please try again.",
566
613
  fieldErrors: {},
567
- isPendingApproval: it(t.get("code"))
614
+ isPendingApproval: dt(t.get("code"))
568
615
  };
569
616
  r.isPendingApproval || d(r), m.current.onError?.(r);
570
- }, ct);
617
+ }, ht);
571
618
  }, [o, g]), v = O(() => {
572
619
  let e = h.data;
573
620
  if (!e || typeof window > "u") return {};
@@ -588,7 +635,7 @@ var K = ["levo-auth", "session"], We = () => {
588
635
  signIn: () => {
589
636
  let n = v[e];
590
637
  if (n) {
591
- if (d(null), f.current?.close(), f.current = dt(n, t), !f.current) {
638
+ if (d(null), f.current?.close(), f.current = vt(n, t), !f.current) {
592
639
  d({
593
640
  code: "POPUP_BLOCKED",
594
641
  title: "Popup blocked",
@@ -612,10 +659,10 @@ var K = ["levo-auth", "session"], We = () => {
612
659
  error: u,
613
660
  clearError: w(() => d(null), [])
614
661
  };
615
- }, pt = 4, mt = (e) => /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(e.trim()), ht = (e) => (/* @__PURE__ */ RegExp("^\\d{4}$")).test(e.trim()), gt = (e) => {
662
+ }, bt = 4, xt = (e) => /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(e.trim()), St = (e) => (/* @__PURE__ */ RegExp("^\\d{4}$")).test(e.trim()), Ct = (e) => {
616
663
  let t = e.replace(/\D/g, "").replace(/^0+/, "");
617
664
  return t ? `+${t}` : "";
618
- }, _t = (e) => /^\+[1-9]\d{7,14}$/.test(gt(e)), vt = ({ value: e, onChange: t, length: n = 4, onComplete: r, autoFocus: i, disabled: a }) => {
665
+ }, wt = (e) => /^\+[1-9]\d{7,14}$/.test(Ct(e)), Tt = ({ value: e, onChange: t, length: n = 4, onComplete: r, autoFocus: i, disabled: a }) => {
619
666
  let o = k([]), [s, c] = A(null), l = k(r);
620
667
  l.current = r;
621
668
  let u = Array.from({ length: n }, (t, n) => e[n] ?? ""), d = w((e) => {
@@ -699,11 +746,11 @@ var K = ["levo-auth", "session"], We = () => {
699
746
  },
700
747
  clear: w(() => f("", 0), [f])
701
748
  };
702
- }, yt = C(() => import("./kbChat-eFsau7hG.js")), bt = ({ site: e, path: t }) => {
749
+ }, Et = C(() => import("./kbChat-eFsau7hG.js")), Dt = ({ site: e, path: t }) => {
703
750
  let n = G(), r = e.workspace_id || void 0;
704
751
  return !n || !r ? null : /* @__PURE__ */ N(x, {
705
752
  fallback: null,
706
- children: /* @__PURE__ */ N(yt, {
753
+ children: /* @__PURE__ */ N(Et, {
707
754
  workspaceId: r,
708
755
  siteName: e.name || void 0,
709
756
  siteLogo: void 0,
@@ -713,61 +760,61 @@ var K = ["levo-auth", "session"], We = () => {
713
760
  path: t
714
761
  })
715
762
  });
716
- }, xt = "(prefers-color-scheme: dark)", St = (e) => {
763
+ }, Ot = "(prefers-color-scheme: dark)", kt = (e) => {
717
764
  try {
718
765
  let t = localStorage.getItem(e);
719
766
  return t === "light" || t === "dark" || t === "system" ? t : null;
720
767
  } catch {
721
768
  return null;
722
769
  }
723
- }, Ct = (e, t) => {
770
+ }, At = (e, t) => {
724
771
  try {
725
772
  localStorage.setItem(e, t);
726
773
  } catch {}
727
774
  };
728
- function wt(e, t) {
729
- return `(function(){try{var t=localStorage.getItem(${JSON.stringify(e)});if(t!=='light'&&t!=='dark'&&t!=='system'){t=${JSON.stringify(t)}}var d=matchMedia('${xt}').matches;var r=t==='system'?(d?'dark':'light'):t;var e=document.documentElement;e.classList.remove('light','dark');e.classList.add(r);e.style.colorScheme=r}catch(e){}})();`;
775
+ function jt(e, t) {
776
+ return `(function(){try{var t=localStorage.getItem(${JSON.stringify(e)});if(t!=='light'&&t!=='dark'&&t!=='system'){t=${JSON.stringify(t)}}var d=matchMedia('${Ot}').matches;var r=t==='system'?(d?'dark':'light'):t;var e=document.documentElement;e.classList.remove('light','dark');e.classList.add(r);e.style.colorScheme=r}catch(e){}})();`;
730
777
  }
731
- var Tt = S(void 0), Et = (e) => e === "system" ? window.matchMedia(xt).matches ? "dark" : "light" : e;
732
- function Dt(e) {
778
+ var Mt = S(void 0), Nt = (e) => e === "system" ? window.matchMedia(Ot).matches ? "dark" : "light" : e;
779
+ function Pt(e) {
733
780
  let t = document.documentElement;
734
781
  t.classList.remove("light", "dark"), t.classList.add(e), t.style.colorScheme = e;
735
782
  }
736
- var Ot = ({ children: e, defaultMode: t = "system", storageKey: n = "color-mode" }) => {
783
+ var Ft = ({ children: e, defaultMode: t = "system", storageKey: n = "color-mode" }) => {
737
784
  let [r, i] = A(t), [a, o] = A(t === "dark" ? "dark" : "light"), s = G();
738
785
  return E(() => {
739
- i(St(n) ?? t);
786
+ i(kt(n) ?? t);
740
787
  }, [t, n]), E(() => {
741
788
  if (!s) return;
742
- let e = Et(r);
743
- Dt(e), o(e);
789
+ let e = Nt(r);
790
+ Pt(e), o(e);
744
791
  }, [r, s]), E(() => {
745
792
  if (!s || r !== "system") return;
746
- let e = window.matchMedia(xt), t = () => {
793
+ let e = window.matchMedia(Ot), t = () => {
747
794
  let t = e.matches ? "dark" : "light";
748
- Dt(t), o(t);
795
+ Pt(t), o(t);
749
796
  };
750
797
  return e.addEventListener("change", t), () => e.removeEventListener("change", t);
751
- }, [r, s]), /* @__PURE__ */ P(Tt.Provider, {
798
+ }, [r, s]), /* @__PURE__ */ P(Mt.Provider, {
752
799
  value: {
753
800
  mode: r,
754
801
  resolvedMode: a,
755
802
  setMode: (e) => {
756
- Ct(n, e), i(e);
803
+ At(n, e), i(e);
757
804
  }
758
805
  },
759
- children: [/* @__PURE__ */ N(ee, { children: wt(n, t) }), e]
806
+ children: [/* @__PURE__ */ N(ee, { children: jt(n, t) }), e]
760
807
  });
761
808
  };
762
- function kt() {
763
- let e = T(Tt);
809
+ function It() {
810
+ let e = T(Mt);
764
811
  if (e === void 0) throw Error("useColorMode must be used within a ColorModeProvider");
765
812
  return e;
766
813
  }
767
814
  //#endregion
768
815
  //#region src/form/LevoForm.tsx
769
- var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant: a = "default", successConfig: o, theme: s, className: c, defaultValues: l, disabled: u, showSuccessScreen: d = !0, onSuccess: f, onError: p }) => {
770
- let m = i(), { schema: h, isLoading: g, bind: _ } = ze(e), v = Ue(s);
816
+ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant: a = "default", successConfig: o, theme: s, className: c, defaultValues: l, disabled: u, showSuccessScreen: d = !0, onSuccess: f, onError: p }) => {
817
+ let m = i(), { schema: h, isLoading: g, bind: _ } = Ke(e), v = Xe(s);
771
818
  return m ? /* @__PURE__ */ N("div", {
772
819
  ..._,
773
820
  className: c,
@@ -797,28 +844,28 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
797
844
  onError: p
798
845
  })
799
846
  }) : null;
800
- }, jt = 1400, Mt = 12 * 1024 * 1024, Nt = new Set(["transparent", "rgba(0, 0, 0, 0)"]), Pt = {
847
+ }, Rt = 1400, zt = 12 * 1024 * 1024, Bt = new Set(["transparent", "rgba(0, 0, 0, 0)"]), Vt = {
801
848
  imagePlaceholder: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=",
802
849
  onImageErrorHandler: () => void 0
803
- }, Ft = (e) => {
850
+ }, Ht = (e) => {
804
851
  let t = getComputedStyle(e);
805
- return !Nt.has(t.backgroundColor) || t.backgroundImage !== "none";
806
- }, It = (e) => {
852
+ return !Bt.has(t.backgroundColor) || t.backgroundImage !== "none";
853
+ }, Ut = (e) => {
807
854
  for (let t = e; t; t = t.parentElement) {
808
855
  let e = getComputedStyle(t).backgroundColor;
809
- if (!Nt.has(e)) return e;
856
+ if (!Bt.has(e)) return e;
810
857
  }
811
858
  return "#ffffff";
812
- }, Lt = async (e, t) => {
813
- let { toPng: n } = await import("./es-CK20DkgT.js"), r = e.getBoundingClientRect(), i = Math.max(r.width, r.height, 1), a = Math.min(2, Math.max(.4, jt / i)), o = await n(e, {
814
- ...Pt,
859
+ }, Wt = async (e, t) => {
860
+ let { toPng: n } = await import("./es-CK20DkgT.js"), r = e.getBoundingClientRect(), i = Math.max(r.width, r.height, 1), a = Math.min(2, Math.max(.4, Rt / i)), o = await n(e, {
861
+ ...Vt,
815
862
  pixelRatio: a,
816
- backgroundColor: It(e),
863
+ backgroundColor: Ut(e),
817
864
  filter: (e) => !t.includes(e)
818
865
  });
819
- if (o.length > Mt) throw Error("capture too large");
866
+ if (o.length > zt) throw Error("capture too large");
820
867
  return o;
821
- }, Rt = 4, zt = 4e3, Bt = (e, t) => {
868
+ }, Gt = 4, Kt = 4e3, qt = (e, t) => {
822
869
  let n = document.elementFromPoint(e.x + e.width / 2, e.y + e.height / 2);
823
870
  for (; n && t.includes(n);) n = n.parentElement;
824
871
  let r = document.body;
@@ -829,8 +876,8 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
829
876
  break;
830
877
  }
831
878
  }
832
- let i = window.innerWidth * window.innerHeight * Rt || 2 ** 53 - 1, a = r;
833
- for (; !Ft(a);) {
879
+ let i = window.innerWidth * window.innerHeight * Gt || 2 ** 53 - 1, a = r;
880
+ for (; !Ht(a);) {
834
881
  let e = a.parentElement;
835
882
  if (!e || e === document.documentElement) break;
836
883
  let t = e.getBoundingClientRect();
@@ -838,13 +885,13 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
838
885
  a = e;
839
886
  }
840
887
  return a;
841
- }, Vt = async (e, t) => {
842
- let { toCanvas: n } = await import("./es-CK20DkgT.js"), r = Bt(e, t), i = r.getBoundingClientRect(), a = Math.max(e.width, e.height, 1), o = Math.min(2, Math.max(.4, jt / a)), s = Math.max(i.width, i.height, 1);
843
- o = Math.min(o, zt / s);
888
+ }, Jt = async (e, t) => {
889
+ let { toCanvas: n } = await import("./es-CK20DkgT.js"), r = qt(e, t), i = r.getBoundingClientRect(), a = Math.max(e.width, e.height, 1), o = Math.min(2, Math.max(.4, Rt / a)), s = Math.max(i.width, i.height, 1);
890
+ o = Math.min(o, Kt / s);
844
891
  let c = await n(r, {
845
- ...Pt,
892
+ ...Vt,
846
893
  pixelRatio: o,
847
- backgroundColor: It(r),
894
+ backgroundColor: Ut(r),
848
895
  filter: (e) => !t.includes(e)
849
896
  }), l = document.createElement("canvas");
850
897
  l.width = Math.max(1, Math.round(e.width * o)), l.height = Math.max(1, Math.round(e.height * o));
@@ -852,7 +899,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
852
899
  if (!u) throw Error("no 2d context");
853
900
  u.drawImage(c, (e.x - i.left) * o, (e.y - i.top) * o, e.width * o, e.height * o, 0, 0, l.width, l.height);
854
901
  let d = l.toDataURL("image/png");
855
- if (d.length > Mt) throw Error("capture too large");
902
+ if (d.length > zt) throw Error("capture too large");
856
903
  return d;
857
904
  }, q = {
858
905
  ring: 99997,
@@ -867,24 +914,24 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
867
914
  }, Y = (e) => {
868
915
  let t = e?.getAttribute("data-tsd-source");
869
916
  return t ? t.replace(/^\//, "") : null;
870
- }, Ht = (e) => Array.from(document.querySelectorAll("[data-tsd-source]")).filter((t) => Y(t) === e), Ut = (e, t) => {
871
- let n = Ht(t).indexOf(e);
917
+ }, Yt = (e) => Array.from(document.querySelectorAll("[data-tsd-source]")).filter((t) => Y(t) === e), Xt = (e, t) => {
918
+ let n = Yt(t).indexOf(e);
872
919
  return n < 0 ? 0 : n;
873
920
  }, X = (e, t = 0) => {
874
- let n = Ht(e);
921
+ let n = Yt(e);
875
922
  return n[t] ?? n[0] ?? null;
876
- }, Wt = (e, t) => {
923
+ }, Zt = (e, t) => {
877
924
  let n = (e.getAttribute("data-staged-key") || "").split(/\s+/).filter(Boolean);
878
925
  n.includes(t) || e.setAttribute("data-staged-key", [...n, t].join(" "));
879
- }, Gt = (e, t) => {
926
+ }, Qt = (e, t) => {
880
927
  let n = (e.getAttribute("data-staged-key") || "").split(/\s+/).filter((e) => e && e !== t);
881
928
  n.length ? e.setAttribute("data-staged-key", n.join(" ")) : e.removeAttribute("data-staged-key");
882
- }, Kt = (e, t) => {
929
+ }, $t = (e, t) => {
883
930
  let n = Object.entries(t.styles).filter(([e]) => /^-?[a-zA-Z][a-zA-Z0-9-]*$/.test(e)).map(([e, t]) => `${e}:${String(t).replace(/[;{}]/g, "")} !important;`).join("");
884
931
  if (!n) return "";
885
932
  let r = `[data-staged-key~="${CSS.escape(e)}"]{${n}}`, i = t.media?.replace(/[;{}]/g, "").trim();
886
933
  return i ? `@media ${i}{${r}}` : r;
887
- }, qt = (e) => {
934
+ }, en = (e) => {
888
935
  let t = e.tagName.toLowerCase();
889
936
  return t === "input" ? {
890
937
  checkbox: "Checkbox",
@@ -926,14 +973,14 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
926
973
  aside: "Sidebar",
927
974
  div: "Container"
928
975
  }[t] || `${t.charAt(0).toUpperCase()}${t.slice(1)}`;
929
- }, Jt = 36, Yt = (e) => {
930
- let t = qt(e), n = ((e) => e.replace(/\s+/g, " ").trim())(e.getAttribute("aria-label") || e.getAttribute("alt") || e.getAttribute("title") || e.getAttribute("name") || "");
931
- return n ? `${t} · ${n.length > Jt ? `${n.slice(0, Jt - 1).trimEnd()}…` : n}` : t;
932
- }, Xt = (e) => {
976
+ }, tn = 36, nn = (e) => {
977
+ let t = en(e), n = ((e) => e.replace(/\s+/g, " ").trim())(e.getAttribute("aria-label") || e.getAttribute("alt") || e.getAttribute("title") || e.getAttribute("name") || "");
978
+ return n ? `${t} · ${n.length > tn ? `${n.slice(0, tn - 1).trimEnd()}…` : n}` : t;
979
+ }, rn = (e) => {
933
980
  let t = [], n = e;
934
981
  for (; n && n.nodeType === 1 && n !== document.body && t.length < 8;) t.unshift(n.tagName.toLowerCase()), n = n.parentElement;
935
982
  return t.join(" > ");
936
- }, Zt = () => {
983
+ }, an = () => {
937
984
  let e = document.createElement("div");
938
985
  e.style.cssText = `position:fixed;pointer-events:none;z-index:${q.overlay};background:${J.hoverBg};outline:2px solid ${J.hover};border-radius:2px;display:none`;
939
986
  let t = document.createElement("div");
@@ -947,10 +994,10 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
947
994
  ring: n,
948
995
  ringLabel: r
949
996
  };
950
- }, Qt = (e, t, n) => {
997
+ }, on = (e, t, n) => {
951
998
  let r = n.getBoundingClientRect();
952
- e.style.display = "block", e.style.left = `${r.left}px`, e.style.top = `${r.top}px`, e.style.width = `${r.width}px`, e.style.height = `${r.height}px`, t.style.display = "block", t.textContent = Yt(n), t.style.left = `${Math.max(4, r.left)}px`, t.style.top = `${r.top > 26 ? r.top - 22 : r.bottom + 4}px`;
953
- }, $t = (e) => {
999
+ e.style.display = "block", e.style.left = `${r.left}px`, e.style.top = `${r.top}px`, e.style.width = `${r.width}px`, e.style.height = `${r.height}px`, t.style.display = "block", t.textContent = nn(n), t.style.left = `${Math.max(4, r.left)}px`, t.style.top = `${r.top > 26 ? r.top - 22 : r.bottom + 4}px`;
1000
+ }, sn = (e) => {
954
1001
  let t = (e instanceof Element ? e : null)?.closest("a[href]");
955
1002
  if (!t || t.target === "_blank") return null;
956
1003
  let n;
@@ -960,11 +1007,11 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
960
1007
  return null;
961
1008
  }
962
1009
  return n.protocol !== "http:" && n.protocol !== "https:" || n.origin === location.origin ? null : n.href;
963
- }, en = (e) => {
1010
+ }, cn = (e) => {
964
1011
  if (!e) return !1;
965
1012
  let t = e.tagName;
966
1013
  return t === "INPUT" || t === "TEXTAREA" || t === "SELECT" || e.isContentEditable === !0;
967
- }, tn = (e) => {
1014
+ }, ln = (e) => {
968
1015
  if (!e.childNodes.length) return !1;
969
1016
  let t = !1;
970
1017
  for (let n of e.childNodes) {
@@ -972,7 +1019,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
972
1019
  (n.textContent ?? "").trim() && (t = !0);
973
1020
  }
974
1021
  return t;
975
- }, nn = 2e3, rn = (e) => {
1022
+ }, un = 2e3, dn = (e) => {
976
1023
  let t = [], n = e;
977
1024
  for (; n && n.nodeType === 1 && n !== document.body && t.length < 8;) {
978
1025
  let e = Y(n);
@@ -983,22 +1030,22 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
983
1030
  }), n = n.parentElement;
984
1031
  }
985
1032
  return t;
986
- }, an = (e) => {
987
- let t = Y(e), n = t ? Ht(t).length : 1, r = t ? Ut(e, t) : 0, i = t && tn(e) ? (e.textContent ?? "").replace(/\s+/g, " ").trim().slice(0, nn) : void 0, a = on(e);
1033
+ }, fn = (e) => {
1034
+ let t = Y(e), n = t ? Yt(t).length : 1, r = t ? Xt(e, t) : 0, i = t && ln(e) ? (e.textContent ?? "").replace(/\s+/g, " ").trim().slice(0, un) : void 0, a = pn(e);
988
1035
  return {
989
1036
  tag: e.tagName.toLowerCase(),
990
1037
  classes: typeof e.className == "string" ? e.className.trim() : "",
991
1038
  text: (e.innerText || "").trim().slice(0, 120),
992
- label: Yt(e),
993
- path: Xt(e),
1039
+ label: nn(e),
1040
+ path: rn(e),
994
1041
  source: t,
995
1042
  index: r,
996
1043
  occurrences: n,
997
- ancestors: rn(e),
1044
+ ancestors: dn(e),
998
1045
  ...i === void 0 ? {} : { fullText: i },
999
1046
  ...a ? { sourceBinding: a } : {}
1000
1047
  };
1001
- }, on = (e) => {
1048
+ }, pn = (e) => {
1002
1049
  let t = e.closest("[data-levo-source]");
1003
1050
  if (!t) return;
1004
1051
  let n = t.getAttribute("data-levo-source") ?? "", r = Y(t), i;
@@ -1011,11 +1058,11 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1011
1058
  raw: n,
1012
1059
  element: {
1013
1060
  source: r ?? "",
1014
- index: r ? Ut(t, r) : 0
1061
+ index: r ? Xt(t, r) : 0
1015
1062
  },
1016
1063
  ...i === void 0 ? {} : { config: i }
1017
1064
  };
1018
- }, sn = () => Array.from(document.querySelectorAll("[data-levo-source]")).map((e) => {
1065
+ }, mn = () => Array.from(document.querySelectorAll("[data-levo-source]")).map((e) => {
1019
1066
  let t = e.getAttribute("data-levo-source") ?? "", n = Y(e), r;
1020
1067
  try {
1021
1068
  r = JSON.parse(t);
@@ -1026,18 +1073,18 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1026
1073
  raw: t,
1027
1074
  element: {
1028
1075
  source: n ?? "",
1029
- index: n ? Ut(e, n) : 0
1076
+ index: n ? Xt(e, n) : 0
1030
1077
  },
1031
1078
  tag: e.tagName.toLowerCase(),
1032
- label: Yt(e),
1079
+ label: nn(e),
1033
1080
  ...r === void 0 ? {} : { config: r }
1034
1081
  };
1035
- }), cn = 14, ln = 2e3, un = 100, dn = 48, fn = new Set([
1082
+ }), hn = 14, gn = 2e3, _n = 100, vn = 48, yn = new Set([
1036
1083
  "script",
1037
1084
  "style",
1038
1085
  "template",
1039
1086
  "noscript"
1040
- ]), pn = (e, t) => t.includes(e) || e.id === "studio-staged" || fn.has(e.tagName.toLowerCase()), mn = (e) => {
1087
+ ]), bn = (e, t) => t.includes(e) || e.id === "studio-staged" || yn.has(e.tagName.toLowerCase()), xn = (e) => {
1041
1088
  let t = !1, n = 0, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
1042
1089
  for (let e of Array.from(document.querySelectorAll("[data-tsd-source]"))) {
1043
1090
  let t = Y(e);
@@ -1049,11 +1096,11 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1049
1096
  for (let t of e.childNodes) {
1050
1097
  if (t.nodeType !== 3) continue;
1051
1098
  let e = (t.textContent ?? "").replace(/\s+/g, " ").trim();
1052
- if (e) return e.length > dn ? `${e.slice(0, dn).trimEnd()}…` : e;
1099
+ if (e) return e.length > vn ? `${e.slice(0, vn).trimEnd()}…` : e;
1053
1100
  }
1054
1101
  }, o = (i, s) => {
1055
1102
  n++;
1056
- let c = Y(i), l = a(i), u = Array.from(i.children).filter((t) => !pn(t, e)), d = {
1103
+ let c = Y(i), l = a(i), u = Array.from(i.children).filter((t) => !bn(t, e)), d = {
1057
1104
  tag: i.tagName.toLowerCase(),
1058
1105
  ...c ? {
1059
1106
  source: c,
@@ -1064,9 +1111,9 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1064
1111
  childCount: u.length,
1065
1112
  children: []
1066
1113
  };
1067
- if (s >= cn) return u.length && (t = !0), d;
1114
+ if (s >= hn) return u.length && (t = !0), d;
1068
1115
  for (let e of u) {
1069
- if (d.children.length >= un || n >= ln) {
1116
+ if (d.children.length >= _n || n >= gn) {
1070
1117
  t = !0;
1071
1118
  break;
1072
1119
  }
@@ -1078,7 +1125,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1078
1125
  tree: o(document.body, 0),
1079
1126
  truncated: t
1080
1127
  };
1081
- }, hn = () => {
1128
+ }, Sn = () => {
1082
1129
  let e = null;
1083
1130
  return {
1084
1131
  send: (t) => {
@@ -1093,7 +1140,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1093
1140
  return !0;
1094
1141
  }
1095
1142
  };
1096
- }, gn = (e) => {
1143
+ }, Cn = (e) => {
1097
1144
  let t = location.pathname, n = () => {
1098
1145
  location.pathname !== t && (t = location.pathname, e.onPathChange());
1099
1146
  }, r = !1;
@@ -1113,19 +1160,19 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1113
1160
  e.__inspectorPatched && e.__orig && (history.pushState = e.__orig), t.__inspectorPatched && t.__orig && (history.replaceState = t.__orig);
1114
1161
  }
1115
1162
  } };
1116
- }, _n = !1, vn = /* @__PURE__ */ new Set(), yn = () => {
1117
- if (!_n) {
1118
- _n = !0;
1119
- for (let e of vn) e();
1163
+ }, wn = !1, Tn = /* @__PURE__ */ new Set(), En = () => {
1164
+ if (!wn) {
1165
+ wn = !0;
1166
+ for (let e of Tn) e();
1120
1167
  }
1121
- }, bn = (e) => (vn.add(e), () => {
1122
- vn.delete(e);
1123
- }), xn = () => j(bn, () => _n, () => !1), Sn = (e) => {
1168
+ }, Dn = (e) => (Tn.add(e), () => {
1169
+ Tn.delete(e);
1170
+ }), On = () => j(Dn, () => wn, () => !1), kn = (e) => {
1124
1171
  let { channel: t, originals: n, staged: r } = e, i = t.send, a = null;
1125
1172
  return { onMessage: (o) => {
1126
1173
  let s = o.data;
1127
1174
  if (!(!s || s.source !== "web-chat") && t.acceptOrigin(o)) {
1128
- if (yn(), s.type === "set-access-preview") $e(s.stage ?? null);
1175
+ if (En(), s.type === "set-access-preview") ot(s.stage ?? null);
1129
1176
  else if (s.type === "set-inspect") e.setInspect(s.enabled);
1130
1177
  else if (s.type === "set-text-edit") e.setTextEdit(s.enabled);
1131
1178
  else if (s.type === "revert-text") {
@@ -1204,7 +1251,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1204
1251
  behavior: "smooth"
1205
1252
  }), i({
1206
1253
  type: "element-selected",
1207
- element: an(r)
1254
+ element: fn(r)
1208
1255
  });
1209
1256
  } else if (s.type === "edit-element") {
1210
1257
  let t = String(s.element?.source || ""), n = Number.isInteger(s.element?.index) ? s.element.index : 0, r = t ? X(t, n) : null;
@@ -1223,7 +1270,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1223
1270
  behavior: "smooth"
1224
1271
  }), i({
1225
1272
  type: "element-selected",
1226
- element: an(r)
1273
+ element: fn(r)
1227
1274
  }), e.isTextEditing() || e.setTextEdit(!0);
1228
1275
  let o = e.editableTarget(r);
1229
1276
  o && e.startEditAtEnd(o);
@@ -1246,7 +1293,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1246
1293
  }
1247
1294
  } else if (s.type === "clear-highlight") a && (a = null, !e.isInspecting() && !e.editingNode() && e.hideTextHover());
1248
1295
  else if (s.type === "request-layers") {
1249
- let { tree: t, truncated: n } = mn(e.ownNodes);
1296
+ let { tree: t, truncated: n } = xn(e.ownNodes);
1250
1297
  i({
1251
1298
  type: "layers-tree",
1252
1299
  tree: t,
@@ -1254,7 +1301,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1254
1301
  });
1255
1302
  } else if (s.type === "request-sources") i({
1256
1303
  type: "sources-list",
1257
- sources: sn()
1304
+ sources: mn()
1258
1305
  });
1259
1306
  else if (s.type === "capture-selected") {
1260
1307
  let t = String(s.requestId || "");
@@ -1269,7 +1316,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1269
1316
  });
1270
1317
  return;
1271
1318
  }
1272
- Lt(n, e.ownNodes).then((e) => {
1319
+ Wt(n, e.ownNodes).then((e) => {
1273
1320
  console.info(`[levo-inspector] element capture ok <${n.tagName.toLowerCase()}> (${Math.round(e.length / 1024)}kB)`), i({
1274
1321
  type: "capture-result",
1275
1322
  requestId: t,
@@ -1290,7 +1337,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1290
1337
  }
1291
1338
  }
1292
1339
  } };
1293
- }, Cn = () => {
1340
+ }, An = () => {
1294
1341
  let e = /* @__PURE__ */ new Map(), t = () => {
1295
1342
  if (e.size > 50) {
1296
1343
  let t = e.keys().next().value;
@@ -1310,31 +1357,31 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1310
1357
  return e.delete(t), n;
1311
1358
  }
1312
1359
  };
1313
- }, wn = 6, Tn = 12, En = 12, Dn = .6, On = (e, t, n, r) => ({
1360
+ }, jn = 6, Mn = 12, Nn = 12, Pn = .6, Fn = (e, t, n, r) => ({
1314
1361
  x: Math.min(e, n),
1315
1362
  y: Math.min(t, r),
1316
1363
  width: Math.abs(n - e),
1317
1364
  height: Math.abs(r - t)
1318
- }), kn = (e, t) => {
1365
+ }), In = (e, t) => {
1319
1366
  let n = e.x + e.width, r = e.y + e.height, i = [];
1320
1367
  for (let a of Array.from(document.querySelectorAll("[data-tsd-source]"))) {
1321
1368
  if (t.includes(a)) continue;
1322
1369
  let o = a.getBoundingClientRect(), s = o.width * o.height;
1323
- s <= 0 || Math.max(0, Math.min(n, o.right) - Math.max(e.x, o.left)) * Math.max(0, Math.min(r, o.bottom) - Math.max(e.y, o.top)) / s >= Dn && i.push(a);
1370
+ s <= 0 || Math.max(0, Math.min(n, o.right) - Math.max(e.x, o.left)) * Math.max(0, Math.min(r, o.bottom) - Math.max(e.y, o.top)) / s >= Pn && i.push(a);
1324
1371
  }
1325
1372
  let a = new Set(i), o = i.filter((e) => {
1326
1373
  for (let t = e.parentElement; t; t = t.parentElement) if (a.has(t)) return !1;
1327
1374
  return !0;
1328
- }), s = o.length > En, c = [], l = [];
1329
- for (let e of o.slice(0, En)) {
1375
+ }), s = o.length > Nn, c = [], l = [];
1376
+ for (let e of o.slice(0, Nn)) {
1330
1377
  let t = Y(e);
1331
1378
  if (!t) continue;
1332
1379
  let n = (e.innerText || "").replace(/\s+/g, " ").trim().slice(0, 80);
1333
1380
  c.push({
1334
1381
  source: t,
1335
- index: Ut(e, t),
1382
+ index: Xt(e, t),
1336
1383
  tag: e.tagName.toLowerCase(),
1337
- label: Yt(e),
1384
+ label: nn(e),
1338
1385
  ...n ? { text: n } : {}
1339
1386
  }), l.push(e);
1340
1387
  }
@@ -1343,10 +1390,10 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1343
1390
  nodes: l,
1344
1391
  truncated: s
1345
1392
  };
1346
- }, An = () => Array.from({ length: En }, () => {
1393
+ }, Ln = () => Array.from({ length: Nn }, () => {
1347
1394
  let e = document.createElement("div");
1348
1395
  return e.style.cssText = `position:fixed;pointer-events:none;z-index:${q.ring};outline:1.5px solid ${J.select};outline-offset:1px;border-radius:3px;box-shadow:0 0 0 3px ${J.selectGlow};display:none`, e;
1349
- }), jn = () => {
1396
+ }), Rn = () => {
1350
1397
  let e = document.createElement("div");
1351
1398
  e.style.cssText = `position:fixed;pointer-events:none;z-index:${q.overlay};border:1.5px dashed ${J.select};background:${J.selectGlow};border-radius:2px;display:none`;
1352
1399
  let t = null, n = !1, r = 0, i = 0, a = () => {
@@ -1363,31 +1410,31 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1363
1410
  pointerMove: (a, o) => {
1364
1411
  if (!t) return;
1365
1412
  if (a = Math.min(Math.max(0, a), window.innerWidth), o = Math.min(Math.max(0, o), window.innerHeight), r = a, i = o, !n) {
1366
- if (Math.abs(a - t.x) < wn && Math.abs(o - t.y) < wn) return;
1413
+ if (Math.abs(a - t.x) < jn && Math.abs(o - t.y) < jn) return;
1367
1414
  n = !0;
1368
1415
  }
1369
- let s = On(t.x, t.y, a, o);
1416
+ let s = Fn(t.x, t.y, a, o);
1370
1417
  e.style.display = "block", e.style.left = `${s.x}px`, e.style.top = `${s.y}px`, e.style.width = `${s.width}px`, e.style.height = `${s.height}px`;
1371
1418
  },
1372
1419
  pointerUp: () => {
1373
1420
  let e = n, o = t;
1374
1421
  if (t = null, n = !1, a(), !e || !o) return null;
1375
- let s = On(o.x, o.y, r, i);
1376
- return s.width < Tn || s.height < Tn ? null : s;
1422
+ let s = Fn(o.x, o.y, r, i);
1423
+ return s.width < Mn || s.height < Mn ? null : s;
1377
1424
  },
1378
1425
  cancel: () => {
1379
1426
  t = null, n = !1, a();
1380
1427
  },
1381
1428
  isDragging: () => n
1382
1429
  };
1383
- }, Mn = (e) => {
1430
+ }, zn = (e) => {
1384
1431
  let { originals: t, editingNode: n } = e, r = /* @__PURE__ */ new Map(), i = () => {
1385
1432
  let e = document.getElementById("studio-staged");
1386
1433
  return e || (e = document.createElement("style"), e.id = "studio-staged", document.head.appendChild(e)), e;
1387
1434
  }, a = () => {
1388
1435
  let e = [];
1389
1436
  for (let [t, n] of r) if (n.kind === "style") {
1390
- let r = Kt(t, n);
1437
+ let r = $t(t, n);
1391
1438
  r && e.push(r);
1392
1439
  }
1393
1440
  let t = e.join("\n");
@@ -1396,7 +1443,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1396
1443
  n.textContent !== t && (n.textContent = t);
1397
1444
  }, o = (e, r) => {
1398
1445
  let i = X(r.source, r.index);
1399
- if (i) if (r.kind === "style") Wt(i, e);
1446
+ if (i) if (r.kind === "style") Zt(i, e);
1400
1447
  else if (r.kind === "image") t.captureOnce(`${r.source}#${r.index}:src`, i.getAttribute("src") ?? ""), t.captureOnce(`${r.source}#${r.index}:srcset`, i.getAttribute("srcset") ?? ""), i.getAttribute("src") !== r.value && i.setAttribute("src", r.value), i.hasAttribute("srcset") && i.removeAttribute("srcset");
1401
1448
  else {
1402
1449
  if (i === n()) return;
@@ -1410,7 +1457,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1410
1457
  if (!n) return;
1411
1458
  r.delete(e);
1412
1459
  let i = X(n.source, n.index);
1413
- if (n.kind === "style") i && Gt(i, e), a();
1460
+ if (n.kind === "style") i && Qt(i, e), a();
1414
1461
  else if (n.kind === "image") {
1415
1462
  let e = t.restore(`${n.source}#${n.index}:src`), r = t.restore(`${n.source}#${n.index}:srcset`);
1416
1463
  i && (e != null && (e ? i.setAttribute("src", e) : i.removeAttribute("src")), r != null && (r ? i.setAttribute("srcset", r) : i.removeAttribute("srcset")));
@@ -1439,7 +1486,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1439
1486
  for (let e of Array.from(document.querySelectorAll("[data-staged-key]"))) e.removeAttribute("data-staged-key");
1440
1487
  }
1441
1488
  };
1442
- }, Nn = (e) => {
1489
+ }, Bn = (e) => {
1443
1490
  let { channel: t, originals: n, clearTextHover: r } = e, i = null, a = "", o = 0, s = (() => {
1444
1491
  try {
1445
1492
  let e = document.createElement("div");
@@ -1458,7 +1505,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1458
1505
  n.selectNodeContents(e), n.collapse(!1), t.removeAllRanges(), t.addRange(n);
1459
1506
  }, d = (e, t = !1) => {
1460
1507
  if (i === e) return;
1461
- i && p(i), i = e, a = Y(e) || "", o = Ut(e, a), r(), n.capture(`${a}#${o}`, e.textContent ?? ""), e.setAttribute("contenteditable", s ? "plaintext-only" : "true");
1508
+ i && p(i), i = e, a = Y(e) || "", o = Xt(e, a), r(), n.capture(`${a}#${o}`, e.textContent ?? ""), e.setAttribute("contenteditable", s ? "plaintext-only" : "true");
1462
1509
  let d = e;
1463
1510
  d.style.outline = `2px solid ${J.hover}`, d.style.outlineOffset = "3px", d.style.borderRadius = "3px", d.focus(), t && u(e), d.addEventListener("blur", c, !0), d.addEventListener("keydown", l, !0);
1464
1511
  }, f = (e) => {
@@ -1477,7 +1524,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1477
1524
  tag: e.tagName.toLowerCase(),
1478
1525
  value: c,
1479
1526
  previous: s,
1480
- occurrences: r ? Ht(r).length : 1
1527
+ occurrences: r ? Yt(r).length : 1
1481
1528
  }
1482
1529
  });
1483
1530
  }, m = (e) => {
@@ -1496,16 +1543,16 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1496
1543
  i && f(i);
1497
1544
  }
1498
1545
  };
1499
- }, Pn = "2026-07-24g · element-capture + region-drag + region-highlights (stale-region guard)";
1500
- function Fn() {
1501
- return E(() => In(), []), null;
1546
+ }, Vn = "2026-07-24g · element-capture + region-drag + region-highlights (stale-region guard)";
1547
+ function Hn() {
1548
+ return E(() => Un(), []), null;
1502
1549
  }
1503
- function In() {
1504
- let e = !1, t = null, n = null, r = !1, i = null, a = Cn(), o = hn(), { overlay: s, label: c, ring: l, ringLabel: u } = Zt();
1550
+ function Un() {
1551
+ let e = !1, t = null, n = null, r = !1, i = null, a = An(), o = Sn(), { overlay: s, label: c, ring: l, ringLabel: u } = an();
1505
1552
  document.body.append(s, c, l, u);
1506
- let d = jn();
1553
+ let d = Rn();
1507
1554
  document.body.append(d.node);
1508
- let f = An();
1555
+ let f = Ln();
1509
1556
  document.body.append(...f);
1510
1557
  let p = [
1511
1558
  s,
@@ -1535,14 +1582,14 @@ function In() {
1535
1582
  }, S = (e) => !e || p.includes(e) || e === document.body || e === document.documentElement, C = (e) => {
1536
1583
  if (!e || S(e)) return null;
1537
1584
  let t = Y(e) ? e : e.closest("[data-tsd-source]");
1538
- return !t || S(t) || !tn(t) ? null : t;
1539
- }, w = (e) => Qt(s, c, e), T = () => {
1585
+ return !t || S(t) || !ln(t) ? null : t;
1586
+ }, w = (e) => on(s, c, e), T = () => {
1540
1587
  if (n) {
1541
1588
  if (!n.isConnected) {
1542
1589
  P();
1543
1590
  return;
1544
1591
  }
1545
- Qt(l, u, n);
1592
+ on(l, u, n);
1546
1593
  }
1547
1594
  }, E = 0, D = () => {
1548
1595
  E || !n || r || (E = requestAnimationFrame(() => {
@@ -1571,13 +1618,13 @@ function In() {
1571
1618
  n = null, O.disconnect(), z(), E &&= (cancelAnimationFrame(E), 0), l.style.display = "none", u.style.display = "none", y(), g();
1572
1619
  }, F = (e) => w(e), I = () => {
1573
1620
  s.style.display = "none", c.style.display = "none";
1574
- }, L = Nn({
1621
+ }, L = Bn({
1575
1622
  channel: o,
1576
1623
  originals: a,
1577
1624
  clearTextHover: () => {
1578
1625
  i = null, I();
1579
1626
  }
1580
- }), R = Mn({
1627
+ }), R = zn({
1581
1628
  originals: a,
1582
1629
  editingNode: L.editingNode
1583
1630
  }), z = () => {
@@ -1648,10 +1695,10 @@ function In() {
1648
1695
  let n = d.pointerUp();
1649
1696
  if (!n) return;
1650
1697
  le = !0, P();
1651
- let { elements: r, nodes: i, truncated: a } = kn(n, p);
1698
+ let { elements: r, nodes: i, truncated: a } = In(n, p);
1652
1699
  console.info(`[levo-inspector] region drag: ${Math.round(n.width)}×${Math.round(n.height)} — ${r.length} element(s)${a ? " (truncated)" : ""}`), v(i);
1653
1700
  let s = ++h;
1654
- Vt(n, p).then((e) => {
1701
+ Jt(n, p).then((e) => {
1655
1702
  s === h && (console.info(`[levo-inspector] region capture ok (${Math.round(e.length / 1024)}kB)`), o.send({
1656
1703
  type: "region-selected",
1657
1704
  rect: n,
@@ -1669,7 +1716,7 @@ function In() {
1669
1716
  }));
1670
1717
  });
1671
1718
  }, U = () => H(), he = (e) => {
1672
- let t = $t(e.target);
1719
+ let t = sn(e.target);
1673
1720
  return t ? (e.preventDefault(), e.stopPropagation(), window.open(t, "_blank", "noopener,noreferrer"), !0) : !1;
1674
1721
  }, ge = (i) => {
1675
1722
  if (le) {
@@ -1695,9 +1742,9 @@ function In() {
1695
1742
  let s = a.closest("[data-tsd-source]") || a;
1696
1743
  y(), g(), n = s, T(), N(), o.send({
1697
1744
  type: "element-selected",
1698
- element: an(s)
1745
+ element: fn(s)
1699
1746
  });
1700
- }, _e = Sn({
1747
+ }, _e = kn({
1701
1748
  channel: o,
1702
1749
  originals: a,
1703
1750
  staged: R,
@@ -1746,7 +1793,7 @@ function In() {
1746
1793
  type: "route",
1747
1794
  route: e
1748
1795
  });
1749
- }, Se = gn({ onPathChange: () => {
1796
+ }, Se = Cn({ onPathChange: () => {
1750
1797
  P(), xe();
1751
1798
  } }), Ce = (t) => {
1752
1799
  if (L.editingNode()) return;
@@ -1758,13 +1805,13 @@ function In() {
1758
1805
  r ? (t.stopPropagation(), te(!1)) : e && (t.stopPropagation(), ee(!1));
1759
1806
  return;
1760
1807
  }
1761
- if (t.metaKey || t.ctrlKey || t.altKey || t.shiftKey || t.repeat || en(document.activeElement)) return;
1808
+ if (t.metaKey || t.ctrlKey || t.altKey || t.shiftKey || t.repeat || cn(document.activeElement)) return;
1762
1809
  let n = t.key.toLowerCase();
1763
1810
  n === "s" ? (t.preventDefault(), t.stopPropagation(), ee(!e)) : n === "t" && (t.preventDefault(), t.stopPropagation(), te(!r));
1764
1811
  };
1765
1812
  window.addEventListener("mousemove", ae, !0), window.addEventListener("scroll", ce, !0), window.addEventListener("resize", be), window.addEventListener("click", ge, !0), window.addEventListener("keydown", Ce, !0), window.addEventListener("message", _e.onMessage), window.addEventListener("mouseout", V, !0), window.addEventListener("pointerdown", fe, !0), window.addEventListener("pointermove", pe, !0), window.addEventListener("pointerup", me, !0), window.addEventListener("pointercancel", U, !0);
1766
1813
  for (let e of ve) window.addEventListener(e, ye, !0);
1767
- return console.info(`[levo-inspector] build ${Pn} — runtime mounted`), xe(), o.send({ type: "ready" }), () => {
1814
+ return console.info(`[levo-inspector] build ${Vn} — runtime mounted`), xe(), o.send({ type: "ready" }), () => {
1768
1815
  window.removeEventListener("mousemove", ae, !0), window.removeEventListener("keydown", Ce, !0), window.removeEventListener("scroll", ce, !0), window.removeEventListener("resize", be), window.removeEventListener("mouseout", V, !0), window.removeEventListener("pointerdown", fe, !0), window.removeEventListener("pointermove", pe, !0), window.removeEventListener("pointerup", me, !0), window.removeEventListener("pointercancel", U, !0), window.removeEventListener("click", ge, !0), window.removeEventListener("message", _e.onMessage);
1769
1816
  for (let e of ve) window.removeEventListener(e, ye, !0);
1770
1817
  O.disconnect(), k.disconnect(), E && cancelAnimationFrame(E), B && cancelAnimationFrame(B), oe && cancelAnimationFrame(oe), R.teardown(), Se.teardown(), L.teardown(), document.documentElement.style.cursor = "", b?.remove(), s.remove(), c.remove(), l.remove(), u.remove(), H(), d.node.remove();
@@ -1773,15 +1820,15 @@ function In() {
1773
1820
  }
1774
1821
  //#endregion
1775
1822
  //#region src/branding/MadeWithLevo.tsx
1776
- var Ln = "levo-made-with", Rn = `.${Ln}{opacity:.2;transition:opacity 150ms,transform 150ms}
1777
- .${Ln}:hover,.${Ln}:focus-visible{opacity:1;transform:translateY(-2px)}`, zn = ({ slug: e }) => {
1823
+ var Wn = "levo-made-with", Gn = `.${Wn}{opacity:.2;transition:opacity 150ms,transform 150ms}
1824
+ .${Wn}:hover,.${Wn}:focus-visible{opacity:1;transform:translateY(-2px)}`, Kn = ({ slug: e }) => {
1778
1825
  let t = `utm_source=${encodeURIComponent(e || "website")}&utm_term=Made%20With%20Levo&utm_campaign=footer_branding&utm_medium=organic_footer_branding`;
1779
1826
  return /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N("style", {
1780
1827
  href: "levo-made-with",
1781
1828
  precedence: "default",
1782
- children: Rn
1829
+ children: Gn
1783
1830
  }), /* @__PURE__ */ P("a", {
1784
- className: Ln,
1831
+ className: Wn,
1785
1832
  href: `https://levo.so/?${t}`,
1786
1833
  target: "_blank",
1787
1834
  rel: "noopener noreferrer",
@@ -1812,20 +1859,20 @@ var Ln = "levo-made-with", Rn = `.${Ln}{opacity:.2;transition:opacity 150ms,tran
1812
1859
  }
1813
1860
  }), "Made with Levo"]
1814
1861
  })] });
1815
- }, Bn = "levo:page-id", Vn = () => {
1862
+ }, qn = "levo:page-id", Jn = () => {
1816
1863
  if (typeof document > "u") return null;
1817
- let e = document.querySelectorAll(`meta[name="${Bn}"]`);
1864
+ let e = document.querySelectorAll(`meta[name="${qn}"]`);
1818
1865
  return e[e.length - 1]?.getAttribute("content")?.trim() || null;
1819
- }, Hn = C(() => import("./dist-DEXGyFeH.js").then((e) => e.n).then((e) => ({ default: e.PopupLoader }))), Un = ({ siteId: e, pageId: t }) => {
1866
+ }, Yn = C(() => import("./dist-DEXGyFeH.js").then((e) => e.n).then((e) => ({ default: e.PopupLoader }))), Xn = ({ siteId: e, pageId: t }) => {
1820
1867
  let n = G(), r = i();
1821
1868
  return !n || !r ? null : /* @__PURE__ */ N(x, {
1822
1869
  fallback: null,
1823
- children: /* @__PURE__ */ N(Hn, {
1870
+ children: /* @__PURE__ */ N(Yn, {
1824
1871
  pageId: t,
1825
1872
  siteId: e
1826
1873
  })
1827
1874
  });
1828
- }, Wn = S(null), Gn = Wn.Provider, Kn = () => T(Wn), qn = () => i(), Jn = () => n(), Yn = ({ site: e, analytics: t = !0, children: n }) => {
1875
+ }, Zn = S(null), Qn = Zn.Provider, $n = () => T(Zn), er = () => i(), tr = () => n(), nr = ({ site: e, analytics: t = !0, children: n }) => {
1829
1876
  let [i] = A(() => {
1830
1877
  if (!e) return null;
1831
1878
  let n = Oe(e), r = De(n);
@@ -1837,33 +1884,33 @@ var Ln = "levo-made-with", Rn = `.${Ln}{opacity:.2;transition:opacity 150ms,tran
1837
1884
  }),
1838
1885
  site: e
1839
1886
  } : null;
1840
- }), [a, o] = A(null), s = B({ select: (e) => e.location.pathname }), c = xn();
1887
+ }), [a, o] = A(null), s = B({ select: (e) => e.location.pathname }), c = On();
1841
1888
  return E(() => {
1842
1889
  i && (window.levo_client = i.client, window.levo_insights = i.insights);
1843
1890
  }, [i]), D(() => {
1844
1891
  if (!i) return;
1845
- let e = Vn();
1892
+ let e = Jn();
1846
1893
  o(e), i.insights.init({ pageId: e });
1847
1894
  }, [i, s]), i ? /* @__PURE__ */ P(r, {
1848
1895
  client: i.client,
1849
1896
  insights: i.insights,
1850
1897
  children: [
1851
- /* @__PURE__ */ N(Gn, {
1898
+ /* @__PURE__ */ N(Qn, {
1852
1899
  value: i.site,
1853
1900
  children: n
1854
1901
  }),
1855
- !c && /* @__PURE__ */ N(bt, {
1902
+ !c && /* @__PURE__ */ N(Dt, {
1856
1903
  site: i.site,
1857
1904
  path: s
1858
1905
  }),
1859
- /* @__PURE__ */ N(Un, {
1906
+ /* @__PURE__ */ N(Xn, {
1860
1907
  pageId: a ?? void 0,
1861
1908
  siteId: i.site.id
1862
1909
  }),
1863
- !c && !!i.site.feature_flag?.branding && /* @__PURE__ */ N(zn, { slug: i.site.slug })
1910
+ !c && !!i.site.feature_flag?.branding && /* @__PURE__ */ N(Kn, { slug: i.site.slug })
1864
1911
  ]
1865
1912
  }) : /* @__PURE__ */ N(M, { children: n });
1866
- }, Xn = (e, t) => {
1913
+ }, rr = (e, t) => {
1867
1914
  let n = h(t);
1868
1915
  return ({ location: t }) => {
1869
1916
  if (!e.isLocalized) return;
@@ -1879,7 +1926,7 @@ var Ln = "levo-made-with", Rn = `.${Ln}{opacity:.2;transition:opacity 150ms,tran
1879
1926
  to: r.path
1880
1927
  });
1881
1928
  };
1882
- }, Zn = (e) => {
1929
+ }, ir = (e) => {
1883
1930
  let t = e.locales ?? [], n = e.domain?.trim().replace(/^https?:\/\//, "").replace(/\/+$/, "");
1884
1931
  return {
1885
1932
  locales: t,
@@ -1887,8 +1934,8 @@ var Ln = "levo-made-with", Rn = `.${Ln}{opacity:.2;transition:opacity 150ms,tran
1887
1934
  isLocalized: t.length > 1,
1888
1935
  origin: n ? `https://${n}` : null
1889
1936
  };
1890
- }, Qn = (e) => e.replace(/\/$/, ""), $n = (e) => {
1891
- let { neutralPath: t, locales: n, activePrefix: r, hasRoute: i } = e, a = Qn(e.origin), o = `${a}${t}`;
1937
+ }, ar = (e) => e.replace(/\/$/, ""), or = (e) => {
1938
+ let { neutralPath: t, locales: n, activePrefix: r, hasRoute: i } = e, a = ar(e.origin), o = `${a}${t}`;
1892
1939
  if (n.length <= 1) return [{
1893
1940
  rel: "canonical",
1894
1941
  href: o
@@ -1910,11 +1957,11 @@ var Ln = "levo-made-with", Rn = `.${Ln}{opacity:.2;transition:opacity 150ms,tran
1910
1957
  hrefLang: "x-default",
1911
1958
  href: o
1912
1959
  }), s;
1913
- }, er = ({ config: e, routeTree: t }) => {
1960
+ }, sr = ({ config: e, routeTree: t }) => {
1914
1961
  let n = B({ select: (e) => e.location.pathname });
1915
1962
  if (!e.isLocalized || !e.origin) return null;
1916
1963
  let { neutralPath: r } = f(n, e.locales);
1917
- return /* @__PURE__ */ N(M, { children: $n({
1964
+ return /* @__PURE__ */ N(M, { children: or({
1918
1965
  neutralPath: r,
1919
1966
  origin: e.origin,
1920
1967
  locales: e.locales,
@@ -1924,7 +1971,7 @@ var Ln = "levo-made-with", Rn = `.${Ln}{opacity:.2;transition:opacity 150ms,tran
1924
1971
  hrefLang: e.hrefLang,
1925
1972
  rel: e.rel
1926
1973
  }, e.hrefLang ?? e.href)) });
1927
- }, tr = S(void 0), nr = ({ children: e, locale: t, locales: n, defaultLocale: r, source: i = "default", hasRoute: a }) => {
1974
+ }, cr = S(void 0), lr = ({ children: e, locale: t, locales: n, defaultLocale: r, source: i = "default", hasRoute: a }) => {
1928
1975
  let o = O(() => {
1929
1976
  let e = n?.length ? n : [t];
1930
1977
  return {
@@ -1948,13 +1995,13 @@ var Ln = "levo-made-with", Rn = `.${Ln}{opacity:.2;transition:opacity 150ms,tran
1948
1995
  i,
1949
1996
  a
1950
1997
  ]);
1951
- return /* @__PURE__ */ N(tr.Provider, {
1998
+ return /* @__PURE__ */ N(cr.Provider, {
1952
1999
  value: o,
1953
2000
  children: e
1954
2001
  });
1955
2002
  };
1956
- function rr() {
1957
- return T(tr) || {
2003
+ function ur() {
2004
+ return T(cr) || {
1958
2005
  locale: "en",
1959
2006
  locales: ["en"],
1960
2007
  defaultLocale: "en",
@@ -1964,13 +2011,13 @@ function rr() {
1964
2011
  pathFor: (e) => e
1965
2012
  };
1966
2013
  }
1967
- function ir(e) {
2014
+ function dr(e) {
1968
2015
  let { prefix: t } = f(B({ select: (e) => e.location.pathname }), e.locales);
1969
2016
  return t ?? e.defaultLocale;
1970
2017
  }
1971
- var ar = ({ config: e, children: t, routeTree: n }) => {
2018
+ var fr = ({ config: e, children: t, routeTree: n }) => {
1972
2019
  let { prefix: r } = f(B({ select: (e) => e.location.pathname }), e.locales);
1973
- return /* @__PURE__ */ N(nr, {
2020
+ return /* @__PURE__ */ N(lr, {
1974
2021
  defaultLocale: e.defaultLocale,
1975
2022
  hasRoute: n ? h(n) : void 0,
1976
2023
  locale: r ?? e.defaultLocale,
@@ -1979,8 +2026,8 @@ var ar = ({ config: e, children: t, routeTree: n }) => {
1979
2026
  children: t
1980
2027
  });
1981
2028
  };
1982
- function or() {
1983
- let { locale: e, locales: t, isMultiLocale: n, setLocale: r, pathFor: i, hasRoute: a } = rr(), o = B({ select: (e) => e.location.pathname });
2029
+ function pr() {
2030
+ let { locale: e, locales: t, isMultiLocale: n, setLocale: r, pathFor: i, hasRoute: a } = ur(), o = B({ select: (e) => e.location.pathname });
1984
2031
  return O(() => {
1985
2032
  if (!n) return [];
1986
2033
  let { neutralPath: s } = f(o, t), c = t.filter((e) => !a || a(i(s, e)));
@@ -2007,14 +2054,14 @@ function or() {
2007
2054
  }
2008
2055
  //#endregion
2009
2056
  //#region src/pageHead.tsx
2010
- var sr = (e) => JSON.stringify(e).replace(/<\//g, "<\\/"), cr = (e) => {
2057
+ var mr = (e) => JSON.stringify(e).replace(/<\//g, "<\\/"), hr = (e) => {
2011
2058
  let t = {}, n = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*("([^"]*)"|'([^']*)'|[^\s"'>]+))?/g;
2012
2059
  for (let r = n.exec(e); r; r = n.exec(e)) {
2013
2060
  let e = r[1];
2014
2061
  !e || /^on/i.test(e) || (t[e] = r[3] ?? r[4] ?? (r[2] ? r[2] : ""));
2015
2062
  }
2016
2063
  return t;
2017
- }, lr = (e) => {
2064
+ }, gr = (e) => {
2018
2065
  let t = {
2019
2066
  meta: [],
2020
2067
  links: [],
@@ -2022,11 +2069,11 @@ var sr = (e) => JSON.stringify(e).replace(/<\//g, "<\\/"), cr = (e) => {
2022
2069
  };
2023
2070
  if (!e?.trim()) return t;
2024
2071
  let n = e.replace(/<script\b([^>]*)>([\s\S]*?)<\/script\s*>/gi, (e, n, r) => {
2025
- let i = cr(n), a = r.trim();
2072
+ let i = hr(n), a = r.trim();
2026
2073
  return a && (i.children = a), t.scripts.push(i), "";
2027
2074
  });
2028
- return n = n.replace(/<(meta|link)\b([^>]*?)\/?>/gi, (e, n, r) => ((n.toLowerCase() === "meta" ? t.meta : t.links).push(cr(r)), "")), t;
2029
- }, ur = (e = {}, t = {}) => {
2075
+ return n = n.replace(/<(meta|link)\b([^>]*?)\/?>/gi, (e, n, r) => ((n.toLowerCase() === "meta" ? t.meta : t.links).push(hr(r)), "")), t;
2076
+ }, _r = (e = {}, t = {}) => {
2030
2077
  let n = {
2031
2078
  meta: [],
2032
2079
  links: [],
@@ -2088,17 +2135,17 @@ var sr = (e) => JSON.stringify(e).replace(/<\//g, "<\\/"), cr = (e) => {
2088
2135
  let y = e.ldJson ? Array.isArray(e.ldJson) ? e.ldJson : [e.ldJson] : [];
2089
2136
  for (let e of y) n.scripts.push({
2090
2137
  type: "application/ld+json",
2091
- children: sr(e)
2138
+ children: mr(e)
2092
2139
  });
2093
2140
  for (let r of [t.customHead, e.customHead]) {
2094
2141
  if (!r) continue;
2095
- let e = lr(r);
2142
+ let e = gr(r);
2096
2143
  n.meta.push(...e.meta), n.links.push(...e.links), n.scripts.push(...e.scripts);
2097
2144
  }
2098
2145
  return n;
2099
2146
  };
2100
- function dr({ meta: e, site: t }) {
2101
- let n = ur(e, t);
2147
+ function vr({ meta: e, site: t }) {
2148
+ let n = _r(e, t);
2102
2149
  return /* @__PURE__ */ P(M, { children: [
2103
2150
  n.meta.map((e, t) => e.title === void 0 ? /* @__PURE__ */ N("meta", { ...e }, `m${t}`) : /* @__PURE__ */ N("title", { children: e.title }, `t${t}`)),
2104
2151
  n.links.map((e, t) => /* @__PURE__ */ N("link", { ...e }, `l${t}`)),
@@ -2110,7 +2157,7 @@ function dr({ meta: e, site: t }) {
2110
2157
  }
2111
2158
  //#endregion
2112
2159
  //#region src/registration/ui.tsx
2113
- var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, children: n }) => /* @__PURE__ */ N("div", {
2160
+ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, children: n }) => /* @__PURE__ */ N("div", {
2114
2161
  inert: !e,
2115
2162
  className: Z("grid transition-[grid-template-rows,opacity] duration-250 ease-[cubic-bezier(0.32,0.72,0,1)] motion-reduce:transition-none", e ? "grid-rows-[1fr] opacity-100" : "grid-rows-[0fr] opacity-0"),
2116
2163
  children: /* @__PURE__ */ N("div", {
@@ -2120,7 +2167,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2120
2167
  children: n
2121
2168
  })
2122
2169
  })
2123
- }), pr = [
2170
+ }), br = [
2124
2171
  {
2125
2172
  key: "email",
2126
2173
  label: "Email",
@@ -2153,7 +2200,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2153
2200
  inputMode: void 0,
2154
2201
  autoComplete: "organization-title"
2155
2202
  }
2156
- ], mr = [{
2203
+ ], xr = [{
2157
2204
  key: "name",
2158
2205
  label: "Registered company name",
2159
2206
  placeholder: "Acme Corporation",
@@ -2163,7 +2210,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2163
2210
  label: "Tax ID / GST number",
2164
2211
  placeholder: "22AAAAA0000A1Z5",
2165
2212
  autoComplete: "off"
2166
- }], hr = [
2213
+ }], Sr = [
2167
2214
  {
2168
2215
  key: "line1",
2169
2216
  label: "Billing address",
@@ -2212,11 +2259,11 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2212
2259
  wide: !1,
2213
2260
  optional: !1
2214
2261
  }
2215
- ], gr = (e) => Z("w-full rounded-xl border bg-page px-3.5 py-2.5 text-base text-ink outline-none transition placeholder:text-ink-muted/60", e ? "border-danger focus:ring-[3px] focus:ring-danger/15" : "border-border focus:border-brand focus:ring-[3px] focus:ring-brand/20"), _r = "flex items-baseline gap-1.5 font-medium text-ink text-sm", vr = () => /* @__PURE__ */ N("span", {
2262
+ ], Cr = (e) => Z("w-full rounded-xl border bg-page px-3.5 py-2.5 text-base text-ink outline-none transition placeholder:text-ink-muted/60", e ? "border-danger focus:ring-[3px] focus:ring-danger/15" : "border-border focus:border-brand focus:ring-[3px] focus:ring-brand/20"), wr = "flex items-baseline gap-1.5 font-medium text-ink text-sm", Tr = () => /* @__PURE__ */ N("span", {
2216
2263
  "aria-hidden": !0,
2217
2264
  className: "text-danger",
2218
2265
  children: "*"
2219
- }), yr = ({ values: e, errors: t, touched: n, onChange: r, onBlur: i, showBusinessBilling: a = !1, registrationFields: o, nameInputRef: s }) => {
2266
+ }), Er = ({ values: e, errors: t, touched: n, onChange: r, onBlur: i, showBusinessBilling: a = !1, registrationFields: o, nameInputRef: s }) => {
2220
2267
  let c = (t, n) => r("billing_details", {
2221
2268
  ...e.billing_details,
2222
2269
  [t]: n
@@ -2235,8 +2282,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2235
2282
  children: [
2236
2283
  /* @__PURE__ */ P("label", {
2237
2284
  htmlFor: "attendee-name",
2238
- className: _r,
2239
- children: ["Your name", /* @__PURE__ */ N(vr, {})]
2285
+ className: wr,
2286
+ children: ["Your name", /* @__PURE__ */ N(Tr, {})]
2240
2287
  }),
2241
2288
  /* @__PURE__ */ N("input", {
2242
2289
  ref: s,
@@ -2248,7 +2295,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2248
2295
  value: e.name,
2249
2296
  onChange: (e) => r("name", e.target.value),
2250
2297
  onBlur: () => i("name"),
2251
- className: gr(n.name && !!t.name),
2298
+ className: Cr(n.name && !!t.name),
2252
2299
  required: !0
2253
2300
  }),
2254
2301
  n.name && t.name && /* @__PURE__ */ N("p", {
@@ -2257,7 +2304,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2257
2304
  })
2258
2305
  ]
2259
2306
  }),
2260
- pr.map((a) => {
2307
+ br.map((a) => {
2261
2308
  let s = o[a.key];
2262
2309
  if (s === "off") return null;
2263
2310
  let c = n[a.key] ? t[a.key] : void 0, l = a.key === "email" || a.key === "mobile";
@@ -2266,8 +2313,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2266
2313
  children: [
2267
2314
  /* @__PURE__ */ P("label", {
2268
2315
  htmlFor: `attendee-${a.key}`,
2269
- className: _r,
2270
- children: [a.label, s === "required" ? /* @__PURE__ */ N(vr, {}) : /* @__PURE__ */ N("span", {
2316
+ className: wr,
2317
+ children: [a.label, s === "required" ? /* @__PURE__ */ N(Tr, {}) : /* @__PURE__ */ N("span", {
2271
2318
  className: "font-normal text-ink-muted text-xs",
2272
2319
  children: "Optional"
2273
2320
  })]
@@ -2285,7 +2332,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2285
2332
  value: e[a.key],
2286
2333
  onChange: (e) => r(a.key, e.target.value),
2287
2334
  onBlur: () => i(a.key),
2288
- className: gr(!!c),
2335
+ className: Cr(!!c),
2289
2336
  required: s === "required"
2290
2337
  }),
2291
2338
  c && /* @__PURE__ */ N("p", {
@@ -2314,7 +2361,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2314
2361
  className: "m-0 px-3.5 pb-3 text-amber-700 text-xs leading-relaxed starting:opacity-0 transition-opacity duration-200 dark:text-amber-400",
2315
2362
  children: "Your billing details are still saved — tick the box to apply them."
2316
2363
  }),
2317
- /* @__PURE__ */ N(fr, {
2364
+ /* @__PURE__ */ N(yr, {
2318
2365
  open: e.is_business_purchase,
2319
2366
  className: "px-3.5 pb-3.5",
2320
2367
  children: /* @__PURE__ */ P("div", {
@@ -2324,15 +2371,15 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2324
2371
  className: "m-0 text-ink-muted text-xs leading-relaxed",
2325
2372
  children: "This booking will be billed to your business. The invoice is raised against the details below."
2326
2373
  }),
2327
- mr.map((t) => /* @__PURE__ */ P("div", {
2374
+ xr.map((t) => /* @__PURE__ */ P("div", {
2328
2375
  className: "flex flex-col gap-1.5",
2329
2376
  children: [/* @__PURE__ */ P("label", {
2330
2377
  htmlFor: `billing-${t.key}`,
2331
- className: _r,
2332
- children: [t.label, /* @__PURE__ */ N(vr, {})]
2378
+ className: wr,
2379
+ children: [t.label, /* @__PURE__ */ N(Tr, {})]
2333
2380
  }), /* @__PURE__ */ N("input", {
2334
2381
  id: `billing-${t.key}`,
2335
- className: gr(),
2382
+ className: Cr(),
2336
2383
  placeholder: t.placeholder,
2337
2384
  autoComplete: t.autoComplete,
2338
2385
  value: e.billing_details[t.key],
@@ -2342,15 +2389,15 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2342
2389
  }, t.key)),
2343
2390
  /* @__PURE__ */ N("div", {
2344
2391
  className: "grid grid-cols-2 gap-3",
2345
- children: hr.map((t) => /* @__PURE__ */ P("div", {
2392
+ children: Sr.map((t) => /* @__PURE__ */ P("div", {
2346
2393
  className: Z("flex flex-col gap-1.5", t.wide && "col-span-2"),
2347
2394
  children: [/* @__PURE__ */ P("label", {
2348
2395
  htmlFor: `billing-${t.key}`,
2349
- className: _r,
2350
- children: [t.label, !t.optional && /* @__PURE__ */ N(vr, {})]
2396
+ className: wr,
2397
+ children: [t.label, !t.optional && /* @__PURE__ */ N(Tr, {})]
2351
2398
  }), /* @__PURE__ */ N("input", {
2352
2399
  id: `billing-${t.key}`,
2353
- className: gr(),
2400
+ className: Cr(),
2354
2401
  placeholder: t.placeholder,
2355
2402
  autoComplete: t.autoComplete,
2356
2403
  inputMode: t.key === "postal_code" ? "numeric" : void 0,
@@ -2367,7 +2414,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2367
2414
  })
2368
2415
  ]
2369
2416
  });
2370
- }, br = {
2417
+ }, Dr = {
2371
2418
  USD: "$",
2372
2419
  EUR: "€",
2373
2420
  GBP: "£",
@@ -2385,17 +2432,17 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2385
2432
  maximumFractionDigits: 2
2386
2433
  }).format(r);
2387
2434
  } catch {
2388
- return `${br[n] ?? n} ${r.toLocaleString()}`;
2435
+ return `${Dr[n] ?? n} ${r.toLocaleString()}`;
2389
2436
  }
2390
- }, xr = (e) => !e.tax_enabled || !e.taxes?.length ? null : e.tax_inclusive ? "incl. taxes" : "+ taxes", Sr = (e) => !!e?.taxes?.length && e.tax_amount !== void 0, Cr = (e) => !!e && "subtotal" in e && e.tax_enabled === !0 && !!e.taxes?.length, wr = (e, t) => t ? t.total_amount ?? t.sale_amount ?? 0 : Cr(e) ? e.total ?? e.unit_amount ?? 0 : e?.unit_amount ?? 0, Tr = (e, t) => {
2437
+ }, Or = (e) => !e.tax_enabled || !e.taxes?.length ? null : e.tax_inclusive ? "incl. taxes" : "+ taxes", kr = (e) => !!e?.taxes?.length && e.tax_amount !== void 0, Ar = (e) => !!e && "subtotal" in e && e.tax_enabled === !0 && !!e.taxes?.length, jr = (e, t) => t ? t.total_amount ?? t.sale_amount ?? 0 : Ar(e) ? e.total ?? e.unit_amount ?? 0 : e?.unit_amount ?? 0, Mr = (e, t) => {
2391
2438
  if (!e) return null;
2392
- let n = wr(e, t);
2439
+ let n = jr(e, t);
2393
2440
  return {
2394
2441
  amount: n,
2395
2442
  currency: e.currency,
2396
2443
  isFree: n === 0
2397
2444
  };
2398
- }, Er = (e, t) => t ? t.base_amount ?? 0 : Cr(e) ? e.subtotal ?? e.unit_amount ?? 0 : e?.unit_amount ?? 0, Dr = (e, t) => Sr(t) ? t.taxes : !t && Cr(e) ? e.taxes : [], Or = (e, t) => !t || e.tickets.length === 0 ? !0 : e.tickets.some((e) => typeof e == "string" ? e === t : e._id === t), kr = (e) => e.kind === "percent" ? `${e.percent_off}% off` : `${br[e.currency ?? "INR"] ?? ""}${(e.amount_off ?? 0) / 100} off`, Ar = ({ couponCode: e, onCouponCodeChange: t, couponError: n, couponLoading: r, onValidateCoupon: i, onRemoveCoupon: a, publicCoupons: o, discount: s, selectedTicket: c }) => {
2445
+ }, Nr = (e, t) => t ? t.base_amount ?? 0 : Ar(e) ? e.subtotal ?? e.unit_amount ?? 0 : e?.unit_amount ?? 0, Pr = (e, t) => kr(t) ? t.taxes : !t && Ar(e) ? e.taxes : [], Fr = (e, t) => !t || e.tickets.length === 0 ? !0 : e.tickets.some((e) => typeof e == "string" ? e === t : e._id === t), Ir = (e) => e.kind === "percent" ? `${e.percent_off}% off` : `${Dr[e.currency ?? "INR"] ?? ""}${(e.amount_off ?? 0) / 100} off`, Lr = ({ couponCode: e, onCouponCodeChange: t, couponError: n, couponLoading: r, onValidateCoupon: i, onRemoveCoupon: a, publicCoupons: o, discount: s, selectedTicket: c }) => {
2399
2446
  let [l, u] = A(!1);
2400
2447
  if (s) return /* @__PURE__ */ P("div", {
2401
2448
  className: "flex starting:scale-95 items-center justify-between gap-2.5 rounded-xl border border-emerald-600/40 bg-emerald-500/10 px-3.5 py-2.5 text-[13px] text-emerald-800 starting:opacity-0 transition-[opacity,scale] duration-200 ease-out dark:bg-emerald-500/15 dark:text-emerald-300",
@@ -2425,7 +2472,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2425
2472
  children: /* @__PURE__ */ N(ce, { className: "size-4" })
2426
2473
  })]
2427
2474
  });
2428
- let d = o.filter((e) => Or(e, c?._id));
2475
+ let d = o.filter((e) => Fr(e, c?._id));
2429
2476
  return /* @__PURE__ */ P("div", {
2430
2477
  className: "flex flex-col",
2431
2478
  children: [/* @__PURE__ */ N("button", {
@@ -2434,7 +2481,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2434
2481
  onClick: () => u((e) => !e),
2435
2482
  className: "self-start text-[13px] text-ink-soft underline underline-offset-[3px] hover:text-ink",
2436
2483
  children: "Have a code?"
2437
- }), /* @__PURE__ */ N(fr, {
2484
+ }), /* @__PURE__ */ N(yr, {
2438
2485
  open: l,
2439
2486
  children: /* @__PURE__ */ P("div", {
2440
2487
  className: "flex flex-col gap-2 pt-2",
@@ -2478,7 +2525,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2478
2525
  children: [
2479
2526
  e.code,
2480
2527
  " · ",
2481
- kr(e)
2528
+ Ir(e)
2482
2529
  ]
2483
2530
  }, e._id))
2484
2531
  })
@@ -2486,11 +2533,11 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2486
2533
  })
2487
2534
  })]
2488
2535
  });
2489
- }, jr = (e) => {
2536
+ }, Rr = (e) => {
2490
2537
  if (e < 60) return `${e} min`;
2491
2538
  let t = Math.floor(e / 60), n = e % 60, r = `${t} hr`;
2492
2539
  return n ? `${r} ${n} min` : r;
2493
- }, Mr = (e, t) => {
2540
+ }, zr = (e, t) => {
2494
2541
  if (!e) return null;
2495
2542
  let n = new Date(e);
2496
2543
  if (Number.isNaN(n.getTime())) return null;
@@ -2505,26 +2552,26 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2505
2552
  }).format(n), a = null;
2506
2553
  if (t) {
2507
2554
  let e = new Date(t), r = Math.round((e.getTime() - n.getTime()) / 6e4);
2508
- !Number.isNaN(r) && r > 0 && (a = jr(r));
2555
+ !Number.isNaN(r) && r > 0 && (a = Rr(r));
2509
2556
  }
2510
2557
  return {
2511
2558
  day: r,
2512
2559
  time: i,
2513
2560
  duration: a
2514
2561
  };
2515
- }, Nr = 60, Pr = (e) => e.toISOString().replace(/[-:]/g, "").replace(/\.\d+/, ""), Fr = (e) => {
2562
+ }, Br = 60, Vr = (e) => e.toISOString().replace(/[-:]/g, "").replace(/\.\d+/, ""), Hr = (e) => {
2516
2563
  if (!e.startsAt) return null;
2517
2564
  let t = new Date(e.startsAt);
2518
2565
  if (Number.isNaN(t.getTime())) return null;
2519
2566
  let n = e.endsAt ? new Date(e.endsAt) : null;
2520
2567
  return {
2521
2568
  start: t,
2522
- end: n && !Number.isNaN(n.getTime()) && n > t ? n : new Date(t.getTime() + Nr * 6e4)
2569
+ end: n && !Number.isNaN(n.getTime()) && n > t ? n : new Date(t.getTime() + Br * 6e4)
2523
2570
  };
2524
- }, Ir = (e) => {
2525
- let t = Fr(e);
2571
+ }, Ur = (e) => {
2572
+ let t = Hr(e);
2526
2573
  if (!t) return null;
2527
- let n = Pr(t.start), r = Pr(t.end), i = [e.description, e.url].filter(Boolean).join("\n\n"), a = `https://calendar.google.com/calendar/render?${new URLSearchParams({
2574
+ let n = Vr(t.start), r = Vr(t.end), i = [e.description, e.url].filter(Boolean).join("\n\n"), a = `https://calendar.google.com/calendar/render?${new URLSearchParams({
2528
2575
  action: "TEMPLATE",
2529
2576
  text: e.title,
2530
2577
  dates: `${n}/${r}`,
@@ -2558,8 +2605,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2558
2605
  "END:VCALENDAR"
2559
2606
  ].filter(Boolean).join("\r\n")
2560
2607
  };
2561
- }, Lr = ({ selectedTicket: e, discount: t }) => {
2562
- let [n, r] = A(!1), i = e?.currency, a = wr(e, t), o = Er(e, t), s = Dr(e, t), c = t?.discount ?? 0, l = s.length > 0 || c > 0 || o !== a, u = /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ P("span", {
2608
+ }, Wr = ({ selectedTicket: e, discount: t }) => {
2609
+ let [n, r] = A(!1), i = e?.currency, a = jr(e, t), o = Nr(e, t), s = Pr(e, t), c = t?.discount ?? 0, l = s.length > 0 || c > 0 || o !== a, u = /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ P("span", {
2563
2610
  className: "inline-flex items-center gap-1.5",
2564
2611
  children: ["Total", l && /* @__PURE__ */ N(ae, { className: Z("size-4 text-ink-muted transition-transform", n && "rotate-180") })]
2565
2612
  }), /* @__PURE__ */ N("span", { children: Q({
@@ -2577,7 +2624,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2577
2624
  }) : /* @__PURE__ */ N("div", {
2578
2625
  className: d,
2579
2626
  children: u
2580
- }), l && /* @__PURE__ */ N(fr, {
2627
+ }), l && /* @__PURE__ */ N(yr, {
2581
2628
  open: n,
2582
2629
  children: /* @__PURE__ */ P("div", {
2583
2630
  className: "flex flex-col gap-1.5 px-3.5 pb-3 text-[13px] text-ink-soft",
@@ -2616,7 +2663,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2616
2663
  })
2617
2664
  })]
2618
2665
  });
2619
- }, Rr = (e) => {
2666
+ }, Gr = (e) => {
2620
2667
  let [t, n] = A(null);
2621
2668
  return E(() => {
2622
2669
  let t = e ? window.visualViewport : null;
@@ -2629,8 +2676,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2629
2676
  t.removeEventListener("resize", r), t.removeEventListener("scroll", r);
2630
2677
  };
2631
2678
  }, [e]), t;
2632
- }, zr = ({ open: e, title: t, when: n, onClose: r, onClosed: i, onSubmit: a, footer: o, wide: s, initialFocusRef: c, layers: l, children: u }) => {
2633
- let d = k(null), f = Rr(e), [p, m] = A(!1), h = /* @__PURE__ */ N("div", {
2679
+ }, Kr = ({ open: e, title: t, when: n, onClose: r, onClosed: i, onSubmit: a, footer: o, wide: s, initialFocusRef: c, layers: l, children: u }) => {
2680
+ let d = k(null), f = Gr(e), [p, m] = A(!1), h = /* @__PURE__ */ N("div", {
2634
2681
  onScroll: (e) => m(e.currentTarget.scrollTop > 2),
2635
2682
  className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain",
2636
2683
  children: /* @__PURE__ */ P("div", {
@@ -2695,8 +2742,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2695
2742
  ]
2696
2743
  })] })
2697
2744
  });
2698
- }, Br = "block w-full rounded-lg px-2.5 py-2 text-left text-ink text-sm no-underline hover:bg-ink/5", Vr = "transition-[opacity,translate] duration-300 ease-out starting:translate-y-2 starting:opacity-0 motion-reduce:transition-none", Hr = "inline-flex min-h-[46px] w-full items-center justify-center gap-2 rounded-xl border border-border font-medium text-[14.5px] text-ink no-underline transition hover:border-brand active:scale-[0.985]", Ur = ({ email: e, eventTitle: t, startsAt: n, endsAt: r, eventUrl: i, when: a, bookingRef: o, qrImageUrl: s, invoiceUrl: c, onClose: l, onRegisterAnother: u }) => {
2699
- let d = Ir({
2745
+ }, qr = "block w-full rounded-lg px-2.5 py-2 text-left text-ink text-sm no-underline hover:bg-ink/5", Jr = "transition-[opacity,translate] duration-300 ease-out starting:translate-y-2 starting:opacity-0 motion-reduce:transition-none", Yr = "inline-flex min-h-[46px] w-full items-center justify-center gap-2 rounded-xl border border-border font-medium text-[14.5px] text-ink no-underline transition hover:border-brand active:scale-[0.985]", Xr = ({ email: e, eventTitle: t, startsAt: n, endsAt: r, eventUrl: i, when: a, bookingRef: o, qrImageUrl: s, invoiceUrl: c, onClose: l, onRegisterAnother: u }) => {
2746
+ let d = Ur({
2700
2747
  title: t,
2701
2748
  startsAt: n,
2702
2749
  endsAt: r,
@@ -2726,11 +2773,11 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2726
2773
  })
2727
2774
  }),
2728
2775
  /* @__PURE__ */ N("h3", {
2729
- className: Z(Vr, "m-0 mt-[18px] font-heading font-semibold text-[22px] text-ink tracking-[-0.016em] delay-[260ms]"),
2776
+ className: Z(Jr, "m-0 mt-[18px] font-heading font-semibold text-[22px] text-ink tracking-[-0.016em] delay-[260ms]"),
2730
2777
  children: "You're in"
2731
2778
  }),
2732
2779
  a && /* @__PURE__ */ P("p", {
2733
- className: Z(Vr, "m-0 mt-1.5 text-[14.5px] text-ink delay-[320ms]"),
2780
+ className: Z(Jr, "m-0 mt-1.5 text-[14.5px] text-ink delay-[320ms]"),
2734
2781
  children: [
2735
2782
  a.day,
2736
2783
  " · ",
@@ -2738,14 +2785,14 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2738
2785
  ]
2739
2786
  }),
2740
2787
  /* @__PURE__ */ P("p", {
2741
- className: Z(Vr, "m-0 mt-1 max-w-[300px] text-[13.5px] text-ink-soft leading-relaxed delay-[360ms]"),
2788
+ className: Z(Jr, "m-0 mt-1 max-w-[300px] text-[13.5px] text-ink-soft leading-relaxed delay-[360ms]"),
2742
2789
  children: ["Joining link sent to ", /* @__PURE__ */ N("span", {
2743
2790
  className: "text-ink [overflow-wrap:anywhere]",
2744
2791
  children: e
2745
2792
  })]
2746
2793
  }),
2747
2794
  /* @__PURE__ */ P("div", {
2748
- className: Z(Vr, "relative mt-5 w-full max-w-[340px] overflow-hidden rounded-2xl border border-border bg-ink/3 px-4 py-3.5 delay-[420ms]"),
2795
+ className: Z(Jr, "relative mt-5 w-full max-w-[340px] overflow-hidden rounded-2xl border border-border bg-ink/3 px-4 py-3.5 delay-[420ms]"),
2749
2796
  children: [
2750
2797
  /* @__PURE__ */ N("span", {
2751
2798
  "aria-hidden": !0,
@@ -2779,10 +2826,10 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2779
2826
  ]
2780
2827
  }),
2781
2828
  /* @__PURE__ */ P("div", {
2782
- className: Z(Vr, "mt-4 flex w-full max-w-[340px] flex-col gap-2 delay-[520ms]"),
2829
+ className: Z(Jr, "mt-4 flex w-full max-w-[340px] flex-col gap-2 delay-[520ms]"),
2783
2830
  children: [
2784
2831
  d && /* @__PURE__ */ P(V.Root, { children: [/* @__PURE__ */ P(V.Trigger, {
2785
- className: Hr,
2832
+ className: Yr,
2786
2833
  children: [/* @__PURE__ */ N(re, { className: "size-4" }), "Add to calendar"]
2787
2834
  }), /* @__PURE__ */ N(V.Portal, { children: /* @__PURE__ */ N(V.Positioner, {
2788
2835
  sideOffset: 6,
@@ -2794,14 +2841,14 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2794
2841
  href: d.google,
2795
2842
  target: "_blank",
2796
2843
  rel: "noopener noreferrer",
2797
- className: Br,
2844
+ className: qr,
2798
2845
  children: "Google Calendar"
2799
2846
  }),
2800
2847
  /* @__PURE__ */ N("a", {
2801
2848
  href: d.outlook,
2802
2849
  target: "_blank",
2803
2850
  rel: "noopener noreferrer",
2804
- className: Br,
2851
+ className: qr,
2805
2852
  children: "Outlook"
2806
2853
  }),
2807
2854
  /* @__PURE__ */ N("button", {
@@ -2811,7 +2858,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2811
2858
  let e = new Blob([d.ics], { type: "text/calendar;charset=utf-8" }), n = URL.createObjectURL(e), r = document.createElement("a");
2812
2859
  r.href = n, r.download = `${t.replace(/[^\w\s-]/g, "").trim() || "event"}.ics`, r.click(), URL.revokeObjectURL(n);
2813
2860
  },
2814
- className: Br,
2861
+ className: qr,
2815
2862
  children: "Apple Calendar / .ics"
2816
2863
  })
2817
2864
  ]
@@ -2821,7 +2868,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2821
2868
  href: c,
2822
2869
  target: "_blank",
2823
2870
  rel: "noopener noreferrer",
2824
- className: Hr,
2871
+ className: Yr,
2825
2872
  children: [/* @__PURE__ */ N(oe, { className: "size-4" }), "Download invoice"]
2826
2873
  }),
2827
2874
  /* @__PURE__ */ N("button", {
@@ -2840,41 +2887,41 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2840
2887
  })
2841
2888
  ]
2842
2889
  });
2843
- }, Wr = {
2890
+ }, Zr = {
2844
2891
  email: "required",
2845
2892
  mobile: "off",
2846
2893
  organization: "off",
2847
2894
  designation: "off"
2848
- }, Gr = (e) => e.replace(/[\s()-]/g, ""), Kr = (e) => /^\+?\d{7,15}$/.test(Gr(e)), qr = (e, t) => {
2895
+ }, Qr = (e) => e.replace(/[\s()-]/g, ""), $r = (e) => /^\+?\d{7,15}$/.test(Qr(e)), ei = (e, t) => {
2849
2896
  let n = {}, r = [
2850
- ["mobile", Gr(e.mobile)],
2897
+ ["mobile", Qr(e.mobile)],
2851
2898
  ["organization", e.organization.trim()],
2852
2899
  ["designation", e.designation.trim()]
2853
2900
  ];
2854
2901
  for (let [e, i] of r) t[e] !== "off" && i && (n[e] = i);
2855
2902
  return n;
2856
- }, Jr = (e, t) => {
2903
+ }, ti = (e, t) => {
2857
2904
  let n = {};
2858
- e.name.trim() || (n.name = "Please enter your name"), t.email !== "off" && (e.email.trim() ? /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(e.email.trim()) || (n.email = "That email address doesn't look right") : t.email === "required" && (n.email = "Please enter your email")), t.mobile !== "off" && (e.mobile.trim() ? Kr(e.mobile) || (n.mobile = "That doesn't look like a valid phone number") : t.mobile === "required" && (n.mobile = "Please enter your phone number"));
2905
+ e.name.trim() || (n.name = "Please enter your name"), t.email !== "off" && (e.email.trim() ? /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(e.email.trim()) || (n.email = "That email address doesn't look right") : t.email === "required" && (n.email = "Please enter your email")), t.mobile !== "off" && (e.mobile.trim() ? $r(e.mobile) || (n.mobile = "That doesn't look like a valid phone number") : t.mobile === "required" && (n.mobile = "Please enter your phone number"));
2859
2906
  for (let r of ["organization", "designation"]) t[r] === "required" && !e[r].trim() && (n[r] = `Please enter your ${r}`);
2860
2907
  return n;
2861
- }, Yr = (e) => `levo:event-registration:${e}`, Xr = (e) => {
2908
+ }, ni = (e) => `levo:event-registration:${e}`, ri = (e) => {
2862
2909
  if (typeof window > "u") return null;
2863
2910
  try {
2864
- let t = window.localStorage.getItem(Yr(e));
2911
+ let t = window.localStorage.getItem(ni(e));
2865
2912
  return t ? JSON.parse(t) : null;
2866
2913
  } catch {
2867
2914
  return null;
2868
2915
  }
2869
- }, Zr = (e, t) => {
2916
+ }, ii = (e, t) => {
2870
2917
  if (!(typeof window > "u")) try {
2871
- window.localStorage.setItem(Yr(e), JSON.stringify(t));
2918
+ window.localStorage.setItem(ni(e), JSON.stringify(t));
2872
2919
  } catch {}
2873
- }, Qr = (e) => {
2920
+ }, ai = (e) => {
2874
2921
  if (!(typeof window > "u")) try {
2875
- window.localStorage.removeItem(Yr(e));
2922
+ window.localStorage.removeItem(ni(e));
2876
2923
  } catch {}
2877
- }, $r = ({ tickets: e, selectedTicket: t, onSelect: n, error: r }) => {
2924
+ }, oi = ({ tickets: e, selectedTicket: t, onSelect: n, error: r }) => {
2878
2925
  let [i, a] = A(!t);
2879
2926
  return /* @__PURE__ */ P("fieldset", {
2880
2927
  className: "m-0 flex min-w-0 flex-col gap-2 border-0 p-0",
@@ -2886,8 +2933,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2886
2933
  /* @__PURE__ */ N("div", {
2887
2934
  className: "-mb-2 flex flex-col",
2888
2935
  children: e.map((r) => {
2889
- let o = r._id === t?._id, s = i || o, c = xr(r);
2890
- return /* @__PURE__ */ N(fr, {
2936
+ let o = r._id === t?._id, s = i || o, c = Or(r);
2937
+ return /* @__PURE__ */ N(yr, {
2891
2938
  open: s,
2892
2939
  children: /* @__PURE__ */ P("label", {
2893
2940
  className: Z("mb-2 flex w-full cursor-pointer items-start gap-2.5 rounded-xl border px-3.5 py-3 transition", o ? "border-brand bg-brand/5" : "border-border hover:border-brand/50"),
@@ -2951,7 +2998,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2951
2998
  })
2952
2999
  ]
2953
3000
  });
2954
- }, ei = {
3001
+ }, si = {
2955
3002
  name: "",
2956
3003
  email: "",
2957
3004
  mobile: "",
@@ -2970,14 +3017,14 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2970
3017
  country: ""
2971
3018
  }
2972
3019
  }
2973
- }, ti = {
3020
+ }, ci = {
2974
3021
  name: !0,
2975
3022
  email: !0,
2976
3023
  mobile: !0,
2977
3024
  organization: !0,
2978
3025
  designation: !0
2979
- }, ni = (e, t) => {
2980
- let [n, r] = A(ei), [i, a] = A({}), [o, s] = A(!1), c = k(!1);
3026
+ }, li = (e, t) => {
3027
+ let [n, r] = A(si), [i, a] = A({}), [o, s] = A(!1), c = k(!1);
2981
3028
  E(() => {
2982
3029
  c.current || !e || (c.current = !0, r((t) => ({
2983
3030
  ...t,
@@ -2985,14 +3032,14 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
2985
3032
  email: t.email || e.email || ""
2986
3033
  })));
2987
3034
  }, [e]);
2988
- let l = Jr(n, t), u = w((e, t) => r((n) => ({
3035
+ let l = ti(n, t), u = w((e, t) => r((n) => ({
2989
3036
  ...n,
2990
3037
  [e]: t
2991
3038
  })), []), d = w((e) => a((t) => ({
2992
3039
  ...t,
2993
3040
  [e]: !0
2994
3041
  })), []), f = w(() => {
2995
- r(ei), a({}), s(!1), c.current = !0;
3042
+ r(si), a({}), s(!1), c.current = !0;
2996
3043
  }, []), p = w(() => {
2997
3044
  a({}), s(!1);
2998
3045
  }, []);
@@ -3006,9 +3053,9 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3006
3053
  touchField: d,
3007
3054
  reset: f,
3008
3055
  resetValidationDisplay: p,
3009
- touched: o ? ti : i
3056
+ touched: o ? ci : i
3010
3057
  };
3011
- }, ri = ({ eventID: e, selectedTicket: t, enabled: n }) => {
3058
+ }, ui = ({ eventID: e, selectedTicket: t, enabled: n }) => {
3012
3059
  let r = i(), [a, o] = A(""), [s, c] = A(null), [l, u] = A(!1), [d, f] = A(null), [p, m] = A([]);
3013
3060
  return E(() => {
3014
3061
  !n || !e || !r || r.fetch?.url(`/v1/event/event/${e}/coupon/list-public-coupons`)?.get().json().then((e) => {
@@ -3059,13 +3106,13 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3059
3106
  o(""), c(null), f(null);
3060
3107
  }, [])
3061
3108
  };
3062
- }, ii = async (e, t) => {
3109
+ }, di = async (e, t) => {
3063
3110
  let n = new URLSearchParams();
3064
3111
  return n.append("query", JSON.stringify({ where: { status: "active" } })), (await e.fetch?.url(`/v1/event/event/${t}/ticket/query?${n.toString()}`).get().json())?.content?.data ?? [];
3065
- }, ai = ({ eventID: e, external: t }) => {
3112
+ }, fi = ({ eventID: e, external: t }) => {
3066
3113
  let n = i(), [r, a] = A([]), [o, s] = A(!t), [c, l] = A(!1), [u, d] = A(null);
3067
3114
  return E(() => {
3068
- t || !e || !n || (s(!0), l(!1), ii(n, e).then((e) => {
3115
+ t || !e || !n || (s(!0), l(!1), di(n, e).then((e) => {
3069
3116
  a(e), e.length === 1 && d(e[0] ?? null);
3070
3117
  }).catch((e) => {
3071
3118
  l(!0), n.logger?.error("Failed to load event tickets", { exception: b(e) });
@@ -3081,7 +3128,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3081
3128
  selectedTicket: u,
3082
3129
  selectTicket: d
3083
3130
  };
3084
- }, oi = async (e) => {
3131
+ }, pi = async (e) => {
3085
3132
  let { payment_session_id: t, order_id: n } = e;
3086
3133
  if (!t || !n) throw Error("Cashfree payment session missing");
3087
3134
  let { load: r } = await import("./script.esm-D4nvz3-k.js"), i = await r({ mode: e.environment || "production" });
@@ -3097,7 +3144,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3097
3144
  status: "closed",
3098
3145
  message: a.error?.message
3099
3146
  };
3100
- }, si = () => typeof window < "u" && "Razorpay" in window, ci = ({ order: e, onSettled: t, onError: n }) => {
3147
+ }, mi = () => typeof window < "u" && "Razorpay" in window, hi = ({ order: e, onSettled: t, onError: n }) => {
3101
3148
  let { Razorpay: r, isLoading: i, error: a } = le(), o = k({
3102
3149
  onSettled: t,
3103
3150
  onError: n
@@ -3113,7 +3160,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3113
3160
  s.current = !0, o.current.onError(Error(a));
3114
3161
  return;
3115
3162
  }
3116
- if (!r || !si()) return;
3163
+ if (!r || !mi()) return;
3117
3164
  s.current = !0;
3118
3165
  let t;
3119
3166
  try {
@@ -3151,7 +3198,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3151
3198
  a,
3152
3199
  e
3153
3200
  ]), null;
3154
- }, li = ({ stripePromise: e, clientSecret: t, onClose: n, onComplete: r }) => {
3201
+ }, gi = ({ stripePromise: e, clientSecret: t, onClose: n, onComplete: r }) => {
3155
3202
  let i = k(r);
3156
3203
  i.current = r;
3157
3204
  let a = O(() => ({
@@ -3179,9 +3226,9 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3179
3226
  })]
3180
3227
  })] })
3181
3228
  });
3182
- }, ui = () => {
3229
+ }, _i = () => {
3183
3230
  let [e, t] = A(null), n = w(async (e, n) => {
3184
- if (e.provider === "cashfree") return oi(e);
3231
+ if (e.provider === "cashfree") return pi(e);
3185
3232
  if (e.provider === "stripe") {
3186
3233
  let { client_secret: n, session_id: r } = e;
3187
3234
  if (!n || !r) throw Error("Stripe checkout session missing");
@@ -3215,7 +3262,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3215
3262
  }, []), r = (e, n) => {
3216
3263
  t(null), n instanceof Error ? e.settle.reject(n) : e.settle.resolve(n);
3217
3264
  }, i = null;
3218
- return e?.provider === "stripe" ? i = /* @__PURE__ */ N(li, {
3265
+ return e?.provider === "stripe" ? i = /* @__PURE__ */ N(gi, {
3219
3266
  stripePromise: e.stripePromise,
3220
3267
  clientSecret: e.clientSecret,
3221
3268
  onComplete: () => r(e, {
@@ -3223,7 +3270,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3223
3270
  confirmation: { session_id: e.sessionId }
3224
3271
  }),
3225
3272
  onClose: () => r(e, { status: "closed" })
3226
- }) : e?.provider === "razorpay" && (i = /* @__PURE__ */ N(ci, {
3273
+ }) : e?.provider === "razorpay" && (i = /* @__PURE__ */ N(hi, {
3227
3274
  order: e.order,
3228
3275
  onSettled: (t) => r(e, t),
3229
3276
  onError: (t) => r(e, t)
@@ -3237,8 +3284,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3237
3284
  providerUnreachable: "We couldn't reach the payment provider. Check your connection and try again.",
3238
3285
  confirmationFailed: "We couldn't confirm your payment. Your details are saved — try again.",
3239
3286
  generic: "Something went wrong. Please try again."
3240
- }, di = (e) => !!e && e.status !== "requires_payment", fi = ({ eventID: e, details: t, onConfirmed: n }) => {
3241
- let r = i(), a = ui(), [o, s] = A({ kind: "idle" }), c = k({
3287
+ }, vi = (e) => !!e && e.status !== "requires_payment", yi = ({ eventID: e, details: t, onConfirmed: n }) => {
3288
+ let r = i(), a = _i(), [o, s] = A({ kind: "idle" }), c = k({
3242
3289
  details: t,
3243
3290
  onConfirmed: n
3244
3291
  });
@@ -3254,7 +3301,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3254
3301
  message: t
3255
3302
  }), d = async (e, t) => {
3256
3303
  if (!t?.key) {
3257
- di(e) ? l(e) : s({
3304
+ vi(e) ? l(e) : s({
3258
3305
  kind: "failed",
3259
3306
  message: $.registrationFailed
3260
3307
  });
@@ -3288,7 +3335,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3288
3335
  }
3289
3336
  try {
3290
3337
  let t = (await r?.fetch?.url(`/v1/event/booking/${e._id}/confirm-booking`)?.post(n.confirmation)?.json())?.content?.data;
3291
- di(t) ? l(t) : u(e._id, $.paymentAbandoned);
3338
+ vi(t) ? l(t) : u(e._id, $.paymentAbandoned);
3292
3339
  } catch (t) {
3293
3340
  r?.logger?.error("Failed to confirm booking after payment", { exception: b(t) }), u(e._id, $.confirmationFailed);
3294
3341
  }
@@ -3327,33 +3374,33 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3327
3374
  },
3328
3375
  reset: () => s({ kind: "idle" })
3329
3376
  };
3330
- }, pi = "register", mi = () => {
3377
+ }, bi = "register", xi = () => {
3331
3378
  if (typeof window > "u") return !1;
3332
- let e = new URLSearchParams(window.location.search).get(pi);
3379
+ let e = new URLSearchParams(window.location.search).get(bi);
3333
3380
  return e !== null && e !== "0" && e !== "false";
3334
- }, hi = ({ canAutoOpen: e }) => {
3381
+ }, Si = ({ canAutoOpen: e }) => {
3335
3382
  let [t, n] = A(!1), r = k(!1), i = w(() => n(!0), []), a = w(() => n(!1), []);
3336
3383
  return E(() => {
3337
- r.current || !e || !mi() || (r.current = !0, n(!0));
3384
+ r.current || !e || !xi() || (r.current = !0, n(!0));
3338
3385
  }, [e]), {
3339
3386
  isOpen: t,
3340
3387
  open: i,
3341
3388
  close: a
3342
3389
  };
3343
- }, gi = "inline-flex items-center justify-center rounded-lg bg-brand px-4 py-3 font-semibold text-brand-foreground transition hover:opacity-90", _i = ({ eventID: e, title: t, external: n, buttonText: r = "Register Now", startsAt: i, endsAt: a, eventUrl: o }) => {
3344
- let { account: s } = We(), c = Kn(), l = ai({
3390
+ }, Ci = "inline-flex items-center justify-center rounded-lg bg-brand px-4 py-3 font-semibold text-brand-foreground transition hover:opacity-90", wi = ({ eventID: e, title: t, external: n, buttonText: r = "Register Now", startsAt: i, endsAt: a, eventUrl: o }) => {
3391
+ let { account: s } = Ze(), c = $n(), l = fi({
3345
3392
  eventID: e,
3346
3393
  external: n
3347
- }), u = l.selectedTicket?.registration_fields ?? Wr, d = ni(s, u), f = Tr(l.selectedTicket, null)?.isFree === !1, [p, m] = A(null), [h, g] = A(null);
3394
+ }), u = l.selectedTicket?.registration_fields ?? Zr, d = li(s, u), f = Mr(l.selectedTicket, null)?.isFree === !1, [p, m] = A(null), [h, g] = A(null);
3348
3395
  E(() => {
3349
- let t = Xr(e);
3396
+ let t = ri(e);
3350
3397
  t && g({ email: t.email });
3351
3398
  }, [e]);
3352
- let _ = hi({ canAutoOpen: !n && !l.isLoading && l.tickets.length > 0 && !h }), v = k(null), y = ri({
3399
+ let _ = Si({ canAutoOpen: !n && !l.isLoading && l.tickets.length > 0 && !h }), v = k(null), y = ui({
3353
3400
  eventID: e,
3354
3401
  selectedTicket: l.selectedTicket,
3355
3402
  enabled: _.isOpen && f
3356
- }), b = Tr(l.selectedTicket, y.discount), x = !!b && !b.isFree, S = l.tickets.length > 1, C = O(() => Mr(i, a), [i, a]), w = t || "this event", T = S || x, D = fi({
3403
+ }), b = Mr(l.selectedTicket, y.discount), x = !!b && !b.isFree, S = l.tickets.length > 1, C = O(() => zr(i, a), [i, a]), w = t || "this event", T = S || x, D = yi({
3357
3404
  eventID: e,
3358
3405
  details: {
3359
3406
  merchantName: c?.name || t || "",
@@ -3361,12 +3408,12 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3361
3408
  prefill: {
3362
3409
  name: d.values.name.trim(),
3363
3410
  email: d.values.email.trim(),
3364
- contact: Gr(d.values.mobile)
3411
+ contact: Qr(d.values.mobile)
3365
3412
  }
3366
3413
  },
3367
3414
  onConfirmed: (t) => {
3368
3415
  let n = d.values.email.trim();
3369
- m(t), g({ email: n }), Zr(e, {
3416
+ m(t), g({ email: n }), ii(e, {
3370
3417
  bookingId: t._id,
3371
3418
  email: n,
3372
3419
  at: (/* @__PURE__ */ new Date()).toISOString()
@@ -3375,7 +3422,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3375
3422
  }), { state: j } = D, F = j.kind === "busy", I = (e) => {
3376
3423
  y.reset(), D.reset(), l.selectTicket(e);
3377
3424
  }, L = () => {
3378
- Qr(e), g(null), m(null), D.reset(), d.reset();
3425
+ ai(e), g(null), m(null), D.reset(), d.reset();
3379
3426
  }, R = (t) => {
3380
3427
  t.preventDefault(), d.markSubmitted(), !(!l.selectedTicket || !d.isValid) && D.register({
3381
3428
  event: e,
@@ -3383,7 +3430,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3383
3430
  attendees: [{
3384
3431
  name: d.values.name.trim(),
3385
3432
  email: d.values.email.trim(),
3386
- ...qr(d.values, u),
3433
+ ...ei(d.values, u),
3387
3434
  ticket: l.selectedTicket._id,
3388
3435
  details: {}
3389
3436
  }],
@@ -3397,7 +3444,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3397
3444
  className: "my-2",
3398
3445
  children: /* @__PURE__ */ N("button", {
3399
3446
  type: "button",
3400
- className: gi,
3447
+ className: Ci,
3401
3448
  onClick: () => window.open(n, "_blank", "noopener,noreferrer"),
3402
3449
  children: r
3403
3450
  })
@@ -3432,10 +3479,10 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3432
3479
  type: "button",
3433
3480
  onClick: _.open,
3434
3481
  disabled: l.isLoading,
3435
- className: Z(gi, "disabled:opacity-60"),
3482
+ className: Z(Ci, "disabled:opacity-60"),
3436
3483
  children: r
3437
3484
  })
3438
- }), /* @__PURE__ */ N(zr, {
3485
+ }), /* @__PURE__ */ N(Kr, {
3439
3486
  open: _.isOpen,
3440
3487
  title: p ? w : `Register for ${w}`,
3441
3488
  when: C,
@@ -3469,7 +3516,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3469
3516
  children: x ? "Secure payment · confirmation sent to your email" : "No card needed · joining link sent to your email"
3470
3517
  })
3471
3518
  ] }),
3472
- children: p ? /* @__PURE__ */ N(Ur, {
3519
+ children: p ? /* @__PURE__ */ N(Xr, {
3473
3520
  email: d.values.email.trim(),
3474
3521
  eventTitle: w,
3475
3522
  startsAt: i,
@@ -3484,16 +3531,16 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3484
3531
  }) : /* @__PURE__ */ P("div", {
3485
3532
  className: "flex flex-col gap-4",
3486
3533
  children: [
3487
- S && /* @__PURE__ */ N($r, {
3534
+ S && /* @__PURE__ */ N(oi, {
3488
3535
  tickets: l.tickets,
3489
3536
  selectedTicket: l.selectedTicket,
3490
3537
  onSelect: I,
3491
3538
  error: d.submitAttempted && !l.selectedTicket ? "Choose a ticket to continue" : void 0
3492
3539
  }),
3493
- x && /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(Lr, {
3540
+ x && /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(Wr, {
3494
3541
  selectedTicket: l.selectedTicket,
3495
3542
  discount: y.discount
3496
- }), /* @__PURE__ */ N(Ar, {
3543
+ }), /* @__PURE__ */ N(Lr, {
3497
3544
  couponCode: y.code,
3498
3545
  onCouponCodeChange: y.setCode,
3499
3546
  couponError: y.error,
@@ -3509,7 +3556,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3509
3556
  children: [T && /* @__PURE__ */ N("span", {
3510
3557
  className: "font-medium text-ink text-sm",
3511
3558
  children: "Your details"
3512
- }), /* @__PURE__ */ N(yr, {
3559
+ }), /* @__PURE__ */ N(Er, {
3513
3560
  values: d.values,
3514
3561
  errors: d.errors,
3515
3562
  touched: d.touched,
@@ -3523,7 +3570,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3523
3570
  ]
3524
3571
  })
3525
3572
  })] });
3526
- }, vi = (e) => e.length > 1 ? e.replace(/\/+$/, "") : e, yi = (e) => typeof e == "string" && e.trim() ? e : void 0, bi = (e) => typeof e == "string" ? e : e?.location ?? void 0, xi = (e, t) => {
3573
+ }, Ti = (e) => e.length > 1 ? e.replace(/\/+$/, "") : e, Ei = (e) => typeof e == "string" && e.trim() ? e : void 0, Di = (e) => typeof e == "string" ? e : e?.location ?? void 0, Oi = (e, t) => {
3527
3574
  let n = e.meta ?? {}, r = e.title && t ? `${e.title} | ${t}` : e.title || t || void 0;
3528
3575
  return {
3529
3576
  title: n.meta_title || r,
@@ -3533,32 +3580,32 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3533
3580
  og: {
3534
3581
  title: n.og_title || void 0,
3535
3582
  description: n.og_description || void 0,
3536
- image: bi(n.og_image),
3583
+ image: Di(n.og_image),
3537
3584
  url: n.og_url || void 0
3538
3585
  },
3539
3586
  twitter: { card: n.twitter_card || void 0 },
3540
3587
  ldJson: n.ld_json || void 0,
3541
3588
  customHead: n.head_code || void 0
3542
3589
  };
3543
- }, Si = (e) => ({
3590
+ }, ki = (e) => ({
3544
3591
  description: e.description || void 0,
3545
3592
  customHead: e.settings?.head_code || void 0
3546
- }), Ci = (e) => (t = {}, n) => (r) => {
3547
- let i = xi(t, e.name);
3593
+ }), Ai = (e) => (t = {}, n) => (r) => {
3594
+ let i = Oi(t, e.name);
3548
3595
  if (n) {
3549
3596
  let t = r?.loaderData?.[n.source];
3550
3597
  if (t) {
3551
- let r = n.title ? yi(t[n.title]) : void 0;
3598
+ let r = n.title ? Ei(t[n.title]) : void 0;
3552
3599
  r && (i.title = e.name ? `${r} | ${e.name}` : r, i.og = {
3553
3600
  ...i.og,
3554
3601
  title: r
3555
3602
  });
3556
- let a = n.description ? yi(t[n.description]) : void 0;
3603
+ let a = n.description ? Ei(t[n.description]) : void 0;
3557
3604
  a && (i.description = a, i.og = {
3558
3605
  ...i.og,
3559
3606
  description: a
3560
3607
  });
3561
- let o = n.image ? bi(t[n.image]) : void 0;
3608
+ let o = n.image ? Di(t[n.image]) : void 0;
3562
3609
  o && (i.og = {
3563
3610
  ...i.og,
3564
3611
  image: o
@@ -3567,31 +3614,31 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3567
3614
  }
3568
3615
  if (!i.canonical) {
3569
3616
  let t = r?.match?.pathname, n = (e.domain || "").trim();
3570
- n && t?.startsWith("/") && (i.canonical = (/^https?:\/\//.test(n) ? n : `https://${n}`).replace(/\/+$/, "") + vi(t));
3617
+ n && t?.startsWith("/") && (i.canonical = (/^https?:\/\//.test(n) ? n : `https://${n}`).replace(/\/+$/, "") + Ti(t));
3571
3618
  }
3572
- let a = ur(i, Si(e)), o = t.id?.trim();
3619
+ let a = _r(i, ki(e)), o = t.id?.trim();
3573
3620
  return o && a.meta.push({
3574
- name: Bn,
3621
+ name: qn,
3575
3622
  content: o
3576
3623
  }), a;
3577
- }, wi = (e) => {
3624
+ }, ji = (e) => {
3578
3625
  let t = Oe(e);
3579
3626
  return (e, n) => {
3580
3627
  let { rules: r, invalid: i } = be(n?.access), a = r.length > 0 || i;
3581
- return ({ context: n, params: r }) => a ? Promise.resolve({}) : Ve({
3628
+ return ({ context: n, params: r }) => a ? Promise.resolve({}) : Je({
3582
3629
  queryClient: n.queryClient,
3583
3630
  config: t,
3584
3631
  sources: e,
3585
3632
  params: r
3586
3633
  });
3587
3634
  };
3588
- }, Ti = 2, Ei = (e) => {
3589
- let { limit: t = 20, debounceMs: n = 300, hotkey: r = !0 } = e ?? {}, a = i(), o = Kn(), s = G(), [c, l] = A(""), [u, d] = A(!1), [f, p] = A("");
3635
+ }, Mi = 2, Ni = (e) => {
3636
+ let { limit: t = 20, debounceMs: n = 300, hotkey: r = !0 } = e ?? {}, a = i(), o = $n(), s = G(), [c, l] = A(""), [u, d] = A(!1), [f, p] = A("");
3590
3637
  E(() => {
3591
3638
  let e = setTimeout(() => p(c.trim()), n);
3592
3639
  return () => clearTimeout(e);
3593
3640
  }, [c, n]);
3594
- let m = f.length >= Ti, h = R({
3641
+ let m = f.length >= Mi, h = R({
3595
3642
  queryKey: [
3596
3643
  "levo-search",
3597
3644
  o?.id ?? null,
@@ -3640,4 +3687,4 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
3640
3687
  };
3641
3688
  };
3642
3689
  //#endregion
3643
- export { Ot as ColorModeProvider, Fn as Inspector, pe as LEVO_AUTH_METHODS, K as LEVO_AUTH_QUERY_KEY, fe as LEVO_OAUTH_METHODS, pt as LEVO_OTP_LENGTH, rt as LEVO_PENDING_APPROVAL_CODE, H as LEVO_PRIMARY_AUTH_METHODS, m as LOCALE_COOKIE, l as LOCALE_REDIRECT_CACHE_CONTROL, bt as LevoChat, Ge as LevoEntryForm, _i as LevoEventRegister, At as LevoForm, Un as LevoPopups, Xe as LevoProfileForm, Yn as LevoSiteProvider, er as LocaleHreflang, nr as LocaleProvider, Bn as PAGE_ID_META, dr as PageHead, ar as SiteLocaleProvider, $n as buildHreflangLinks, Ci as createLevoHead, wi as createLevoLoader, _ as createRouteTreeMatcher, De as createSiteClient, Ee as decideAccess, v as extractGeoAndLanguageData, it as isPendingApprovalError, mt as isValidEmail, ht as isValidOtp, _t as isValidPhone, Xn as localeBeforeLoad, p as localePath, d as localeRedirectResponse, gt as normalizePhone, ur as pageHead, be as parseAccess, lr as parseRawHead, Ve as prefetchLevoSources, Zn as readLocaleConfig, Vn as readPageId, xe as resolveAuthMethods, g as resolveLocale, u as resolveLocaleRedirect, s as resolveLocaleRequest, Oe as siteConfigFromJson, f as splitLocalePrefix, kt as useColorMode, or as useLanguageOptions, nt as useLevoAccess, We as useLevoAuth, ze as useLevoForm, Jn as useLevoInsights, st as useLevoLogin, ft as useLevoOAuth, vt as useLevoOtpInput, Re as useLevoRecord, Ei as useLevoSearch, qn as useLevoSite, Le as useLevoSource, rr as useLocale, ir as useUrlLocale };
3690
+ export { Ft as ColorModeProvider, Hn as Inspector, pe as LEVO_AUTH_METHODS, K as LEVO_AUTH_QUERY_KEY, fe as LEVO_OAUTH_METHODS, bt as LEVO_OTP_LENGTH, ut as LEVO_PENDING_APPROVAL_CODE, H as LEVO_PRIMARY_AUTH_METHODS, m as LOCALE_COOKIE, l as LOCALE_REDIRECT_CACHE_CONTROL, Dt as LevoChat, Qe as LevoEntryForm, wi as LevoEventRegister, Lt as LevoForm, Xn as LevoPopups, rt as LevoProfileForm, nr as LevoSiteProvider, sr as LocaleHreflang, lr as LocaleProvider, qn as PAGE_ID_META, vr as PageHead, fr as SiteLocaleProvider, or as buildHreflangLinks, Ai as createLevoHead, ji as createLevoLoader, _ as createRouteTreeMatcher, De as createSiteClient, Ee as decideAccess, v as extractGeoAndLanguageData, dt as isPendingApprovalError, xt as isValidEmail, St as isValidOtp, wt as isValidPhone, Pe as levoParams, rr as localeBeforeLoad, p as localePath, d as localeRedirectResponse, Ct as normalizePhone, _r as pageHead, be as parseAccess, gr as parseRawHead, Je as prefetchLevoSources, ir as readLocaleConfig, Jn as readPageId, xe as resolveAuthMethods, g as resolveLocale, u as resolveLocaleRedirect, s as resolveLocaleRequest, Oe as siteConfigFromJson, f as splitLocalePrefix, It as useColorMode, pr as useLanguageOptions, lt as useLevoAccess, Ze as useLevoAuth, Ke as useLevoForm, tr as useLevoInsights, mt as useLevoLogin, yt as useLevoOAuth, Tt as useLevoOtpInput, Ge as useLevoRecord, Ni as useLevoSearch, er as useLevoSite, We as useLevoSource, ur as useLocale, dr as useUrlLocale };