@levo-so/react 0.1.48 → 0.1.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/components/Dialog.d.ts +2 -3
  2. package/dist/components/Tabs.d.ts +1 -1
  3. package/dist/components/Tooltip.d.ts +2 -1
  4. package/dist/components/button/buttonVariants.d.ts +2 -2
  5. package/dist/constants/fileUploadPresets.d.ts +1 -0
  6. package/dist/index.css +1 -1
  7. package/dist/index.d.ts +3 -3
  8. package/dist/index.js +1609 -91
  9. package/package.json +21 -43
  10. package/dist/Sonner-BzW9wsXf.js +0 -39
  11. package/dist/Spinner-DBvVyDMF.js +0 -119
  12. package/dist/Tooltip-BeY_STLA.js +0 -281
  13. package/dist/audience/components/block.d.ts.map +0 -1
  14. package/dist/audience/components/component.d.ts.map +0 -1
  15. package/dist/audience/components/page.d.ts.map +0 -1
  16. package/dist/audience/hooks/useBounce.d.ts.map +0 -1
  17. package/dist/audience/hooks/useCurrentTab.d.ts.map +0 -1
  18. package/dist/audience/hooks/useDownloadSpeed.d.ts.map +0 -1
  19. package/dist/audience/hooks/useIdentifyAudience.d.ts.map +0 -1
  20. package/dist/audience/hooks/useOpenTabs.d.ts.map +0 -1
  21. package/dist/audience/hooks/usePerformanceMetrics.d.ts.map +0 -1
  22. package/dist/audience/hooks/useScrollBehavior.d.ts.map +0 -1
  23. package/dist/audience/hooks/useTextSelection.d.ts.map +0 -1
  24. package/dist/audience/hooks/useTrackClicks.d.ts.map +0 -1
  25. package/dist/audience/index.d.ts.map +0 -1
  26. package/dist/audience/index.js +0 -6
  27. package/dist/audience/utils/autocapture.d.ts.map +0 -1
  28. package/dist/audience/utils/rageclick.d.ts.map +0 -1
  29. package/dist/cn-C9QoOYNG.js +0 -6
  30. package/dist/components/Dialog.d.ts.map +0 -1
  31. package/dist/components/DialogWrapper.d.ts.map +0 -1
  32. package/dist/components/Sonner.d.ts.map +0 -1
  33. package/dist/components/Spinner.d.ts.map +0 -1
  34. package/dist/components/Table.d.ts.map +0 -1
  35. package/dist/components/Tabs.d.ts.map +0 -1
  36. package/dist/components/Tooltip.d.ts.map +0 -1
  37. package/dist/components/button/Button.d.ts.map +0 -1
  38. package/dist/components/button/buttonVariants.d.ts.map +0 -1
  39. package/dist/components/button/index.d.ts.map +0 -1
  40. package/dist/components/index.d.ts.map +0 -1
  41. package/dist/components/index.js +0 -34
  42. package/dist/constants/fileUploadPresets.d.ts.map +0 -1
  43. package/dist/constants/index.d.ts.map +0 -1
  44. package/dist/isEmptyObject-BoIi0jMB.js +0 -21
  45. package/dist/jsx-runtime-D0AQ1Mn7.js +0 -633
  46. package/dist/membership/components/Button.d.ts.map +0 -1
  47. package/dist/membership/components/Container.d.ts.map +0 -1
  48. package/dist/membership/components/Core.d.ts.map +0 -1
  49. package/dist/membership/components/Popup.d.ts.map +0 -1
  50. package/dist/membership/index.d.ts.map +0 -1
  51. package/dist/membership/index.js +0 -221
  52. package/dist/membership/useLevoOAuth.d.ts.map +0 -1
  53. package/dist/page-DweUjn1K.js +0 -627
  54. package/dist/providers/LevoProvider.d.ts.map +0 -1
  55. package/dist/providers/index.d.ts +0 -2
  56. package/dist/providers/index.js +0 -13
  57. package/dist/utils/byteToSize.d.ts.map +0 -1
  58. package/dist/utils/cn.d.ts.map +0 -1
  59. package/dist/utils/errorHandler.d.ts.map +0 -1
  60. package/dist/utils/index.d.ts.map +0 -1
  61. package/dist/utils/index.js +0 -12
  62. package/dist/utils/isDateObject.d.ts.map +0 -1
  63. package/dist/utils/isEmptyObject.d.ts.map +0 -1
  64. package/dist/utils/isNullOrUndefined.d.ts.map +0 -1
  65. package/dist/utils/isObject.d.ts.map +0 -1
