@levo-so/studio 0.1.99 → 0.1.100

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 (41) hide show
  1. package/{BillingStep-CD-nP5Zg.js → BillingStep-Brc1Mzo3.js} +1 -1
  2. package/{Button-BN9tHQ7U.js → Button-XTKnNIl9.js} +11 -5
  3. package/{CollectionInput-57OEuaRO.js → CollectionInput-cmJ0RXzG.js} +1 -1
  4. package/DateTimeWidget-B5lBr0_R.js +255 -0
  5. package/{EntryCard-DMxKxYzC.js → EntryCard-CYdsSkIk.js} +3 -3
  6. package/{CollectionField-BpRjsPIl.js → Input-Btdc1Dee.js} +115 -76
  7. package/{LoginCard-Dgl3uq38.js → LoginCard-5LaKaFCO.js} +3 -3
  8. package/{LoginModal-CVh8k24t.js → LoginModal-BdYM8INu.js} +3 -3
  9. package/{MessageCard-BYxgc9dl.js → MessageCard-ChDBqLVG.js} +2 -2
  10. package/{ModalManager-D2pV7Ba2.js → ModalManager-SggxCIno.js} +1 -1
  11. package/{PendingApprovalCard-ZIhBzT3K.js → PendingApprovalCard-z2sdLyCa.js} +3 -3
  12. package/{PhoneWidget-cSp-CqJl.js → PhoneWidget-1ffYuESC.js} +11 -11
  13. package/{Popover-ieqK7ZXF.js → Popover-BdKCElnb.js} +2 -1
  14. package/RichTextWidget-CjEoGecM.js +1136 -0
  15. package/{Tooltip-9zds9Zoi.js → Tooltip-BOq5vSOW.js} +2 -1
  16. package/{VerifyButton-faa0wOES.js → VerifyButton-CdPQqtc2.js} +3 -2
  17. package/{bookingCard-OUT621LL.js → bookingCard-D3ZSjq-P.js} +3 -3
  18. package/collection.d.ts +20 -7
  19. package/collection.js +7 -7
  20. package/dist-ir7pIkAm.js +3115 -0
  21. package/{getFieldValidations-j341NV59.js → getFieldValidations-DZnDgNI0.js} +48 -87
  22. package/index.d.ts +6 -4
  23. package/index.js +3017 -1242
  24. package/{nodeAlignment-UpurkBVP.js → nodeAlignment-BZbdafVA.js} +31 -32
  25. package/package.json +10 -10
  26. package/studio.css +1 -1
  27. package/{utils-C_ATWxPM.js → utils-CsfPGq4R.js} +1 -1
  28. package/{widgets-BHUjv2OM.js → widgets-DD4OjK2Y.js} +87 -74
  29. package/DateTimeWidget-BlOQYia2.js +0 -255
  30. package/RichTextWidget-BeUcHYmx.js +0 -1131
  31. package/dist-IAADcuph.js +0 -3113
  32. /package/{Beams-Blr-zwvz.js → Beams-B0O3uyYF.js} +0 -0
  33. /package/{Dots-DeBKuibU.js → Dots-DjezbpLp.js} +0 -0
  34. /package/{Gradient-DGFxOjft.js → Gradient-B1K9Yi04.js} +0 -0
  35. /package/{Grid-A7HRCQ0T.js → Grid-C9aUfXM-.js} +0 -0
  36. /package/{LoginForm-CPMtCyMF.js → LoginForm-Ck-xFaDg.js} +0 -0
  37. /package/{MessageFooter-C6DivT4m.js → MessageFooter-AzAtJWMo.js} +0 -0
  38. /package/{StripePaymentModal-DC-ySB_o.js → StripePaymentModal-BHIBBvRj.js} +0 -0
  39. /package/{Waves-CIT6Ngng.js → Waves-BkaAfGqA.js} +0 -0
  40. /package/{card-izMd2DvE.js → card-BQr9258p.js} +0 -0
  41. /package/{dialog-BJpM4UEG.js → dialog-Dw6n_36P.js} +0 -0
@@ -3,114 +3,75 @@ import { jsx as a } from "react/jsx-runtime";
3
3
  import { FieldInterfaces as o } from "@levo-so/core";
