@chaibuilder/sdk 2.2.5 → 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/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "author": "Suraj Air",
6
6
  "license": "BSD-3-Clause",
7
7
  "homepage": "https://chaibuilder.com",
8
- "version": "2.2.5",
8
+ "version": "2.2.6",
9
9
  "type": "module",
10
10
  "repository": {
11
11
  "type": "git",
@@ -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;