@levo-so/studio 0.3.20 → 0.3.22

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 (69) hide show
  1. package/BillingStep-ioR7mSo5.js +249 -0
  2. package/BookingCard-DEkBXh7O.js +646 -0
  3. package/DateTimeWidget-B-dajfHj.js +253 -0
  4. package/{EntryCard-9yv0KJTB.js → EntryCard-CZfljZAY.js} +4 -4
  5. package/{KBChatWidget-D39Z3HIl.js → KBChatWidget-BXRRgelS.js} +1 -1
  6. package/{LoginCard-D9vEC_g0.js → LoginCard-BVjeN1J0.js} +3 -3
  7. package/{LoginForm-kI_b_7Tc.js → LoginForm-DQVwLQCx.js} +19 -19
  8. package/{LoginModal-C-9BhmoO.js → LoginModal-C6TdAh-0.js} +5 -6
  9. package/{MessageCard-Nsxr98n6.js → MessageCard-B5MbVDJ8.js} +2 -2
  10. package/{MessageFooter-K4Zd_eFO.js → MessageFooter-DrlKXE9a.js} +1 -2
  11. package/{PendingApprovalCard-CzoBgYNy.js → PendingApprovalCard-5iFAeE1s.js} +3 -3
  12. package/{PhoneWidget-BtMMfGLu.js → PhoneWidget-B4KHlFjT.js} +6 -7
  13. package/{Popover-Iis-qOn1.js → Popover-y8XkbYNh.js} +7 -7
  14. package/{PopupBody-BI-MJqmd-B3ltSYMP.js → PopupBody-DWM55Zh5-DuOPsCAn.js} +53 -55
  15. package/PopupDialog-DwAAJ8JS-9xm5jrXW.js +261 -0
  16. package/PopupRenderer-BVtV4b9I-BdPryfLY.js +208 -0
  17. package/{ProfileCard-Chg20HBa.js → ProfileCard-WgFT-T4U.js} +5 -5
  18. package/{RichTextWidget-C3Y-0pNy.js → RichTextWidget-DKYm1cSW.js} +120 -123
  19. package/{Spinner-D5spB_Mv.js → Spinner-LdYfm4S7.js} +1 -1
  20. package/{VerifyButton-BwTbzSwS.js → VerifyButton-CNq78zG4.js} +5 -7
  21. package/collection.d.ts +9 -1
  22. package/collection.js +1 -1
  23. package/dialog-CU5nHKc5.js +119 -0
  24. package/dist-IMRD6dob.js +3858 -0
  25. package/index.js +3280 -2848
  26. package/{inlineRteTheme-BOAno9MG.js → inlineRteTheme-DFg69bqP.js} +50 -37
  27. package/{kbChat-zXbn56Zb.js → kbChat-eFsau7hG.js} +2 -2
  28. package/package.json +42 -43
  29. package/{pillChrome-QDjBETmP.js → pillChrome-Dy3ApFI5.js} +5 -5
  30. package/price-BUDkN5Me.js +823 -0
  31. package/script.esm-uVCZU25S.js +62 -0
  32. package/studio.css +1 -1
  33. package/themeMapping-DH_NoXK8-H-EHXbBt.js +156 -0
  34. package/useCheckout-gscmzFLD.js +179 -0
  35. package/useLogin-BYVekOp9.js +237 -0
  36. package/AuthProvider-B5NfFwbG.js +0 -118
  37. package/BillingStep-BTDOMFHV.js +0 -181
  38. package/Button-DXLWW3dp.js +0 -504
  39. package/CollectionField-BZmxRB5D.js +0 -270
  40. package/CollectionInput-DyNbxIZ8.js +0 -147
  41. package/DateTimeWidget-Bt1UcCnx.js +0 -255
  42. package/Dialog-CPE8yUqK.js +0 -130
  43. package/ModalManager-CzH36UIk.js +0 -32
  44. package/PopupRenderer-D66Gx63H-ChI4WBer.js +0 -389
  45. package/RteThemeProvider-owl5oajj.js +0 -20
  46. package/ThemeProvider-CqPHzkW9.js +0 -116
  47. package/Tooltip-DHU1QD-n.js +0 -67
  48. package/authentication-BXQbxiPP.js +0 -36
  49. package/bookingCard-g0n3ksiC.js +0 -605
  50. package/createThemeExtension-C0PSYy0J.js +0 -15
  51. package/dialog-8LH_ihs4.js +0 -92
  52. package/dist-Dijjo-5m.js +0 -3794
  53. package/generateRadiusScale-RROt8ppa.js +0 -71
  54. package/inlineCollectionTheme-uhBXoF1F.js +0 -19
  55. package/popupState-JmpeKzgM-UECLsSbL.js +0 -100
  56. package/rteTheme.cssm-W4gTOijw.js +0 -4
  57. package/theme.cssm-Czj9sF4X.js +0 -4
  58. package/themeMapping-Bi9Rcr5G-C7UXWE6o.js +0 -61
  59. package/useCheckout-DFalmfEQ.js +0 -161
  60. package/useLogin-CfnGrLdO.js +0 -127
  61. package/usePopupRedirect-CAAdcpaW-DdME0F7f.js +0 -82
  62. /package/{Beams-WJN38XSv.js → Beams-KsU_ixpY.js} +0 -0
  63. /package/{Dots-DggLz5I7.js → Dots-C_ja_PPu.js} +0 -0
  64. /package/{Gradient-BSWJAu0a.js → Gradient-CDGFLaA-.js} +0 -0
  65. /package/{Grid-BFKl0MUt.js → Grid-C22rTkrs.js} +0 -0
  66. /package/{Waves-BPEgTYoO.js → Waves-Cl5rKcFJ.js} +0 -0
  67. /package/{card-5ooLmYSr.js → card-BIebVDA0.js} +0 -0
  68. /package/{cn-B6c1DjO_.js → cn-CzJDhklM.js} +0 -0
  69. /package/{fontSize-B-ba6pvx.js → fontSize-DowUyWe-.js} +0 -0
