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