@levo-so/site-runtime 0.3.24 → 0.3.25

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.
package/index.js CHANGED
@@ -8,22 +8,22 @@ import { Suspense as x, createContext as S, lazy as C, useCallback as w, useCont
8
8
  import { Fragment as M, jsx as N, jsxs as P } from "react/jsx-runtime";
9
9
  import { Dialog as F } from "@base-ui/react/dialog";
10
10
  import { keepPreviousData as I, useMutation as L, useQuery as R, useQueryClient as z } from "@tanstack/react-query";
11
- import { ScriptOnce as ee, redirect as te, useRouterState as B } from "@tanstack/react-router";
12
- import { createLevoInsights as ne } from "@levo-so/insights";
13
- import { CalendarPlusIcon as re, CheckIcon as ie, ChevronDownIcon as ae, DownloadIcon as oe, LoaderCircleIcon as se, XIcon as ce } from "lucide-react";
14
- import { Popover as V } from "@base-ui/react/popover";
11
+ import { Link as ee, ScriptOnce as te, redirect as ne, useRouterState as B } from "@tanstack/react-router";
12
+ import { createLevoInsights as re } from "@levo-so/insights";
13
+ import { CalendarPlusIcon as ie, CheckIcon as ae, ChevronDownIcon as V, DownloadIcon as oe, LoaderCircleIcon as se, XIcon as ce } from "lucide-react";
14
+ import { Popover as H } from "@base-ui/react/popover";
15
15
  import { useRazorpay as le } from "react-razorpay";
16
16
  import { EmbeddedCheckout as ue, EmbeddedCheckoutProvider as de } from "@stripe/react-stripe-js";
17
17
  //#region src/access/types.ts
18
- var H = [
18
+ var fe = [
19
19
  "otp",
20
20
  "magiclink",
21
21
  "whatsapp"
22
- ], fe = [
22
+ ], pe = [
23
23
  "google",
24
24
  "microsoft",
25
25
  "linkedin"
26
- ], pe = [...H, ...fe], me = "otp", U = (e) => typeof e == "object" && !!e && !Array.isArray(e), he = (e) => H.includes(e), ge = (e) => fe.includes(e), _e = (e) => Array.isArray(e) ? e.filter((e) => typeof e == "string") : [], ve = (e) => e, ye = (e) => {
26
+ ], me = [...fe, ...pe], he = "otp", U = (e) => typeof e == "object" && !!e && !Array.isArray(e), ge = (e) => fe.includes(e), _e = (e) => pe.includes(e), ve = (e) => Array.isArray(e) ? e.filter((e) => typeof e == "string") : [], ye = (e) => e, be = (e) => {
27
27
  if (!U(e)) return null;
28
28
  let t = e.enabled === void 0 ? !0 : e.enabled === !0, n = U(e.options) ? e.options : {};
29
29
  switch (e.kind) {
@@ -31,8 +31,8 @@ var H = [
31
31
  kind: "authentication",
32
32
  enabled: t,
33
33
  options: {
34
- methods: _e(n.methods).filter((e) => he(e) || ge(e)),
35
- ...he(n.primary_method) ? { primary_method: n.primary_method } : {}
34
+ methods: ve(n.methods).filter((e) => ge(e) || _e(e)),
35
+ ...ge(n.primary_method) ? { primary_method: n.primary_method } : {}
36
36
  }
37
37
  };
38
38
  case "gating": return typeof n.collection != "string" || !n.collection.trim() ? null : {
@@ -40,42 +40,42 @@ var H = [
40
40
  enabled: t,
41
41
  options: {
42
42
  collection: n.collection.trim(),
43
- ...U(n.condition) ? { condition: ve(n.condition) } : {},
44
- hidden: _e(n.hidden)
43
+ ...U(n.condition) ? { condition: ye(n.condition) } : {},
44
+ hidden: ve(n.hidden)
45
45
  }
46
46
  };
47
47
  case "profile": return {
48
48
  kind: "profile",
49
49
  enabled: t,
50
50
  options: {
51
- ...U(n.condition) ? { condition: ve(n.condition) } : {},
52
- hidden: _e(n.hidden)
51
+ ...U(n.condition) ? { condition: ye(n.condition) } : {},
52
+ hidden: ve(n.hidden)
53
53
  }
54
54
  };
55
55
  default: return null;
56
56
  }
57
- }, be = (e) => {
57
+ }, xe = (e) => {
58
58
  if (!Array.isArray(e) || e.length === 0) return {
59
59
  rules: [],
60
60
  invalid: !1
61
61
  };
62
- let t = e.map(ye).filter((e) => e !== null);
62
+ let t = e.map(be).filter((e) => e !== null);
63
63
  return {
64
64
  rules: t.filter((e) => e.enabled !== !1),
65
65
  invalid: t.length === 0
66
66
  };
67
- }, xe = (e) => {
67
+ }, Se = (e) => {
68
68
  let t = e.find((e) => e.kind === "authentication"), n = t?.kind === "authentication" ? t.options?.methods ?? [] : [];
69
69
  return {
70
- primary: (t?.kind === "authentication" ? t.options?.primary_method : void 0) ?? n.find(he) ?? me,
71
- oauth: n.filter(ge)
70
+ primary: (t?.kind === "authentication" ? t.options?.primary_method : void 0) ?? n.find(ge) ?? he,
71
+ oauth: n.filter(_e)
72
72
  };
73
- }, Se = (e = null) => ({
73
+ }, Ce = (e = null) => ({
74
74
  state: "granted",
75
75
  code: e,
76
76
  message: null,
77
77
  rule: null
78
- }), Ce = () => ({
78
+ }), we = () => ({
79
79
  state: "checking",
80
80
  code: null,
81
81
  message: null,
@@ -85,26 +85,26 @@ var H = [
85
85
  code: e,
86
86
  message: t,
87
87
  rule: n
88
- }), we = (e, t) => {
88
+ }), Te = (e, t) => {
89
89
  let n = t?.split(".")[0];
90
90
  return e.find((e) => e.kind === n) ?? null;
91
- }, Te = (e, t) => {
91
+ }, Ee = (e, t) => {
92
92
  let n = (e) => t.find((t) => t.kind === e);
93
- if (e === "granted") return Se();
93
+ if (e === "granted") return Ce();
94
94
  if (e === "signed_out") return W("authentication.NOT_LOGGED_IN", "You need to be signed in to view this page.", n("authentication") ?? t[0] ?? null);
95
95
  let r = n("gating");
96
96
  if (e === "entry_missing" && r) return W("gating.ENTRY_NOT_FOUND", null, r);
97
97
  if (e === "entry_under_review" && r) return W("gating.ENTRY_CONDITION_NOT_FULFILLED", "Your submission is being reviewed.", r);
98
98
  let i = n("profile");
99
99
  return e === "profile_incomplete" && i ? W("profile.CONDITION_NOT_FULFILLED", null, i) : null;
100
- }, Ee = ({ rules: e, invalid: t, pageId: n, hasClient: r, isReady: i, isLoggedIn: a, check: o, preview: s }) => {
101
- if (e.length === 0 && !t) return Se();
100
+ }, De = ({ rules: e, invalid: t, pageId: n, hasClient: r, isReady: i, isLoggedIn: a, check: o, preview: s }) => {
101
+ if (e.length === 0 && !t) return Ce();
102
102
  if (s) {
103
- let t = Te(s, e);
103
+ let t = Ee(s, e);
104
104
  if (t) return t;
105
105
  }
106
- return t ? W("access.CONFIG_INVALID", "This page's access rules could not be read.") : i ? r ? a ? n ? o.isError ? W("access.CHECK_FAILED", "We could not verify your access.") : o.isSuccess ? o.data ? o.data.has_access ? Se(o.data.code ?? null) : W(o.data.code ?? "access.CHECK_FAILED", o.data.message ?? null, we(e, o.data.code)) : W("access.CHECK_FAILED", "We could not verify your access.") : Ce() : W("access.PAGE_NOT_IDENTIFIED", "This page is not linked to its access rules yet.") : W("authentication.NOT_LOGGED_IN", "You need to be signed in to view this page.", e.find((e) => e.kind === "authentication") ?? e[0] ?? null) : W("access.UNWIRED", "This site is not connected to an account system.") : Ce();
107
- }, De = (e) => {
106
+ return t ? W("access.CONFIG_INVALID", "This page's access rules could not be read.") : i ? r ? a ? n ? o.isError ? W("access.CHECK_FAILED", "We could not verify your access.") : o.isSuccess ? o.data ? o.data.has_access ? Ce(o.data.code ?? null) : W(o.data.code ?? "access.CHECK_FAILED", o.data.message ?? null, Te(e, o.data.code)) : W("access.CHECK_FAILED", "We could not verify your access.") : we() : W("access.PAGE_NOT_IDENTIFIED", "This page is not linked to its access rules yet.") : W("authentication.NOT_LOGGED_IN", "You need to be signed in to view this page.", e.find((e) => e.kind === "authentication") ?? e[0] ?? null) : W("access.UNWIRED", "This site is not connected to an account system.") : we();
107
+ }, Oe = (e) => {
108
108
  let t = (e?.apiUrl || "").replace(/\/$/, "");
109
109
  return t ? y({
110
110
  apiUrl: t,
@@ -113,15 +113,15 @@ var H = [
113
113
  NODE_ENV: "",
114
114
  APP_MODE: e?.appMode || "production"
115
115
  }) : null;
116
- }, Oe = (e) => ({
116
+ }, ke = (e) => ({
117
117
  apiUrl: e.levo?.api_url || "",
118
118
  workspace: e.workspace_id || "",
119
119
  siteId: e.id || "",
120
120
  insightsUrl: e.levo?.insights_url || null,
121
121
  appMode: e.levo?.app_mode || "production"
122
- }), ke = /\{\$([A-Za-z0-9_]+)\}/g, Ae = (e) => {
122
+ }), Ae = /\{\$([A-Za-z0-9_]+)\}/g, je = (e) => {
123
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;
124
+ for (let i of e.matchAll(Ae)) n.push(e.slice(r, i.index)), t.push(i[1]), r = i.index + i[0].length;
125
125
  n.push(e.slice(r));
126
126
  let i = (t) => /* @__PURE__ */ Error(`Levo pattern "${e}" ${t}`);
127
127
  if (t.length === 0) throw i("names no variable: write each record as {$name}");
@@ -132,10 +132,10 @@ var H = [
132
132
  names: t,
133
133
  literals: n
134
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) => {
135
+ }, Me = (e) => e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), Ne = ({ literals: e }) => RegExp(`^${e.map(Me).join("([^/]+)")}$`), Pe = /* @__PURE__ */ new Set(), Fe = (e, t, n) => {
136
+ let r = je(t), i = Ne(r), a = (e) => {
137
137
  let n = e;
138
- return t.replace(ke, (e, r) => {
138
+ return t.replace(Ae, (e, r) => {
139
139
  let i = n[r];
140
140
  if (!i) throw Error(`Levo pattern "${t}" has no value for {$${r}}`);
141
141
  return i;
@@ -143,9 +143,9 @@ var H = [
143
143
  };
144
144
  return {
145
145
  parse: (t) => {
146
- if (!(e in t)) {
146
+ if (!Object.hasOwn(t, e)) {
147
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;
148
+ return Pe.has(e) || (Pe.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
149
  }
150
150
  let n = t[e], a = n ? i.exec(n) : null;
151
151
  if (!a) return !1;
@@ -161,33 +161,33 @@ var H = [
161
161
  [e]: a(t)
162
162
  })
163
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) => [
164
+ }, Ie = (e, t, n) => Object.prototype.hasOwnProperty.call(n, t) ? 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.`, Le = (e) => [
165
165
  "levo-source",
166
166
  "list",
167
167
  e.module,
168
168
  e.identifier,
169
169
  e.query ?? null,
170
170
  e.options ?? null
171
- ], Le = (e, t) => [
171
+ ], Re = (e, t) => [
172
172
  "levo-source",
173
173
  "record",
174
174
  e.module,
175
175
  e.identifier,
176
176
  t ?? null
177
- ], Re = (e) => [
177
+ ], ze = (e) => [
178
178
  "levo-source",
179
179
  "form",
180
180
  e.module,
181
181
  e.identifier
182
- ], ze = {
182
+ ], Be = {
183
183
  blog_author: "author",
184
184
  blog_category: "category",
185
185
  blog_tag: "tag"
186
- }, Be = (e, t) => {
187
- let n = encodeURIComponent(e.identifier), r = t ? `${encodeURIComponent(t)}/get-single` : "list", i = ze[e.module];
186
+ }, Ve = (e, t) => {
187
+ let n = encodeURIComponent(e.identifier), r = t ? `${encodeURIComponent(t)}/get-single` : "list", i = Be[e.module];
188
188
  return i ? `/v1/blog/${n}/${i}/${r}` : e.module === "community" ? `/v1/community/${n}/post/${r}` : null;
189
- }, Ve = async (e, t) => {
190
- let n = Be(t);
189
+ }, He = async (e, t) => {
190
+ let n = Ve(t);
191
191
  if (n) {
192
192
  let r = await e.fetch.url(n).post(t.query ?? {}).json();
193
193
  return {
@@ -203,16 +203,16 @@ var H = [
203
203
  data: r.content.data ?? [],
204
204
  meta: r.content.meta ?? null
205
205
  };
206
- }, He = async (e, t, n) => {
207
- let r = Be(t, n);
206
+ }, Ue = async (e, t, n) => {
207
+ let r = Ve(t, n);
208
208
  return r ? (await e.fetch.url(r).get().json()).content.data ?? null : (t.module === "collection" ? await e.collection.getCollectionContent({
209
209
  collection_key: t.identifier,
210
210
  slug: n
211
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;
212
- }, Ue = async (e, t) => (await e.collection.getCollectionByIDExpanded(t.identifier)).content.data ?? null, We = (e) => {
212
+ }, We = async (e, t) => (await e.collection.getCollectionByIDExpanded(t.identifier)).content.data ?? null, Ge = (e) => {
213
213
  let t = i(), n = R({
214
- queryKey: Ie(e),
215
- queryFn: () => Ve(t, e),
214
+ queryKey: Le(e),
215
+ queryFn: () => He(t, e),
216
216
  enabled: !!t
217
217
  });
218
218
  return {
@@ -225,10 +225,10 @@ var H = [
225
225
  ...e
226
226
  }) }
227
227
  };
228
- }, Ge = (e, t) => {
228
+ }, Ke = (e, t) => {
229
229
  let n = i(), r = R({
230
- queryKey: Le(e, t),
231
- queryFn: () => He(n, e, t),
230
+ queryKey: Re(e, t),
231
+ queryFn: () => Ue(n, e, t),
232
232
  enabled: !!n && !!t
233
233
  });
234
234
  return {
@@ -240,10 +240,10 @@ var H = [
240
240
  ...e
241
241
  }) }
242
242
  };
243
- }, Ke = (e) => {
243
+ }, qe = (e) => {
244
244
  let t = i(), n = R({
245
- queryKey: Re(e),
246
- queryFn: () => Ue(t, e),
245
+ queryKey: ze(e),
246
+ queryFn: () => We(t, e),
247
247
  enabled: !!t
248
248
  });
249
249
  return {
@@ -255,35 +255,35 @@ var H = [
255
255
  ...e
256
256
  }) }
257
257
  };
258
- }, qe = (e) => {
258
+ }, Je = (e) => {
259
259
  let t = Object.values(e ?? {});
260
260
  return t.length === 1 ? t[0] : e?.slug;
261
- }, Je = async ({ queryClient: e, config: t, sources: n, params: r }) => {
262
- let i = De(t);
261
+ }, Ye = async ({ queryClient: e, config: t, sources: n, params: r }) => {
262
+ let i = Oe(t);
263
263
  if (!i || !n) return {};
264
264
  let a = await Promise.all(Object.entries(n).map(async ([t, n]) => {
265
265
  if (n.mode === "record") {
266
- let a = n.param ? Fe(t, n.param, r ?? {}) : null;
266
+ let a = n.param ? Ie(t, n.param, r ?? {}) : null;
267
267
  if (a) {
268
268
  if (i.APP_MODE !== "production") throw Error(a);
269
269
  return i.logger.error(a), [t, null];
270
270
  }
271
- let o = n.param ? r?.[n.param] : qe(r);
271
+ let o = n.param ? r?.[n.param] : Je(r);
272
272
  return o ? [t, await e.ensureQueryData({
273
- queryKey: Le(n, o),
274
- queryFn: () => He(i, n, o)
273
+ queryKey: Re(n, o),
274
+ queryFn: () => Ue(i, n, o)
275
275
  }).catch(() => null)] : [t, null];
276
276
  }
277
277
  return n.mode === "form" ? [t, await e.ensureQueryData({
278
- queryKey: Re(n),
279
- queryFn: () => Ue(i, n)
278
+ queryKey: ze(n),
279
+ queryFn: () => We(i, n)
280
280
  }).catch(() => null)] : [t, await e.ensureQueryData({
281
- queryKey: Ie(n),
282
- queryFn: () => Ve(i, n)
281
+ queryKey: Le(n),
282
+ queryFn: () => He(i, n)
283
283
  }).catch(() => null)];
284
284
  }));
285
285
  return Object.fromEntries(a);
286
- }, Ye = {
286
+ }, Xe = {
287
287
  background: "var(--color-page)",
288
288
  foreground: "var(--color-ink)",
289
289
  text: "var(--color-ink)",
@@ -305,10 +305,10 @@ var H = [
305
305
  input: "var(--color-background1)",
306
306
  inputForeground: "var(--color-ink)",
307
307
  ring: "var(--color-brand)"
308
- }, Xe = (e) => O(() => ({
308
+ }, Ze = (e) => O(() => ({
309
309
  ...a({
310
310
  colors: {
311
- ...Ye,
311
+ ...Xe,
312
312
  ...e?.colors
313
313
  },
314
314
  radius: e?.radius ?? "var(--radius-token)",
@@ -327,7 +327,7 @@ function G() {
327
327
  }
328
328
  //#endregion
329
329
  //#region src/access/useLevoAuth.ts
330
- var K = ["levo-auth", "session"], Ze = () => {
330
+ var K = ["levo-auth", "session"], Qe = () => {
331
331
  let e = i(), t = z(), n = G(), r = R({
332
332
  queryKey: K,
333
333
  queryFn: async () => {
@@ -362,11 +362,11 @@ var K = ["levo-auth", "session"], Ze = () => {
362
362
  signOut: s,
363
363
  isSigningOut: a.isPending
364
364
  };
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({
365
+ }, $e = ({ collection: e, hidden: n, submitLabel: r = "Submit", onSuccess: a, theme: o, className: s }) => {
366
+ let c = i(), { account: l } = Qe(), { schema: u, isLoading: d } = qe({
367
367
  module: "collection",
368
368
  identifier: e
369
- }), f = Xe(o);
369
+ }), f = Ze(o);
370
370
  return c ? /* @__PURE__ */ N("div", {
371
371
  className: s,
372
372
  children: /* @__PURE__ */ N(t, {
@@ -390,17 +390,17 @@ var K = ["levo-auth", "session"], Ze = () => {
390
390
  onSuccess: () => a?.()
391
391
  })
392
392
  }) : null;
393
- }, $e = "so_levo_membership_account", et = [
393
+ }, et = "so_levo_membership_account", tt = [
394
394
  "profile_picture",
395
395
  "first_name",
396
396
  "last_name",
397
397
  "email",
398
398
  "username",
399
399
  "socials"
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({
400
+ ], nt = ["email", "username"], rt = (e) => tt.includes(e.key) || e.editable === !0, it = ({ 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 } = Qe(), d = Ze(o), [f, p] = A(""), m = R({
402
402
  queryKey: ["levo-access", "profile-schema"],
403
- queryFn: async () => (await c?.collection?.getCollectionByIDExpanded($e))?.content?.data ?? null,
403
+ queryFn: async () => (await c?.collection?.getCollectionByIDExpanded(et))?.content?.data ?? null,
404
404
  enabled: l && !!c,
405
405
  staleTime: 5 * 6e4,
406
406
  retry: 1
@@ -412,14 +412,14 @@ var K = ["levo-auth", "session"], Ze = () => {
412
412
  ...e,
413
413
  fields: e.fields?.map((e) => ({
414
414
  ...e,
415
- hidden: !nt(e) || !!t?.includes(e.key),
416
- readonly: e.readonly || tt.includes(e.key)
415
+ hidden: !rt(e) || !!t?.includes(e.key),
416
+ readonly: e.readonly || nt.includes(e.key)
417
417
  }))
418
418
  }))
419
419
  } : null;
420
420
  }, [m.data, h]), _ = L({
421
421
  mutationFn: async (e) => {
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) ?? [];
422
+ let n = g?.sections?.flatMap((e) => e?.fields ?? [])?.filter((e) => rt(e) && !nt.includes(e.key) && !t?.includes(e.key))?.map((e) => e?.key) ?? [];
423
423
  await c?.membership?.updateMe(Object.fromEntries(Object.entries(e).filter(([e]) => n.includes(e))));
424
424
  },
425
425
  onMutate: () => p(""),
@@ -450,15 +450,15 @@ var K = ["levo-auth", "session"], Ze = () => {
450
450
  onSubmit: (e) => _.mutate(e)
451
451
  }) : null]
452
452
  }) : null;
453
- }, it = null, at = /* @__PURE__ */ new Set(), ot = (e) => {
454
- if (it !== e) {
455
- it = e;
456
- for (let e of at) e();
453
+ }, at = null, ot = /* @__PURE__ */ new Set(), st = (e) => {
454
+ if (at !== e) {
455
+ at = e;
456
+ for (let e of ot) e();
457
457
  }
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({
458
+ }, ct = (e) => (ot.add(e), () => {
459
+ ot.delete(e);
460
+ }), lt = () => j(ct, () => at, () => null), ut = (e) => {
461
+ let t = i(), n = z(), r = G(), { isLoggedIn: a, isLoaded: o } = Qe(), s = lt(), c = e.id?.trim() || "", { rules: l, invalid: u } = O(() => xe(e.access), [e.access]), d = O(() => Se(l), [l]), f = r && !!t && l.length > 0 && !u && !!c && a && !s, p = R({
462
462
  queryKey: ["levo-access", c],
463
463
  queryFn: async () => (await t?.fetch.url(`/v1/builder/page/${c}/check-access`).post().json())?.content?.data ?? null,
464
464
  enabled: f,
@@ -476,7 +476,7 @@ var K = ["levo-auth", "session"], Ze = () => {
476
476
  n.invalidateQueries({ queryKey: K }), n.invalidateQueries({ queryKey: ["levo-access", c] });
477
477
  }, [n, c]);
478
478
  return {
479
- ...Ee({
479
+ ...De({
480
480
  rules: l,
481
481
  invalid: u,
482
482
  pageId: c,
@@ -494,26 +494,26 @@ var K = ["levo-auth", "session"], Ze = () => {
494
494
  recheck: m,
495
495
  isChecking: p.isFetching
496
496
  };
497
- }, ut = "membership.account.ACCOUNT_PENDING_APPROVAL", dt = (e) => e ? e === "membership.account.ACCOUNT_PENDING_APPROVAL" || e.includes("ACCOUNT_PENDING_APPROVAL") : !1, ft = (e) => {
497
+ }, dt = "membership.account.ACCOUNT_PENDING_APPROVAL", ft = (e) => e ? e === "membership.account.ACCOUNT_PENDING_APPROVAL" || e.includes("ACCOUNT_PENDING_APPROVAL") : !1, pt = (e) => {
498
498
  let t = b(e);
499
499
  return {
500
500
  code: t?.code || "SOMETHING_WENT_WRONG",
501
501
  title: t?.title || "Something went wrong",
502
502
  message: t?.message || "Something went wrong. Please try again.",
503
503
  fieldErrors: Object.fromEntries((t?.fieldErrors ?? []).map((e) => [e.param, e.message])),
504
- isPendingApproval: dt(t?.code)
504
+ isPendingApproval: ft(t?.code)
505
505
  };
506
- }, pt = {
506
+ }, mt = {
507
507
  code: "site.NOT_CONNECTED",
508
508
  title: "Sign-in unavailable",
509
509
  message: "This site is not connected to an account system yet.",
510
510
  fieldErrors: {},
511
511
  isPendingApproval: !1
512
- }, mt = () => {
512
+ }, ht = () => {
513
513
  let e = i(), t = z(), n = w(async (t, n) => {
514
514
  if (!e?.membership) return {
515
515
  ok: !1,
516
- error: pt
516
+ error: mt
517
517
  };
518
518
  try {
519
519
  return {
@@ -524,7 +524,7 @@ var K = ["levo-auth", "session"], Ze = () => {
524
524
  let r = b(n);
525
525
  return e.logger?.error(t, { exception: r }), {
526
526
  ok: !1,
527
- error: ft(r)
527
+ error: pt(r)
528
528
  };
529
529
  }
530
530
  }, [e]), r = w(async ({ identifier: t, medium: n }) => {
@@ -551,10 +551,10 @@ var K = ["levo-auth", "session"], Ze = () => {
551
551
  isVerifying: s.isPending,
552
552
  isSendingMagicLink: c.isPending
553
553
  };
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 }) => {
554
+ }, gt = 700, _t = 500, vt = 700, yt = (e, t) => {
555
+ let n = window.screenX + (window.outerWidth - _t) / 2, r = window.screenY + (window.outerHeight - vt) / 2.5;
556
+ return window.open(e, t, `width=${_t},height=${vt},left=${n},top=${r}`);
557
+ }, bt = ({ methods: e, title: t = "Sign in", onSuccess: n, onError: r }) => {
558
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({
559
559
  onSuccess: n,
560
560
  onError: r
@@ -611,10 +611,10 @@ var K = ["levo-auth", "session"], Ze = () => {
611
611
  title: t.get("title") || "Sign-in failed",
612
612
  message: t.get("message") || "We could not sign you in. Please try again.",
613
613
  fieldErrors: {},
614
- isPendingApproval: dt(t.get("code"))
614
+ isPendingApproval: ft(t.get("code"))
615
615
  };
616
616
  r.isPendingApproval || d(r), m.current.onError?.(r);
617
- }, ht);
617
+ }, gt);
618
618
  }, [o, g]), v = O(() => {
619
619
  let e = h.data;
620
620
  if (!e || typeof window > "u") return {};
@@ -635,7 +635,7 @@ var K = ["levo-auth", "session"], Ze = () => {
635
635
  signIn: () => {
636
636
  let n = v[e];
637
637
  if (n) {
638
- if (d(null), f.current?.close(), f.current = vt(n, t), !f.current) {
638
+ if (d(null), f.current?.close(), f.current = yt(n, t), !f.current) {
639
639
  d({
640
640
  code: "POPUP_BLOCKED",
641
641
  title: "Popup blocked",
@@ -659,10 +659,10 @@ var K = ["levo-auth", "session"], Ze = () => {
659
659
  error: u,
660
660
  clearError: w(() => d(null), [])
661
661
  };
662
- }, bt = 4, xt = (e) => /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(e.trim()), St = (e) => (/* @__PURE__ */ RegExp("^\\d{4}$")).test(e.trim()), Ct = (e) => {
662
+ }, xt = 4, St = (e) => /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(e.trim()), Ct = (e) => (/* @__PURE__ */ RegExp("^\\d{4}$")).test(e.trim()), wt = (e) => {
663
663
  let t = e.replace(/\D/g, "").replace(/^0+/, "");
664
664
  return t ? `+${t}` : "";
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 }) => {
665
+ }, Tt = (e) => /^\+[1-9]\d{7,14}$/.test(wt(e)), Et = ({ value: e, onChange: t, length: n = 4, onComplete: r, autoFocus: i, disabled: a }) => {
666
666
  let o = k([]), [s, c] = A(null), l = k(r);
667
667
  l.current = r;
668
668
  let u = Array.from({ length: n }, (t, n) => e[n] ?? ""), d = w((e) => {
@@ -746,11 +746,11 @@ var K = ["levo-auth", "session"], Ze = () => {
746
746
  },
747
747
  clear: w(() => f("", 0), [f])
748
748
  };
749
- }, Et = C(() => import("./kbChat-eFsau7hG.js")), Dt = ({ site: e, path: t }) => {
749
+ }, Dt = C(() => import("./kbChat-eFsau7hG.js")), Ot = ({ site: e, path: t }) => {
750
750
  let n = G(), r = e.workspace_id || void 0;
751
751
  return !n || !r ? null : /* @__PURE__ */ N(x, {
752
752
  fallback: null,
753
- children: /* @__PURE__ */ N(Et, {
753
+ children: /* @__PURE__ */ N(Dt, {
754
754
  workspaceId: r,
755
755
  siteName: e.name || void 0,
756
756
  siteLogo: void 0,
@@ -760,61 +760,61 @@ var K = ["levo-auth", "session"], Ze = () => {
760
760
  path: t
761
761
  })
762
762
  });
763
- }, Ot = "(prefers-color-scheme: dark)", kt = (e) => {
763
+ }, kt = "(prefers-color-scheme: dark)", At = (e) => {
764
764
  try {
765
765
  let t = localStorage.getItem(e);
766
766
  return t === "light" || t === "dark" || t === "system" ? t : null;
767
767
  } catch {
768
768
  return null;
769
769
  }
770
- }, At = (e, t) => {
770
+ }, jt = (e, t) => {
771
771
  try {
772
772
  localStorage.setItem(e, t);
773
773
  } catch {}
774
774
  };
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){}})();`;
775
+ function Mt(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('${kt}').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){}})();`;
777
777
  }
778
- var Mt = S(void 0), Nt = (e) => e === "system" ? window.matchMedia(Ot).matches ? "dark" : "light" : e;
779
- function Pt(e) {
778
+ var Nt = S(void 0), Pt = (e) => e === "system" ? window.matchMedia(kt).matches ? "dark" : "light" : e;
779
+ function Ft(e) {
780
780
  let t = document.documentElement;
781
781
  t.classList.remove("light", "dark"), t.classList.add(e), t.style.colorScheme = e;
782
782
  }
783
- var Ft = ({ children: e, defaultMode: t = "system", storageKey: n = "color-mode" }) => {
783
+ var It = ({ children: e, defaultMode: t = "system", storageKey: n = "color-mode" }) => {
784
784
  let [r, i] = A(t), [a, o] = A(t === "dark" ? "dark" : "light"), s = G();
785
785
  return E(() => {
786
- i(kt(n) ?? t);
786
+ i(At(n) ?? t);
787
787
  }, [t, n]), E(() => {
788
788
  if (!s) return;
789
- let e = Nt(r);
790
- Pt(e), o(e);
789
+ let e = Pt(r);
790
+ Ft(e), o(e);
791
791
  }, [r, s]), E(() => {
792
792
  if (!s || r !== "system") return;
793
- let e = window.matchMedia(Ot), t = () => {
793
+ let e = window.matchMedia(kt), t = () => {
794
794
  let t = e.matches ? "dark" : "light";
795
- Pt(t), o(t);
795
+ Ft(t), o(t);
796
796
  };
797
797
  return e.addEventListener("change", t), () => e.removeEventListener("change", t);
798
- }, [r, s]), /* @__PURE__ */ P(Mt.Provider, {
798
+ }, [r, s]), /* @__PURE__ */ P(Nt.Provider, {
799
799
  value: {
800
800
  mode: r,
801
801
  resolvedMode: a,
802
802
  setMode: (e) => {
803
- At(n, e), i(e);
803
+ jt(n, e), i(e);
804
804
  }
805
805
  },
806
- children: [/* @__PURE__ */ N(ee, { children: jt(n, t) }), e]
806
+ children: [/* @__PURE__ */ N(te, { children: Mt(n, t) }), e]
807
807
  });
808
808
  };
809
- function It() {
810
- let e = T(Mt);
809
+ function Lt() {
810
+ let e = T(Nt);
811
811
  if (e === void 0) throw Error("useColorMode must be used within a ColorModeProvider");
812
812
  return e;
813
813
  }
814
814
  //#endregion
815
815
  //#region src/form/LevoForm.tsx
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);
816
+ var Rt = ({ 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: _ } = qe(e), v = Ze(s);
818
818
  return m ? /* @__PURE__ */ N("div", {
819
819
  ..._,
820
820
  className: c,
@@ -844,28 +844,28 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
844
844
  onError: p
845
845
  })
846
846
  }) : null;
847
- }, Rt = 1400, zt = 12 * 1024 * 1024, Bt = new Set(["transparent", "rgba(0, 0, 0, 0)"]), Vt = {
847
+ }, zt = 1400, Bt = 12 * 1024 * 1024, Vt = new Set(["transparent", "rgba(0, 0, 0, 0)"]), Ht = {
848
848
  imagePlaceholder: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=",
849
849
  onImageErrorHandler: () => void 0
850
- }, Ht = (e) => {
851
- let t = getComputedStyle(e);
852
- return !Bt.has(t.backgroundColor) || t.backgroundImage !== "none";
853
850
  }, Ut = (e) => {
851
+ let t = getComputedStyle(e);
852
+ return !Vt.has(t.backgroundColor) || t.backgroundImage !== "none";
853
+ }, Wt = (e) => {
854
854
  for (let t = e; t; t = t.parentElement) {
855
855
  let e = getComputedStyle(t).backgroundColor;
856
- if (!Bt.has(e)) return e;
856
+ if (!Vt.has(e)) return e;
857
857
  }
858
858
  return "#ffffff";
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,
859
+ }, Gt = 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, zt / i)), o = await n(e, {
861
+ ...Ht,
862
862
  pixelRatio: a,
863
- backgroundColor: Ut(e),
863
+ backgroundColor: Wt(e),
864
864
  filter: (e) => !t.includes(e)
865
865
  });
866
- if (o.length > zt) throw Error("capture too large");
866
+ if (o.length > Bt) throw Error("capture too large");
867
867
  return o;
868
- }, Gt = 4, Kt = 4e3, qt = (e, t) => {
868
+ }, Kt = 4, qt = 4e3, Jt = (e, t) => {
869
869
  let n = document.elementFromPoint(e.x + e.width / 2, e.y + e.height / 2);
870
870
  for (; n && t.includes(n);) n = n.parentElement;
871
871
  let r = document.body;
@@ -876,8 +876,8 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
876
876
  break;
877
877
  }
878
878
  }
879
- let i = window.innerWidth * window.innerHeight * Gt || 2 ** 53 - 1, a = r;
880
- for (; !Ht(a);) {
879
+ let i = window.innerWidth * window.innerHeight * Kt || 2 ** 53 - 1, a = r;
880
+ for (; !Ut(a);) {
881
881
  let e = a.parentElement;
882
882
  if (!e || e === document.documentElement) break;
883
883
  let t = e.getBoundingClientRect();
@@ -885,13 +885,13 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
885
885
  a = e;
886
886
  }
887
887
  return a;
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);
888
+ }, Yt = async (e, t) => {
889
+ let { toCanvas: n } = await import("./es-CK20DkgT.js"), r = Jt(e, t), i = r.getBoundingClientRect(), a = Math.max(e.width, e.height, 1), o = Math.min(2, Math.max(.4, zt / a)), s = Math.max(i.width, i.height, 1);
890
+ o = Math.min(o, qt / s);
891
891
  let c = await n(r, {
892
- ...Vt,
892
+ ...Ht,
893
893
  pixelRatio: o,
894
- backgroundColor: Ut(r),
894
+ backgroundColor: Wt(r),
895
895
  filter: (e) => !t.includes(e)
896
896
  }), l = document.createElement("canvas");
897
897
  l.width = Math.max(1, Math.round(e.width * o)), l.height = Math.max(1, Math.round(e.height * o));
@@ -899,7 +899,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
899
899
  if (!u) throw Error("no 2d context");
900
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);
901
901
  let d = l.toDataURL("image/png");
902
- if (d.length > zt) throw Error("capture too large");
902
+ if (d.length > Bt) throw Error("capture too large");
903
903
  return d;
904
904
  }, q = {
905
905
  ring: 99997,
@@ -914,24 +914,24 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
914
914
  }, Y = (e) => {
915
915
  let t = e?.getAttribute("data-tsd-source");
916
916
  return t ? t.replace(/^\//, "") : null;
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);
917
+ }, Xt = (e) => Array.from(document.querySelectorAll("[data-tsd-source]")).filter((t) => Y(t) === e), Zt = (e, t) => {
918
+ let n = Xt(t).indexOf(e);
919
919
  return n < 0 ? 0 : n;
920
920
  }, X = (e, t = 0) => {
921
- let n = Yt(e);
921
+ let n = Xt(e);
922
922
  return n[t] ?? n[0] ?? null;
923
- }, Zt = (e, t) => {
923
+ }, Qt = (e, t) => {
924
924
  let n = (e.getAttribute("data-staged-key") || "").split(/\s+/).filter(Boolean);
925
925
  n.includes(t) || e.setAttribute("data-staged-key", [...n, t].join(" "));
926
- }, Qt = (e, t) => {
926
+ }, $t = (e, t) => {
927
927
  let n = (e.getAttribute("data-staged-key") || "").split(/\s+/).filter((e) => e && e !== t);
928
928
  n.length ? e.setAttribute("data-staged-key", n.join(" ")) : e.removeAttribute("data-staged-key");
929
- }, $t = (e, t) => {
929
+ }, en = (e, t) => {
930
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("");
931
931
  if (!n) return "";
932
932
  let r = `[data-staged-key~="${CSS.escape(e)}"]{${n}}`, i = t.media?.replace(/[;{}]/g, "").trim();
933
933
  return i ? `@media ${i}{${r}}` : r;
934
- }, en = (e) => {
934
+ }, tn = (e) => {
935
935
  let t = e.tagName.toLowerCase();
936
936
  return t === "input" ? {
937
937
  checkbox: "Checkbox",
@@ -973,14 +973,14 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
973
973
  aside: "Sidebar",
974
974
  div: "Container"
975
975
  }[t] || `${t.charAt(0).toUpperCase()}${t.slice(1)}`;
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) => {
976
+ }, nn = 36, rn = (e) => {
977
+ let t = tn(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 > nn ? `${n.slice(0, nn - 1).trimEnd()}…` : n}` : t;
979
+ }, an = (e) => {
980
980
  let t = [], n = e;
981
981
  for (; n && n.nodeType === 1 && n !== document.body && t.length < 8;) t.unshift(n.tagName.toLowerCase()), n = n.parentElement;
982
982
  return t.join(" > ");
983
- }, an = () => {
983
+ }, on = () => {
984
984
  let e = document.createElement("div");
985
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`;
986
986
  let t = document.createElement("div");
@@ -994,10 +994,10 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
994
994
  ring: n,
995
995
  ringLabel: r
996
996
  };
997
- }, on = (e, t, n) => {
997
+ }, sn = (e, t, n) => {
998
998
  let r = n.getBoundingClientRect();
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) => {
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 = rn(n), t.style.left = `${Math.max(4, r.left)}px`, t.style.top = `${r.top > 26 ? r.top - 22 : r.bottom + 4}px`;
1000
+ }, cn = (e) => {
1001
1001
  let t = (e instanceof Element ? e : null)?.closest("a[href]");
1002
1002
  if (!t || t.target === "_blank") return null;
1003
1003
  let n;
@@ -1007,11 +1007,11 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1007
1007
  return null;
1008
1008
  }
1009
1009
  return n.protocol !== "http:" && n.protocol !== "https:" || n.origin === location.origin ? null : n.href;
1010
- }, cn = (e) => {
1010
+ }, ln = (e) => {
1011
1011
  if (!e) return !1;
1012
1012
  let t = e.tagName;
1013
1013
  return t === "INPUT" || t === "TEXTAREA" || t === "SELECT" || e.isContentEditable === !0;
1014
- }, ln = (e) => {
1014
+ }, un = (e) => {
1015
1015
  if (!e.childNodes.length) return !1;
1016
1016
  let t = !1;
1017
1017
  for (let n of e.childNodes) {
@@ -1019,7 +1019,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1019
1019
  (n.textContent ?? "").trim() && (t = !0);
1020
1020
  }
1021
1021
  return t;
1022
- }, un = 2e3, dn = (e) => {
1022
+ }, dn = 2e3, fn = (e) => {
1023
1023
  let t = [], n = e;
1024
1024
  for (; n && n.nodeType === 1 && n !== document.body && t.length < 8;) {
1025
1025
  let e = Y(n);
@@ -1030,22 +1030,22 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1030
1030
  }), n = n.parentElement;
1031
1031
  }
1032
1032
  return t;
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);
1033
+ }, pn = (e) => {
1034
+ let t = Y(e), n = t ? Xt(t).length : 1, r = t ? Zt(e, t) : 0, i = t && un(e) ? (e.textContent ?? "").replace(/\s+/g, " ").trim().slice(0, dn) : void 0, a = mn(e);
1035
1035
  return {
1036
1036
  tag: e.tagName.toLowerCase(),
1037
1037
  classes: typeof e.className == "string" ? e.className.trim() : "",
1038
1038
  text: (e.innerText || "").trim().slice(0, 120),
1039
- label: nn(e),
1040
- path: rn(e),
1039
+ label: rn(e),
1040
+ path: an(e),
1041
1041
  source: t,
1042
1042
  index: r,
1043
1043
  occurrences: n,
1044
- ancestors: dn(e),
1044
+ ancestors: fn(e),
1045
1045
  ...i === void 0 ? {} : { fullText: i },
1046
1046
  ...a ? { sourceBinding: a } : {}
1047
1047
  };
1048
- }, pn = (e) => {
1048
+ }, mn = (e) => {
1049
1049
  let t = e.closest("[data-levo-source]");
1050
1050
  if (!t) return;
1051
1051
  let n = t.getAttribute("data-levo-source") ?? "", r = Y(t), i;
@@ -1058,11 +1058,11 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1058
1058
  raw: n,
1059
1059
  element: {
1060
1060
  source: r ?? "",
1061
- index: r ? Xt(t, r) : 0
1061
+ index: r ? Zt(t, r) : 0
1062
1062
  },
1063
1063
  ...i === void 0 ? {} : { config: i }
1064
1064
  };
1065
- }, mn = () => Array.from(document.querySelectorAll("[data-levo-source]")).map((e) => {
1065
+ }, hn = () => Array.from(document.querySelectorAll("[data-levo-source]")).map((e) => {
1066
1066
  let t = e.getAttribute("data-levo-source") ?? "", n = Y(e), r;
1067
1067
  try {
1068
1068
  r = JSON.parse(t);
@@ -1073,18 +1073,18 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1073
1073
  raw: t,
1074
1074
  element: {
1075
1075
  source: n ?? "",
1076
- index: n ? Xt(e, n) : 0
1076
+ index: n ? Zt(e, n) : 0
1077
1077
  },
1078
1078
  tag: e.tagName.toLowerCase(),
1079
- label: nn(e),
1079
+ label: rn(e),
1080
1080
  ...r === void 0 ? {} : { config: r }
1081
1081
  };
1082
- }), hn = 14, gn = 2e3, _n = 100, vn = 48, yn = new Set([
1082
+ }), gn = 14, _n = 2e3, vn = 100, yn = 48, bn = new Set([
1083
1083
  "script",
1084
1084
  "style",
1085
1085
  "template",
1086
1086
  "noscript"
1087
- ]), bn = (e, t) => t.includes(e) || e.id === "studio-staged" || yn.has(e.tagName.toLowerCase()), xn = (e) => {
1087
+ ]), xn = (e, t) => t.includes(e) || e.id === "studio-staged" || bn.has(e.tagName.toLowerCase()), Sn = (e) => {
1088
1088
  let t = !1, n = 0, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
1089
1089
  for (let e of Array.from(document.querySelectorAll("[data-tsd-source]"))) {
1090
1090
  let t = Y(e);
@@ -1096,11 +1096,11 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1096
1096
  for (let t of e.childNodes) {
1097
1097
  if (t.nodeType !== 3) continue;
1098
1098
  let e = (t.textContent ?? "").replace(/\s+/g, " ").trim();
1099
- if (e) return e.length > vn ? `${e.slice(0, vn).trimEnd()}…` : e;
1099
+ if (e) return e.length > yn ? `${e.slice(0, yn).trimEnd()}…` : e;
1100
1100
  }
1101
1101
  }, o = (i, s) => {
1102
1102
  n++;
1103
- let c = Y(i), l = a(i), u = Array.from(i.children).filter((t) => !bn(t, e)), d = {
1103
+ let c = Y(i), l = a(i), u = Array.from(i.children).filter((t) => !xn(t, e)), d = {
1104
1104
  tag: i.tagName.toLowerCase(),
1105
1105
  ...c ? {
1106
1106
  source: c,
@@ -1111,9 +1111,9 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1111
1111
  childCount: u.length,
1112
1112
  children: []
1113
1113
  };
1114
- if (s >= hn) return u.length && (t = !0), d;
1114
+ if (s >= gn) return u.length && (t = !0), d;
1115
1115
  for (let e of u) {
1116
- if (d.children.length >= _n || n >= gn) {
1116
+ if (d.children.length >= vn || n >= _n) {
1117
1117
  t = !0;
1118
1118
  break;
1119
1119
  }
@@ -1125,7 +1125,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1125
1125
  tree: o(document.body, 0),
1126
1126
  truncated: t
1127
1127
  };
1128
- }, Sn = () => {
1128
+ }, Cn = () => {
1129
1129
  let e = null;
1130
1130
  return {
1131
1131
  send: (t) => {
@@ -1140,7 +1140,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1140
1140
  return !0;
1141
1141
  }
1142
1142
  };
1143
- }, Cn = (e) => {
1143
+ }, wn = (e) => {
1144
1144
  let t = location.pathname, n = () => {
1145
1145
  location.pathname !== t && (t = location.pathname, e.onPathChange());
1146
1146
  }, r = !1;
@@ -1160,19 +1160,19 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1160
1160
  e.__inspectorPatched && e.__orig && (history.pushState = e.__orig), t.__inspectorPatched && t.__orig && (history.replaceState = t.__orig);
1161
1161
  }
1162
1162
  } };
1163
- }, wn = !1, Tn = /* @__PURE__ */ new Set(), En = () => {
1164
- if (!wn) {
1165
- wn = !0;
1166
- for (let e of Tn) e();
1163
+ }, Tn = !1, En = /* @__PURE__ */ new Set(), Dn = () => {
1164
+ if (!Tn) {
1165
+ Tn = !0;
1166
+ for (let e of En) e();
1167
1167
  }
1168
- }, Dn = (e) => (Tn.add(e), () => {
1169
- Tn.delete(e);
1170
- }), On = () => j(Dn, () => wn, () => !1), kn = (e) => {
1168
+ }, On = (e) => (En.add(e), () => {
1169
+ En.delete(e);
1170
+ }), kn = () => j(On, () => Tn, () => !1), An = (e) => {
1171
1171
  let { channel: t, originals: n, staged: r } = e, i = t.send, a = null;
1172
1172
  return { onMessage: (o) => {
1173
1173
  let s = o.data;
1174
1174
  if (!(!s || s.source !== "web-chat") && t.acceptOrigin(o)) {
1175
- if (En(), s.type === "set-access-preview") ot(s.stage ?? null);
1175
+ if (Dn(), s.type === "set-access-preview") st(s.stage ?? null);
1176
1176
  else if (s.type === "set-inspect") e.setInspect(s.enabled);
1177
1177
  else if (s.type === "set-text-edit") e.setTextEdit(s.enabled);
1178
1178
  else if (s.type === "revert-text") {
@@ -1251,7 +1251,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1251
1251
  behavior: "smooth"
1252
1252
  }), i({
1253
1253
  type: "element-selected",
1254
- element: fn(r)
1254
+ element: pn(r)
1255
1255
  });
1256
1256
  } else if (s.type === "edit-element") {
1257
1257
  let t = String(s.element?.source || ""), n = Number.isInteger(s.element?.index) ? s.element.index : 0, r = t ? X(t, n) : null;
@@ -1270,7 +1270,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1270
1270
  behavior: "smooth"
1271
1271
  }), i({
1272
1272
  type: "element-selected",
1273
- element: fn(r)
1273
+ element: pn(r)
1274
1274
  }), e.isTextEditing() || e.setTextEdit(!0);
1275
1275
  let o = e.editableTarget(r);
1276
1276
  o && e.startEditAtEnd(o);
@@ -1293,7 +1293,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1293
1293
  }
1294
1294
  } else if (s.type === "clear-highlight") a && (a = null, !e.isInspecting() && !e.editingNode() && e.hideTextHover());
1295
1295
  else if (s.type === "request-layers") {
1296
- let { tree: t, truncated: n } = xn(e.ownNodes);
1296
+ let { tree: t, truncated: n } = Sn(e.ownNodes);
1297
1297
  i({
1298
1298
  type: "layers-tree",
1299
1299
  tree: t,
@@ -1301,7 +1301,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1301
1301
  });
1302
1302
  } else if (s.type === "request-sources") i({
1303
1303
  type: "sources-list",
1304
- sources: mn()
1304
+ sources: hn()
1305
1305
  });
1306
1306
  else if (s.type === "capture-selected") {
1307
1307
  let t = String(s.requestId || "");
@@ -1316,7 +1316,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1316
1316
  });
1317
1317
  return;
1318
1318
  }
1319
- Wt(n, e.ownNodes).then((e) => {
1319
+ Gt(n, e.ownNodes).then((e) => {
1320
1320
  console.info(`[levo-inspector] element capture ok <${n.tagName.toLowerCase()}> (${Math.round(e.length / 1024)}kB)`), i({
1321
1321
  type: "capture-result",
1322
1322
  requestId: t,
@@ -1337,7 +1337,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1337
1337
  }
1338
1338
  }
1339
1339
  } };
1340
- }, An = () => {
1340
+ }, jn = () => {
1341
1341
  let e = /* @__PURE__ */ new Map(), t = () => {
1342
1342
  if (e.size > 50) {
1343
1343
  let t = e.keys().next().value;
@@ -1357,31 +1357,31 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1357
1357
  return e.delete(t), n;
1358
1358
  }
1359
1359
  };
1360
- }, jn = 6, Mn = 12, Nn = 12, Pn = .6, Fn = (e, t, n, r) => ({
1360
+ }, Mn = 6, Nn = 12, Pn = 12, Fn = .6, In = (e, t, n, r) => ({
1361
1361
  x: Math.min(e, n),
1362
1362
  y: Math.min(t, r),
1363
1363
  width: Math.abs(n - e),
1364
1364
  height: Math.abs(r - t)
1365
- }), In = (e, t) => {
1365
+ }), Ln = (e, t) => {
1366
1366
  let n = e.x + e.width, r = e.y + e.height, i = [];
1367
1367
  for (let a of Array.from(document.querySelectorAll("[data-tsd-source]"))) {
1368
1368
  if (t.includes(a)) continue;
1369
1369
  let o = a.getBoundingClientRect(), s = o.width * o.height;
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);
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 >= Fn && i.push(a);
1371
1371
  }
1372
1372
  let a = new Set(i), o = i.filter((e) => {
1373
1373
  for (let t = e.parentElement; t; t = t.parentElement) if (a.has(t)) return !1;
1374
1374
  return !0;
1375
- }), s = o.length > Nn, c = [], l = [];
1376
- for (let e of o.slice(0, Nn)) {
1375
+ }), s = o.length > Pn, c = [], l = [];
1376
+ for (let e of o.slice(0, Pn)) {
1377
1377
  let t = Y(e);
1378
1378
  if (!t) continue;
1379
1379
  let n = (e.innerText || "").replace(/\s+/g, " ").trim().slice(0, 80);
1380
1380
  c.push({
1381
1381
  source: t,
1382
- index: Xt(e, t),
1382
+ index: Zt(e, t),
1383
1383
  tag: e.tagName.toLowerCase(),
1384
- label: nn(e),
1384
+ label: rn(e),
1385
1385
  ...n ? { text: n } : {}
1386
1386
  }), l.push(e);
1387
1387
  }
@@ -1390,10 +1390,10 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1390
1390
  nodes: l,
1391
1391
  truncated: s
1392
1392
  };
1393
- }, Ln = () => Array.from({ length: Nn }, () => {
1393
+ }, Rn = () => Array.from({ length: Pn }, () => {
1394
1394
  let e = document.createElement("div");
1395
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;
1396
- }), Rn = () => {
1396
+ }), zn = () => {
1397
1397
  let e = document.createElement("div");
1398
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`;
1399
1399
  let t = null, n = !1, r = 0, i = 0, a = () => {
@@ -1410,31 +1410,31 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1410
1410
  pointerMove: (a, o) => {
1411
1411
  if (!t) return;
1412
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) {
1413
- if (Math.abs(a - t.x) < jn && Math.abs(o - t.y) < jn) return;
1413
+ if (Math.abs(a - t.x) < Mn && Math.abs(o - t.y) < Mn) return;
1414
1414
  n = !0;
1415
1415
  }
1416
- let s = Fn(t.x, t.y, a, o);
1416
+ let s = In(t.x, t.y, a, o);
1417
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`;
1418
1418
  },
1419
1419
  pointerUp: () => {
1420
1420
  let e = n, o = t;
1421
1421
  if (t = null, n = !1, a(), !e || !o) return null;
1422
- let s = Fn(o.x, o.y, r, i);
1423
- return s.width < Mn || s.height < Mn ? null : s;
1422
+ let s = In(o.x, o.y, r, i);
1423
+ return s.width < Nn || s.height < Nn ? null : s;
1424
1424
  },
1425
1425
  cancel: () => {
1426
1426
  t = null, n = !1, a();
1427
1427
  },
1428
1428
  isDragging: () => n
1429
1429
  };
1430
- }, zn = (e) => {
1430
+ }, Bn = (e) => {
1431
1431
  let { originals: t, editingNode: n } = e, r = /* @__PURE__ */ new Map(), i = () => {
1432
1432
  let e = document.getElementById("studio-staged");
1433
1433
  return e || (e = document.createElement("style"), e.id = "studio-staged", document.head.appendChild(e)), e;
1434
1434
  }, a = () => {
1435
1435
  let e = [];
1436
1436
  for (let [t, n] of r) if (n.kind === "style") {
1437
- let r = $t(t, n);
1437
+ let r = en(t, n);
1438
1438
  r && e.push(r);
1439
1439
  }
1440
1440
  let t = e.join("\n");
@@ -1443,7 +1443,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1443
1443
  n.textContent !== t && (n.textContent = t);
1444
1444
  }, o = (e, r) => {
1445
1445
  let i = X(r.source, r.index);
1446
- if (i) if (r.kind === "style") Zt(i, e);
1446
+ if (i) if (r.kind === "style") Qt(i, e);
1447
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");
1448
1448
  else {
1449
1449
  if (i === n()) return;
@@ -1457,7 +1457,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1457
1457
  if (!n) return;
1458
1458
  r.delete(e);
1459
1459
  let i = X(n.source, n.index);
1460
- if (n.kind === "style") i && Qt(i, e), a();
1460
+ if (n.kind === "style") i && $t(i, e), a();
1461
1461
  else if (n.kind === "image") {
1462
1462
  let e = t.restore(`${n.source}#${n.index}:src`), r = t.restore(`${n.source}#${n.index}:srcset`);
1463
1463
  i && (e != null && (e ? i.setAttribute("src", e) : i.removeAttribute("src")), r != null && (r ? i.setAttribute("srcset", r) : i.removeAttribute("srcset")));
@@ -1486,7 +1486,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1486
1486
  for (let e of Array.from(document.querySelectorAll("[data-staged-key]"))) e.removeAttribute("data-staged-key");
1487
1487
  }
1488
1488
  };
1489
- }, Bn = (e) => {
1489
+ }, Vn = (e) => {
1490
1490
  let { channel: t, originals: n, clearTextHover: r } = e, i = null, a = "", o = 0, s = (() => {
1491
1491
  try {
1492
1492
  let e = document.createElement("div");
@@ -1505,7 +1505,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1505
1505
  n.selectNodeContents(e), n.collapse(!1), t.removeAllRanges(), t.addRange(n);
1506
1506
  }, d = (e, t = !1) => {
1507
1507
  if (i === e) return;
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");
1508
+ i && p(i), i = e, a = Y(e) || "", o = Zt(e, a), r(), n.capture(`${a}#${o}`, e.textContent ?? ""), e.setAttribute("contenteditable", s ? "plaintext-only" : "true");
1509
1509
  let d = e;
1510
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);
1511
1511
  }, f = (e) => {
@@ -1524,7 +1524,7 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1524
1524
  tag: e.tagName.toLowerCase(),
1525
1525
  value: c,
1526
1526
  previous: s,
1527
- occurrences: r ? Yt(r).length : 1
1527
+ occurrences: r ? Xt(r).length : 1
1528
1528
  }
1529
1529
  });
1530
1530
  }, m = (e) => {
@@ -1543,16 +1543,16 @@ var Lt = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
1543
1543
  i && f(i);
1544
1544
  }
1545
1545
  };
1546
- }, Vn = "2026-07-24g · element-capture + region-drag + region-highlights (stale-region guard)";
1547
- function Hn() {
1548
- return E(() => Un(), []), null;
1549
- }
1546
+ }, Hn = "2026-07-24g · element-capture + region-drag + region-highlights (stale-region guard)";
1550
1547
  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();
1548
+ return E(() => Wn(), []), null;
1549
+ }
1550
+ function Wn() {
1551
+ let e = !1, t = null, n = null, r = !1, i = null, a = jn(), o = Cn(), { overlay: s, label: c, ring: l, ringLabel: u } = on();
1552
1552
  document.body.append(s, c, l, u);
1553
- let d = Rn();
1553
+ let d = zn();
1554
1554
  document.body.append(d.node);
1555
- let f = Ln();
1555
+ let f = Rn();
1556
1556
  document.body.append(...f);
1557
1557
  let p = [
1558
1558
  s,
@@ -1582,14 +1582,14 @@ function Un() {
1582
1582
  }, S = (e) => !e || p.includes(e) || e === document.body || e === document.documentElement, C = (e) => {
1583
1583
  if (!e || S(e)) return null;
1584
1584
  let t = Y(e) ? e : e.closest("[data-tsd-source]");
1585
- return !t || S(t) || !ln(t) ? null : t;
1586
- }, w = (e) => on(s, c, e), T = () => {
1585
+ return !t || S(t) || !un(t) ? null : t;
1586
+ }, w = (e) => sn(s, c, e), T = () => {
1587
1587
  if (n) {
1588
1588
  if (!n.isConnected) {
1589
1589
  P();
1590
1590
  return;
1591
1591
  }
1592
- on(l, u, n);
1592
+ sn(l, u, n);
1593
1593
  }
1594
1594
  }, E = 0, D = () => {
1595
1595
  E || !n || r || (E = requestAnimationFrame(() => {
@@ -1618,19 +1618,19 @@ function Un() {
1618
1618
  n = null, O.disconnect(), z(), E &&= (cancelAnimationFrame(E), 0), l.style.display = "none", u.style.display = "none", y(), g();
1619
1619
  }, F = (e) => w(e), I = () => {
1620
1620
  s.style.display = "none", c.style.display = "none";
1621
- }, L = Bn({
1621
+ }, L = Vn({
1622
1622
  channel: o,
1623
1623
  originals: a,
1624
1624
  clearTextHover: () => {
1625
1625
  i = null, I();
1626
1626
  }
1627
- }), R = zn({
1627
+ }), R = Bn({
1628
1628
  originals: a,
1629
1629
  editingNode: L.editingNode
1630
1630
  }), z = () => {
1631
1631
  n?.isConnected || R.count() ? j() : M();
1632
1632
  }, ee = (n) => {
1633
- n && r && te(!1), e = !!n, x(e), e || (t = null, s.style.display = "none", c.style.display = "none", H()), o.send({
1633
+ n && r && te(!1), e = !!n, x(e), e || (t = null, s.style.display = "none", c.style.display = "none", de()), o.send({
1634
1634
  type: "inspect-state",
1635
1635
  enabled: e
1636
1636
  });
@@ -1643,9 +1643,9 @@ function Un() {
1643
1643
  type: "text-edit-state",
1644
1644
  enabled: r
1645
1645
  });
1646
- }, B = 0, ne = 0, re = 0, ie = () => {
1647
- B = 0;
1648
- let n = document.elementFromPoint(ne, re);
1646
+ }, ne = 0, B = 0, re = 0, ie = () => {
1647
+ ne = 0;
1648
+ let n = document.elementFromPoint(B, re);
1649
1649
  if (!S(n)) {
1650
1650
  if (r) {
1651
1651
  let e = C(n);
@@ -1659,30 +1659,30 @@ function Un() {
1659
1659
  e && (d.isDragging() || (t = n, n && w(n)));
1660
1660
  }
1661
1661
  }, ae = (t) => {
1662
- !e && !r || (ne = t.clientX, re = t.clientY, B ||= requestAnimationFrame(ie));
1663
- }, oe = 0, se = () => {
1664
- oe = 0, e && t && w(t), r && !L.editingNode() && i?.isConnected && F(i), n && !r && T(), m.length > 0 && !r && _();
1665
- }, ce = () => {
1666
- oe ||= requestAnimationFrame(se);
1667
- }, V = (n) => {
1662
+ !e && !r || (B = t.clientX, re = t.clientY, ne ||= requestAnimationFrame(ie));
1663
+ }, V = 0, oe = () => {
1664
+ V = 0, e && t && w(t), r && !L.editingNode() && i?.isConnected && F(i), n && !r && T(), m.length > 0 && !r && _();
1665
+ }, se = () => {
1666
+ V ||= requestAnimationFrame(oe);
1667
+ }, ce = (n) => {
1668
1668
  n.relatedTarget || (e ? (t = null, s.style.display = "none", c.style.display = "none") : r && !L.editingNode() && (i = null, I(), document.documentElement.style.cursor = ""));
1669
- }, le = !1, ue = null, de = () => {
1670
- if (ue != null) {
1669
+ }, H = !1, le = null, ue = () => {
1670
+ if (le != null) {
1671
1671
  try {
1672
- document.documentElement.releasePointerCapture(ue);
1672
+ document.documentElement.releasePointerCapture(le);
1673
1673
  } catch {}
1674
- ue = null;
1674
+ le = null;
1675
1675
  }
1676
- }, H = () => {
1677
- de(), d.cancel();
1676
+ }, de = () => {
1677
+ ue(), d.cancel();
1678
1678
  }, fe = (t) => {
1679
- !e || t.button !== 0 || !t.isPrimary || (le = !1, d.pointerDown(t.clientX, t.clientY));
1679
+ !e || t.button !== 0 || !t.isPrimary || (H = !1, d.pointerDown(t.clientX, t.clientY));
1680
1680
  }, pe = (n) => {
1681
1681
  if (!e || !n.isPrimary) return;
1682
1682
  let r = d.isDragging();
1683
1683
  if (d.pointerMove(n.clientX, n.clientY), d.isDragging()) {
1684
1684
  if (!r) {
1685
- ue = n.pointerId;
1685
+ le = n.pointerId;
1686
1686
  try {
1687
1687
  document.documentElement.setPointerCapture(n.pointerId);
1688
1688
  } catch {}
@@ -1691,14 +1691,14 @@ function Un() {
1691
1691
  }
1692
1692
  }, me = (t) => {
1693
1693
  if (!e || !t.isPrimary) return;
1694
- de();
1694
+ ue();
1695
1695
  let n = d.pointerUp();
1696
1696
  if (!n) return;
1697
- le = !0, P();
1698
- let { elements: r, nodes: i, truncated: a } = In(n, p);
1697
+ H = !0, P();
1698
+ let { elements: r, nodes: i, truncated: a } = Ln(n, p);
1699
1699
  console.info(`[levo-inspector] region drag: ${Math.round(n.width)}×${Math.round(n.height)} — ${r.length} element(s)${a ? " (truncated)" : ""}`), v(i);
1700
1700
  let s = ++h;
1701
- Jt(n, p).then((e) => {
1701
+ Yt(n, p).then((e) => {
1702
1702
  s === h && (console.info(`[levo-inspector] region capture ok (${Math.round(e.length / 1024)}kB)`), o.send({
1703
1703
  type: "region-selected",
1704
1704
  rect: n,
@@ -1715,25 +1715,25 @@ function Un() {
1715
1715
  dataUrl: null
1716
1716
  }));
1717
1717
  });
1718
- }, U = () => H(), he = (e) => {
1719
- let t = sn(e.target);
1718
+ }, he = () => de(), U = (e) => {
1719
+ let t = cn(e.target);
1720
1720
  return t ? (e.preventDefault(), e.stopPropagation(), window.open(t, "_blank", "noopener,noreferrer"), !0) : !1;
1721
1721
  }, ge = (i) => {
1722
- if (le) {
1723
- le = !1, i.preventDefault(), i.stopPropagation(), i.stopImmediatePropagation();
1722
+ if (H) {
1723
+ H = !1, i.preventDefault(), i.stopPropagation(), i.stopImmediatePropagation();
1724
1724
  return;
1725
1725
  }
1726
1726
  if (r) {
1727
1727
  let e = C(document.elementFromPoint(i.clientX, i.clientY) || i.target);
1728
1728
  if (!e || e === L.editingNode()) {
1729
- he(i);
1729
+ U(i);
1730
1730
  return;
1731
1731
  }
1732
1732
  i.preventDefault(), i.stopPropagation(), i.stopImmediatePropagation(), L.startEdit(e);
1733
1733
  return;
1734
1734
  }
1735
1735
  if (!e) {
1736
- he(i);
1736
+ U(i);
1737
1737
  return;
1738
1738
  }
1739
1739
  i.preventDefault(), i.stopPropagation(), i.stopImmediatePropagation();
@@ -1742,9 +1742,9 @@ function Un() {
1742
1742
  let s = a.closest("[data-tsd-source]") || a;
1743
1743
  y(), g(), n = s, T(), N(), o.send({
1744
1744
  type: "element-selected",
1745
- element: fn(s)
1745
+ element: pn(s)
1746
1746
  });
1747
- }, _e = kn({
1747
+ }, _e = An({
1748
1748
  channel: o,
1749
1749
  originals: a,
1750
1750
  staged: R,
@@ -1793,42 +1793,42 @@ function Un() {
1793
1793
  type: "route",
1794
1794
  route: e
1795
1795
  });
1796
- }, Se = Cn({ onPathChange: () => {
1796
+ }, Se = wn({ onPathChange: () => {
1797
1797
  P(), xe();
1798
1798
  } }), Ce = (t) => {
1799
1799
  if (L.editingNode()) return;
1800
1800
  if (t.key === "Escape") {
1801
1801
  if (e && d.isDragging()) {
1802
- t.stopPropagation(), H();
1802
+ t.stopPropagation(), de();
1803
1803
  return;
1804
1804
  }
1805
1805
  r ? (t.stopPropagation(), te(!1)) : e && (t.stopPropagation(), ee(!1));
1806
1806
  return;
1807
1807
  }
1808
- if (t.metaKey || t.ctrlKey || t.altKey || t.shiftKey || t.repeat || cn(document.activeElement)) return;
1808
+ if (t.metaKey || t.ctrlKey || t.altKey || t.shiftKey || t.repeat || ln(document.activeElement)) return;
1809
1809
  let n = t.key.toLowerCase();
1810
1810
  n === "s" ? (t.preventDefault(), t.stopPropagation(), ee(!e)) : n === "t" && (t.preventDefault(), t.stopPropagation(), te(!r));
1811
1811
  };
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);
1812
+ window.addEventListener("mousemove", ae, !0), window.addEventListener("scroll", se, !0), window.addEventListener("resize", be), window.addEventListener("click", ge, !0), window.addEventListener("keydown", Ce, !0), window.addEventListener("message", _e.onMessage), window.addEventListener("mouseout", ce, !0), window.addEventListener("pointerdown", fe, !0), window.addEventListener("pointermove", pe, !0), window.addEventListener("pointerup", me, !0), window.addEventListener("pointercancel", he, !0);
1813
1813
  for (let e of ve) window.addEventListener(e, ye, !0);
1814
- return console.info(`[levo-inspector] build ${Vn} — runtime mounted`), xe(), o.send({ type: "ready" }), () => {
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);
1814
+ return console.info(`[levo-inspector] build ${Hn} — runtime mounted`), xe(), o.send({ type: "ready" }), () => {
1815
+ window.removeEventListener("mousemove", ae, !0), window.removeEventListener("keydown", Ce, !0), window.removeEventListener("scroll", se, !0), window.removeEventListener("resize", be), window.removeEventListener("mouseout", ce, !0), window.removeEventListener("pointerdown", fe, !0), window.removeEventListener("pointermove", pe, !0), window.removeEventListener("pointerup", me, !0), window.removeEventListener("pointercancel", he, !0), window.removeEventListener("click", ge, !0), window.removeEventListener("message", _e.onMessage);
1816
1816
  for (let e of ve) window.removeEventListener(e, ye, !0);
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();
1817
+ O.disconnect(), k.disconnect(), E && cancelAnimationFrame(E), ne && cancelAnimationFrame(ne), V && cancelAnimationFrame(V), R.teardown(), Se.teardown(), L.teardown(), document.documentElement.style.cursor = "", b?.remove(), s.remove(), c.remove(), l.remove(), u.remove(), de(), d.node.remove();
1818
1818
  for (let e of f) e.remove();
1819
1819
  };
1820
1820
  }
1821
1821
  //#endregion
1822
1822
  //#region src/branding/MadeWithLevo.tsx
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 }) => {
1823
+ var Gn = "levo-made-with", Kn = `.${Gn}{opacity:.2;transition:opacity 150ms,transform 150ms}
1824
+ .${Gn}:hover,.${Gn}:focus-visible{opacity:1;transform:translateY(-2px)}`, qn = ({ slug: e }) => {
1825
1825
  let t = `utm_source=${encodeURIComponent(e || "website")}&utm_term=Made%20With%20Levo&utm_campaign=footer_branding&utm_medium=organic_footer_branding`;
1826
1826
  return /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N("style", {
1827
1827
  href: "levo-made-with",
1828
1828
  precedence: "default",
1829
- children: Gn
1829
+ children: Kn
1830
1830
  }), /* @__PURE__ */ P("a", {
1831
- className: Wn,
1831
+ className: Gn,
1832
1832
  href: `https://levo.so/?${t}`,
1833
1833
  target: "_blank",
1834
1834
  rel: "noopener noreferrer",
@@ -1859,58 +1859,58 @@ var Wn = "levo-made-with", Gn = `.${Wn}{opacity:.2;transition:opacity 150ms,tran
1859
1859
  }
1860
1860
  }), "Made with Levo"]
1861
1861
  })] });
1862
- }, qn = "levo:page-id", Jn = () => {
1862
+ }, Jn = "levo:page-id", Yn = () => {
1863
1863
  if (typeof document > "u") return null;
1864
- let e = document.querySelectorAll(`meta[name="${qn}"]`);
1864
+ let e = document.querySelectorAll(`meta[name="${Jn}"]`);
1865
1865
  return e[e.length - 1]?.getAttribute("content")?.trim() || null;
1866
- }, Yn = C(() => import("./dist-DEXGyFeH.js").then((e) => e.n).then((e) => ({ default: e.PopupLoader }))), Xn = ({ siteId: e, pageId: t }) => {
1866
+ }, Xn = C(() => import("./dist-DEXGyFeH.js").then((e) => e.n).then((e) => ({ default: e.PopupLoader }))), Zn = ({ siteId: e, pageId: t }) => {
1867
1867
  let n = G(), r = i();
1868
1868
  return !n || !r ? null : /* @__PURE__ */ N(x, {
1869
1869
  fallback: null,
1870
- children: /* @__PURE__ */ N(Yn, {
1870
+ children: /* @__PURE__ */ N(Xn, {
1871
1871
  pageId: t,
1872
1872
  siteId: e
1873
1873
  })
1874
1874
  });
1875
- }, Zn = S(null), Qn = Zn.Provider, $n = () => T(Zn), er = () => i(), tr = () => n(), nr = ({ site: e, analytics: t = !0, children: n }) => {
1875
+ }, Qn = S(null), $n = Qn.Provider, er = () => T(Qn), tr = () => i(), nr = () => n(), rr = ({ site: e, analytics: t = !0, children: n }) => {
1876
1876
  let [i] = A(() => {
1877
1877
  if (!e) return null;
1878
- let n = Oe(e), r = De(n);
1878
+ let n = ke(e), r = Oe(n);
1879
1879
  return r ? {
1880
1880
  client: r,
1881
- insights: ne(r, {
1881
+ insights: re(r, {
1882
1882
  insightsUrl: t && n.insightsUrl || null,
1883
1883
  site: n.siteId || null
1884
1884
  }),
1885
1885
  site: e
1886
1886
  } : null;
1887
- }), [a, o] = A(null), s = B({ select: (e) => e.location.pathname }), c = On();
1887
+ }), [a, o] = A(null), s = B({ select: (e) => e.location.pathname }), c = kn();
1888
1888
  return E(() => {
1889
1889
  i && (window.levo_client = i.client, window.levo_insights = i.insights);
1890
1890
  }, [i]), D(() => {
1891
1891
  if (!i) return;
1892
- let e = Jn();
1892
+ let e = Yn();
1893
1893
  o(e), i.insights.init({ pageId: e });
1894
1894
  }, [i, s]), i ? /* @__PURE__ */ P(r, {
1895
1895
  client: i.client,
1896
1896
  insights: i.insights,
1897
1897
  children: [
1898
- /* @__PURE__ */ N(Qn, {
1898
+ /* @__PURE__ */ N($n, {
1899
1899
  value: i.site,
1900
1900
  children: n
1901
1901
  }),
1902
- !c && /* @__PURE__ */ N(Dt, {
1902
+ !c && /* @__PURE__ */ N(Ot, {
1903
1903
  site: i.site,
1904
1904
  path: s
1905
1905
  }),
1906
- /* @__PURE__ */ N(Xn, {
1906
+ /* @__PURE__ */ N(Zn, {
1907
1907
  pageId: a ?? void 0,
1908
1908
  siteId: i.site.id
1909
1909
  }),
1910
- !c && !!i.site.feature_flag?.branding && /* @__PURE__ */ N(Kn, { slug: i.site.slug })
1910
+ !c && !!i.site.feature_flag?.branding && /* @__PURE__ */ N(qn, { slug: i.site.slug })
1911
1911
  ]
1912
1912
  }) : /* @__PURE__ */ N(M, { children: n });
1913
- }, rr = (e, t) => {
1913
+ }, ir = (e, t) => {
1914
1914
  let n = h(t);
1915
1915
  return ({ location: t }) => {
1916
1916
  if (!e.isLocalized) return;
@@ -1921,12 +1921,12 @@ var Wn = "levo-made-with", Gn = `.${Wn}{opacity:.2;transition:opacity 150ms,tran
1921
1921
  cookie: typeof document > "u" ? null : document.cookie,
1922
1922
  hasRoute: n
1923
1923
  });
1924
- if (r.kind === "redirect" && r.path !== t.pathname) throw te({
1924
+ if (r.kind === "redirect" && r.path !== t.pathname) throw ne({
1925
1925
  search: !0,
1926
1926
  to: r.path
1927
1927
  });
1928
1928
  };
1929
- }, ir = (e) => {
1929
+ }, ar = (e) => {
1930
1930
  let t = e.locales ?? [], n = e.domain?.trim().replace(/^https?:\/\//, "").replace(/\/+$/, "");
1931
1931
  return {
1932
1932
  locales: t,
@@ -1934,8 +1934,8 @@ var Wn = "levo-made-with", Gn = `.${Wn}{opacity:.2;transition:opacity 150ms,tran
1934
1934
  isLocalized: t.length > 1,
1935
1935
  origin: n ? `https://${n}` : null
1936
1936
  };
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}`;
1937
+ }, or = (e) => e.replace(/\/$/, ""), sr = (e) => {
1938
+ let { neutralPath: t, locales: n, activePrefix: r, hasRoute: i } = e, a = or(e.origin), o = `${a}${t}`;
1939
1939
  if (n.length <= 1) return [{
1940
1940
  rel: "canonical",
1941
1941
  href: o
@@ -1957,11 +1957,14 @@ var Wn = "levo-made-with", Gn = `.${Wn}{opacity:.2;transition:opacity 150ms,tran
1957
1957
  hrefLang: "x-default",
1958
1958
  href: o
1959
1959
  }), s;
1960
- }, sr = ({ config: e, routeTree: t }) => {
1960
+ }, cr = ({ to: e, ...t }) => /* @__PURE__ */ N(ee, {
1961
+ ...t,
1962
+ to: e
1963
+ }), lr = ({ config: e, routeTree: t }) => {
1961
1964
  let n = B({ select: (e) => e.location.pathname });
1962
1965
  if (!e.isLocalized || !e.origin) return null;
1963
1966
  let { neutralPath: r } = f(n, e.locales);
1964
- return /* @__PURE__ */ N(M, { children: or({
1967
+ return /* @__PURE__ */ N(M, { children: sr({
1965
1968
  neutralPath: r,
1966
1969
  origin: e.origin,
1967
1970
  locales: e.locales,
@@ -1971,7 +1974,7 @@ var Wn = "levo-made-with", Gn = `.${Wn}{opacity:.2;transition:opacity 150ms,tran
1971
1974
  hrefLang: e.hrefLang,
1972
1975
  rel: e.rel
1973
1976
  }, e.hrefLang ?? e.href)) });
1974
- }, cr = S(void 0), lr = ({ children: e, locale: t, locales: n, defaultLocale: r, source: i = "default", hasRoute: a }) => {
1977
+ }, ur = S(void 0), dr = ({ children: e, locale: t, locales: n, defaultLocale: r, source: i = "default", hasRoute: a }) => {
1975
1978
  let o = O(() => {
1976
1979
  let e = n?.length ? n : [t];
1977
1980
  return {
@@ -1995,13 +1998,13 @@ var Wn = "levo-made-with", Gn = `.${Wn}{opacity:.2;transition:opacity 150ms,tran
1995
1998
  i,
1996
1999
  a
1997
2000
  ]);
1998
- return /* @__PURE__ */ N(cr.Provider, {
2001
+ return /* @__PURE__ */ N(ur.Provider, {
1999
2002
  value: o,
2000
2003
  children: e
2001
2004
  });
2002
2005
  };
2003
- function ur() {
2004
- return T(cr) || {
2006
+ function fr() {
2007
+ return T(ur) || {
2005
2008
  locale: "en",
2006
2009
  locales: ["en"],
2007
2010
  defaultLocale: "en",
@@ -2011,13 +2014,13 @@ function ur() {
2011
2014
  pathFor: (e) => e
2012
2015
  };
2013
2016
  }
2014
- function dr(e) {
2017
+ function pr(e) {
2015
2018
  let { prefix: t } = f(B({ select: (e) => e.location.pathname }), e.locales);
2016
2019
  return t ?? e.defaultLocale;
2017
2020
  }
2018
- var fr = ({ config: e, children: t, routeTree: n }) => {
2021
+ var mr = ({ config: e, children: t, routeTree: n }) => {
2019
2022
  let { prefix: r } = f(B({ select: (e) => e.location.pathname }), e.locales);
2020
- return /* @__PURE__ */ N(lr, {
2023
+ return /* @__PURE__ */ N(dr, {
2021
2024
  defaultLocale: e.defaultLocale,
2022
2025
  hasRoute: n ? h(n) : void 0,
2023
2026
  locale: r ?? e.defaultLocale,
@@ -2026,8 +2029,8 @@ var fr = ({ config: e, children: t, routeTree: n }) => {
2026
2029
  children: t
2027
2030
  });
2028
2031
  };
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 });
2032
+ function hr() {
2033
+ let { locale: e, locales: t, isMultiLocale: n, setLocale: r, pathFor: i, hasRoute: a } = fr(), o = B({ select: (e) => e.location.pathname });
2031
2034
  return O(() => {
2032
2035
  if (!n) return [];
2033
2036
  let { neutralPath: s } = f(o, t), c = t.filter((e) => !a || a(i(s, e)));
@@ -2054,14 +2057,14 @@ function pr() {
2054
2057
  }
2055
2058
  //#endregion
2056
2059
  //#region src/pageHead.tsx
2057
- var mr = (e) => JSON.stringify(e).replace(/<\//g, "<\\/"), hr = (e) => {
2060
+ var gr = (e) => JSON.stringify(e).replace(/<\//g, "<\\/"), _r = (e) => {
2058
2061
  let t = {}, n = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*("([^"]*)"|'([^']*)'|[^\s"'>]+))?/g;
2059
2062
  for (let r = n.exec(e); r; r = n.exec(e)) {
2060
2063
  let e = r[1];
2061
2064
  !e || /^on/i.test(e) || (t[e] = r[3] ?? r[4] ?? (r[2] ? r[2] : ""));
2062
2065
  }
2063
2066
  return t;
2064
- }, gr = (e) => {
2067
+ }, vr = (e) => {
2065
2068
  let t = {
2066
2069
  meta: [],
2067
2070
  links: [],
@@ -2069,11 +2072,11 @@ var mr = (e) => JSON.stringify(e).replace(/<\//g, "<\\/"), hr = (e) => {
2069
2072
  };
2070
2073
  if (!e?.trim()) return t;
2071
2074
  let n = e.replace(/<script\b([^>]*)>([\s\S]*?)<\/script\s*>/gi, (e, n, r) => {
2072
- let i = hr(n), a = r.trim();
2075
+ let i = _r(n), a = r.trim();
2073
2076
  return a && (i.children = a), t.scripts.push(i), "";
2074
2077
  });
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 = {}) => {
2078
+ return n = n.replace(/<(meta|link)\b([^>]*?)\/?>/gi, (e, n, r) => ((n.toLowerCase() === "meta" ? t.meta : t.links).push(_r(r)), "")), t;
2079
+ }, yr = (e = {}, t = {}) => {
2077
2080
  let n = {
2078
2081
  meta: [],
2079
2082
  links: [],
@@ -2135,17 +2138,17 @@ var mr = (e) => JSON.stringify(e).replace(/<\//g, "<\\/"), hr = (e) => {
2135
2138
  let y = e.ldJson ? Array.isArray(e.ldJson) ? e.ldJson : [e.ldJson] : [];
2136
2139
  for (let e of y) n.scripts.push({
2137
2140
  type: "application/ld+json",
2138
- children: mr(e)
2141
+ children: gr(e)
2139
2142
  });
2140
2143
  for (let r of [t.customHead, e.customHead]) {
2141
2144
  if (!r) continue;
2142
- let e = gr(r);
2145
+ let e = vr(r);
2143
2146
  n.meta.push(...e.meta), n.links.push(...e.links), n.scripts.push(...e.scripts);
2144
2147
  }
2145
2148
  return n;
2146
2149
  };
2147
- function vr({ meta: e, site: t }) {
2148
- let n = _r(e, t);
2150
+ function br({ meta: e, site: t }) {
2151
+ let n = yr(e, t);
2149
2152
  return /* @__PURE__ */ P(M, { children: [
2150
2153
  n.meta.map((e, t) => e.title === void 0 ? /* @__PURE__ */ N("meta", { ...e }, `m${t}`) : /* @__PURE__ */ N("title", { children: e.title }, `t${t}`)),
2151
2154
  n.links.map((e, t) => /* @__PURE__ */ N("link", { ...e }, `l${t}`)),
@@ -2157,7 +2160,7 @@ function vr({ meta: e, site: t }) {
2157
2160
  }
2158
2161
  //#endregion
2159
2162
  //#region src/registration/ui.tsx
2160
- var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, children: n }) => /* @__PURE__ */ N("div", {
2163
+ var Z = (...e) => e.filter(Boolean).join(" "), xr = ({ open: e, className: t, children: n }) => /* @__PURE__ */ N("div", {
2161
2164
  inert: !e,
2162
2165
  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"),
2163
2166
  children: /* @__PURE__ */ N("div", {
@@ -2167,7 +2170,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2167
2170
  children: n
2168
2171
  })
2169
2172
  })
2170
- }), br = [
2173
+ }), Sr = [
2171
2174
  {
2172
2175
  key: "email",
2173
2176
  label: "Email",
@@ -2200,7 +2203,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2200
2203
  inputMode: void 0,
2201
2204
  autoComplete: "organization-title"
2202
2205
  }
2203
- ], xr = [{
2206
+ ], Cr = [{
2204
2207
  key: "name",
2205
2208
  label: "Registered company name",
2206
2209
  placeholder: "Acme Corporation",
@@ -2210,7 +2213,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2210
2213
  label: "Tax ID / GST number",
2211
2214
  placeholder: "22AAAAA0000A1Z5",
2212
2215
  autoComplete: "off"
2213
- }], Sr = [
2216
+ }], wr = [
2214
2217
  {
2215
2218
  key: "line1",
2216
2219
  label: "Billing address",
@@ -2259,11 +2262,11 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2259
2262
  wide: !1,
2260
2263
  optional: !1
2261
2264
  }
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", {
2265
+ ], Tr = (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"), Er = "flex items-baseline gap-1.5 font-medium text-ink text-sm", Dr = () => /* @__PURE__ */ N("span", {
2263
2266
  "aria-hidden": !0,
2264
2267
  className: "text-danger",
2265
2268
  children: "*"
2266
- }), Er = ({ values: e, errors: t, touched: n, onChange: r, onBlur: i, showBusinessBilling: a = !1, registrationFields: o, nameInputRef: s }) => {
2269
+ }), Or = ({ values: e, errors: t, touched: n, onChange: r, onBlur: i, showBusinessBilling: a = !1, registrationFields: o, nameInputRef: s }) => {
2267
2270
  let c = (t, n) => r("billing_details", {
2268
2271
  ...e.billing_details,
2269
2272
  [t]: n
@@ -2282,8 +2285,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2282
2285
  children: [
2283
2286
  /* @__PURE__ */ P("label", {
2284
2287
  htmlFor: "attendee-name",
2285
- className: wr,
2286
- children: ["Your name", /* @__PURE__ */ N(Tr, {})]
2288
+ className: Er,
2289
+ children: ["Your name", /* @__PURE__ */ N(Dr, {})]
2287
2290
  }),
2288
2291
  /* @__PURE__ */ N("input", {
2289
2292
  ref: s,
@@ -2295,7 +2298,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2295
2298
  value: e.name,
2296
2299
  onChange: (e) => r("name", e.target.value),
2297
2300
  onBlur: () => i("name"),
2298
- className: Cr(n.name && !!t.name),
2301
+ className: Tr(n.name && !!t.name),
2299
2302
  required: !0
2300
2303
  }),
2301
2304
  n.name && t.name && /* @__PURE__ */ N("p", {
@@ -2304,7 +2307,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2304
2307
  })
2305
2308
  ]
2306
2309
  }),
2307
- br.map((a) => {
2310
+ Sr.map((a) => {
2308
2311
  let s = o[a.key];
2309
2312
  if (s === "off") return null;
2310
2313
  let c = n[a.key] ? t[a.key] : void 0, l = a.key === "email" || a.key === "mobile";
@@ -2313,8 +2316,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2313
2316
  children: [
2314
2317
  /* @__PURE__ */ P("label", {
2315
2318
  htmlFor: `attendee-${a.key}`,
2316
- className: wr,
2317
- children: [a.label, s === "required" ? /* @__PURE__ */ N(Tr, {}) : /* @__PURE__ */ N("span", {
2319
+ className: Er,
2320
+ children: [a.label, s === "required" ? /* @__PURE__ */ N(Dr, {}) : /* @__PURE__ */ N("span", {
2318
2321
  className: "font-normal text-ink-muted text-xs",
2319
2322
  children: "Optional"
2320
2323
  })]
@@ -2332,7 +2335,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2332
2335
  value: e[a.key],
2333
2336
  onChange: (e) => r(a.key, e.target.value),
2334
2337
  onBlur: () => i(a.key),
2335
- className: Cr(!!c),
2338
+ className: Tr(!!c),
2336
2339
  required: s === "required"
2337
2340
  }),
2338
2341
  c && /* @__PURE__ */ N("p", {
@@ -2361,7 +2364,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2361
2364
  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",
2362
2365
  children: "Your billing details are still saved — tick the box to apply them."
2363
2366
  }),
2364
- /* @__PURE__ */ N(yr, {
2367
+ /* @__PURE__ */ N(xr, {
2365
2368
  open: e.is_business_purchase,
2366
2369
  className: "px-3.5 pb-3.5",
2367
2370
  children: /* @__PURE__ */ P("div", {
@@ -2371,15 +2374,15 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2371
2374
  className: "m-0 text-ink-muted text-xs leading-relaxed",
2372
2375
  children: "This booking will be billed to your business. The invoice is raised against the details below."
2373
2376
  }),
2374
- xr.map((t) => /* @__PURE__ */ P("div", {
2377
+ Cr.map((t) => /* @__PURE__ */ P("div", {
2375
2378
  className: "flex flex-col gap-1.5",
2376
2379
  children: [/* @__PURE__ */ P("label", {
2377
2380
  htmlFor: `billing-${t.key}`,
2378
- className: wr,
2379
- children: [t.label, /* @__PURE__ */ N(Tr, {})]
2381
+ className: Er,
2382
+ children: [t.label, /* @__PURE__ */ N(Dr, {})]
2380
2383
  }), /* @__PURE__ */ N("input", {
2381
2384
  id: `billing-${t.key}`,
2382
- className: Cr(),
2385
+ className: Tr(),
2383
2386
  placeholder: t.placeholder,
2384
2387
  autoComplete: t.autoComplete,
2385
2388
  value: e.billing_details[t.key],
@@ -2389,15 +2392,15 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2389
2392
  }, t.key)),
2390
2393
  /* @__PURE__ */ N("div", {
2391
2394
  className: "grid grid-cols-2 gap-3",
2392
- children: Sr.map((t) => /* @__PURE__ */ P("div", {
2395
+ children: wr.map((t) => /* @__PURE__ */ P("div", {
2393
2396
  className: Z("flex flex-col gap-1.5", t.wide && "col-span-2"),
2394
2397
  children: [/* @__PURE__ */ P("label", {
2395
2398
  htmlFor: `billing-${t.key}`,
2396
- className: wr,
2397
- children: [t.label, !t.optional && /* @__PURE__ */ N(Tr, {})]
2399
+ className: Er,
2400
+ children: [t.label, !t.optional && /* @__PURE__ */ N(Dr, {})]
2398
2401
  }), /* @__PURE__ */ N("input", {
2399
2402
  id: `billing-${t.key}`,
2400
- className: Cr(),
2403
+ className: Tr(),
2401
2404
  placeholder: t.placeholder,
2402
2405
  autoComplete: t.autoComplete,
2403
2406
  inputMode: t.key === "postal_code" ? "numeric" : void 0,
@@ -2414,7 +2417,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2414
2417
  })
2415
2418
  ]
2416
2419
  });
2417
- }, Dr = {
2420
+ }, kr = {
2418
2421
  USD: "$",
2419
2422
  EUR: "€",
2420
2423
  GBP: "£",
@@ -2432,17 +2435,17 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2432
2435
  maximumFractionDigits: 2
2433
2436
  }).format(r);
2434
2437
  } catch {
2435
- return `${Dr[n] ?? n} ${r.toLocaleString()}`;
2438
+ return `${kr[n] ?? n} ${r.toLocaleString()}`;
2436
2439
  }
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) => {
2440
+ }, Ar = (e) => !e.tax_enabled || !e.taxes?.length ? null : e.tax_inclusive ? "incl. taxes" : "+ taxes", jr = (e) => !!e?.taxes?.length && e.tax_amount !== void 0, Mr = (e) => !!e && "subtotal" in e && e.tax_enabled === !0 && !!e.taxes?.length, Nr = (e, t) => t ? t.total_amount ?? t.sale_amount ?? 0 : Mr(e) ? e.total ?? e.unit_amount ?? 0 : e?.unit_amount ?? 0, Pr = (e, t) => {
2438
2441
  if (!e) return null;
2439
- let n = jr(e, t);
2442
+ let n = Nr(e, t);
2440
2443
  return {
2441
2444
  amount: n,
2442
2445
  currency: e.currency,
2443
2446
  isFree: n === 0
2444
2447
  };
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 }) => {
2448
+ }, Fr = (e, t) => t ? t.base_amount ?? 0 : Mr(e) ? e.subtotal ?? e.unit_amount ?? 0 : e?.unit_amount ?? 0, Ir = (e, t) => jr(t) ? t.taxes : !t && Mr(e) ? e.taxes : [], Lr = (e, t) => !t || e.tickets.length === 0 ? !0 : e.tickets.some((e) => typeof e == "string" ? e === t : e._id === t), Rr = (e) => e.kind === "percent" ? `${e.percent_off}% off` : `${kr[e.currency ?? "INR"] ?? ""}${(e.amount_off ?? 0) / 100} off`, zr = ({ couponCode: e, onCouponCodeChange: t, couponError: n, couponLoading: r, onValidateCoupon: i, onRemoveCoupon: a, publicCoupons: o, discount: s, selectedTicket: c }) => {
2446
2449
  let [l, u] = A(!1);
2447
2450
  if (s) return /* @__PURE__ */ P("div", {
2448
2451
  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",
@@ -2472,7 +2475,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2472
2475
  children: /* @__PURE__ */ N(ce, { className: "size-4" })
2473
2476
  })]
2474
2477
  });
2475
- let d = o.filter((e) => Fr(e, c?._id));
2478
+ let d = o.filter((e) => Lr(e, c?._id));
2476
2479
  return /* @__PURE__ */ P("div", {
2477
2480
  className: "flex flex-col",
2478
2481
  children: [/* @__PURE__ */ N("button", {
@@ -2481,7 +2484,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2481
2484
  onClick: () => u((e) => !e),
2482
2485
  className: "self-start text-[13px] text-ink-soft underline underline-offset-[3px] hover:text-ink",
2483
2486
  children: "Have a code?"
2484
- }), /* @__PURE__ */ N(yr, {
2487
+ }), /* @__PURE__ */ N(xr, {
2485
2488
  open: l,
2486
2489
  children: /* @__PURE__ */ P("div", {
2487
2490
  className: "flex flex-col gap-2 pt-2",
@@ -2525,7 +2528,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2525
2528
  children: [
2526
2529
  e.code,
2527
2530
  " · ",
2528
- Ir(e)
2531
+ Rr(e)
2529
2532
  ]
2530
2533
  }, e._id))
2531
2534
  })
@@ -2533,11 +2536,11 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2533
2536
  })
2534
2537
  })]
2535
2538
  });
2536
- }, Rr = (e) => {
2539
+ }, Br = (e) => {
2537
2540
  if (e < 60) return `${e} min`;
2538
2541
  let t = Math.floor(e / 60), n = e % 60, r = `${t} hr`;
2539
2542
  return n ? `${r} ${n} min` : r;
2540
- }, zr = (e, t) => {
2543
+ }, Vr = (e, t) => {
2541
2544
  if (!e) return null;
2542
2545
  let n = new Date(e);
2543
2546
  if (Number.isNaN(n.getTime())) return null;
@@ -2552,26 +2555,26 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2552
2555
  }).format(n), a = null;
2553
2556
  if (t) {
2554
2557
  let e = new Date(t), r = Math.round((e.getTime() - n.getTime()) / 6e4);
2555
- !Number.isNaN(r) && r > 0 && (a = Rr(r));
2558
+ !Number.isNaN(r) && r > 0 && (a = Br(r));
2556
2559
  }
2557
2560
  return {
2558
2561
  day: r,
2559
2562
  time: i,
2560
2563
  duration: a
2561
2564
  };
2562
- }, Br = 60, Vr = (e) => e.toISOString().replace(/[-:]/g, "").replace(/\.\d+/, ""), Hr = (e) => {
2565
+ }, Hr = 60, Ur = (e) => e.toISOString().replace(/[-:]/g, "").replace(/\.\d+/, ""), Wr = (e) => {
2563
2566
  if (!e.startsAt) return null;
2564
2567
  let t = new Date(e.startsAt);
2565
2568
  if (Number.isNaN(t.getTime())) return null;
2566
2569
  let n = e.endsAt ? new Date(e.endsAt) : null;
2567
2570
  return {
2568
2571
  start: t,
2569
- end: n && !Number.isNaN(n.getTime()) && n > t ? n : new Date(t.getTime() + Br * 6e4)
2572
+ end: n && !Number.isNaN(n.getTime()) && n > t ? n : new Date(t.getTime() + Hr * 6e4)
2570
2573
  };
2571
- }, Ur = (e) => {
2572
- let t = Hr(e);
2574
+ }, Gr = (e) => {
2575
+ let t = Wr(e);
2573
2576
  if (!t) return null;
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({
2577
+ let n = Ur(t.start), r = Ur(t.end), i = [e.description, e.url].filter(Boolean).join("\n\n"), a = `https://calendar.google.com/calendar/render?${new URLSearchParams({
2575
2578
  action: "TEMPLATE",
2576
2579
  text: e.title,
2577
2580
  dates: `${n}/${r}`,
@@ -2605,10 +2608,10 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2605
2608
  "END:VCALENDAR"
2606
2609
  ].filter(Boolean).join("\r\n")
2607
2610
  };
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", {
2611
+ }, Kr = ({ selectedTicket: e, discount: t }) => {
2612
+ let [n, r] = A(!1), i = e?.currency, a = Nr(e, t), o = Fr(e, t), s = Ir(e, t), c = t?.discount ?? 0, l = s.length > 0 || c > 0 || o !== a, u = /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ P("span", {
2610
2613
  className: "inline-flex items-center gap-1.5",
2611
- children: ["Total", l && /* @__PURE__ */ N(ae, { className: Z("size-4 text-ink-muted transition-transform", n && "rotate-180") })]
2614
+ children: ["Total", l && /* @__PURE__ */ N(V, { className: Z("size-4 text-ink-muted transition-transform", n && "rotate-180") })]
2612
2615
  }), /* @__PURE__ */ N("span", { children: Q({
2613
2616
  unit_amount: a,
2614
2617
  currency: i
@@ -2624,7 +2627,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2624
2627
  }) : /* @__PURE__ */ N("div", {
2625
2628
  className: d,
2626
2629
  children: u
2627
- }), l && /* @__PURE__ */ N(yr, {
2630
+ }), l && /* @__PURE__ */ N(xr, {
2628
2631
  open: n,
2629
2632
  children: /* @__PURE__ */ P("div", {
2630
2633
  className: "flex flex-col gap-1.5 px-3.5 pb-3 text-[13px] text-ink-soft",
@@ -2663,7 +2666,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2663
2666
  })
2664
2667
  })]
2665
2668
  });
2666
- }, Gr = (e) => {
2669
+ }, qr = (e) => {
2667
2670
  let [t, n] = A(null);
2668
2671
  return E(() => {
2669
2672
  let t = e ? window.visualViewport : null;
@@ -2676,8 +2679,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2676
2679
  t.removeEventListener("resize", r), t.removeEventListener("scroll", r);
2677
2680
  };
2678
2681
  }, [e]), t;
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", {
2682
+ }, Jr = ({ open: e, title: t, when: n, onClose: r, onClosed: i, onSubmit: a, footer: o, wide: s, initialFocusRef: c, layers: l, children: u }) => {
2683
+ let d = k(null), f = qr(e), [p, m] = A(!1), h = /* @__PURE__ */ N("div", {
2681
2684
  onScroll: (e) => m(e.currentTarget.scrollTop > 2),
2682
2685
  className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain",
2683
2686
  children: /* @__PURE__ */ P("div", {
@@ -2742,8 +2745,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2742
2745
  ]
2743
2746
  })] })
2744
2747
  });
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({
2748
+ }, Yr = "block w-full rounded-lg px-2.5 py-2 text-left text-ink text-sm no-underline hover:bg-ink/5", Xr = "transition-[opacity,translate] duration-300 ease-out starting:translate-y-2 starting:opacity-0 motion-reduce:transition-none", Zr = "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]", Qr = ({ email: e, eventTitle: t, startsAt: n, endsAt: r, eventUrl: i, when: a, bookingRef: o, qrImageUrl: s, invoiceUrl: c, onClose: l, onRegisterAnother: u }) => {
2749
+ let d = Gr({
2747
2750
  title: t,
2748
2751
  startsAt: n,
2749
2752
  endsAt: r,
@@ -2773,11 +2776,11 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2773
2776
  })
2774
2777
  }),
2775
2778
  /* @__PURE__ */ N("h3", {
2776
- className: Z(Jr, "m-0 mt-[18px] font-heading font-semibold text-[22px] text-ink tracking-[-0.016em] delay-[260ms]"),
2779
+ className: Z(Xr, "m-0 mt-[18px] font-heading font-semibold text-[22px] text-ink tracking-[-0.016em] delay-[260ms]"),
2777
2780
  children: "You're in"
2778
2781
  }),
2779
2782
  a && /* @__PURE__ */ P("p", {
2780
- className: Z(Jr, "m-0 mt-1.5 text-[14.5px] text-ink delay-[320ms]"),
2783
+ className: Z(Xr, "m-0 mt-1.5 text-[14.5px] text-ink delay-[320ms]"),
2781
2784
  children: [
2782
2785
  a.day,
2783
2786
  " · ",
@@ -2785,14 +2788,14 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2785
2788
  ]
2786
2789
  }),
2787
2790
  /* @__PURE__ */ P("p", {
2788
- className: Z(Jr, "m-0 mt-1 max-w-[300px] text-[13.5px] text-ink-soft leading-relaxed delay-[360ms]"),
2791
+ className: Z(Xr, "m-0 mt-1 max-w-[300px] text-[13.5px] text-ink-soft leading-relaxed delay-[360ms]"),
2789
2792
  children: ["Joining link sent to ", /* @__PURE__ */ N("span", {
2790
2793
  className: "text-ink [overflow-wrap:anywhere]",
2791
2794
  children: e
2792
2795
  })]
2793
2796
  }),
2794
2797
  /* @__PURE__ */ P("div", {
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]"),
2798
+ className: Z(Xr, "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]"),
2796
2799
  children: [
2797
2800
  /* @__PURE__ */ N("span", {
2798
2801
  "aria-hidden": !0,
@@ -2826,29 +2829,29 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2826
2829
  ]
2827
2830
  }),
2828
2831
  /* @__PURE__ */ P("div", {
2829
- className: Z(Jr, "mt-4 flex w-full max-w-[340px] flex-col gap-2 delay-[520ms]"),
2832
+ className: Z(Xr, "mt-4 flex w-full max-w-[340px] flex-col gap-2 delay-[520ms]"),
2830
2833
  children: [
2831
- d && /* @__PURE__ */ P(V.Root, { children: [/* @__PURE__ */ P(V.Trigger, {
2832
- className: Yr,
2833
- children: [/* @__PURE__ */ N(re, { className: "size-4" }), "Add to calendar"]
2834
- }), /* @__PURE__ */ N(V.Portal, { children: /* @__PURE__ */ N(V.Positioner, {
2834
+ d && /* @__PURE__ */ P(H.Root, { children: [/* @__PURE__ */ P(H.Trigger, {
2835
+ className: Zr,
2836
+ children: [/* @__PURE__ */ N(ie, { className: "size-4" }), "Add to calendar"]
2837
+ }), /* @__PURE__ */ N(H.Portal, { children: /* @__PURE__ */ N(H.Positioner, {
2835
2838
  sideOffset: 6,
2836
2839
  className: "z-[2147483001]",
2837
- children: /* @__PURE__ */ P(V.Popup, {
2840
+ children: /* @__PURE__ */ P(H.Popup, {
2838
2841
  className: "flex w-[220px] origin-[var(--transform-origin)] flex-col gap-0.5 rounded-2xl border border-border bg-page p-1.5 font-body text-ink shadow-xl outline-none transition-[opacity,scale] duration-150 ease-out data-[ending-style]:scale-95 data-[starting-style]:scale-95 data-[ending-style]:opacity-0 data-[starting-style]:opacity-0 motion-reduce:transition-none",
2839
2842
  children: [
2840
2843
  /* @__PURE__ */ N("a", {
2841
2844
  href: d.google,
2842
2845
  target: "_blank",
2843
2846
  rel: "noopener noreferrer",
2844
- className: qr,
2847
+ className: Yr,
2845
2848
  children: "Google Calendar"
2846
2849
  }),
2847
2850
  /* @__PURE__ */ N("a", {
2848
2851
  href: d.outlook,
2849
2852
  target: "_blank",
2850
2853
  rel: "noopener noreferrer",
2851
- className: qr,
2854
+ className: Yr,
2852
2855
  children: "Outlook"
2853
2856
  }),
2854
2857
  /* @__PURE__ */ N("button", {
@@ -2858,7 +2861,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2858
2861
  let e = new Blob([d.ics], { type: "text/calendar;charset=utf-8" }), n = URL.createObjectURL(e), r = document.createElement("a");
2859
2862
  r.href = n, r.download = `${t.replace(/[^\w\s-]/g, "").trim() || "event"}.ics`, r.click(), URL.revokeObjectURL(n);
2860
2863
  },
2861
- className: qr,
2864
+ className: Yr,
2862
2865
  children: "Apple Calendar / .ics"
2863
2866
  })
2864
2867
  ]
@@ -2868,7 +2871,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2868
2871
  href: c,
2869
2872
  target: "_blank",
2870
2873
  rel: "noopener noreferrer",
2871
- className: Yr,
2874
+ className: Zr,
2872
2875
  children: [/* @__PURE__ */ N(oe, { className: "size-4" }), "Download invoice"]
2873
2876
  }),
2874
2877
  /* @__PURE__ */ N("button", {
@@ -2887,41 +2890,41 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2887
2890
  })
2888
2891
  ]
2889
2892
  });
2890
- }, Zr = {
2893
+ }, $r = {
2891
2894
  email: "required",
2892
2895
  mobile: "off",
2893
2896
  organization: "off",
2894
2897
  designation: "off"
2895
- }, Qr = (e) => e.replace(/[\s()-]/g, ""), $r = (e) => /^\+?\d{7,15}$/.test(Qr(e)), ei = (e, t) => {
2898
+ }, ei = (e) => e.replace(/[\s()-]/g, ""), ti = (e) => /^\+?\d{7,15}$/.test(ei(e)), ni = (e, t) => {
2896
2899
  let n = {}, r = [
2897
- ["mobile", Qr(e.mobile)],
2900
+ ["mobile", ei(e.mobile)],
2898
2901
  ["organization", e.organization.trim()],
2899
2902
  ["designation", e.designation.trim()]
2900
2903
  ];
2901
2904
  for (let [e, i] of r) t[e] !== "off" && i && (n[e] = i);
2902
2905
  return n;
2903
- }, ti = (e, t) => {
2906
+ }, ri = (e, t) => {
2904
2907
  let n = {};
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"));
2908
+ 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() ? ti(e.mobile) || (n.mobile = "That doesn't look like a valid phone number") : t.mobile === "required" && (n.mobile = "Please enter your phone number"));
2906
2909
  for (let r of ["organization", "designation"]) t[r] === "required" && !e[r].trim() && (n[r] = `Please enter your ${r}`);
2907
2910
  return n;
2908
- }, ni = (e) => `levo:event-registration:${e}`, ri = (e) => {
2911
+ }, ii = (e) => `levo:event-registration:${e}`, ai = (e) => {
2909
2912
  if (typeof window > "u") return null;
2910
2913
  try {
2911
- let t = window.localStorage.getItem(ni(e));
2914
+ let t = window.localStorage.getItem(ii(e));
2912
2915
  return t ? JSON.parse(t) : null;
2913
2916
  } catch {
2914
2917
  return null;
2915
2918
  }
2916
- }, ii = (e, t) => {
2919
+ }, oi = (e, t) => {
2917
2920
  if (!(typeof window > "u")) try {
2918
- window.localStorage.setItem(ni(e), JSON.stringify(t));
2921
+ window.localStorage.setItem(ii(e), JSON.stringify(t));
2919
2922
  } catch {}
2920
- }, ai = (e) => {
2923
+ }, si = (e) => {
2921
2924
  if (!(typeof window > "u")) try {
2922
- window.localStorage.removeItem(ni(e));
2925
+ window.localStorage.removeItem(ii(e));
2923
2926
  } catch {}
2924
- }, oi = ({ tickets: e, selectedTicket: t, onSelect: n, error: r }) => {
2927
+ }, ci = ({ tickets: e, selectedTicket: t, onSelect: n, error: r }) => {
2925
2928
  let [i, a] = A(!t);
2926
2929
  return /* @__PURE__ */ P("fieldset", {
2927
2930
  className: "m-0 flex min-w-0 flex-col gap-2 border-0 p-0",
@@ -2933,8 +2936,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2933
2936
  /* @__PURE__ */ N("div", {
2934
2937
  className: "-mb-2 flex flex-col",
2935
2938
  children: e.map((r) => {
2936
- let o = r._id === t?._id, s = i || o, c = Or(r);
2937
- return /* @__PURE__ */ N(yr, {
2939
+ let o = r._id === t?._id, s = i || o, c = Ar(r);
2940
+ return /* @__PURE__ */ N(xr, {
2938
2941
  open: s,
2939
2942
  children: /* @__PURE__ */ P("label", {
2940
2943
  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"),
@@ -2980,7 +2983,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2980
2983
  children: [
2981
2984
  e.length - 1,
2982
2985
  " more",
2983
- /* @__PURE__ */ N(ae, {
2986
+ /* @__PURE__ */ N(V, {
2984
2987
  "aria-hidden": !0,
2985
2988
  className: "size-3.5"
2986
2989
  })
@@ -2998,7 +3001,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
2998
3001
  })
2999
3002
  ]
3000
3003
  });
3001
- }, si = {
3004
+ }, li = {
3002
3005
  name: "",
3003
3006
  email: "",
3004
3007
  mobile: "",
@@ -3017,14 +3020,14 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3017
3020
  country: ""
3018
3021
  }
3019
3022
  }
3020
- }, ci = {
3023
+ }, ui = {
3021
3024
  name: !0,
3022
3025
  email: !0,
3023
3026
  mobile: !0,
3024
3027
  organization: !0,
3025
3028
  designation: !0
3026
- }, li = (e, t) => {
3027
- let [n, r] = A(si), [i, a] = A({}), [o, s] = A(!1), c = k(!1);
3029
+ }, di = (e, t) => {
3030
+ let [n, r] = A(li), [i, a] = A({}), [o, s] = A(!1), c = k(!1);
3028
3031
  E(() => {
3029
3032
  c.current || !e || (c.current = !0, r((t) => ({
3030
3033
  ...t,
@@ -3032,14 +3035,14 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3032
3035
  email: t.email || e.email || ""
3033
3036
  })));
3034
3037
  }, [e]);
3035
- let l = ti(n, t), u = w((e, t) => r((n) => ({
3038
+ let l = ri(n, t), u = w((e, t) => r((n) => ({
3036
3039
  ...n,
3037
3040
  [e]: t
3038
3041
  })), []), d = w((e) => a((t) => ({
3039
3042
  ...t,
3040
3043
  [e]: !0
3041
3044
  })), []), f = w(() => {
3042
- r(si), a({}), s(!1), c.current = !0;
3045
+ r(li), a({}), s(!1), c.current = !0;
3043
3046
  }, []), p = w(() => {
3044
3047
  a({}), s(!1);
3045
3048
  }, []);
@@ -3053,9 +3056,9 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3053
3056
  touchField: d,
3054
3057
  reset: f,
3055
3058
  resetValidationDisplay: p,
3056
- touched: o ? ci : i
3059
+ touched: o ? ui : i
3057
3060
  };
3058
- }, ui = ({ eventID: e, selectedTicket: t, enabled: n }) => {
3061
+ }, fi = ({ eventID: e, selectedTicket: t, enabled: n }) => {
3059
3062
  let r = i(), [a, o] = A(""), [s, c] = A(null), [l, u] = A(!1), [d, f] = A(null), [p, m] = A([]);
3060
3063
  return E(() => {
3061
3064
  !n || !e || !r || r.fetch?.url(`/v1/event/event/${e}/coupon/list-public-coupons`)?.get().json().then((e) => {
@@ -3106,13 +3109,13 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3106
3109
  o(""), c(null), f(null);
3107
3110
  }, [])
3108
3111
  };
3109
- }, di = async (e, t) => {
3112
+ }, pi = async (e, t) => {
3110
3113
  let n = new URLSearchParams();
3111
3114
  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 ?? [];
3112
- }, fi = ({ eventID: e, external: t }) => {
3115
+ }, mi = ({ eventID: e, external: t }) => {
3113
3116
  let n = i(), [r, a] = A([]), [o, s] = A(!t), [c, l] = A(!1), [u, d] = A(null);
3114
3117
  return E(() => {
3115
- t || !e || !n || (s(!0), l(!1), di(n, e).then((e) => {
3118
+ t || !e || !n || (s(!0), l(!1), pi(n, e).then((e) => {
3116
3119
  a(e), e.length === 1 && d(e[0] ?? null);
3117
3120
  }).catch((e) => {
3118
3121
  l(!0), n.logger?.error("Failed to load event tickets", { exception: b(e) });
@@ -3128,7 +3131,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3128
3131
  selectedTicket: u,
3129
3132
  selectTicket: d
3130
3133
  };
3131
- }, pi = async (e) => {
3134
+ }, hi = async (e) => {
3132
3135
  let { payment_session_id: t, order_id: n } = e;
3133
3136
  if (!t || !n) throw Error("Cashfree payment session missing");
3134
3137
  let { load: r } = await import("./script.esm-D4nvz3-k.js"), i = await r({ mode: e.environment || "production" });
@@ -3144,7 +3147,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3144
3147
  status: "closed",
3145
3148
  message: a.error?.message
3146
3149
  };
3147
- }, mi = () => typeof window < "u" && "Razorpay" in window, hi = ({ order: e, onSettled: t, onError: n }) => {
3150
+ }, gi = () => typeof window < "u" && "Razorpay" in window, _i = ({ order: e, onSettled: t, onError: n }) => {
3148
3151
  let { Razorpay: r, isLoading: i, error: a } = le(), o = k({
3149
3152
  onSettled: t,
3150
3153
  onError: n
@@ -3160,7 +3163,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3160
3163
  s.current = !0, o.current.onError(Error(a));
3161
3164
  return;
3162
3165
  }
3163
- if (!r || !mi()) return;
3166
+ if (!r || !gi()) return;
3164
3167
  s.current = !0;
3165
3168
  let t;
3166
3169
  try {
@@ -3198,7 +3201,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3198
3201
  a,
3199
3202
  e
3200
3203
  ]), null;
3201
- }, gi = ({ stripePromise: e, clientSecret: t, onClose: n, onComplete: r }) => {
3204
+ }, vi = ({ stripePromise: e, clientSecret: t, onClose: n, onComplete: r }) => {
3202
3205
  let i = k(r);
3203
3206
  i.current = r;
3204
3207
  let a = O(() => ({
@@ -3226,9 +3229,9 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3226
3229
  })]
3227
3230
  })] })
3228
3231
  });
3229
- }, _i = () => {
3232
+ }, yi = () => {
3230
3233
  let [e, t] = A(null), n = w(async (e, n) => {
3231
- if (e.provider === "cashfree") return pi(e);
3234
+ if (e.provider === "cashfree") return hi(e);
3232
3235
  if (e.provider === "stripe") {
3233
3236
  let { client_secret: n, session_id: r } = e;
3234
3237
  if (!n || !r) throw Error("Stripe checkout session missing");
@@ -3262,7 +3265,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3262
3265
  }, []), r = (e, n) => {
3263
3266
  t(null), n instanceof Error ? e.settle.reject(n) : e.settle.resolve(n);
3264
3267
  }, i = null;
3265
- return e?.provider === "stripe" ? i = /* @__PURE__ */ N(gi, {
3268
+ return e?.provider === "stripe" ? i = /* @__PURE__ */ N(vi, {
3266
3269
  stripePromise: e.stripePromise,
3267
3270
  clientSecret: e.clientSecret,
3268
3271
  onComplete: () => r(e, {
@@ -3270,7 +3273,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3270
3273
  confirmation: { session_id: e.sessionId }
3271
3274
  }),
3272
3275
  onClose: () => r(e, { status: "closed" })
3273
- }) : e?.provider === "razorpay" && (i = /* @__PURE__ */ N(hi, {
3276
+ }) : e?.provider === "razorpay" && (i = /* @__PURE__ */ N(_i, {
3274
3277
  order: e.order,
3275
3278
  onSettled: (t) => r(e, t),
3276
3279
  onError: (t) => r(e, t)
@@ -3284,8 +3287,8 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3284
3287
  providerUnreachable: "We couldn't reach the payment provider. Check your connection and try again.",
3285
3288
  confirmationFailed: "We couldn't confirm your payment. Your details are saved — try again.",
3286
3289
  generic: "Something went wrong. Please try again."
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({
3290
+ }, bi = (e) => !!e && e.status !== "requires_payment", xi = ({ eventID: e, details: t, onConfirmed: n }) => {
3291
+ let r = i(), a = yi(), [o, s] = A({ kind: "idle" }), c = k({
3289
3292
  details: t,
3290
3293
  onConfirmed: n
3291
3294
  });
@@ -3301,7 +3304,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3301
3304
  message: t
3302
3305
  }), d = async (e, t) => {
3303
3306
  if (!t?.key) {
3304
- vi(e) ? l(e) : s({
3307
+ bi(e) ? l(e) : s({
3305
3308
  kind: "failed",
3306
3309
  message: $.registrationFailed
3307
3310
  });
@@ -3335,7 +3338,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3335
3338
  }
3336
3339
  try {
3337
3340
  let t = (await r?.fetch?.url(`/v1/event/booking/${e._id}/confirm-booking`)?.post(n.confirmation)?.json())?.content?.data;
3338
- vi(t) ? l(t) : u(e._id, $.paymentAbandoned);
3341
+ bi(t) ? l(t) : u(e._id, $.paymentAbandoned);
3339
3342
  } catch (t) {
3340
3343
  r?.logger?.error("Failed to confirm booking after payment", { exception: b(t) }), u(e._id, $.confirmationFailed);
3341
3344
  }
@@ -3374,33 +3377,33 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3374
3377
  },
3375
3378
  reset: () => s({ kind: "idle" })
3376
3379
  };
3377
- }, bi = "register", xi = () => {
3380
+ }, Si = "register", Ci = () => {
3378
3381
  if (typeof window > "u") return !1;
3379
- let e = new URLSearchParams(window.location.search).get(bi);
3382
+ let e = new URLSearchParams(window.location.search).get(Si);
3380
3383
  return e !== null && e !== "0" && e !== "false";
3381
- }, Si = ({ canAutoOpen: e }) => {
3384
+ }, wi = ({ canAutoOpen: e }) => {
3382
3385
  let [t, n] = A(!1), r = k(!1), i = w(() => n(!0), []), a = w(() => n(!1), []);
3383
3386
  return E(() => {
3384
- r.current || !e || !xi() || (r.current = !0, n(!0));
3387
+ r.current || !e || !Ci() || (r.current = !0, n(!0));
3385
3388
  }, [e]), {
3386
3389
  isOpen: t,
3387
3390
  open: i,
3388
3391
  close: a
3389
3392
  };
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({
3393
+ }, Ti = "inline-flex items-center justify-center rounded-lg bg-brand px-4 py-3 font-semibold text-brand-foreground transition hover:opacity-90", Ei = ({ eventID: e, title: t, external: n, buttonText: r = "Register Now", startsAt: i, endsAt: a, eventUrl: o }) => {
3394
+ let { account: s } = Qe(), c = er(), l = mi({
3392
3395
  eventID: e,
3393
3396
  external: n
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);
3397
+ }), u = l.selectedTicket?.registration_fields ?? $r, d = di(s, u), f = Pr(l.selectedTicket, null)?.isFree === !1, [p, m] = A(null), [h, g] = A(null);
3395
3398
  E(() => {
3396
- let t = ri(e);
3399
+ let t = ai(e);
3397
3400
  t && g({ email: t.email });
3398
3401
  }, [e]);
3399
- let _ = Si({ canAutoOpen: !n && !l.isLoading && l.tickets.length > 0 && !h }), v = k(null), y = ui({
3402
+ let _ = wi({ canAutoOpen: !n && !l.isLoading && l.tickets.length > 0 && !h }), v = k(null), y = fi({
3400
3403
  eventID: e,
3401
3404
  selectedTicket: l.selectedTicket,
3402
3405
  enabled: _.isOpen && f
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({
3406
+ }), b = Pr(l.selectedTicket, y.discount), x = !!b && !b.isFree, S = l.tickets.length > 1, C = O(() => Vr(i, a), [i, a]), w = t || "this event", T = S || x, D = xi({
3404
3407
  eventID: e,
3405
3408
  details: {
3406
3409
  merchantName: c?.name || t || "",
@@ -3408,12 +3411,12 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3408
3411
  prefill: {
3409
3412
  name: d.values.name.trim(),
3410
3413
  email: d.values.email.trim(),
3411
- contact: Qr(d.values.mobile)
3414
+ contact: ei(d.values.mobile)
3412
3415
  }
3413
3416
  },
3414
3417
  onConfirmed: (t) => {
3415
3418
  let n = d.values.email.trim();
3416
- m(t), g({ email: n }), ii(e, {
3419
+ m(t), g({ email: n }), oi(e, {
3417
3420
  bookingId: t._id,
3418
3421
  email: n,
3419
3422
  at: (/* @__PURE__ */ new Date()).toISOString()
@@ -3422,7 +3425,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3422
3425
  }), { state: j } = D, F = j.kind === "busy", I = (e) => {
3423
3426
  y.reset(), D.reset(), l.selectTicket(e);
3424
3427
  }, L = () => {
3425
- ai(e), g(null), m(null), D.reset(), d.reset();
3428
+ si(e), g(null), m(null), D.reset(), d.reset();
3426
3429
  }, R = (t) => {
3427
3430
  t.preventDefault(), d.markSubmitted(), !(!l.selectedTicket || !d.isValid) && D.register({
3428
3431
  event: e,
@@ -3430,7 +3433,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3430
3433
  attendees: [{
3431
3434
  name: d.values.name.trim(),
3432
3435
  email: d.values.email.trim(),
3433
- ...ei(d.values, u),
3436
+ ...ni(d.values, u),
3434
3437
  ticket: l.selectedTicket._id,
3435
3438
  details: {}
3436
3439
  }],
@@ -3444,7 +3447,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3444
3447
  className: "my-2",
3445
3448
  children: /* @__PURE__ */ N("button", {
3446
3449
  type: "button",
3447
- className: Ci,
3450
+ className: Ti,
3448
3451
  onClick: () => window.open(n, "_blank", "noopener,noreferrer"),
3449
3452
  children: r
3450
3453
  })
@@ -3465,7 +3468,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3465
3468
  children: h && !_.isOpen ? /* @__PURE__ */ P("span", {
3466
3469
  className: "inline-flex flex-wrap items-center gap-2 rounded-xl border border-border bg-ink/3 px-3.5 py-2.5 text-ink text-sm",
3467
3470
  children: [
3468
- /* @__PURE__ */ N(ie, { className: "size-4 text-emerald-600 dark:text-emerald-400" }),
3471
+ /* @__PURE__ */ N(ae, { className: "size-4 text-emerald-600 dark:text-emerald-400" }),
3469
3472
  "You're registered as ",
3470
3473
  h.email,
3471
3474
  /* @__PURE__ */ N("button", {
@@ -3479,10 +3482,10 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3479
3482
  type: "button",
3480
3483
  onClick: _.open,
3481
3484
  disabled: l.isLoading,
3482
- className: Z(Ci, "disabled:opacity-60"),
3485
+ className: Z(Ti, "disabled:opacity-60"),
3483
3486
  children: r
3484
3487
  })
3485
- }), /* @__PURE__ */ N(Kr, {
3488
+ }), /* @__PURE__ */ N(Jr, {
3486
3489
  open: _.isOpen,
3487
3490
  title: p ? w : `Register for ${w}`,
3488
3491
  when: C,
@@ -3516,7 +3519,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3516
3519
  children: x ? "Secure payment · confirmation sent to your email" : "No card needed · joining link sent to your email"
3517
3520
  })
3518
3521
  ] }),
3519
- children: p ? /* @__PURE__ */ N(Xr, {
3522
+ children: p ? /* @__PURE__ */ N(Qr, {
3520
3523
  email: d.values.email.trim(),
3521
3524
  eventTitle: w,
3522
3525
  startsAt: i,
@@ -3531,16 +3534,16 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3531
3534
  }) : /* @__PURE__ */ P("div", {
3532
3535
  className: "flex flex-col gap-4",
3533
3536
  children: [
3534
- S && /* @__PURE__ */ N(oi, {
3537
+ S && /* @__PURE__ */ N(ci, {
3535
3538
  tickets: l.tickets,
3536
3539
  selectedTicket: l.selectedTicket,
3537
3540
  onSelect: I,
3538
3541
  error: d.submitAttempted && !l.selectedTicket ? "Choose a ticket to continue" : void 0
3539
3542
  }),
3540
- x && /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(Wr, {
3543
+ x && /* @__PURE__ */ P(M, { children: [/* @__PURE__ */ N(Kr, {
3541
3544
  selectedTicket: l.selectedTicket,
3542
3545
  discount: y.discount
3543
- }), /* @__PURE__ */ N(Lr, {
3546
+ }), /* @__PURE__ */ N(zr, {
3544
3547
  couponCode: y.code,
3545
3548
  onCouponCodeChange: y.setCode,
3546
3549
  couponError: y.error,
@@ -3556,7 +3559,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3556
3559
  children: [T && /* @__PURE__ */ N("span", {
3557
3560
  className: "font-medium text-ink text-sm",
3558
3561
  children: "Your details"
3559
- }), /* @__PURE__ */ N(Er, {
3562
+ }), /* @__PURE__ */ N(Or, {
3560
3563
  values: d.values,
3561
3564
  errors: d.errors,
3562
3565
  touched: d.touched,
@@ -3570,7 +3573,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3570
3573
  ]
3571
3574
  })
3572
3575
  })] });
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) => {
3576
+ }, Di = (e) => e.length > 1 ? e.replace(/\/+$/, "") : e, Oi = (e) => typeof e == "string" && e.trim() ? e : void 0, ki = (e) => typeof e == "string" ? e : e?.location ?? void 0, Ai = (e, t) => {
3574
3577
  let n = e.meta ?? {}, r = e.title && t ? `${e.title} | ${t}` : e.title || t || void 0;
3575
3578
  return {
3576
3579
  title: n.meta_title || r,
@@ -3580,32 +3583,32 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3580
3583
  og: {
3581
3584
  title: n.og_title || void 0,
3582
3585
  description: n.og_description || void 0,
3583
- image: Di(n.og_image),
3586
+ image: ki(n.og_image),
3584
3587
  url: n.og_url || void 0
3585
3588
  },
3586
3589
  twitter: { card: n.twitter_card || void 0 },
3587
3590
  ldJson: n.ld_json || void 0,
3588
3591
  customHead: n.head_code || void 0
3589
3592
  };
3590
- }, ki = (e) => ({
3593
+ }, ji = (e) => ({
3591
3594
  description: e.description || void 0,
3592
3595
  customHead: e.settings?.head_code || void 0
3593
- }), Ai = (e) => (t = {}, n) => (r) => {
3594
- let i = Oi(t, e.name);
3596
+ }), Mi = (e) => (t = {}, n) => (r) => {
3597
+ let i = Ai(t, e.name);
3595
3598
  if (n) {
3596
3599
  let t = r?.loaderData?.[n.source];
3597
3600
  if (t) {
3598
- let r = n.title ? Ei(t[n.title]) : void 0;
3601
+ let r = n.title ? Oi(t[n.title]) : void 0;
3599
3602
  r && (i.title = e.name ? `${r} | ${e.name}` : r, i.og = {
3600
3603
  ...i.og,
3601
3604
  title: r
3602
3605
  });
3603
- let a = n.description ? Ei(t[n.description]) : void 0;
3606
+ let a = n.description ? Oi(t[n.description]) : void 0;
3604
3607
  a && (i.description = a, i.og = {
3605
3608
  ...i.og,
3606
3609
  description: a
3607
3610
  });
3608
- let o = n.image ? Di(t[n.image]) : void 0;
3611
+ let o = n.image ? ki(t[n.image]) : void 0;
3609
3612
  o && (i.og = {
3610
3613
  ...i.og,
3611
3614
  image: o
@@ -3614,31 +3617,31 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3614
3617
  }
3615
3618
  if (!i.canonical) {
3616
3619
  let t = r?.match?.pathname, n = (e.domain || "").trim();
3617
- n && t?.startsWith("/") && (i.canonical = (/^https?:\/\//.test(n) ? n : `https://${n}`).replace(/\/+$/, "") + Ti(t));
3620
+ n && t?.startsWith("/") && (i.canonical = (/^https?:\/\//.test(n) ? n : `https://${n}`).replace(/\/+$/, "") + Di(t));
3618
3621
  }
3619
- let a = _r(i, ki(e)), o = t.id?.trim();
3622
+ let a = yr(i, ji(e)), o = t.id?.trim();
3620
3623
  return o && a.meta.push({
3621
- name: qn,
3624
+ name: Jn,
3622
3625
  content: o
3623
3626
  }), a;
3624
- }, ji = (e) => {
3625
- let t = Oe(e);
3627
+ }, Ni = (e) => e.params, Pi = (e) => {
3628
+ let t = ke(e);
3626
3629
  return (e, n) => {
3627
- let { rules: r, invalid: i } = be(n?.access), a = r.length > 0 || i;
3628
- return ({ context: n, params: r }) => a ? Promise.resolve({}) : Je({
3629
- queryClient: n.queryClient,
3630
+ let { rules: r, invalid: i } = xe(n?.access), a = r.length > 0 || i;
3631
+ return (n) => a ? Promise.resolve({}) : Ye({
3632
+ queryClient: n.context.queryClient,
3630
3633
  config: t,
3631
3634
  sources: e,
3632
- params: r
3635
+ params: Ni(n)
3633
3636
  });
3634
3637
  };
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("");
3638
+ }, Fi = 2, Ii = (e) => {
3639
+ let { limit: t = 20, debounceMs: n = 300, hotkey: r = !0 } = e ?? {}, a = i(), o = er(), s = G(), [c, l] = A(""), [u, d] = A(!1), [f, p] = A("");
3637
3640
  E(() => {
3638
3641
  let e = setTimeout(() => p(c.trim()), n);
3639
3642
  return () => clearTimeout(e);
3640
3643
  }, [c, n]);
3641
- let m = f.length >= Mi, h = R({
3644
+ let m = f.length >= Fi, h = R({
3642
3645
  queryKey: [
3643
3646
  "levo-search",
3644
3647
  o?.id ?? null,
@@ -3687,4 +3690,4 @@ var Z = (...e) => e.filter(Boolean).join(" "), yr = ({ open: e, className: t, ch
3687
3690
  };
3688
3691
  };
3689
3692
  //#endregion
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 };
3693
+ export { It as ColorModeProvider, Un as Inspector, me as LEVO_AUTH_METHODS, K as LEVO_AUTH_QUERY_KEY, pe as LEVO_OAUTH_METHODS, xt as LEVO_OTP_LENGTH, dt as LEVO_PENDING_APPROVAL_CODE, fe as LEVO_PRIMARY_AUTH_METHODS, m as LOCALE_COOKIE, l as LOCALE_REDIRECT_CACHE_CONTROL, Ot as LevoChat, $e as LevoEntryForm, Ei as LevoEventRegister, Rt as LevoForm, cr as LevoLink, Zn as LevoPopups, it as LevoProfileForm, rr as LevoSiteProvider, lr as LocaleHreflang, dr as LocaleProvider, Jn as PAGE_ID_META, br as PageHead, mr as SiteLocaleProvider, sr as buildHreflangLinks, Mi as createLevoHead, Pi as createLevoLoader, _ as createRouteTreeMatcher, Oe as createSiteClient, De as decideAccess, v as extractGeoAndLanguageData, ft as isPendingApprovalError, St as isValidEmail, Ct as isValidOtp, Tt as isValidPhone, Fe as levoParams, ir as localeBeforeLoad, p as localePath, d as localeRedirectResponse, wt as normalizePhone, yr as pageHead, xe as parseAccess, vr as parseRawHead, Ye as prefetchLevoSources, ar as readLocaleConfig, Yn as readPageId, Se as resolveAuthMethods, g as resolveLocale, u as resolveLocaleRedirect, s as resolveLocaleRequest, ke as siteConfigFromJson, f as splitLocalePrefix, Lt as useColorMode, hr as useLanguageOptions, ut as useLevoAccess, Qe as useLevoAuth, qe as useLevoForm, nr as useLevoInsights, ht as useLevoLogin, bt as useLevoOAuth, Et as useLevoOtpInput, Ke as useLevoRecord, Ii as useLevoSearch, tr as useLevoSite, Ge as useLevoSource, fr as useLocale, pr as useUrlLocale };