@@ -1,9 +1,7 @@
1
- import { r as e } from "./ThemeProvider-CqPHzkW9.js";
2
- import { n as t, t as n } from "./fontSize-B-ba6pvx.js";
3
- import { n as r, r as i, t as a } from "./inlineRteTheme-BOAno9MG.js";
4
- import { i as o, r as s, t as c } from "./Dialog-CPE8yUqK.js";
5
- import { t as l } from "./inlineCollectionTheme-uhBXoF1F.js";
6
- import { c as u, g as d, h as f, i as p, m, r as h, u as g } from "./usePopupRedirect-CAAdcpaW-DdME0F7f.js";
1
+ import { D as e, a as t, c as n, r, s as i } from "./price-BUDkN5Me.js";
2
+ import { n as a, t as o } from "./fontSize-DowUyWe-.js";
3
+ import { a as s, i as c, t as l } from "./inlineRteTheme-DFg69bqP.js";
4
+ import { a as u, i as d, l as f, n as p, o as m, r as h, u as g } from "./PopupDialog-DwAAJ8JS-9xm5jrXW.js";
7
5
  import { c as _ } from "react/compiler-runtime";
8
6
  import { LevoProvider as v } from "@levo-so/react";
9
7
  import { Suspense as y, lazy as b, useMemo as x, useState as S } from "react";
@@ -33,7 +31,7 @@ import { Underline as J } from "@tiptap/extension-underline";
33
31
  import { UniqueID as Y } from "@tiptap/extension-unique-id";
34
32
  import { generateJSON as X } from "@tiptap/html";
35
33
  import { renderToReactElement as Z } from "@tiptap/static-renderer/pm/react";
