@levo-so/site-runtime 0.3.20 → 0.3.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BillingStep-ByiYjJ0S.js +251 -0
- package/BookingCard-DdwLHVGw.js +816 -0
- package/CollectionLabel-CmUFfc_7.js +35 -0
- package/DateTimeWidget-Bk2tk_CT.js +254 -0
- package/{KBChatWidget-BMuZ-VI3.js → KBChatWidget-BXRRgelS.js} +1 -1
- package/{PhoneWidget-DPECohGT.js → PhoneWidget-FWE3jD_L.js} +3 -5
- package/{Popover-Cr0-X_ch.js → Popover-MSrVDAzg.js} +7 -7
- package/PopupBody-DWM55Zh5-B3ysApDM.js +158 -0
- package/PopupDialog-DwAAJ8JS-DkxjZaJL.js +260 -0
- package/PopupRenderer-BVtV4b9I-Dot4Syse.js +207 -0
- package/{RichTextWidget-C1QECDcg.js → RichTextWidget-KnIKESAD.js} +134 -135
- package/{RteThemeProvider-CMbSaFRQ.js → RteThemeProvider-DtTXGcCT.js} +2 -3
- package/Sonner-BsE4Y_t4.js +21 -0
- package/blog-content.js +8 -9
- package/dist-BVFCdirT.js +4471 -0
- package/dist-DEXGyFeH.js +376 -0
- package/index.js +12 -13
- package/{themeVars.cssm-ByhhC2Jm.js → inlineBaseTheme-DcNdMEYp.js} +35 -5
- package/{inlineCollectionTheme-CWcMCUti.js → inlineCollectionTheme-DjXuH3bK.js} +1 -1
- package/{inlineRteTheme-CRPtkNXy.js → inlineRteTheme-BYGIJM7P.js} +1 -1
- package/{kbChat-DtZ4vuCZ.js → kbChat-eFsau7hG.js} +2 -2
- package/package.json +23 -23
- package/{pillChrome-CEpWGNZB.js → pillChrome-Dy3ApFI5.js} +5 -5
- package/popups.js +1 -1
- package/{react-Cj_U6VZQ.js → react-CENbCy5d.js} +6 -5
- package/script.esm-uVCZU25S.js +62 -0
- package/start.js +1 -1
- package/styles.css +1 -1
- package/theme.cssm-iXnQwMCp.js +238 -0
- package/CollectionField-DCAXOmBN.js +0 -270
- package/CollectionInput-BJ__qcbk.js +0 -147
- package/DateTimeWidget-I0LvR-tO.js +0 -255
- package/Dialog-D-vRkU9N.js +0 -130
- package/LevoProvider-BkbKrvrI.js +0 -20
- package/PopupBody-BI-MJqmd-a-l3CaKZ.js +0 -159
- package/PopupRenderer-D66Gx63H-DpcNpbtU.js +0 -388
- package/ThemeProvider-DlFehjh1.js +0 -116
- package/Tooltip-BKQ5rIDh.js +0 -67
- package/VerifyButton-D0cj9Z5Q.js +0 -192
- package/createThemeExtension-4AUn51iJ.js +0 -15
- package/dist-IxiGbP-3.js +0 -3783
- package/dist-_lwl0kZw.js +0 -79
- package/inlineBaseTheme-BB9e6h5f.js +0 -9
- package/popupState-JmpeKzgM-D_77LiAa.js +0 -229
- package/react-B9yvlbH0.js +0 -74
- package/theme.cssm-DUzmx76l.js +0 -4
- package/usePopupRedirect-CAAdcpaW-BDa44PXN.js +0 -82
- /package/{content.cssm-XdMsTGIB.js → content.cssm-D_LSloGW.js} +0 -0
- /package/{es-CGQflL9T.js → es-CK20DkgT.js} +0 -0
- /package/{rolldown-runtime-CAFD8bLK.js → rolldown-runtime-Dy4uBu1J.js} +0 -0
- /package/{routes-CyKmkoRM.js → routes-DO1BLfh9.js} +0 -0
- /package/{rteTheme.cssm-W4gTOijw.js → rteTheme.cssm-BRxusHY4.js} +0 -0
- /package/{script.esm-wR2d7rrv.js → script.esm-D4nvz3-k.js} +0 -0
package/dist-DEXGyFeH.js
ADDED
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
|
|
2
|
+
import { a as t, t as n } from "./inlineBaseTheme-DcNdMEYp.js";
|
|
3
|
+
import { c as r } from "react/compiler-runtime";
|
|
4
|
+
import { Suspense as i, lazy as a, useCallback as o, useEffect as s, useRef as c, useState as l, useSyncExternalStore as u } from "react";
|
|
5
|
+
import { jsx as d } from "react/jsx-runtime";
|
|
6
|
+
import { $isIdentityContextReady as f } from "@levo-so/insights/stores";
|
|
7
|
+
//#region ../../node_modules/.pnpm/nanostores@0.11.4/node_modules/nanostores/clean-stores/index.js
|
|
8
|
+
var p = Symbol("clean"), m = [], h = 0, g = 4, _ = 0, v = (e) => {
|
|
9
|
+
let t = [], n = {
|
|
10
|
+
get() {
|
|
11
|
+
return n.lc || n.listen(() => {})(), n.value;
|
|
12
|
+
},
|
|
13
|
+
lc: 0,
|
|
14
|
+
listen(e) {
|
|
15
|
+
return n.lc = t.push(e), () => {
|
|
16
|
+
for (let t = h + g; t < m.length;) m[t] === e ? m.splice(t, g) : t += g;
|
|
17
|
+
let r = t.indexOf(e);
|
|
18
|
+
~r && (t.splice(r, 1), --n.lc || n.off());
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
notify(e, r) {
|
|
22
|
+
_++;
|
|
23
|
+
let i = !m.length;
|
|
24
|
+
for (let i of t) m.push(i, n.value, e, r);
|
|
25
|
+
if (i) {
|
|
26
|
+
for (h = 0; h < m.length; h += g) m[h](m[h + 1], m[h + 2], m[h + 3]);
|
|
27
|
+
m.length = 0;
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
off() {},
|
|
31
|
+
set(e) {
|
|
32
|
+
let t = n.value;
|
|
33
|
+
t !== e && (n.value = e, n.notify(t));
|
|
34
|
+
},
|
|
35
|
+
subscribe(e) {
|
|
36
|
+
let t = n.listen(e);
|
|
37
|
+
return e(n.value), t;
|
|
38
|
+
},
|
|
39
|
+
value: e
|
|
40
|
+
};
|
|
41
|
+
return process.env.NODE_ENV !== "production" && (n[p] = () => {
|
|
42
|
+
t = [], n.lc = 0, n.off();
|
|
43
|
+
}), n;
|
|
44
|
+
}, y = 5, b = 6, x = 10, ee = (e, t, n, r) => (e.events = e.events || {}, e.events[n + x] || (e.events[n + x] = r((t) => {
|
|
45
|
+
e.events[n].reduceRight((e, t) => (t(e), e), {
|
|
46
|
+
shared: {},
|
|
47
|
+
...t
|
|
48
|
+
});
|
|
49
|
+
})), e.events[n] = e.events[n] || [], e.events[n].push(t), () => {
|
|
50
|
+
let r = e.events[n], i = r.indexOf(t);
|
|
51
|
+
r.splice(i, 1), r.length || (delete e.events[n], e.events[n + x](), delete e.events[n + x]);
|
|
52
|
+
}), te = 1e3, S = (e, t) => ee(e, (n) => {
|
|
53
|
+
let r = t(n);
|
|
54
|
+
r && e.events[b].push(r);
|
|
55
|
+
}, y, (t) => {
|
|
56
|
+
let n = e.listen;
|
|
57
|
+
e.listen = (...r) => (!e.lc && !e.active && (e.active = !0, t()), n(...r));
|
|
58
|
+
let r = e.off;
|
|
59
|
+
if (e.events[b] = [], e.off = () => {
|
|
60
|
+
r(), setTimeout(() => {
|
|
61
|
+
if (e.active && !e.lc) {
|
|
62
|
+
e.active = !1;
|
|
63
|
+
for (let t of e.events[b]) t();
|
|
64
|
+
e.events[b] = [];
|
|
65
|
+
}
|
|
66
|
+
}, te);
|
|
67
|
+
}, process.env.NODE_ENV !== "production") {
|
|
68
|
+
let t = e[p];
|
|
69
|
+
e[p] = () => {
|
|
70
|
+
for (let t of e.events[b]) t();
|
|
71
|
+
e.events[b] = [], e.active = !1, t();
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
return () => {
|
|
75
|
+
e.listen = n, e.off = r;
|
|
76
|
+
};
|
|
77
|
+
}), ne = (e, t, n) => {
|
|
78
|
+
Array.isArray(e) || (e = [e]);
|
|
79
|
+
let r, i, a = () => {
|
|
80
|
+
if (i === _) return;
|
|
81
|
+
i = _;
|
|
82
|
+
let n = e.map((e) => e.get());
|
|
83
|
+
if (!r || n.some((e, t) => e !== r[t])) {
|
|
84
|
+
r = n;
|
|
85
|
+
let e = t(...n);
|
|
86
|
+
e && e.then && e.t ? e.then((e) => {
|
|
87
|
+
r === n && o.set(e);
|
|
88
|
+
}) : (o.set(e), i = _);
|
|
89
|
+
}
|
|
90
|
+
}, o = v(void 0), s = o.get;
|
|
91
|
+
o.get = () => (a(), s());
|
|
92
|
+
let c, l = n ? () => {
|
|
93
|
+
clearTimeout(c), c = setTimeout(a);
|
|
94
|
+
} : a;
|
|
95
|
+
return S(o, () => {
|
|
96
|
+
let t = e.map((e) => e.listen(l));
|
|
97
|
+
return a(), () => {
|
|
98
|
+
for (let e of t) e();
|
|
99
|
+
};
|
|
100
|
+
}), o;
|
|
101
|
+
}, C = (e, t) => ne(e, t);
|
|
102
|
+
//#endregion
|
|
103
|
+
//#region ../../node_modules/.pnpm/nanostores@0.11.4/node_modules/nanostores/listen-keys/index.js
|
|
104
|
+
function re(e, t, n) {
|
|
105
|
+
let r = new Set(t).add(void 0);
|
|
106
|
+
return e.listen((e, t, i) => {
|
|
107
|
+
r.has(i) && n(e, t, i);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region ../../node_modules/.pnpm/@nanostores+persistent@1.3.3_nanostores@0.11.4/node_modules/@nanostores/persistent/index.js
|
|
112
|
+
var w = (e) => e, T = {}, E = {
|
|
113
|
+
addEventListener() {},
|
|
114
|
+
removeEventListener() {}
|
|
115
|
+
};
|
|
116
|
+
function ie() {
|
|
117
|
+
try {
|
|
118
|
+
return typeof localStorage < "u";
|
|
119
|
+
} catch {
|
|
120
|
+
return !1;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
ie() && (T = localStorage), typeof window < "u" && (E = {
|
|
124
|
+
addEventListener(e, t, n) {
|
|
125
|
+
window.addEventListener("storage", t), window.addEventListener("pageshow", n);
|
|
126
|
+
},
|
|
127
|
+
removeEventListener(e, t, n) {
|
|
128
|
+
window.removeEventListener("storage", t), window.removeEventListener("pageshow", n);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
function D(e, t = void 0, n = {}) {
|
|
132
|
+
let r = n.encode || w, i = n.decode || w, a = T[e], o = v(e in T ? i(a) : t), s = o.set;
|
|
133
|
+
o.set = (t) => {
|
|
134
|
+
a = r(t), a === void 0 ? delete T[e] : T[e] = a, s(t);
|
|
135
|
+
};
|
|
136
|
+
function c(n) {
|
|
137
|
+
n.key === e ? n.newValue === null ? s(t) : s(i(n.newValue)) : T[e] || s(t);
|
|
138
|
+
}
|
|
139
|
+
function l() {
|
|
140
|
+
a !== T[e] && o.set(e in T ? i(T[e]) : t);
|
|
141
|
+
}
|
|
142
|
+
return S(o, () => {
|
|
143
|
+
if (l(), n.listen !== !1) return E.addEventListener(e, c, l), () => {
|
|
144
|
+
E.removeEventListener(e, c, l);
|
|
145
|
+
};
|
|
146
|
+
}), o;
|
|
147
|
+
}
|
|
148
|
+
//#endregion
|
|
149
|
+
//#region ../../libraries/popups/dist/themeMapping-DH_NoXK8.js
|
|
150
|
+
var O = 6e4, k = "lv_popups_session", A = {
|
|
151
|
+
active_popup_id: null,
|
|
152
|
+
shown_popup_ids: [],
|
|
153
|
+
last_closed_at: null
|
|
154
|
+
}, j = D("lv_popups_state", {}, {
|
|
155
|
+
encode: JSON.stringify,
|
|
156
|
+
decode: JSON.parse
|
|
157
|
+
}), ae = (e) => {
|
|
158
|
+
if (!e) return A;
|
|
159
|
+
try {
|
|
160
|
+
return {
|
|
161
|
+
...JSON.parse(e),
|
|
162
|
+
active_popup_id: null
|
|
163
|
+
};
|
|
164
|
+
} catch {
|
|
165
|
+
return A;
|
|
166
|
+
}
|
|
167
|
+
}, M = v((() => {
|
|
168
|
+
if (typeof sessionStorage > "u") return A;
|
|
169
|
+
try {
|
|
170
|
+
return ae(sessionStorage.getItem(k));
|
|
171
|
+
} catch {
|
|
172
|
+
return A;
|
|
173
|
+
}
|
|
174
|
+
})()), N = M.set;
|
|
175
|
+
M.set = (e) => {
|
|
176
|
+
N(e);
|
|
177
|
+
try {
|
|
178
|
+
sessionStorage.setItem(k, JSON.stringify(e));
|
|
179
|
+
} catch {}
|
|
180
|
+
};
|
|
181
|
+
var P = C([M, j], (e, t) => ({
|
|
182
|
+
active_popup_id: e.active_popup_id,
|
|
183
|
+
shown_popup_ids: e.shown_popup_ids,
|
|
184
|
+
last_closed_at: e.last_closed_at,
|
|
185
|
+
previous_popups: t
|
|
186
|
+
})), F = v([]), I = (e) => {
|
|
187
|
+
F.set(e);
|
|
188
|
+
}, L = v(!0), R = (e) => {
|
|
189
|
+
L.set(e);
|
|
190
|
+
}, z = () => P.get(), oe = (e, t) => e.includes(t) ? e : [...e, t], B = "manual", se = () => B, V = null, ce = () => V, H = [], U = null, W = () => {
|
|
191
|
+
if (U) return;
|
|
192
|
+
let { last_closed_at: e } = M.get();
|
|
193
|
+
if (!e) return;
|
|
194
|
+
let t = O - (Date.now() - e);
|
|
195
|
+
if (t <= 0) {
|
|
196
|
+
G();
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
U = setTimeout(() => {
|
|
200
|
+
U = null, G();
|
|
201
|
+
}, t);
|
|
202
|
+
}, G = () => {
|
|
203
|
+
let e = M.get();
|
|
204
|
+
if (!e.active_popup_id) {
|
|
205
|
+
if (e.last_closed_at && Date.now() - e.last_closed_at < 6e4) {
|
|
206
|
+
W();
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
for (; H.length > 0;) {
|
|
210
|
+
let e = H.shift();
|
|
211
|
+
if (q(e.popup, { trigger_type: e.trigger_type })) return;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
}, le = (e, t) => {
|
|
215
|
+
H.some((t) => t.popup.id === e.id) || (H.push({
|
|
216
|
+
popup: e,
|
|
217
|
+
trigger_type: t
|
|
218
|
+
}), W());
|
|
219
|
+
}, K = (e, t) => {
|
|
220
|
+
let n = z();
|
|
221
|
+
if (t?.type === "always") return !n.shown_popup_ids.includes(e);
|
|
222
|
+
let r = n.previous_popups[e];
|
|
223
|
+
return r ? !t || t.type === "once" ? !1 : t.type === "interval" && t.interval_ms ? Date.now() - r.triggered_at >= t.interval_ms : !0 : !0;
|
|
224
|
+
}, q = (e, t = {}) => {
|
|
225
|
+
let { force: n = !1, trigger_type: r = "manual" } = t, i = e.id, a = e.settings?.display_frequency, o = M.get();
|
|
226
|
+
return o.active_popup_id === i ? !0 : !n && (o.active_popup_id || o.last_closed_at && Date.now() - o.last_closed_at < 6e4 || !K(i, a)) ? !1 : (U &&= (clearTimeout(U), null), B = r, V = Date.now(), M.set({
|
|
227
|
+
active_popup_id: i,
|
|
228
|
+
shown_popup_ids: oe(o.shown_popup_ids, i),
|
|
229
|
+
last_closed_at: o.last_closed_at
|
|
230
|
+
}), a?.type !== "always" && j.set({
|
|
231
|
+
...j.get(),
|
|
232
|
+
[i]: { triggered_at: Date.now() }
|
|
233
|
+
}), !0);
|
|
234
|
+
}, ue = (e, t = {}) => {
|
|
235
|
+
let { trigger_type: n = "manual" } = t;
|
|
236
|
+
return q(e, { trigger_type: n }) ? !0 : (K(e.id, e.settings?.display_frequency) && le(e, n), !1);
|
|
237
|
+
}, J = (e) => {
|
|
238
|
+
let t = M.get();
|
|
239
|
+
t.active_popup_id === e && (B = "manual", V = null, M.set({
|
|
240
|
+
...t,
|
|
241
|
+
active_popup_id: null,
|
|
242
|
+
last_closed_at: Date.now()
|
|
243
|
+
}), setTimeout(G, 0));
|
|
244
|
+
}, Y = (e) => {
|
|
245
|
+
if (e == null) return;
|
|
246
|
+
if (typeof e == "string") return e;
|
|
247
|
+
if (typeof e != "object") return;
|
|
248
|
+
let t = e;
|
|
249
|
+
if (typeof t.l != "number" || typeof t.c != "number" || typeof t.h != "number") return;
|
|
250
|
+
let n = (e) => Math.round(e * 1e4) / 1e4, r = n(t.l), i = n(t.c), a = n(t.h), o = typeof t.alpha == "number" ? n(t.alpha) : 1;
|
|
251
|
+
return o < 1 ? `oklch(${r} ${i} ${a} / ${o})` : `oklch(${r} ${i} ${a})`;
|
|
252
|
+
}, de = (e) => {
|
|
253
|
+
let t = e.colors;
|
|
254
|
+
return !t || typeof t != "object" ? !1 : Object.values(t).some((e) => e != null);
|
|
255
|
+
}, fe = (e) => {
|
|
256
|
+
if (!e || !de(e)) return null;
|
|
257
|
+
let t = e.colors, n = t?.brand ?? {}, r = e.fonts, i = e.sizes;
|
|
258
|
+
return {
|
|
259
|
+
colors: {
|
|
260
|
+
brand: {
|
|
261
|
+
main: Y(n.main) ?? "",
|
|
262
|
+
foreground: Y(n.foreground) ?? ""
|
|
263
|
+
},
|
|
264
|
+
text1: Y(t.text1) ?? "",
|
|
265
|
+
text2: Y(t.text2) ?? "",
|
|
266
|
+
page: Y(t.page) ?? "",
|
|
267
|
+
border: Y(t.border) ?? ""
|
|
268
|
+
},
|
|
269
|
+
fonts: {
|
|
270
|
+
heading: r?.heading ?? "inherit",
|
|
271
|
+
body: r?.body ?? "inherit"
|
|
272
|
+
},
|
|
273
|
+
sizes: { radius: i?.radius ?? "4px" }
|
|
274
|
+
};
|
|
275
|
+
}, pe = (e) => {
|
|
276
|
+
if (e) return {
|
|
277
|
+
colors: {
|
|
278
|
+
primary: e.colors?.brand?.main,
|
|
279
|
+
primaryForeground: e.colors?.brand?.foreground,
|
|
280
|
+
foreground: e.colors?.text1,
|
|
281
|
+
text: e.colors?.text1,
|
|
282
|
+
heading: e.colors?.text1,
|
|
283
|
+
mutedForeground: e.colors?.text2,
|
|
284
|
+
background: e.colors?.page,
|
|
285
|
+
card: e.colors?.page,
|
|
286
|
+
cardForeground: e.colors?.text1,
|
|
287
|
+
popover: e.colors?.page,
|
|
288
|
+
popoverForeground: e.colors?.text1,
|
|
289
|
+
border: e.colors?.border,
|
|
290
|
+
input: e.colors?.page,
|
|
291
|
+
inputForeground: e.colors?.text1
|
|
292
|
+
},
|
|
293
|
+
fonts: e.fonts,
|
|
294
|
+
radius: e.sizes?.radius
|
|
295
|
+
};
|
|
296
|
+
}, me = (e) => n(pe(e)), X = (e, t) => (n) => {
|
|
297
|
+
e.current !== n && (e.current = n, t());
|
|
298
|
+
};
|
|
299
|
+
function Z(e, { keys: t, deps: n = [e, t] } = {}) {
|
|
300
|
+
let r = c();
|
|
301
|
+
r.current = e.get();
|
|
302
|
+
let i = o((n) => (X(r, n)(e.value), t?.length > 0 ? re(e, t, X(r, n)) : e.listen(X(r, n))), n), a = () => r.current;
|
|
303
|
+
return u(i, a, a);
|
|
304
|
+
}
|
|
305
|
+
//#endregion
|
|
306
|
+
//#region ../../libraries/popups/dist/index.js
|
|
307
|
+
var he = /* @__PURE__ */ e({
|
|
308
|
+
PopupLoader: () => _e,
|
|
309
|
+
fetchActivePopups: () => Q,
|
|
310
|
+
usePopup: () => $
|
|
311
|
+
}), Q = async (e, t) => {
|
|
312
|
+
let n = {};
|
|
313
|
+
return t?.site_id && (n.site_id = t.site_id), t?.locale && (n.locale = t.locale), t?.country && (n.country = t.country), (await e.url("/v1/studio/popup/list-active").query(n).get().json())?.content?.data ?? [];
|
|
314
|
+
}, ge = a(() => import("./PopupRenderer-BVtV4b9I-Dot4Syse.js").then((e) => e.t).then((e) => ({ default: e.PopupRenderer }))), _e = (e) => {
|
|
315
|
+
let n = r(9), { siteId: a, pageId: o } = e, { fetch: u, logger: p } = t(), [m, h] = l(null), g = c(!1), _, v;
|
|
316
|
+
if (n[0] !== u || n[1] !== p || n[2] !== a ? (_ = () => {
|
|
317
|
+
if (g.current) return;
|
|
318
|
+
let e = () => {
|
|
319
|
+
g.current || (g.current = !0, Q(u, a ? { site_id: a } : void 0).then((e) => {
|
|
320
|
+
I(e), h(e);
|
|
321
|
+
}).catch((e) => {
|
|
322
|
+
p?.error("Failed to fetch popups", { exception: e }), I([]), h([]);
|
|
323
|
+
}).finally(ve));
|
|
324
|
+
};
|
|
325
|
+
if (f.get()) {
|
|
326
|
+
e();
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
let t = f.listen((n) => {
|
|
330
|
+
n && (t(), e());
|
|
331
|
+
});
|
|
332
|
+
return () => t();
|
|
333
|
+
}, v = [
|
|
334
|
+
u,
|
|
335
|
+
p,
|
|
336
|
+
a
|
|
337
|
+
], n[0] = u, n[1] = p, n[2] = a, n[3] = _, n[4] = v) : (_ = n[3], v = n[4]), s(_, v), !m || m.length === 0) return null;
|
|
338
|
+
let y;
|
|
339
|
+
n[5] === Symbol.for("react.memo_cache_sentinel") ? (y = {
|
|
340
|
+
position: "relative",
|
|
341
|
+
zIndex: 99999
|
|
342
|
+
}, n[5] = y) : y = n[5];
|
|
343
|
+
let b;
|
|
344
|
+
return n[6] !== o || n[7] !== m ? (b = /* @__PURE__ */ d("div", {
|
|
345
|
+
style: y,
|
|
346
|
+
children: /* @__PURE__ */ d(i, { children: /* @__PURE__ */ d(ge, {
|
|
347
|
+
popups: m,
|
|
348
|
+
pageId: o
|
|
349
|
+
}) })
|
|
350
|
+
}), n[6] = o, n[7] = m, n[8] = b) : b = n[8], b;
|
|
351
|
+
};
|
|
352
|
+
function ve() {
|
|
353
|
+
return R(!1);
|
|
354
|
+
}
|
|
355
|
+
var $ = () => {
|
|
356
|
+
let e = r(3), t = Z(F), n = Z(L), i = ye, a = be, o;
|
|
357
|
+
return e[0] !== n || e[1] !== t ? (o = {
|
|
358
|
+
popups: t,
|
|
359
|
+
isLoading: n,
|
|
360
|
+
openPopup: i,
|
|
361
|
+
closePopup: a
|
|
362
|
+
}, e[0] = n, e[1] = t, e[2] = o) : o = e[2], o;
|
|
363
|
+
};
|
|
364
|
+
function ye(e) {
|
|
365
|
+
let t = F.get().find((t) => t.id === e);
|
|
366
|
+
t && q(t, {
|
|
367
|
+
force: !0,
|
|
368
|
+
trigger_type: "manual"
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
function be() {
|
|
372
|
+
let e = M.get().active_popup_id;
|
|
373
|
+
e && J(e);
|
|
374
|
+
}
|
|
375
|
+
//#endregion
|
|
376
|
+
export { me as a, z as c, I as d, ce as f, J as i, R as l, he as n, fe as o, se as p, Z as r, P as s, $ as t, ue as u };
|
package/index.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { t as
|
|
5
|
-
import {
|
|
6
|
-
import { a as s, c, d as l, f as u, i as d, l as f, n as p, o as m, r as h, s as g, t as _, u as v } from "./routes-CyKmkoRM.js";
|
|
2
|
+
import { a as e, n as t } from "./dist-BVFCdirT.js";
|
|
3
|
+
import { c as n, o as r, s as i, t as a } from "./inlineBaseTheme-DcNdMEYp.js";
|
|
4
|
+
import { t as o } from "./inlineCollectionTheme-DjXuH3bK.js";
|
|
5
|
+
import { a as s, c, d as l, f as u, i as d, l as f, n as p, o as m, r as h, s as g, t as _, u as v } from "./routes-DO1BLfh9.js";
|
|
7
6
|
import { createLevoClient as y, getLevoError as b } from "@levo-so/core";
|
|
8
7
|
import { Suspense as x, createContext as S, lazy as C, useCallback as w, useContext as T, useEffect as E, useLayoutEffect as D, useMemo as O, useRef as k, useState as A, useSyncExternalStore as j } from "react";
|
|
9
8
|
import { Fragment as M, jsx as N, jsxs as P } from "react/jsx-runtime";
|
|
@@ -260,7 +259,7 @@ var H = [
|
|
|
260
259
|
inputForeground: "var(--color-ink)",
|
|
261
260
|
ring: "var(--color-brand)"
|
|
262
261
|
}, Ue = (e) => O(() => ({
|
|
263
|
-
...
|
|
262
|
+
...a({
|
|
264
263
|
colors: {
|
|
265
264
|
...He,
|
|
266
265
|
...e?.colors
|
|
@@ -271,7 +270,7 @@ var H = [
|
|
|
271
270
|
heading: "var(--font-heading)"
|
|
272
271
|
}
|
|
273
272
|
}),
|
|
274
|
-
...e?.gap ?
|
|
273
|
+
...e?.gap ? o({ form: { gap: e.gap } }) : {}
|
|
275
274
|
}), [e]);
|
|
276
275
|
//#endregion
|
|
277
276
|
//#region src/hooks/useMounted.ts
|
|
@@ -613,7 +612,7 @@ var K = ["levo-auth", "session"], We = () => {
|
|
|
613
612
|
error: u,
|
|
614
613
|
clearError: w(() => d(null), [])
|
|
615
614
|
};
|
|
616
|
-
}, pt = 4, mt = (e) => /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(e.trim()), ht = (e) => RegExp("^\\d{4}$").test(e.trim()), gt = (e) => {
|
|
615
|
+
}, pt = 4, mt = (e) => /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(e.trim()), ht = (e) => (/* @__PURE__ */ RegExp("^\\d{4}$")).test(e.trim()), gt = (e) => {
|
|
617
616
|
let t = e.replace(/\D/g, "").replace(/^0+/, "");
|
|
618
617
|
return t ? `+${t}` : "";
|
|
619
618
|
}, _t = (e) => /^\+[1-9]\d{7,14}$/.test(gt(e)), vt = ({ value: e, onChange: t, length: n = 4, onComplete: r, autoFocus: i, disabled: a }) => {
|
|
@@ -700,7 +699,7 @@ var K = ["levo-auth", "session"], We = () => {
|
|
|
700
699
|
},
|
|
701
700
|
clear: w(() => f("", 0), [f])
|
|
702
701
|
};
|
|
703
|
-
}, yt = C(() => import("./kbChat-
|
|
702
|
+
}, yt = C(() => import("./kbChat-eFsau7hG.js")), bt = ({ site: e, path: t }) => {
|
|
704
703
|
let n = G(), r = e.workspace_id || void 0;
|
|
705
704
|
return !n || !r ? null : /* @__PURE__ */ N(x, {
|
|
706
705
|
fallback: null,
|
|
@@ -811,7 +810,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
|
|
|
811
810
|
}
|
|
812
811
|
return "#ffffff";
|
|
813
812
|
}, Lt = async (e, t) => {
|
|
814
|
-
let { toPng: n } = await import("./es-
|
|
813
|
+
let { toPng: n } = await import("./es-CK20DkgT.js"), r = e.getBoundingClientRect(), i = Math.max(r.width, r.height, 1), a = Math.min(2, Math.max(.4, jt / i)), o = await n(e, {
|
|
815
814
|
...Pt,
|
|
816
815
|
pixelRatio: a,
|
|
817
816
|
backgroundColor: It(e),
|
|
@@ -840,7 +839,7 @@ var At = ({ source: e, submitLabel: n = "Submit", hiddenFields: r, formVariant:
|
|
|
840
839
|
}
|
|
841
840
|
return a;
|
|
842
841
|
}, Vt = async (e, t) => {
|
|
843
|
-
let { toCanvas: n } = await import("./es-
|
|
842
|
+
let { toCanvas: n } = await import("./es-CK20DkgT.js"), r = Bt(e, t), i = r.getBoundingClientRect(), a = Math.max(e.width, e.height, 1), o = Math.min(2, Math.max(.4, jt / a)), s = Math.max(i.width, i.height, 1);
|
|
844
843
|
o = Math.min(o, zt / s);
|
|
845
844
|
let c = await n(r, {
|
|
846
845
|
...Pt,
|
|
@@ -1817,7 +1816,7 @@ var Ln = "levo-made-with", Rn = `.${Ln}{opacity:.2;transition:opacity 150ms,tran
|
|
|
1817
1816
|
if (typeof document > "u") return null;
|
|
1818
1817
|
let e = document.querySelectorAll(`meta[name="${Bn}"]`);
|
|
1819
1818
|
return e[e.length - 1]?.getAttribute("content")?.trim() || null;
|
|
1820
|
-
}, Hn = C(() => import("./dist-
|
|
1819
|
+
}, Hn = C(() => import("./dist-DEXGyFeH.js").then((e) => e.n).then((e) => ({ default: e.PopupLoader }))), Un = ({ siteId: e, pageId: t }) => {
|
|
1821
1820
|
let n = G(), r = i();
|
|
1822
1821
|
return !n || !r ? null : /* @__PURE__ */ N(x, {
|
|
1823
1822
|
fallback: null,
|
|
@@ -3085,7 +3084,7 @@ var Z = (...e) => e.filter(Boolean).join(" "), fr = ({ open: e, className: t, ch
|
|
|
3085
3084
|
}, oi = async (e) => {
|
|
3086
3085
|
let { payment_session_id: t, order_id: n } = e;
|
|
3087
3086
|
if (!t || !n) throw Error("Cashfree payment session missing");
|
|
3088
|
-
let { load: r } = await import("./script.esm-
|
|
3087
|
+
let { load: r } = await import("./script.esm-D4nvz3-k.js"), i = await r({ mode: e.environment || "production" });
|
|
3089
3088
|
if (!i) throw Error("Cashfree checkout failed to load");
|
|
3090
3089
|
let a = await i.checkout({
|
|
3091
3090
|
paymentSessionId: t,
|
|
@@ -1,5 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext as e, useContext as t } from "react";
|
|
3
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
+
import { assignInlineVars as r } from "@vanilla-extract/dynamic";
|
|
5
|
+
//#region ../react/dist/providers/LevoProvider.js
|
|
6
|
+
var i = e({
|
|
7
|
+
client: null,
|
|
8
|
+
insights: null
|
|
9
|
+
}), a = ({ children: e, client: t, insights: r = null }) => /* @__PURE__ */ n(i.Provider, {
|
|
10
|
+
value: {
|
|
11
|
+
client: t,
|
|
12
|
+
insights: r
|
|
13
|
+
},
|
|
14
|
+
children: e
|
|
15
|
+
}), o = () => {
|
|
16
|
+
let e = t(i);
|
|
17
|
+
if (!e.client) throw Error("useLevo must be used within a LevoProvider. Please ensure you have wrapped your component tree with LevoProvider.");
|
|
18
|
+
return e.client;
|
|
19
|
+
}, s = () => t(i).client, c = () => t(i).insights, l = (e, t) => {
|
|
20
|
+
let n = {};
|
|
21
|
+
for (let r of Object.keys(t)) {
|
|
22
|
+
let i = t[r], a = e[r];
|
|
23
|
+
if (!(i === void 0 || a === void 0)) if (typeof i == "object" && i && !Array.isArray(i)) {
|
|
24
|
+
let e = l(a, i);
|
|
25
|
+
Object.assign(n, e);
|
|
26
|
+
} else typeof a == "string" && (n[a] = String(i));
|
|
27
|
+
}
|
|
28
|
+
return n;
|
|
29
|
+
}, u = (e) => (t) => t ? r(l(e, t)) : {}, d = (e) => ({
|
|
3
30
|
sm: `calc(${e} * 0.5)`,
|
|
4
31
|
base: e,
|
|
5
32
|
md: `calc(${e} * 1.5)`,
|
|
@@ -13,7 +40,7 @@ var e = (e) => ({
|
|
|
13
40
|
"7xl": `calc(${e} * 20)`,
|
|
14
41
|
"8xl": `calc(${e} * 24)`,
|
|
15
42
|
full: "100%"
|
|
16
|
-
}),
|
|
43
|
+
}), f = {
|
|
17
44
|
colors: {
|
|
18
45
|
background: "var(--_1i5egzy0)",
|
|
19
46
|
foreground: "var(--_1i5egzy1)",
|
|
@@ -66,6 +93,9 @@ var e = (e) => ({
|
|
|
66
93
|
xl: "var(--_1i5egzy16)",
|
|
67
94
|
inner: "var(--_1i5egzy17)"
|
|
68
95
|
}
|
|
69
|
-
}
|
|
96
|
+
}, p = u(f), m = (e) => e ? e.radius && !e.radiusScale ? p({
|
|
97
|
+
...e,
|
|
98
|
+
radiusScale: d(e.radius)
|
|
99
|
+
}) : p(e) : {};
|
|
70
100
|
//#endregion
|
|
71
|
-
export {
|
|
101
|
+
export { o as a, c, u as i, f as n, a as o, d as r, s, m as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { C as e, a as t, c as n, f as r, g as i, h as a, l as o, m as s, n as c, o as l, p as u, r as d, t as f, u as p } from "./pillChrome-
|
|
2
|
+
import { C as e, a as t, c as n, f as r, g as i, h as a, l as o, m as s, n as c, o as l, p as u, r as d, t as f, u as p } from "./pillChrome-Dy3ApFI5.js";
|
|
3
3
|
import { useEffect as m, useRef as h, useState as g } from "react";
|
|
4
4
|
import { jsx as _, jsxs as v } from "react/jsx-runtime";
|
|
5
5
|
import { ArrowUp as y, Sparkles as b } from "lucide-react";
|
|
@@ -64,7 +64,7 @@ var x = (t) => e("active_agent", t), S = (e) => {
|
|
|
64
64
|
e,
|
|
65
65
|
r
|
|
66
66
|
]), i;
|
|
67
|
-
}, T = (...e) => e.filter(Boolean).join(" "), E = () => import("./KBChatWidget-
|
|
67
|
+
}, T = (...e) => e.filter(Boolean).join(" "), E = () => import("./KBChatWidget-BXRRgelS.js"), D = (e) => {
|
|
68
68
|
let [t, n] = g(null), [r, i] = g(!1), [a, o] = g("");
|
|
69
69
|
return t ? /* @__PURE__ */ _(t, {
|
|
70
70
|
initialOpen: !0,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@levo-so/site-runtime",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.21",
|
|
4
4
|
"description": "Runtime for Levo Studio v3 sites — the editor preview inspector, page head metadata, and the Levo data client.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -39,15 +39,15 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@tabler/icons-react": "3.34.1",
|
|
41
41
|
"@theinternetfolks/snowflake": "1.3.0",
|
|
42
|
-
"@tiptap/core": "3.30.
|
|
43
|
-
"@tiptap/extension-subscript": "3.30.
|
|
44
|
-
"@tiptap/extension-superscript": "3.30.
|
|
45
|
-
"@tiptap/extension-typography": "3.30.
|
|
46
|
-
"@tiptap/extension-unique-id": "3.30.
|
|
47
|
-
"@tiptap/extensions": "3.30.
|
|
48
|
-
"@tiptap/pm": "3.30.
|
|
49
|
-
"@tiptap/react": "3.30.
|
|
50
|
-
"@tiptap/starter-kit": "3.30.
|
|
42
|
+
"@tiptap/core": "3.30.6",
|
|
43
|
+
"@tiptap/extension-subscript": "3.30.6",
|
|
44
|
+
"@tiptap/extension-superscript": "3.30.6",
|
|
45
|
+
"@tiptap/extension-typography": "3.30.6",
|
|
46
|
+
"@tiptap/extension-unique-id": "3.30.6",
|
|
47
|
+
"@tiptap/extensions": "3.30.6",
|
|
48
|
+
"@tiptap/pm": "3.30.6",
|
|
49
|
+
"@tiptap/react": "3.30.6",
|
|
50
|
+
"@tiptap/starter-kit": "3.30.6",
|
|
51
51
|
"altcha": "2.0.2",
|
|
52
52
|
"clsx": "2.1.1",
|
|
53
53
|
"dayjs": "1.11.13",
|
|
@@ -60,17 +60,17 @@
|
|
|
60
60
|
"react-select-async-paginate": "0.7.5",
|
|
61
61
|
"use-debounce": "10.0.2",
|
|
62
62
|
"yup": "1.7.1",
|
|
63
|
-
"@tiptap/extension-blockquote": "3.30.
|
|
64
|
-
"@tiptap/extension-code-block": "3.30.
|
|
65
|
-
"@tiptap/extension-details": "3.30.
|
|
66
|
-
"@tiptap/extension-document": "3.30.
|
|
67
|
-
"@tiptap/extension-horizontal-rule": "3.30.
|
|
68
|
-
"@tiptap/extension-image": "3.30.
|
|
69
|
-
"@tiptap/extension-link": "3.30.
|
|
70
|
-
"@tiptap/extension-list": "3.30.
|
|
71
|
-
"@tiptap/extension-mention": "3.30.
|
|
72
|
-
"@tiptap/extension-table": "3.30.
|
|
73
|
-
"@tiptap/extension-text-style": "3.30.
|
|
63
|
+
"@tiptap/extension-blockquote": "3.30.6",
|
|
64
|
+
"@tiptap/extension-code-block": "3.30.6",
|
|
65
|
+
"@tiptap/extension-details": "3.30.6",
|
|
66
|
+
"@tiptap/extension-document": "3.30.6",
|
|
67
|
+
"@tiptap/extension-horizontal-rule": "3.30.6",
|
|
68
|
+
"@tiptap/extension-image": "3.30.6",
|
|
69
|
+
"@tiptap/extension-link": "3.30.6",
|
|
70
|
+
"@tiptap/extension-list": "3.30.6",
|
|
71
|
+
"@tiptap/extension-mention": "3.30.6",
|
|
72
|
+
"@tiptap/extension-table": "3.30.6",
|
|
73
|
+
"@tiptap/extension-text-style": "3.30.6",
|
|
74
74
|
"@vanilla-extract/recipes": "0.5.7",
|
|
75
75
|
"lowlight": "3.1.0",
|
|
76
76
|
"@vanilla-extract/dynamic": "2.1.5",
|
|
@@ -82,8 +82,8 @@
|
|
|
82
82
|
"@assistant-ui/store": "0.3.13",
|
|
83
83
|
"@assistant-ui/tap": "0.9.17",
|
|
84
84
|
"remark-gfm": "4.0.1",
|
|
85
|
-
"@levo-so/core": "0.3.
|
|
86
|
-
"@levo-so/insights": "0.3.
|
|
85
|
+
"@levo-so/core": "0.3.21",
|
|
86
|
+
"@levo-so/insights": "0.3.21",
|
|
87
87
|
"@stripe/react-stripe-js": "3.1.1",
|
|
88
88
|
"@stripe/stripe-js": "5.5.0",
|
|
89
89
|
"react-razorpay": "3.0.1"
|
|
@@ -38,13 +38,13 @@ var e = "disabled:cursor-not-allowed disabled:opacity-40", t = (e) => {
|
|
|
38
38
|
let t = e.value.length;
|
|
39
39
|
e.setSelectionRange(t, t);
|
|
40
40
|
});
|
|
41
|
-
}, l = (e) => typeof e == "function" ? e() : e ?? {}, u = "w-72", d = "ai-chat-pill-gradient relative rounded-[30px] p-[2px] transition-shadow duration-300", f = "shadow-lg shadow-zinc-950/10", p = "shadow-md", m = "ai-chat-pill-surface min-h-14 w-full rounded-[28px] bg-white p-1.5", h = "ai-chat-pill-surface--stacked", g = "ai-chat-pill-input relative min-w-0", _ = "ai-chat-pill-actions flex items-center gap-1.5", v = "ai-chat-pill-spark flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-full text-blue-500 transition-[background-color,transform] duration-150 hover:bg-zinc-50 active:scale-95", y = "flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-full shadow-sm transition-[transform,box-shadow] duration-150 hover:scale-105 hover:shadow-md active:scale-95", b = "block h-6 max-h-[120px] w-full resize-none overflow-y-auto bg-transparent text-base text-zinc-900 leading-6 placeholder:text-zinc-400 focus:outline-none", x =
|
|
41
|
+
}, l = (e) => typeof e == "function" ? e() : e ?? {}, u = "w-72", d = "ai-chat-pill-gradient relative rounded-[30px] p-[2px] transition-shadow duration-300", f = "shadow-lg shadow-zinc-950/10", p = "shadow-md", m = "ai-chat-pill-surface min-h-14 w-full rounded-[28px] bg-white p-1.5", h = "ai-chat-pill-surface--stacked", g = "ai-chat-pill-input relative min-w-0", _ = "ai-chat-pill-actions flex items-center gap-1.5", v = "ai-chat-pill-spark flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-full text-blue-500 transition-[background-color,transform] duration-150 hover:bg-zinc-50 active:scale-95", y = "flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-full shadow-sm transition-[transform,box-shadow] duration-150 hover:scale-105 hover:shadow-md active:scale-95", b = "block h-6 max-h-[120px] w-full resize-none overflow-y-auto bg-transparent text-base text-zinc-900 leading-6 placeholder:text-zinc-400 focus:outline-none", x = (e, t) => {
|
|
42
42
|
e.classList.remove(h), t.style.height = "auto";
|
|
43
|
-
let n = t.scrollHeight >
|
|
43
|
+
let n = t.scrollHeight > 28;
|
|
44
44
|
return e.classList.toggle(h, n), s(t, 120), n;
|
|
45
|
-
},
|
|
45
|
+
}, S = "ai-chat-pill-label pointer-events-none absolute inset-y-0 left-0 flex max-w-full items-center truncate bg-clip-text font-semibold text-[15px] text-transparent", C = {
|
|
46
46
|
backgroundColor: "var(--color-brand, #0a0a0a)",
|
|
47
47
|
color: "var(--color-brand-foreground, #fff)"
|
|
48
|
-
},
|
|
48
|
+
}, w = (e) => e ? `Ask ${e}` : "Ask AI";
|
|
49
49
|
//#endregion
|
|
50
|
-
export { o as C, a as S, e as _, y as a, i as b, f as c, h as d, b as f, l as g,
|
|
50
|
+
export { o as C, a as S, e as _, y as a, i as b, f as c, h as d, b as f, l as g, w as h, S as i, v as l, x as m, d as n, C as o, u as p, g as r, p as s, _ as t, m as u, s as v, r as x, c as y };
|
package/popups.js
CHANGED