@chaibuilder/sdk 2.2.4 → 2.2.6
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/dist/{CodeEditor-HKrlrH8b.js → code-editor-BP81Fo3h.js} +25 -25
- package/dist/code-editor-CRaw45ej.cjs +1 -0
- package/dist/core.cjs +1 -66
- package/dist/core.d.ts +44 -36
- package/dist/core.js +87 -9517
- package/dist/index-CPwl7tLt.cjs +66 -0
- package/dist/index-DojHY3B4.js +9620 -0
- package/dist/render.cjs +2 -2
- package/dist/render.d.ts +2 -4
- package/dist/render.js +81 -35
- package/dist/web-blocks.cjs +2 -2
- package/dist/web-blocks.js +284 -220
- package/package.json +1 -1
- package/dist/CodeEditor-B7r9YjDC.cjs +0 -1
- package/dist/render-chai-blocks-6SVNwoLW.js +0 -201
- package/dist/render-chai-blocks-Bvl2_fRE.cjs +0 -1
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("./core.cjs");require("lodash-es");require("clsx");require("tailwind-merge");require("tree-model");const c=require("react");require("jotai");require("@chaibuilder/runtime");const C=require("react-i18next"),v=require("./sooner-AJ7QkeLS.cjs"),j=require("@radix-ui/react-icons"),q=require("@react-hookz/web"),d=o=>{const s=document.createElement("div");return s.innerHTML=o,s.innerHTML};function g(){const{t:o}=C.useTranslation(),[s,x]=c.useState(!1),[i,m]=c.useState(""),[t,a]=n.useCodeEditor(),[u]=n.useSelectedBlockIds(),b=n.useUpdateBlocksProps(),f=n.useUpdateBlocksPropsRealtime(),h=q.useThrottledCallback(l=>{const r=d(l);f([t.blockId],{[t.blockProp]:r})},[],300),p=c.useCallback(()=>{if(s){const l=d(i);b([t.blockId],{[t.blockProp]:l})}},[s,i]);c.useEffect(()=>{u.includes(t==null?void 0:t.blockId)||(p(),a(null))},[u]);const k=()=>{a(null)};return e.jsxs("div",{className:"h-full rounded-t-lg border-t-4 border-black bg-black text-white",children:[e.jsx("button",{onClick:k,className:"fixed inset-0 z-[100000] cursor-default bg-gray-400/20"}),e.jsxs("div",{className:"relative z-[100001] h-full w-full flex-col gap-y-1",children:[e.jsxs("div",{className:"-mt-1 flex items-center justify-between px-2 py-2",children:[e.jsxs("h3",{className:"space-x-3 text-sm font-semibold",children:[e.jsx("span",{children:o("HTML Code Editor |")}),e.jsx("span",{className:"text-xs text-gray-400",children:o("Scripts will be only executed in preview and live mode.")})]}),e.jsx("div",{className:"flex gap-x-2",children:e.jsx(v.Button,{onClick:()=>a(null),size:"sm",variant:"destructive",className:"h-6 w-fit",children:e.jsx(j.Cross2Icon,{})})})]}),e.jsx("textarea",{className:"h-full w-full bg-black p-2 font-mono text-xs text-white/90",value:i||t.initialCode,onChange:l=>{const r=l.target.value;x(!0),m(r),h(r)}})]})]})}exports.default=g;
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import { jsx as g, jsxs as V } from "react/jsx-runtime";
|
|
2
|
-
import { has as y, omit as h, memoize as O, get as c, isEmpty as f, filter as b, uniqBy as z, cloneDeep as j, forEach as k, keys as B, isString as x, isObject as I, find as _, includes as w } from "lodash-es";
|
|
3
|
-
import S, { Suspense as C, createElement as W } from "react";
|
|
4
|
-
import { getRegisteredChaiBlock as L } from "@chaibuilder/runtime";
|
|
5
|
-
import { twMerge as G } from "tailwind-merge";
|
|
6
|
-
const p = "#styles:", ce = "__ADD_BLOCK_INTERNAL_ROOT", A = (e) => {
|
|
7
|
-
if (e = e.replace(p, ""), !e) return { baseClasses: "", classes: "" };
|
|
8
|
-
const t = e.split(/,(?![^\[]*\])/);
|
|
9
|
-
if (t.length === 1)
|
|
10
|
-
return { baseClasses: "", classes: t[0].trim() };
|
|
11
|
-
const [s, ...n] = t;
|
|
12
|
-
return {
|
|
13
|
-
baseClasses: s.trim(),
|
|
14
|
-
classes: n.join(",").trim().replace(/ +(?= )/g, "")
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
import.meta.vitest && describe("getSplitChaiClasses", () => {
|
|
18
|
-
it("should return the base classes and the classes", () => {
|
|
19
|
-
const e = {
|
|
20
|
-
",styles-2": { baseClasses: "", classes: "styles-2" },
|
|
21
|
-
"styles-1,styles-2": { baseClasses: "styles-1", classes: "styles-2" },
|
|
22
|
-
",bg-[linear-gradient(-10deg,black,transparent_100%)]": {
|
|
23
|
-
baseClasses: "",
|
|
24
|
-
classes: "bg-[linear-gradient(-10deg,black,transparent_100%)]"
|
|
25
|
-
},
|
|
26
|
-
"styles-1,bg-[linear-gradient(-10deg,black,transparent_100%)]": {
|
|
27
|
-
baseClasses: "styles-1",
|
|
28
|
-
classes: "bg-[linear-gradient(-10deg,black,transparent_100%)]"
|
|
29
|
-
},
|
|
30
|
-
someclass: {
|
|
31
|
-
baseClasses: "",
|
|
32
|
-
classes: "someclass"
|
|
33
|
-
},
|
|
34
|
-
",bg-red-500 text-center font-bold": {
|
|
35
|
-
baseClasses: "",
|
|
36
|
-
classes: "bg-red-500 text-center font-bold"
|
|
37
|
-
},
|
|
38
|
-
"bg-[linear-gradient(-10deg,black,transparent_100%)], bg-[linear-gradient(-10deg,black,transparent_100%)]": {
|
|
39
|
-
baseClasses: "bg-[linear-gradient(-10deg,black,transparent_100%)]",
|
|
40
|
-
classes: "bg-[linear-gradient(-10deg,black,transparent_100%)]"
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
for (let t in e) {
|
|
44
|
-
const s = A(`${p}${t}`);
|
|
45
|
-
expect(s).toEqual(e[t]);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
async function H(e) {
|
|
50
|
-
const t = await e.dataProvider({
|
|
51
|
-
pageProps: e.pageProps,
|
|
52
|
-
block: e.block,
|
|
53
|
-
lang: e.lang,
|
|
54
|
-
draft: e.draft,
|
|
55
|
-
inBuilder: e.inBuilder
|
|
56
|
-
});
|
|
57
|
-
return y(t, "$metadata") && e.dataProviderMetadataCallback(e.block, t.$metadata), /* @__PURE__ */ g(C, { children: S.createElement(e.component, {
|
|
58
|
-
...h(e.props, ["dataProvider", "dataProviderMetadataCallback"]),
|
|
59
|
-
...h(t, "$metadata"),
|
|
60
|
-
key: `${e.block._id}-async`
|
|
61
|
-
}) });
|
|
62
|
-
}
|
|
63
|
-
const J = O((e) => {
|
|
64
|
-
const { baseClasses: t, classes: s } = A(e);
|
|
65
|
-
return G(t, s).replace(p, "").trim();
|
|
66
|
-
}), T = (e, t) => {
|
|
67
|
-
const s = j(e);
|
|
68
|
-
return k(B(s), (n) => {
|
|
69
|
-
if (x(s[n])) {
|
|
70
|
-
let l = s[n];
|
|
71
|
-
const r = /\{\{(.*?)\}\}/g, o = l.match(r);
|
|
72
|
-
o && o.forEach((i) => {
|
|
73
|
-
const d = i.slice(2, -2), m = c(t, d, i);
|
|
74
|
-
l = l.replace(i, m);
|
|
75
|
-
}), s[n] = l;
|
|
76
|
-
}
|
|
77
|
-
I(s[n]) && (s[n] = T(s[n], t));
|
|
78
|
-
}), s;
|
|
79
|
-
};
|
|
80
|
-
function Q(e, t) {
|
|
81
|
-
const s = c(e, `${t}_attrs`, {}), n = B(s).join(" ");
|
|
82
|
-
return w(n, "x-show") && !w(n, "x-transition") && (s["x-transition"] = ""), s;
|
|
83
|
-
}
|
|
84
|
-
function U(e) {
|
|
85
|
-
const t = {};
|
|
86
|
-
return Object.keys(e).forEach((s) => {
|
|
87
|
-
if (x(e[s]) && e[s].startsWith(p)) {
|
|
88
|
-
const n = J(e[s]);
|
|
89
|
-
t[s] = {
|
|
90
|
-
className: n,
|
|
91
|
-
...Q(e, s)
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
}), t;
|
|
95
|
-
}
|
|
96
|
-
function X(e, t, s) {
|
|
97
|
-
if (f(t)) return e;
|
|
98
|
-
const n = j(e), l = c(s, "i18nProps", []);
|
|
99
|
-
return k(B(n), (r) => {
|
|
100
|
-
l.includes(r) && !f(t) && (n[r] = c(n, `${r}-${t}`, n[r]));
|
|
101
|
-
}), n;
|
|
102
|
-
}
|
|
103
|
-
const Z = O((e) => {
|
|
104
|
-
const t = L(e), s = c(t, "schema.properties", {});
|
|
105
|
-
return Object.fromEntries(Object.entries(s).filter(([, n]) => c(n, "runtime", !1)));
|
|
106
|
-
}), ee = (e, t, s) => f(s) ? {} : Object.entries(s).reduce((n, [l, r]) => {
|
|
107
|
-
const o = [];
|
|
108
|
-
let i = _(e, { _id: t });
|
|
109
|
-
for (; i; )
|
|
110
|
-
o.push(i), i = _(e, { _id: i._parent });
|
|
111
|
-
const d = _(o, { _type: r.block });
|
|
112
|
-
return d && (n[l] = c(d, c(r, "prop"), null)), n;
|
|
113
|
-
}, {}), se = () => /* @__PURE__ */ g("span", { children: "Loading..." });
|
|
114
|
-
function oe(e) {
|
|
115
|
-
if (y(e, "metadata") && console.warn(" metadata is deprecated and will be removed in upcoming version, use forwardProps instead"), f(e.lang) && !f(e.fallbackLang))
|
|
116
|
-
throw new Error("lang prop is required when fallbackLang is provided");
|
|
117
|
-
const t = e.lang ?? "en", s = e.fallbackLang ?? t;
|
|
118
|
-
return /* @__PURE__ */ g(K, { ...e, lang: t, fallbackLang: s });
|
|
119
|
-
}
|
|
120
|
-
function K({
|
|
121
|
-
blocks: e,
|
|
122
|
-
parent: t,
|
|
123
|
-
externalData: s = {},
|
|
124
|
-
lang: n = "en",
|
|
125
|
-
fallbackLang: l = "en",
|
|
126
|
-
pageProps: r = {},
|
|
127
|
-
dataProviderMetadataCallback: o = () => {
|
|
128
|
-
},
|
|
129
|
-
draft: i = !1
|
|
130
|
-
}) {
|
|
131
|
-
const d = e, m = (a) => U(a), M = t ? b(e, { _parent: t }) : b(e, (a) => f(a._parent));
|
|
132
|
-
return z(M, "_id").map((a, N) => {
|
|
133
|
-
const E = {}, q = b(d, { _parent: a._id });
|
|
134
|
-
E.children = q.length > 0 ? /* @__PURE__ */ g(
|
|
135
|
-
K,
|
|
136
|
-
{
|
|
137
|
-
externalData: s,
|
|
138
|
-
parent: a._id,
|
|
139
|
-
blocks: d,
|
|
140
|
-
lang: n,
|
|
141
|
-
fallbackLang: l,
|
|
142
|
-
pageProps: r,
|
|
143
|
-
dataProviderMetadataCallback: o,
|
|
144
|
-
draft: i
|
|
145
|
-
},
|
|
146
|
-
`${a._id}-children`
|
|
147
|
-
) : null;
|
|
148
|
-
const u = L(a._type);
|
|
149
|
-
if (u !== null) {
|
|
150
|
-
let P = a;
|
|
151
|
-
const $ = u.component;
|
|
152
|
-
P = { ...u.defaults, ...a };
|
|
153
|
-
const F = n === l ? "" : n, Y = ee(d, a._id, Z(a._type)), v = T(X(a, F, u), s), R = h(
|
|
154
|
-
{
|
|
155
|
-
...P,
|
|
156
|
-
...v,
|
|
157
|
-
...m(v),
|
|
158
|
-
...E,
|
|
159
|
-
...Y,
|
|
160
|
-
index: N,
|
|
161
|
-
lang: n,
|
|
162
|
-
key: a._id,
|
|
163
|
-
draft: i,
|
|
164
|
-
pageProps: r,
|
|
165
|
-
blockProps: {},
|
|
166
|
-
inBuilder: !1
|
|
167
|
-
},
|
|
168
|
-
["_parent"]
|
|
169
|
-
);
|
|
170
|
-
if (y(u, "dataProvider")) {
|
|
171
|
-
const D = c(u, "suspenseFallback", se);
|
|
172
|
-
return /* @__PURE__ */ g(C, { fallback: W(D), children: /* @__PURE__ */ g(
|
|
173
|
-
H,
|
|
174
|
-
{
|
|
175
|
-
inBuilder: !1,
|
|
176
|
-
dataProviderMetadataCallback: o,
|
|
177
|
-
lang: n,
|
|
178
|
-
pageProps: r,
|
|
179
|
-
dataProvider: u.dataProvider,
|
|
180
|
-
block: a,
|
|
181
|
-
component: $,
|
|
182
|
-
props: R,
|
|
183
|
-
draft: i
|
|
184
|
-
},
|
|
185
|
-
`${a._id}-async`
|
|
186
|
-
) }, `${a._id}-suspense`);
|
|
187
|
-
}
|
|
188
|
-
return /* @__PURE__ */ g(C, { children: S.createElement($, R) }, `${a._id}-suspense`);
|
|
189
|
-
}
|
|
190
|
-
return /* @__PURE__ */ V("noscript", { children: [
|
|
191
|
-
a._type,
|
|
192
|
-
" not found"
|
|
193
|
-
] }, `${a._id}-noscript`);
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
export {
|
|
197
|
-
oe as R,
|
|
198
|
-
p as S,
|
|
199
|
-
ce as a,
|
|
200
|
-
A as g
|
|
201
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const u=require("react/jsx-runtime"),s=require("lodash-es"),f=require("react"),E=require("@chaibuilder/runtime"),O=require("tailwind-merge"),p="#styles:",v="__ADD_BLOCK_INTERNAL_ROOT",B=e=>{if(e=e.replace(p,""),!e)return{baseClasses:"",classes:""};const n=e.split(/,(?![^\[]*\])/);if(n.length===1)return{baseClasses:"",classes:n[0].trim()};const[t,...a]=n;return{baseClasses:t.trim(),classes:a.join(",").trim().replace(/ +(?= )/g,"")}};async function L(e){const n=await e.dataProvider({pageProps:e.pageProps,block:e.block,lang:e.lang,draft:e.draft,inBuilder:e.inBuilder});return s.has(n,"$metadata")&&e.dataProviderMetadataCallback(e.block,n.$metadata),u.jsx(f.Suspense,{children:f.createElement(e.component,{...s.omit(e.props,["dataProvider","dataProviderMetadataCallback"]),...s.omit(n,"$metadata"),key:`${e.block._id}-async`})})}const T=s.memoize(e=>{const{baseClasses:n,classes:t}=B(e);return O.twMerge(n,t).replace(p,"").trim()}),S=(e,n)=>{const t=s.cloneDeep(e);return s.forEach(s.keys(t),a=>{if(s.isString(t[a])){let c=t[a];const i=/\{\{(.*?)\}\}/g,o=c.match(i);o&&o.forEach(l=>{const d=l.slice(2,-2),m=s.get(n,d,l);c=c.replace(l,m)}),t[a]=c}s.isObject(t[a])&&(t[a]=S(t[a],n))}),t};function q(e,n){const t=s.get(e,`${n}_attrs`,{}),a=s.keys(t).join(" ");return s.includes(a,"x-show")&&!s.includes(a,"x-transition")&&(t["x-transition"]=""),t}function M(e){const n={};return Object.keys(e).forEach(t=>{if(s.isString(e[t])&&e[t].startsWith(p)){const a=T(e[t]);n[t]={className:a,...q(e,t)}}}),n}function Y(e,n,t){if(s.isEmpty(n))return e;const a=s.cloneDeep(e),c=s.get(t,"i18nProps",[]);return s.forEach(s.keys(a),i=>{c.includes(i)&&!s.isEmpty(n)&&(a[i]=s.get(a,`${i}-${n}`,a[i]))}),a}const K=s.memoize(e=>{const n=E.getRegisteredChaiBlock(e),t=s.get(n,"schema.properties",{});return Object.fromEntries(Object.entries(t).filter(([,a])=>s.get(a,"runtime",!1)))}),A=(e,n,t)=>s.isEmpty(t)?{}:Object.entries(t).reduce((a,[c,i])=>{const o=[];let l=s.find(e,{_id:n});for(;l;)o.push(l),l=s.find(e,{_id:l._parent});const d=s.find(o,{_type:i.block});return d&&(a[c]=s.get(d,s.get(i,"prop"),null)),a},{}),N=()=>u.jsx("span",{children:"Loading..."});function D(e){if(s.has(e,"metadata")&&console.warn(" metadata is deprecated and will be removed in upcoming version, use forwardProps instead"),s.isEmpty(e.lang)&&!s.isEmpty(e.fallbackLang))throw new Error("lang prop is required when fallbackLang is provided");const n=e.lang??"en",t=e.fallbackLang??n;return u.jsx(j,{...e,lang:n,fallbackLang:t})}function j({blocks:e,parent:n,externalData:t={},lang:a="en",fallbackLang:c="en",pageProps:i={},dataProviderMetadataCallback:o=()=>{},draft:l=!1}){const d=e,m=r=>M(r),P=n?s.filter(e,{_parent:n}):s.filter(e,r=>s.isEmpty(r._parent));return s.uniqBy(P,"_id").map((r,k)=>{const _={},x=s.filter(d,{_parent:r._id});_.children=x.length>0?u.jsx(j,{externalData:t,parent:r._id,blocks:d,lang:a,fallbackLang:c,pageProps:i,dataProviderMetadataCallback:o,draft:l},`${r._id}-children`):null;const g=E.getRegisteredChaiBlock(r._type);if(g!==null){let b=r;const h=g.component;b={...g.defaults,...r};const R=a===c?"":a,$=A(d,r._id,K(r._type)),y=S(Y(r,R,g),t),C=s.omit({...b,...y,...m(y),..._,...$,index:k,lang:a,key:r._id,draft:l,pageProps:i,blockProps:{},inBuilder:!1},["_parent"]);if(s.has(g,"dataProvider")){const w=s.get(g,"suspenseFallback",N);return u.jsx(f.Suspense,{fallback:f.createElement(w),children:u.jsx(L,{inBuilder:!1,dataProviderMetadataCallback:o,lang:a,pageProps:i,dataProvider:g.dataProvider,block:r,component:h,props:C,draft:l},`${r._id}-async`)},`${r._id}-suspense`)}return u.jsx(f.Suspense,{children:f.createElement(h,C)},`${r._id}-suspense`)}return u.jsxs("noscript",{children:[r._type," not found"]},`${r._id}-noscript`)})}exports.ROOT_TEMP_KEY=v;exports.RenderChaiBlocks=D;exports.STYLES_KEY=p;exports.getSplitChaiClasses=B;
|