36
- //#region ../../libraries/popups/dist/PopupBody-BI-MJqmd.js
34
+ //#region ../../libraries/popups/dist/PopupBody-DWM55Zh5.js
37
35
  var Q = [
38
36
  O,
39
37
  H,
@@ -50,105 +48,105 @@ var Q = [
50
48
  J,
51
49
  D.configure({ openOnClick: !1 }),
52
50
  k,
53
- n,
51
+ o,
54
52
  q,
55
53
  G,
56
54
  W,
57
55
  F,
58
56
  R.configure({ multicolor: !0 }),
59
- t,
60
- i,
57
+ a,
58
+ s,
61
59
  Y.configure({ types: [
62
60
  "paragraph",
63
61
  "heading",
64
62
  "bulletList",
65
63
  "orderedList"
66
64
  ] })
67
- ], $ = (e) => X(e, Q), ee = ({ content: e, className: t, ref: n, ...i }) => {
68
- let a = x(() => e ? typeof e == "string" ? e ? $(e) : null : e.json && Object.keys(e.json).length > 0 ? e.json : e.html ? $(e.html) : null : null, [e]), o = x(() => a ? Z({
69
- content: a,
65
+ ], $ = (e) => X(e, Q), ee = ({ content: e, className: t, ref: n, ...r }) => {
66
+ let i = x(() => e ? typeof e == "string" ? e ? $(e) : null : e.json && Object.keys(e.json).length > 0 ? e.json : e.html ? $(e.html) : null : null, [e]), a = x(() => i ? Z({
67
+ content: i,
70
68
  extensions: Q
71
- }) : null, [a]);
72
- return o ? /* @__PURE__ */ w("div", {
69
+ }) : null, [i]);
70
+ return a ? /* @__PURE__ */ w("div", {
73
71
  ref: n,
74
- className: E(r, t),
75
- ...i,
76
- children: o
72
+ className: E(c, t),
73
+ ...r,
74
+ children: a
77
75
  }) : null;
78
- }, te = /* @__PURE__ */ d({ PopupBody: () => oe }), ne = b(() => import("./dist-Dijjo-5m.js").then((e) => e.t).then((e) => ({ default: e.CollectionFormBuilder }))), re = a({ baseSpacing: ".625rem" }), ie = { style: l({ form: { gap: "1rem" } }) }, ae = {
79
- left: u,
80
- center: h,
81
- right: p
82
- }, oe = (t) => {
83
- let n = _(33), { disableInteraction: r } = t, { popup: i, callbacks: a, client: l, preview: u } = m(), d = a?.onAction, p = f(i), { content: h } = i, [b, x] = S(!1), E;
84
- n[0] !== h.action || n[1] !== d || n[2] !== i ? (E = () => {
85
- if (h.action?.type !== "redirect" || !h.action.copyValue) return;
86
- let e = h.action.copyValue;
76
+ }, te = /* @__PURE__ */ g({ PopupBody: () => oe }), ne = b(() => import("./dist-IMRD6dob.js").then((e) => e.t).then((e) => ({ default: e.CollectionFormBuilder }))), re = l({ baseSpacing: ".625rem" }), ie = { style: r({ form: { gap: "1rem" } }) }, ae = {
77
+ left: p,
78
+ center: d,
79
+ right: f
80
+ }, oe = (r) => {
81
+ let a = _(33), { disableInteraction: o } = r, { popup: s, callbacks: c, client: l, preview: d } = h(), f = c?.onAction, p = u(s), { content: g } = s, [b, x] = S(!1), E;
82
+ a[0] !== g.action || a[1] !== f || a[2] !== s ? (E = () => {
83
+ if (g.action?.type !== "redirect" || !g.action.copyValue) return;
84
+ let e = g.action.copyValue;
87
85
  navigator.clipboard.writeText(e).then(() => {
88
- x(!0), setTimeout(() => x(!1), 2e3), d?.(i, {
86
+ x(!0), setTimeout(() => x(!1), 2e3), f?.(s, {
89
87
  action_type: "copy",
90
88
  copy_value: e
91
89
  });
92
90
  });
93
- }, n[0] = h.action, n[1] = d, n[2] = i, n[3] = E) : E = n[3];
94
- let D = E, O = h.align ?? "left", k = h.size ?? "medium", M;
95
- n[4] === k ? M = n[5] : (M = g({ size: k }), n[4] = k, n[5] = M);
91
+ }, a[0] = g.action, a[1] = f, a[2] = s, a[3] = E) : E = a[3];
92
+ let D = E, O = g.align ?? "left", k = g.size ?? "medium", M;
93
+ a[4] === k ? M = a[5] : (M = m({ size: k }), a[4] = k, a[5] = M);
96
94
  let N;
97
- n[6] === r ? N = n[7] : (N = r ? { pointerEvents: "none" } : void 0, n[6] = r, n[7] = N);
95
+ a[6] === o ? N = a[7] : (N = o ? { pointerEvents: "none" } : void 0, a[6] = o, a[7] = N);
98
96
  let P;
99
- n[8] !== O || n[9] !== h.description || n[10] !== h.heading ? (P = (h.heading || h.description) && /* @__PURE__ */ T(c, {
97
+ a[8] !== O || a[9] !== g.description || a[10] !== g.heading ? (P = (g.heading || g.description) && /* @__PURE__ */ T(t, {
100
98
  className: "zv6sjd4",
101
99
  style: { textAlign: O },
102
- children: [h.heading && /* @__PURE__ */ w(o, { children: h.heading }), h.description && /* @__PURE__ */ w(s, { children: h.description })]
103
- }), n[8] = O, n[9] = h.description, n[10] = h.heading, n[11] = P) : P = n[11];
100
+ children: [g.heading && /* @__PURE__ */ w(n, { children: g.heading }), g.description && /* @__PURE__ */ w(i, { children: g.description })]
101
+ }), a[8] = O, a[9] = g.description, a[10] = g.heading, a[11] = P) : P = a[11];
104
102
  let F;
105
- n[12] === h.body ? F = n[13] : (F = (h.body?.html || h.body?.json) && /* @__PURE__ */ w(ee, {
103
+ a[12] === g.body ? F = a[13] : (F = (g.body?.html || g.body?.json) && /* @__PURE__ */ w(ee, {
106
104
  className: "zv6sjd5",
107
105
  style: re,
108
- content: h.body
109
- }), n[12] = h.body, n[13] = F);
106
+ content: g.body
107
+ }), a[12] = g.body, a[13] = F);
110
108
  let I;
111
- n[14] !== O || n[15] !== l || n[16] !== h.action || n[17] !== d || n[18] !== i || n[19] !== u ? (I = h.action?.type === "form" && l && /* @__PURE__ */ w("div", {
109
+ a[14] !== O || a[15] !== l || a[16] !== g.action || a[17] !== f || a[18] !== s || a[19] !== d ? (I = g.action?.type === "form" && l && /* @__PURE__ */ w("div", {
112
110
  className: "zv6sjd7",
113
111
  children: /* @__PURE__ */ w(y, { children: /* @__PURE__ */ w(v, {
114
112
  client: l,
115
113
  children: /* @__PURE__ */ w(ne, {
116
- collection_id: h.action.collectionKey,
117
- formVariant: h.action.formVariant,
114
+ collection_id: g.action.collectionKey,
115
+ formVariant: g.action.formVariant,
118
116
  theme: ie,
119
117
  uiConfig: {
120
118
  hideFormHeading: !0,
121
119
  hideSectionHeadings: !0
122
120
  },
123
- successConfig: h.action.successRedirectUrl ? { action: {
121
+ successConfig: g.action.successRedirectUrl ? { action: {
124
122
  type: "redirect",
125
- value: h.action.successRedirectUrl
123
+ value: g.action.successRedirectUrl
126
124
  } } : void 0,
127
125
  submitButtonConfig: {
128
126
  show: !0,
129
- text: h.action.label || "Submit",
130
- styles: h.action.fullWidth && (h.action.formVariant ?? "default") === "default" ? "zv6sjdb" : ae[O]
127
+ text: g.action.label || "Submit",
128
+ styles: g.action.fullWidth && (g.action.formVariant ?? "default") === "default" ? "zv6sjdb" : ae[O]
131
129
  },
132
130
  workspace_id: l.workspace,
133
131
  containerStyles: "zv6sjd6",
134
- preview: u,
132
+ preview: d,
135
133
  onSuccess: () => {
136
- h.action?.type === "form" && d?.(i, {
134
+ g.action?.type === "form" && f?.(s, {
137
135
  action_type: "form_submit",
138
- collection_key: h.action.collectionKey
136
+ collection_key: g.action.collectionKey
139
137
  });
140
138
  }
141
139
  })
142
140
  }) })
143
- }), n[14] = O, n[15] = l, n[16] = h.action, n[17] = d, n[18] = i, n[19] = u, n[20] = I) : I = n[20];
141
+ }), a[14] = O, a[15] = l, a[16] = g.action, a[17] = f, a[18] = s, a[19] = d, a[20] = I) : I = a[20];
144
142
  let L;
145
- n[21] !== h.action || n[22] !== b || n[23] !== D || n[24] !== p ? (L = h.action?.type === "redirect" && /* @__PURE__ */ T(C, { children: [h.action.copyValue && /* @__PURE__ */ T("button", {
143
+ a[21] !== g.action || a[22] !== b || a[23] !== D || a[24] !== p ? (L = g.action?.type === "redirect" && /* @__PURE__ */ T(C, { children: [g.action.copyValue && /* @__PURE__ */ T("button", {
146
144
  type: "button",
147
145
  className: "zv6sjdd",
148
146
  onClick: D,
149
147
  children: [/* @__PURE__ */ w("span", {
150
148
  className: "zv6sjde",
151
- children: h.action.copyValue
149
+ children: g.action.copyValue
152
150
  }), w(b ? A : j, {
153
151
  size: 18,
154
152
  className: "zv6sjdf"
@@ -156,10 +154,10 @@ var Q = [
156
154
  }), /* @__PURE__ */ w(e, {
157
155
  className: "zv6sjdc",
158
156
  onClick: () => p?.(),
159
- children: h.action.label || "Button"
160
- })] }), n[21] = h.action, n[22] = b, n[23] = D, n[24] = p, n[25] = L) : L = n[25];
157
+ children: g.action.label || "Button"
158
+ })] }), a[21] = g.action, a[22] = b, a[23] = D, a[24] = p, a[25] = L) : L = a[25];
161
159
  let R;
162
- return n[26] !== M || n[27] !== N || n[28] !== P || n[29] !== F || n[30] !== I || n[31] !== L ? (R = /* @__PURE__ */ T("div", {
160
+ return a[26] !== M || a[27] !== N || a[28] !== P || a[29] !== F || a[30] !== I || a[31] !== L ? (R = /* @__PURE__ */ T("div", {
163
161
  className: M,
164
162
  style: N,
165
163
  children: [
@@ -168,7 +166,7 @@ var Q = [
168
166
  I,
169
167
  L
170
168
  ]
171
- }), n[26] = M, n[27] = N, n[28] = P, n[29] = F, n[30] = I, n[31] = L, n[32] = R) : R = n[32], R;
169
+ }), a[26] = M, a[27] = N, a[28] = P, a[29] = F, a[30] = I, a[31] = L, a[32] = R) : R = a[32], R;
172
170
  };
173
171
  //#endregion
174
172
  export { te as n };
@@ -0,0 +1,261 @@
1
+ import { M as e, d as t, f as n, l as r, m as i, p as a, u as o, w as s } from "./price-BUDkN5Me.js";
2
+ import { a as c, m as l, n as u, p as d, r as f, s as p, t as m } from "./themeMapping-DH_NoXK8-H-EHXbBt.js";
3
+ import { r as h } from "./inlineRteTheme-DFg69bqP.js";
4
+ import { c as g } from "react/compiler-runtime";
5
+ import { Suspense as _, createContext as v, lazy as y, useContext as b, useEffect as x, useRef as S } from "react";
6
+ import { jsx as C, jsxs as w } from "react/jsx-runtime";
7
+ import { useStore as T } from "@nanostores/react";
8
+ import E from "clsx";
9
+ import { createRuntimeFn as D } from "@vanilla-extract/recipes/createRuntimeFn";
10
+ import { IconX as O } from "@tabler/icons-react";
11
+ //#region ../../libraries/levocn/dist/theme/utils/googleFonts.js
12
+ var k = "wght@300;400;500;600;700;900", A = (e) => !!e && e !== "inherit" && !e.includes(",") && !e.includes("var("), j = (...e) => {
13
+ let t = Array.from(new Set(e.filter((e) => typeof e == "string").map((e) => e.trim()).filter(A)));
14
+ return t.length === 0 ? null : `https://fonts.googleapis.com/css2?${t.map((e) => `family=${e.replace(/ /g, "+")}:${k}`).join("&")}&display=swap`;
15
+ }, M = (e) => {
16
+ if (document.querySelector(`link[rel="preconnect"][href="${e}"]`)) return;
17
+ let t = document.createElement("link");
18
+ t.rel = "preconnect", t.href = e, t.crossOrigin = "anonymous", document.head.appendChild(t);
19
+ }, N = (e) => {
20
+ let t = `family=${e.replace(/ /g, "+")}:`;
21
+ return Array.from(document.querySelectorAll("link[rel=\"stylesheet\"][href*=\"fonts.googleapis.com\"]")).some((e) => e.href.includes(t));
22
+ }, P = (...e) => {
23
+ let t = g(5), n = e, r;
24
+ t[0] === n ? r = t[1] : (r = n.filter(F).map(I).join("|"), t[0] = n, t[1] = r);
25
+ let i = r, a, o;
26
+ t[2] === i ? (a = t[3], o = t[4]) : (a = () => {
27
+ let e = j(...(i ? i.split("|") : []).filter(L));
28
+ if (!e) return;
29
+ M("https://fonts.googleapis.com"), M("https://fonts.gstatic.com");
30
+ let t = document.createElement("link");
31
+ t.rel = "stylesheet", t.href = e, t.crossOrigin = "anonymous", t.setAttribute("data-levo-fonts", e), document.head.appendChild(t);
32
+ }, o = [i], t[2] = i, t[3] = a, t[4] = o), x(a, o);
33
+ };
34
+ function F(e) {
35
+ return typeof e == "string" && e.trim() !== "";
36
+ }
37
+ function I(e) {
38
+ return e.trim();
39
+ }
40
+ function L(e) {
41
+ return !N(e);
42
+ }
43
+ //#endregion
44
+ //#region ../../libraries/popups/dist/rolldown-runtime-Dy4uBu1J.js
45
+ var R = Object.defineProperty, z = (e, t) => {
46
+ let n = {};
47
+ for (var r in e) R(n, r, {
48
+ get: e[r],
49
+ enumerable: !0
50
+ });
51
+ return t || R(n, Symbol.toStringTag, { value: "Module" }), n;
52
+ }, B = D({
53
+ defaultClassName: "_1gklknd4",
54
+ variantClassNames: {
55
+ placement: {
56
+ popup: "_1gklknd5",
57
+ slide_in: "_1gklknd6"
58
+ },
59
+ position: {
60
+ "top-left": "_1gklknd7",
61
+ "top-right": "_1gklknd8",
62
+ "bottom-left": "_1gklknd9",
63
+ "bottom-right": "_1gklknda"
64
+ }
65
+ },
66
+ defaultVariants: { placement: "popup" },
67
+ compoundVariants: []
68
+ }), V = "_1gklkndb", H = "_1gklkndc", U = D({
69
+ defaultClassName: "_1gklknde",
70
+ variantClassNames: { size: {
71
+ small: "_1gklkndf",
72
+ medium: "_1gklkndg",
73
+ large: "_1gklkndh",
74
+ xlarge: "_1gklkndi"
75
+ } },
76
+ defaultVariants: { size: "medium" },
77
+ compoundVariants: []
78
+ }), W = "_1gklkndn", G = v(null), K = (e) => {
79
+ let t = g(8), { popup: n, callbacks: r, client: i, preview: a, children: o } = e, s;
80
+ t[0] !== r || t[1] !== i || t[2] !== n || t[3] !== a ? (s = {
81
+ popup: n,
82
+ callbacks: r,
83
+ client: i,
84
+ preview: a
85
+ }, t[0] = r, t[1] = i, t[2] = n, t[3] = a, t[4] = s) : s = t[4];
86
+ let c;
87
+ return t[5] !== o || t[6] !== s ? (c = /* @__PURE__ */ C(G.Provider, {
88
+ value: s,
89
+ children: o
90
+ }), t[5] = o, t[6] = s, t[7] = c) : c = t[7], c;
91
+ }, q = () => {
92
+ let e = b(G);
93
+ if (!e) throw Error("usePopupContext must be used within a PopupProvider");
94
+ return e;
95
+ }, J = () => b(G), Y = () => {
96
+ let e = g(2), t = J(), n;
97
+ return e[0] === t ? n = e[1] : (n = (e) => {
98
+ let n = e === void 0 ? "programmatic" : e;
99
+ if (!t || p().active_popup_id !== t.popup.id) return;
100
+ let r = d();
101
+ t.callbacks?.onPopupClose?.(t.popup, {
102
+ trigger_type: l(),
103
+ dismiss_reason: n,
104
+ time_shown_ms: r ? Date.now() - r : null
105
+ }), m(t.popup.id);
106
+ }, e[0] = t, e[1] = n), n;
107
+ }, X = "zv6sjd1", Z = "zv6sjd2 zv6sjd1", ee = "zv6sjd3", te = "zv6sjd8", ne = "zv6sjd9", re = "zv6sjda", Q = (e) => {
108
+ let t = g(6), n = J(), r = n?.callbacks?.onAction, i = Y(), { action: a } = e.content, o;
109
+ t[0] !== a || t[1] !== i || t[2] !== n || t[3] !== r || t[4] !== e ? (o = () => {
110
+ a?.type === "redirect" && (!n || n.preview || (r?.(e, {
111
+ action_type: "redirect",
112
+ redirect_url: a.url,
113
+ open_in_new_tab: !!a.openInNewTab
114
+ }), i("cta_click"), a.openInNewTab ? window.open(a.url, "_blank", "noopener,noreferrer") : window.location.href = a.url));
115
+ }, t[0] = a, t[1] = i, t[2] = n, t[3] = r, t[4] = e, t[5] = o) : o = t[5];
116
+ let s = o;
117
+ return a?.type === "redirect" && a.url ? s : null;
118
+ }, ie = (e) => (e ?? "16:9").replace(":", " / "), ae = (e) => {
119
+ if (e.content.coverImage?.srcset) return Object.entries(e.content.coverImage.srcset).filter(([e]) => e !== "path").map(([e, t]) => `${t} ${e}`).join(", ");
120
+ }, oe = (e) => {
121
+ let t = g(18), { popup: n, disableInteraction: r, children: i } = e, { content: a } = n, o = Q(n), s = !!o && !r, c;
122
+ t[0] !== a.coverImage || t[1] !== a.coverImageFocus || t[2] !== n ? (c = a.coverImage && /* @__PURE__ */ C("img", {
123
+ src: a.coverImage.location,
124
+ srcSet: ae(n),
125
+ alt: "",
126
+ className: "_1gklkndl",
127
+ style: a.coverImageFocus ? { objectPosition: a.coverImageFocus.replace("-", " ") } : void 0
128
+ }), t[0] = a.coverImage, t[1] = a.coverImageFocus, t[2] = n, t[3] = c) : c = t[3];
129
+ let l = c, u;
130
+ t[4] === a.coverImageRatio ? u = t[5] : (u = ie(a.coverImageRatio), t[4] = a.coverImageRatio, t[5] = u);
131
+ let d;
132
+ t[6] === u ? d = t[7] : (d = { aspectRatio: u }, t[6] = u, t[7] = d);
133
+ let f = d, p;
134
+ t[8] !== a.action || t[9] !== a.coverImage || t[10] !== s || t[11] !== l || t[12] !== f || t[13] !== o ? (p = a.coverImage && (s ? /* @__PURE__ */ C("button", {
135
+ type: "button",
136
+ className: E("_1gklkndj", "_1gklkndk"),
137
+ style: f,
138
+ onClick: o ?? void 0,
139
+ "aria-label": a.action?.type === "redirect" ? a.action.label : void 0,
140
+ children: l
141
+ }) : /* @__PURE__ */ C("div", {
142
+ className: "_1gklkndj",
143
+ style: f,
144
+ children: l
145
+ })), t[8] = a.action, t[9] = a.coverImage, t[10] = s, t[11] = l, t[12] = f, t[13] = o, t[14] = p) : p = t[14];
146
+ let m;
147
+ return t[15] !== i || t[16] !== p ? (m = /* @__PURE__ */ w("div", {
148
+ className: V,
149
+ children: [p, i]
150
+ }), t[15] = i, t[16] = p, t[17] = m) : m = t[17], m;
151
+ }, se = (t) => {
152
+ let n = g(19), r, i, a, o, c;
153
+ n[0] === t ? (r = n[1], i = n[2], a = n[3], o = n[4], c = n[5]) : ({children: r, popupTheme: i, siteTheme: o, style: c, ...a} = t, n[0] = t, n[1] = r, n[2] = i, n[3] = a, n[4] = o, n[5] = c);
154
+ let l;
155
+ n[6] !== i || n[7] !== o ? (l = i ?? (o ? f(o) : null), n[6] = i, n[7] = o, n[8] = l) : l = n[8];
156
+ let d = l;
157
+ P(d?.fonts?.heading, d?.fonts?.body);
158
+ let p;
159
+ n[9] === Symbol.for("react.memo_cache_sentinel") ? (p = E(e, h), n[9] = p) : p = n[9];
160
+ let m;
161
+ n[10] === d ? m = n[11] : (m = u(d), n[10] = d, n[11] = m);
162
+ let _;
163
+ n[12] !== c || n[13] !== m ? (_ = {
164
+ ...m,
165
+ ...c
166
+ }, n[12] = c, n[13] = m, n[14] = _) : _ = n[14];
167
+ let v;
168
+ return n[15] !== r || n[16] !== a || n[17] !== _ ? (v = /* @__PURE__ */ C(s, {
169
+ className: p,
170
+ cssReset: !0,
171
+ style: _,
172
+ ...a,
173
+ children: r
174
+ }), n[15] = r, n[16] = a, n[17] = _, n[18] = v) : v = n[18], v;
175
+ }, ce = y(() => import("./PopupBody-DWM55Zh5-DuOPsCAn.js").then((e) => e.n).then((e) => ({ default: e.PopupBody }))), le = (e) => {
176
+ let t = g(7), { size: n } = e, r = n ?? "medium", i;
177
+ t[0] === r ? i = t[1] : (i = U({ size: r }), t[0] = r, t[1] = i);
178
+ let a, o, s;
179
+ t[2] === Symbol.for("react.memo_cache_sentinel") ? (a = /* @__PURE__ */ C("div", { className: X }), o = /* @__PURE__ */ C("div", { className: Z }), s = /* @__PURE__ */ C("div", { className: ee }), t[2] = a, t[3] = o, t[4] = s) : (a = t[2], o = t[3], s = t[4]);
180
+ let c;
181
+ return t[5] === i ? c = t[6] : (c = /* @__PURE__ */ w("div", {
182
+ className: i,
183
+ children: [
184
+ a,
185
+ o,
186
+ s
187
+ ]
188
+ }), t[5] = i, t[6] = c), c;
189
+ }, $ = () => {
190
+ let e = g(8), { popup: t } = q(), n;
191
+ e[0] === t.content.size ? n = e[1] : (n = /* @__PURE__ */ C(le, { size: t.content.size }), e[0] = t.content.size, e[1] = n);
192
+ let r;
193
+ e[2] === Symbol.for("react.memo_cache_sentinel") ? (r = /* @__PURE__ */ C(ce, {}), e[2] = r) : r = e[2];
194
+ let i;
195
+ e[3] === n ? i = e[4] : (i = /* @__PURE__ */ C(_, {
196
+ fallback: n,
197
+ children: r
198
+ }), e[3] = n, e[4] = i);
199
+ let a;
200
+ return e[5] !== t || e[6] !== i ? (a = /* @__PURE__ */ C(oe, {
201
+ popup: t,
202
+ children: i
203
+ }), e[5] = t, e[6] = i, e[7] = a) : a = e[7], a;
204
+ }, ue = (e) => e.content.position || "top-right", de = (e) => {
205
+ switch (e) {
206
+ case "close-press": return "close_button";
207
+ case "outside-press": return "outside_click";
208
+ case "escape-key": return "escape_key";
209
+ default: return "programmatic";
210
+ }
211
+ }, fe = () => {
212
+ let e = g(32), { popup: s, callbacks: u } = q(), { placement: d, id: f } = s, p = T(c).active_popup_id === f, m = S(!1), h, _;
213
+ e[0] !== u || e[1] !== p || e[2] !== s ? (h = () => {
214
+ p && !m.current && (m.current = !0, u?.onPopupOpen?.(s, { trigger_type: l() })), p || (m.current = !1);
215
+ }, _ = [
216
+ p,
217
+ s,
218
+ u
219
+ ], e[0] = u, e[1] = p, e[2] = s, e[3] = h, e[4] = _) : (h = e[3], _ = e[4]), x(h, _);
220
+ let v = Y(), y, b, D, k, A, j, M, N;
221
+ if (e[5] !== v || e[6] !== p || e[7] !== d || e[8] !== s) {
222
+ let c = ue(s), l = d === "popup", u = d === "slide_in";
223
+ b = o, A = p, e[17] === v ? j = e[18] : (j = (e, t) => !e && v(de(t?.reason)), e[17] = v, e[18] = j), M = l, N = !l, y = n, e[19] === l ? D = e[20] : (D = l && /* @__PURE__ */ C(a, {}), e[19] = l, e[20] = D), k = l ? /* @__PURE__ */ C(i, {
224
+ className: H,
225
+ children: /* @__PURE__ */ w(t.Popup, {
226
+ className: B({ placement: d }),
227
+ children: [/* @__PURE__ */ C(r, {
228
+ variant: "ghost",
229
+ size: "icon-xs",
230
+ className: W,
231
+ "aria-label": "Close popup",
232
+ children: /* @__PURE__ */ C(O, { size: 16 })
233
+ }), /* @__PURE__ */ C($, {})]
234
+ })
235
+ }) : /* @__PURE__ */ w(t.Popup, {
236
+ className: E(B({
237
+ placement: d,
238
+ position: c
239
+ }), u && "_1gklkndd"),
240
+ children: [/* @__PURE__ */ C(r, {
241
+ variant: "ghost",
242
+ size: "icon-xs",
243
+ className: W,
244
+ "aria-label": "Close popup",
245
+ children: /* @__PURE__ */ C(O, { size: 16 })
246
+ }), /* @__PURE__ */ C($, {})]
247
+ }), e[5] = v, e[6] = p, e[7] = d, e[8] = s, e[9] = y, e[10] = b, e[11] = D, e[12] = k, e[13] = A, e[14] = j, e[15] = M, e[16] = N;
248
+ } else y = e[9], b = e[10], D = e[11], k = e[12], A = e[13], j = e[14], M = e[15], N = e[16];
249
+ let P;
250
+ e[21] !== y || e[22] !== D || e[23] !== k ? (P = /* @__PURE__ */ w(y, { children: [D, k] }), e[21] = y, e[22] = D, e[23] = k, e[24] = P) : P = e[24];
251
+ let F;
252
+ return e[25] !== b || e[26] !== A || e[27] !== j || e[28] !== M || e[29] !== N || e[30] !== P ? (F = /* @__PURE__ */ C(b, {
253
+ open: A,
254
+ onOpenChange: j,
255
+ modal: M,
256
+ disablePointerDismissal: N,
257
+ children: P
258
+ }), e[25] = b, e[26] = A, e[27] = j, e[28] = M, e[29] = N, e[30] = P, e[31] = F) : F = e[31], F;
259
+ };
260
+ //#endregion
261
+ export { Q as a, fe as c, ne as i, re as l, te as n, U as o, q as r, se as s, K as t, z as u };
@@ -0,0 +1,208 @@
1
+ import { c as e, f as t, l as n } from "./themeMapping-DH_NoXK8-H-EHXbBt.js";
2
+ import { c as r, r as i, s as a, t as o, u as s } from "./PopupDialog-DwAAJ8JS-9xm5jrXW.js";
3
+ import { c } from "react/compiler-runtime";
4
+ import { $activity as l, $isIdentityContextReady as u, $pageLifecycle as d, $scrollBehavior as f, $session as p, getTabCount as m } from "@levo-so/insights/stores";
5
+ import { useLevo as h, useLevoInsights as g } from "@levo-so/react";
6
+ import { useEffect as _, useRef as v } from "react";
7
+ import { Fragment as y, jsx as b } from "react/jsx-runtime";
8
+ import { useStore as x } from "@nanostores/react";
9
+ //#region ../../libraries/popups/dist/PopupRenderer-BVtV4b9I.js
10
+ var S = 3e4, C = 5e3, w = 5e3, T = 100, E = .5, D = 5, O = (e) => {
11
+ if (typeof document > "u") return () => {};
12
+ let t = !1, n = Date.now(), r = [], i = 0, a = null, o = () => Date.now() - n >= S, s = () => {
13
+ t || (t = !0, c(), e());
14
+ }, c = () => {
15
+ a &&= (clearTimeout(a), null);
16
+ }, l = () => {
17
+ if (r.length < 2) return 0;
18
+ let e = r[0], t = r[r.length - 1], n = t.t - e.t;
19
+ return n === 0 ? 0 : (e.y - t.y) / n;
20
+ }, u = () => r.reduce((e, t) => t.y > e ? t.y : e, 0), f = (e) => {
21
+ r.push({
22
+ y: e.clientY,
23
+ t: Date.now()
24
+ }), r.length > D && r.shift();
25
+ }, p = (e) => {
26
+ t || !o() || e.clientY > 0 || u() < T || Date.now() - i < w || l() < E || (c(), a = setTimeout(s, C));
27
+ }, m = () => {
28
+ c();
29
+ }, h = () => {
30
+ i = Date.now();
31
+ }, g = d.listen((e) => {
32
+ o() && (e === "hidden" || e === "frozen") && s();
33
+ });
34
+ return document.addEventListener("mousemove", f, { passive: !0 }), document.addEventListener("mouseleave", p), document.addEventListener("mouseenter", m), window.addEventListener("scroll", h, { passive: !0 }), () => {
35
+ c(), document.removeEventListener("mousemove", f), document.removeEventListener("mouseleave", p), document.removeEventListener("mouseenter", m), window.removeEventListener("scroll", h), g();
36
+ };
37
+ }, k = (e, t) => {
38
+ if (!e) return null;
39
+ let r = setTimeout(() => n(t, { trigger_type: "time_on_page" }), e);
40
+ return () => clearTimeout(r);
41
+ }, A = (e, t) => {
42
+ if (e === void 0) return null;
43
+ let r = !1;
44
+ return f.listen((i) => {
45
+ r || i.depth >= e && (r = !0, n(t, { trigger_type: "scroll_depth" }));
46
+ });
47
+ }, j = (e) => {
48
+ let t = !1;
49
+ return l.listen((r) => {
50
+ t || r.status === "idle" && (t = !0, n(e, { trigger_type: "inactivity" }));
51
+ });
52
+ }, M = (e, t) => {
53
+ let r = c(11), i = t === void 0 ? !0 : t, { triggers: a, id: o } = e, s = x(u), l;
54
+ r[0] === Symbol.for("react.memo_cache_sentinel") ? (l = [], r[0] = l) : l = r[0];
55
+ let d = v(l), f;
56
+ r[1] !== i || r[2] !== s || r[3] !== e || r[4] !== a ? (f = () => {
57
+ if (!i || !s || !a) return;
58
+ let t = [];
59
+ if (a.time_on_page.enabled) {
60
+ let n = k(a.time_on_page.delay_ms, e);
61
+ n && t.push(n);
62
+ }
63
+ if (a.scroll_depth.enabled) {
64
+ let n = A(a.scroll_depth.percent, e);
65
+ n && t.push(n);
66
+ }
67
+ return a.exit_intent.enabled && t.push(O(() => n(e, { trigger_type: "exit_intent" }))), a.inactivity.enabled && t.push(j(e)), d.current = t, () => {
68
+ t.forEach(N), d.current = [];
69
+ };
70
+ }, r[1] = i, r[2] = s, r[3] = e, r[4] = a, r[5] = f) : f = r[5];
71
+ let p;
72
+ r[6] !== i || r[7] !== s || r[8] !== o || r[9] !== a ? (p = [
73
+ i,
74
+ s,
75
+ o,
76
+ a
77
+ ], r[6] = i, r[7] = s, r[8] = o, r[9] = a, r[10] = p) : p = r[10], _(f, p);
78
+ };
79
+ function N(e) {
80
+ return e();
81
+ }
82
+ var P = (e, t) => {
83
+ switch (e.match_type) {
84
+ case "is_all_pages": return !0;
85
+ case "is": return e.page_id ? t.pageId === e.page_id ? e.value == null || e.value === t.path : !1 : e.value != null && e.value === t.path;
86
+ case "contains": return e.value != null && t.path.includes(e.value);
87
+ case "begins_with": return e.value != null && t.path.startsWith(e.value);
88
+ default: return !1;
89
+ }
90
+ }, F = (e, t) => {
91
+ switch (e.match_type) {
92
+ case "exact": return t === e.value;
93
+ case "contains": return t.includes(e.value);
94
+ case "domain": try {
95
+ let n = new URL(t).hostname, r = e.value.toLowerCase();
96
+ return n === r || n.endsWith(`.${r}`);
97
+ } catch {
98
+ return !1;
99
+ }
100
+ default: return !1;
101
+ }
102
+ }, I = (e, t, n) => {
103
+ let r = e.pages?.exclude ?? [];
104
+ if (r.length > 0 && r.some((e) => P(e, t))) return !1;
105
+ let i = e.pages?.include ?? [];
106
+ if (i.length > 0 && !i.some((e) => P(e, t))) return !1;
107
+ let a = e.referrer?.include ?? [];
108
+ if (a.length > 0 && (!n || !a.some((e) => F(e, n)))) return !1;
109
+ let o = e.referrer?.exclude ?? [];
110
+ return !(o.length > 0 && n && o.some((e) => F(e, n)));
111
+ }, L = (e) => {
112
+ let t = c(4), { pageId: n } = e, { popup: a } = i(), o;
113
+ bb0: {
114
+ if (!a.target) {
115
+ o = !0;
116
+ break bb0;
117
+ }
118
+ if (typeof window > "u") {
119
+ o = !1;
120
+ break bb0;
121
+ }
122
+ let e;
123
+ if (t[0] !== n || t[1] !== a.target) {
124
+ let r = p.get().identity?.referrer?.raw || document.referrer || null, i = new URL(window.location.href, window.location.origin);
125
+ e = I(a.target, {
126
+ pageId: n,
127
+ path: i.pathname
128
+ }, r), t[0] = n, t[1] = a.target, t[2] = e;
129
+ } else e = t[2];
130
+ o = e;
131
+ }
132
+ let s = o;
133
+ if (M(a, s), !s) return null;
134
+ let l;
135
+ return t[3] === Symbol.for("react.memo_cache_sentinel") ? (l = /* @__PURE__ */ b(r, {}), t[3] = l) : l = t[3], l;
136
+ }, R = () => {
137
+ let e = f.get(), t = l.get();
138
+ return {
139
+ trigger_scroll_depth: e.depth,
140
+ trigger_scroll_speed: e.speedCategory,
141
+ trigger_scroll_direction: e.direction,
142
+ trigger_activity_status: t.status,
143
+ trigger_activity_seconds: t.seconds,
144
+ trigger_tab_count: m()
145
+ };
146
+ }, z = (n) => {
147
+ let r = c(18), { popups: i, pageId: s } = n, l = g(), u = h(), d, f;
148
+ r[0] === i ? (d = r[1], f = r[2]) : (d = () => {
149
+ t(i), e(!1);
150
+ }, f = [i], r[0] = i, r[1] = d, r[2] = f), _(d, f);
151
+ let p;
152
+ r[3] === l ? p = r[4] : (p = (e, t) => {
153
+ !l || typeof l.track != "function" || l?.track(e, t);
154
+ }, r[3] = l, r[4] = p);
155
+ let m = p, v = B, x;
156
+ r[5] === m ? x = r[6] : (x = {
157
+ onPopupOpen: (e, t) => {
158
+ m("popup.view", {
159
+ ...v(e),
160
+ trigger_type: t.trigger_type,
161
+ language: e.language,
162
+ ...R()
163
+ });
164
+ },
165
+ onPopupClose: (e, t) => {
166
+ m("popup.close", {
167
+ ...v(e),
168
+ trigger_type: t.trigger_type,
169
+ dismiss_reason: t.dismiss_reason,
170
+ time_shown_ms: t.time_shown_ms
171
+ });
172
+ },
173
+ onAction: (e, t) => {
174
+ m("popup.action", {
175
+ ...v(e),
176
+ ...t
177
+ });
178
+ }
179
+ }, r[5] = m, r[6] = x);
180
+ let S = x, C;
181
+ if (r[7] !== S || r[8] !== u || r[9] !== s || r[10] !== i) {
182
+ let e;
183
+ r[12] !== S || r[13] !== u || r[14] !== s ? (e = (e) => /* @__PURE__ */ b(a, {
184
+ popupTheme: e.theme,
185
+ siteTheme: e.site?.theme,
186
+ children: /* @__PURE__ */ b(o, {
187
+ popup: e,
188
+ callbacks: S,
189
+ client: u,
190
+ children: /* @__PURE__ */ b(L, { pageId: s })
191
+ })
192
+ }, e.id), r[12] = S, r[13] = u, r[14] = s, r[15] = e) : e = r[15], C = i.map(e), r[7] = S, r[8] = u, r[9] = s, r[10] = i, r[11] = C;
193
+ } else C = r[11];
194
+ let w;
195
+ return r[16] === C ? w = r[17] : (w = /* @__PURE__ */ b(y, { children: C }), r[16] = C, r[17] = w), w;
196
+ };
197
+ function B(e) {
198
+ return {
199
+ resource: "builder.popup",
200
+ identifier: e.id,
201
+ popup_title: e.title,
202
+ placement: e.placement,
203
+ popup_action_kind: e.content.action?.type || "none"
204
+ };
205
+ }
206
+ var V = /* @__PURE__ */ s({ PopupRenderer: () => z });
207
+ //#endregion
208
+ export { V as t };