package/dist/index.js CHANGED
@@ -1,20 +1,27 @@
1
- import { LevoProvider as v, useLevo as x } from "./providers/index.js";
2
- import { L as u, a as T, b } from "./page-DweUjn1K.js";
3
- import { LevoOAuth as y, useLevoOAuth as j } from "./membership/index.js";
4
- import { B as h, D as M, j as O, e as E, i as F, g as w, f as B, c as C, a as P, h as S, d as I, k, S as A, T as H, n as K, l as W, m as q, o as z, q as N, s as U, r as V, p as G, b as J } from "./Tooltip-BeY_STLA.js";
5
- import { T as R, e as X, s as Y } from "./Sonner-BzW9wsXf.js";
6
- import { S as _ } from "./Spinner-DBvVyDMF.js";
7
- import { b as oo, e as eo, i as ao, a as so, c as io, f as to, d as no } from "./isEmptyObject-BoIi0jMB.js";
8
- import { c as mo } from "./cn-C9QoOYNG.js";
9
- import { toast as ro } from "sonner";
10
- const a = [
1
+ "use client";
2
+ var it = Object.defineProperty;
3
+ var ct = (e, t, n) => t in e ? it(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
4
+ var J = (e, t, n) => ct(e, typeof t != "symbol" ? t + "" : t, n);
5
+ import * as D from "react";
6
+ import I, { createContext as ut, useContext as Pe, useEffect as b, useState as x, useMemo as Ae, useRef as Ie, useCallback as me } from "react";
7
+ import { clsx as lt } from "clsx";
8
+ import { twMerge as De } from "tailwind-merge";
9
+ import { useInView as dt } from "react-intersection-observer";
10
+ import { getLevoError as Me, LocalStorageLock as ft } from "@levo-so/core";
11
+ import { usePageLifecycle as mt, LifecycleState as le } from "use-page-lifecycle";
12
+ import { Slot as gt, Dialog as N, Tabs as B, Tooltip as Y } from "radix-ui";
13
+ import { cva as pt } from "class-variance-authority";
14
+ import { X as bt } from "lucide-react";
15
+ import { Toaster as vt, toast as Q } from "sonner";
16
+ import { toast as Ur } from "sonner";
17
+ const ht = [
11
18
  "pdf",
12
19
  "xls",
13
20
  "xlsx",
14
21
  "doc",
15
22
  "docx",
16
23
  "csv"
17
- ], s = [
24
+ ], wt = [
18
25
  "svg",
19
26
  "png",
20
27
  "jpg",
@@ -22,7 +29,7 @@ const a = [
22
29
  "webp",
23
30
  "gif",
24
31
  "avif"
25
- ], i = ["mpeg", "mp4"], t = ["mp3", "ogg", "oga"], n = {
32
+ ], yt = ["mpeg", "mp4"], xt = ["mp3", "ogg", "oga"], Tt = {
26
33
  "application/pdf": [".pdf"],
27
34
  "application/msword": [".doc"],
28
35
  "application/vnd.ms-excel": [".xls"],
@@ -33,94 +40,1605 @@ const a = [
33
40
  ".docx"
34
41
  ],
35
42
  "text/csv": [".csv"]
36
- }, p = {
43
+ }, Et = {
37
44
  "image/jpeg": [".jpeg", ".jpg"],
38
45
  "image/png": [".png"],
39
46
  "image/gif": [".gif"],
40
47
  "image/svg+xml": [".svg"],
41
48
  "image/webp": [".webp"],
42
49
  "image/avif": [".avif"]
43
- }, m = {
50
+ }, kt = {
44
51
  "video/mp4": [".mp4"],
45
- "video/mpeg": [".mpeg"]
46
- }, g = {
52
+ "video/mpeg": [".mpeg"],
53
+ "video/webm": [".webm"]
54
+ }, St = {
47
55
  "audio/mpeg": [".mp3"],
48
56
  "audio/ogg": [".oga"]
49
- }, o = {
50
- audio: g,
51
- document: n,
52
- image: p,
53
- video: m
54
- }, e = {
55
- audio: t,
56
- document: a,
57
- image: s,
58
- video: i
59
- }, r = [
60
- ...e.audio,
61
- ...e.document,
62
- ...e.image,
63
- ...e.video
64
- ], d = {
65
- ...o.audio,
66
- ...o.document,
67
- ...o.image,
68
- ...o.video
57
+ }, X = {
58
+ audio: St,
59
+ document: Tt,
60
+ image: Et,
61
+ video: kt
62
+ }, q = {
63
+ audio: xt,
64
+ document: ht,
65
+ image: wt,
66
+ video: yt
67
+ }, Tr = [
68
+ ...q.audio,
69
+ ...q.document,
70
+ ...q.image,
71
+ ...q.video
72
+ ], Er = {
73
+ ...X.audio,
74
+ ...X.document,
75
+ ...X.image,
76
+ ...X.video
69
77
  };
78
+ var K = { exports: {} }, z = {};
79
+ /**
80
+ * @license React
81
+ * react-jsx-runtime.production.js
82
+ *
83
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
84
+ *
85
+ * This source code is licensed under the MIT license found in the
86
+ * LICENSE file in the root directory of this source tree.
87
+ */
88
+ var Ee;
89
+ function _t() {
90
+ if (Ee) return z;
91
+ Ee = 1;
92
+ var e = Symbol.for("react.transitional.element"), t = Symbol.for("react.fragment");
93
+ function n(r, o, s) {
94
+ var c = null;
95
+ if (s !== void 0 && (c = "" + s), o.key !== void 0 && (c = "" + o.key), "key" in o) {
96
+ s = {};
97
+ for (var i in o)
98
+ i !== "key" && (s[i] = o[i]);
99
+ } else s = o;
100
+ return o = s.ref, {
101
+ $$typeof: e,
102
+ type: r,
103
+ key: c,
104
+ ref: o !== void 0 ? o : null,
105
+ props: s
106
+ };
107
+ }
108
+ return z.Fragment = t, z.jsx = n, z.jsxs = n, z;
109
+ }
110
+ var H = {};
111
+ /**
112
+ * @license React
113
+ * react-jsx-runtime.development.js
114
+ *
115
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
116
+ *
117
+ * This source code is licensed under the MIT license found in the
118
+ * LICENSE file in the root directory of this source tree.
119
+ */
120
+ var ke;
121
+ function Ot() {
122
+ return ke || (ke = 1, process.env.NODE_ENV !== "production" && function() {
123
+ function e(a) {
124
+ if (a == null) return null;
125
+ if (typeof a == "function")
126
+ return a.$$typeof === ot ? null : a.displayName || a.name || null;
127
+ if (typeof a == "string") return a;
128
+ switch (a) {
129
+ case _:
130
+ return "Fragment";
131
+ case C:
132
+ return "Profiler";
133
+ case j:
134
+ return "StrictMode";
135
+ case M:
136
+ return "Suspense";
137
+ case w:
138
+ return "SuspenseList";
139
+ case V:
140
+ return "Activity";
141
+ }
142
+ if (typeof a == "object")
143
+ switch (typeof a.tag == "number" && console.error(
144
+ "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
145
+ ), a.$$typeof) {
146
+ case S:
147
+ return "Portal";
148
+ case y:
149
+ return (a.displayName || "Context") + ".Provider";
150
+ case T:
151
+ return (a._context.displayName || "Context") + ".Consumer";
152
+ case O:
153
+ var g = a.render;
154
+ return a = a.displayName, a || (a = g.displayName || g.name || "", a = a !== "" ? "ForwardRef(" + a + ")" : "ForwardRef"), a;
155
+ case P:
156
+ return g = a.displayName || null, g !== null ? g : e(a.type) || "Memo";
157
+ case $:
158
+ g = a._payload, a = a._init;
159
+ try {
160
+ return e(a(g));
161
+ } catch {
162
+ }
163
+ }
164
+ return null;
165
+ }
166
+ function t(a) {
167
+ return "" + a;
168
+ }
169
+ function n(a) {
170
+ try {
171
+ t(a);
172
+ var g = !1;
173
+ } catch {
174
+ g = !0;
175
+ }
176
+ if (g) {
177
+ g = console;
178
+ var h = g.error, E = typeof Symbol == "function" && Symbol.toStringTag && a[Symbol.toStringTag] || a.constructor.name || "Object";
179
+ return h.call(
180
+ g,
181
+ "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
182
+ E
183
+ ), t(a);
184
+ }
185
+ }
186
+ function r(a) {
187
+ if (a === _) return "<>";
188
+ if (typeof a == "object" && a !== null && a.$$typeof === $)
189
+ return "<...>";
190
+ try {
191
+ var g = e(a);
192
+ return g ? "<" + g + ">" : "<...>";
193
+ } catch {
194
+ return "<...>";
195
+ }
196
+ }
197
+ function o() {
198
+ var a = se.A;
199
+ return a === null ? null : a.getOwner();
200
+ }
201
+ function s() {
202
+ return Error("react-stack-top-frame");
203
+ }
204
+ function c(a) {
205
+ if (ve.call(a, "key")) {
206
+ var g = Object.getOwnPropertyDescriptor(a, "key").get;
207
+ if (g && g.isReactWarning) return !1;
208
+ }
209
+ return a.key !== void 0;
210
+ }
211
+ function i(a, g) {
212
+ function h() {
213
+ he || (he = !0, console.error(
214
+ "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
215
+ g
216
+ ));
217
+ }
218
+ h.isReactWarning = !0, Object.defineProperty(a, "key", {
219
+ get: h,
220
+ configurable: !0
221
+ });
222
+ }
223
+ function u() {
224
+ var a = e(this.type);
225
+ return we[a] || (we[a] = !0, console.error(
226
+ "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
227
+ )), a = this.props.ref, a !== void 0 ? a : null;
228
+ }
229
+ function l(a, g, h, E, F, A, ie, ce) {
230
+ return h = A.ref, a = {
231
+ $$typeof: v,
232
+ type: a,
233
+ key: g,
234
+ props: A,
235
+ _owner: F
236
+ }, (h !== void 0 ? h : null) !== null ? Object.defineProperty(a, "ref", {
237
+ enumerable: !1,
238
+ get: u
239
+ }) : Object.defineProperty(a, "ref", { enumerable: !1, value: null }), a._store = {}, Object.defineProperty(a._store, "validated", {
240
+ configurable: !1,
241
+ enumerable: !1,
242
+ writable: !0,
243
+ value: 0
244
+ }), Object.defineProperty(a, "_debugInfo", {
245
+ configurable: !1,
246
+ enumerable: !1,
247
+ writable: !0,
248
+ value: null
249
+ }), Object.defineProperty(a, "_debugStack", {
250
+ configurable: !1,
251
+ enumerable: !1,
252
+ writable: !0,
253
+ value: ie
254
+ }), Object.defineProperty(a, "_debugTask", {
255
+ configurable: !1,
256
+ enumerable: !1,
257
+ writable: !0,
258
+ value: ce
259
+ }), Object.freeze && (Object.freeze(a.props), Object.freeze(a)), a;
260
+ }
261
+ function p(a, g, h, E, F, A, ie, ce) {
262
+ var k = g.children;
263
+ if (k !== void 0)
264
+ if (E)
265
+ if (st(k)) {
266
+ for (E = 0; E < k.length; E++)
267
+ d(k[E]);
268
+ Object.freeze && Object.freeze(k);
269
+ } else
270
+ console.error(
271
+ "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
272
+ );
273
+ else d(k);
274
+ if (ve.call(g, "key")) {
275
+ k = e(a);
276
+ var U = Object.keys(g).filter(function(at) {
277
+ return at !== "key";
278
+ });
279
+ E = 0 < U.length ? "{key: someKey, " + U.join(": ..., ") + ": ...}" : "{key: someKey}", Te[k + E] || (U = 0 < U.length ? "{" + U.join(": ..., ") + ": ...}" : "{}", console.error(
280
+ `A props object containing a "key" prop is being spread into JSX:
281
+ let props = %s;
282
+ <%s {...props} />
283
+ React keys must be passed directly to JSX without using spread:
284
+ let props = %s;
285
+ <%s key={someKey} {...props} />`,
286
+ E,
287
+ k,
288
+ U,
289
+ k
290
+ ), Te[k + E] = !0);
291
+ }
292
+ if (k = null, h !== void 0 && (n(h), k = "" + h), c(g) && (n(g.key), k = "" + g.key), "key" in g) {
293
+ h = {};
294
+ for (var ue in g)
295
+ ue !== "key" && (h[ue] = g[ue]);
296
+ } else h = g;
297
+ return k && i(
298
+ h,
299
+ typeof a == "function" ? a.displayName || a.name || "Unknown" : a
300
+ ), l(
301
+ a,
302
+ k,
303
+ A,
304
+ F,
305
+ o(),
306
+ h,
307
+ ie,
308
+ ce
309
+ );
310
+ }
311
+ function d(a) {
312
+ typeof a == "object" && a !== null && a.$$typeof === v && a._store && (a._store.validated = 1);
313
+ }
314
+ var f = I, v = Symbol.for("react.transitional.element"), S = Symbol.for("react.portal"), _ = Symbol.for("react.fragment"), j = Symbol.for("react.strict_mode"), C = Symbol.for("react.profiler"), T = Symbol.for("react.consumer"), y = Symbol.for("react.context"), O = Symbol.for("react.forward_ref"), M = Symbol.for("react.suspense"), w = Symbol.for("react.suspense_list"), P = Symbol.for("react.memo"), $ = Symbol.for("react.lazy"), V = Symbol.for("react.activity"), ot = Symbol.for("react.client.reference"), se = f.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, ve = Object.prototype.hasOwnProperty, st = Array.isArray, ae = console.createTask ? console.createTask : function() {
315
+ return null;
316
+ };
317
+ f = {
318
+ "react-stack-bottom-frame": function(a) {
319
+ return a();
320
+ }
321
+ };
322
+ var he, we = {}, ye = f["react-stack-bottom-frame"].bind(
323
+ f,
324
+ s
325
+ )(), xe = ae(r(s)), Te = {};
326
+ H.Fragment = _, H.jsx = function(a, g, h, E, F) {
327
+ var A = 1e4 > se.recentlyCreatedOwnerStacks++;
328
+ return p(
329
+ a,
330
+ g,
331
+ h,
332
+ !1,
333
+ E,
334
+ F,
335
+ A ? Error("react-stack-top-frame") : ye,
336
+ A ? ae(r(a)) : xe
337
+ );
338
+ }, H.jsxs = function(a, g, h, E, F) {
339
+ var A = 1e4 > se.recentlyCreatedOwnerStacks++;
340
+ return p(
341
+ a,
342
+ g,
343
+ h,
344
+ !0,
345
+ E,
346
+ F,
347
+ A ? Error("react-stack-top-frame") : ye,
348
+ A ? ae(r(a)) : xe
349
+ );
350
+ };
351
+ }()), H;
352
+ }
353
+ var Se;
354
+ function Nt() {
355
+ return Se || (Se = 1, process.env.NODE_ENV === "production" ? K.exports = _t() : K.exports = Ot()), K.exports;
356
+ }
357
+ var m = Nt(), $e = {
358
+ color: void 0,
359
+ size: void 0,
360
+ className: void 0,
361
+ style: void 0,
362
+ attr: void 0
363
+ }, _e = I.createContext && /* @__PURE__ */ I.createContext($e), jt = ["attr", "size", "title"];
364
+ function Ct(e, t) {
365
+ if (e == null) return {};
366
+ var n = Rt(e, t), r, o;
367
+ if (Object.getOwnPropertySymbols) {
368
+ var s = Object.getOwnPropertySymbols(e);
369
+ for (o = 0; o < s.length; o++)
370
+ r = s[o], !(t.indexOf(r) >= 0) && Object.prototype.propertyIsEnumerable.call(e, r) && (n[r] = e[r]);
371
+ }
372
+ return n;
373
+ }
374
+ function Rt(e, t) {
375
+ if (e == null) return {};
376
+ var n = {};
377
+ for (var r in e)
378
+ if (Object.prototype.hasOwnProperty.call(e, r)) {
379
+ if (t.indexOf(r) >= 0) continue;
380
+ n[r] = e[r];
381
+ }
382
+ return n;
383
+ }
384
+ function ee() {
385
+ return ee = Object.assign ? Object.assign.bind() : function(e) {
386
+ for (var t = 1; t < arguments.length; t++) {
387
+ var n = arguments[t];
388
+ for (var r in n)
389
+ Object.prototype.hasOwnProperty.call(n, r) && (e[r] = n[r]);
390
+ }
391
+ return e;
392
+ }, ee.apply(this, arguments);
393
+ }
394
+ function Oe(e, t) {
395
+ var n = Object.keys(e);
396
+ if (Object.getOwnPropertySymbols) {
397
+ var r = Object.getOwnPropertySymbols(e);
398
+ t && (r = r.filter(function(o) {
399
+ return Object.getOwnPropertyDescriptor(e, o).enumerable;
400
+ })), n.push.apply(n, r);
401
+ }
402
+ return n;
403
+ }
404
+ function te(e) {
405
+ for (var t = 1; t < arguments.length; t++) {
406
+ var n = arguments[t] != null ? arguments[t] : {};
407
+ t % 2 ? Oe(Object(n), !0).forEach(function(r) {
408
+ Lt(e, r, n[r]);
409
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Oe(Object(n)).forEach(function(r) {
410
+ Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(n, r));
411
+ });
412
+ }
413
+ return e;
414
+ }
415
+ function Lt(e, t, n) {
416
+ return t = Pt(t), t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e;
417
+ }
418
+ function Pt(e) {
419
+ var t = At(e, "string");
420
+ return typeof t == "symbol" ? t : t + "";
421
+ }
422
+ function At(e, t) {
423
+ if (typeof e != "object" || !e) return e;
424
+ var n = e[Symbol.toPrimitive];
425
+ if (n !== void 0) {
426
+ var r = n.call(e, t || "default");
427
+ if (typeof r != "object") return r;
428
+ throw new TypeError("@@toPrimitive must return a primitive value.");
429
+ }
430
+ return (t === "string" ? String : Number)(e);
431
+ }
432
+ function Fe(e) {
433
+ return e && e.map((t, n) => /* @__PURE__ */ I.createElement(t.tag, te({
434
+ key: n
435
+ }, t.attr), Fe(t.child)));
436
+ }
437
+ function It(e) {
438
+ return (t) => /* @__PURE__ */ I.createElement(Dt, ee({
439
+ attr: te({}, e.attr)
440
+ }, t), Fe(e.child));
441
+ }
442
+ function Dt(e) {
443
+ var t = (n) => {
444
+ var {
445
+ attr: r,
446
+ size: o,
447
+ title: s
448
+ } = e, c = Ct(e, jt), i = o || n.size || "1em", u;
449
+ return n.className && (u = n.className), e.className && (u = (u ? u + " " : "") + e.className), /* @__PURE__ */ I.createElement("svg", ee({
450
+ stroke: "currentColor",
451
+ fill: "currentColor",
452
+ strokeWidth: "0"
453
+ }, n.attr, r, c, {
454
+ className: u,
455
+ style: te(te({
456
+ color: e.color || n.color
457
+ }, n.style), e.style),
458
+ height: i,
459
+ width: i,
460
+ xmlns: "http://www.w3.org/2000/svg"
461
+ }), s && /* @__PURE__ */ I.createElement("title", null, s), e.children);
462
+ };
463
+ return _e !== void 0 ? /* @__PURE__ */ I.createElement(_e.Consumer, null, (n) => t(n)) : t($e);
464
+ }
465
+ function We(e) {
466
+ return It({ tag: "svg", attr: { viewBox: "0 0 24 24" }, child: [{ tag: "path", attr: { d: "M12 22c5.421 0 10-4.579 10-10h-2c0 4.337-3.663 8-8 8s-8-3.663-8-8c0-4.336 3.663-8 8-8V2C6.579 2 2 6.58 2 12c0 5.421 4.579 10 10 10z" }, child: [] }] })(e);
467
+ }
468
+ const R = (...e) => De(lt(e)), Mt = pt(
469
+ "inline-flex items-center justify-center text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed",
470
+ {
471
+ variants: {
472
+ variant: {
473
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
474
+ destructive: "bg-destructive text-white hover:bg-destructive/90",
475
+ destructiveOutline: "border border-red-500 text-destructive bg-transparent shadow-sm hover:bg-destructive hover:text-destructive-foreground",
476
+ outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
477
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
478
+ secondaryOutline: "bg-transparent border border-solid border-white hover:bg-white hover:border-input",
479
+ ghost: "hover:bg-accent hover:text-accent-foreground",
480
+ link: "text-primary underline-offset-4 hover:underline"
481
+ },
482
+ size: {
483
+ default: "h-10 px-4 py-2",
484
+ xs: "h-8 px-3 text-xs",
485
+ sm: "h-9 px-3",
486
+ lg: "h-11 px-8",
487
+ icon: "h-10 w-10",
488
+ "icon-small": "h-8 w-8"
489
+ },
490
+ rounded: {
491
+ small: "rounded",
492
+ default: "rounded-md",
493
+ large: "rounded-lg",
494
+ full: "rounded-full"
495
+ }
496
+ },
497
+ defaultVariants: {
498
+ variant: "default",
499
+ size: "default",
500
+ rounded: "default"
501
+ }
502
+ }
503
+ ), $t = D.forwardRef(
504
+ ({
505
+ className: e,
506
+ variant: t,
507
+ size: n,
508
+ rounded: r,
509
+ asChild: o = !1,
510
+ isLoading: s = !1,
511
+ loadingText: c,
512
+ disabled: i,
513
+ ...u
514
+ }, l) => {
515
+ const p = o ? gt.Root : "button";
516
+ return /* @__PURE__ */ m.jsx(
517
+ p,
518
+ {
519
+ className: R(Mt({ variant: t, size: n, rounded: r, className: e })),
520
+ ref: l,
521
+ disabled: i || s,
522
+ type: "button",
523
+ ...u,
524
+ children: s ? /* @__PURE__ */ m.jsxs(m.Fragment, { children: [
525
+ /* @__PURE__ */ m.jsx(
526
+ We,
527
+ {
528
+ className: De(
529
+ "h-4 w-4 animate-spin",
530
+ c ? "mr-2" : ""
531
+ )
532
+ }
533
+ ),
534
+ c
535
+ ] }) : u.children
536
+ }
537
+ );
538
+ }
539
+ );
540
+ $t.displayName = "Button";
541
+ const Ft = N.Root, kr = N.Trigger, Wt = N.Portal, Sr = N.Close, Be = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m.jsx(
542
+ N.Overlay,
543
+ {
544
+ ref: n,
545
+ className: R(
546
+ "bg-background/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 grid max-h-screen place-items-center overflow-y-auto py-10 backdrop-blur-sm",
547
+ e
548
+ ),
549
+ ...t
550
+ }
551
+ ));
552
+ Be.displayName = N.Overlay.displayName;
553
+ const Ue = D.forwardRef(
554
+ ({
555
+ className: e,
556
+ children: t,
557
+ container: n,
558
+ hideCloseButton: r,
559
+ overlayStyles: o,
560
+ ...s
561
+ }, c) => /* @__PURE__ */ m.jsx(Wt, { container: n, children: /* @__PURE__ */ m.jsx(Be, { className: o, children: /* @__PURE__ */ m.jsxs(
562
+ N.Content,
563
+ {
564
+ ref: c,
565
+ className: R(
566
+ "bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 relative z-50 grid w-full max-w-lg gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg",
567
+ e
568
+ ),
569
+ ...s,
570
+ children: [
571
+ t,
572
+ !r && /* @__PURE__ */ m.jsxs(
573
+ N.Close,
574
+ {
575
+ type: "button",
576
+ className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm p-1 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",
577
+ children: [
578
+ /* @__PURE__ */ m.jsx(bt, { className: "h-4 w-4" }),
579
+ /* @__PURE__ */ m.jsx("span", { className: "sr-only", children: "Close" })
580
+ ]
581
+ }
582
+ )
583
+ ]
584
+ }
585
+ ) }) })
586
+ );
587
+ Ue.displayName = N.Content.displayName;
588
+ const Ye = ({
589
+ className: e,
590
+ ...t
591
+ }) => /* @__PURE__ */ m.jsx(
592
+ "div",
593
+ {
594
+ className: R(
595
+ "flex flex-col space-y-1.5 text-center sm:text-left",
596
+ e
597
+ ),
598
+ ...t
599
+ }
600
+ );
601
+ Ye.displayName = "DialogHeader";
602
+ const Bt = ({
603
+ className: e,
604
+ ...t
605
+ }) => /* @__PURE__ */ m.jsx(
606
+ "div",
607
+ {
608
+ className: R(
609
+ "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
610
+ e
611
+ ),
612
+ ...t
613
+ }
614
+ );
615
+ Bt.displayName = "DialogFooter";
616
+ const ze = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m.jsx(
617
+ N.Title,
618
+ {
619
+ ref: n,
620
+ className: R(
621
+ "text-lg leading-none font-semibold tracking-tight",
622
+ e
623
+ ),
624
+ ...t
625
+ }
626
+ ));
627
+ ze.displayName = N.Title.displayName;
628
+ const He = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m.jsx(
629
+ N.Description,
630
+ {
631
+ ref: n,
632
+ className: R("text-muted-foreground text-sm", e),
633
+ ...t
634
+ }
635
+ ));
636
+ He.displayName = N.Description.displayName;
637
+ const _r = ({
638
+ isOpen: e,
639
+ onClose: t,
640
+ children: n,
641
+ title: r,
642
+ description: o = "",
643
+ contentClassName: s,
644
+ modal: c = !0
645
+ }) => /* @__PURE__ */ m.jsx(Ft, { open: e, onOpenChange: t, modal: c, children: /* @__PURE__ */ m.jsxs(Ue, { className: s, children: [
646
+ r && /* @__PURE__ */ m.jsxs(Ye, { className: "flex-1 font-medium", children: [
647
+ /* @__PURE__ */ m.jsx(ze, { children: r }),
648
+ /* @__PURE__ */ m.jsx(He, { children: o })
649
+ ] }),
650
+ /* @__PURE__ */ m.jsx("div", { className: "w-full", children: n })
651
+ ] }) }), Or = ({ ...e }) => /* @__PURE__ */ m.jsx(
652
+ vt,
653
+ {
654
+ closeButton: !0,
655
+ richColors: !0,
656
+ className: "toaster group",
657
+ toastOptions: {
658
+ classNames: {
659
+ toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
660
+ description: "group-[.toast]:text-muted-foreground",
661
+ actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
662
+ cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
663
+ }
664
+ },
665
+ ...e
666
+ }
667
+ ), Ut = (e, t = "Error", n = {}) => {
668
+ n != null && n.id && Q.dismiss(n == null ? void 0 : n.id), Q.error(t, {
669
+ description: e,
670
+ duration: 4e3,
671
+ position: "bottom-right",
672
+ ...n
673
+ });
674
+ }, Nr = (e, t = "Success", n = {}) => {
675
+ n != null && n.id && Q.dismiss(n == null ? void 0 : n.id), Q.success(t, {
676
+ description: e,
677
+ duration: 4e3,
678
+ position: "bottom-right",
679
+ ...n
680
+ });
681
+ }, Yt = ({ className: e }) => /* @__PURE__ */ m.jsx(We, { className: R("h-8 w-8 animate-spin font-light", e) }), jr = B.Root, zt = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m.jsx(
682
+ B.List,
683
+ {
684
+ ref: n,
685
+ className: R(
686
+ "bg-muted text-muted-foreground inline-flex h-10 items-center justify-center rounded-md p-1",
687
+ e
688
+ ),
689
+ ...t
690
+ }
691
+ ));
692
+ zt.displayName = B.List.displayName;
693
+ const Ht = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m.jsx(
694
+ B.Trigger,
695
+ {
696
+ ref: n,
697
+ className: R(
698
+ "ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-sm px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm",
699
+ e
700
+ ),
701
+ "data-levo-studio-interactive": "true",
702
+ ...t
703
+ }
704
+ ));
705
+ Ht.displayName = B.Trigger.displayName;
706
+ const Gt = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ m.jsx(
707
+ B.Content,
708
+ {
709
+ ref: n,
710
+ className: R(
711
+ "ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
712
+ e
713
+ ),
714
+ ...t
715
+ }
716
+ ));
717
+ Gt.displayName = B.Content.displayName;
718
+ const Cr = Y.Provider, Vt = Y.Root, Jt = Y.Trigger, Xt = Y.Portal, Ge = D.forwardRef(({ className: e, sideOffset: t = 4, ...n }, r) => /* @__PURE__ */ m.jsx(
719
+ Y.Content,
720
+ {
721
+ ref: r,
722
+ sideOffset: t,
723
+ className: R(
724
+ "bg-popover text-popover-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 overflow-hidden rounded-md border px-3 py-1.5 text-xs shadow-md",
725
+ e
726
+ ),
727
+ ...n
728
+ }
729
+ ));
730
+ Ge.displayName = Y.Content.displayName;
731
+ const Rr = ({
732
+ children: e,
733
+ label: t,
734
+ labelClassName: n,
735
+ contentClassName: r,
736
+ asChild: o = !0,
737
+ contentProps: s = {},
738
+ side: c
739
+ }) => /* @__PURE__ */ m.jsxs(Vt, { children: [
740
+ t && /* @__PURE__ */ m.jsx(Xt, { children: /* @__PURE__ */ m.jsx(
741
+ Ge,
742
+ {
743
+ side: c,
744
+ className: n,
745
+ ...s,
746
+ children: /* @__PURE__ */ m.jsx("p", { className: r, children: t })
747
+ }
748
+ ) }),
749
+ /* @__PURE__ */ m.jsx(Jt, { asChild: o, children: e })
750
+ ] }), Lr = (e, t = 2) => {
751
+ if (e === 0) return "0 B";
752
+ const n = 1024, r = t < 0 ? 0 : t, o = ["Bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], s = Math.floor(Math.log(e) / Math.log(n));
753
+ return `${Number.parseFloat((e / n ** s).toFixed(r))} ${o[s]}`;
754
+ }, Pr = (e) => {
755
+ const t = Me(e);
756
+ return Ut((t == null ? void 0 : t.message) || "", (t == null ? void 0 : t.title) || "Error", {
757
+ id: `${(t == null ? void 0 : t.title) || ""}-${(t == null ? void 0 : t.message) || ""}`
758
+ }), t;
759
+ }, qt = (e) => e instanceof Date, Kt = (e) => e == null, Zt = (e) => typeof e == "object", Qt = (e) => !Kt(e) && !Array.isArray(e) && Zt(e) && !qt(e), Ar = (e) => Qt(e) && !Object.keys(e).length, Ve = ut(null), Ir = ({ children: e, client: t }) => /* @__PURE__ */ m.jsx(Ve.Provider, { value: t, children: e }), L = () => {
760
+ const e = Pe(Ve);
761
+ if (!e)
762
+ throw new Error(
763
+ "useLevo must be used within a LevoProvider. Please ensure you have wrapped your component tree with LevoProvider."
764
+ );
765
+ return e;
766
+ }, Dr = ({ id: e, properties: t = {} }) => {
767
+ const { audience: n } = L(), { ref: r, inView: o } = dt({
768
+ triggerOnce: !0
769
+ });
770
+ return b(() => {
771
+ n != null && n.instance && o && (n == null || n.track("block.view", {
772
+ ...t,
773
+ resource: "block",
774
+ identifier: e
775
+ }));
776
+ }, [o]), /* @__PURE__ */ m.jsx("div", { ref: r, style: { height: "0px" } });
777
+ }, Mr = ({ event: e, properties: t }) => {
778
+ const { audience: n } = L();
779
+ return b(() => {
780
+ n != null && n.instance && (n == null || n.track(e, t));
781
+ }, [n == null ? void 0 : n.instance, e, t]), null;
782
+ };
783
+ function ge(e) {
784
+ var t = typeof e;
785
+ return e != null && (t == "object" || t == "function");
786
+ }
787
+ var en = typeof global == "object" && global && global.Object === Object && global, tn = typeof self == "object" && self && self.Object === Object && self, Je = en || tn || Function("return this")(), de = function() {
788
+ return Je.Date.now();
789
+ }, nn = /\s/;
790
+ function rn(e) {
791
+ for (var t = e.length; t-- && nn.test(e.charAt(t)); )
792
+ ;
793
+ return t;
794
+ }
795
+ var on = /^\s+/;
796
+ function sn(e) {
797
+ return e && e.slice(0, rn(e) + 1).replace(on, "");
798
+ }
799
+ var ne = Je.Symbol, Xe = Object.prototype, an = Xe.hasOwnProperty, cn = Xe.toString, G = ne ? ne.toStringTag : void 0;
800
+ function un(e) {
801
+ var t = an.call(e, G), n = e[G];
802
+ try {
803
+ e[G] = void 0;
804
+ var r = !0;
805
+ } catch {
806
+ }
807
+ var o = cn.call(e);
808
+ return r && (t ? e[G] = n : delete e[G]), o;
809
+ }
810
+ var ln = Object.prototype, dn = ln.toString;
811
+ function fn(e) {
812
+ return dn.call(e);
813
+ }
814
+ var mn = "[object Null]", gn = "[object Undefined]", Ne = ne ? ne.toStringTag : void 0;
815
+ function pn(e) {
816
+ return e == null ? e === void 0 ? gn : mn : Ne && Ne in Object(e) ? un(e) : fn(e);
817
+ }
818
+ function bn(e) {
819
+ return e != null && typeof e == "object";
820
+ }
821
+ var vn = "[object Symbol]";
822
+ function hn(e) {
823
+ return typeof e == "symbol" || bn(e) && pn(e) == vn;
824
+ }
825
+ var je = NaN, wn = /^[-+]0x[0-9a-f]+$/i, yn = /^0b[01]+$/i, xn = /^0o[0-7]+$/i, Tn = parseInt;
826
+ function Ce(e) {
827
+ if (typeof e == "number")
828
+ return e;
829
+ if (hn(e))
830
+ return je;
831
+ if (ge(e)) {
832
+ var t = typeof e.valueOf == "function" ? e.valueOf() : e;
833
+ e = ge(t) ? t + "" : t;
834
+ }
835
+ if (typeof e != "string")
836
+ return e === 0 ? e : +e;
837
+ e = sn(e);
838
+ var n = yn.test(e);
839
+ return n || xn.test(e) ? Tn(e.slice(2), n ? 2 : 8) : wn.test(e) ? je : +e;
840
+ }
841
+ var En = "Expected a function", kn = Math.max, Sn = Math.min;
842
+ function _n(e, t, n) {
843
+ var r, o, s, c, i, u, l = 0, p = !1, d = !1, f = !0;
844
+ if (typeof e != "function")
845
+ throw new TypeError(En);
846
+ t = Ce(t) || 0, ge(n) && (p = !!n.leading, d = "maxWait" in n, s = d ? kn(Ce(n.maxWait) || 0, t) : s, f = "trailing" in n ? !!n.trailing : f);
847
+ function v(w) {
848
+ var P = r, $ = o;
849
+ return r = o = void 0, l = w, c = e.apply($, P), c;
850
+ }
851
+ function S(w) {
852
+ return l = w, i = setTimeout(C, t), p ? v(w) : c;
853
+ }
854
+ function _(w) {
855
+ var P = w - u, $ = w - l, V = t - P;
856
+ return d ? Sn(V, s - $) : V;
857
+ }
858
+ function j(w) {
859
+ var P = w - u, $ = w - l;
860
+ return u === void 0 || P >= t || P < 0 || d && $ >= s;
861
+ }
862
+ function C() {
863
+ var w = de();
864
+ if (j(w))
865
+ return T(w);
866
+ i = setTimeout(C, _(w));
867
+ }
868
+ function T(w) {
869
+ return i = void 0, f && r ? v(w) : (r = o = void 0, c);
870
+ }
871
+ function y() {
872
+ i !== void 0 && clearTimeout(i), l = 0, r = u = o = i = void 0;
873
+ }
874
+ function O() {
875
+ return i === void 0 ? c : T(de());
876
+ }
877
+ function M() {
878
+ var w = de(), P = j(w);
879
+ if (r = arguments, o = this, u = w, P) {
880
+ if (i === void 0)
881
+ return S(u);
882
+ if (d)
883
+ return clearTimeout(i), i = setTimeout(C, t), v(u);
884
+ }
885
+ return i === void 0 && (i = setTimeout(C, t)), c;
886
+ }
887
+ return M.cancel = y, M.flush = O, M;
888
+ }
889
+ const On = () => {
890
+ const [e, t] = x(0), [n, r] = x(0), [o, s] = x(0), [c, i] = x(Date.now()), [u, l] = x("read"), p = _n(() => {
891
+ const d = window.scrollY, f = document.documentElement.scrollHeight, v = window.innerHeight, S = Math.round(
892
+ d / (f - v) * 100
893
+ ), _ = Math.floor(S / 5) * 5;
894
+ if (_ <= n)
895
+ return;
896
+ const j = Date.now(), C = (j - c) / 1e3, y = Math.abs(d - o) / C;
897
+ l(y > 300 ? "scan" : "read"), s(d), i(j), r(_), t(_);
898
+ }, 250);
899
+ return b(() => (window.addEventListener("scroll", p), () => window.removeEventListener("scroll", p)), []), { depth: e, speedCategory: u };
900
+ }, Nn = () => {
901
+ const e = L(), [t, n] = x(0);
902
+ return b(() => {
903
+ const r = Number(localStorage.getItem(e.audience.storage_keys.open_tabs)) || 0;
904
+ n(r), localStorage.setItem(
905
+ e.audience.storage_keys.open_tabs,
906
+ (r + 1).toString()
907
+ );
908
+ const o = (c) => {
909
+ c.key === e.audience.storage_keys.open_tabs && n(Number(c.newValue) || 0);
910
+ };
911
+ window.addEventListener("storage", o);
912
+ const s = () => {
913
+ const c = Number(localStorage.getItem(e.audience.storage_keys.open_tabs)) || 0;
914
+ c > 0 && localStorage.setItem(
915
+ e.audience.storage_keys.open_tabs,
916
+ (c - 1).toString()
917
+ );
918
+ };
919
+ return window.addEventListener("beforeunload", s), () => {
920
+ window.removeEventListener("storage", o), window.removeEventListener("beforeunload", s);
921
+ };
922
+ }, []), t;
923
+ }, jn = () => {
924
+ const e = L(), [t, n] = x(null);
925
+ return b(() => {
926
+ let r = sessionStorage.getItem(
927
+ e.audience.storage_keys.current_tab
928
+ );
929
+ const o = JSON.parse(
930
+ localStorage.getItem(e.audience.storage_keys.all_tabs) || "[]"
931
+ );
932
+ r && o.includes(r) && (r = null), r || (r = `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`, sessionStorage.setItem(
933
+ e.audience.storage_keys.current_tab,
934
+ r
935
+ )), o.includes(r) || (o.push(r), localStorage.setItem(
936
+ e.audience.storage_keys.all_tabs,
937
+ JSON.stringify(o)
938
+ )), n(r);
939
+ const s = () => {
940
+ const c = o.filter(
941
+ (i) => i !== r
942
+ );
943
+ localStorage.setItem(
944
+ e.audience.storage_keys.all_tabs,
945
+ JSON.stringify(c)
946
+ );
947
+ };
948
+ return window.addEventListener("beforeunload", s), () => {
949
+ window.removeEventListener("beforeunload", s);
950
+ };
951
+ }, []), t;
952
+ }, re = (e) => Object.prototype.toString.call(e) == "[object String]", Cn = (e, t) => e.indexOf(t) !== -1, oe = (e) => e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""), qe = (e) => e === void 0, Rn = (e) => e === null, Ke = (e) => qe(e) || Rn(e), Ze = (e) => !!e && (e == null ? void 0 : e.nodeType) === 3;
953
+ function Ln(e) {
954
+ return !!e && (e == null ? void 0 : e.nodeType) === 1;
955
+ }
956
+ function Pn(e, t) {
957
+ return !!e && !!(e != null && e.tagName) && (e == null ? void 0 : e.tagName.toLowerCase()) === t.toLowerCase();
958
+ }
959
+ function An(e) {
960
+ return e ? oe(e).split(/\s+/) : [];
961
+ }
962
+ function In(e) {
963
+ let t = "";
964
+ switch (typeof (e == null ? void 0 : e.className)) {
965
+ case "string":
966
+ t = e == null ? void 0 : e.className;
967
+ break;
968
+ // TODO: when is this ever used?
969
+ case "object":
970
+ t = (e != null && e.className && "baseVal" in (e == null ? void 0 : e.className) ? (e == null ? void 0 : e.className).baseVal : null) || (e == null ? void 0 : e.getAttribute("class")) || "";
971
+ break;
972
+ default:
973
+ t = "";
974
+ }
975
+ return An(t);
976
+ }
977
+ const W = (e, t = 255) => Ke(e) ? "" : oe(e).split(/(\s+)/).filter((n) => be(n)).join("").replace(/[\r\n]/g, " ").replace(/[ ]+/g, " ").substring(0, t), pe = (e) => {
978
+ let t = "";
979
+ if ($n(e) && // !isSensitiveElement(el) &&
980
+ (e != null && e.childNodes) && (e != null && e.childNodes.length))
981
+ for (const n of e == null ? void 0 : e.childNodes)
982
+ Ze(n) && n.textContent && (t += W(n.textContent) ?? "");
983
+ return oe(t);
984
+ }, Dn = (e) => {
985
+ var t, n;
986
+ return qe(e.target) ? (e == null ? void 0 : e.srcElement) || null : (t = e == null ? void 0 : e.target) != null && t.shadowRoot ? ((n = e == null ? void 0 : e.composedPath()) == null ? void 0 : n[0]) || null : (e == null ? void 0 : e.target) || null;
987
+ }, Mn = (e, t) => {
988
+ if (!window || !e || Pn(e, "html") || !Ln(e))
989
+ return !1;
990
+ const n = window.getComputedStyle(e);
991
+ if (n && n.getPropertyValue("cursor") === "pointer" && t.type === "click")
992
+ return !0;
993
+ switch (e == null ? void 0 : e.tagName.toLowerCase()) {
994
+ case "html":
995
+ return !1;
996
+ case "form":
997
+ return t.type === "submit";
998
+ case "input":
999
+ case "select":
1000
+ case "textarea":
1001
+ return ["change", "click"].includes(t.type);
1002
+ default:
1003
+ return t.type === "click";
1004
+ }
1005
+ };
1006
+ function $n(e) {
1007
+ if (Cn(In(e), "ph-include"))
1008
+ return !0;
1009
+ const t = e.type || "";
1010
+ if (re(t))
1011
+ switch (t.toLowerCase()) {
1012
+ case "hidden":
1013
+ return !1;
1014
+ case "password":
1015
+ return !1;
1016
+ }
1017
+ const n = e.name || (e == null ? void 0 : e.id) || "";
1018
+ return !(re(n) && /^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(n.replace(/[^a-zA-Z0-9]/g, "")));
1019
+ }
1020
+ const Qe = "(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})", Fn = new RegExp(`^(?:${Qe})$`), Wn = new RegExp(Qe), et = "\\d{3}-?\\d{2}-?\\d{4}", Bn = new RegExp(`^(${et})$`), Un = new RegExp(`(${et})`), be = (e, t = !0) => !(Ke(e) || re(e) && (e = oe(e), (t ? Fn : Wn).test((e || "").replace(/[- ]/g, "")) || (t ? Bn : Un).test(e))), Yn = (e) => re(e) ? e.substring(0, 10) === "_ngcontent" || e.substring(0, 7) === "_nghost" : !1, zn = (e) => {
1021
+ let t = pe(e);
1022
+ return t = `${t} ${tt(e)}`.trim(), be(t) ? t : "";
1023
+ };
1024
+ function tt(e) {
1025
+ var n;
1026
+ let t = "";
1027
+ if (e != null && e.childNodes.length) {
1028
+ for (const r of e.childNodes)
1029
+ if (r && ((n = r.tagName) == null ? void 0 : n.toLowerCase()) === "span")
1030
+ try {
1031
+ const o = pe(r);
1032
+ t = `${t} ${o}`.trim(), r != null && r.childNodes.length && (t = `${t} ${tt(r)}`.trim());
1033
+ } catch {
1034
+ }
1035
+ }
1036
+ return t;
1037
+ }
1038
+ const Hn = ["input", "textarea", "select"], nt = (e) => {
1039
+ var o, s, c, i;
1040
+ const t = (o = e == null ? void 0 : e.tagName) == null ? void 0 : o.toLowerCase(), n = {
1041
+ element: t
1042
+ };
1043
+ (t == null ? void 0 : t.toLowerCase()) === "a" || (t == null ? void 0 : t.toLowerCase()) === "button" ? n.text = zn(e) : n.text = pe(e);
1044
+ const r = Array.from(e.attributes).reduce(
1045
+ (u, l) => {
1046
+ if (be(l.value) && !Yn(l.name)) {
1047
+ if (l.name === "class")
1048
+ return u;
1049
+ u[l.name] = typeof (l == null ? void 0 : l.value) == "string" ? W(l.value) : l.value;
1050
+ }
1051
+ return u;
1052
+ },
1053
+ {}
1054
+ );
1055
+ if (n.attributes = r, Hn.includes(t) || (e == null ? void 0 : e.getAttribute("contenteditable")) === "true") {
1056
+ let u;
1057
+ e.matches('input[type="checkbox"], input[type="radio"]') ? u = e.checked : e.matches("input, select, textarea") && !e.matches('input[type="password"]') && (u = e.value), u !== void 0 && (n.value = typeof u == "string" || u === null ? W(u, 1024) : u);
1058
+ let l = "";
1059
+ n != null && n.attributes.id && (l = W(
1060
+ ((c = (s = document.querySelector(`label[for="${n == null ? void 0 : n.attributes.id}"]`)) == null ? void 0 : s.textContent) == null ? void 0 : c.trim()) || ""
1061
+ ));
1062
+ const p = e.closest("label");
1063
+ l || (l = W(((i = p == null ? void 0 : p.textContent) == null ? void 0 : i.trim()) || "")), l && (n.label = l);
1064
+ }
1065
+ return n;
1066
+ }, Gn = (e, t) => {
1067
+ var o;
1068
+ let n = Dn(e);
1069
+ Ze(n) && (n = n.parentNode || null);
1070
+ const r = ["copy", "cut"].includes(t);
1071
+ if (n && (r || Mn(n, e))) {
1072
+ const s = nt(n);
1073
+ if (r) {
1074
+ const c = W((o = window == null ? void 0 : window.getSelection()) == null ? void 0 : o.toString()), i = (e == null ? void 0 : e.type) || "clipboard";
1075
+ s.copy_text = c ?? "", s.copy_type = i;
1076
+ }
1077
+ return s;
1078
+ }
1079
+ return null;
1080
+ }, Vn = 30, Jn = 1e3, Xn = 3;
1081
+ class qn {
1082
+ constructor() {
1083
+ J(this, "clicks");
1084
+ this.clicks = [];
1085
+ }
1086
+ isRageClick(t, n, r) {
1087
+ const o = this.clicks[this.clicks.length - 1];
1088
+ if (o && Math.abs(t - o.x) + Math.abs(n - o.y) < Vn && r - o.timestamp < Jn) {
1089
+ if (this.clicks.push({ x: t, y: n, timestamp: r }), this.clicks.length === Xn)
1090
+ return !0;
1091
+ } else
1092
+ this.clicks = [{ x: t, y: n, timestamp: r }];
1093
+ return !1;
1094
+ }
1095
+ }
1096
+ const fe = new qn(), Kn = () => {
1097
+ const { audience: e } = L();
1098
+ b(() => {
1099
+ let t = null;
1100
+ const n = (s) => {
1101
+ if (t) {
1102
+ clearTimeout(t), t = null;
1103
+ return;
1104
+ }
1105
+ t = setTimeout(() => {
1106
+ o(s, !1), t = null;
1107
+ }, 250);
1108
+ }, r = (s) => {
1109
+ t && (clearTimeout(t), t = null), o(s, !0);
1110
+ }, o = (s, c = !1) => {
1111
+ var i;
1112
+ try {
1113
+ let u = {
1114
+ hostname: window.location.hostname,
1115
+ pathname: window.location.pathname,
1116
+ page_title: document.title,
1117
+ url: window.location.href,
1118
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
1119
+ event_type: c ? "dblclick" : "click",
1120
+ button_type: s.button
1121
+ };
1122
+ if (s.target instanceof HTMLElement) {
1123
+ const l = s.target;
1124
+ u.rage_click = fe == null ? void 0 : fe.isRageClick(
1125
+ s.clientX,
1126
+ s.clientY,
1127
+ (/* @__PURE__ */ new Date()).getTime()
1128
+ ), u = {
1129
+ ...u,
1130
+ ...nt(l)
1131
+ };
1132
+ let p = l == null ? void 0 : l.getAttribute("href");
1133
+ if (!p) {
1134
+ let d = l.parentNode, f = 0;
1135
+ for (; d && f < 8; ) {
1136
+ const v = (i = d == null ? void 0 : d.parentElement) == null ? void 0 : i.getAttribute("href");
1137
+ if (v) {
1138
+ p = v;
1139
+ break;
1140
+ }
1141
+ d = d.parentNode, f++;
1142
+ }
1143
+ }
1144
+ e == null || e.track("page.click", {
1145
+ ...u,
1146
+ href: p || void 0
1147
+ });
1148
+ }
1149
+ } catch {
1150
+ }
1151
+ };
1152
+ return document.addEventListener("click", n), document.addEventListener("dblclick", r), () => {
1153
+ document.removeEventListener("click", n), document.removeEventListener("dblclick", r);
1154
+ };
1155
+ }, [e]);
1156
+ }, Z = (e) => Number(e.toFixed(0)), Zn = (e) => {
1157
+ const { audience: t } = L(), [n] = x({
1158
+ value: Z(performance.now()),
1159
+ timestamp: Z(Date.now())
1160
+ }), [r, o] = x({
1161
+ value: null,
1162
+ timestamp: null
1163
+ }), [s, c] = x({
1164
+ value: null,
1165
+ timestamp: null
1166
+ });
1167
+ return b(() => {
1168
+ let i = !0;
1169
+ const u = (d, f) => {
1170
+ i && d({ value: Z(f), timestamp: Z(Date.now()) });
1171
+ }, l = new PerformanceObserver((d) => {
1172
+ for (const f of d.getEntries())
1173
+ f.name === "first-contentful-paint" && u(o, f.startTime);
1174
+ });
1175
+ l.observe({ type: "paint", buffered: !0 });
1176
+ const p = () => u(c, performance.now());
1177
+ return document.readyState === "complete" ? u(c, performance.now()) : window.addEventListener("load", p), () => {
1178
+ i = !1, l.disconnect(), window.removeEventListener("load", p);
1179
+ };
1180
+ }, []), b(() => {
1181
+ n && t && (t == null || t.track("page.metrics", {
1182
+ script_load: n.value,
1183
+ script_load_at: n.timestamp,
1184
+ version: 2
1185
+ }));
1186
+ }, [n, t]), b(() => {
1187
+ r.value !== null && t && (t == null || t.track("page.metrics", {
1188
+ first_contentful_paint: r.value,
1189
+ first_contentful_paint_at: r.timestamp,
1190
+ version: 2
1191
+ }));
1192
+ }, [r, t]), b(() => {
1193
+ s.value !== null && t && (t == null || t.track("page.metrics", {
1194
+ window_onload: s.value,
1195
+ window_onload_at: s.timestamp,
1196
+ version: 2
1197
+ }));
1198
+ }, [s, t]), { script: n, fcp: r, window_onload: s };
1199
+ }, Qn = () => {
1200
+ const { audience: e } = L();
1201
+ b(() => {
1202
+ let t;
1203
+ const n = () => {
1204
+ clearTimeout(t), t = setTimeout(() => {
1205
+ const r = window.getSelection();
1206
+ if (r && (r == null ? void 0 : r.rangeCount) > 0) {
1207
+ const o = r == null ? void 0 : r.toString();
1208
+ o && (e == null || e.track("page.selection", {
1209
+ text: W(o)
1210
+ }));
1211
+ }
1212
+ }, 1e3);
1213
+ };
1214
+ return document.addEventListener("selectionchange", n), () => {
1215
+ clearTimeout(t), document.removeEventListener("selectionchange", n);
1216
+ };
1217
+ }, []);
1218
+ }, Re = "lv_insights_st", er = 15 * 60 * 1e3, tr = (e = "https://cachefly.cachefly.net/1mb.test") => {
1219
+ const [t, n] = x(null);
1220
+ return b(() => {
1221
+ const r = localStorage.getItem(Re);
1222
+ if (r) {
1223
+ const { speed: i, timestamp: u } = JSON.parse(r);
1224
+ if (Date.now() - u < er) {
1225
+ n(i);
1226
+ return;
1227
+ }
1228
+ }
1229
+ let o = null;
1230
+ const s = async () => {
1231
+ const i = new ft("download_speed");
1232
+ if (i.acquireLock())
1233
+ try {
1234
+ const l = performance.now();
1235
+ await fetch(e, { cache: "no-store" });
1236
+ const d = (performance.now() - l) / 1e3, f = Math.round(8 / d);
1237
+ n(f), localStorage.setItem(
1238
+ Re,
1239
+ JSON.stringify({ speed: f, timestamp: Date.now() })
1240
+ );
1241
+ } catch {
1242
+ } finally {
1243
+ i.releaseLock();
1244
+ }
1245
+ }, c = () => {
1246
+ document.removeEventListener("mousemove", c), document.removeEventListener("keydown", c), document.removeEventListener("scroll", c), o = setTimeout(s, 5e3);
1247
+ };
1248
+ return document.addEventListener("mousemove", c, { once: !0 }), document.addEventListener("keydown", c, { once: !0 }), document.addEventListener("scroll", c, { once: !0 }), () => {
1249
+ o && clearTimeout(o), document.removeEventListener("mousemove", c), document.removeEventListener("keydown", c), document.removeEventListener("scroll", c);
1250
+ };
1251
+ }, [e]), t;
1252
+ }, nr = ({
1253
+ id: e,
1254
+ properties: t = {},
1255
+ href: n
1256
+ }) => {
1257
+ const r = L();
1258
+ b(() => {
1259
+ (() => {
1260
+ var s, c;
1261
+ r != null && r.insightsUrl && r.workspace && n && ((s = r == null ? void 0 : r.audience) != null && s.instance ? r == null || r.audience.instance.page({
1262
+ resource: "page",
1263
+ identifier: e
1264
+ }) : (c = r == null ? void 0 : r.audience) == null || c.initiate({
1265
+ ...t,
1266
+ id: e,
1267
+ created_at: (/* @__PURE__ */ new Date()).toISOString()
1268
+ }));
1269
+ })();
1270
+ }, [r == null ? void 0 : r.insightsUrl, r == null ? void 0 : r.workspace, n]), b(() => {
1271
+ const o = (s) => {
1272
+ var i;
1273
+ const c = localStorage.getItem(
1274
+ r.audience.storage_keys.identify
1275
+ );
1276
+ s.key === r.audience.storage_keys.identify && !(r != null && r.audience.is_identified) && !c && ((i = r == null ? void 0 : r.audience) == null || i.identify({
1277
+ withLock: !1
1278
+ }));
1279
+ };
1280
+ return window.addEventListener("storage", o), () => {
1281
+ window.removeEventListener("storage", o);
1282
+ };
1283
+ }, []);
1284
+ }, rr = ({ id: e }) => {
1285
+ const t = L();
1286
+ b(() => {
1287
+ const r = () => {
1288
+ var c, i;
1289
+ const o = (c = performance.getEntriesByType(
1290
+ "navigation"
1291
+ )) == null ? void 0 : c[0];
1292
+ let s = !1;
1293
+ if (o)
1294
+ o.type === "navigate" && (s = !0);
1295
+ else
1296
+ try {
1297
+ const u = document.activeElement;
1298
+ (u == null ? void 0 : u.tagName) === "A" && u.href && (new URL(u.href).origin !== window.location.origin ? s = !0 : s = !1);
1299
+ } catch {
1300
+ }
1301
+ (i = t == null ? void 0 : t.audience) == null || i.bounce({
1302
+ resource: "page",
1303
+ identifier: e,
1304
+ is_navigating_away: s,
1305
+ navigation_type: o == null ? void 0 : o.type
1306
+ });
1307
+ };
1308
+ return window.addEventListener("beforeunload", r), () => {
1309
+ window.removeEventListener("beforeunload", r);
1310
+ };
1311
+ }, [t == null ? void 0 : t.audience, e]);
1312
+ const [n] = mt();
1313
+ b(() => {
1314
+ var r;
1315
+ (n === le.HIDDEN || n === le.UNKNOWN || n === le.FROZEN) && ((r = t == null ? void 0 : t.audience) == null || r.bounce({
1316
+ resource: "page",
1317
+ identifier: e,
1318
+ state: n
1319
+ }));
1320
+ }, [n, t == null ? void 0 : t.audience, e]);
1321
+ }, $r = ({ id: e, properties: t = {} }) => {
1322
+ var c;
1323
+ const n = typeof window < "u" ? window.location.href : "", r = L();
1324
+ b(() => {
1325
+ r && typeof window < "u" && (window.levo_client = r);
1326
+ }, [r]), b(() => {
1327
+ r != null && r.audience && typeof window < "u" && (window.levo_audience = r == null ? void 0 : r.audience);
1328
+ }, []), Nn(), jn(), Kn();
1329
+ const o = tr();
1330
+ b(() => {
1331
+ var i;
1332
+ (i = r == null ? void 0 : r.audience) != null && i.instance && o && (r == null || r.audience.track("user.speedtest", {
1333
+ speed: o,
1334
+ unit: "Mbps"
1335
+ }));
1336
+ }, [o]);
1337
+ const s = On();
1338
+ return b(() => {
1339
+ var i;
1340
+ (i = r == null ? void 0 : r.audience) != null && i.instance && (r == null || r.audience.track("page.scroll", {
1341
+ resource: "page",
1342
+ identifier: e,
1343
+ percent: s.depth,
1344
+ speed_category: s.speedCategory
1345
+ }));
1346
+ }, [
1347
+ (c = r == null ? void 0 : r.audience) == null ? void 0 : c.instance,
1348
+ s.depth,
1349
+ s.speedCategory,
1350
+ e
1351
+ ]), Zn(), Qn(), nr({
1352
+ href: n,
1353
+ id: e,
1354
+ properties: t
1355
+ }), rr({ id: e }), b(() => {
1356
+ const i = {
1357
+ change: "form.change",
1358
+ submit: "form.submit",
1359
+ copy: "page.copy",
1360
+ cut: "page.copy"
1361
+ }, u = (p) => (d) => {
1362
+ var v;
1363
+ const f = Gn(d, p);
1364
+ f && i[p] && ((v = r == null ? void 0 : r.audience) == null || v.track(i[p], f));
1365
+ }, l = {
1366
+ change: u("change"),
1367
+ copy: u("copy"),
1368
+ cut: u("cut"),
1369
+ submit: u("submit")
1370
+ };
1371
+ return document.addEventListener("change", l.change), document.addEventListener("copy", l.copy), document.addEventListener("cut", l.cut), document.addEventListener("submit", l.submit), () => {
1372
+ document.removeEventListener("change", l.change), document.removeEventListener("copy", l.copy), document.removeEventListener("cut", l.cut), document.removeEventListener("submit", l.submit);
1373
+ };
1374
+ }, []), (!(r != null && r.insightsUrl) || !r.workspace || !r.workspace.startsWith("W")) && console.error(
1375
+ "[@levo-so/react] The utility could not be initialized, due to missing workspace, or endpoint for insights."
1376
+ ), null;
1377
+ }, rt = I.createContext({
1378
+ urls: null,
1379
+ title: "",
1380
+ isLoading: !1,
1381
+ onSuccess: () => {
1382
+ },
1383
+ onError: () => {
1384
+ }
1385
+ }), or = ({
1386
+ title: e,
1387
+ onSuccess: t,
1388
+ onError: n,
1389
+ children: r
1390
+ }) => {
1391
+ const o = L(), s = typeof window < "u" ? window.location.href : "", [c, i] = x(null), [u, l] = x(!1);
1392
+ b(() => {
1393
+ var d;
1394
+ o.membership && (l(!0), (d = o.membership) == null || d.getOAuthURL().then((f) => {
1395
+ i(f);
1396
+ }).catch((f) => {
1397
+ n({
1398
+ code: (f == null ? void 0 : f.code) || "SOMETHING_WENT_WRONG",
1399
+ message: (f == null ? void 0 : f.message) || "We could not connect with our service for your sign-in."
1400
+ });
1401
+ }).finally(() => {
1402
+ l(!1);
1403
+ }));
1404
+ }, []);
1405
+ const p = Ae(
1406
+ () => ({ title: e, urls: c, isLoading: u, onSuccess: t, onError: n }),
1407
+ [e, c, t, n, u]
1408
+ );
1409
+ return b(() => {
1410
+ if (c && s) {
1411
+ const d = {}, f = Object.keys(c);
1412
+ for (const v of f)
1413
+ try {
1414
+ const S = c[v];
1415
+ if (S) {
1416
+ const _ = new URL(S), j = _.searchParams;
1417
+ j.set("redirect_uri", s);
1418
+ const C = o.pageContext;
1419
+ C && j.set("page_context", JSON.stringify(C)), d[v] = _.toString();
1420
+ }
1421
+ } catch {
1422
+ }
1423
+ i(d);
1424
+ }
1425
+ }, [s]), /* @__PURE__ */ m.jsx(rt.Provider, { value: p, children: r });
1426
+ }, sr = () => Pe(rt), ar = ({ url: e, title: t, height: n, width: r }) => {
1427
+ const o = window.screenX + (window.outerWidth - r) / 2, s = window.screenY + (window.outerHeight - n) / 2.5;
1428
+ return window.open(
1429
+ e,
1430
+ t,
1431
+ `width=${r},height=${n},left=${o},top=${s}`
1432
+ );
1433
+ }, ir = ({
1434
+ title: e = "",
1435
+ width: t = 500,
1436
+ height: n = 500,
1437
+ url: r,
1438
+ children: o,
1439
+ onCode: s,
1440
+ onClose: c
1441
+ }) => {
1442
+ const [i, u] = x(), l = Ie(void 0), p = () => {
1443
+ window.clearInterval(l.current);
1444
+ }, d = () => {
1445
+ u(
1446
+ ar({
1447
+ url: r,
1448
+ title: e,
1449
+ width: t,
1450
+ height: n
1451
+ })
1452
+ );
1453
+ };
1454
+ return b(() => (i && (l.current = window.setInterval(() => {
1455
+ try {
1456
+ const f = i.location.href, v = new URL(f).searchParams, S = v.get("code");
1457
+ if (!S)
1458
+ return;
1459
+ s(S, v), p(), i.close();
1460
+ } catch {
1461
+ } finally {
1462
+ (!i || i.closed) && (c(), p());
1463
+ }
1464
+ }, 700)), () => {
1465
+ i && i.close(), c && c();
1466
+ }), [i]), /* @__PURE__ */ m.jsx(
1467
+ "div",
1468
+ {
1469
+ onClick: () => {
1470
+ d();
1471
+ },
1472
+ children: o
1473
+ }
1474
+ );
1475
+ }, cr = ({
1476
+ title: e = "Levo",
1477
+ url: t,
1478
+ children: n,
1479
+ onSuccess: r,
1480
+ onError: o,
1481
+ width: s = 500,
1482
+ height: c = 700
1483
+ }) => {
1484
+ const i = me((u, l) => {
1485
+ u.toLowerCase() === "success" ? r(l) : o(l);
1486
+ }, []);
1487
+ return /* @__PURE__ */ m.jsx(
1488
+ ir,
1489
+ {
1490
+ title: e,
1491
+ width: s,
1492
+ height: c,
1493
+ onClose: () => {
1494
+ },
1495
+ url: t,
1496
+ onCode: i,
1497
+ children: n
1498
+ }
1499
+ );
1500
+ }, ur = ({ children: e, provider: t }) => {
1501
+ const { title: n, urls: r, isLoading: o, onSuccess: s, onError: c } = sr(), i = r == null ? void 0 : r[t];
1502
+ return i ? /* @__PURE__ */ m.jsx(
1503
+ cr,
1504
+ {
1505
+ title: n,
1506
+ provider: t,
1507
+ url: i,
1508
+ onSuccess: s,
1509
+ onError: c,
1510
+ children: o ? /* @__PURE__ */ m.jsx("div", { className: "w-full items-center justify-center", children: /* @__PURE__ */ m.jsx(Yt, { className: "h-5 w-5 bg-brand" }) }) : e
1511
+ }
1512
+ ) : null;
1513
+ }, lr = ({ url: e, title: t, height: n, width: r }) => {
1514
+ const o = window.screenX + (window.outerWidth - r) / 2, s = window.screenY + (window.outerHeight - n) / 2.5;
1515
+ return window.open(
1516
+ e,
1517
+ t,
1518
+ `width=${r},height=${n},left=${o},top=${s}`
1519
+ );
1520
+ }, Fr = ({
1521
+ title: e = "Levo",
1522
+ width: t = 500,
1523
+ height: n = 700,
1524
+ onSuccess: r
1525
+ }) => {
1526
+ const o = L(), [s, c] = x(!1), [i, u] = x(null), [l, p] = x(null), [d, f] = x(), v = Ie(void 0), S = () => {
1527
+ window.clearInterval(v.current);
1528
+ }, _ = me((T, y) => {
1529
+ T.toLowerCase() === "success" ? (p(null), r(y)) : p(y);
1530
+ }, []);
1531
+ b(() => {
1532
+ var T;
1533
+ o.membership && (c(!0), (T = o.membership) == null || T.getOAuthURL().then((y) => {
1534
+ if (y)
1535
+ return u(y), y;
1536
+ throw new Error();
1537
+ }).catch((y) => {
1538
+ var M;
1539
+ const O = Me(y);
1540
+ (M = o.logger) == null || M.error("Failed to get OAuth URL", O), p({
1541
+ code: (O == null ? void 0 : O.code) || "SOMETHING_WENT_WRONG",
1542
+ message: (O == null ? void 0 : O.message) || "We could not connect with our service for your sign-in."
1543
+ });
1544
+ }).finally(() => {
1545
+ c(!1);
1546
+ }));
1547
+ }, []), b(() => (d && (v.current = window.setInterval(() => {
1548
+ try {
1549
+ const T = d.location.href, y = new URL(T).searchParams, O = y.get("code");
1550
+ if (!O)
1551
+ return;
1552
+ _(O, y), S(), d.close();
1553
+ } catch {
1554
+ } finally {
1555
+ (!d || d.closed) && (S(), p(null));
1556
+ }
1557
+ }, 700)), () => {
1558
+ d && d.close();
1559
+ }), [d]);
1560
+ const j = me(
1561
+ (T) => {
1562
+ if (T && i !== null) {
1563
+ const y = i == null ? void 0 : i[T];
1564
+ y && (d && d.close(), f(
1565
+ lr({
1566
+ url: y,
1567
+ title: e,
1568
+ width: t,
1569
+ height: n
1570
+ })
1571
+ ));
1572
+ }
1573
+ },
1574
+ [i, d]
1575
+ );
1576
+ return {
1577
+ providers: Ae(() => i !== null ? Object.keys(i).filter(
1578
+ (T) => !!i[T]
1579
+ ) : [], [i]),
1580
+ isLoading: s,
1581
+ error: l,
1582
+ launchPopup: j
1583
+ };
1584
+ };
1585
+ class Le {
1586
+ }
1587
+ J(Le, "Container", or), J(Le, "Button", ur);
70
1588
  export {
71
- h as Button,
72
- M as Dialog,
73
- O as DialogClose,
74
- E as DialogContent,
75
- F as DialogDescription,
76
- w as DialogFooter,
77
- B as DialogHeader,
78
- C as DialogOverlay,
79
- P as DialogPortal,
80
- S as DialogTitle,
81
- I as DialogTrigger,
82
- k as DialogWrapper,
83
- u as LevoInsightsBlock,
84
- T as LevoInsightsComponent,
85
- b as LevoInsightsPage,
86
- y as LevoOAuth,
87
- v as LevoProvider,
88
- A as SimpleTooltipWrapper,
89
- _ as Spinner,
90
- H as Tabs,
91
- K as TabsContent,
92
- W as TabsList,
93
- q as TabsTrigger,
94
- R as Toaster,
95
- z as Tooltip,
96
- N as TooltipContent,
97
- U as TooltipPortal,
98
- V as TooltipProvider,
99
- G as TooltipTrigger,
100
- r as allMediaFileExtensions,
101
- d as allMediaMimetypes,
102
- t as audioFileExtensions,
103
- g as audioMimetype,
104
- J as buttonVariants,
105
- oo as byteToSize,
106
- mo as cn,
107
- a as documentFileExtensions,
108
- n as documentMimetype,
109
- eo as errorHandler,
110
- X as errorToast,
111
- s as imageFileExtensions,
112
- p as imageMimetype,
113
- ao as isDateObject,
114
- so as isEmptyObject,
115
- io as isNullOrUndefined,
116
- to as isObject,
117
- no as isObjectType,
118
- e as mediaExtensionsByKind,
119
- o as mediaMimetypeByKind,
120
- Y as successToast,
121
- ro as toast,
122
- x as useLevo,
123
- j as useLevoOAuth,
124
- i as videoFileExtensions,
125
- m as videoMimetype
1589
+ $t as Button,
1590
+ Ft as Dialog,
1591
+ Sr as DialogClose,
1592
+ Ue as DialogContent,
1593
+ He as DialogDescription,
1594
+ Bt as DialogFooter,
1595
+ Ye as DialogHeader,
1596
+ Be as DialogOverlay,
1597
+ Wt as DialogPortal,
1598
+ ze as DialogTitle,
1599
+ kr as DialogTrigger,
1600
+ _r as DialogWrapper,
1601
+ Dr as LevoInsightsBlock,
1602
+ Mr as LevoInsightsComponent,
1603
+ $r as LevoInsightsPage,
1604
+ Le as LevoOAuth,
1605
+ Ir as LevoProvider,
1606
+ Rr as SimpleTooltipWrapper,
1607
+ Yt as Spinner,
1608
+ jr as Tabs,
1609
+ Gt as TabsContent,
1610
+ zt as TabsList,
1611
+ Ht as TabsTrigger,
1612
+ Or as Toaster,
1613
+ Vt as Tooltip,
1614
+ Ge as TooltipContent,
1615
+ Xt as TooltipPortal,
1616
+ Cr as TooltipProvider,
1617
+ Jt as TooltipTrigger,
1618
+ Tr as allMediaFileExtensions,
1619
+ Er as allMediaMimetypes,
1620
+ xt as audioFileExtensions,
1621
+ St as audioMimetype,
1622
+ Mt as buttonVariants,
1623
+ Lr as byteToSize,
1624
+ R as cn,
1625
+ ht as documentFileExtensions,
1626
+ Tt as documentMimetype,
1627
+ Pr as errorHandler,
1628
+ Ut as errorToast,
1629
+ wt as imageFileExtensions,
1630
+ Et as imageMimetype,
1631
+ qt as isDateObject,
1632
+ Ar as isEmptyObject,
1633
+ Kt as isNullOrUndefined,
1634
+ Qt as isObject,
1635
+ Zt as isObjectType,
1636
+ q as mediaExtensionsByKind,
1637
+ X as mediaMimetypeByKind,
1638
+ Nr as successToast,
1639
+ Ur as toast,
1640
+ L as useLevo,
1641
+ Fr as useLevoOAuth,
1642
+ yt as videoFileExtensions,
1643
+ kt as videoMimetype
126
1644
  };