4
4
  import { c as s } from "react/compiler-runtime";
5
5
  import c from "clsx";
6
- import { createRuntimeFn as l } from "@vanilla-extract/recipes/createRuntimeFn";
7
- import { isValidPhoneNumber as u } from "react-phone-number-input";
8
- import * as d from "yup";
6
+ import { isValidPhoneNumber as l } from "react-phone-number-input";
7
+ import * as u from "yup";
9
8
  //#region ../../libraries/levocn/dist/styles/reset.cssm.js
10
- var f = "_1er5g5a0", p = /* @__PURE__ */ new Set(), m = {}, h = e(null), g = () => {
11
- let e = s(1), n = t(h);
9
+ var d = "_1er5g5a0", f = /* @__PURE__ */ new Set(), p = {}, m = e(null), h = () => {
10
+ let e = s(1), n = t(m);
12
11
  if (!n) {
13
12
  let t;
14
13
  return e[0] === Symbol.for("react.memo_cache_sentinel") ? (t = {
15
14
  portalRef: { current: null },
16
- classes: p,
17
- overrides: m
15
+ classes: f,
16
+ overrides: p
18
17
  }, e[0] = t) : t = e[0], t;
19
18
  }
20
19
  return n;
21
- }, _ = ({ children: e, cssReset: o, className: s, style: l, ...u }) => {
22
- let d = t(h), g = i(null), _ = !d && o !== !1 ? f : "", v = d?.classes ?? p, y = d?.overrides ?? m, b = r(() => {
23
- let e = s ? s.split(/\s+/).filter(Boolean) : [], t = new Set(v);
20
+ }, g = ({ children: e, cssReset: o, className: s, style: l, portalToThemeRoot: u, ...h }) => {
21
+ let g = t(m), _ = i(null), v = !g && o !== !1 ? d : "", y = g?.classes ?? f, b = g?.overrides ?? p, x = r(() => {
22
+ let e = s ? s.split(/\s+/).filter(Boolean) : [], t = new Set(y);
24
23
  for (let n of e) t.add(n);
25
24
  return {
26
- portalRef: g,
25
+ portalRef: _,
27
26
  classes: t,
28
27
  overrides: {
29
- ...y,
28
+ ...b,
30
29
  ...l
31
30
  }
32
31
  };
33
32
  }, [
34
- v,
35
- s,
36
33
  y,
34
+ s,
35
+ b,
37
36
  l
38
37
  ]);
39
38
  n(() => {
39
+ if (u) return;
40
40
  let e = document.createElement("div");
41
- return document.body.appendChild(e), g.current = e, () => {
42
- document.body.removeChild(e), g.current = null;
41
+ return document.body.appendChild(e), _.current = e, () => {
42
+ document.body.removeChild(e), _.current = null;
43
43
  };
44
- }, []), n(() => {
45
- let e = g.current;
44
+ }, [u]), n(() => {
45
+ if (u) return;
46
+ let e = _.current;
46
47
  if (!e) return;
47
- e.className = c(_, ...b.classes), e.style.cssText = "";
48
+ e.className = c(v, ...x.classes), e.style.cssText = "";
48
49
  let t = {
49
50
  display: "contents",
50
- ...b.overrides
51
+ ...x.overrides
51
52
  };
52
53
  for (let [n, r] of Object.entries(t)) r != null && e.style.setProperty(n, String(r));
53
54
  }, [
54
- b.classes,
55
- b.overrides,
56
- _
55
+ x.classes,
56
+ x.overrides,
57
+ v,
58
+ u
57
59
  ]);
58
- let x = c(_, ...s ? s.split(/\s+/).filter((e) => e && !v.has(e)) : []);
59
- return /* @__PURE__ */ a(h.Provider, {
60
- value: b,
60
+ let S = c(v, ...s ? s.split(/\s+/).filter((e) => e && !y.has(e)) : []);
61
+ return /* @__PURE__ */ a(m.Provider, {
62
+ value: x,
61
63
  children: /* @__PURE__ */ a("div", {
62
- className: x,
64
+ ...u ? { ref: _ } : {},
65
+ ...S ? { className: S } : {},
63
66
  style: {
64
67
  display: "contents",
65
68
  ...l
66
69
  },
67
- ...u,
70
+ ...h,
68
71
  children: e
69
72
  })
70
73
  });
71
- }, v = l({
72
- defaultClassName: "_1a7d0ek1 _1a7d0ek0",
73
- variantClassNames: {
74
- variant: {
75
- default: "_1a7d0ek2",
76
- outline: "_1a7d0ek3",
77
- secondary: "_1a7d0ek4",
78
- ghost: "_1a7d0ek5",
79
- destructive: "_1a7d0ek6",
80
- link: "_1a7d0ek7"
81
- },
82
- size: {
83
- default: "_1a7d0ek8",
84
- xs: "_1a7d0ek9",
85
- sm: "_1a7d0eka",
86
- lg: "_1a7d0ekb",
87
- icon: "_1a7d0ekc",
88
- "icon-xs": "_1a7d0ekd",
89
- "icon-sm": "_1a7d0eke",
90
- "icon-lg": "_1a7d0ekf"
91
- }
92
- },
93
- defaultVariants: {
94
- variant: "default",
95
- size: "default"
96
- },
97
- compoundVariants: []
98
- }), y = (e) => {
99
- let t = s(14), n, r, i, o, l;
100
- t[0] === e ? (n = t[1], r = t[2], i = t[3], o = t[4], l = t[5]) : ({className: n, variant: l, size: i, type: o, ...r} = e, t[0] = e, t[1] = n, t[2] = r, t[3] = i, t[4] = o, t[5] = l);
101
- let u = o === void 0 ? "button" : o, d;
102
- t[6] !== n || t[7] !== i || t[8] !== l ? (d = c(v({
103
- variant: l,
104
- size: i
105
- }), n), t[6] = n, t[7] = i, t[8] = l, t[9] = d) : d = t[9];
106
- let f;
107
- return t[10] !== r || t[11] !== d || t[12] !== u ? (f = /* @__PURE__ */ a("button", {
108
- "data-slot": "button",
109
- type: u,
110
- className: d,
111
- ...r
112
- }), t[10] = r, t[11] = d, t[12] = u, t[13] = f) : f = t[13], f;
113
- }, b = (e, t) => {
74
+ }, _ = (e, t) => {
114
75
  let n = (e?.label || e?.key || "")?.replace(/_/g, " ");
115
76
  if (n?.endsWith("Id") && (n = n?.replace("Id", "")), n.includes(".")) {
116
77
  let [e] = n.split(".");
@@ -122,21 +83,21 @@ var f = "_1er5g5a0", p = /* @__PURE__ */ new Set(), m = {}, h = e(null), g = ()
122
83
  }, i;
123
84
  switch (e.field_interface) {
124
85
  case o.NumberWidget:
125
- i = r(d.number());
86
+ i = r(u.number());
126
87
  break;
127
88
  case o.ArrayWidget:
128
- i = r(d.array().typeError("The field must be an array"));
89
+ i = r(u.array().typeError("The field must be an array"));
129
90
  break;
130
91
  case o.RecordWidget:
131
- i = d.object();
92
+ i = u.object();
132
93
  break;
133
94
  case o.EmailWidget:
134
- i = r(d.string().email("The email address is not valid"));
95
+ i = r(u.string().email("The email address is not valid"));
135
96
  break;
136
97
  case o.PhoneWidget:
137
- i = r(d.string().test("phone", "The phone number has incorrect format", (e) => {
98
+ i = r(u.string().test("phone", "The phone number has incorrect format", (e) => {
138
99
  if (e) try {
139
- return u(e);
100
+ return l(e);
140
101
  } catch {
141
102
  return !1;
142
103
  }
@@ -144,35 +105,35 @@ var f = "_1er5g5a0", p = /* @__PURE__ */ new Set(), m = {}, h = e(null), g = ()
144
105
  }));
145
106
  break;
146
107
  case o.URLWidget:
147
- i = r(d.string().matches(/^(?:https?:\/\/)?(?:[a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+(?:\.[a-zA-Z]{2,})+(?:\/[^\s?#]*)?(?:\?[^\s]*)?$/, "The URL is not valid"));
108
+ i = r(u.string().matches(/^(?:https?:\/\/)?(?:[a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+(?:\.[a-zA-Z]{2,})+(?:\/[^\s?#]*)?(?:\?[^\s]*)?$/, "The URL is not valid"));
148
109
  break;
149
110
  case o.ImageUploadWidget:
150
111
  case o.FileUploadWidget:
151
112
  case o.GeocoderWidget:
152
- i = d.object();
113
+ i = u.object();
153
114
  break;
154
115
  case o.MultiImageUploadWidget:
155
116
  case o.MultiFileUploadWidget:
156
117
  case o.MultiGeocoderWidget:
157
- i = d.array().of(d.object());
118
+ i = u.array().of(u.object());
158
119
  break;
159
120
  case o.JSONWidget:
160
121
  case o.DropdownWidget:
161
- i = d.string();
122
+ i = u.string();
162
123
  break;
163
124
  case o.MultiTextWidget:
164
125
  case o.MultiDropdownWidget:
165
126
  case o.CheckboxWidget:
166
- i = d.array().of(d.string());
127
+ i = u.array().of(u.string());
167
128
  break;
168
129
  case o.ToggleCheckboxWidget:
169
- i = d.boolean();
130
+ i = u.boolean();
170
131
  break;
171
132
  case o.CollectionWidget:
172
- i = e.options.current_have_many_connected ? d.array() : d.object();
133
+ i = e.options.current_have_many_connected ? u.array() : u.object();
173
134
  break;
174
135
  default:
175
- i = r(d.string());
136
+ i = r(u.string());
176
137
  break;
177
138
  }
178
139
  if (e.options?.validationsPresets && Array.isArray(e.options.validationsPresets)) {
@@ -189,10 +150,10 @@ var f = "_1er5g5a0", p = /* @__PURE__ */ new Set(), m = {}, h = e(null), g = ()
189
150
  try {
190
151
  return i.validateSync(n), t ? t(n) : !0;
191
152
  } catch (e) {
192
- return e instanceof d.ValidationError ? e.message : !0;
153
+ return e instanceof u.ValidationError ? e.message : !0;
193
154
  }
194
155
  }
195
156
  };
196
157
  };
197
158
  //#endregion
198
- export { _ as a, g as i, y as n, v as r, b as t };
159
+ export { h as n, g as r, _ as t };
package/index.d.ts CHANGED
@@ -260,8 +260,7 @@ export declare type BlockComponent = ComponentType<ILevoBlockBaseProps<any>> | L
260
260
  /** Full context value exposed via useBlockContext — includes derived fields */
261
261
  declare type BlockContextType = BlockProviderInput & {
262
262
  setParsedBlockData?: React.Dispatch<React.SetStateAction<IBlockInstance | undefined>>;
263
- /** @deprecated Use `renderMode` for precise context checks. Derived from `renderMode` for backwards compatibility. */
264
- isBuilder: boolean;
263
+ isStudio: boolean;
265
264
  };
266
265
 
267
266
  export declare const BlockProvider: React.FC<{
@@ -1067,8 +1066,6 @@ declare interface ICollectionTheme {
1067
1066
  borderRadius: string;
1068
1067
  labelFontSize: string;
1069
1068
  helpFontSize: string;
1070
- textColor: string;
1071
- helperTextColor: string;
1072
1069
  };
1073
1070
  input: {
1074
1071
  fontSize: string;
@@ -1659,6 +1656,10 @@ export declare type IRenderMode = "live" | "studio.page" | "studio.block";
1659
1656
 
1660
1657
  declare interface IRteTheme {
1661
1658
  baseSpacing: string;
1659
+ /** Background color for text selection and highlighted nodes. */
1660
+ highlight: string;
1661
+ /** Foreground (text) color for selected/highlighted content. */
1662
+ highlightForeground: string;
1662
1663
  }
1663
1664
 
1664
1665
  /**
@@ -1966,6 +1967,7 @@ declare interface ITheme_2 {
1966
1967
  mutedForeground: string;
1967
1968
  destructive: string;
1968
1969
  input: string;
1970
+ inputForeground: string;
1969
1971
  ring: string;
1970
1972
  };
1971
1973
  radius: string;