@chaibuilder/sdk 3.1.25 → 3.1.26
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/{apply-binding-DCno1xQL.js → apply-binding-COFSiTeM.js} +18 -19
- package/dist/apply-binding-Dvnd_Vhq.cjs +1 -0
- package/dist/{code-editor-CmXV8E-i.cjs → code-editor-B7JGUrWa.cjs} +1 -1
- package/dist/{code-editor-Dmq2df89.js → code-editor-TDs5CPAW.js} +1 -1
- package/dist/core.cjs +1 -1
- package/dist/core.d.ts +13 -3
- package/dist/core.js +2 -2
- package/dist/index-C4b6LcwL.cjs +154 -0
- package/dist/{index-CU5gEUbc.js → index-DFvi9z_N.js} +1356 -1349
- package/dist/render.cjs +2 -2
- package/dist/render.d.ts +3 -3
- package/dist/render.js +97 -98
- package/dist/{rte-widget-modal-BvND5bq_.js → rte-widget-modal-3KfJEwf3.js} +1 -1
- package/dist/{rte-widget-modal-B-TcV_cb.cjs → rte-widget-modal-DX07GFaV.cjs} +1 -1
- package/dist/tailwind.d.ts +2 -2
- package/package.json +2 -1
- package/dist/apply-binding-DvHNFLQD.cjs +0 -1
- package/dist/index-Di66eAEA.cjs +0 -154
package/dist/render.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("./plugin-CSgw-f78.cjs"),d=require("./apply-binding-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("./plugin-CSgw-f78.cjs"),d=require("./apply-binding-Dvnd_Vhq.cjs"),y=require("react/jsx-runtime"),b=require("@chaibuilder/runtime"),t=require("lodash-es"),g=require("react"),F=require("@tailwindcss/aspect-ratio"),j=require("@tailwindcss/forms"),q=require("@tailwindcss/typography");require("tailwindcss-animate");const D=require("./get-chai-builder-theme-B1tr_NJB.cjs"),K=require("@mhsdesign/jit-browser-tailwindcss"),M=require("@tailwindcss/container-queries");async function O(e){const a={pageProps:e.pageProps,block:e.block,lang:e.lang,draft:e.draft,inBuilder:!1},n=await e.dataProvider(a);return t.has(n,"$metadata")&&t.isFunction(e.dataProviderMetadataCallback)&&e.dataProviderMetadataCallback(e.block,n.$metadata),e.children({...t.omit(n,"$metadata")})}const N=()=>y.jsx("div",{}),H=e=>{const{block:a,lang:n,fallbackLang:s,children:i,externalData:o,blocks:l,draft:r,pageProps:c,dataProviderMetadataCallback:k}=e,u=b.getRegisteredChaiBlock(a._type),p=t.get(u,"component",null),P=t.get(e.repeaterData,"index",-1),f=t.get(e.repeaterData,"dataKey",""),I=n===s?"":n,h=d.applyBindingToBlockProps(d.applyLanguage(a,I,u),o,{index:P,key:f}),m=d.getBlockTagAttributes(a,!1),T=L(l,a._id,d.getBlockRuntimeProps(a._type)),S=t.has(u,"dataProvider")&&t.isFunction(u.dataProvider),B={...h,...m,...T},_={blockProps:{},inBuilder:!1,lang:n||s,...B},v=t.get(B,"_show",!0);if(t.isNull(p)||!v)return null;if(S){const x=t.get(u,"suspenseFallback",N);return y.jsx(g.Suspense,{fallback:g.createElement(x),children:y.jsx(O,{lang:n,pageProps:c,block:B,dataProvider:u.dataProvider,...k?{dataProviderMetadataCallback:k}:{},draft:r,children:$=>g.createElement(p,{..._,...$,children:i({_id:a._id,_type:a._type,...t.isArray(h.repeaterItems)?{repeaterItems:d.applyLimit(h.repeaterItems,a),$repeaterItemsKey:h.$repeaterItemsKey,repeaterTotalItems:h.repeaterTotalItems??-1}:{}})})})})}return y.jsx(g.Suspense,{children:g.createElement(p,{..._,children:i({_id:a._id,_type:a._type,...t.isArray(h.repeaterItems)?{repeaterItems:d.applyLimit(h.repeaterItems,a),$repeaterItemsKey:h.$repeaterItemsKey,repeaterTotalItems:h.repeaterTotalItems??-1}:{}})})})},E=e=>{const{blocks:a,parent:n,repeaterData:s,type:i}=e;let o=t.uniqBy(t.filter(a,r=>t.has(r,"_id")&&(t.isEmpty(n)?!r._parent:r._parent===n)),"_id");const l=r=>t.filter(a,c=>c._parent===r).length>0;return(i==="Heading"||i==="Paragraph"||i==="Link")&&(o=d.adjustSpacingInContentBlocks(o)),t.map(o,r=>r?g.createElement(H,{...e,key:r._id,block:r},({_id:c,_type:k,repeaterItems:u,$repeaterItemsKey:p})=>k==="Repeater"?t.isArray(u)&&u.map((P,f)=>g.createElement(E,{...e,parent:r._id,key:`${t.get(r,"_parent","root")}-${r._id}-${f}`,repeaterData:{index:f,dataKey:p}})):l(c)?g.createElement(E,{...e,parent:r._id,key:`${t.get(r,"_parent","root")}-${r._id}`,repeaterData:s,type:r._type}):null):null)},L=(e,a,n)=>t.isEmpty(n)?{}:Object.entries(n).reduce((s,[i,o])=>{const l=[];let r=t.find(e,{_id:a});for(;r;)l.push(r),r=t.find(e,{_id:r._parent});const c=t.find(l,{_type:o.block});return c&&(s[i]=t.get(c,t.get(o,"prop"),null)),s},{});function J(e){if(t.isEmpty(e.lang)&&!t.isEmpty(e.fallbackLang))throw new Error("lang prop is required when fallbackLang is provided");if(t.isEmpty(e.blocks))return null;const a=e.lang??"en",n=e.fallbackLang??a;return y.jsx(E,{...e,lang:a,fallbackLang:n})}async function V(e){const a=await e.dataProvider;return t.has(a,"$metadata")&&t.isFunction(e.dataProviderMetadataCallback)&&e.dataProviderMetadataCallback(e.block,a.$metadata),e.children({...t.omit(a,"$metadata")})}const W=()=>y.jsx("div",{}),U=async e=>{const{block:a,lang:n,fallbackLang:s,children:i,externalData:o,blocks:l,draft:r,pageProps:c,dataProviderMetadataCallback:k,dataProviders:u}=e,p=b.getRegisteredChaiBlock(a._type),P=t.get(p,"component",null),f=t.get(e.repeaterData,"index",-1),I=t.get(e.repeaterData,"dataKey",""),h=n===s?"":n,m=d.applyBindingToBlockProps(d.applyLanguage(a,h,p),o,{index:f,key:I}),T=d.getBlockTagAttributes(a,!1),S=L(l,a._id,d.getBlockRuntimeProps(a._type)),B=t.has(p,"dataProvider")&&t.isFunction(p.dataProvider),_={...m,...T,...S},v={blockProps:{},inBuilder:!1,lang:n||s,..._},x=t.get(_,"_show",!0);if(t.isNull(P)||!x)return null;if(B){const $=t.get(u,a._id,Promise.resolve({})),R=t.get(p,"suspenseFallback",W);return y.jsx(g.Suspense,{fallback:g.createElement(R),children:y.jsx(V,{lang:n,pageProps:c,block:_,dataProvider:$,...k?{dataProviderMetadataCallback:k}:{},draft:r,children:A=>g.createElement(P,{...v,...A,children:i({_id:a._id,_type:a._type,...t.isArray(m.repeaterItems)?{repeaterItems:d.applyLimit(m.repeaterItems,a),$repeaterItemsKey:m.$repeaterItemsKey,repeaterTotalItems:m.repeaterTotalItems??-1}:{}})})})})}return y.jsx(g.Suspense,{children:g.createElement(P,{...v,children:i({_id:a._id,_type:a._type,...t.isArray(m.repeaterItems)?{repeaterItems:d.applyLimit(m.repeaterItems,a),$repeaterItemsKey:m.$repeaterItemsKey,repeaterTotalItems:m.repeaterTotalItems??-1}:{}})})})},C=async e=>{const{blocks:a,parent:n,repeaterData:s,type:i}=e;let o=t.uniqBy(t.filter(a,r=>t.has(r,"_id")&&(t.isEmpty(n)?!r._parent:r._parent===n)),"_id");const l=r=>t.filter(a,c=>c._parent===r).length>0;return(i==="Heading"||i==="Paragraph"||i==="Link")&&(o=d.adjustSpacingInContentBlocks(o)),t.map(o,r=>r?g.createElement(U,{dataProviders:e.dataProviders,...e,key:r._id,block:r},({_id:c,_type:k,repeaterItems:u,$repeaterItemsKey:p})=>k==="Repeater"?t.isArray(u)&&u.map((P,f)=>g.createElement(C,{...e,parent:r._id,key:`${t.get(r,"_parent","root")}-${r._id}-${f}`,repeaterData:{index:f,dataKey:p}})):l(c)?g.createElement(C,{...e,parent:r._id,key:`${t.get(r,"_parent","root")}-${r._id}`,repeaterData:s,type:r._type}):null):null)};async function G(e){if(t.isEmpty(e.lang)&&!t.isEmpty(e.fallbackLang))throw new Error("lang prop is required when fallbackLang is provided");if(t.isEmpty(e.blocks))return null;const a=e.lang??"en",n=e.fallbackLang??a;if(e.dataProviders)return y.jsx(C,{...e,lang:a,fallbackLang:n,dataProviders:e.dataProviders});const i=e.blocks.filter(o=>{const l=b.getRegisteredChaiBlock(o._type);return!!(t.has(l,"dataProvider")&&t.isFunction(l.dataProvider))}).reduce((o,l)=>{const r=b.getRegisteredChaiBlock(l._type),c={pageProps:e.pageProps,block:l,lang:e.lang,draft:e.draft,inBuilder:!1};return o[l._id]=r.dataProvider(c),o},{});return y.jsx(C,{...e,lang:a,fallbackLang:n,dataProviders:i})}function z(e,a){const n=e.filter(({_type:s})=>s==="GlobalBlock"||s==="PartialBlock");for(let s=0;s<n.length;s++){const i=n[s],o=t.get(i,"partialBlockId",t.get(i,"globalBlock",""));if(o==="")continue;let l=t.cloneDeep(t.get(a,o,[]));i._parent&&(l==null?void 0:l.length)>0&&(l=l.map(c=>(t.isEmpty(c._parent)&&(c._parent=i._parent),c)));const r=e.indexOf(i);e.splice(r,1,...l)}return e}const Q=e=>{if(!e)return[];try{return JSON.parse(X(e)).filter(n=>!n._type.startsWith("@chai"))}catch{return[{_type:"Paragraph",_id:"error",content:"Invalid JSON. Please check the JSON string."}]}};function X(e){const a=/(asset:\/\/|https:\/\/asset\.localhost\/)(?:localhost\/)?[^"']+/g;return e.replace(a,n=>{const s=decodeURIComponent(n),i=s.indexOf("public");return i!==-1?s.substring(i+6):s})}async function Y(e,a=[],n=!1){return await K.createTailwindcss({tailwindConfig:{darkMode:"class",safelist:a,theme:{extend:{...D.getChaiBuilderTheme(),keyframes:{"accordion-down":{from:{height:"0"},to:{height:"var(--radix-accordion-content-height)"}},"accordion-up":{from:{height:"var(--radix-accordion-content-height)"},to:{height:"0"}}},animation:{"accordion-down":"accordion-down 0.2s ease-out","accordion-up":"accordion-up 0.2s ease-out"}}},plugins:[j,q,F,M,w.chaiBuilderPlugin],corePlugins:{preflight:n}}}).generateStylesFromContent(` ${n?"@tailwind base;":""}
|
|
2
2
|
@tailwind components;
|
|
3
|
-
@tailwind utilities;`,e)}const
|
|
3
|
+
@tailwind utilities;`,e)}const Z=(e,a)=>{const n=JSON.stringify(e).replace(/#styles:([^"]*)/g,(s,i)=>`#styles:${i.replace(/,/g," ")}`.replace(/#styles:/g,""));return Y([n],[],a)},ee=async(e,a=!1)=>await Z(e,a);exports.getChaiThemeCssVariables=w.getChaiThemeCssVariables;exports.getThemeFontsCSSImport=w.getThemeFontsCSSImport;exports.getThemeFontsLinkMarkup=w.getThemeFontsLinkMarkup;exports.applyChaiDataBinding=d.applyChaiDataBinding;exports.convertHTMLToChaiBlocks=d.getBlocksFromHTML;exports.AsyncRenderChaiBlocks=G;exports.RenderChaiBlocks=J;exports.convertToBlocks=Q;exports.getMergedPartialBlocks=z;exports.getStylesForBlocks=ee;
|
package/dist/render.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ChaiFontViaUrl } from '@chaibuilder/runtime';
|
|
|
2
2
|
import { ChaiPageProps } from '@chaibuilder/runtime';
|
|
3
3
|
import { JSX } from 'react/jsx-runtime';
|
|
4
4
|
|
|
5
|
-
export declare const applyChaiDataBinding: (block: Record<string, string>, pageExternalData: Record<string, any>) =>
|
|
5
|
+
export declare const applyChaiDataBinding: (block: Record<string, string>, pageExternalData: Record<string, any>) => Record<string, string>;
|
|
6
6
|
|
|
7
7
|
export declare function AsyncRenderChaiBlocks(props: RenderChaiBlocksProps): Promise<JSX.Element>;
|
|
8
8
|
|
|
@@ -70,9 +70,9 @@ export declare function getMergedPartialBlocks(blocks: ChaiBlock[], partials: Re
|
|
|
70
70
|
*/
|
|
71
71
|
export declare const getStylesForBlocks: (blocks: ChaiBlock[], includeBaseStyles?: boolean) => Promise<string>;
|
|
72
72
|
|
|
73
|
-
export declare const getThemeFontsCSSImport: (fonts: ChaiFontViaUrl[]) =>
|
|
73
|
+
export declare const getThemeFontsCSSImport: (fonts: ChaiFontViaUrl[]) => string;
|
|
74
74
|
|
|
75
|
-
export declare const getThemeFontsLinkMarkup: (fonts: ChaiFontViaUrl[]) =>
|
|
75
|
+
export declare const getThemeFontsLinkMarkup: (fonts: ChaiFontViaUrl[]) => string;
|
|
76
76
|
|
|
77
77
|
declare type HexColor = string;
|
|
78
78
|
|
package/dist/render.js
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import { c as Q } from "./plugin-BOcGV_IY.js";
|
|
2
|
-
import { a as
|
|
3
|
-
import { a as O, b as N, g as E, c as J, d as
|
|
4
|
-
import { f as
|
|
2
|
+
import { a as Ke, b as Re, e as Ae } from "./plugin-BOcGV_IY.js";
|
|
3
|
+
import { a as O, b as N, g as E, c as J, d as C, e as j } from "./apply-binding-COFSiTeM.js";
|
|
4
|
+
import { f as Me, h as Oe } from "./apply-binding-COFSiTeM.js";
|
|
5
5
|
import { jsx as f } from "react/jsx-runtime";
|
|
6
|
-
import { getRegisteredChaiBlock as
|
|
7
|
-
import { has as
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import ae from "@tailwindcss/typography";
|
|
6
|
+
import { getRegisteredChaiBlock as $ } from "@chaibuilder/runtime";
|
|
7
|
+
import { has as P, isFunction as w, omit as q, get as d, isNull as H, isArray as b, uniqBy as W, filter as S, isEmpty as h, map as U, find as A, cloneDeep as X } from "lodash-es";
|
|
8
|
+
import { Suspense as x, createElement as g } from "react";
|
|
9
|
+
import Y from "@tailwindcss/aspect-ratio";
|
|
10
|
+
import Z from "@tailwindcss/forms";
|
|
11
|
+
import ee from "@tailwindcss/typography";
|
|
13
12
|
import "tailwindcss-animate";
|
|
14
|
-
import { g as
|
|
15
|
-
import { createTailwindcss as
|
|
16
|
-
import
|
|
17
|
-
async function
|
|
13
|
+
import { g as te } from "./get-chai-builder-theme-BarMkcGH.js";
|
|
14
|
+
import { createTailwindcss as ae } from "@mhsdesign/jit-browser-tailwindcss";
|
|
15
|
+
import re from "@tailwindcss/container-queries";
|
|
16
|
+
async function ne(e) {
|
|
18
17
|
const t = {
|
|
19
18
|
pageProps: e.pageProps,
|
|
20
19
|
block: e.block,
|
|
@@ -22,30 +21,30 @@ async function oe(e) {
|
|
|
22
21
|
draft: e.draft,
|
|
23
22
|
inBuilder: !1
|
|
24
23
|
}, r = await e.dataProvider(t);
|
|
25
|
-
return
|
|
24
|
+
return P(r, "$metadata") && w(e.dataProviderMetadataCallback) && e.dataProviderMetadataCallback(e.block, r.$metadata), e.children({
|
|
26
25
|
...q(r, "$metadata")
|
|
27
26
|
});
|
|
28
27
|
}
|
|
29
|
-
const
|
|
30
|
-
const { block: t, lang: r, fallbackLang: i, children: n, externalData: s, blocks: o, draft: a, pageProps: l, dataProviderMetadataCallback: k } = e, c =
|
|
28
|
+
const ie = () => /* @__PURE__ */ f("div", {}), oe = (e) => {
|
|
29
|
+
const { block: t, lang: r, fallbackLang: i, children: n, externalData: s, blocks: o, draft: a, pageProps: l, dataProviderMetadataCallback: k } = e, c = $(t._type), u = d(c, "component", null), _ = d(e.repeaterData, "index", -1), y = d(e.repeaterData, "dataKey", ""), m = O(
|
|
31
30
|
N(t, r === i ? "" : r, c),
|
|
32
31
|
s,
|
|
33
32
|
{ index: _, key: y }
|
|
34
|
-
), p = E(t, !1), T = V(o, t._id, J(t._type)), D =
|
|
33
|
+
), p = E(t, !1), T = V(o, t._id, J(t._type)), D = P(c, "dataProvider") && w(c.dataProvider), B = {
|
|
35
34
|
...m,
|
|
36
35
|
...p,
|
|
37
36
|
...T
|
|
38
|
-
},
|
|
37
|
+
}, v = {
|
|
39
38
|
blockProps: {},
|
|
40
39
|
inBuilder: !1,
|
|
41
40
|
lang: r || i,
|
|
42
41
|
...B
|
|
43
|
-
},
|
|
44
|
-
if (H(u) || !
|
|
42
|
+
}, I = d(B, "_show", !0);
|
|
43
|
+
if (H(u) || !I) return null;
|
|
45
44
|
if (D) {
|
|
46
|
-
const K = d(c, "suspenseFallback",
|
|
47
|
-
return /* @__PURE__ */ f(
|
|
48
|
-
|
|
45
|
+
const K = d(c, "suspenseFallback", ie);
|
|
46
|
+
return /* @__PURE__ */ f(x, { fallback: g(K), children: /* @__PURE__ */ f(
|
|
47
|
+
ne,
|
|
49
48
|
{
|
|
50
49
|
lang: r,
|
|
51
50
|
pageProps: l,
|
|
@@ -53,14 +52,14 @@ const se = () => /* @__PURE__ */ f("div", {}), le = (e) => {
|
|
|
53
52
|
dataProvider: c.dataProvider,
|
|
54
53
|
...k ? { dataProviderMetadataCallback: k } : {},
|
|
55
54
|
draft: a,
|
|
56
|
-
children: (
|
|
57
|
-
...
|
|
58
|
-
...
|
|
55
|
+
children: (R) => g(u, {
|
|
56
|
+
...v,
|
|
57
|
+
...R,
|
|
59
58
|
children: n({
|
|
60
59
|
_id: t._id,
|
|
61
60
|
_type: t._type,
|
|
62
|
-
...
|
|
63
|
-
repeaterItems:
|
|
61
|
+
...b(m.repeaterItems) ? {
|
|
62
|
+
repeaterItems: C(m.repeaterItems, t),
|
|
64
63
|
$repeaterItemsKey: m.$repeaterItemsKey,
|
|
65
64
|
repeaterTotalItems: m.repeaterTotalItems ?? -1
|
|
66
65
|
} : {}
|
|
@@ -69,27 +68,27 @@ const se = () => /* @__PURE__ */ f("div", {}), le = (e) => {
|
|
|
69
68
|
}
|
|
70
69
|
) });
|
|
71
70
|
}
|
|
72
|
-
return /* @__PURE__ */ f(
|
|
73
|
-
...
|
|
71
|
+
return /* @__PURE__ */ f(x, { children: g(u, {
|
|
72
|
+
...v,
|
|
74
73
|
children: n({
|
|
75
74
|
_id: t._id,
|
|
76
75
|
_type: t._type,
|
|
77
|
-
...
|
|
78
|
-
repeaterItems:
|
|
76
|
+
...b(m.repeaterItems) ? {
|
|
77
|
+
repeaterItems: C(m.repeaterItems, t),
|
|
79
78
|
$repeaterItemsKey: m.$repeaterItemsKey,
|
|
80
79
|
repeaterTotalItems: m.repeaterTotalItems ?? -1
|
|
81
80
|
} : {}
|
|
82
81
|
})
|
|
83
82
|
}) });
|
|
84
|
-
},
|
|
83
|
+
}, F = (e) => {
|
|
85
84
|
const { blocks: t, parent: r, repeaterData: i, type: n } = e;
|
|
86
85
|
let s = W(
|
|
87
|
-
|
|
86
|
+
S(t, (a) => P(a, "_id") && (h(r) ? !a._parent : a._parent === r)),
|
|
88
87
|
"_id"
|
|
89
88
|
);
|
|
90
|
-
const o = (a) =>
|
|
91
|
-
return (n === "Heading" || n === "Paragraph" || n === "Link") && (s = j(s)), U(s, (a) => a ? /* @__PURE__ */ g(
|
|
92
|
-
|
|
89
|
+
const o = (a) => S(t, (l) => l._parent === a).length > 0;
|
|
90
|
+
return (n === "Heading" || n === "Paragraph" || n === "Link") && (s = j(s)), U(s, (a) => a ? /* @__PURE__ */ g(oe, { ...e, key: a._id, block: a }, ({ _id: l, _type: k, repeaterItems: c, $repeaterItemsKey: u }) => k === "Repeater" ? b(c) && c.map((_, y) => /* @__PURE__ */ g(
|
|
91
|
+
F,
|
|
93
92
|
{
|
|
94
93
|
...e,
|
|
95
94
|
parent: a._id,
|
|
@@ -97,7 +96,7 @@ const se = () => /* @__PURE__ */ f("div", {}), le = (e) => {
|
|
|
97
96
|
repeaterData: { index: y, dataKey: u }
|
|
98
97
|
}
|
|
99
98
|
)) : o(l) ? /* @__PURE__ */ g(
|
|
100
|
-
|
|
99
|
+
F,
|
|
101
100
|
{
|
|
102
101
|
...e,
|
|
103
102
|
parent: a._id,
|
|
@@ -108,27 +107,27 @@ const se = () => /* @__PURE__ */ f("div", {}), le = (e) => {
|
|
|
108
107
|
) : null) : null);
|
|
109
108
|
}, V = (e, t, r) => h(r) ? {} : Object.entries(r).reduce((i, [n, s]) => {
|
|
110
109
|
const o = [];
|
|
111
|
-
let a =
|
|
110
|
+
let a = A(e, { _id: t });
|
|
112
111
|
for (; a; )
|
|
113
|
-
o.push(a), a =
|
|
114
|
-
const l =
|
|
112
|
+
o.push(a), a = A(e, { _id: a._parent });
|
|
113
|
+
const l = A(o, { _type: s.block });
|
|
115
114
|
return l && (i[n] = d(l, d(s, "prop"), null)), i;
|
|
116
115
|
}, {});
|
|
117
|
-
function
|
|
116
|
+
function Ce(e) {
|
|
118
117
|
if (h(e.lang) && !h(e.fallbackLang))
|
|
119
118
|
throw new Error("lang prop is required when fallbackLang is provided");
|
|
120
119
|
if (h(e.blocks))
|
|
121
120
|
return null;
|
|
122
121
|
const t = e.lang ?? "en", r = e.fallbackLang ?? t;
|
|
123
|
-
return /* @__PURE__ */ f(
|
|
122
|
+
return /* @__PURE__ */ f(F, { ...e, lang: t, fallbackLang: r });
|
|
124
123
|
}
|
|
125
|
-
async function
|
|
124
|
+
async function se(e) {
|
|
126
125
|
const t = await e.dataProvider;
|
|
127
|
-
return
|
|
126
|
+
return P(t, "$metadata") && w(e.dataProviderMetadataCallback) && e.dataProviderMetadataCallback(e.block, t.$metadata), e.children({
|
|
128
127
|
...q(t, "$metadata")
|
|
129
128
|
});
|
|
130
129
|
}
|
|
131
|
-
const
|
|
130
|
+
const le = () => /* @__PURE__ */ f("div", {}), de = async (e) => {
|
|
132
131
|
const {
|
|
133
132
|
block: t,
|
|
134
133
|
lang: r,
|
|
@@ -140,40 +139,40 @@ const ce = () => /* @__PURE__ */ f("div", {}), ue = async (e) => {
|
|
|
140
139
|
pageProps: l,
|
|
141
140
|
dataProviderMetadataCallback: k,
|
|
142
141
|
dataProviders: c
|
|
143
|
-
} = e, u =
|
|
142
|
+
} = e, u = $(t._type), _ = d(u, "component", null), y = d(e.repeaterData, "index", -1), M = d(e.repeaterData, "dataKey", ""), p = O(
|
|
144
143
|
N(t, r === i ? "" : r, u),
|
|
145
144
|
s,
|
|
146
145
|
{ index: y, key: M }
|
|
147
|
-
), T = E(t, !1), D = V(o, t._id, J(t._type)), B =
|
|
146
|
+
), T = E(t, !1), D = V(o, t._id, J(t._type)), B = P(u, "dataProvider") && w(u.dataProvider), v = {
|
|
148
147
|
...p,
|
|
149
148
|
...T,
|
|
150
149
|
...D
|
|
151
|
-
},
|
|
150
|
+
}, I = {
|
|
152
151
|
blockProps: {},
|
|
153
152
|
inBuilder: !1,
|
|
154
153
|
lang: r || i,
|
|
155
|
-
...
|
|
156
|
-
}, K = d(
|
|
154
|
+
...v
|
|
155
|
+
}, K = d(v, "_show", !0);
|
|
157
156
|
if (H(_) || !K) return null;
|
|
158
157
|
if (B) {
|
|
159
|
-
const
|
|
160
|
-
return /* @__PURE__ */ f(
|
|
161
|
-
|
|
158
|
+
const R = d(c, t._id, Promise.resolve({})), G = d(u, "suspenseFallback", le);
|
|
159
|
+
return /* @__PURE__ */ f(x, { fallback: g(G), children: /* @__PURE__ */ f(
|
|
160
|
+
se,
|
|
162
161
|
{
|
|
163
162
|
lang: r,
|
|
164
163
|
pageProps: l,
|
|
165
|
-
block:
|
|
166
|
-
dataProvider:
|
|
164
|
+
block: v,
|
|
165
|
+
dataProvider: R,
|
|
167
166
|
...k ? { dataProviderMetadataCallback: k } : {},
|
|
168
167
|
draft: a,
|
|
169
168
|
children: (z) => g(_, {
|
|
170
|
-
...
|
|
169
|
+
...I,
|
|
171
170
|
...z,
|
|
172
171
|
children: n({
|
|
173
172
|
_id: t._id,
|
|
174
173
|
_type: t._type,
|
|
175
|
-
...
|
|
176
|
-
repeaterItems:
|
|
174
|
+
...b(p.repeaterItems) ? {
|
|
175
|
+
repeaterItems: C(p.repeaterItems, t),
|
|
177
176
|
$repeaterItemsKey: p.$repeaterItemsKey,
|
|
178
177
|
repeaterTotalItems: p.repeaterTotalItems ?? -1
|
|
179
178
|
} : {}
|
|
@@ -182,27 +181,27 @@ const ce = () => /* @__PURE__ */ f("div", {}), ue = async (e) => {
|
|
|
182
181
|
}
|
|
183
182
|
) });
|
|
184
183
|
}
|
|
185
|
-
return /* @__PURE__ */ f(
|
|
186
|
-
...
|
|
184
|
+
return /* @__PURE__ */ f(x, { children: g(_, {
|
|
185
|
+
...I,
|
|
187
186
|
children: n({
|
|
188
187
|
_id: t._id,
|
|
189
188
|
_type: t._type,
|
|
190
|
-
...
|
|
191
|
-
repeaterItems:
|
|
189
|
+
...b(p.repeaterItems) ? {
|
|
190
|
+
repeaterItems: C(p.repeaterItems, t),
|
|
192
191
|
$repeaterItemsKey: p.$repeaterItemsKey,
|
|
193
192
|
repeaterTotalItems: p.repeaterTotalItems ?? -1
|
|
194
193
|
} : {}
|
|
195
194
|
})
|
|
196
195
|
}) });
|
|
197
|
-
},
|
|
196
|
+
}, L = async (e) => {
|
|
198
197
|
const { blocks: t, parent: r, repeaterData: i, type: n } = e;
|
|
199
198
|
let s = W(
|
|
200
|
-
|
|
199
|
+
S(t, (a) => P(a, "_id") && (h(r) ? !a._parent : a._parent === r)),
|
|
201
200
|
"_id"
|
|
202
201
|
);
|
|
203
|
-
const o = (a) =>
|
|
204
|
-
return (n === "Heading" || n === "Paragraph" || n === "Link") && (s = j(s)), U(s, (a) => a ? /* @__PURE__ */ g(
|
|
205
|
-
|
|
202
|
+
const o = (a) => S(t, (l) => l._parent === a).length > 0;
|
|
203
|
+
return (n === "Heading" || n === "Paragraph" || n === "Link") && (s = j(s)), U(s, (a) => a ? /* @__PURE__ */ g(de, { dataProviders: e.dataProviders, ...e, key: a._id, block: a }, ({ _id: l, _type: k, repeaterItems: c, $repeaterItemsKey: u }) => k === "Repeater" ? b(c) && c.map((_, y) => /* @__PURE__ */ g(
|
|
204
|
+
L,
|
|
206
205
|
{
|
|
207
206
|
...e,
|
|
208
207
|
parent: a._id,
|
|
@@ -210,7 +209,7 @@ const ce = () => /* @__PURE__ */ f("div", {}), ue = async (e) => {
|
|
|
210
209
|
repeaterData: { index: y, dataKey: u }
|
|
211
210
|
}
|
|
212
211
|
)) : o(l) ? /* @__PURE__ */ g(
|
|
213
|
-
|
|
212
|
+
L,
|
|
214
213
|
{
|
|
215
214
|
...e,
|
|
216
215
|
parent: a._id,
|
|
@@ -220,20 +219,20 @@ const ce = () => /* @__PURE__ */ f("div", {}), ue = async (e) => {
|
|
|
220
219
|
}
|
|
221
220
|
) : null) : null);
|
|
222
221
|
};
|
|
223
|
-
async function
|
|
222
|
+
async function $e(e) {
|
|
224
223
|
if (h(e.lang) && !h(e.fallbackLang))
|
|
225
224
|
throw new Error("lang prop is required when fallbackLang is provided");
|
|
226
225
|
if (h(e.blocks))
|
|
227
226
|
return null;
|
|
228
227
|
const t = e.lang ?? "en", r = e.fallbackLang ?? t;
|
|
229
228
|
if (e.dataProviders)
|
|
230
|
-
return /* @__PURE__ */ f(
|
|
229
|
+
return /* @__PURE__ */ f(L, { ...e, lang: t, fallbackLang: r, dataProviders: e.dataProviders });
|
|
231
230
|
const n = e.blocks.filter((s) => {
|
|
232
|
-
const o =
|
|
233
|
-
return !!(
|
|
231
|
+
const o = $(s._type);
|
|
232
|
+
return !!(P(o, "dataProvider") && w(o.dataProvider));
|
|
234
233
|
}).reduce(
|
|
235
234
|
(s, o) => {
|
|
236
|
-
const a =
|
|
235
|
+
const a = $(o._type), l = {
|
|
237
236
|
pageProps: e.pageProps,
|
|
238
237
|
block: o,
|
|
239
238
|
lang: e.lang,
|
|
@@ -244,43 +243,43 @@ async function Le(e) {
|
|
|
244
243
|
},
|
|
245
244
|
{}
|
|
246
245
|
);
|
|
247
|
-
return /* @__PURE__ */ f(
|
|
246
|
+
return /* @__PURE__ */ f(L, { ...e, lang: t, fallbackLang: r, dataProviders: n });
|
|
248
247
|
}
|
|
249
|
-
function
|
|
248
|
+
function Se(e, t) {
|
|
250
249
|
const r = e.filter(({ _type: i }) => i === "GlobalBlock" || i === "PartialBlock");
|
|
251
250
|
for (let i = 0; i < r.length; i++) {
|
|
252
251
|
const n = r[i], s = d(n, "partialBlockId", d(n, "globalBlock", ""));
|
|
253
252
|
if (s === "") continue;
|
|
254
|
-
let o =
|
|
253
|
+
let o = X(d(t, s, []));
|
|
255
254
|
n._parent && (o == null ? void 0 : o.length) > 0 && (o = o.map((l) => (h(l._parent) && (l._parent = n._parent), l)));
|
|
256
255
|
const a = e.indexOf(n);
|
|
257
256
|
e.splice(a, 1, ...o);
|
|
258
257
|
}
|
|
259
258
|
return e;
|
|
260
259
|
}
|
|
261
|
-
const
|
|
260
|
+
const xe = (e) => {
|
|
262
261
|
if (!e) return [];
|
|
263
262
|
try {
|
|
264
|
-
return JSON.parse(
|
|
263
|
+
return JSON.parse(ce(e)).filter((r) => !r._type.startsWith("@chai"));
|
|
265
264
|
} catch {
|
|
266
265
|
return [{ _type: "Paragraph", _id: "error", content: "Invalid JSON. Please check the JSON string." }];
|
|
267
266
|
}
|
|
268
267
|
};
|
|
269
|
-
function
|
|
268
|
+
function ce(e) {
|
|
270
269
|
const t = /(asset:\/\/|https:\/\/asset\.localhost\/)(?:localhost\/)?[^"']+/g;
|
|
271
270
|
return e.replace(t, (r) => {
|
|
272
271
|
const i = decodeURIComponent(r), n = i.indexOf("public");
|
|
273
272
|
return n !== -1 ? i.substring(n + 6) : i;
|
|
274
273
|
});
|
|
275
274
|
}
|
|
276
|
-
async function
|
|
277
|
-
return await
|
|
275
|
+
async function ue(e, t = [], r = !1) {
|
|
276
|
+
return await ae({
|
|
278
277
|
tailwindConfig: {
|
|
279
278
|
darkMode: "class",
|
|
280
279
|
safelist: t,
|
|
281
280
|
theme: {
|
|
282
281
|
extend: {
|
|
283
|
-
...
|
|
282
|
+
...te(),
|
|
284
283
|
keyframes: {
|
|
285
284
|
"accordion-down": {
|
|
286
285
|
from: {
|
|
@@ -305,7 +304,7 @@ async function pe(e, t = [], r = !1) {
|
|
|
305
304
|
}
|
|
306
305
|
}
|
|
307
306
|
},
|
|
308
|
-
plugins: [
|
|
307
|
+
plugins: [Z, ee, Y, re, Q],
|
|
309
308
|
corePlugins: { preflight: r }
|
|
310
309
|
}
|
|
311
310
|
}).generateStylesFromContent(
|
|
@@ -315,19 +314,19 @@ async function pe(e, t = [], r = !1) {
|
|
|
315
314
|
e
|
|
316
315
|
);
|
|
317
316
|
}
|
|
318
|
-
const
|
|
317
|
+
const ge = (e, t) => {
|
|
319
318
|
const r = JSON.stringify(e).replace(/#styles:([^"]*)/g, (i, n) => `#styles:${n.replace(/,/g, " ")}`.replace(/#styles:/g, ""));
|
|
320
|
-
return
|
|
321
|
-
},
|
|
319
|
+
return ue([r], [], t);
|
|
320
|
+
}, Le = async (e, t = !1) => await ge(e, t);
|
|
322
321
|
export {
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
322
|
+
$e as AsyncRenderChaiBlocks,
|
|
323
|
+
Ce as RenderChaiBlocks,
|
|
324
|
+
Me as applyChaiDataBinding,
|
|
325
|
+
Oe as convertHTMLToChaiBlocks,
|
|
326
|
+
xe as convertToBlocks,
|
|
327
|
+
Ke as getChaiThemeCssVariables,
|
|
328
|
+
Se as getMergedPartialBlocks,
|
|
329
|
+
Le as getStylesForBlocks,
|
|
330
|
+
Re as getThemeFontsCSSImport,
|
|
331
|
+
Ae as getThemeFontsLinkMarkup
|
|
333
332
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as e, jsxs as c } from "react/jsx-runtime";
|
|
2
|
-
import { d as N, N as D } from "./index-
|
|
2
|
+
import { d as N, N as D } from "./index-DFvi9z_N.js";
|
|
3
3
|
import { a1 as v, a3 as S, a6 as j, a9 as w, v as y } from "./tooltip-Bz2MxMHf.js";
|
|
4
4
|
import "clsx";
|
|
5
5
|
import "tailwind-merge";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("./index-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("./index-C4b6LcwL.cjs"),n=require("./tooltip-CzZ7Fvt7.cjs");require("clsx");require("tailwind-merge");const S=({isOpen:m,onClose:l,editor:t,rteElement:f})=>{const r=u.usePageExternalData(),j=o=>{if(!t)return;const i=`{{${o}}}`;t.commands.focus();const{from:p,to:g}=t.state.selection;if(p!==g)t.chain().deleteSelection().insertContent(i).run();else{const{state:c}=t,s=c.selection.from,x=c.doc.textBetween(Math.max(0,s-1),s),a=c.doc.textBetween(s,Math.min(s+1,c.doc.content.size));let d="";s>0&&x!==" "&&!/[.,!?;:]/.test(x)&&(d=" ");let h="";a&&a!==" "&&!/[.,!?;:]/.test(a)&&(h=" "),t.chain().insertContent(d+i+h).run()}};return e.jsx(n.Dialog,{open:m,onOpenChange:o=>!o&&l(),children:e.jsxs(n.DialogContent,{className:"max-h-[90vh] overflow-y-auto sm:max-w-[800px]",children:[e.jsx(n.DialogHeader,{children:e.jsxs(n.DialogTitle,{className:"flex items-center justify-between pr-8",children:[e.jsx("span",{children:"Rich Text Editor"}),Object.keys(r).length>0&&e.jsxs("div",{className:"flex items-center",children:[e.jsx("span",{className:"mr-2 text-sm text-muted-foreground",children:"Add field:"}),e.jsx("div",{className:"rte-path-selector",children:e.jsx(u.NestedPathSelector,{data:r,onSelect:j})})]})]})}),f,e.jsx("div",{className:"mt-4 flex justify-end",children:e.jsx(n.Button,{onClick:l,children:"Done"})})]})})};exports.default=S;
|
package/dist/tailwind.d.ts
CHANGED
|
@@ -99,7 +99,7 @@ export declare const getChaiBuilderTailwindConfig: (content: string[]) => {
|
|
|
99
99
|
};
|
|
100
100
|
|
|
101
101
|
export declare const getChaiBuilderTheme: (themeOptions?: ChaiBuilderThemeOptions) => {
|
|
102
|
-
fontFamily:
|
|
102
|
+
fontFamily: {};
|
|
103
103
|
borderRadius: {
|
|
104
104
|
lg: string;
|
|
105
105
|
md: string;
|
|
@@ -109,7 +109,7 @@ export declare const getChaiBuilderTheme: (themeOptions?: ChaiBuilderThemeOption
|
|
|
109
109
|
md?: undefined;
|
|
110
110
|
sm?: undefined;
|
|
111
111
|
};
|
|
112
|
-
colors:
|
|
112
|
+
colors: {};
|
|
113
113
|
container: {
|
|
114
114
|
center: boolean;
|
|
115
115
|
padding: string;
|
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": "3.1.
|
|
8
|
+
"version": "3.1.26",
|
|
9
9
|
"type": "module",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
@@ -155,6 +155,7 @@
|
|
|
155
155
|
"@tanstack/eslint-plugin-query": "^5.64.2",
|
|
156
156
|
"@testing-library/react": "^16.2.0",
|
|
157
157
|
"@types/lodash": "^4.17.14",
|
|
158
|
+
"@types/lodash-es": "^4.17.12",
|
|
158
159
|
"@types/node": "^20.17.11",
|
|
159
160
|
"@types/react": "^19.2.0",
|
|
160
161
|
"@types/react-dom": "^19.2.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const T=require("./common-functions-BZmyleS1.cjs"),t=require("lodash-es"),_=require("himalaya"),E=require("lodash"),J=require("@chaibuilder/runtime"),z=require("tailwind-merge"),m="#styles:",Y="__ADD_BLOCK_INTERNAL_ROOT",K="@",V="#",M=s=>{if(s=s.replace(m,""),!s)return{baseClasses:"",classes:""};const n=s.split(/,(?![^\[]*\])/);if(n.length===1)return{baseClasses:"",classes:n[0].trim()};const[a,...e]=n;return{baseClasses:a.trim(),classes:e.join(",").trim().replace(/ +(?= )/g,"")}},U=s=>{const n=/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/,a=/(?:https?:\/\/)?(?:www\.)?(player)?.vimeo\.com/;return n.test(s)||a.test(s)},X=s=>{if(t.isEmpty(s))return s;const n=/<video[^>]+src=['"]([^'">]+)['"]/,a=/<iframe[^>]+src=['"]([^'">]+)['"]/,e=s.match(n),i=s.match(a),r=e?e[1]:i?i[1]:null,l=/(?:https?:\/\/)?(?:www\.)?(?:youtube\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/,p=/(?:https?:\/\/)?(?:www\.)?player.vimeo\.com/;return r&&(l.test(r)||p.test(r))?r:s},W=["chai-name","data-chai-name"],Z={img:{alt:"alt",width:"width",height:"height",src:"image"},video:{src:"url",autoplay:"controls.autoPlay",muted:"controls.muted",loop:"controls.loop",controls:"controls.widgets"},a:{href:"link.href",target:"link.target",type:""},input:{placeholder:"placeholder",required:"required",type:"inputType",name:"fieldName"},textarea:{placeholder:"placeholder",required:"required",type:"inputType",name:"fieldName"},select:{placeholder:"placeholder",required:"required",multiple:"multiple",name:"fieldName"},form:{action:"action"}},G=(s,n)=>s.children.length===1&&t.includes(["Heading","Paragraph","Span","ListItem","Button","Label","TableCell","Link","RichText"],n._type),v=s=>s.map(n=>n.type==="text"?t.get(n,"content",""):t.isEmpty(n.children)?"":v(n.children)).join(""),B=s=>s===null?"":s,O=s=>{const n=t.compact(t.map(s.split(/\s+/),t.trim)),a=t.find(n,p=>/^w-/.test(p)),e=t.find(n,p=>/^h-/.test(p));if(!e||!a)return{height:"",width:""};const i=p=>{if(!p)return;const h=p.match(/^[wh]-(?:\[(.*?)\]|(.+))$/);if(!h)return;if(h[1])return h[1];const o=h[2];return/^\d+(\.\d+)?$/.test(o)?`${Number(o)*4}px`:o==="auto"||t.includes(o,"%")?o:"16px"},r=i(a),l=i(e);return{width:t.includes(r,"px")?r:"16px",height:t.includes(l,"px")?l:"16px"}},H=s=>{if(s.tagName==="svg")return{};const n={},a=Z[s.tagName]||{},e=s.attributes;return t.forEach(e,({key:i,value:r})=>{if(!t.includes(W,i))if(i==="bid"&&(n._bid=B(r)),a[i]){if(s.tagName==="img"&&i==="src"&&!r.startsWith("http")){const l=t.find(s.attributes,{key:"width"}),p=t.find(s.attributes,{key:"height"});l&&p?r=`https://picsum.photos/${l==null?void 0:l.value}x${p==null?void 0:p.value}`:r="https://picsum.photos/150x150"}t.set(n,a[i],B(r))}else t.includes(["style","class","srcset","bid"],i)||(t.has(n,"styles_attrs")||(n.styles_attrs={}),t.startsWith(i,"@")&&(i=i.replace("@","x-on:")),n.styles_attrs[`${i}`]=B(r))}),delete n.class,n},Q=(s,n="styles")=>{if(!s.attributes)return{[n]:`${m},`};const a=t.find(s.attributes,{key:"class"});if(a){const e=a.value;return{[n]:`${m},${e}`}}return{[n]:`${m},`}},tt=s=>{const n=t.get(s,"attributes",[]),a=n.find(o=>o.key==="data-chai-richtext"||o.key==="chai-richtext"),e=n.find(o=>o.key==="data-chai-lightbox"||o.key==="chai-lightbox"),i=n.find(o=>o.key==="data-chai-dropdown"||o.key==="chai-dropdown"),r=n.find(o=>o.key==="data-chai-dropdown-button"||o.key==="chai-dropdown-button"),l=n.find(o=>o.key==="data-chai-dropdown-content"||o.key==="chai-dropdown-content"),p=n.find(o=>o.key==="class"),h=p&&p.value.split(/\s+/).includes("rte");if(i)return{_type:"Dropdown"};if(r)return{_type:"DropdownButton"};if(l)return{_type:"DropdownContent"};if(a||h)return{_type:"Paragraph"};if(e)return{_type:"LightBoxLink"};switch(s.tagName){case"img":return{_type:"Image"};case"input":return{_type:"Input",showLabel:!1};case"hr":return{_type:"Divider"};case"br":return{_type:"LineBreak"};case"textarea":return{_type:"TextArea",showLabel:!1};case"audio":return{_type:"Audio"};case"canvas":return{_type:"Canvas"};case"video":case"iframe":return{_type:"CustomHTML"};case"svg":return{_type:"Icon"};case"select":return{_type:"Select",options:[]};case"option":return{_type:"Option"};case"ul":case"ol":case"dl":return{_type:"List",tag:s.tagName,_listType:s.tagName==="ol"?"list-decimal":"list-none"};case"li":case"dt":return{_type:"ListItem",tag:s.tagName};case"span":case"figcaption":case"legend":return{_type:"Span",tag:s.tagName};case"p":return{_type:"Paragraph",content:""};case"a":return{_type:"Link"};case"form":return{_type:"Form"};case"label":return{_type:"Label"};case"button":return{_type:"Button"};case"code":return{_type:"Box",_name:"Code"};case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return{_type:"Heading",tag:s.tagName};case"table":return{_type:"Table"};case"tr":return{_type:"TableRow"};case"td":case"th":return{_type:"TableCell",tag:s.tagName};case"thead":return{_type:"TableHead"};case"tbody":return{_type:"TableBody"};case"tfoot":return{_type:"TableFooter"};default:{const o=t.get(s,"children",[]).length>0?"Box":"EmptyBox";return{_type:o,tag:s.tagName,_name:o=="EmptyBox"||s.tagName==="div"?o:t.capitalize(s.tagName)}}}},w=(s,n=null)=>t.flatMapDeep(s,a=>{var $,C,S,D,N,L,A,R,j,P;if(a.type==="comment")return[];let e={_id:T.generateUUID()};if(n&&(e._parent=n.block._id),a.type==="text")return t.isEmpty(t.get(a,"content",""))?[]:n&&G(n.node,n.block)?(t.set(n,"block.content",t.get(a,"content","")),[]):{...e,_type:"Text",content:t.get(a,"content","")};if(t.startsWith(a.tagName,"chai-")){const c=a.attributes,u=t.find(c,{key:"chai-type"}),d=(u==null?void 0:u.value)||t.startCase(a.tagName.replace("chai-","")).replace(/\s+/g,"");e._type=d,t.forEach(c,({key:y,value:q})=>{if(y==="about-this-component"||y==="chai-type"||y==="can-move"||y==="can-delete")return;if(y==="id"){e._id=q;return}const F=t.startsWith(y,"_")?y:t.camelCase(y);let x=B(q);typeof x=="string"&&t.startsWith(x,"#styles:")&&(x=x.replace("#styles:","#styles:,")),e[F]=x});const g=w(a.children,{block:e,node:a});return[e,...g]}const i=t.get(a,"attributes",[]),r=i.find(c=>c.key==="data-chai-richtext"||c.key==="chai-richtext"),l=i.find(c=>c.key==="class"),p=l&&l.value.split(/\s+/).includes("rte"),h=i.find(c=>c.key==="data-chai-lightbox"||c.key==="chai-lightbox"),o=i.find(c=>c.key==="data-chai-dropdown"||c.key==="chai-dropdown"),f=i.find(c=>c.key==="data-chai-dropdown-button"||c.key==="chai-dropdown-button"),k=i.find(c=>c.key==="data-chai-dropdown-content"||c.key==="chai-dropdown-content");if(e={...e,...tt(a),...H(a),...Q(a)},a.attributes){const c=a.attributes.find(u=>t.includes(W,u.key));c&&(e._name=c.value)}if(r||p)return e.content=_.stringify(a.children),t.has(e,"styles_attrs.data-chai-richtext")&&delete e.styles_attrs["data-chai-richtext"],t.has(e,"styles_attrs.chai-richtext")&&delete e.styles_attrs["chai-richtext"],[e];if(h){const c=["data-chai-lightbox","chai-lightbox","data-vbtype","data-autoplay","data-maxwidth","data-overlay","data-gall","href"];e={...e,href:(($=i.find(u=>u.key==="href"))==null?void 0:$.value)||"",hrefType:((C=i.find(u=>u.key==="data-vbtype"))==null?void 0:C.value)||"video",autoplay:((S=i.find(u=>u.key==="data-autoplay"))==null?void 0:S.value)==="true"?"true":"false",maxWidth:((N=(D=i.find(u=>u.key==="data-maxwidth"))==null?void 0:D.value)==null?void 0:N.replace("px",""))||"",backdropColor:((L=i.find(u=>u.key==="data-overlay"))==null?void 0:L.value)||"",galleryName:((A=i.find(u=>u.key==="data-gall"))==null?void 0:A.value)||""},t.forEach(c,u=>{t.has(e,`styles_attrs.${u}`)&&delete e.styles_attrs[u]})}if(o&&(delete e.styles_attrs,e.showDropdown=!1),k&&delete e.styles_attrs,f){delete e.styles_attrs;const c=t.filter(a.children||[],d=>(d==null?void 0:d.tagName)!=="span");e.content=v(c);const u=t.find(a.children||[],d=>(d==null?void 0:d.tagName)==="span"&&t.some(d.children||[],g=>(g==null?void 0:g.tagName)==="svg"));if(u){const d=t.find(u.children||[],g=>(g==null?void 0:g.tagName)==="svg");if(d){e.icon=_.stringify([d]);const{height:g,width:y}=et(d,"16px","16px");e.iconHeight=g,e.iconWidth=y}}return[e]}if(e._type==="Input"){const c=e.inputType||"text";c==="checkbox"?t.set(e,"_type","Checkbox"):c==="radio"&&t.set(e,"_type","Radio")}else if(a.tagName==="video"||a.tagName==="iframe"){const c=_.stringify([a]);return U(c)&&(t.set(e,"_type","Video"),t.set(e,"url",X(c)),t.set(e,"styles",`${m},`),t.set(e,"controls",{autoPlay:!1,muted:!0,loop:!1,controls:!1})),e.content=c,[e]}else if(a.tagName==="svg"){const c=t.get(t.find(a.attributes,{key:"class"}),"value",""),{height:u,width:d}=O(c);if(u&&d)e.styles=`${m}, ${T.cn(`w-${d} h-${u}`,c)}`.trim(),e.height=u==null?void 0:u.replace("px",""),e.width=d==null?void 0:d.replace("px","");else{const g=(R=t.find(a.attributes,{key:"height"}))==null?void 0:R.value,y=(j=t.find(a.attributes,{key:"width"}))==null?void 0:j.value;g&&y?(e.styles=`${m}, ${T.cn(`w-[${y}px] h-[${g}px]`,c)}`.trim(),e.height=g,e.width=y):e.styles=`${m}, ${T.cn("w-full h-full",c)}`.trim()}return a.attributes=t.filter(a.attributes,g=>!t.includes(["style","width","height","class"],g.key)),e.icon=_.stringify([a]),[e]}else if(a.tagName=="option"&&n&&((P=n.block)==null?void 0:P._type)==="Select")return n.block.options.push({label:v(a.children),...H(a)}),[];const b=w(a.children,{block:e,node:a});return[e,...b]}),et=(s,n,a)=>{var h,o;const e=t.get(s,"attributes",[]),{height:i,width:r}=O(t.get(t.find(e,{key:"class"}),"value",""));if(i&&r)return{height:`[${i}px]`,width:`[${r}px]`};const l=(h=t.find(e,{key:"height"}))==null?void 0:h.value,p=(o=t.find(e,{key:"width"}))==null?void 0:o.value;return{height:l?`[${l}px]`:a,width:p?`[${p}px]`:n}},st=s=>{s=s.replace(/(\w+)=\\?"(.*?)\\?"/g,(e,i,r)=>{let l=r.replace(/\\"/g,'"');return l=l.replace(/{([^}]+)}/g,p=>p.replace(/"/g,'\\"')),`${i}="${l.replace(/\\"/g,'"')}"`}),s=s.replace(/\\n/g,"").replace(/\\\\/g,"").replace(/\\([/<>])/g,"$1").replace(/\\./g,"").replace(/[\n\r\t\f\v]/g,""),s=s.replace(/\$name="[^"]*"/g,"");const n=s.match(/<body[^>]*>[\s\S]*?<\/body>/);return(n&&n.length>0?n[0].replace(/<body/,"<div").replace(/<\/body>/,"</div>"):s).replace(/\s+/g," ").replaceAll("> <","><").replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"").trim()},at=(s,n)=>t.find(s,{_id:n}),nt=(s,n)=>t.isEmpty(n)?s.map(a=>(E.unset(a,"_bid"),a)):t.map(s,a=>{const e=t.isEmpty(a._bid)?void 0:at(n,a._bid);if(e){e._type==="Icon"&&t.get(a,"icon","").match(/chai-default-svg/)&&delete a.icon;const i={...e,...a};return E.unset(i,"_bid"),i}return E.unset(a,"_bid"),a}),rt=s=>{const n=_.parse(st(s));return t.isEmpty(s)?[]:t.flatten(w(n))};function ot(s,n,a){const e=t.get(a,"i18nProps",[]);if(t.isEmpty(n)||t.isEmpty(e))return s;const i=t.cloneDeep(s);return t.forEach(t.keys(i),r=>{if(t.includes(e,r)&&!t.isEmpty(n)){const l=t.get(i,r),p=t.get(i,`${r}-${n}`,"");t.isString(l)?i[r]=t.isString(p)&&!t.isEmpty(p.trim())&&p.trimStart()||l:i[r]=t.isEmpty(p)?l:p}}),i}const lt=t.memoize(s=>{const{baseClasses:n,classes:a}=M(s);return z.twMerge(n,a)});function ct(s,n){return t.get(s,`${n}_attrs`,{})}function pt(s,n=!0){const a={};return Object.keys(s).forEach(e=>{if(t.isString(s[e])&&s[e].startsWith(m)){const i=lt(s[e]),r=ct(s,e);a[e]={...!t.isEmpty(i)&&{className:i},...r,...n?{"data-style-prop":e,"data-block-parent":s._id,"data-style-id":`${e}-${s._id}`}:{}}}}),a}const ut=t.memoize(s=>{const n=J.getRegisteredChaiBlock(s),a=t.get(n,"schema.properties",{});return Object.fromEntries(Object.entries(a).filter(([,e])=>t.get(e,"runtime",!1)))}),dt=(s,n)=>{if(!t.isArray(s))return s;let a=s,e;return typeof n.limit=="number"&&n.limit>0&&(e=n.limit),e!==void 0&&(a=a.slice(0,e)),a},gt=(s,n)=>{const a=t.cloneDeep(s);return t.forEach(t.keys(a),e=>{if(t.isString(a[e])&&!t.startsWith(e,"_")){let i=a[e];e==="repeaterItems"&&(a.repeaterItemsBinding=i);const r=/\{\{(.*?)\}\}/g,l=i.match(r);l&&l.forEach(p=>{let h=p.slice(2,-2);const o=t.get(n,h,p);i=t.isArray(o)?o:i.replace(p,o)}),a[e]=i}}),a},ht=s=>{const n=t.last(s);return s.map(a=>{const e=Object.keys(a);for(let i=0;i<e.length;i++)if(t.isString(a[e[i]])&&t.startsWith(e[i],"content")){const r=a===n?"":" ";a[e[i]]=`${a[e[i]].trim()}${r}`}return a})},I=(s,n,{index:a,key:e},i)=>{if(t.isString(s)){let r=s;const l=/\{\{(.*?)\}\}/g,p=s.match(l);if(p){const h=i==="image"||i==="mobileImage";p.forEach(o=>{let f=o.slice(2,-2).trim(),k=e.slice(2,-2).trim();a!==-1&&t.startsWith(f,"$index.")?f=`${k}.${a}.${f.slice(7)}`:a!==-1&&t.startsWith(f,"$index")&&(f=`${k}.${a}`);const b=t.get(n,f);b===void 0?r=r.replace(o,""):h&&!t.isArray(b)?r=b:r=t.isArray(b)?b:r.replace(o,b)})}return r}if(t.isArray(s))return s.map(r=>I(r,n,{index:a,key:e},i));if(s&&typeof s=="object"){const r={};return t.forEach(t.keys(s),l=>{!t.startsWith(l,"_")&&l!=="$repeaterItemsKey"?r[l]=I(s[l],n,{index:a,key:e},l):r[l]=s[l]}),r}return s},yt=(s,n,{index:a,key:e})=>{let i=t.cloneDeep(s);return i.repeaterItems&&(i.$repeaterItemsKey=i.repeaterItems,t.startsWith(i.repeaterItems,`{{${V}`)&&(i.$repeaterItemsKey=i.repeaterItems=`${i.repeaterItems.replace("}}",`/${i._id}}}`)}`),!t.isEmpty(i.repeaterItems)&&i.pagination&&(i.repeaterTotalItems=`${i.repeaterItems.replace("}}",`/${i._id}/totalItems}}`)}`)),I(i,n,{index:a,key:e})};exports.COLLECTION_PREFIX=V;exports.REPEATER_PREFIX=K;exports.ROOT_TEMP_KEY=Y;exports.STYLES_KEY=m;exports.adjustSpacingInContentBlocks=ht;exports.applyBindingToBlockProps=yt;exports.applyChaiDataBinding=gt;exports.applyLanguage=ot;exports.applyLimit=dt;exports.getBlockRuntimeProps=ut;exports.getBlockTagAttributes=pt;exports.getBlocksFromHTML=rt;exports.getSplitChaiClasses=M;exports.mergeBlocksWithExisting=nt;
|