@levo-so/studio 0.3.3 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +112 -95
- package/package.json +3 -3
- package/studio.css +1 -1
package/index.js
CHANGED
|
@@ -9655,7 +9655,7 @@ var rd = {
|
|
|
9655
9655
|
...e,
|
|
9656
9656
|
national: Cd(n.target.value, e.iso2)
|
|
9657
9657
|
}),
|
|
9658
|
-
className: "w-full rounded-r-xl bg-transparent px-3.5 py-2.5 text-base text-text-1 outline-none placeholder:text-text-3"
|
|
9658
|
+
className: "w-full rounded-r-xl bg-transparent px-3.5 py-2.5 text-base text-text-1 outline-none placeholder:text-text-3/55"
|
|
9659
9659
|
})]
|
|
9660
9660
|
}),
|
|
9661
9661
|
i ? /* @__PURE__ */ U("p", {
|
|
@@ -9746,7 +9746,7 @@ var rd = {
|
|
|
9746
9746
|
wide: !1,
|
|
9747
9747
|
optional: !1
|
|
9748
9748
|
}
|
|
9749
|
-
], jd = (e) => M("w-full rounded-xl border bg-page px-3.5 py-2.5 text-base text-text-1 outline-none transition placeholder:text-text-3", e ? "border-red-500 focus:ring-[3px] focus:ring-red-500/15" : "[border-color:var(--color-border)] focus:border-brand focus:ring-[3px] focus:ring-brand/20"), Md = "flex items-baseline gap-1.5 font-medium text-sm text-text-1", Nd = () => /* @__PURE__ */ U("span", {
|
|
9749
|
+
], jd = (e) => M("w-full rounded-xl border bg-page px-3.5 py-2.5 text-base text-text-1 outline-none transition placeholder:text-text-3/55", e ? "border-red-500 focus:ring-[3px] focus:ring-red-500/15" : "[border-color:var(--color-border)] focus:border-brand focus:ring-[3px] focus:ring-brand/20"), Md = "flex items-baseline gap-1.5 font-medium text-sm text-text-1", Nd = () => /* @__PURE__ */ U("span", {
|
|
9750
9750
|
"aria-hidden": !0,
|
|
9751
9751
|
className: "text-red-500",
|
|
9752
9752
|
children: "*"
|
|
@@ -10107,7 +10107,7 @@ var rd = {
|
|
|
10107
10107
|
onKeyDown: (t) => {
|
|
10108
10108
|
t.key === "Enter" && (t.preventDefault(), e.trim() && i());
|
|
10109
10109
|
},
|
|
10110
|
-
className: M("w-full rounded-xl border bg-page px-3.5 py-2.5 text-base text-text-1 uppercase outline-none transition placeholder:text-text-3 placeholder:normal-case", n ? "border-red-500 focus:ring-[3px] focus:ring-red-500/15" : "[border-color:var(--color-border)] focus:border-brand focus:ring-[3px] focus:ring-brand/20")
|
|
10110
|
+
className: M("w-full rounded-xl border bg-page px-3.5 py-2.5 text-base text-text-1 uppercase outline-none transition placeholder:text-text-3/55 placeholder:normal-case", n ? "border-red-500 focus:ring-[3px] focus:ring-red-500/15" : "[border-color:var(--color-border)] focus:border-brand focus:ring-[3px] focus:ring-brand/20")
|
|
10111
10111
|
}), /* @__PURE__ */ W("button", {
|
|
10112
10112
|
type: "button",
|
|
10113
10113
|
disabled: !e.trim() || r,
|
|
@@ -10244,7 +10244,15 @@ var rd = {
|
|
|
10244
10244
|
o,
|
|
10245
10245
|
e
|
|
10246
10246
|
]), null;
|
|
10247
|
-
}, sf = 200, cf =
|
|
10247
|
+
}, sf = 200, cf = () => {
|
|
10248
|
+
let [e, t] = V(null);
|
|
10249
|
+
return R(() => {
|
|
10250
|
+
let e = typeof window > "u" ? null : window.visualViewport;
|
|
10251
|
+
if (!e) return;
|
|
10252
|
+
let n = () => t(e.height);
|
|
10253
|
+
return n(), e.addEventListener("resize", n), () => e.removeEventListener("resize", n);
|
|
10254
|
+
}, []), e;
|
|
10255
|
+
}, lf = "a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),summary,[tabindex]:not([tabindex=\"-1\"])", uf = (e) => {
|
|
10248
10256
|
R(() => {
|
|
10249
10257
|
if (!e || typeof document > "u") return;
|
|
10250
10258
|
let { body: t } = document, n = window.scrollY, r = {
|
|
@@ -10257,19 +10265,19 @@ var rd = {
|
|
|
10257
10265
|
t.style.position = r.position, t.style.top = r.top, t.style.width = r.width, t.style.overflow = r.overflow, window.scrollTo(0, n);
|
|
10258
10266
|
};
|
|
10259
10267
|
}, [e]);
|
|
10260
|
-
},
|
|
10261
|
-
let u = Fe(), d = B(null),
|
|
10262
|
-
|
|
10263
|
-
let
|
|
10264
|
-
|
|
10268
|
+
}, df = ({ title: e, when: t, priceLabel: n, isFree: r, isClosing: i, onClose: a, onSubmit: o, footer: s, wide: c, children: l }) => {
|
|
10269
|
+
let u = Fe(), d = B(null), f = cf(), [p, m] = V(!1);
|
|
10270
|
+
uf(!0);
|
|
10271
|
+
let h = B(a);
|
|
10272
|
+
h.current = a, R(() => {
|
|
10265
10273
|
let e = document.activeElement, t = (e) => {
|
|
10266
10274
|
if (document.querySelector("[data-radix-popper-content-wrapper]")) return;
|
|
10267
10275
|
if (e.key === "Escape") {
|
|
10268
|
-
e.stopPropagation(),
|
|
10276
|
+
e.stopPropagation(), h.current();
|
|
10269
10277
|
return;
|
|
10270
10278
|
}
|
|
10271
10279
|
if (e.key !== "Tab" || !d.current) return;
|
|
10272
|
-
let t = Array.from(d.current.querySelectorAll(
|
|
10280
|
+
let t = Array.from(d.current.querySelectorAll(lf)).filter((e) => e.offsetParent !== null);
|
|
10273
10281
|
if (t.length === 0) return;
|
|
10274
10282
|
let n = t[0], r = t[t.length - 1], i = document.activeElement;
|
|
10275
10283
|
e.shiftKey && (i === n || !d.current.contains(i)) ? (e.preventDefault(), r.focus()) : !e.shiftKey && i === r && (e.preventDefault(), n.focus());
|
|
@@ -10278,14 +10286,20 @@ var rd = {
|
|
|
10278
10286
|
document.removeEventListener("keydown", t), e?.focus?.();
|
|
10279
10287
|
};
|
|
10280
10288
|
}, []);
|
|
10281
|
-
let
|
|
10282
|
-
onScroll: (e) =>
|
|
10283
|
-
className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain
|
|
10284
|
-
children:
|
|
10285
|
-
|
|
10286
|
-
|
|
10287
|
-
|
|
10288
|
-
|
|
10289
|
+
let g = /* @__PURE__ */ U("div", {
|
|
10290
|
+
onScroll: (e) => m(e.currentTarget.scrollTop > 2),
|
|
10291
|
+
className: "min-h-0 flex-1 overflow-y-auto overflow-x-hidden overscroll-contain",
|
|
10292
|
+
children: /* @__PURE__ */ W("div", {
|
|
10293
|
+
className: "flex min-h-full flex-col",
|
|
10294
|
+
children: [/* @__PURE__ */ U("div", {
|
|
10295
|
+
className: "px-5 pt-4 pb-3",
|
|
10296
|
+
children: l
|
|
10297
|
+
}), s && /* @__PURE__ */ U("div", {
|
|
10298
|
+
className: "mt-auto border-t bg-page px-5 pt-3 pb-[max(env(safe-area-inset-bottom),16px)] [border-color:var(--color-border)] sm:sticky sm:bottom-0 sm:z-10",
|
|
10299
|
+
children: s
|
|
10300
|
+
})]
|
|
10301
|
+
})
|
|
10302
|
+
});
|
|
10289
10303
|
return /* @__PURE__ */ U(zn.Root, { children: /* @__PURE__ */ U("div", {
|
|
10290
10304
|
className: M("fixed inset-0 z-[2147483000] flex items-end justify-center bg-black/40 fill-mode-forwards sm:items-start", "sm:backdrop-blur-[3px]", i ? "fade-out-0 pointer-events-none animate-out ease-out" : "fade-in-0 animate-in ease-out"),
|
|
10291
10305
|
style: { animationDuration: `${i ? 160 : sf}ms` },
|
|
@@ -10297,10 +10311,13 @@ var rd = {
|
|
|
10297
10311
|
role: "dialog",
|
|
10298
10312
|
"aria-modal": "true",
|
|
10299
10313
|
"aria-labelledby": u,
|
|
10300
|
-
className: M("relative flex h-
|
|
10301
|
-
style: {
|
|
10314
|
+
className: M("relative flex h-[var(--sheet-height)] max-h-[var(--sheet-height)] w-full flex-col overflow-hidden bg-page will-change-transform", "sm:mt-[6vh] sm:h-auto sm:max-h-[88dvh] sm:rounded-2xl sm:border sm:shadow-2xl sm:[border-color:var(--color-border)]", "fill-mode-forwards ease-out", i ? "slide-out-to-bottom-4 fade-out-0 sm:slide-out-to-bottom-2 animate-out" : "slide-in-from-bottom-4 fade-in-0 sm:slide-in-from-bottom-2 animate-in", c ? "sm:max-w-[540px]" : "sm:max-w-[460px]"),
|
|
10315
|
+
style: {
|
|
10316
|
+
animationDuration: `${i ? 160 : sf}ms`,
|
|
10317
|
+
"--sheet-height": f ? `${f}px` : "100dvh"
|
|
10318
|
+
},
|
|
10302
10319
|
children: [/* @__PURE__ */ W("div", {
|
|
10303
|
-
className: M("sticky top-0 z-10 shrink-0 border-b bg-page px-5 pt-[max(env(safe-area-inset-top),16px)] pb-3.5 transition-colors",
|
|
10320
|
+
className: M("sticky top-0 z-10 shrink-0 border-b bg-page px-5 pt-[max(env(safe-area-inset-top),16px)] pb-3.5 transition-colors", p ? "[border-color:var(--color-border)]" : "border-transparent"),
|
|
10304
10321
|
children: [/* @__PURE__ */ W("div", {
|
|
10305
10322
|
className: "mb-2.5 flex items-center justify-between gap-3",
|
|
10306
10323
|
children: [/* @__PURE__ */ U("h2", {
|
|
@@ -10336,11 +10353,11 @@ var rd = {
|
|
|
10336
10353
|
}), o ? /* @__PURE__ */ U("form", {
|
|
10337
10354
|
onSubmit: o,
|
|
10338
10355
|
className: "flex min-h-0 flex-1 flex-col",
|
|
10339
|
-
children:
|
|
10340
|
-
}) :
|
|
10356
|
+
children: g
|
|
10357
|
+
}) : g]
|
|
10341
10358
|
})
|
|
10342
10359
|
}) });
|
|
10343
|
-
},
|
|
10360
|
+
}, ff = "\n@keyframes levo-reg-draw { to { stroke-dashoffset: 0; } }\n@keyframes levo-reg-sweep { to { transform: translateX(240%); } }\n@media (prefers-reduced-motion: reduce) {\n [data-levo-reg-check] { stroke-dashoffset: 0 !important; animation: none !important; }\n [data-levo-reg-sweep] { display: none !important; }\n}\n", pf = ({ email: e, eventTitle: t, startsAt: n, endsAt: r, eventUrl: i, when: a, bookingRef: o, qrImageUrl: s, invoiceUrl: c, onClose: l, onRegisterAnother: u }) => {
|
|
10344
10361
|
let d = Yd({
|
|
10345
10362
|
title: t,
|
|
10346
10363
|
startsAt: n,
|
|
@@ -10352,7 +10369,7 @@ var rd = {
|
|
|
10352
10369
|
}, []), /* @__PURE__ */ W("div", {
|
|
10353
10370
|
className: "flex flex-1 flex-col items-center justify-center px-6 py-9 text-center",
|
|
10354
10371
|
children: [
|
|
10355
|
-
/* @__PURE__ */ U("style", { dangerouslySetInnerHTML: { __html:
|
|
10372
|
+
/* @__PURE__ */ U("style", { dangerouslySetInnerHTML: { __html: ff } }),
|
|
10356
10373
|
/* @__PURE__ */ U("div", {
|
|
10357
10374
|
className: "zoom-in-50 fade-in-0 flex size-[68px] animate-in items-center justify-center rounded-full bg-green-500/10 text-green-700 duration-300 ease-[cubic-bezier(0.32,0.72,0,1)]",
|
|
10358
10375
|
children: /* @__PURE__ */ W("svg", {
|
|
@@ -10497,7 +10514,7 @@ var rd = {
|
|
|
10497
10514
|
})
|
|
10498
10515
|
]
|
|
10499
10516
|
});
|
|
10500
|
-
},
|
|
10517
|
+
}, mf = ({ tickets: e, selectedTicket: t, onSelect: n, error: r }) => {
|
|
10501
10518
|
let [i, a] = V(!t);
|
|
10502
10519
|
return /* @__PURE__ */ W("fieldset", {
|
|
10503
10520
|
className: "flex flex-col gap-2",
|
|
@@ -10574,7 +10591,7 @@ var rd = {
|
|
|
10574
10591
|
})
|
|
10575
10592
|
]
|
|
10576
10593
|
});
|
|
10577
|
-
},
|
|
10594
|
+
}, hf = {
|
|
10578
10595
|
name: "",
|
|
10579
10596
|
email: "",
|
|
10580
10597
|
designation: "",
|
|
@@ -10593,11 +10610,11 @@ var rd = {
|
|
|
10593
10610
|
country: ""
|
|
10594
10611
|
}
|
|
10595
10612
|
}
|
|
10596
|
-
},
|
|
10613
|
+
}, gf = (e) => {
|
|
10597
10614
|
let t = {};
|
|
10598
10615
|
return e.name.trim() || (t.name = "Please enter your name"), e.email.trim() ? /^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(e.email.trim()) || (t.email = "That email address doesn't look right") : t.email = "Please enter your email", e.phone.national && !ir(Td(e.phone)) && (t.phone = "That doesn't look like a valid phone number"), t;
|
|
10599
|
-
},
|
|
10600
|
-
let [t, n] = V(
|
|
10616
|
+
}, _f = (e) => {
|
|
10617
|
+
let [t, n] = V(hf), [r, i] = V({}), [a, o] = V(!1), s = B(!1);
|
|
10601
10618
|
R(() => {
|
|
10602
10619
|
s.current || !e || (s.current = !0, n((t) => ({
|
|
10603
10620
|
...t,
|
|
@@ -10605,14 +10622,14 @@ var rd = {
|
|
|
10605
10622
|
email: t.email || e.email || ""
|
|
10606
10623
|
})));
|
|
10607
10624
|
}, [e]);
|
|
10608
|
-
let c =
|
|
10625
|
+
let c = gf(t), l = L((e, t) => n((n) => ({
|
|
10609
10626
|
...n,
|
|
10610
10627
|
[e]: t
|
|
10611
10628
|
})), []), u = L((e) => i((t) => ({
|
|
10612
10629
|
...t,
|
|
10613
10630
|
[e]: !0
|
|
10614
10631
|
})), []), d = L(() => {
|
|
10615
|
-
n(
|
|
10632
|
+
n(hf), i({}), o(!1), s.current = !0;
|
|
10616
10633
|
}, []), f = L(() => {
|
|
10617
10634
|
i({}), o(!1);
|
|
10618
10635
|
}, []);
|
|
@@ -10633,7 +10650,7 @@ var rd = {
|
|
|
10633
10650
|
} : r,
|
|
10634
10651
|
fieldError: (e) => a || r[e] ? c[e] : void 0
|
|
10635
10652
|
};
|
|
10636
|
-
},
|
|
10653
|
+
}, vf = ({ eventID: e, workspaceId: t, selectedTicket: n, enabled: r }) => {
|
|
10637
10654
|
let i = P(), [a, o] = V(""), [s, c] = V(null), [l, u] = V(!1), [d, f] = V(null), [p, m] = V([]);
|
|
10638
10655
|
return R(() => {
|
|
10639
10656
|
!r || !e || i?.fetch?.url(`/v1/event/event/${e}/coupon/list-public-coupons`)?.options({ headers: { Origin: t || "" } })?.get().json().then((e) => {
|
|
@@ -10686,13 +10703,13 @@ var rd = {
|
|
|
10686
10703
|
o(""), c(null), f(null);
|
|
10687
10704
|
}, [])
|
|
10688
10705
|
};
|
|
10689
|
-
},
|
|
10706
|
+
}, yf = async (e, t, n) => {
|
|
10690
10707
|
let r = new URLSearchParams();
|
|
10691
10708
|
return r.append("query", JSON.stringify({ where: { status: "active" } })), (await e.fetch?.url(`/v1/event/event/${t}/ticket/query?${r.toString()}`).options({ headers: { Origin: n || "" } }).get().json())?.content?.data ?? [];
|
|
10692
|
-
},
|
|
10709
|
+
}, bf = ({ eventID: e, external: t, workspaceId: n }) => {
|
|
10693
10710
|
let r = P(), [i, a] = V([]), [o, s] = V(!t), [c, l] = V(!1), [u, d] = V(null);
|
|
10694
10711
|
return R(() => {
|
|
10695
|
-
t || !e || (s(!0),
|
|
10712
|
+
t || !e || (s(!0), yf(r, e, n ?? "").then((e) => {
|
|
10696
10713
|
a(e), e.length === 1 && d(e[0] ?? null);
|
|
10697
10714
|
}).catch((e) => {
|
|
10698
10715
|
l(!0), r?.logger?.error("Failed to load event tickets", { exception: G(e) });
|
|
@@ -10708,20 +10725,20 @@ var rd = {
|
|
|
10708
10725
|
selectedTicket: u,
|
|
10709
10726
|
selectTicket: d
|
|
10710
10727
|
};
|
|
10711
|
-
},
|
|
10728
|
+
}, xf = "register", Sf = () => {
|
|
10712
10729
|
if (typeof window > "u") return !1;
|
|
10713
|
-
let e = new URLSearchParams(window.location.search).get(
|
|
10730
|
+
let e = new URLSearchParams(window.location.search).get(xf);
|
|
10714
10731
|
return e !== null && e !== "0" && e !== "false";
|
|
10715
|
-
},
|
|
10732
|
+
}, Cf = () => typeof window < "u" && window.matchMedia("(prefers-reduced-motion: reduce)").matches, wf = ({ canAutoOpen: e, onClosed: t }) => {
|
|
10716
10733
|
let [n, r] = V(!1), [i, a] = V(!1), o = B(null), s = B(!1), c = B(t);
|
|
10717
10734
|
c.current = t;
|
|
10718
10735
|
let l = L(() => r(!0), []), u = L(() => {
|
|
10719
10736
|
o.current === null && (a(!0), o.current = window.setTimeout(() => {
|
|
10720
10737
|
o.current = null, a(!1), r(!1), c.current();
|
|
10721
|
-
},
|
|
10738
|
+
}, Cf() ? 0 : 160));
|
|
10722
10739
|
}, []);
|
|
10723
10740
|
return R(() => {
|
|
10724
|
-
s.current || !e || !
|
|
10741
|
+
s.current || !e || !Sf() || (s.current = !0, r(!0));
|
|
10725
10742
|
}, [e]), R(() => () => {
|
|
10726
10743
|
o.current !== null && window.clearTimeout(o.current);
|
|
10727
10744
|
}, []), {
|
|
@@ -10730,22 +10747,22 @@ var rd = {
|
|
|
10730
10747
|
open: l,
|
|
10731
10748
|
close: u
|
|
10732
10749
|
};
|
|
10733
|
-
},
|
|
10734
|
-
let c = P(), { workspace: l, account: u } = A(), d =
|
|
10750
|
+
}, Tf = "We took the payment but could not confirm your booking. Please contact the organiser.", Ef = ({ eventID: e, title: t, external: n, buttonText: r = "Register Now", additionalFields: i = [], startsAt: a, endsAt: o, eventUrl: s }) => {
|
|
10751
|
+
let c = P(), { workspace: l, account: u } = A(), d = bf({
|
|
10735
10752
|
eventID: e,
|
|
10736
10753
|
external: n,
|
|
10737
10754
|
workspaceId: l?.id
|
|
10738
|
-
}), f =
|
|
10755
|
+
}), f = _f(u), p = Vd(d.selectedTicket, null)?.isFree === !1, [m, h] = V(!1), [g, _] = V(null), [v, y] = V(null), [b, x] = V(null);
|
|
10739
10756
|
R(() => {
|
|
10740
10757
|
let t = Zd(e);
|
|
10741
10758
|
t && x({ email: t.email });
|
|
10742
10759
|
}, [e]);
|
|
10743
|
-
let [S, w] = V(null), T = B(null), E =
|
|
10760
|
+
let [S, w] = V(null), T = B(null), E = wf({
|
|
10744
10761
|
canAutoOpen: !n && !d.isLoading && d.tickets.length > 0 && !b,
|
|
10745
10762
|
onClosed: L(() => {
|
|
10746
10763
|
_(null), w(null), f.resetValidationDisplay();
|
|
10747
10764
|
}, [f.resetValidationDisplay])
|
|
10748
|
-
}), D =
|
|
10765
|
+
}), D = vf({
|
|
10749
10766
|
eventID: e,
|
|
10750
10767
|
workspaceId: l?.id,
|
|
10751
10768
|
selectedTicket: d.selectedTicket,
|
|
@@ -10764,9 +10781,9 @@ var rd = {
|
|
|
10764
10781
|
}, [e, f.values.email]), fe = L(async (e, t) => {
|
|
10765
10782
|
try {
|
|
10766
10783
|
let n = await c?.fetch?.url(`/v1/event/booking/${e}/confirm-booking`)?.options({ headers: { Origin: l?.id || "" } })?.post(t)?.json();
|
|
10767
|
-
n?.content?.data ? de(n.content.data) : _(
|
|
10784
|
+
n?.content?.data ? de(n.content.data) : _(Tf);
|
|
10768
10785
|
} catch (e) {
|
|
10769
|
-
c?.logger?.error("Failed to confirm booking after payment", { exception: G(e) }), _(
|
|
10786
|
+
c?.logger?.error("Failed to confirm booking after payment", { exception: G(e) }), _(Tf);
|
|
10770
10787
|
}
|
|
10771
10788
|
}, [
|
|
10772
10789
|
c,
|
|
@@ -10888,7 +10905,7 @@ var rd = {
|
|
|
10888
10905
|
children: r
|
|
10889
10906
|
})
|
|
10890
10907
|
}),
|
|
10891
|
-
E.isOpen && /* @__PURE__ */ U(
|
|
10908
|
+
E.isOpen && /* @__PURE__ */ U(df, {
|
|
10892
10909
|
title: v ? se : `Register for ${se}`,
|
|
10893
10910
|
when: oe,
|
|
10894
10911
|
priceLabel: v || !j ? void 0 : Id({
|
|
@@ -10916,7 +10933,7 @@ var rd = {
|
|
|
10916
10933
|
children: ie ? "Secure payment · confirmation sent to your email" : "No card needed · joining link sent to your email"
|
|
10917
10934
|
})
|
|
10918
10935
|
] }),
|
|
10919
|
-
children: v ? /* @__PURE__ */ U(
|
|
10936
|
+
children: v ? /* @__PURE__ */ U(pf, {
|
|
10920
10937
|
email: f.values.email.trim(),
|
|
10921
10938
|
eventTitle: se,
|
|
10922
10939
|
startsAt: a,
|
|
@@ -10931,7 +10948,7 @@ var rd = {
|
|
|
10931
10948
|
}) : /* @__PURE__ */ W("div", {
|
|
10932
10949
|
className: "flex flex-col gap-4",
|
|
10933
10950
|
children: [
|
|
10934
|
-
ae && /* @__PURE__ */ U(
|
|
10951
|
+
ae && /* @__PURE__ */ U(mf, {
|
|
10935
10952
|
tickets: d.tickets,
|
|
10936
10953
|
selectedTicket: d.selectedTicket,
|
|
10937
10954
|
onSelect: le,
|
|
@@ -10998,7 +11015,7 @@ var rd = {
|
|
|
10998
11015
|
onComplete: he
|
|
10999
11016
|
})
|
|
11000
11017
|
] });
|
|
11001
|
-
},
|
|
11018
|
+
}, Df = ({ blockInstance: e, blocks: t, theme: n }) => {
|
|
11002
11019
|
let r = Fe(), i = B(null), a = Co({
|
|
11003
11020
|
pageTheme: n ?? ho,
|
|
11004
11021
|
blocks: [e],
|
|
@@ -11022,7 +11039,7 @@ var rd = {
|
|
|
11022
11039
|
workspace_id: "devtools"
|
|
11023
11040
|
})
|
|
11024
11041
|
})] });
|
|
11025
|
-
},
|
|
11042
|
+
}, Of = 300, kf = ({ label: e, value: t, onChange: n }) => {
|
|
11026
11043
|
let [r, i] = V(() => JSON.stringify(t, null, 2)), [a, o] = V(null), s = B(null), c = B(JSON.stringify(t, null, 2));
|
|
11027
11044
|
R(() => {
|
|
11028
11045
|
let e = JSON.stringify(t, null, 2);
|
|
@@ -11037,7 +11054,7 @@ var rd = {
|
|
|
11037
11054
|
} catch (e) {
|
|
11038
11055
|
o(e.message);
|
|
11039
11056
|
}
|
|
11040
|
-
},
|
|
11057
|
+
}, Of);
|
|
11041
11058
|
}, [n]);
|
|
11042
11059
|
return R(() => () => {
|
|
11043
11060
|
s.current && clearTimeout(s.current);
|
|
@@ -11090,7 +11107,7 @@ var rd = {
|
|
|
11090
11107
|
})
|
|
11091
11108
|
]
|
|
11092
11109
|
});
|
|
11093
|
-
},
|
|
11110
|
+
}, Af = (e, t = 0) => {
|
|
11094
11111
|
let n = e.layouts[t];
|
|
11095
11112
|
if (!n) throw Error(`Layout index ${t} not found on block "${e.key}". Available: ${e.layouts.length}`);
|
|
11096
11113
|
let r = n.content && Object.keys(n.content).length > 0 ? n.content : Yr(e.content_schema), i = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -11119,7 +11136,7 @@ var rd = {
|
|
|
11119
11136
|
deleted_at: null,
|
|
11120
11137
|
site_version: "v2"
|
|
11121
11138
|
};
|
|
11122
|
-
},
|
|
11139
|
+
}, jf = [
|
|
11123
11140
|
{
|
|
11124
11141
|
key: "content",
|
|
11125
11142
|
label: "Content"
|
|
@@ -11132,8 +11149,8 @@ var rd = {
|
|
|
11132
11149
|
key: "config",
|
|
11133
11150
|
label: "Config"
|
|
11134
11151
|
}
|
|
11135
|
-
],
|
|
11136
|
-
let [i, a] = V(r), [o, s] = V("content"), [c, l] = V(!0), u = z(() =>
|
|
11152
|
+
], Mf = ({ schema: e, component: t, theme: n, defaultLayoutIndex: r = 0 }) => {
|
|
11153
|
+
let [i, a] = V(r), [o, s] = V("content"), [c, l] = V(!0), u = z(() => Af(e, i), [e, i]), [d, f] = V(u.content), [p, m] = V(u.styles), [h, g] = V(u.config), _ = z(() => ({
|
|
11137
11154
|
...u,
|
|
11138
11155
|
content: d,
|
|
11139
11156
|
styles: p,
|
|
@@ -11150,18 +11167,18 @@ var rd = {
|
|
|
11150
11167
|
]), y = L((t) => {
|
|
11151
11168
|
let n = Number(t.target.value);
|
|
11152
11169
|
a(n);
|
|
11153
|
-
let r =
|
|
11170
|
+
let r = Af(e, n);
|
|
11154
11171
|
f(r.content), m(r.styles), g(r.config);
|
|
11155
11172
|
}, [e]), b = L(() => {
|
|
11156
|
-
let t =
|
|
11173
|
+
let t = Af(e, i);
|
|
11157
11174
|
f(t.content), m(t.styles), g(t.config);
|
|
11158
11175
|
}, [e, i]);
|
|
11159
11176
|
return /* @__PURE__ */ W("div", {
|
|
11160
|
-
style:
|
|
11177
|
+
style: Nf,
|
|
11161
11178
|
children: [
|
|
11162
11179
|
/* @__PURE__ */ U("div", {
|
|
11163
|
-
style:
|
|
11164
|
-
children: /* @__PURE__ */ U(
|
|
11180
|
+
style: Pf,
|
|
11181
|
+
children: /* @__PURE__ */ U(Df, {
|
|
11165
11182
|
blockInstance: _,
|
|
11166
11183
|
blocks: v,
|
|
11167
11184
|
theme: n
|
|
@@ -11170,7 +11187,7 @@ var rd = {
|
|
|
11170
11187
|
!c && /* @__PURE__ */ U("button", {
|
|
11171
11188
|
type: "button",
|
|
11172
11189
|
onClick: () => l(!0),
|
|
11173
|
-
style:
|
|
11190
|
+
style: Ff,
|
|
11174
11191
|
title: "Open DevTools",
|
|
11175
11192
|
children: /* @__PURE__ */ W("svg", {
|
|
11176
11193
|
width: "18",
|
|
@@ -11185,10 +11202,10 @@ var rd = {
|
|
|
11185
11202
|
})
|
|
11186
11203
|
}),
|
|
11187
11204
|
c && /* @__PURE__ */ W("div", {
|
|
11188
|
-
style:
|
|
11205
|
+
style: If,
|
|
11189
11206
|
children: [
|
|
11190
11207
|
/* @__PURE__ */ W("div", {
|
|
11191
|
-
style:
|
|
11208
|
+
style: Lf,
|
|
11192
11209
|
children: [/* @__PURE__ */ W("div", {
|
|
11193
11210
|
style: {
|
|
11194
11211
|
display: "flex",
|
|
@@ -11196,10 +11213,10 @@ var rd = {
|
|
|
11196
11213
|
gap: 8
|
|
11197
11214
|
},
|
|
11198
11215
|
children: [/* @__PURE__ */ U("span", {
|
|
11199
|
-
style:
|
|
11216
|
+
style: Rf,
|
|
11200
11217
|
children: e.title
|
|
11201
11218
|
}), /* @__PURE__ */ W("span", {
|
|
11202
|
-
style:
|
|
11219
|
+
style: zf,
|
|
11203
11220
|
children: [
|
|
11204
11221
|
e.key,
|
|
11205
11222
|
":",
|
|
@@ -11216,7 +11233,7 @@ var rd = {
|
|
|
11216
11233
|
e.layouts.length > 1 && /* @__PURE__ */ U("select", {
|
|
11217
11234
|
value: i,
|
|
11218
11235
|
onChange: y,
|
|
11219
|
-
style:
|
|
11236
|
+
style: Bf,
|
|
11220
11237
|
children: e.layouts.map((e, t) => /* @__PURE__ */ U("option", {
|
|
11221
11238
|
value: t,
|
|
11222
11239
|
children: e.title || e.key
|
|
@@ -11225,13 +11242,13 @@ var rd = {
|
|
|
11225
11242
|
/* @__PURE__ */ U("button", {
|
|
11226
11243
|
type: "button",
|
|
11227
11244
|
onClick: b,
|
|
11228
|
-
style:
|
|
11245
|
+
style: Vf,
|
|
11229
11246
|
children: "Reset"
|
|
11230
11247
|
}),
|
|
11231
11248
|
/* @__PURE__ */ U("button", {
|
|
11232
11249
|
type: "button",
|
|
11233
11250
|
onClick: () => l(!1),
|
|
11234
|
-
style:
|
|
11251
|
+
style: Hf,
|
|
11235
11252
|
title: "Collapse DevTools",
|
|
11236
11253
|
children: /* @__PURE__ */ W("svg", {
|
|
11237
11254
|
width: "14",
|
|
@@ -11259,13 +11276,13 @@ var rd = {
|
|
|
11259
11276
|
})]
|
|
11260
11277
|
}),
|
|
11261
11278
|
/* @__PURE__ */ U("div", {
|
|
11262
|
-
style:
|
|
11263
|
-
children:
|
|
11279
|
+
style: Uf,
|
|
11280
|
+
children: jf.map((e) => /* @__PURE__ */ U("button", {
|
|
11264
11281
|
type: "button",
|
|
11265
11282
|
onClick: () => s(e.key),
|
|
11266
11283
|
style: {
|
|
11267
|
-
...
|
|
11268
|
-
...o === e.key ?
|
|
11284
|
+
...Wf,
|
|
11285
|
+
...o === e.key ? Gf : {}
|
|
11269
11286
|
},
|
|
11270
11287
|
children: e.label
|
|
11271
11288
|
}, e.key))
|
|
@@ -11278,7 +11295,7 @@ var rd = {
|
|
|
11278
11295
|
display: o === "content" ? "flex" : "none",
|
|
11279
11296
|
flexDirection: "column"
|
|
11280
11297
|
},
|
|
11281
|
-
children: /* @__PURE__ */ U(
|
|
11298
|
+
children: /* @__PURE__ */ U(kf, {
|
|
11282
11299
|
label: "content",
|
|
11283
11300
|
value: d,
|
|
11284
11301
|
onChange: f
|
|
@@ -11292,7 +11309,7 @@ var rd = {
|
|
|
11292
11309
|
display: o === "styles" ? "flex" : "none",
|
|
11293
11310
|
flexDirection: "column"
|
|
11294
11311
|
},
|
|
11295
|
-
children: /* @__PURE__ */ U(
|
|
11312
|
+
children: /* @__PURE__ */ U(kf, {
|
|
11296
11313
|
label: "styles",
|
|
11297
11314
|
value: p,
|
|
11298
11315
|
onChange: m
|
|
@@ -11306,7 +11323,7 @@ var rd = {
|
|
|
11306
11323
|
display: o === "config" ? "flex" : "none",
|
|
11307
11324
|
flexDirection: "column"
|
|
11308
11325
|
},
|
|
11309
|
-
children: /* @__PURE__ */ U(
|
|
11326
|
+
children: /* @__PURE__ */ U(kf, {
|
|
11310
11327
|
label: "config",
|
|
11311
11328
|
value: h,
|
|
11312
11329
|
onChange: g
|
|
@@ -11316,16 +11333,16 @@ var rd = {
|
|
|
11316
11333
|
})
|
|
11317
11334
|
]
|
|
11318
11335
|
});
|
|
11319
|
-
},
|
|
11336
|
+
}, Nf = {
|
|
11320
11337
|
position: "relative",
|
|
11321
11338
|
width: "100%",
|
|
11322
11339
|
minHeight: "100vh",
|
|
11323
11340
|
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
|
|
11324
11341
|
color: "#1a1a1a"
|
|
11325
|
-
},
|
|
11342
|
+
}, Pf = {
|
|
11326
11343
|
width: "100%",
|
|
11327
11344
|
minHeight: "100vh"
|
|
11328
|
-
},
|
|
11345
|
+
}, Ff = {
|
|
11329
11346
|
position: "fixed",
|
|
11330
11347
|
bottom: 20,
|
|
11331
11348
|
right: 20,
|
|
@@ -11343,7 +11360,7 @@ var rd = {
|
|
|
11343
11360
|
justifyContent: "center",
|
|
11344
11361
|
color: "#374151",
|
|
11345
11362
|
transition: "transform 0.15s ease, box-shadow 0.15s ease"
|
|
11346
|
-
},
|
|
11363
|
+
}, If = {
|
|
11347
11364
|
position: "fixed",
|
|
11348
11365
|
top: 12,
|
|
11349
11366
|
right: 12,
|
|
@@ -11359,38 +11376,38 @@ var rd = {
|
|
|
11359
11376
|
boxShadow: "0 8px 40px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.06)",
|
|
11360
11377
|
overflow: "hidden",
|
|
11361
11378
|
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"
|
|
11362
|
-
},
|
|
11379
|
+
}, Lf = {
|
|
11363
11380
|
display: "flex",
|
|
11364
11381
|
alignItems: "center",
|
|
11365
11382
|
justifyContent: "space-between",
|
|
11366
11383
|
padding: "10px 12px",
|
|
11367
11384
|
borderBottom: "1px solid rgba(0,0,0,0.06)",
|
|
11368
11385
|
flexShrink: 0
|
|
11369
|
-
},
|
|
11386
|
+
}, Rf = {
|
|
11370
11387
|
fontSize: 13,
|
|
11371
11388
|
fontWeight: 600
|
|
11372
|
-
},
|
|
11389
|
+
}, zf = {
|
|
11373
11390
|
fontSize: 10,
|
|
11374
11391
|
fontFamily: "monospace",
|
|
11375
11392
|
color: "#6b7280",
|
|
11376
11393
|
backgroundColor: "#f3f4f6",
|
|
11377
11394
|
padding: "2px 5px",
|
|
11378
11395
|
borderRadius: 4
|
|
11379
|
-
},
|
|
11396
|
+
}, Bf = {
|
|
11380
11397
|
fontSize: 12,
|
|
11381
11398
|
padding: "3px 6px",
|
|
11382
11399
|
border: "1px solid #d1d5db",
|
|
11383
11400
|
borderRadius: 4,
|
|
11384
11401
|
backgroundColor: "#fff",
|
|
11385
11402
|
cursor: "pointer"
|
|
11386
|
-
},
|
|
11403
|
+
}, Vf = {
|
|
11387
11404
|
fontSize: 12,
|
|
11388
11405
|
padding: "3px 8px",
|
|
11389
11406
|
border: "1px solid #d1d5db",
|
|
11390
11407
|
borderRadius: 4,
|
|
11391
11408
|
backgroundColor: "#fff",
|
|
11392
11409
|
cursor: "pointer"
|
|
11393
|
-
},
|
|
11410
|
+
}, Hf = {
|
|
11394
11411
|
display: "flex",
|
|
11395
11412
|
alignItems: "center",
|
|
11396
11413
|
justifyContent: "center",
|
|
@@ -11401,11 +11418,11 @@ var rd = {
|
|
|
11401
11418
|
backgroundColor: "transparent",
|
|
11402
11419
|
cursor: "pointer",
|
|
11403
11420
|
color: "#6b7280"
|
|
11404
|
-
},
|
|
11421
|
+
}, Uf = {
|
|
11405
11422
|
display: "flex",
|
|
11406
11423
|
borderBottom: "1px solid rgba(0,0,0,0.06)",
|
|
11407
11424
|
flexShrink: 0
|
|
11408
|
-
},
|
|
11425
|
+
}, Wf = {
|
|
11409
11426
|
fontSize: 12,
|
|
11410
11427
|
padding: "7px 14px",
|
|
11411
11428
|
border: "none",
|
|
@@ -11413,11 +11430,11 @@ var rd = {
|
|
|
11413
11430
|
backgroundColor: "transparent",
|
|
11414
11431
|
cursor: "pointer",
|
|
11415
11432
|
color: "#6b7280"
|
|
11416
|
-
},
|
|
11433
|
+
}, Gf = {
|
|
11417
11434
|
color: "#1a1a1a",
|
|
11418
11435
|
borderBottomColor: "#1a1a1a",
|
|
11419
11436
|
fontWeight: 500
|
|
11420
|
-
},
|
|
11437
|
+
}, Kf = ["element", "group"], qf = /* @__PURE__ */ "BoxWidget.ButtonWidget.LayoutWidget.HeadingWidget.IframeWidget.ImageWidget.IconWidget.MediaWidget.TypographyWidget.BlogContentWidget.CarouselWidget.FormWidget.ContainerWidget.UserMenuWidget.TabsListWidget.TabsTriggerWidget.TabsContentWidget.NavMenuWidget.CardWidget.TitleWidget.TextWidget.NumberWidget.URLWidget.ImageUploadWidget.MultiImageUploadWidget.TextareaWidget.RichTextWidget.DropdownWidget.SwitchWidget.DateWidget.ArrayWidget.RecordWidget".split("."), Jf = qf.reduce((e, t) => (e[t] = t, e), {}), Yf = [
|
|
11421
11438
|
"collection",
|
|
11422
11439
|
"event",
|
|
11423
11440
|
"blog",
|
|
@@ -11427,7 +11444,7 @@ var rd = {
|
|
|
11427
11444
|
"blog_author",
|
|
11428
11445
|
"blog_category",
|
|
11429
11446
|
"blog_tag"
|
|
11430
|
-
],
|
|
11447
|
+
], Xf = [
|
|
11431
11448
|
"linkedin",
|
|
11432
11449
|
"google",
|
|
11433
11450
|
"oauth",
|
|
@@ -11438,4 +11455,4 @@ var rd = {
|
|
|
11438
11455
|
"password"
|
|
11439
11456
|
];
|
|
11440
11457
|
//#endregion
|
|
11441
|
-
export { Ce as ALTERNATE_METHOD_VALUES, ye as ALTERNATIVE_AUTH_METHODS, Os as AccordionContent, Es as AccordionItem, Ts as AccordionRoot, Ds as AccordionTrigger, ne as AuthProvider, xe as AuthenticationOptions, Wu as Avatar, Yu as AvatarBadge, qu as AvatarFallback, Ju as AvatarFallbackV2, Xu as AvatarGroup, Zu as AvatarGroupCount, Gu as AvatarImage, Ku as AvatarImageV2, lu as BUILT_IN_PRESETS, Eu as BackgroundEffects, dc as BaseBlogContent, O as BaseButton, Dc as BaseContainer, Yl as BaseHeading, fd as BaseLanguageSwitcher, Du as BaseSection, Lu as BaseTypography, zu as BaseUserMenu, v as BlockProvider,
|
|
11458
|
+
export { Ce as ALTERNATE_METHOD_VALUES, ye as ALTERNATIVE_AUTH_METHODS, Os as AccordionContent, Es as AccordionItem, Ts as AccordionRoot, Ds as AccordionTrigger, ne as AuthProvider, xe as AuthenticationOptions, Wu as Avatar, Yu as AvatarBadge, qu as AvatarFallback, Ju as AvatarFallbackV2, Xu as AvatarGroup, Zu as AvatarGroupCount, Gu as AvatarImage, Ku as AvatarImageV2, lu as BUILT_IN_PRESETS, Eu as BackgroundEffects, dc as BaseBlogContent, O as BaseButton, Dc as BaseContainer, Yl as BaseHeading, fd as BaseLanguageSwitcher, Du as BaseSection, Lu as BaseTypography, zu as BaseUserMenu, v as BlockProvider, Yf as BlockSourceModuleList, Go as BlocksRegistry, fc as BlogContent, Vu as BookingConfirmation, Uu as BookingModal, Hu as BookingSummary, hc as Box, C as Button, ed as Calendar, Ec as Carousel, bc as CarouselContent, wc as CarouselDotButton, Tc as CarouselDots, xc as CarouselItem, Cc as CarouselNext, Sc as CarouselPrevious, Fc as CategoryFilter, _l as CommentStatusBadge, Fl as Comments, Wl as CommentsRestrictionOverlay, Oc as Container, Ll as CreateForumPost, J as DATA_ATTRIBUTES, sa as DATE_DISPLAYS, ca as DATE_FORMATS, da as DATE_HOUR12_VALUES, ua as DATE_LOCALES, la as DATE_STYLES, fa as DEFAULT_DATE_SPEC, _ as DEFAULT_FROM_STATE, ho as DEFAULT_THEME, T as DEFAULT_TRANSITION, S as DEFAULT_VIEWPORT, y as DEFAULT_VISIBLE_STATE, Mf as DevTools, Df as DevToolsPreview, Ac as EditForm, Pc as Form, Cl as FormInput, nd as FormTextarea, Bl as ForumPost, Lc as ForumProvider, cd as GlobalSearch, Xl as Heading, Xf as IMembershipAuthenticationMethods, E as Icon, Ql as Iframe, iu as Image, vl as Input, xd as IntegrationFilters, Hl as JoinRequestForm, kf as JsonEditor, Yo as KBChat, Qu as Kbd, $u as KbdGroup, Kf as KindList, pd as LanguageSwitcher, zo as LazyMotionProvider, Zo as LevoBlock, ls as LevoPage, ou as Link, Y as MESSAGE_TYPES, es as MadeWithLevo, cu as Media, _e as PENDING_APPROVAL_ERROR_CODE, uu as PRESET_CATEGORIES, du as PRESET_MAP, he as PRIMARY_AUTH_METHODS, be as PRIMARY_METHOD_VALUES, Gl as PendingRequestState, Zc as PopoverContent, qc as PopoverRoot, Xc as PopoverTrigger, m as PopupLoader, ol as PostActions, tl as PostCategory, rl as PostContent, cl as PostGallery, el as PostHeader, sl as PostLink, Vl as PostLinkWrapper, pl as PostPoll, hl as PostStatusBadge, nl as PostTitle, ql as PostsRestrictionOverlay, Mi as PreviewHighlighter, Ef as RegisterModal, Ul as SampleCommentSkeleton, Kl as SamplePostSkeleton, Jl as SearchInput, Ou as Section, Wc as SimpleTooltipWrapper, Q as Skeleton, il as StatContainer, _s as StudioPreview, qf as StudioWidgetList, Jf as StudioWidgetMap, Fu as TabsContent, Nu as TabsList, ku as TabsRoot, Pu as TabsTrigger, Bc as Tooltip, Uc as TooltipContent, Hc as TooltipPortal, zc as TooltipProvider, Vc as TooltipTrigger, Ru as Typography, Bu as UserMenu, La as VARIABLE_SINGLE_TOKEN_REGEX, Ia as VARIABLE_TOKEN_REGEX, Ma as VARIABLE_TRANSFORMS, Ko as blocksRegistry, ud as buildLocalizedHref, Zi as clearContentCache, Xa as colorOptions, lc as convertHtmlToJSON, Kr as convertKeysToPascalCase, no as cssOptionsMap, _a as dateSpecToArgs, Fa as evaluateVariableToken, ko as fetchCollectionSchema, Oo as fetchSource, vs as findFieldSchema, ys as flattenVariableMatches, Ja as generateAccentColor, Ni as generateBodyContent, Yr as generateDefaultContent, Vr as generateSchemaFromJSX, So as generateThemeStyles, yo as generateThemeVariables, p as generateVariantClasses, pu as getAvailableCategories, gu as getEffectConfigFromPresetId, Lo as getInitialPageContent, $i as getKeysWithValue, w as getNestedValue, Ro as getPageData, Po as getPageSource, fu as getPresetsByCategory, qa as getWcagContrast, Ua as hexToOKLCH, Se as isAlternateMethod, D as isConfigWithVariants, ge as isPendingApprovalError, ve as isPrimaryMethod, Ha as isValidOKLCH, _o as normalizeColorName, vo as normalizeFontName, Va as oklchStringToRGBA, Ka as oklchToHex, Ga as oklchToRGBA, X as oklchToString, ga as parseDateSpec, h as parseGroupContext, Wa as parseOKLCHString, ia as parseVariableToken, Fo as parseVariablesFromResolvedSource, go as processFonts, Co as processTheme, Qi as resetContentCache, No as resolveStyles, Mo as resolveVariables, za as rgbaToOKLCH, Ba as rgbaToOKLCHString, vu as sanitizeBackgroundEffectConfig, x as sanitizeElementKey, Xi as schemaCache, Af as schemaToBlockInstance, xa as snapDateStyle, Yi as sourceCache, ba as stylesFor, A as useAuth, f as useBlockContext, k as useCommonProps, Bo as useContentEngine, Vo as useContextEngine, vc as useDotButton, Rc as useForumContext, g as useGeneratedClassName, ee as useLanguageVariants, fe as useLogin, Ho as usePageContext, Uo as usePageMeta, pe as useStripePayment, aa as variableTokenToString };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@levo-so/studio",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"author": "Levo Engineering <devs@theinternetfolks.com>",
|
|
5
5
|
"description": "Levo Studio components and utilities for building block-based pages",
|
|
6
6
|
"type": "module",
|
|
@@ -119,8 +119,8 @@
|
|
|
119
119
|
"react": ">=19",
|
|
120
120
|
"next": ">=14",
|
|
121
121
|
"react-dom": ">=19",
|
|
122
|
-
"@levo-so/insights": "0.2.1",
|
|
123
122
|
"@levo-so/core": "0.2.1",
|
|
124
|
-
"@levo-so/react": "0.2.1"
|
|
123
|
+
"@levo-so/react": "0.2.1",
|
|
124
|
+
"@levo-so/insights": "0.2.1"
|
|
125
125
|
}
|
|
126
126
|
}
|