@chaibuilder/sdk 2.0.0-beta.109 → 2.0.0-beta.110

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/core.cjs CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var G=Object.defineProperty;var K=(o,n,a)=>n in o?G(o,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[n]=a;var U=(o,n,a)=>K(o,typeof n!="symbol"?n+"":n,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const jsxRuntime=require("react/jsx-runtime"),React=require("react"),tooltip=require("./tooltip-DHlrjqh8.cjs"),jotai=require("jotai"),lodashEs=require("lodash-es"),reactWrapBalancer=require("react-wrap-balancer"),reactI18next=require("react-i18next"),iconBase=require("./iconBase-Cn2BsTrq.cjs"),dom=require("@floating-ui/dom"),reactDom=require("@floating-ui/react-dom"),reactIcons=require("@radix-ui/react-icons"),web=require("@react-hookz/web"),flagged=require("flagged"),runtime=require("@chaibuilder/runtime"),ChaiThemeFn=require("./ChaiThemeFn-DQu-2Eh9.cjs"),TreeModel=require("tree-model"),reactHotkeysHook=require("react-hotkeys-hook"),sonner=require("sonner"),lucideReact=require("lucide-react"),react=require("@tiptap/react"),StarterKit=require("@tiptap/starter-kit"),typography=require("@tailwindcss/typography"),forms=require("@tailwindcss/forms"),aspectRatio=require("@tailwindcss/aspect-ratio"),containerQueries=require("@tailwindcss/container-queries"),tailwindMerge=require("tailwind-merge"),getSplitClasses=require("./getSplitClasses-DodqA_KW.cjs"),ReactDOM=require("react-dom"),reactErrorBoundary=require("react-error-boundary"),reResizable=require("re-resizable"),RjForm=require("@rjsf/core"),validator=require("@rjsf/validator-ajv8"),Link=require("@tiptap/extension-link"),TextAlign=require("@tiptap/extension-text-align"),Underline=require("@tiptap/extension-underline"),clsx=require("clsx"),IconPicker=require("react-icons-picker"),Autosuggest=require("react-autosuggest"),Fuse=require("fuse.js"),himalaya=require("himalaya"),reactArborist=require("react-arborist"),i18n=require("i18next"),framerMotion=require("framer-motion");function _interopNamespaceDefault(o){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const a in o)if(a!=="default"){const l=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(n,a,l.get?l:{enumerable:!0,get:()=>o[a]})}}return n.default=o,Object.freeze(n)}const React__namespace=_interopNamespaceDefault(React),isSelfAtom=(o,n)=>o.unstable_is?o.unstable_is(n):n===o,hasInitialValue=o=>"init"in o,isActuallyWritableAtom=o=>!!o.write,isAtomStateInitialized=o=>"v"in o||"e"in o,returnAtomValue=o=>{if("e"in o)throw o.e;return o.v},PROMISE_STATE=Symbol(),getPromiseState=o=>o[PROMISE_STATE],isPendingPromise=o=>{var n;return isPromiseLike$2(o)&&!((n=getPromiseState(o))!=null&&n[1])},cancelPromise=(o,n)=>{const a=getPromiseState(o);a&&(a[1]=!0,a[0].forEach(l=>l(n)))},patchPromiseForCancelability=o=>{if(getPromiseState(o))return;const n=[new Set,!1];o[PROMISE_STATE]=n;const a=()=>{n[1]=!0};o.then(a,a),o.onCancel=l=>{n[0].add(l)}},isPromiseLike$2=o=>typeof(o==null?void 0:o.then)=="function",addPendingPromiseToDependency=(o,n,a)=>{a.p.has(o)||(a.p.add(o),n.then(()=>{a.p.delete(o)},()=>{a.p.delete(o)}))},setAtomStateValueOrPromise=(o,n,a)=>{const l=a(o),r="v"in l,i=l.v,c=isPendingPromise(l.v)?l.v:null;if(isPromiseLike$2(n)){patchPromiseForCancelability(n);for(const d of l.d.keys())addPendingPromiseToDependency(o,n,a(d))}l.v=n,delete l.e,(!r||!Object.is(i,l.v))&&(++l.n,c&&cancelPromise(c,n))},getMountedOrPendingDependents=(o,n,a)=>{var l;const r=new Set;for(const i of((l=a.get(o))==null?void 0:l.t)||[])a.has(i)&&r.add(i);for(const i of n.p)r.add(i);return r},BUILDING_BLOCKS=Symbol(),buildStore=(o=new WeakMap,n=new WeakMap,a=new WeakMap,l=new Set,r=new Set,i=new Set,c={},d=(h,...x)=>h.read(...x),p=(h,...x)=>h.write(...x),u=(h,x)=>{var f;return(f=h.unstable_onInit)==null?void 0:f.call(h,x)},m=(h,x)=>{var f;return(f=h.onMount)==null?void 0:f.call(h,x)},...g)=>{const h=g[0]||(E=>{let I=o.get(E);return I||(I={d:new Map,p:new Set,n:0},o.set(E,I),u==null||u(E,B)),I}),x=g[1]||(()=>{let E,I;const R=y=>{try{y()}catch(A){E||(E=!0,I=A)}};do{c.f&&R(c.f);const y=new Set,A=y.add.bind(y);l.forEach(N=>{var T;return(T=n.get(N))==null?void 0:T.l.forEach(A)}),l.clear(),i.forEach(A),i.clear(),r.forEach(A),r.clear(),y.forEach(R),l.size&&f()}while(l.size||i.size||r.size);if(E)throw I}),f=g[2]||(()=>{const E=[],I=new WeakSet,R=new WeakSet,y=Array.from(l);for(;y.length;){const A=y[y.length-1],N=h(A);if(R.has(A)){y.pop();continue}if(I.has(A)){a.get(A)===N.n&&E.push([A,N]),R.add(A),y.pop();continue}I.add(A);for(const T of getMountedOrPendingDependents(A,N,n))I.has(T)||y.push(T)}for(let A=E.length-1;A>=0;--A){const[N,T]=E[A];let P=!1;for(const _ of T.d.keys())if(_!==N&&l.has(_)){P=!0;break}P&&(b(N),w(N)),a.delete(N)}}),b=g[3]||(E=>{var I,R;const y=h(E);if(isAtomStateInitialized(y)&&(n.has(E)&&a.get(E)!==y.n||Array.from(y.d).every(([L,H])=>b(L).n===H)))return y;y.d.clear();let A=!0;const N=()=>{n.has(E)&&(w(E),f(),x())},T=L=>{var H;if(isSelfAtom(E,L)){const V=h(L);if(!isAtomStateInitialized(V))if(hasInitialValue(L))setAtomStateValueOrPromise(L,L.init,h);else throw new Error("no atom init");return returnAtomValue(V)}const O=b(L);try{return returnAtomValue(O)}finally{y.d.set(L,O.n),isPendingPromise(y.v)&&addPendingPromiseToDependency(E,y.v,O),(H=n.get(L))==null||H.t.add(E),A||N()}};let P,_;const D={get signal(){return P||(P=new AbortController),P.signal},get setSelf(){return!_&&isActuallyWritableAtom(E)&&(_=(...L)=>{if(!A)try{return S(E,...L)}finally{f(),x()}}),_}},M=y.n;try{const L=d(E,T,D);return setAtomStateValueOrPromise(E,L,h),isPromiseLike$2(L)&&((I=L.onCancel)==null||I.call(L,()=>P==null?void 0:P.abort()),L.then(N,N)),y}catch(L){return delete y.v,y.e=L,++y.n,y}finally{A=!1,M!==y.n&&a.get(E)===M&&(a.set(E,y.n),l.add(E),(R=c.c)==null||R.call(c,E))}}),j=g[4]||(E=>{const I=[E];for(;I.length;){const R=I.pop(),y=h(R);for(const A of getMountedOrPendingDependents(R,y,n)){const N=h(A);a.set(A,N.n),I.push(A)}}}),S=g[5]||((E,...I)=>{let R=!0;const y=N=>returnAtomValue(b(N)),A=(N,...T)=>{var P;const _=h(N);try{if(isSelfAtom(E,N)){if(!hasInitialValue(N))throw new Error("atom not writable");const D=_.n,M=T[0];setAtomStateValueOrPromise(N,M,h),w(N),D!==_.n&&(l.add(N),(P=c.c)==null||P.call(c,N),j(N));return}else return S(N,...T)}finally{R||(f(),x())}};try{return p(E,y,A,...I)}finally{R=!1}}),w=g[6]||(E=>{var I;const R=h(E),y=n.get(E);if(y&&!isPendingPromise(R.v)){for(const[A,N]of R.d)if(!y.d.has(A)){const T=h(A);v(A).t.add(E),y.d.add(A),N!==T.n&&(l.add(A),(I=c.c)==null||I.call(c,A),j(A))}for(const A of y.d||[])if(!R.d.has(A)){y.d.delete(A);const N=k(A);N==null||N.t.delete(E)}}}),v=g[7]||(E=>{var I;const R=h(E);let y=n.get(E);if(!y){b(E);for(const A of R.d.keys())v(A).t.add(E);if(y={l:new Set,d:new Set(R.d.keys()),t:new Set},n.set(E,y),(I=c.m)==null||I.call(c,E),isActuallyWritableAtom(E)){const A=()=>{let N=!0;const T=(...P)=>{try{return S(E,...P)}finally{N||(f(),x())}};try{const P=m(E,T);P&&(y.u=()=>{N=!0;try{P()}finally{N=!1}})}finally{N=!1}};r.add(A)}}return y}),k=g[8]||(E=>{var I;const R=h(E);let y=n.get(E);if(y&&!y.l.size&&!Array.from(y.t).some(A=>{var N;return(N=n.get(A))==null?void 0:N.d.has(E)})){y.u&&i.add(y.u),y=void 0,n.delete(E),(I=c.u)==null||I.call(c,E);for(const A of R.d.keys()){const N=k(A);N==null||N.t.delete(E)}return}return y}),C=[o,n,a,l,r,i,c,d,p,u,m,h,x,f,b,j,S,w,v,k],B={get:E=>returnAtomValue(b(E)),set:(E,...I)=>{try{return S(E,...I)}finally{f(),x()}},sub:(E,I)=>{const y=v(E).l;return y.add(I),x(),()=>{y.delete(I),k(E),x()}}};return Object.defineProperty(B,BUILDING_BLOCKS,{value:C}),B},INTERNAL_buildStoreRev1=buildStore;let keyCount=0;function atom(o,n){const a=`atom${++keyCount}`,l={toString(){return a}};return typeof o=="function"?l.read=o:(l.init=o,l.read=defaultRead,l.write=defaultWrite),n&&(l.write=n),l}function defaultRead(o){return o(this)}function defaultWrite(o,n,a){return n(this,typeof a=="function"?a(o(this)):a)}const createStore=()=>INTERNAL_buildStoreRev1();let defaultStore;const getDefaultStore=()=>(defaultStore||(defaultStore=createStore()),defaultStore),RESET=Symbol(""),getCached$1=(o,n,a)=>(n.has(a)?n:n.set(a,o())).get(a),cache1$2=new WeakMap,memo2$1=(o,n,a)=>{const l=getCached$1(()=>new WeakMap,cache1$2,n);return getCached$1(o,l,a)},cacheKeyForEmptyKeyExtractor={},isWritable=o=>!!o.write,isFunction=o=>typeof o=="function";function splitAtom(o,n){return memo2$1(()=>{const a=new WeakMap,l=(c,d)=>{let p=a.get(c);if(p)return p;const u=d&&a.get(d),m=[],g=[];return c.forEach((h,x)=>{const f=x;g[x]=f;const b=u&&u.atomList[u.keyList.indexOf(f)];if(b){m[x]=b;return}const j=w=>{const v=w(r),k=w(o),B=l(k,v==null?void 0:v.arr).keyList.indexOf(f);if(B<0||B>=k.length){const E=c[l(c).keyList.indexOf(f)];if(E)return E;throw new Error("splitAtom: index out of bounds for read")}return k[B]},S=(w,v,k)=>{const C=w(r),B=w(o),I=l(B,C==null?void 0:C.arr).keyList.indexOf(f);if(I<0||I>=B.length)throw new Error("splitAtom: index out of bounds for write");const R=isFunction(k)?k(B[I]):k;Object.is(B[I],R)||v(o,[...B.slice(0,I),R,...B.slice(I+1)])};m[x]=isWritable(o)?atom(j,S):atom(j)}),u&&u.keyList.length===g.length&&u.keyList.every((h,x)=>h===g[x])?p=u:p={arr:c,atomList:m,keyList:g},a.set(c,p),p},r=atom(c=>{const d=c(r),p=c(o);return l(p,d==null?void 0:d.arr)});r.init=void 0;const i=isWritable(o)?atom(c=>c(r).atomList,(c,d,p)=>{switch(p.type){case"remove":{const u=c(i).indexOf(p.atom);if(u>=0){const m=c(o);d(o,[...m.slice(0,u),...m.slice(u+1)])}break}case"insert":{const u=p.before?c(i).indexOf(p.before):c(i).length;if(u>=0){const m=c(o);d(o,[...m.slice(0,u),p.value,...m.slice(u)])}break}case"move":{const u=c(i).indexOf(p.atom),m=p.before?c(i).indexOf(p.before):c(i).length;if(u>=0&&m>=0){const g=c(o);u<m?d(o,[...g.slice(0,u),...g.slice(u+1,m),g[u],...g.slice(m)]):d(o,[...g.slice(0,m),g[u],...g.slice(m,u),...g.slice(u+1)])}break}}}):atom(c=>c(r).atomList);return i},o,cacheKeyForEmptyKeyExtractor)}const isPromiseLike$1=o=>typeof(o==null?void 0:o.then)=="function";function createJSONStorage(o=()=>{try{return window.localStorage}catch{return}},n){var a;let l,r;const i={getItem:(p,u)=>{var m,g;const h=f=>{if(f=f||"",l!==f){try{r=JSON.parse(f,n==null?void 0:n.reviver)}catch{return u}l=f}return r},x=(g=(m=o())==null?void 0:m.getItem(p))!=null?g:null;return isPromiseLike$1(x)?x.then(h):h(x)},setItem:(p,u)=>{var m;return(m=o())==null?void 0:m.setItem(p,JSON.stringify(u,void 0))},removeItem:p=>{var u;return(u=o())==null?void 0:u.removeItem(p)}},c=p=>(u,m,g)=>p(u,h=>{let x;try{x=JSON.parse(h||"")}catch{x=g}m(x)});let d;try{d=(a=o())==null?void 0:a.subscribe}catch{}return!d&&typeof window<"u"&&typeof window.addEventListener=="function"&&window.Storage&&(d=(p,u)=>{if(!(o()instanceof window.Storage))return()=>{};const m=g=>{g.storageArea===o()&&g.key===p&&u(g.newValue)};return window.addEventListener("storage",m),()=>{window.removeEventListener("storage",m)}}),d&&(i.subscribe=c(d)),i}const defaultStorage=createJSONStorage();function atomWithStorage(o,n,a=defaultStorage,l){const r=atom(n);return r.onMount=c=>{c(a.getItem(o,n));let d;return a.subscribe&&(d=a.subscribe(o,c,n)),d},atom(c=>c(r),(c,d,p)=>{const u=typeof p=="function"?p(c(r)):p;return u===RESET?(d(r,n),a.removeItem(o)):u instanceof Promise?u.then(m=>(d(r,m),a.setItem(o,m))):(d(r,u),a.setItem(o,u))})}const StoreContext=React.createContext(void 0),useStore=o=>{const n=React.useContext(StoreContext);return(o==null?void 0:o.store)||n||getDefaultStore()},isPromiseLike=o=>typeof(o==null?void 0:o.then)=="function",attachPromiseMeta=o=>{o.status="pending",o.then(n=>{o.status="fulfilled",o.value=n},n=>{o.status="rejected",o.reason=n})},use=React.use||(o=>{if(o.status==="pending")throw o;if(o.status==="fulfilled")return o.value;throw o.status==="rejected"?o.reason:(attachPromiseMeta(o),o)}),continuablePromiseMap=new WeakMap,createContinuablePromise=o=>{let n=continuablePromiseMap.get(o);return n||(n=new Promise((a,l)=>{let r=o;const i=p=>u=>{r===p&&a(u)},c=p=>u=>{r===p&&l(u)},d=p=>{"onCancel"in p&&typeof p.onCancel=="function"&&p.onCancel(u=>{isPromiseLike(u)?(continuablePromiseMap.set(u,n),r=u,u.then(i(u),c(u)),d(u)):a(u)})};o.then(i(o),c(o)),d(o)}),continuablePromiseMap.set(o,n)),n};function useAtomValue(o,n){const a=useStore(n),[[l,r,i],c]=React.useReducer(u=>{const m=a.get(o);return Object.is(u[0],m)&&u[1]===a&&u[2]===o?u:[m,a,o]},void 0,()=>[a.get(o),a,o]);let d=l;if((r!==a||i!==o)&&(c(),d=a.get(o)),React.useEffect(()=>{const u=a.sub(o,()=>{c()});return c(),u},[a,o,void 0]),React.useDebugValue(d),isPromiseLike(d)){const u=createContinuablePromise(d);return use(u)}return d}function useSetAtom(o,n){const a=useStore(n);return React.useCallback((...r)=>a.set(o,...r),[a,o])}function useAtom(o,n){return[useAtomValue(o,n),useSetAtom(o,n)]}function useAtomCallback(o,n){const a=React.useMemo(()=>atom(null,(l,r,...i)=>o(l,r,...i)),[o]);return useSetAtom(a,n)}const readOnlyModeAtom=jotai.atom(!1);readOnlyModeAtom.debugLabel="readOnlyModeAtom";const networkModeAtom=jotai.atom("online");networkModeAtom.debugLabel="networkModeAtom";jotai.atom("");const editLayerNameAtom=jotai.atom(!1);editLayerNameAtom.debugLabel="editLayerNameAtom";const activeLanguageAtom=jotai.atom("");activeLanguageAtom.debugLabel="activeLanguageAtom";const primaryLanguageAtom=jotai.atom("");primaryLanguageAtom.debugLabel="primaryLanguageAtom";const canvasIframeAtom=jotai.atom(null);canvasIframeAtom.debugLabel="canvasIframeAtom";const activePanelAtom=jotai.atom("outline");activePanelAtom.debugLabel="activePanelAtom";const showPredefinedBlockCategoryAtom=jotai.atom("");showPredefinedBlockCategoryAtom.debugLabel="showPredefinedBlockCategoryAtom";const historyStatesAtom=jotai.atom({undoCount:0,redoCount:0});historyStatesAtom.debugLabel="historyStatesAtom";const inlineEditingActiveAtom=jotai.atom("");inlineEditingActiveAtom.debugLabel="inlineEditingActiveAtom";const draggingFlagAtom=jotai.atom(!1);draggingFlagAtom.debugLabel="draggingFlagAtom";const treeRefAtom=jotai.atom(null);treeRefAtom.debugLabel="treeRefAtom";const canvasSettingsAtom=jotai.atom({});canvasSettingsAtom.debugLabel="canvasSettingsAtom";const aiAssistantActiveAtom=jotai.atom(!1);aiAssistantActiveAtom.debugLabel="aiAssistantActiveAtom";const codeEditorOpenAtom=jotai.atom(!1);codeEditorOpenAtom.debugLabel="codeEditorOpenAtom";const codeEditorHeightAtom=atomWithStorage("codeEditorHeight",500);codeEditorHeightAtom.debugLabel="codeEditorHeightAtom";const xShowBlocksAtom=jotai.atom([]);xShowBlocksAtom.debugLabel="xShowBlocksAtom";const selectedLibraryAtom=atomWithStorage("_selectedLibrary",null);selectedLibraryAtom.debugLabel="selectedLibraryAtom";const dataBindingActiveAtom=jotai.atom(!0);dataBindingActiveAtom.debugLabel="dataBindingActiveAtom";let doc,win;typeof document<"u"&&(doc=document);typeof window<"u"&&(win=window);const FrameContext=React.createContext({document:doc,window:win}),useFrame=()=>React.useContext(FrameContext),{Provider:FrameContextProvider,Consumer:FrameContextConsumer}=FrameContext;class Content extends React.Component{componentDidMount(){this.props.contentDidMount()}componentDidUpdate(){this.props.contentDidUpdate()}render(){return React.Children.only(this.props.children)}}class Frame extends React.Component{constructor(a,l){super(a,l);U(this,"setRef",a=>{this.nodeRef.current=a;const{forwardedRef:l}=this.props;typeof l=="function"?l(a):l&&(l.current=a)});U(this,"handleLoad",()=>{clearInterval(this.loadCheck),this.state.iframeLoaded||this.setState({iframeLoaded:!0})});U(this,"loadCheck",()=>setInterval(()=>{this.handleLoad()},500));this._isMounted=!1,this.nodeRef=React.createRef(),this.state={iframeLoaded:!1}}componentDidMount(){this._isMounted=!0,this.getDoc()&&this.nodeRef.current.contentWindow.addEventListener("DOMContentLoaded",this.handleLoad)}componentWillUnmount(){this._isMounted=!1,this.nodeRef.current.removeEventListener("DOMContentLoaded",this.handleLoad)}getDoc(){return this.nodeRef.current?this.nodeRef.current.contentDocument:null}getMountTarget(){const a=this.getDoc();return this.props.mountTarget?a.querySelector(this.props.mountTarget):a.body.children[0]}renderFrameContents(){if(!this._isMounted)return null;const a=this.getDoc();if(!a)return null;const l=this.props.contentDidMount,r=this.props.contentDidUpdate,i=a.defaultView||a.parentView,c=jsxRuntime.jsx(Content,{contentDidMount:l,contentDidUpdate:r,children:jsxRuntime.jsx(FrameContextProvider,{value:{document:a,window:i},children:jsxRuntime.jsx("div",{className:"frame-content",children:this.props.children})})}),d=this.getMountTarget();return[ReactDOM.createPortal(this.props.head,this.getDoc().head),ReactDOM.createPortal(c,d)]}render(){const a={...this.props,srcDoc:this.props.initialContent,children:void 0};return delete a.head,delete a.initialContent,delete a.mountTarget,delete a.contentDidMount,delete a.contentDidUpdate,delete a.forwardedRef,jsxRuntime.jsx("iframe",{...a,ref:this.setRef,onLoad:this.handleLoad,children:this.state.iframeLoaded&&this.renderFrameContents()})}}U(Frame,"defaultProps",{style:{},head:null,children:void 0,mountTarget:void 0,contentDidMount:()=>{},contentDidUpdate:()=>{},initialContent:'<!DOCTYPE html><html><head></head><body><div class="frame-root"></div></body></html>'});const ChaiFrame=React.forwardRef((o,n)=>jsxRuntime.jsx(Frame,{...o,forwardedRef:n}));function duplicateBlocks(o,n,a){const l=lodashEs.filter(o,i=>i._parent===n),r=[];for(let i=0;i<l.length;i++){const c=getSlots(l[i]);if(Object.keys(c).length>0&&Object.keys(c).forEach(d=>{l[i][d]=`slot:${iconBase.generateUUID()}`}),lodashEs.filter(o,{_parent:l[i]._id}).length>0){const d=iconBase.generateUUID();r.push({...l[i],oldId:l[i]._id,_id:d,_parent:a}),r.push(lodashEs.flatten(duplicateBlocks(o,l[i]._id,d)))}else r.push({...l[i],oldId:l[i]._id,_id:iconBase.generateUUID(),_parent:a})}return lodashEs.flatten(r)}function convertToBlocksTree(o){const n={};o.forEach(l=>{n[l._id]={...l,children:[]}});const a=[];return o.forEach(l=>{if(l._parent){const r=n[l._parent];r&&r.children.push(n[l._id])}else a.push(n[l._id])}),a}const getSlots=o=>{const n={};return Object.keys(o).forEach(a=>{lodashEs.isString(o[a])&&o[a].startsWith("slot")&&(n[a]=o[a].replace("slot:",""))}),n},getDuplicatedBlocks=(o,n,a=null)=>{let l=lodashEs.find(o,{_id:n});l={...l,oldId:l._id,_id:iconBase.generateUUID()},a!==(l==null?void 0:l._parent)&&(l={...l,_parent:a});const r=[l];lodashEs.filter(o,{_parent:n}).length>0&&r.push(lodashEs.flatten(duplicateBlocks(o,n,l._id)));const i=lodashEs.flatten(r);return lodashEs.map(i,c=>{const d=c,p=getSlots(d);return Object.keys(p).length>0&&Object.keys(p).forEach(u=>{const m=lodashEs.find(i,{oldId:p[u].replace("slot:","")});d[u]=`slot:${m._id}`}),lodashEs.omit(d,["global","oldId"])})},presentBlocksAtom=jotai.atom([]);presentBlocksAtom.debugLabel="presentBlocksAtom";const treeDSBlocks=jotai.atom(o=>{const n=o(presentBlocksAtom);return convertToBlocksTree([...n])});treeDSBlocks.debugLabel="treeDSBlocks";const pageBlocksAtomsAtom=splitAtom(presentBlocksAtom);pageBlocksAtomsAtom.debugLabel="pageBlocksAtomsAtom";const builderActivePageAtom=jotai.atom("");builderActivePageAtom.debugLabel="builderActivePageAtom";const destinationDropIndexAtom=jotai.atom(-1);destinationDropIndexAtom.debugLabel="destinationDropIndexAtom";const buildingBlocksAtom=jotai.atom([]);buildingBlocksAtom.debugLabel="buildingBlocksAtom";const globalBlocksAtom=jotai.atom(o=>{const n=o(buildingBlocksAtom);return lodashEs.filter(n,a=>lodashEs.has(a,"blockId"))});globalBlocksAtom.debugLabel="globalBlocksAtom";var undomanager={exports:{}},hasRequiredUndomanager;function requireUndomanager(){return hasRequiredUndomanager||(hasRequiredUndomanager=1,function(o){(function(){function n(l,r,i){return l.splice(r,!i||1+i-r+(!(i<0^r>=0)&&(i<0||-1)*l.length)),l.length}let a=function(){let l=[],r=-1,i=0,c=!1,d;function p(u,m){return!u||typeof u[m]!="function"?this:(c=!0,u[m](),c=!1,this)}return{add:function(u){return c?this:(l.splice(r+1,l.length-r),l.push(u),i&&l.length>i&&n(l,0,-(i+1)),r=l.length-1,d&&d(),this)},setCallback:function(u){d=u},undo:function(){let u=l[r];if(!u)return this;const m=u.groupId;for(;u.groupId===m&&(p(u,"undo"),r-=1,u=l[r],!(!u||!u.groupId)););return d&&d(),this},redo:function(){let u=l[r+1];if(!u)return this;const m=u.groupId;for(;u.groupId===m&&(p(u,"redo"),r+=1,u=l[r+1],!(!u||!u.groupId)););return d&&d(),this},clear:function(){let u=l.length;l=[],r=-1,d&&u>0&&d()},hasUndo:function(){return r!==-1},hasRedo:function(){return r<l.length-1},getCommands:function(u){return u?l.filter(m=>m.groupId===u):l},getIndex:function(){return r},setLimit:function(u){i=u}}};o.exports?o.exports=a:window.UndoManager=a})()}(undomanager)),undomanager.exports}var undomanagerExports=requireUndomanager();const UndoManager=ChaiThemeFn.getDefaultExportFromCjs(undomanagerExports);function getBlocksTree(o){return convertToBlocksTree(o)}const nestedToFlatArray=(o,n)=>lodashEs.flatten(o.map(a=>{if(a=n?{...a,_parent:n}:{...a},a.children){const l=[...a.children];return delete a.children,lodashEs.flatten([a,...nestedToFlatArray(l,a._id)])}return a}));function setProjectBlocksInMemory(o,n=!1){for(let a=0;a<o.length;a++){const l=o[a];l.global&&!n?o[a]={type:"GlobalBlock",blockId:l.blockId,_parent:lodashEs.get(l,"_parent",null),_id:l._id}:l.children&&l.children.length&&setProjectBlocksInMemory(l.children)}}function getInnerBlocks(o){let n=[],a=lodashEs.filter(o,{type:"GlobalBlock"});return a.length>0&&(a=lodashEs.map(a,getPBlocks),lodashEs.each(a,l=>{n=[...n,...getSingleBlock(l)]})),n}function getSingleBlock(o){let n=[];const a=lodashEs.get(lodashEs.first(o),"_parent",null);lodashEs.set(lodashEs.first(o),"_parent",null);const l=[flatToNestedInstance.convert(clone(o))];setProjectBlocksInMemory(l,!0);let r=nestedToFlatArray(l,o[0]._id);return r=lodashEs.set(r,"0._parent",a),n=[...n,r,...getInnerBlocks(r)],n}function getPBlocks(o){const n=lodashEs.find(FLAT_ARRAY,{_id:o._id});if(!n)return[];const a=[n],l=lodashEs.filter(FLAT_ARRAY,{_parent:o._id});return l.length?lodashEs.flatten([...a,...lodashEs.flatten(lodashEs.map(l,getPBlocks))]):lodashEs.flatten(a)}const clone=o=>JSON.parse(JSON.stringify(o));let FLAT_ARRAY=[];function splitPageBlocks(o){FLAT_ARRAY=o;const n=getBlocksTree(clone(o));setProjectBlocksInMemory(n);const a=nestedToFlatArray(n,null),l=getInnerBlocks(a),r={};return lodashEs.each(l,i=>lodashEs.set(r,lodashEs.first(i).blockId,i)),[a,r]}const MODIFIERS=["hover","focus","focus-within","focus-visible","active","visited","target","first","last","only","odd","even","first-of-type","last-of-type","only-of-type","empty","disabled","checked","indeterminate","default","required","valid","invalid","in-range","out-of-range","placeholder-shown","autofill","read-only","open","before","after","first-letter","first-line","marker","selection","file","placeholder","hs-collapse-open","hs-accordion-active"],BRANDING_OPTIONS_DEFAULTS={bodyFont:"Inter",headingFont:"Inter",roundedCorners:5,primaryColor:"#570df8",secondaryColor:"#f002b8",bodyBgDarkColor:"#031022",bodyBgLightColor:"#fcfcfc",bodyTextDarkColor:"#ffffff",bodyTextLightColor:"#000000"},brandingOptionsAtom=jotai.atom(BRANDING_OPTIONS_DEFAULTS);jotai.atom(null);const useBrandingOptions=()=>{const[o,n]=jotai.useAtom(brandingOptionsAtom);return[lodashEs.isObject(o)?{...BRANDING_OPTIONS_DEFAULTS,...o}:BRANDING_OPTIONS_DEFAULTS,n]},currentPageAtom=jotai.atom(null),useCurrentPage=()=>({currentPage:jotai.useAtomValue(currentPageAtom)}),getBlockBuilderProps=lodashEs.memoize(o=>{const n=runtime.getRegisteredChaiBlock(o),a=lodashEs.get(n,"schema.properties",{});return lodashEs.compact(Object.keys(a).map(l=>lodashEs.get(a[l],"builderProp",!1)||lodashEs.get(a[l],"runtime",!1)?l:null))}),useGetPageData=()=>{const[o]=useBrandingOptions(),{currentPage:n}=useCurrentPage(),[a]=useBlocksStore();return React.useCallback(()=>{const l=lodashEs.map(a,i=>lodashEs.omit(i,getBlockBuilderProps(i._type))),[r=[]]=splitPageBlocks(l);return{currentPage:n,blocks:r}},[o,n,a])},chaiBuilderPropsAtom=jotai.atom(null);chaiBuilderPropsAtom.debugLabel="chaiBuilderPropsAtom";const chaiExternalDataAtom=jotai.atom({});chaiExternalDataAtom.debugLabel="chaiExternalDataAtom";const chaiRjsfFieldsAtom=jotai.atom({});chaiRjsfFieldsAtom.debugLabel="chaiRjsfFieldsAtom";const chaiRjsfWidgetsAtom=jotai.atom({});chaiRjsfWidgetsAtom.debugLabel="chaiRjsfWidgetsAtom";const chaiRjsfTemplatesAtom=jotai.atom({});chaiRjsfTemplatesAtom.debugLabel="chaiRjsfTemplatesAtom";const chaiPageExternalDataAtom=jotai.atom({});chaiPageExternalDataAtom.debugLabel="chaiPageExternalDataAtom";const usePageExternalData=()=>jotai.useAtomValue(chaiPageExternalDataAtom),useBuilderProp=(o,n=void 0)=>{const a=jotai.useAtomValue(chaiBuilderPropsAtom);return lodashEs.get(a,o,n)},getDefaultThemeValues=(o=ChaiThemeFn.defaultThemeOptions)=>{const n={};return o.fontFamily&&(n.fontFamily=Object.entries(o.fontFamily).reduce((a,[l,r])=>({...a,[l.replace("font-","")]:r}),{})),n.borderRadius=o.borderRadius,o.colors&&(n.colors=o.colors.reduce((a,l)=>(Object.entries(l.items).forEach(([r,i])=>{a[r]=i}),a),{})),n},chaiThemeValuesAtom=jotai.atom({}),useTheme=()=>{const o=useThemeOptions(),n=React.useMemo(()=>getDefaultThemeValues(o),[o]),a=useBuilderProp("theme",{}),[l,r]=jotai.useAtom(chaiThemeValuesAtom);return[React.useMemo(()=>({...n,...!lodashEs.isEmpty(a)&&a,...!lodashEs.isEmpty(l)&&l}),[n,a,l]),r]},useThemeOptions=()=>{const o=useBuilderProp("themeOptions",a=>a);return React.useMemo(()=>o(ChaiThemeFn.defaultThemeOptions),[o])},rightPanelAtom=jotai.atom("block"),useRightPanel=()=>jotai.useAtom(rightPanelAtom),builderSaveStateAtom=jotai.atom("SAVED");builderSaveStateAtom.debugLabel="builderSaveStateAtom";const useSavePage=()=>{const[o,n]=jotai.useAtom(builderSaveStateAtom),a=useBuilderProp("onSave",async d=>{}),l=useBuilderProp("onSaveStateChange",lodashEs.noop),r=useGetPageData(),[i]=useTheme();return{savePage:web.useThrottledCallback(async(d=!1)=>{n("SAVING"),l("SAVING");const p=r();return await a({autoSave:d,blocks:p.blocks,theme:i}),setTimeout(()=>{n("SAVED"),l("SAVED")},100),!0},[r,n,i,a,l],3e3),saveState:o,setSaveState:n}},undoManager=new UndoManager;undoManager.setLimit(50);const useUndoManager=()=>{const[,o]=jotai.useAtom(builderSaveStateAtom),n=useBuilderProp("onSaveStateChange",lodashEs.noop);return React.useEffect(()=>(undoManager.setCallback(()=>{o("UNSAVED"),n("UNSAVED")}),()=>{undoManager.setCallback(lodashEs.noop)}),[]),{add:undoManager.add,undo:undoManager.undo,redo:undoManager.redo,hasRedo:undoManager.hasRedo,hasUndo:undoManager.hasUndo,clear:undoManager.clear}},broadcastChannel=new BroadcastChannel("chaibuilder"),useBroadcastChannel=()=>{const o=useBuilderProp("pageId","chaibuilder_page");return{postMessage:web.useDebouncedCallback(a=>broadcastChannel.postMessage({...a,pageId:o}),[o],200)}},useUnmountBroadcastChannel=()=>{const[,o]=useBlocksStore(),n=useBuilderProp("pageId","chaibuilder_page"),{updateBlocksProps:a}=useBlocksStoreManager();React.useEffect(()=>(broadcastChannel.onmessageerror=l=>{console.log("error",l)},broadcastChannel.onmessage=l=>{l.data.type==="blocks-updated"&&l.data.pageId===n&&o(l.data.blocks),l.data.type==="blocks-props-updated"&&l.data.pageId===n&&a(l.data.blocks)},()=>{broadcastChannel.onmessage=null,broadcastChannel.onmessageerror=null}),[o,n])},selectedBlockIdsAtom=jotai.atom([]);selectedBlockIdsAtom.debugLabel="selectedBlockIdsAtom";const selectedBlocksAtom=jotai.atom(o=>{const n=o(presentBlocksAtom),a=o(selectedBlockIdsAtom);return lodashEs.map(lodashEs.filter(n,({_id:l})=>lodashEs.includes(a,l)),l=>({...l}))});selectedBlocksAtom.debugLabel="selectedBlocksAtom";const selectedBlockAtom=jotai.atom(o=>{const n=o(selectedBlocksAtom);if(n.length===0)return null;if(n.length===1)return n[0]});selectedBlockAtom.debugLabel="selectedBlockAtom";const getParentId=o=>lodashEs.get(o,"_parent",null),selectedBlocksParentsAtom=jotai.atom(o=>{const n=o(selectedBlocksAtom),a=lodashEs.map(n,getParentId);return lodashEs.filter(o(presentBlocksAtom),l=>lodashEs.includes(a,l._id))});selectedBlocksParentsAtom.debugLabel="selectedBlocksParentsAtom";const selectedBlockFlexChildAtom=jotai.atom(()=>!1);selectedBlockFlexChildAtom.debugLabel="selectedBlockFlexChildAtom";const selectedBlockGridChildAtom=jotai.atom(()=>!1);selectedBlockGridChildAtom.debugLabel="selectedBlockGridChildAtom";const styleStateAtom=jotai.atom("");styleStateAtom.debugLabel="styleStateAtom";const styleBreakpointAtom=atomWithStorage("styleBreakpoint","xs");styleBreakpointAtom.debugLabel="styleBreakpointAtom";const useSelectedBlocksDisplayChild=()=>({flexChild:jotai.useAtomValue(selectedBlockFlexChildAtom),gridChild:jotai.useAtomValue(selectedBlockGridChildAtom)}),useSelectedBlock=()=>jotai.useAtomValue(selectedBlockAtom),selectedBlockHierarchy=jotai.atom(o=>{const n=o(selectedBlockAtom),a=o(presentBlocksAtom);let l=n;const r=[n];do{const i=a.find(({_id:c})=>c===(l==null?void 0:l._parent));l=i,i&&r.push(i)}while(l!=null&&l._parent);return r}),useSelectedBlockHierarchy=()=>lodashEs.compact(jotai.useAtomValue(selectedBlockHierarchy)),useSelectedBlockIds=()=>{const[o,n]=jotai.useAtom(selectedBlockIdsAtom),a=React.useCallback(l=>{n(r=>lodashEs.includes(r,l)?lodashEs.without(r,l):[...r,l])},[n]);return[o,n,a]},removeNestedBlocks=(o,n)=>{let a=[...o],l=[];n.forEach(d=>{const p=a.find(g=>g._id===d);if(!p||!p._parent)return;const u=p._parent,m=a.filter(g=>g._parent===u);if(m.length===2){const g=m.find(h=>h._id!==d);if(g&&g._type==="Text"){const h=a.find(x=>x._id===u);h&&"content"in h&&(a=a.map(x=>{if(x._id===u){const f={...x,content:g.content};return Object.keys(g).forEach(b=>{b.startsWith("content-")&&(f[b]=g[b])}),f}return x}),l.push(g._id))}}});const r=[...n,...l],i=[],c=lodashEs.filter(a,d=>lodashEs.includes(r,d._id)||lodashEs.includes(r,d._parent)?(i.push(d._id),!1):!0);return lodashEs.isEmpty(i)?c:removeNestedBlocks(c,i)},useRemoveBlocks=()=>{const[o]=useBlocksStore(),[n,a]=useSelectedBlockIds(),{setNewBlocks:l}=useBlocksStoreUndoableActions();return React.useCallback(r=>{var c;const i=((c=lodashEs.find(o,{_id:r[0]}))==null?void 0:c._parent)||null;l(removeNestedBlocks(o,r)),setTimeout(()=>a(i?[i]:[]),200)},[o,a,n])},builderStore=jotai.getDefaultStore(),writeAtomValue=jotai.atom(null,(o,n,{id:a,props:l})=>{const r=o(pageBlocksAtomsAtom),i=lodashEs.find(r,c=>o(c)._id===a);if(!i)throw new Error(`Block with id ${a} not found`);return n(i,{...o(i),...l})}),useUpdateBlockAtom=()=>jotai.useSetAtom(writeAtomValue),useGetBlockAtomValue=o=>useAtomCallback(React.useCallback((n,a,l)=>{const r=n(o);if(!r||!r.length)throw new Error("No blocks available");const i=lodashEs.find(r,c=>n(c)._id===(lodashEs.isString(l)?l:n(l)._id));if(!i)throw new Error(`Block with id ${l} not found`);return n(i)},[o]),{store:builderStore}),useGetBlockAtom=o=>useAtomCallback(React.useCallback((n,a,l)=>{const r=n(o);if(!r||!r.length)return console.warn("No blocks available in splitAtoms"),null;const i=lodashEs.find(r,c=>n(c)._id===(lodashEs.isString(l)?l:n(l)._id));return i||(console.warn(`Block with id ${l} not found`),null)},[o]),{store:builderStore});function insertBlocksAtPosition(o,n,a,l){const r=[...n];let i=[...o];if(a){const u=o.find(m=>m._id===a);if(u&&u.content!==void 0&&u.content!==""&&!o.some(g=>g._parent===a)){const h={_id:iconBase.generateUUID(),_parent:a,_type:"Text",content:u.content};Object.keys(u).forEach(x=>{x.startsWith("content-")&&(h[x]=u[x])}),r.unshift(h),i=i.map(x=>{if(x._id===a){const f={...x,content:""};return Object.keys(f).forEach(b=>{b.startsWith("content-")&&(f[b]="")}),f}return x})}}let c=i.filter(u=>!u._parent);a&&(c=i.filter(u=>u._parent===a));const d=!isNaN(l)||l>-1?Math.min(l,c.length):c.length;let p=i.length;for(let u=0,m=0;u<i.length;u++)if(i[u]._parent===a){if(m===d){p=u;break}m++}return!a&&l!==void 0&&l>=c.length&&(p=i.length),[...i.slice(0,p),...r,...i.slice(p)]}function flattenTree(o){let n=[];return o.walk(a=>(delete a.model.children,n.push(a.model),!0)),n}function findNodeById(o,n){return o.first(a=>a.model._id===n)||null}function moveNode(o,n,a,l){const r=findNodeById(o,n),i=findNodeById(o,a);if(r&&i){r.drop(),i.children||(i.model.children=[]);try{i.addChildAtIndex(r,l)}catch(c){return console.error("Error adding child to parent:",c),!1}return!0}return!1}function handleOldParentTextBlock(o,n){if(!n||!n._parent)return o;const a=n._parent,l=o.find(i=>i._id===a);if(!l)return o;const r=o.filter(i=>i._parent===a);if(r.length===2){const i=r.find(c=>c._id!==n._id);if(i&&i._type==="Text"&&"content"in l)return o.map(d=>{if(d._id===a){const p={...d,content:i.content};return Object.keys(i).forEach(u=>{u.startsWith("content-")&&(p[u]=i[u])}),p}return d}).filter(d=>d._id!==i._id)}return o}function handleNewParentTextBlock(o,n,a){if(!a||a==="root")return o;const l=o.find(r=>r._id===a);if(!l)return o;if(l.content!==void 0&&l.content!==""&&!o.some(i=>i._parent===a&&i._id!==n._id)){const c={_id:iconBase.generateUUID(),_parent:a,_type:"Text",content:l.content};Object.keys(l).forEach(u=>{u.startsWith("content-")&&(c[u]=l[u])});const d=o.map(u=>{if(u._id===a){const m={...u,content:""};return Object.keys(m).forEach(g=>{g.startsWith("content-")&&(m[g]="")}),m}return u}),p=d.findIndex(u=>u._id===n._id);return p!==-1?[...d.slice(0,p),c,...d.slice(p)]:[c,...d]}return o}function moveBlocksWithChildren(o,n,a,l){if(!n)return o;const r=o.find(u=>u._id===n);if(!r)return o;let i=handleOldParentTextBlock(o,r);const c=a||"root",p=new TreeModel().parse({_id:"root",children:getBlocksTree(i)});if(moveNode(p,n,c,l)){let u=flattenTree(p);const m=u.find(g=>g._id===n);return m&&(m._parent=c==="root"?null:c),u.shift(),a&&(u=handleNewParentTextBlock(u,r,a)),u}return i}const useBlocksStoreManager=()=>{const[,o]=useBlocksStore(),{postMessage:n}=useBroadcastChannel(),a=useUpdateBlockAtom();return{setNewBlocks:l=>{o(l),n({type:"blocks-updated",blocks:l})},addBlocks:(l,r,i)=>{o(c=>{const d=insertBlocksAtPosition(c,l,r,i);return n({type:"blocks-updated",blocks:d}),d})},removeBlocks:l=>{o(r=>{const i=removeNestedBlocks(r,l);return n({type:"blocks-updated",blocks:i}),i})},moveBlocks:(l,r,i)=>{o(c=>{let d=[...c];for(let p=0;p<l.length;p++)d=moveBlocksWithChildren(d,l[p],r,i);return lodashEs.each(l,p=>{const u=lodashEs.find(d,m=>m._id===p);u&&a({id:p,props:{_parent:u._parent||null}})}),n({type:"blocks-updated",blocks:d}),d})},updateBlocksProps:l=>{l.forEach(r=>{const i=lodashEs.omit(r,"_id");a({id:r._id,props:i})}),n({type:"blocks-props-updated",blocks:l})}}},useBlocksStore=()=>jotai.useAtom(presentBlocksAtom),useBlocksStoreUndoableActions=()=>{const{add:o}=useUndoManager(),[n]=useBlocksStore(),{setNewBlocks:a,addBlocks:l,removeBlocks:r,moveBlocks:i,updateBlocksProps:c}=useBlocksStoreManager();return{moveBlocks:(f,b,j)=>{const S=lodashEs.map(f,v=>{const C=n.find(I=>I._id===v)._parent||null,E=n.filter(I=>C?I._parent===C:!I._parent).map(I=>I._id).indexOf(v);return{_id:v,oldParent:C,oldPosition:E}}),w=S.find(({_id:v})=>v===f[0]);w&&w.oldParent===b&&w.oldPosition===j||(i(f,b,j),o({undo:()=>lodashEs.each(S,({_id:v,oldParent:k,oldPosition:C})=>{i([v],k,C)}),redo:()=>i(f,b,j)}))},addBlocks:(f,b,j)=>{l(f,b,j),o({undo:()=>r(lodashEs.map(f,"_id")),redo:()=>l(f,b,j)})},removeBlocks:f=>{var w;const b=(w=lodashEs.first(f))==null?void 0:w._parent,S=n.filter(v=>b?v._parent===b:!v._parent).indexOf(lodashEs.first(f));r(lodashEs.map(f,"_id")),o({undo:()=>l(f,b,S),redo:()=>r(lodashEs.map(f,"_id"))})},updateBlocks:(f,b,j)=>{let S=[];if(j)S=lodashEs.map(f,w=>({_id:w,...j}));else{const w=lodashEs.keys(b);S=lodashEs.map(f,v=>{const k=n.find(B=>B._id===v),C={_id:v};return lodashEs.each(w,B=>C[B]=k[B]),C})}c(lodashEs.map(f,w=>({_id:w,...b}))),o({undo:()=>c(S),redo:()=>c(lodashEs.map(f,w=>({_id:w,...b})))})},updateBlocksRuntime:(f,b)=>{c(lodashEs.map(f,j=>({_id:j,...b})))},setNewBlocks:f=>{a(f),o({undo:()=>a(n),redo:()=>a(f)})},updateMultipleBlocksProps:f=>{let b=[];b=lodashEs.map(f,j=>{const S=lodashEs.keys(j),w=n.find(k=>k._id===j._id),v={};return lodashEs.each(S,k=>v[k]=w[k]),v}),c(f),o({undo:()=>c(b),redo:()=>c(f)})}}},canAcceptChildBlock=(o,n)=>{if(!o)return!0;const a=runtime.getRegisteredChaiBlock(o);return a&&lodashEs.has(a,"canAcceptBlock")?a.canAcceptBlock(n):!1},canAddChildBlock=o=>{const n=runtime.getRegisteredChaiBlock(o);return n?lodashEs.has(n,"canAcceptBlock"):!1},canBeNestedInside=(o,n)=>{const a=runtime.getRegisteredChaiBlock(n);return a&&lodashEs.has(a,"canBeNested")?a.canBeNested(o):!0},canDuplicateBlock=o=>{const n=runtime.getRegisteredChaiBlock(o);return n&&lodashEs.has(n,"canDuplicate")?n.canDuplicate():!0},canDeleteBlock=o=>{const n=runtime.getRegisteredChaiBlock(o);return n&&lodashEs.has(n,"canDelete")?n.canDelete():!0},canDropBlock=(o,{dragSource:n,dropTarget:a})=>{const l=lodashEs.get(n,"data._type",""),r=lodashEs.get(a,"data._type","");return canAcceptChildBlock(r,l)},useAddBlock=()=>{const[o]=useBlocksStore(),[,n]=useSelectedBlockIds(),{addBlocks:a}=useBlocksStoreUndoableActions(),l=React.useCallback((i,c,d)=>{var h;for(let x=0;x<i.length;x++){const{_id:f}=i[x];i[x]._id=iconBase.generateUUID();const b=lodashEs.filter(i,{_parent:f});for(let j=0;j<b.length;j++)b[j]._parent=i[x]._id}const p=lodashEs.first(i);let u,m;return c&&(u=lodashEs.find(o,{_id:c}),i[0]._parent=c,m=c),!(u?canAcceptChildBlock(u==null?void 0:u._type,p._type):!0)&&u&&(i[0]._parent=u._parent,m=u._parent),a(i,m,d),n([(h=lodashEs.first(i))==null?void 0:h._id]),lodashEs.first(i)},[a,o,n]);return{addCoreBlock:React.useCallback((i,c,d)=>{if(lodashEs.has(i,"blocks")){const b=i.blocks;return l(b,c,d)}const p=iconBase.generateUUID(),u=runtime.getDefaultBlockProps(i.type),m={_type:i.type,_id:p,...u,...lodashEs.has(i,"_name")&&{_name:i._name},...lodashEs.has(i,"partialBlockId")&&{partialBlockId:i.partialBlockId}};let g,h;return c&&(g=lodashEs.find(o,{_id:c}),m._parent=c,h=c),!canAcceptChildBlock(g==null?void 0:g._type,m._type)&&g&&(m._parent=g._parent,h=g._parent),a([m],h,d),n([m._id]),m},[a,l,o,n]),addPredefinedBlock:l}},STANDARD=[0,1,2,3,4,5,6,7,8,9,10,11,12,14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96],CLASS_VALUES={columns:[...lodashEs.range(1,13),"auto","3xs","2xs","xs","sm","md","lg","xl",...lodashEs.map(lodashEs.range(2,8),o=>`${o}xl`)],breakAfter:["auto","avoid","all","avoid-page","page","left","right","column"],breakInside:["auto","avoid","avoid-page","avoid-column"],display:["block","flex","grid","inline-block","inline","hidden"],objectFit:["contain","cover","fill","none","scale-down"],objectPosition:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],overflow:["auto","hidden","clip","visible","scroll"],overscroll:["auto","contain","none"],trbl:[0,"px","0.5",1,1.5,2,2.5,3,3.5,...lodashEs.range(4,13),14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96,"auto","1/2","1/3","2/3","1/4","2/4","3/4","full"],flexBasis:[...STANDARD,"auto","px","0.5","1.5","2.5","3.5","1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","2/6","3/6","4/6","5/6","1/12","2/12","3/12","4/12","5/12","6/12","7/12","8/12","9/12","10/12","11/12","full"],padding:[...STANDARD,"px","0.5","1.5","2.5","3.5"],margin:["auto",...STANDARD,"px","0.5","1.5","2.5","3.5"],scale:[0,50,75,90,95,100,105,110,125,150],origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left"],blendEffect:["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],borderWidth:[0,2,4,8],borderRadius:["global","none","sm","md","lg","xl","2xl","3xl","full"],indent:[0,"px","0.5",1,1.5,2,2.5,3,3.5,...lodashEs.range(4,13),14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96],maxHeight:[0,"px","0.5",1,1.5,2,2.5,3,3.5,...lodashEs.range(4,13),14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96,"full","screen","min","max","fit"],space:[0,"px","0.5",1,1.5,2,2.5,3,3.5,...lodashEs.range(4,13),14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96,"px","reverse"],width:["0","px","0.5","1","1.5","2","2.5","3","3.5","4","5","6","7","8","9","10","11","12","14","16","20","24","28","32","36","40","44","48","52","56","60","64","72","80","96","auto","1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","2/6","3/6","4/6","5/6","1/12","2/12","3/12","4/12","5/12","6/12","7/12","8/12","9/12","10/12","11/12"],maxWidth:["0","none","xs","sm","md","lg","xl","2xl","3xl","4xl","5xl","6xl","7xl","full","min","max","fit","prose","screen-sm","screen-md","screen-lg","screen-xl","screen-2xl"],height:["0","px","0.5","1","1.5","2","2.5","3","3.5","4","5","6","7","8","9","10","11","12","14","16","20","24","28","32","36","40","44","48","52","56","60","64","72","80","96","auto","1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","2/6","3/6","4/6","5/6","full","screen","min","max","fit"]},CLASSES_LIST={textColor:{classes:[],regExp:"text-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},aspectRatio:{classes:["aspect-auto","aspect-square","aspect-video"],regExp:"aspect-(auto|square|video)"},container:{classes:["container"],regExp:"container"},columns:{classes:lodashEs.map(CLASS_VALUES.columns,o=>`columns-${o}`),regExp:"columns-(auto|[0-9]xl|[0-9]xs|xs|sm|md|lg|xl|\\d+)"},breakAfter:{classes:lodashEs.map(CLASS_VALUES.breakAfter,o=>`break-after-${o}`),regExp:"break-after-\\S+"},breakBefore:{classes:lodashEs.map(CLASS_VALUES.breakAfter,o=>`break-before-${o}`),regExp:"break-before-\\S+"},breakInside:{classes:lodashEs.map(CLASS_VALUES.breakInside,o=>`break-inside-${o}`),regExp:"break-inside-\\S+"},boxDecoration:{classes:["box-decoration-clone","box-decoration-slice"],regExp:"box-decoration-\\S+"},boxSizing:{classes:["box-border","box-content"],regExp:"box-(border|content)"},flexDirection:{classes:["flex-row","flex-row-reverse","flex-col","flex-col-reverse"],regExp:"flex-(row|row-reverse|col|col-reverse)"},flexWrap:{classes:["flex-wrap","flex-wrap-reverse","flex-nowrap"],regExp:"flex-(wrap|wrap-reverse|nowrap)"},flexGrowShrink:{classes:["flex-1","flex-auto","flex-initial","flex-none"],regExp:"flex-1|flex-auto|flex-initial|flex-none"},gridColumns:{classes:lodashEs.map([...lodashEs.range(0,13),"none"],o=>`grid-cols-${o}`),regExp:"grid-cols-(\\d+|none)"},gridFlow:{classes:["grid-flow-row","grid-flow-col","grid-flow-row-dense","grid-flow-col-dense"],regExp:"grid-flow-(row|col|row-dense|col-dense)"},outlineStyle:{classes:lodashEs.map(["none","dashed","dotted","double","hidden"],o=>`outline-${o}`),regExp:"outline-(none|dashed|dotted|double|hidden)"},borderStyle:{classes:lodashEs.map(["solid","dashed","dotted","double","hidden","none"],o=>`border-${o}`),regExp:"border-(solid|dashed|dotted|double|hidden|none)"},overflow:{classes:lodashEs.map(CLASS_VALUES.overflow,o=>`overflow-${o}`),regExp:`overflow-(${CLASS_VALUES.overflow.join("|")})`},overflowX:{classes:lodashEs.map(CLASS_VALUES.overflow,o=>`overflow-x-${o}`),regExp:`overflow-x-(${CLASS_VALUES.overflow.join("|")})`},overflowY:{classes:lodashEs.map(CLASS_VALUES.overflow,o=>`overflow-y-${o}`),regExp:`overflow-y-(${CLASS_VALUES.overflow.join("|")})`},gridRows:{classes:lodashEs.map([1,2,3,4,5,6,"none"],o=>`grid-rows-${o}`),regExp:"grid-rows-(\\d|none)"},display:{classes:lodashEs.map(CLASS_VALUES.display,o=>o.toString()),regExp:`(${CLASS_VALUES.display.join("|")})`},float:{classes:["float-right","float-left","float-none"],regExp:"float-\\S+"},clear:{classes:["clear-right","clear-left","clear-none","clear-both"],regExp:"clear-\\S+"},isolation:{classes:["isolate","isolation-auto"],regExp:"isolate|isolation-auto"},objectFit:{classes:lodashEs.map(CLASS_VALUES.objectFit,o=>`object-${o}`),regExp:"object-(contain|cover|fill|none|scale-down)"},objectPosition:{classes:lodashEs.map(CLASS_VALUES.objectPosition,o=>`object-${o}`),regExp:`object-(${CLASS_VALUES.objectPosition.join("|")})`},overscroll:{classes:lodashEs.map(CLASS_VALUES.overscroll,o=>`overscroll-${o}`),regExp:`overscroll-(${CLASS_VALUES.overscroll.join("|")})`},overscrollX:{classes:lodashEs.map(CLASS_VALUES.overscroll,o=>`overscroll-x-${o}`),regExp:`overscroll-x-(${CLASS_VALUES.overscroll.join("|")})`},overscrollY:{classes:lodashEs.map(CLASS_VALUES.overscroll,o=>`overscroll-y-${o}`),regExp:`overscroll-y-(${CLASS_VALUES.overscroll.join("|")})`},inset:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`inset-${o}`),regExp:"-?inset-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},insetX:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`inset-x-${o}`),regExp:"-?inset-x-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},insetY:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`inset-y-${o}`),regExp:"-?inset-y-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},top:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`top-${o}`),regExp:"-?top-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},topX:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`top-x-${o}`),regExp:"-?top-x-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},topY:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`top-y-${o}`),regExp:"-?top-y-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},right:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`right-${o}`),regExp:"-?right-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},rightX:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`right-x-${o}`),regExp:"-?right-x-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},rightY:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`right-y-${o}`),regExp:"-?right-y-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},bottom:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`bottom-${o}`),regExp:"-?bottom-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},bottomX:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`bottom-x-${o}`),regExp:"-?bottom-x-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},bottomY:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`bottom-y-${o}`),regExp:"-?bottom-y-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},left:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`left-${o}`),regExp:"-?left-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},leftX:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`left-x-${o}`),regExp:"-?left-x-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},leftY:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`left-y-${o}`),regExp:"-?left-y-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},visibility:{classes:["visible","invisible"],regExp:"invisible|visible"},zIndex:{classes:lodashEs.map(["0",10,20,30,40,50,"auto"],o=>`z-${o}`),regExp:"-?z-(\\d+|auto|\\[.*\\])"},flexBasis:{classes:lodashEs.map(CLASS_VALUES.flexBasis,o=>`basis-${o}`),regExp:"basis-(\\d+|\\S+)"},flexGrow:{classes:["grow","grow-0"],regExp:"grow(-0)?"},flexShrink:{classes:["shrink","shrink-0"],regExp:"shrink(-0)?"},gridColSpan:{classes:["col-auto",...lodashEs.map(lodashEs.range(1,13),o=>`col-span-${o}`),"col-span-full"],regExp:"col-(auto|span-(\\d+|full))"},gridColStart:{classes:[...lodashEs.map(lodashEs.range(1,14),o=>`col-start-${o}`),"col-start-auto"],regExp:"col-start-(\\d+|auto)"},gridColEnd:{classes:[...lodashEs.map(lodashEs.range(1,14),o=>`col-end-${o}`),"col-end-auto"],regExp:"col-end-(\\d+|auto)"},gridRowSpan:{classes:["row-auto",...lodashEs.map(lodashEs.range(1,7),o=>`row-span-${o}`),"row-span-full"],regExp:"row-(auto|span-(\\d+|full))"},gridRowStart:{classes:[...lodashEs.map(lodashEs.range(1,8),o=>`row-start-${o}`),"row-start-auto"],regExp:"row-start-(\\d+|auto)"},gridRowEnd:{classes:[...lodashEs.map(lodashEs.range(1,8),o=>`row-end-${o}`),"row-end-auto"],regExp:"row-end-(\\d+|auto)"},gridAutoColumns:{classes:["auto-cols-auto","auto-cols-min","auto-cols-max","auto-cols-fr"],regExp:"auto-cols-(auto|min|max|fr)"},gridAutoRows:{classes:["auto-rows-auto","auto-rows-min","auto-rows-max","auto-rows-fr"],regExp:"auto-rows-(auto|min|max|fr)"},gap:{classes:lodashEs.map(CLASS_VALUES.indent,o=>`gap-${o}`),regExp:"gap-(px|\\d.\\d|\\d|\\[.*\\])"},gapX:{classes:lodashEs.map(CLASS_VALUES.indent,o=>`gap-x-${o}`),regExp:"gap-x-(px|\\d.\\d|\\d|\\[.*\\])"},gapY:{classes:lodashEs.map(CLASS_VALUES.indent,o=>`gap-y-${o}`),regExp:"gap-y-(px|\\d.\\d|\\d|\\[.*\\])"},justifyContent:{classes:["justify-start","justify-end","justify-center","justify-between","justify-around","justify-evenly"],regExp:"justify-(start|end|center|between|around|evenly)"},justifyItems:{classes:["justify-items-start","justify-items-end","justify-items-center","justify-items-stretch"],regExp:"justify-items-(start|end|center|stretch)"},justifySelf:{classes:["justify-self-auto","justify-self-start","justify-self-end","justify-self-center","justify-self-stretch"],regExp:"justify-self-(auto|start|end|center|stretch)"},placeContent:{classes:["place-content-center","place-content-start","place-content-end","place-content-between","place-content-around","place-content-evenly","place-content-stretch"],regExp:"place-content-(center|start|end|between|around|evenly|stretch)"},placeItems:{classes:["place-items-start","place-items-end","place-items-center","place-items-stretch"],regExp:"place-items-(start|end|center|stretch)"},placeSelf:{classes:["place-self-auto","place-self-start","place-self-end","place-self-center","place-self-stretch"],regExp:"place-self-(auto|start|end|center|stretch)"},alignContent:{classes:["content-center","content-start","content-end","content-between","content-around","content-evenly"],regExp:"content-(center|start|end|between|around|evenly)"},alignItems:{classes:["items-start","items-end","items-center","items-baseline","items-stretch"],regExp:"items-(start|end|center|baseline|stretch)"},alignSelf:{classes:["self-auto","self-start","self-end","self-center","self-stretch","self-baseline"],regExp:"self-(auto|start|end|center|stretch|baseline)"},backgroundClip:{classes:["bg-clip-border","bg-clip-padding","bg-clip-content","bg-clip-text"],regExp:"bg-clip-(border|padding|content|text)"},dropShadow:{classes:lodashEs.map(["sm","md","lg","xl","2xl","none"],o=>`drop-shadow-${o}`),regExp:"drop-shadow-(sm|md|lg|xl|2xl|none)"},backdropBlur:{classes:lodashEs.map(["none","sm","md","lg","xl","2xl","3xl"],o=>`backdrop-blur-${o}`),regExp:"backdrop-blur-(none|sm|md|lg|xl|2xl|3xl)"},backdropBrightness:{classes:lodashEs.map([0,50,75,90,95,100,105,110,125,150,200],o=>`backdrop-brightness-${o}`),regExp:"backdrop-brightness-(\\d+)"},backdropContrast:{classes:lodashEs.map([0,50,75,100,125,150,200],o=>`backdrop-contrast-${o}`),regExp:"backdrop-contrast-(\\d+)"},backdropGrayScale:{classes:["backdrop-grayscale-0","backdrop-grayscale"],regExp:"backdrop-grayscale(-0)?"},backdropHueRotate:{classes:lodashEs.map([0,15,30,60,90,180],o=>`backdrop-hue-rotate-${o}`),regExp:"-?backdrop-hue-rotate-(\\d+)"},backdropInvert:{classes:["backdrop-invert-0","backdrop-invert"],regExp:"backdrop-invert(-0)?"},backdropOpacity:{classes:lodashEs.map([0,5,10,20,25,30,40,50,60,70,75,80,90,95,100],o=>`backdrop-opacity-${o}`),regExp:"backdrop-opacity-(\\d+)"},backdropSaturate:{classes:lodashEs.map([0,50,100,150,200],o=>`backdrop-saturate-${o}`),regExp:"backdrop-saturate-(\\d+)"},backdropSepia:{classes:["backdrop-sepia-0, backdrop-sepia"],regExp:"backdrop-sepia(-0)?"},backgroundOrigin:{classes:["bg-origin-border","bg-origin-padding","bg-origin-content"],regExp:"bg-origin-(border|padding|content)"},transformOrigin:{classes:lodashEs.map(CLASS_VALUES.origin,o=>`origin-${o}`),regExp:"origin-(\\d+|\\S+)"},padding:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`p-${o}`),regExp:"p-(\\d+|\\S+|\\[.*\\])"},paddingX:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`px-${o}`),regExp:"px-(\\d+|\\S+|\\[.*\\])"},paddingY:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`py-${o}`),regExp:"py-(\\d+|\\S+|\\[.*\\])"},paddingTop:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`pt-${o}`),regExp:"pt-(\\d+|\\S+|\\[.*\\])"},paddingRight:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`pr-${o}`),regExp:"pr-(\\d+|\\S+|\\[.*\\])"},paddingBottom:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`pb-${o}`),regExp:"pb-(\\d+|\\S+|\\[.*\\])"},paddingLeft:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`pl-${o}`),regExp:"pl-(\\d+|\\S+|\\[.*\\])"},textDecorationStyle:{classes:["decoration-solid","decoration-double","decoration-dotted","decoration-dashed","decoration-wavy"],regExp:"decoration-(solid|double|dotted|dashed|wavy)"},textDecorationThickness:{classes:lodashEs.map(["auto","from-font","0",1,2,4,8],o=>`decoration-${o}`),regExp:"decoration-(auto|from-font|\\d+|\\S+)"},fromColor:{classes:[],regExp:"from-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},margin:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`m-${o}`),regExp:"-?m-(\\d+|\\S+|\\[.*\\])"},marginX:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`mx-${o}`),regExp:"-?mx-(\\d+|\\S+|\\[.*\\])"},marginY:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`my-${o}`),regExp:"-?my-(\\d+|\\S+|\\[.*\\])"},marginTop:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`mt-${o}`),regExp:"-?mt-(\\d+|\\S+|\\[.*\\])"},marginRight:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`mr-${o}`),regExp:"-?mr-(\\d+|\\S+|\\[.*\\])"},marginBottom:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`mb-${o}`),regExp:"-?mb-(\\d+|\\S+|\\[.*\\])"},marginLeft:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`ml-${o}`),regExp:"-?ml-(\\d+|\\S+|\\[.*\\])"},spaceX:{classes:lodashEs.map(CLASS_VALUES.space,o=>`space-x-${o}`),regExp:"-?space-x-(\\d+|\\S+|\\[.*\\])"},spaceY:{classes:lodashEs.map(CLASS_VALUES.space,o=>`space-y-${o}`),regExp:"-?space-y-(\\d+|\\S+|\\[.*\\])"},boxShadow:{classes:lodashEs.map(["sm","md","lg","xl","2xl","inner","none"],o=>`shadow-${o}`),regExp:"shadow-(sm|md|lg|xl|2xl|inner|none)"},minWidth:{classes:["min-w-0","min-w-full","min-w-min","min-w-max","min-w-fit"],regExp:"min-w-(\\d+|\\S+|\\[.*\\])"},maxWidth:{classes:lodashEs.map(CLASS_VALUES.maxWidth,o=>`max-w-${o}`),regExp:"max-w-(\\d+|\\S+|\\[.*\\])"},width:{classes:lodashEs.map([...CLASS_VALUES.width,"full","screen","min","max","fit"],o=>`w-${o}`),regExp:"w-(\\d+.\\d+|\\d+|px|auto|full|screen|min|max|fit|\\[.*\\])$"},minHeight:{classes:["min-h-0","min-h-full","min-h-screen","min-h-min","min-h-max","min-h-fit"],regExp:"min-h-(\\d+|\\S+|\\[.*\\])"},maxHeight:{classes:lodashEs.map(CLASS_VALUES.maxHeight,o=>`max-h-${o}`),regExp:"max-h-(\\d+|\\S+|\\[.*\\])"},height:{classes:lodashEs.map(CLASS_VALUES.height,o=>`h-${o}`),regExp:"h-(\\d+.\\d+|\\d+|px|auto|full|screen|min|max|fit|\\[.*\\])"},fontFamily:{classes:["font-heading","font-body","font-sans","font-serif","font-mono"],regExp:"font-(heading|body|sans|serif|mono)"},textAlign:{classes:["text-left","text-center","text-right","text-justify"],regExp:"text-(left|center|right|justify)"},textOverflow:{classes:["truncate","text-ellipsis","text-clip"],regExp:"truncate|text-ellipsis|text-clip"},verticalAlign:{classes:["align-baseline","align-top","align-middle","align-bottom","align-text-top","align-text-bottom","align-sub","align-super"],regExp:"align-(baseline|top|middle|bottom|text-top|text-bottom|sub|super)"},fontSize:{classes:["text-xs","text-sm","text-base","text-lg","text-xl","text-2xl","text-3xl","text-4xl","text-5xl","text-6xl","text-7xl","text-8xl","text-9xl"],regExp:"text-(\\d+|\\S+|\\[.*\\])"},fontSmoothing:{classes:["antialiased","subpixel-antialiased"],regExp:"antialiased|subpixel-antialiased"},fontStyle:{classes:["italic","not-italic"],regExp:"not-italic|italic"},fontWeight:{classes:["font-thin","font-extralight","font-light","font-normal","font-medium","font-semibold","font-bold","font-extrabold","font-black"],regExp:"font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)"},fontVariantNum:{classes:["normal-nums","ordinal","diagonal-fractions","stacked-fractions","tabular-nums","oldstyle-nums","proportional-nums","lining-nums","slashed-zero"],regExp:"normal-nums|ordinal|diagonal-fractions|stacked-fractions|tabular-nums|oldstyle-nums|proportional-nums|lining-nums|slashed-zero"},letterSpacing:{classes:["tracking-tighter","tracking-tight","tracking-normal","tracking-wide","tracking-wider","tracking-widest"],regExp:"-?tracking-(tighter|tight|normal|wide|wider|widest|\\[.*\\])"},lineHeight:{classes:["leading-none","leading-tight","leading-snug","leading-normal","leading-relaxed","leading-loose","leading-3","leading-4","leading-5","leading-6","leading-7","leading-8","leading-9","leading-10"],regExp:"leading-(none|tight|snug|normal|relaxed|loose|\\[.*\\]|\\d+)"},listStyleType:{classes:["list-none","list-disc","list-decimal"],regExp:"list-(none|disc|decimal)"},listStylePosition:{classes:["list-inside","list-outside"],regExp:"list-(inside|outside)"},textUnderlineOffset:{classes:["underline-offset-auto","underline-offset-0","underline-offset-1","underline-offset-2","underline-offset-4","underline-offset-8"],regExp:"underline-offset-(auto|\\d+|\\S+)"},textDecoration:{classes:["underline","overline","line-through","no-underline"],regExp:"underline|overline|line-through|no-underline"},textDecorationColor:{classes:[],regExp:"decoration-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},textTransform:{classes:["uppercase","lowercase","capitalize","normal-case"],regExp:"uppercase|lowercase|capitalize|normal-case"},textIndent:{classes:lodashEs.map(CLASS_VALUES.indent,o=>`indent-${o}`),regExp:"-?indent-(\\d+|\\S+)"},whitespace:{classes:["whitespace-normal","whitespace-no-wrap","whitespace-pre","whitespace-pre-line","whitespace-pre-wrap"],regExp:"whitespace-(normal|no-wrap|pre|pre-line|pre-wrap)"},wordBreak:{classes:["break-normal","break-words","break-all"],regExp:"break-(normal|words|all)"},content:{classes:["content-none"],regExp:"content-none"},backgroundAttachment:{classes:lodashEs.map(["fixed","local","scroll"],o=>`bg-${o}`),regExp:"bg-(fixed|local|scroll)"},backgroundColor:{classes:[],regExp:"bg-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},backgroundPosition:{classes:["bg-bottom","bg-center","bg-left","bg-left-bottom","bg-left-top","bg-right","bg-right-bottom","bg-right-top","bg-top"],regExp:"bg-(bottom|center|left|left-bottom|left-top|right|right-bottom|right-top|top)"},backgroundRepeat:{classes:["bg-repeat","bg-repeat-x","bg-repeat-y","bg-no-repeat","bg-repeat-round","bg-repeat-space"],regExp:"bg-(repeat|repeat-x|repeat-y|no-repeat|repeat-round|repeat-space)"},backgroundSize:{classes:["bg-auto","bg-cover","bg-contain"],regExp:"bg-(auto|cover|contain)"},backgroundGradient:{classes:["bg-gradient-none","bg-gradient-to-t","bg-gradient-to-tr","bg-gradient-to-r","bg-gradient-to-br","bg-gradient-to-b","bg-gradient-to-bl","bg-gradient-to-l","bg-gradient-to-tl"],regExp:"bg-gradient-(none|to-(t|tr|r|br|b|bl|l|tl))"},viaColor:{classes:[],regExp:"via-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},toColor:{classes:[],regExp:"to-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},position:{classes:["static","fixed","absolute","relative","sticky"],regExp:"(static|fixed|absolute|relative|sticky)"},borderRadiusTopLeft:{classes:["rounded-tl",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-tl-${o}`)],regExp:"rounded-tl-?(\\d+|\\S+)?"},borderRadiusTopRight:{classes:["rounded-tr",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-tr-${o}`)],regExp:"rounded-tr-?(\\d+|\\S+)?"},borderRadiusBottomRight:{classes:["rounded-br",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-br-${o}`)],regExp:"rounded-br-?(\\d+|\\S+)?"},borderRadiusBottomLeft:{classes:["rounded-bl",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-bl-${o}`)],regExp:"rounded-bl-?(\\d+|\\S+)?"},borderRadiusTop:{classes:["rounded-t",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-t-${o}`)],regExp:"rounded-t-?(\\d+|\\S+)?"},borderRadiusRight:{classes:["rounded-r",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-r-${o}`)],regExp:"rounded-r-?(\\d+|\\S+)?"},borderRadiusBottom:{classes:["rounded-b",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-b-${o}`)],regExp:"rounded-b-?(\\d+|\\S+)?"},borderRadiusLeft:{classes:["rounded-l",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-l-${o}`)],regExp:`(rounded-l-(${CLASS_VALUES.borderRadius.join("|")})|rounded-l$)`},borderRadius:{classes:["rounded",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-${o}`)],regExp:`(rounded-(${CLASS_VALUES.borderRadius.join("|")}$)|rounded)`},borderX:{classes:["border-x",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-x-${o}`)],regExp:"border-x-?(\\d+|\\S+|\\[.*\\])?"},borderY:{classes:["border-y",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-y-${o}`)],regExp:"border-y-?(\\d+|\\S+|\\[.*\\])?"},borderTop:{classes:["border-t",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-t-${o}`)],regExp:"border-t-?(\\d+|\\S+|\\[.*\\])?"},borderRight:{classes:["border-r",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-r-${o}`)],regExp:"border-r-?(\\d+|\\S+|\\[.*\\])?"},borderBottom:{classes:["border-b",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-b-${o}`)],regExp:"border-b-?(\\d+|\\S+|\\[.*\\])?"},borderLeft:{classes:["border-l",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-l-${o}`)],regExp:"border-l-?(\\d+|\\S+|\\[.*\\])?"},borderColor:{classes:[],regExp:"^border-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\w+-\\d+|\\[#[0-9a-fA-F]+\\])$"},border:{classes:["border",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-${o}`)],regExp:"^border(-\\d+|\\[\\d+px\\])?$"},order:{classes:lodashEs.map([...lodashEs.range(0,13),"first","last","none"],o=>`order-${o}`),regExp:"-?order-(\\d+|first|last|none)"},divideXWidth:{classes:lodashEs.map(["0",2,4,8],o=>`divide-x-${o}`),regExp:"divide-x-(\\d+|\\[.*\\])"},divideYWidth:{classes:lodashEs.map(["0",2,4,8],o=>`divide-y-${o}`),regExp:"divide-y-(\\d+|\\[.*\\])"},divideColor:{classes:[],regExp:"divide-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},divideStyle:{classes:lodashEs.map(["solid","dashed","dotted","double","none"],o=>`divide-${o}`),regExp:"divide-(solid|dashed|dotted|double|none)"},outlineWidth:{classes:lodashEs.map([0,1,2,4,8],o=>`outline-${o}`),regExp:"outline-(\\d+)"},outlineOffset:{classes:lodashEs.map([0,1,2,4,8],o=>`outline-offset-${o}`),regExp:"outline-offset-(\\d+)"},outlineColor:{classes:[],regExp:"outline-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},ringWidth:{classes:lodashEs.map([0,1,2,4,8,"inset"],o=>`ring-${o}`),regExp:"ring-(\\d+|inset)"},ringOffsetWidth:{classes:lodashEs.map([0,1,2,4,8],o=>`ring-offset-${o}`),regExp:"ring-offset-(\\d+)"},ringOffsetColor:{classes:[],regExp:"ring-offset-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},ringColor:{classes:[],regExp:"ring-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},boxShadowColor:{classes:[],regExp:"shadow-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},opacity:{classes:lodashEs.map([0,5,10,20,25,30,40,50,60,70,75,80,90,95,100],o=>`opacity-${o}`),regExp:"opacity-(\\d+|\\[.*\\])"},mixBlendMode:{classes:lodashEs.map(CLASS_VALUES.blendEffect,o=>`mix-blend-${o}`),regExp:"mix-blend-(\\d+|\\S+)"},bgBlendMode:{classes:lodashEs.map(CLASS_VALUES.blendEffect,o=>`bg-blend-${o}`),regExp:"bg-blend-(\\d+|\\S+)"},blur:{classes:lodashEs.map(["none","sm","md","lg","xl","2xl","3xl"],o=>`blur-${o}`),regExp:"blur-(none|sm|md|lg|xl|2xl|3xl)"},brightness:{classes:lodashEs.map([0,50,75,90,95,100,105,110,125,150,200],o=>`brightness-${o}`),regExp:"brightness-(\\d+)"},contrast:{classes:lodashEs.map([0,50,75,100,125,150,200],o=>`contrast-${o}`),regExp:"contrast-(\\d+)"},grayScale:{classes:["grayscale-0","grayscale"],regExp:"grayscale(-0)?"},hueRotate:{classes:lodashEs.map([0,15,30,60,90,180],o=>`hue-rotate-${o}`),regExp:"-?hue-rotate-(\\d+)"},invert:{classes:["invert-0","invert"],regExp:"invert(-0)?"},saturate:{classes:lodashEs.map([0,50,100,150,200],o=>`saturate-${o}`),regExp:"saturate-(\\d+)"},sepia:{classes:["sepia-0","sepia"],regExp:"sepia(-0)?"},transition:{classes:["transition-none","transition-all","transition-colors","transition-opacity","transition-shadow","transition-transform"],regExp:"transition-(none|all|colors|opacity|shadow|transform)"},duration:{classes:lodashEs.map([75,100,150,200,300,500,700,1e3],o=>`duration-${o}`),regExp:"duration-(\\d+|\\[.*\\])"},transitionEase:{classes:["ease-linear","ease-in","ease-out","ease-in-out"],regExp:"eas(e-linear|e-in|e-out|e-in-out)"},transitionDelay:{classes:lodashEs.map([75,100,150,200,300,500,700,1e3],o=>`delay-${o}`),regExp:"delay-(\\d+|\\[.*\\])"},animation:{classes:["animation-none","animation-spin","animation-ping"],regExp:"animation-(none|spin|ping)"},scaleX:{classes:lodashEs.map(CLASS_VALUES.scale,o=>`scale-x-${o}`),regExp:"-?scale-x-(\\d+|\\S+|\\[.*\\])"},scaleY:{classes:lodashEs.map(CLASS_VALUES.scale,o=>`scale-y-${o}`),regExp:"-?scale-y-(\\d+|\\S+|\\[.*\\])"},scale:{classes:lodashEs.map(CLASS_VALUES.scale,o=>`scale-${o}`),regExp:"-?scale-(\\d+|\\S+|\\[.*\\])"},rotate:{classes:lodashEs.map([0,1,2,3,6,12,45,90,180],o=>`rotate-${o}`),regExp:"-?rotate-(\\d+|\\S+|\\[.*\\])"},translateX:{classes:lodashEs.map([0,"px","0.5",1],o=>`translate-x-${o}`),regExp:"-?translate-x-(\\d+|\\S+|\\[.*\\])"},translateY:{classes:lodashEs.map([0,"px","0.5",1],o=>`translate-y-${o}`),regExp:"-?translate-y-(\\d+|\\S+|\\[.*\\])"},skewX:{classes:lodashEs.map([0,1,2,3,6,12],o=>`skew-x-${o}`),regExp:"-?skew-x-(\\d+|\\S+|\\[.*\\])"},skewY:{classes:lodashEs.map([0,1,2,3,6,12],o=>`skew-y-${o}`),regExp:"-?skew-y-(\\d+|\\S+|\\[.*\\])"},accentColor:{classes:[],regExp:"accent-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},appearance:{classes:["appearance-none"],regExp:"appearance-none"},cursor:{classes:["cursor-auto","cursor-default","cursor-pointer","cursor-wait","cursor-text","cursor-move","cursor-help","cursor-not-allowed"],regExp:"cursor-(auto|default|pointer|wait|text|move|help|not-allowed)"},caretColor:{classes:[],regExp:"caret-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},pointerEvents:{classes:["pointer-events-none","pointer-events-auto"],regExp:"pointer-events-(none|auto)"},userSelect:{classes:["select-none","select-text","select-all","select-auto"],regExp:"select-(none|text|all|auto)"},fill:{classes:[],regExp:"caret-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},stroke:{classes:[],regExp:"caret-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},strokeWidth:{classes:["stroke-0","stroke-1","stroke-2"],regExp:"stroke-(\\d+|\\[.*\\])"}},colorOptions={backgroundColor:"bg",textColor:"text",borderColor:"border",boxShadowColor:"shadow",outlineColor:"outline",divideColor:"divide",fromColor:"from",viaColor:"via",toColor:"to",ringColor:"ring",ringOffsetColor:"ring-offset"},soloColors=["current","inherit","transparent","black","white"],shadedColors=["slate","gray","zinc","neutral","stone","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],shades=["50","100","200","300","400","500","600","700","800","900"],colorKeys=lodashEs.map(lodashEs.values(colorOptions),o=>o),ALL_COLORS=lodashEs.flattenDeep([...lodashEs.map(soloColors,o=>lodashEs.flatten(lodashEs.map(colorKeys,n=>`${n}-${o}`))),...lodashEs.map(shadedColors,o=>lodashEs.flattenDeep(lodashEs.map(colorKeys,n=>lodashEs.flattenDeep(lodashEs.map(shades,a=>`${n}-${o}-${a}`)))))]),ALL_TW_CLASSES=lodashEs.map(lodashEs.flattenDeep(lodashEs.values(CLASSES_LIST).map(o=>o.classes).concat(ALL_COLORS)),o=>({name:o})),useFuseSearch=()=>{const o=useThemeOptions(),n=React.useMemo(()=>{let a=[];if(o.colors){const l=lodashEs.flattenDeep(lodashEs.map(o.colors,({items:r})=>lodashEs.keys(r)));a=lodashEs.flattenDeep(lodashEs.map(l,r=>lodashEs.flatten(lodashEs.map(colorKeys,i=>`${i}-${r}`))))}return o.fontFamily&&(a=[...a,...lodashEs.map(lodashEs.keys(o.fontFamily),l=>`${l}`)]),lodashEs.map(a,l=>({name:l}))},[o]);return React.useMemo(()=>new Fuse([...ALL_TW_CLASSES,...n],{isCaseSensitive:!1,threshold:.2,minMatchCharLength:2,keys:["name"]}),[n])},useTailwindClassList=()=>{const o=useThemeOptions(),n=React.useMemo(()=>{if(o.colors){const r=lodashEs.flattenDeep(lodashEs.map(o.colors,({items:i})=>lodashEs.keys(i)));lodashEs.each(CLASSES_LIST,(i,c)=>{lodashEs.set(CLASSES_LIST,`${c}.regExp`,i.regExp.replace("__THEME_COLORS_REGEXP__",r.join("|")))})}return CLASSES_LIST},[o]),a=React.useCallback((r,i)=>{const c=lodashEs.get(n,`${r}.regExp`,"");return i.match(new RegExp(c))},[n]),l=React.useCallback((r,i=[])=>lodashEs.get(n,`${r}.classes`,i),[n]);return{match:a,getClasses:l}};function getMqForCls(o){if(lodashEs.isEmpty(o.trim()))return"";const n=o.match(/sm:|md:|lg:|xl:|2xl:/g);return lodashEs.get(n,0,"xs").replace(":","")}function getModForCls(o){const n=lodashEs.map(MODIFIERS,l=>`${l}:`).join("|"),a=new RegExp(n,"g");return lodashEs.get(a.exec(o.trim()),0,"").replace(":","")}function getPureClsName(o){return o.trim().split(":").pop()||""}const memoizedProps={};function getPropertyForClass(o){if(lodashEs.isEmpty(o))return"";if(memoizedProps[o])return memoizedProps[o];let n="";for(const a in CLASSES_LIST){const l=lodashEs.get(CLASSES_LIST,`${a}.regExp`,"");if(new RegExp(l,"g").test(o)){n=a,memoizedProps[o]=n;break}}return n}function constructClassObject(o){return lodashEs.isEmpty(o)?null:{dark:lodashEs.startsWith(o,"dark:"),mq:getMqForCls(o),mod:getModForCls(o),cls:getPureClsName(o),fullCls:o,property:getPropertyForClass(o)}}function generateFullClsName(o){let n="";return o.dark&&(n+="dark:"),o.mq.toLowerCase()!=="xs"&&(n+=`${o.mq}:`),o.mod&&(n+=`${o.mod}:`),n+=o.cls,n}function orderClassesByBreakpoint(o){o=o.replace(/\s+/g," ");const n=o.split(" ").map(constructClassObject),a=["xs","sm","md","lg","xl","2xl"];return n.sort((l,r)=>a.indexOf(l.mq)-a.indexOf(r.mq)).map(l=>l.fullCls).join(" ")}function removeDuplicateClasses(o){if(o=o.replace(/\s+/g," "),!o)return"";const n=["xs","sm","md","lg","xl","2xl"],a=o.split(" ").map(constructClassObject);let l=o;if(a.length===1)return a[0].fullCls;for(const r of a){const i=r.property,c=n.indexOf(r.mq);for(let d=c+1;d<n.length;d++){const p=n[d],u=a.find(m=>m.property===i&&m.mq===p);if(u&&u.cls===r.cls)l=l.replace(u.fullCls,"");else if(u&&u.cls!==r.cls)break}}return l.replace(/\s+/g," ").trim()}const selectedStylingBlocksAtom=jotai.atom([]);selectedStylingBlocksAtom.debugLabel="selectedStylingBlocksAtom";const useSelectedStylingBlocks=()=>jotai.useAtom(selectedStylingBlocksAtom),addClassesToBlocksAtom=jotai.atom(null,(o,n,{blockIds:a,newClasses:l})=>{const r=lodashEs.filter(o(pageBlocksAtomsAtom),c=>a.includes(o(c)._id)),i=lodashEs.first(o(selectedStylingBlocksAtom));return lodashEs.map(r,c=>{const d=o(c),p=lodashEs.get(d,i.prop,`${getSplitClasses.STYLES_KEY},`),{classes:u}=getSplitClasses.getSplitChaiClasses(p);return{ids:[d._id],props:{[i.prop]:`${getSplitClasses.STYLES_KEY},${orderClassesByBreakpoint(removeDuplicateClasses(tailwindMerge.twMerge(u,l)))}`}}})}),useAddClassesToBlocks=()=>{const o=jotai.useSetAtom(addClassesToBlocksAtom),{updateBlocks:n,updateBlocksRuntime:a}=useBlocksStoreUndoableActions();return React.useCallback((l,r,i=!1)=>{const c=o({blockIds:l,newClasses:r});if(!i){a(l,c[0].props);return}n(l,c[0].props)},[o,n,a])},LANGUAGES={ab:"Abkhazian",aa:"Afar",af:"Afrikaans",ak:"Akan",sq:"Albanian",am:"Amharic",ar:"Arabic",an:"Aragonese",hy:"Armenian",as:"Assamese",av:"Avaric",ae:"Avestan",ay:"Aymara",az:"Azerbaijani",bm:"Bambara",ba:"Bashkir",eu:"Basque",be:"Belarusian",bn:"Bengali",bh:"Bihari",bi:"Bislama",bs:"Bosnian",br:"Breton",bg:"Bulgarian",my:"Burmese",ca:"Catalan",ch:"Chamorro",ce:"Chechen",ny:"Chichewa",zh:"Chinese","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cv:"Chuvash",kw:"Cornish",co:"Corsican",cr:"Cree",hr:"Croatian",cs:"Czech",da:"Danish",dv:"Maldivian",nl:"Dutch",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",fi:"Finnish",fr:"French",ff:"Fula, Pular",gl:"Galician",gd:"Gaelic (Scottish)",gv:"Manx",ka:"Georgian",de:"German",el:"Greek",kl:"Kalaallisut",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",he:"Hebrew",hz:"Herero",hi:"Hindi",ho:"Hiri Motu",hu:"Hungarian",is:"Icelandic",io:"Ido",ig:"Igbo",id:"Indonesian",ia:"Interlingua",ie:"Interlingue",iu:"Inuktitut",ik:"Inupiak",ga:"Irish",it:"Italian",ja:"Japanese",jv:"Javanese",kn:"Kannada",kr:"Kanuri",ks:"Kashmiri",kk:"Kazakh",km:"Khmer",ki:"Kikuyu",rw:"Kinyarwanda",rn:"Kirundi",ky:"Kyrgyz",kv:"Komi",kg:"Kongo",ko:"Korean",ku:"Kurdish",kj:"Kwanyama",lo:"Lao",la:"Latin",lv:"Latvian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lu:"Luga-Katanga",lg:"Luganda, Ganda",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mh:"Marshallese",mo:"Moldavian",mn:"Mongolian",na:"Nauru",nv:"Navajo",ng:"Ndonga",nd:"Northern Ndebele",ne:"Nepali",no:"Norwegian",nb:"Norwegian bokmål",nn:"Norwegian nynorsk",ii:"Sichuan Yi",oc:"Occitan",oj:"Ojibwe",cu:"Old Church Slavonic",or:"Oriya",om:"Oromo",os:"Ossetian",pi:"Pāli",ps:"Pashto, Pushto",fa:"Persian (Farsi)",pl:"Polish",pt:"Portuguese",pa:"Punjabi (Eastern)",qu:"Quechua",rm:"Romansh",ro:"Romanian",ru:"Russian",se:"Sami",sm:"Samoan",sg:"Sango",sa:"Sanskrit",sr:"Serbian",sh:"Serbo-Croatian",st:"Sesotho",tn:"Setswana",sn:"Shona",sd:"Sindhi",si:"Sinhalese",ss:"Swati",sk:"Slovak",sl:"Slovenian",so:"Somali",nr:"Southern Ndebele",es:"Spanish",su:"Sundanese",sw:"Swahili (Kiswahili)",sv:"Swedish",tl:"Tagalog",ty:"Tahitian",tg:"Tajik",ta:"Tamil",tt:"Tatar",te:"Telugu",th:"Thai",bo:"Tibetan",ti:"Tigrinya",to:"Tonga",ts:"Tsonga",tr:"Turkish",tk:"Turkmen",tw:"Twi",ug:"Uyghur",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",ve:"Venda",vi:"Vietnamese",vo:"Volapük",wa:"Wallon",cy:"Welsh",wo:"Wolof",fy:"Western Frisian",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",za:"Zhuang, Chuang",zu:"Zulu"},languageAtom=jotai.atom("");languageAtom.debugLabel="selectedLanguageAtom";const useLanguages=()=>{const o=useBuilderProp("languages",[]),n=useBuilderProp("fallbackLang","en"),[a,l]=jotai.useAtom(languageAtom),r=i=>{l(n===i?"":i)};return{languages:o==null?void 0:o.filter(i=>i!==n),fallbackLang:n,selectedLang:a,setSelectedLang:r}},updatePropsForLanguage=(o,n,a)=>{const l=runtime.getRegisteredChaiBlock(lodashEs.get(a,"_type"));if(!l)return o;const r={...o};return lodashEs.forEach(lodashEs.keys(o),i=>{if(lodashEs.includes(lodashEs.get(l,"i18nProps",[]),i)&&!lodashEs.isEmpty(n)){const c=`${i}-${n}`;lodashEs.set(r,c,o[i]),lodashEs.unset(r,i)}}),r},useUpdateBlocksProps=()=>{const{updateBlocks:o}=useBlocksStoreUndoableActions(),{selectedLang:n}=useLanguages(),a=useSelectedBlock();return React.useCallback((l,r,i)=>{const c=updatePropsForLanguage(r,n,a);o(l,c,i)},[n,a,o])},useUpdateMultipleBlocksProps=()=>{const{updateMultipleBlocksProps:o}=useBlocksStoreUndoableActions();return React.useCallback(n=>{o(n)},[o])},useFakeStreamEffect=()=>{const{updateBlocksRuntime:o}=useBlocksStoreUndoableActions();return React.useCallback(async(n,a,l=30)=>{const r=lodashEs.keys(lodashEs.omit(a,["_id"]));for(const i of r){const c=a[i];if(lodashEs.isString(c)){const d=lodashEs.chunk(c.split(""),12);let p="";o([n],{[i]:""});for(let u=0;u<d.length;u++)p+=d[u].join(""),o([n],{[i]:p}),await new Promise(m=>setTimeout(m,l))}}},[o])},useStreamMultipleBlocksProps=()=>{const{updateMultipleBlocksProps:o}=useBlocksStoreUndoableActions(),n=useFakeStreamEffect();return React.useCallback(async a=>{for(const l of a)await n(l._id,l);o(a)},[n,o])},useUpdateBlocksPropsRealtime=()=>{const{updateBlocksRuntime:o}=useBlocksStoreUndoableActions(),{selectedLang:n}=useLanguages(),a=useSelectedBlock();return React.useCallback((l,r)=>{const i=updatePropsForLanguage(r,n,a);o(l,i)},[n,a,o])};function getChildBlocks(o,n,a){a.push(lodashEs.find(o,{_id:n}));const l=lodashEs.filter(o,{_parent:n});for(const r of l)a.push(...getBlockWithChildren(r._id,o));return a}const getBlockWithChildren=(o,n)=>{let a=[];return a=lodashEs.flattenDeep([...a,...getChildBlocks(n,o,a)]),a},pickOnlyAIProps=(o,n)=>lodashEs.compact(o.map(a=>{const l=["_id","_type","_parent"],r=lodashEs.pick(a,l),i=runtime.getRegisteredChaiBlock(a._type),c={},d=lodashEs.get(i,"aiProps",[]);for(const p in a)l.includes(p)||d.includes(p)&&(c[p]=lodashEs.get(a,`${p}-${n}`,a[p]));return lodashEs.isEmpty(c)?!1:(lodashEs.has(r,"_parent")&&lodashEs.isEmpty(r._parent)&&delete r._parent,{...r,...c})})),addLangToPrompt=(o,n,a)=>!n||a!=="content"?o:`${o}. Generate content in ${lodashEs.get(LANGUAGES,n,n)} language.`,askAiProcessingAtom=jotai.atom(!1),useAskAi=()=>{const[o,n]=jotai.useAtom(askAiProcessingAtom),[a,l]=React.useState(null),r=useBuilderProp("askAiCallBack",null),i=useStreamMultipleBlocksProps(),c=useUpdateMultipleBlocksProps(),[d]=useBlocksStore(),{selectedLang:p,fallbackLang:u}=useLanguages(),m=p.length?p:u,g=(h,x)=>{const f=lodashEs.cloneDeep(x.find(b=>b._id===h));for(const b in f){const j=f[b];if(typeof j=="string"&&lodashEs.startsWith(j,getSplitClasses.STYLES_KEY)){const{baseClasses:S,classes:w}=getSplitClasses.getSplitChaiClasses(j);f[b]=lodashEs.compact(lodashEs.flattenDeep([S,w])).join(" ")}else b!=="_id"&&delete f[b]}return f};return{askAi:React.useCallback(async(h,x,f,b)=>{if(r){n(!0),l(null);try{const j=p===u?"":p,S=h==="content"?pickOnlyAIProps(lodashEs.cloneDeep(getBlockWithChildren(x,d)),p):[g(x,d)],w=await r(h,addLangToPrompt(f,m,h),S,j),{blocks:v,error:k}=w;if(k){l(k);return}if(h==="styles"){const C=v.map(B=>{for(const E in B)E!=="_id"&&(B[E]=`${getSplitClasses.STYLES_KEY},${B[E]}`);return B});c(C)}else i(v);b&&b(w)}catch(j){l(j)}finally{n(!1),b&&b()}}},[r,n,p,u,d,m,c,i]),loading:o,error:a}},useAiAssistant=()=>{const[,o]=useRightPanel();return React.useCallback(n=>{o(n?"ai":"block")},[o])};let lastHighlighted=null;const useBlockHighlight=()=>{const[o]=jotai.useAtom(canvasIframeAtom),n=React.useMemo(()=>{var r;return(o==null?void 0:o.contentDocument)||((r=o==null?void 0:o.contentWindow)==null?void 0:r.document)},[o]);return{highlightBlock:React.useCallback(r=>{if(n)if(lastHighlighted&&lastHighlighted.removeAttribute("data-highlighted"),typeof r!="string")r.setAttribute("data-highlighted","true"),lastHighlighted=r;else if(typeof r=="string"){const i=n.querySelector(`[data-block-id="${r}"]`);i&&(i.setAttribute("data-highlighted","true"),lastHighlighted=i)}else lastHighlighted=null},[n]),clearHighlight:()=>{lastHighlighted&&(lastHighlighted.removeAttribute("data-highlighted"),lastHighlighted=null)},lastHighlighted}},partialBlocksStoreAtom=atom({}),partialBlocksLoadingStateAtom=atom({}),usePartailBlocksStore=()=>{const[o,n]=useAtom(partialBlocksStoreAtom),a=React.useCallback(r=>lodashEs.get(o,r,[]),[o]),l=React.useCallback(()=>n({}),[n]);return{getPartailBlocks:a,reset:l}},useWatchPartailBlocks=()=>{const[o]=useBlocksStore(),[n,a]=useAtom(partialBlocksStoreAtom),[l,r]=useAtom(partialBlocksLoadingStateAtom),i=useBuilderProp("getPartialBlockBlocks",async d=>[]),c=React.useMemo(()=>o.filter(d=>d._type==="PartialBlock").map(d=>d.partialBlockId),[o]);React.useEffect(()=>{lodashEs.forEach(c,d=>{lodashEs.has(n,d)||lodashEs.get(l,`${d}.loading`,!1)||(r(p=>({...p,[d]:{loading:!0,error:null}})),i(d).then(p=>{a(u=>({...u,[d]:p})),r(u=>({...u,[d]:{loading:!1,error:null}}))}).catch(p=>{r(u=>({...u,[d]:{loading:!1,error:p.message}}))}))})},[i,n,l,a,r,c])},partialBlocksListAtom=atom({}),usePartialBlocksList=()=>{const[o,n]=React.useState(!1),[a,l]=React.useState(null),[r,i]=useAtom(partialBlocksListAtom),c=useBuilderProp("getPartialBlocks",async()=>[]),d=React.useCallback(async()=>{n(!0),l(null);try{const p=await c();i(p),n(!1)}catch(p){l(p instanceof Error?p.message:"Failed to fetch partial blocks"),n(!1)}},[c,i]);return React.useEffect(()=>{d()},[]),{data:r,isLoading:o,refetch:d,error:a}},useBuilderReset=()=>{const o=jotai.useSetAtom(historyStatesAtom),{clear:n}=useUndoManager(),[,a]=useSelectedBlockIds(),{clearHighlight:l}=useBlockHighlight(),[,r]=useSelectedStylingBlocks(),[,i]=useAtom(aiAssistantActiveAtom),{reset:c}=usePartailBlocksStore();return()=>{a([]),r([]),l(),n(),i(!1),o({undoCount:0,redoCount:0}),c()}},canvasZoomAtom=atomWithStorage("canvasZoom",100),useCanvasZoom=()=>jotai.useAtom(canvasZoomAtom),codeEditorAtom=jotai.atom(null),useCodeEditor=()=>jotai.useAtom(codeEditorAtom),cutBlockIdsAtom=jotai.atom([]),useCutBlockIds=()=>{const[o,n]=jotai.useAtom(cutBlockIdsAtom),a=jotai.useSetAtom(copiedBlockIdsAtom),l=React.useCallback(r=>{n(r),a([])},[n,a]);return[o,l]},copiedBlockIdsAtom=jotai.atom([]),useCopyBlockIds=()=>{const[o]=useBlocksStore(),[n,a]=jotai.useAtom(copiedBlockIdsAtom),l=jotai.useSetAtom(cutBlockIdsAtom),r=React.useCallback(async i=>{try{a(i),l([]);const c={_chai_copied_blocks:i.flatMap(d=>getDuplicatedBlocks(o,d,null))};await navigator.clipboard.writeText(JSON.stringify(c))}catch(c){console.error("Failed to copy blocks to clipboard:",c)}},[a,l,o]);return[n,r]},useCopyToClipboard=()=>{const[o,n]=React.useState(null),a=React.useCallback(async l=>{if(!(navigator!=null&&navigator.clipboard))return console.warn("Clipboard not supported"),!1;try{return await navigator.clipboard.writeText(l),n(l),!0}catch(r){return console.warn("Copy failed",r),n(null),!1}},[]);return[o,a]},darkModeAtom=atomWithStorage("darkMode",!1),useDarkMode=()=>{const[o,n]=jotai.useAtom(darkModeAtom);return[o,n]},useDuplicateBlocks=()=>{const[o]=useBlocksStore(),[,n]=useSelectedBlockIds(),{addBlocks:a}=useBlocksStoreUndoableActions();return React.useCallback((l,r=null)=>{const i=[];lodashEs.each(l,c=>{const d=o.find(h=>h._id===c);r?r==="root"&&(r=null):r=d._parent;const m=lodashEs.filter(o,h=>lodashEs.isString(r)?h._parent===r:!h._parent).indexOf(d)+1,g=getDuplicatedBlocks(o,c,r);a(g,r,m),i.push(lodashEs.get(g,"0._id",""))}),n(i)},[o,n])},hiddenBlockIdsAtom=jotai.atom([]),useHiddenBlockIds=()=>{const[o,n]=jotai.useAtom(hiddenBlockIdsAtom),a=React.useCallback(l=>{n(r=>lodashEs.includes(r,l)?lodashEs.without(r,l):[...r,l])},[n]);return[o,n,a]},highlightBlockIdAtom=jotai.atom(""),useHighlightBlockId=()=>jotai.useAtom(highlightBlockIdAtom),useCanPaste=()=>{const[o]=useBlocksStore();return(n,a)=>{var i;const l=((i=lodashEs.find(o,{_id:a}))==null?void 0:i._type)||null,r=lodashEs.first(n.map(c=>{var d;return(d=lodashEs.find(o,{_id:c}))==null?void 0:d._type}));return canAcceptChildBlock(l,r)}},useMoveCutBlocks=()=>{const o=jotai.useAtomValue(presentBlocksAtom),{moveBlocks:n}=useBlocksStoreUndoableActions();return React.useCallback((a,l)=>{const r=Array.isArray(l)?l[0]:l;if(l==="root"){const i=o==null?void 0:o.filter(c=>!c._parent);n(a,null,(i==null?void 0:i.length)||0)}else{const i=o==null?void 0:o.filter(c=>c._parent===r);n(a,r,(i==null?void 0:i.length)||0)}},[n,o])},usePasteBlocks=()=>{const[o,n]=useCutBlockIds(),a=useMoveCutBlocks(),l=useCanPaste(),{addPredefinedBlock:r}=useAddBlock();return{canPaste:React.useCallback(async c=>{if(o.length>0)return l(o,c);try{const d=await navigator.clipboard.readText();if(d){const p=JSON.parse(d);return lodashEs.has(p,"_chai_copied_blocks")}}catch{return!1}return!1},[l,o]),pasteBlocks:React.useCallback(async c=>{const d=Array.isArray(c)?c[0]:c;if(!lodashEs.isEmpty(o)){a(o,c),n([]),await navigator.clipboard.writeText("");return}try{const p=await navigator.clipboard.readText();if(p){const u=JSON.parse(p);lodashEs.has(u,"_chai_copied_blocks")?r(u._chai_copied_blocks,d==="root"?null:d):sonner.toast.error("Nothing to paste")}else sonner.toast.error("Nothing to paste")}catch{sonner.toast.error("Failed to paste blocks from clipboard")}},[o,r,a,n])}},previewModeAtom=jotai.atom(!1),usePreviewMode=()=>{const[o,n]=jotai.useAtom(previewModeAtom);return[o,n]},removeClassFromBlocksAtom=jotai.atom(null,(o,n,{blockIds:a,fullClasses:l})=>{const r=lodashEs.first(o(selectedStylingBlocksAtom)),i=lodashEs.filter(o(pageBlocksAtomsAtom),c=>a.includes(o(c)._id));return lodashEs.map(i,c=>{const d=o(c),p=l;let{classes:u,baseClasses:m}=getSplitClasses.getSplitChaiClasses(lodashEs.get(d,r.prop,`${getSplitClasses.STYLES_KEY},`));return lodashEs.each(p,g=>{const h=g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),x=new RegExp(`(^|\\s)${h}(?=\\s|$)`,"g");u=u.replace(x," ").replace(/\s+/g," ").trim();const f=lodashEs.first(g.split(":"));lodashEs.includes(["2xl","xl","lg","md","sm"],f)&&p.push(g.split(":").pop().trim())}),lodashEs.each(p,g=>{const h=g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),x=new RegExp(`(^|\\s)${h}(?=\\s|$)`,"g");m=m.replace(x," ").replace(/\s+/g," ").trim()}),{ids:[d._id],props:{[r.prop]:`${getSplitClasses.STYLES_KEY}${m},${u}`}}})}),useRemoveClassesFromBlocks=()=>{const{updateBlocks:o,updateBlocksRuntime:n}=useBlocksStoreUndoableActions(),a=jotai.useSetAtom(removeClassFromBlocksAtom);return React.useCallback((l,r,i=!1)=>{const c=a({blockIds:l,fullClasses:r});i?o(l,c[0].props):n(l,c[0].props)},[a])},useStylingBreakpoint=()=>jotai.useAtom(styleBreakpointAtom),canvasWidthAtom=atomWithStorage("canvasWidth",800),canvasDisplayWidthAtom=atomWithStorage("canvasDisplayWidth",800),canvasBreakpointAtom=jotai.atom(o=>{const n=o(canvasWidthAtom);return iconBase.getBreakpointValue(n).toLowerCase()}),useScreenSizeWidth=()=>{const[o,n]=jotai.useAtom(canvasWidthAtom),a=jotai.useAtomValue(canvasBreakpointAtom),[l,r]=useStylingBreakpoint();return React.useEffect(()=>{l!=="xs"&&r(a)},[a,l,r]),[o,a,n]},useCanvasDisplayWidth=()=>{const[o,n]=jotai.useAtom(canvasDisplayWidthAtom);return[o,n]},selectedBlockAllClassesAtom=jotai.atom(o=>{const n=lodashEs.first(o(selectedStylingBlocksAtom)),a=o(selectedBlockAtom);if(!n||n.blockId!==lodashEs.get(a,"_id",null))return[];const l=lodashEs.get(a,n.prop,`${getSplitClasses.STYLES_KEY},`),{classes:r}=getSplitClasses.getSplitChaiClasses(l);return lodashEs.filter(lodashEs.map(r.trim().split(" "),constructClassObject),i=>!lodashEs.isNull(i))}),useSelectedBlockAllClasses=()=>jotai.useAtomValue(selectedBlockAllClassesAtom),MQ={xs:0,sm:1,md:2,lg:3,xl:4,"2xl":5},selectedBlockCurrentClassesAtom=jotai.atom(o=>{const n=o(canvasBreakpointAtom),a=o(styleStateAtom),l=o(darkModeAtom),r=getQueries(n);let i=lodashEs.filter(o(selectedBlockAllClassesAtom),{mod:a});return lodashEs.startsWith(a,"_")||(i=lodashEs.filter(i,c=>r.includes(c.mq))),i=i.sort((c,d)=>MQ[c.mq]-MQ[d.mq]),l||(i=lodashEs.filter(i,{dark:!1})),i}),getQueries=o=>{let n=[];switch(o){case"xs":n=["xs"];break;case"sm":n=["xs","sm"];break;case"md":n=["xs","sm","md"];break;case"lg":n=["xs","sm","md","lg"];break;case"xl":n=["xs","sm","md","lg","xl"];break;case"2xl":n=["xs","sm","md","lg","xl","2xl"];break;default:n=["xs"];break}return n},useSelectedBlockCurrentClasses=()=>jotai.useAtomValue(selectedBlockCurrentClassesAtom),selectedBreakpointsAtom=atomWithStorage("selectedBreakpoints",["XS","MD","XL"]),useSelectedBreakpoints=()=>{const[o,n]=jotai.useAtom(selectedBreakpointsAtom);return[o,n]},useStylingState=()=>jotai.useAtom(styleStateAtom),useUILibraryBlocks=()=>({data:useBuilderProp("uiLibraries",[]),isLoading:!1}),wrapperBlockAtom=jotai.atom(o=>{var c;const n=o(presentBlocksAtom),a=o(selectedBlockIdsAtom),l=a.length===1?a[0]:null;if(!l)return null;const r=lodashEs.find(n,{_id:l});if(!r)return null;let i=r._parent;for(;i;){const d=lodashEs.find(n,{_id:i});if(!d)return null;if((c=runtime.getRegisteredChaiBlock(d._type))!=null&&c.wrapper)return d;i=d._parent}return null});wrapperBlockAtom.debugLabel="wrapperBlockAtom";const useWrapperBlock=()=>jotai.useAtomValue(wrapperBlockAtom),layoutVariantAtom=atomWithStorage("_layout_variant_mode","DUAL_SIDE_PANEL"),useLayoutVariant=()=>{const[o,n]=jotai.useAtom(layoutVariantAtom),a=useBuilderProp("layoutVariant","DUAL_SIDE_PANEL");return[o||a,n]},CHAI_BUILDER_EVENTS={OPEN_ADD_BLOCK:"OPEN_ADD_BLOCK",CLOSE_ADD_BLOCK:"CLOSE_ADD_BLOCK",SHOW_BLOCK_SETTINGS:"SHOW_BLOCK_SETTINGS"};class PubSub{constructor(){U(this,"subscribers",new Map)}subscribe(n,a){return this.subscribers.has(n)||this.subscribers.set(n,new Set),this.subscribers.get(n).add(a),()=>{const l=this.subscribers.get(n);l&&(l.delete(a),l.size===0&&this.subscribers.delete(n))}}publish(n,a){const l=this.subscribers.get(n);l&&l.forEach(r=>r(a))}}const pubsub=new PubSub,draggedBlockAtom=jotai.atom(null),dropTargetBlockIdAtom=jotai.atom(null),BlockActionLabel=({block:o,label:n})=>{const[,a]=useSelectedBlockIds(),[,l]=useHighlightBlockId(),[,r]=jotai.useAtom(draggedBlockAtom),i=flagged.useFeature("dnd");return jsxRuntime.jsxs("div",{className:"mr-10 flex cursor-default items-center space-x-1 px-1",draggable:i?"true":"false",onDragStart:c=>{c.dataTransfer.setData("text/plain",JSON.stringify(lodashEs.pick(o,["_id","_type","_name"]))),r(o),setTimeout(()=>{a([]),l(null)},200)},children:[jsxRuntime.jsx(reactIcons.DragHandleDots2Icon,{}),n]})},BlockFloatingSelector=({selectedBlockElement:o,block:n})=>{const a=useRemoveBlocks(),l=useDuplicateBlocks(),[,r]=useSelectedBlockIds(),[,i]=useHighlightBlockId(),[,c]=useSelectedStylingBlocks(),[d]=jotai.useAtom(inlineEditingActiveAtom),{floatingStyles:p,refs:u,update:m}=reactDom.useFloating({placement:"top-start",middleware:[reactDom.shift(),dom.flip()],elements:{reference:o}});web.useResizeObserver(o,()=>m(),o!==null);const g=lodashEs.get(n,"_parent",null),h=lodashEs.isEmpty(lodashEs.get(n,"_name",""))?lodashEs.get(n,"_type",""):lodashEs.get(n,"_name","");return!o||!n||d?null:jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsxs("div",{role:"button",tabIndex:0,ref:u.setFloating,style:p,onClick:x=>{x.stopPropagation(),x.preventDefault()},onMouseEnter:x=>{x.stopPropagation(),i(null)},onKeyDown:x=>x.stopPropagation(),className:"isolate z-[999] flex h-6 items-center bg-blue-500 py-2 text-xs text-white",children:[g&&jsxRuntime.jsx(reactIcons.ArrowUpIcon,{className:"hover:scale-105",onClick:()=>{c([]),r([g])}}),jsxRuntime.jsx(BlockActionLabel,{label:h,block:n}),jsxRuntime.jsxs("div",{className:"flex gap-2 px-1",children:[canAddChildBlock(lodashEs.get(n,"_type",""))&&jsxRuntime.jsx(reactIcons.PlusIcon,{className:"hover:scale-105",onClick:()=>pubsub.publish(CHAI_BUILDER_EVENTS.OPEN_ADD_BLOCK,n)}),canDuplicateBlock(lodashEs.get(n,"_type",""))?jsxRuntime.jsx(reactIcons.CopyIcon,{className:"hover:scale-105",onClick:()=>l([n==null?void 0:n._id])}):null,canDeleteBlock(lodashEs.get(n,"_type",""))?jsxRuntime.jsx(reactIcons.TrashIcon,{className:"hover:scale-105",onClick:()=>a([n==null?void 0:n._id])}):null]})]})})},IframeInitialContent=`<!doctype html>
1
+ "use strict";var G=Object.defineProperty;var K=(o,n,a)=>n in o?G(o,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):o[n]=a;var U=(o,n,a)=>K(o,typeof n!="symbol"?n+"":n,a);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const jsxRuntime=require("react/jsx-runtime"),React=require("react"),tooltip=require("./tooltip-DHlrjqh8.cjs"),jotai=require("jotai"),lodashEs=require("lodash-es"),reactWrapBalancer=require("react-wrap-balancer"),reactI18next=require("react-i18next"),iconBase=require("./iconBase-Cn2BsTrq.cjs"),dom=require("@floating-ui/dom"),reactDom=require("@floating-ui/react-dom"),reactIcons=require("@radix-ui/react-icons"),web=require("@react-hookz/web"),flagged=require("flagged"),runtime=require("@chaibuilder/runtime"),ChaiThemeFn=require("./ChaiThemeFn-DQu-2Eh9.cjs"),TreeModel=require("tree-model"),reactHotkeysHook=require("react-hotkeys-hook"),sonner=require("sonner"),lucideReact=require("lucide-react"),react=require("@tiptap/react"),StarterKit=require("@tiptap/starter-kit"),typography=require("@tailwindcss/typography"),forms=require("@tailwindcss/forms"),aspectRatio=require("@tailwindcss/aspect-ratio"),containerQueries=require("@tailwindcss/container-queries"),tailwindMerge=require("tailwind-merge"),getSplitClasses=require("./getSplitClasses-DodqA_KW.cjs"),ReactDOM=require("react-dom"),reactErrorBoundary=require("react-error-boundary"),reResizable=require("re-resizable"),RjForm=require("@rjsf/core"),validator=require("@rjsf/validator-ajv8"),Link=require("@tiptap/extension-link"),TextAlign=require("@tiptap/extension-text-align"),Underline=require("@tiptap/extension-underline"),clsx=require("clsx"),IconPicker=require("react-icons-picker"),Autosuggest=require("react-autosuggest"),Fuse=require("fuse.js"),himalaya=require("himalaya"),reactArborist=require("react-arborist"),i18n=require("i18next"),framerMotion=require("framer-motion");function _interopNamespaceDefault(o){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const a in o)if(a!=="default"){const l=Object.getOwnPropertyDescriptor(o,a);Object.defineProperty(n,a,l.get?l:{enumerable:!0,get:()=>o[a]})}}return n.default=o,Object.freeze(n)}const React__namespace=_interopNamespaceDefault(React),isSelfAtom=(o,n)=>o.unstable_is?o.unstable_is(n):n===o,hasInitialValue=o=>"init"in o,isActuallyWritableAtom=o=>!!o.write,isAtomStateInitialized=o=>"v"in o||"e"in o,returnAtomValue=o=>{if("e"in o)throw o.e;return o.v},PROMISE_STATE=Symbol(),getPromiseState=o=>o[PROMISE_STATE],isPendingPromise=o=>{var n;return isPromiseLike$2(o)&&!((n=getPromiseState(o))!=null&&n[1])},cancelPromise=(o,n)=>{const a=getPromiseState(o);a&&(a[1]=!0,a[0].forEach(l=>l(n)))},patchPromiseForCancelability=o=>{if(getPromiseState(o))return;const n=[new Set,!1];o[PROMISE_STATE]=n;const a=()=>{n[1]=!0};o.then(a,a),o.onCancel=l=>{n[0].add(l)}},isPromiseLike$2=o=>typeof(o==null?void 0:o.then)=="function",addPendingPromiseToDependency=(o,n,a)=>{a.p.has(o)||(a.p.add(o),n.then(()=>{a.p.delete(o)},()=>{a.p.delete(o)}))},setAtomStateValueOrPromise=(o,n,a)=>{const l=a(o),r="v"in l,i=l.v,c=isPendingPromise(l.v)?l.v:null;if(isPromiseLike$2(n)){patchPromiseForCancelability(n);for(const d of l.d.keys())addPendingPromiseToDependency(o,n,a(d))}l.v=n,delete l.e,(!r||!Object.is(i,l.v))&&(++l.n,c&&cancelPromise(c,n))},getMountedOrPendingDependents=(o,n,a)=>{var l;const r=new Set;for(const i of((l=a.get(o))==null?void 0:l.t)||[])a.has(i)&&r.add(i);for(const i of n.p)r.add(i);return r},BUILDING_BLOCKS=Symbol(),buildStore=(o=new WeakMap,n=new WeakMap,a=new WeakMap,l=new Set,r=new Set,i=new Set,c={},d=(h,...x)=>h.read(...x),p=(h,...x)=>h.write(...x),u=(h,x)=>{var f;return(f=h.unstable_onInit)==null?void 0:f.call(h,x)},m=(h,x)=>{var f;return(f=h.onMount)==null?void 0:f.call(h,x)},...g)=>{const h=g[0]||(E=>{let I=o.get(E);return I||(I={d:new Map,p:new Set,n:0},o.set(E,I),u==null||u(E,B)),I}),x=g[1]||(()=>{let E,I;const R=y=>{try{y()}catch(A){E||(E=!0,I=A)}};do{c.f&&R(c.f);const y=new Set,A=y.add.bind(y);l.forEach(N=>{var T;return(T=n.get(N))==null?void 0:T.l.forEach(A)}),l.clear(),i.forEach(A),i.clear(),r.forEach(A),r.clear(),y.forEach(R),l.size&&f()}while(l.size||i.size||r.size);if(E)throw I}),f=g[2]||(()=>{const E=[],I=new WeakSet,R=new WeakSet,y=Array.from(l);for(;y.length;){const A=y[y.length-1],N=h(A);if(R.has(A)){y.pop();continue}if(I.has(A)){a.get(A)===N.n&&E.push([A,N]),R.add(A),y.pop();continue}I.add(A);for(const T of getMountedOrPendingDependents(A,N,n))I.has(T)||y.push(T)}for(let A=E.length-1;A>=0;--A){const[N,T]=E[A];let P=!1;for(const _ of T.d.keys())if(_!==N&&l.has(_)){P=!0;break}P&&(b(N),w(N)),a.delete(N)}}),b=g[3]||(E=>{var I,R;const y=h(E);if(isAtomStateInitialized(y)&&(n.has(E)&&a.get(E)!==y.n||Array.from(y.d).every(([L,H])=>b(L).n===H)))return y;y.d.clear();let A=!0;const N=()=>{n.has(E)&&(w(E),f(),x())},T=L=>{var H;if(isSelfAtom(E,L)){const V=h(L);if(!isAtomStateInitialized(V))if(hasInitialValue(L))setAtomStateValueOrPromise(L,L.init,h);else throw new Error("no atom init");return returnAtomValue(V)}const O=b(L);try{return returnAtomValue(O)}finally{y.d.set(L,O.n),isPendingPromise(y.v)&&addPendingPromiseToDependency(E,y.v,O),(H=n.get(L))==null||H.t.add(E),A||N()}};let P,_;const D={get signal(){return P||(P=new AbortController),P.signal},get setSelf(){return!_&&isActuallyWritableAtom(E)&&(_=(...L)=>{if(!A)try{return S(E,...L)}finally{f(),x()}}),_}},M=y.n;try{const L=d(E,T,D);return setAtomStateValueOrPromise(E,L,h),isPromiseLike$2(L)&&((I=L.onCancel)==null||I.call(L,()=>P==null?void 0:P.abort()),L.then(N,N)),y}catch(L){return delete y.v,y.e=L,++y.n,y}finally{A=!1,M!==y.n&&a.get(E)===M&&(a.set(E,y.n),l.add(E),(R=c.c)==null||R.call(c,E))}}),j=g[4]||(E=>{const I=[E];for(;I.length;){const R=I.pop(),y=h(R);for(const A of getMountedOrPendingDependents(R,y,n)){const N=h(A);a.set(A,N.n),I.push(A)}}}),S=g[5]||((E,...I)=>{let R=!0;const y=N=>returnAtomValue(b(N)),A=(N,...T)=>{var P;const _=h(N);try{if(isSelfAtom(E,N)){if(!hasInitialValue(N))throw new Error("atom not writable");const D=_.n,M=T[0];setAtomStateValueOrPromise(N,M,h),w(N),D!==_.n&&(l.add(N),(P=c.c)==null||P.call(c,N),j(N));return}else return S(N,...T)}finally{R||(f(),x())}};try{return p(E,y,A,...I)}finally{R=!1}}),w=g[6]||(E=>{var I;const R=h(E),y=n.get(E);if(y&&!isPendingPromise(R.v)){for(const[A,N]of R.d)if(!y.d.has(A)){const T=h(A);v(A).t.add(E),y.d.add(A),N!==T.n&&(l.add(A),(I=c.c)==null||I.call(c,A),j(A))}for(const A of y.d||[])if(!R.d.has(A)){y.d.delete(A);const N=k(A);N==null||N.t.delete(E)}}}),v=g[7]||(E=>{var I;const R=h(E);let y=n.get(E);if(!y){b(E);for(const A of R.d.keys())v(A).t.add(E);if(y={l:new Set,d:new Set(R.d.keys()),t:new Set},n.set(E,y),(I=c.m)==null||I.call(c,E),isActuallyWritableAtom(E)){const A=()=>{let N=!0;const T=(...P)=>{try{return S(E,...P)}finally{N||(f(),x())}};try{const P=m(E,T);P&&(y.u=()=>{N=!0;try{P()}finally{N=!1}})}finally{N=!1}};r.add(A)}}return y}),k=g[8]||(E=>{var I;const R=h(E);let y=n.get(E);if(y&&!y.l.size&&!Array.from(y.t).some(A=>{var N;return(N=n.get(A))==null?void 0:N.d.has(E)})){y.u&&i.add(y.u),y=void 0,n.delete(E),(I=c.u)==null||I.call(c,E);for(const A of R.d.keys()){const N=k(A);N==null||N.t.delete(E)}return}return y}),C=[o,n,a,l,r,i,c,d,p,u,m,h,x,f,b,j,S,w,v,k],B={get:E=>returnAtomValue(b(E)),set:(E,...I)=>{try{return S(E,...I)}finally{f(),x()}},sub:(E,I)=>{const y=v(E).l;return y.add(I),x(),()=>{y.delete(I),k(E),x()}}};return Object.defineProperty(B,BUILDING_BLOCKS,{value:C}),B},INTERNAL_buildStoreRev1=buildStore;let keyCount=0;function atom(o,n){const a=`atom${++keyCount}`,l={toString(){return a}};return typeof o=="function"?l.read=o:(l.init=o,l.read=defaultRead,l.write=defaultWrite),n&&(l.write=n),l}function defaultRead(o){return o(this)}function defaultWrite(o,n,a){return n(this,typeof a=="function"?a(o(this)):a)}const createStore=()=>INTERNAL_buildStoreRev1();let defaultStore;const getDefaultStore=()=>(defaultStore||(defaultStore=createStore()),defaultStore),RESET=Symbol(""),getCached$1=(o,n,a)=>(n.has(a)?n:n.set(a,o())).get(a),cache1$2=new WeakMap,memo2$1=(o,n,a)=>{const l=getCached$1(()=>new WeakMap,cache1$2,n);return getCached$1(o,l,a)},cacheKeyForEmptyKeyExtractor={},isWritable=o=>!!o.write,isFunction=o=>typeof o=="function";function splitAtom(o,n){return memo2$1(()=>{const a=new WeakMap,l=(c,d)=>{let p=a.get(c);if(p)return p;const u=d&&a.get(d),m=[],g=[];return c.forEach((h,x)=>{const f=x;g[x]=f;const b=u&&u.atomList[u.keyList.indexOf(f)];if(b){m[x]=b;return}const j=w=>{const v=w(r),k=w(o),B=l(k,v==null?void 0:v.arr).keyList.indexOf(f);if(B<0||B>=k.length){const E=c[l(c).keyList.indexOf(f)];if(E)return E;throw new Error("splitAtom: index out of bounds for read")}return k[B]},S=(w,v,k)=>{const C=w(r),B=w(o),I=l(B,C==null?void 0:C.arr).keyList.indexOf(f);if(I<0||I>=B.length)throw new Error("splitAtom: index out of bounds for write");const R=isFunction(k)?k(B[I]):k;Object.is(B[I],R)||v(o,[...B.slice(0,I),R,...B.slice(I+1)])};m[x]=isWritable(o)?atom(j,S):atom(j)}),u&&u.keyList.length===g.length&&u.keyList.every((h,x)=>h===g[x])?p=u:p={arr:c,atomList:m,keyList:g},a.set(c,p),p},r=atom(c=>{const d=c(r),p=c(o);return l(p,d==null?void 0:d.arr)});r.init=void 0;const i=isWritable(o)?atom(c=>c(r).atomList,(c,d,p)=>{switch(p.type){case"remove":{const u=c(i).indexOf(p.atom);if(u>=0){const m=c(o);d(o,[...m.slice(0,u),...m.slice(u+1)])}break}case"insert":{const u=p.before?c(i).indexOf(p.before):c(i).length;if(u>=0){const m=c(o);d(o,[...m.slice(0,u),p.value,...m.slice(u)])}break}case"move":{const u=c(i).indexOf(p.atom),m=p.before?c(i).indexOf(p.before):c(i).length;if(u>=0&&m>=0){const g=c(o);u<m?d(o,[...g.slice(0,u),...g.slice(u+1,m),g[u],...g.slice(m)]):d(o,[...g.slice(0,m),g[u],...g.slice(m,u),...g.slice(u+1)])}break}}}):atom(c=>c(r).atomList);return i},o,cacheKeyForEmptyKeyExtractor)}const isPromiseLike$1=o=>typeof(o==null?void 0:o.then)=="function";function createJSONStorage(o=()=>{try{return window.localStorage}catch{return}},n){var a;let l,r;const i={getItem:(p,u)=>{var m,g;const h=f=>{if(f=f||"",l!==f){try{r=JSON.parse(f,n==null?void 0:n.reviver)}catch{return u}l=f}return r},x=(g=(m=o())==null?void 0:m.getItem(p))!=null?g:null;return isPromiseLike$1(x)?x.then(h):h(x)},setItem:(p,u)=>{var m;return(m=o())==null?void 0:m.setItem(p,JSON.stringify(u,void 0))},removeItem:p=>{var u;return(u=o())==null?void 0:u.removeItem(p)}},c=p=>(u,m,g)=>p(u,h=>{let x;try{x=JSON.parse(h||"")}catch{x=g}m(x)});let d;try{d=(a=o())==null?void 0:a.subscribe}catch{}return!d&&typeof window<"u"&&typeof window.addEventListener=="function"&&window.Storage&&(d=(p,u)=>{if(!(o()instanceof window.Storage))return()=>{};const m=g=>{g.storageArea===o()&&g.key===p&&u(g.newValue)};return window.addEventListener("storage",m),()=>{window.removeEventListener("storage",m)}}),d&&(i.subscribe=c(d)),i}const defaultStorage=createJSONStorage();function atomWithStorage(o,n,a=defaultStorage,l){const r=atom(n);return r.onMount=c=>{c(a.getItem(o,n));let d;return a.subscribe&&(d=a.subscribe(o,c,n)),d},atom(c=>c(r),(c,d,p)=>{const u=typeof p=="function"?p(c(r)):p;return u===RESET?(d(r,n),a.removeItem(o)):u instanceof Promise?u.then(m=>(d(r,m),a.setItem(o,m))):(d(r,u),a.setItem(o,u))})}const StoreContext=React.createContext(void 0),useStore=o=>{const n=React.useContext(StoreContext);return(o==null?void 0:o.store)||n||getDefaultStore()},isPromiseLike=o=>typeof(o==null?void 0:o.then)=="function",attachPromiseMeta=o=>{o.status="pending",o.then(n=>{o.status="fulfilled",o.value=n},n=>{o.status="rejected",o.reason=n})},use=React.use||(o=>{if(o.status==="pending")throw o;if(o.status==="fulfilled")return o.value;throw o.status==="rejected"?o.reason:(attachPromiseMeta(o),o)}),continuablePromiseMap=new WeakMap,createContinuablePromise=o=>{let n=continuablePromiseMap.get(o);return n||(n=new Promise((a,l)=>{let r=o;const i=p=>u=>{r===p&&a(u)},c=p=>u=>{r===p&&l(u)},d=p=>{"onCancel"in p&&typeof p.onCancel=="function"&&p.onCancel(u=>{isPromiseLike(u)?(continuablePromiseMap.set(u,n),r=u,u.then(i(u),c(u)),d(u)):a(u)})};o.then(i(o),c(o)),d(o)}),continuablePromiseMap.set(o,n)),n};function useAtomValue(o,n){const a=useStore(n),[[l,r,i],c]=React.useReducer(u=>{const m=a.get(o);return Object.is(u[0],m)&&u[1]===a&&u[2]===o?u:[m,a,o]},void 0,()=>[a.get(o),a,o]);let d=l;if((r!==a||i!==o)&&(c(),d=a.get(o)),React.useEffect(()=>{const u=a.sub(o,()=>{c()});return c(),u},[a,o,void 0]),React.useDebugValue(d),isPromiseLike(d)){const u=createContinuablePromise(d);return use(u)}return d}function useSetAtom(o,n){const a=useStore(n);return React.useCallback((...r)=>a.set(o,...r),[a,o])}function useAtom(o,n){return[useAtomValue(o,n),useSetAtom(o,n)]}function useAtomCallback(o,n){const a=React.useMemo(()=>atom(null,(l,r,...i)=>o(l,r,...i)),[o]);return useSetAtom(a,n)}const readOnlyModeAtom=jotai.atom(!1);readOnlyModeAtom.debugLabel="readOnlyModeAtom";const networkModeAtom=jotai.atom("online");networkModeAtom.debugLabel="networkModeAtom";jotai.atom("");const editLayerNameAtom=jotai.atom(!1);editLayerNameAtom.debugLabel="editLayerNameAtom";const activeLanguageAtom=jotai.atom("");activeLanguageAtom.debugLabel="activeLanguageAtom";const primaryLanguageAtom=jotai.atom("");primaryLanguageAtom.debugLabel="primaryLanguageAtom";const canvasIframeAtom=jotai.atom(null);canvasIframeAtom.debugLabel="canvasIframeAtom";const activePanelAtom=jotai.atom("outline");activePanelAtom.debugLabel="activePanelAtom";const showPredefinedBlockCategoryAtom=jotai.atom("");showPredefinedBlockCategoryAtom.debugLabel="showPredefinedBlockCategoryAtom";const historyStatesAtom=jotai.atom({undoCount:0,redoCount:0});historyStatesAtom.debugLabel="historyStatesAtom";const inlineEditingActiveAtom=jotai.atom("");inlineEditingActiveAtom.debugLabel="inlineEditingActiveAtom";const draggingFlagAtom=jotai.atom(!1);draggingFlagAtom.debugLabel="draggingFlagAtom";const treeRefAtom=jotai.atom(null);treeRefAtom.debugLabel="treeRefAtom";const canvasSettingsAtom=jotai.atom({});canvasSettingsAtom.debugLabel="canvasSettingsAtom";const aiAssistantActiveAtom=jotai.atom(!1);aiAssistantActiveAtom.debugLabel="aiAssistantActiveAtom";const codeEditorOpenAtom=jotai.atom(!1);codeEditorOpenAtom.debugLabel="codeEditorOpenAtom";const codeEditorHeightAtom=atomWithStorage("codeEditorHeight",500);codeEditorHeightAtom.debugLabel="codeEditorHeightAtom";const xShowBlocksAtom=jotai.atom([]);xShowBlocksAtom.debugLabel="xShowBlocksAtom";const selectedLibraryAtom=atomWithStorage("_selectedLibrary",null);selectedLibraryAtom.debugLabel="selectedLibraryAtom";const dataBindingActiveAtom=jotai.atom(!0);dataBindingActiveAtom.debugLabel="dataBindingActiveAtom";let doc,win;typeof document<"u"&&(doc=document);typeof window<"u"&&(win=window);const FrameContext=React.createContext({document:doc,window:win}),useFrame=()=>React.useContext(FrameContext),{Provider:FrameContextProvider,Consumer:FrameContextConsumer}=FrameContext;class Content extends React.Component{componentDidMount(){this.props.contentDidMount()}componentDidUpdate(){this.props.contentDidUpdate()}render(){return React.Children.only(this.props.children)}}class Frame extends React.Component{constructor(a,l){super(a,l);U(this,"setRef",a=>{this.nodeRef.current=a;const{forwardedRef:l}=this.props;typeof l=="function"?l(a):l&&(l.current=a)});U(this,"handleLoad",()=>{clearInterval(this.loadCheck),this.state.iframeLoaded||this.setState({iframeLoaded:!0})});U(this,"loadCheck",()=>setInterval(()=>{this.handleLoad()},500));this._isMounted=!1,this.nodeRef=React.createRef(),this.state={iframeLoaded:!1}}componentDidMount(){this._isMounted=!0,this.getDoc()&&this.nodeRef.current.contentWindow.addEventListener("DOMContentLoaded",this.handleLoad)}componentWillUnmount(){this._isMounted=!1,this.nodeRef.current.removeEventListener("DOMContentLoaded",this.handleLoad)}getDoc(){return this.nodeRef.current?this.nodeRef.current.contentDocument:null}getMountTarget(){const a=this.getDoc();return this.props.mountTarget?a.querySelector(this.props.mountTarget):a.body.children[0]}renderFrameContents(){if(!this._isMounted)return null;const a=this.getDoc();if(!a)return null;const l=this.props.contentDidMount,r=this.props.contentDidUpdate,i=a.defaultView||a.parentView,c=jsxRuntime.jsx(Content,{contentDidMount:l,contentDidUpdate:r,children:jsxRuntime.jsx(FrameContextProvider,{value:{document:a,window:i},children:jsxRuntime.jsx("div",{className:"frame-content",children:this.props.children})})}),d=this.getMountTarget();return[ReactDOM.createPortal(this.props.head,this.getDoc().head),ReactDOM.createPortal(c,d)]}render(){const a={...this.props,srcDoc:this.props.initialContent,children:void 0};return delete a.head,delete a.initialContent,delete a.mountTarget,delete a.contentDidMount,delete a.contentDidUpdate,delete a.forwardedRef,jsxRuntime.jsx("iframe",{...a,ref:this.setRef,onLoad:this.handleLoad,children:this.state.iframeLoaded&&this.renderFrameContents()})}}U(Frame,"defaultProps",{style:{},head:null,children:void 0,mountTarget:void 0,contentDidMount:()=>{},contentDidUpdate:()=>{},initialContent:'<!DOCTYPE html><html><head></head><body><div class="frame-root"></div></body></html>'});const ChaiFrame=React.forwardRef((o,n)=>jsxRuntime.jsx(Frame,{...o,forwardedRef:n}));function duplicateBlocks(o,n,a){const l=lodashEs.filter(o,i=>i._parent===n),r=[];for(let i=0;i<l.length;i++){const c=getSlots(l[i]);if(Object.keys(c).length>0&&Object.keys(c).forEach(d=>{l[i][d]=`slot:${iconBase.generateUUID()}`}),lodashEs.filter(o,{_parent:l[i]._id}).length>0){const d=iconBase.generateUUID();r.push({...l[i],oldId:l[i]._id,_id:d,_parent:a}),r.push(lodashEs.flatten(duplicateBlocks(o,l[i]._id,d)))}else r.push({...l[i],oldId:l[i]._id,_id:iconBase.generateUUID(),_parent:a})}return lodashEs.flatten(r)}function convertToBlocksTree(o){const n={};o.forEach(l=>{n[l._id]={...l,children:[]}});const a=[];return o.forEach(l=>{if(l._parent){const r=n[l._parent];r&&r.children.push(n[l._id])}else a.push(n[l._id])}),a}const getSlots=o=>{const n={};return Object.keys(o).forEach(a=>{lodashEs.isString(o[a])&&o[a].startsWith("slot")&&(n[a]=o[a].replace("slot:",""))}),n},getDuplicatedBlocks=(o,n,a=null)=>{let l=lodashEs.find(o,{_id:n});l={...l,oldId:l._id,_id:iconBase.generateUUID()},a!==(l==null?void 0:l._parent)&&(l={...l,_parent:a});const r=[l];lodashEs.filter(o,{_parent:n}).length>0&&r.push(lodashEs.flatten(duplicateBlocks(o,n,l._id)));const i=lodashEs.flatten(r);return lodashEs.map(i,c=>{const d=c,p=getSlots(d);return Object.keys(p).length>0&&Object.keys(p).forEach(u=>{const m=lodashEs.find(i,{oldId:p[u].replace("slot:","")});d[u]=`slot:${m._id}`}),lodashEs.omit(d,["global","oldId"])})},presentBlocksAtom=jotai.atom([]);presentBlocksAtom.debugLabel="presentBlocksAtom";const treeDSBlocks=jotai.atom(o=>{const n=o(presentBlocksAtom);return convertToBlocksTree([...n])});treeDSBlocks.debugLabel="treeDSBlocks";const pageBlocksAtomsAtom=splitAtom(presentBlocksAtom);pageBlocksAtomsAtom.debugLabel="pageBlocksAtomsAtom";const builderActivePageAtom=jotai.atom("");builderActivePageAtom.debugLabel="builderActivePageAtom";const destinationDropIndexAtom=jotai.atom(-1);destinationDropIndexAtom.debugLabel="destinationDropIndexAtom";const buildingBlocksAtom=jotai.atom([]);buildingBlocksAtom.debugLabel="buildingBlocksAtom";const globalBlocksAtom=jotai.atom(o=>{const n=o(buildingBlocksAtom);return lodashEs.filter(n,a=>lodashEs.has(a,"blockId"))});globalBlocksAtom.debugLabel="globalBlocksAtom";var undomanager={exports:{}},hasRequiredUndomanager;function requireUndomanager(){return hasRequiredUndomanager||(hasRequiredUndomanager=1,function(o){(function(){function n(l,r,i){return l.splice(r,!i||1+i-r+(!(i<0^r>=0)&&(i<0||-1)*l.length)),l.length}let a=function(){let l=[],r=-1,i=0,c=!1,d;function p(u,m){return!u||typeof u[m]!="function"?this:(c=!0,u[m](),c=!1,this)}return{add:function(u){return c?this:(l.splice(r+1,l.length-r),l.push(u),i&&l.length>i&&n(l,0,-(i+1)),r=l.length-1,d&&d(),this)},setCallback:function(u){d=u},undo:function(){let u=l[r];if(!u)return this;const m=u.groupId;for(;u.groupId===m&&(p(u,"undo"),r-=1,u=l[r],!(!u||!u.groupId)););return d&&d(),this},redo:function(){let u=l[r+1];if(!u)return this;const m=u.groupId;for(;u.groupId===m&&(p(u,"redo"),r+=1,u=l[r+1],!(!u||!u.groupId)););return d&&d(),this},clear:function(){let u=l.length;l=[],r=-1,d&&u>0&&d()},hasUndo:function(){return r!==-1},hasRedo:function(){return r<l.length-1},getCommands:function(u){return u?l.filter(m=>m.groupId===u):l},getIndex:function(){return r},setLimit:function(u){i=u}}};o.exports?o.exports=a:window.UndoManager=a})()}(undomanager)),undomanager.exports}var undomanagerExports=requireUndomanager();const UndoManager=ChaiThemeFn.getDefaultExportFromCjs(undomanagerExports),MODIFIERS=["hover","focus","focus-within","focus-visible","active","visited","target","first","last","only","odd","even","first-of-type","last-of-type","only-of-type","empty","disabled","checked","indeterminate","default","required","valid","invalid","in-range","out-of-range","placeholder-shown","autofill","read-only","open","before","after","first-letter","first-line","marker","selection","file","placeholder","hs-collapse-open","hs-accordion-active"],BRANDING_OPTIONS_DEFAULTS={bodyFont:"Inter",headingFont:"Inter",roundedCorners:5,primaryColor:"#570df8",secondaryColor:"#f002b8",bodyBgDarkColor:"#031022",bodyBgLightColor:"#fcfcfc",bodyTextDarkColor:"#ffffff",bodyTextLightColor:"#000000"},brandingOptionsAtom=jotai.atom(BRANDING_OPTIONS_DEFAULTS);jotai.atom(null);const useBrandingOptions=()=>{const[o,n]=jotai.useAtom(brandingOptionsAtom);return[lodashEs.isObject(o)?{...BRANDING_OPTIONS_DEFAULTS,...o}:BRANDING_OPTIONS_DEFAULTS,n]},currentPageAtom=jotai.atom(null),useCurrentPage=()=>({currentPage:jotai.useAtomValue(currentPageAtom)}),getBlockBuilderProps=lodashEs.memoize(o=>{const n=runtime.getRegisteredChaiBlock(o),a=lodashEs.get(n,"schema.properties",{});return lodashEs.compact(Object.keys(a).map(l=>lodashEs.get(a[l],"builderProp",!1)||lodashEs.get(a[l],"runtime",!1)?l:null))}),useGetPageData=()=>{const[o]=useBrandingOptions(),{currentPage:n}=useCurrentPage(),[a]=useBlocksStore();return React.useCallback(()=>{const l=lodashEs.map(a,r=>lodashEs.omit(r,getBlockBuilderProps(r._type)));return{currentPage:n,blocks:l}},[o,n,a])},chaiBuilderPropsAtom=jotai.atom(null);chaiBuilderPropsAtom.debugLabel="chaiBuilderPropsAtom";const chaiExternalDataAtom=jotai.atom({});chaiExternalDataAtom.debugLabel="chaiExternalDataAtom";const chaiRjsfFieldsAtom=jotai.atom({});chaiRjsfFieldsAtom.debugLabel="chaiRjsfFieldsAtom";const chaiRjsfWidgetsAtom=jotai.atom({});chaiRjsfWidgetsAtom.debugLabel="chaiRjsfWidgetsAtom";const chaiRjsfTemplatesAtom=jotai.atom({});chaiRjsfTemplatesAtom.debugLabel="chaiRjsfTemplatesAtom";const chaiPageExternalDataAtom=jotai.atom({});chaiPageExternalDataAtom.debugLabel="chaiPageExternalDataAtom";const usePageExternalData=()=>jotai.useAtomValue(chaiPageExternalDataAtom),useBuilderProp=(o,n=void 0)=>{const a=jotai.useAtomValue(chaiBuilderPropsAtom);return lodashEs.get(a,o,n)},getDefaultThemeValues=(o=ChaiThemeFn.defaultThemeOptions)=>{const n={};return o.fontFamily&&(n.fontFamily=Object.entries(o.fontFamily).reduce((a,[l,r])=>({...a,[l.replace("font-","")]:r}),{})),n.borderRadius=o.borderRadius,o.colors&&(n.colors=o.colors.reduce((a,l)=>(Object.entries(l.items).forEach(([r,i])=>{a[r]=i}),a),{})),n},chaiThemeValuesAtom=jotai.atom({}),useTheme=()=>{const o=useThemeOptions(),n=React.useMemo(()=>getDefaultThemeValues(o),[o]),a=useBuilderProp("theme",{}),[l,r]=jotai.useAtom(chaiThemeValuesAtom);return[React.useMemo(()=>({...n,...!lodashEs.isEmpty(a)&&a,...!lodashEs.isEmpty(l)&&l}),[n,a,l]),r]},useThemeOptions=()=>{const o=useBuilderProp("themeOptions",a=>a);return React.useMemo(()=>o(ChaiThemeFn.defaultThemeOptions),[o])},rightPanelAtom=jotai.atom("block"),useRightPanel=()=>jotai.useAtom(rightPanelAtom),builderSaveStateAtom=jotai.atom("SAVED");builderSaveStateAtom.debugLabel="builderSaveStateAtom";const useSavePage=()=>{const[o,n]=jotai.useAtom(builderSaveStateAtom),a=useBuilderProp("onSave",async d=>{}),l=useBuilderProp("onSaveStateChange",lodashEs.noop),r=useGetPageData(),[i]=useTheme();return{savePage:web.useThrottledCallback(async(d=!1)=>{n("SAVING"),l("SAVING");const p=r();return await a({autoSave:d,blocks:p.blocks,theme:i}),setTimeout(()=>{n("SAVED"),l("SAVED")},100),!0},[r,n,i,a,l],3e3),saveState:o,setSaveState:n}},undoManager=new UndoManager;undoManager.setLimit(50);const useUndoManager=()=>{const[,o]=jotai.useAtom(builderSaveStateAtom),n=useBuilderProp("onSaveStateChange",lodashEs.noop);return React.useEffect(()=>(undoManager.setCallback(()=>{o("UNSAVED"),n("UNSAVED")}),()=>{undoManager.setCallback(lodashEs.noop)}),[]),{add:undoManager.add,undo:undoManager.undo,redo:undoManager.redo,hasRedo:undoManager.hasRedo,hasUndo:undoManager.hasUndo,clear:undoManager.clear}},broadcastChannel=new BroadcastChannel("chaibuilder"),useBroadcastChannel=()=>{const o=useBuilderProp("pageId","chaibuilder_page");return{postMessage:web.useDebouncedCallback(a=>broadcastChannel.postMessage({...a,pageId:o}),[o],200)}},useUnmountBroadcastChannel=()=>{const[,o]=useBlocksStore(),n=useBuilderProp("pageId","chaibuilder_page"),{updateBlocksProps:a}=useBlocksStoreManager();React.useEffect(()=>(broadcastChannel.onmessageerror=l=>{console.log("error",l)},broadcastChannel.onmessage=l=>{l.data.type==="blocks-updated"&&l.data.pageId===n&&o(l.data.blocks),l.data.type==="blocks-props-updated"&&l.data.pageId===n&&a(l.data.blocks)},()=>{broadcastChannel.onmessage=null,broadcastChannel.onmessageerror=null}),[o,n])},selectedBlockIdsAtom=jotai.atom([]);selectedBlockIdsAtom.debugLabel="selectedBlockIdsAtom";const selectedBlocksAtom=jotai.atom(o=>{const n=o(presentBlocksAtom),a=o(selectedBlockIdsAtom);return lodashEs.map(lodashEs.filter(n,({_id:l})=>lodashEs.includes(a,l)),l=>({...l}))});selectedBlocksAtom.debugLabel="selectedBlocksAtom";const selectedBlockAtom=jotai.atom(o=>{const n=o(selectedBlocksAtom);if(n.length===0)return null;if(n.length===1)return n[0]});selectedBlockAtom.debugLabel="selectedBlockAtom";const getParentId=o=>lodashEs.get(o,"_parent",null),selectedBlocksParentsAtom=jotai.atom(o=>{const n=o(selectedBlocksAtom),a=lodashEs.map(n,getParentId);return lodashEs.filter(o(presentBlocksAtom),l=>lodashEs.includes(a,l._id))});selectedBlocksParentsAtom.debugLabel="selectedBlocksParentsAtom";const selectedBlockFlexChildAtom=jotai.atom(()=>!1);selectedBlockFlexChildAtom.debugLabel="selectedBlockFlexChildAtom";const selectedBlockGridChildAtom=jotai.atom(()=>!1);selectedBlockGridChildAtom.debugLabel="selectedBlockGridChildAtom";const styleStateAtom=jotai.atom("");styleStateAtom.debugLabel="styleStateAtom";const styleBreakpointAtom=atomWithStorage("styleBreakpoint","xs");styleBreakpointAtom.debugLabel="styleBreakpointAtom";const useSelectedBlocksDisplayChild=()=>({flexChild:jotai.useAtomValue(selectedBlockFlexChildAtom),gridChild:jotai.useAtomValue(selectedBlockGridChildAtom)}),useSelectedBlock=()=>jotai.useAtomValue(selectedBlockAtom),selectedBlockHierarchy=jotai.atom(o=>{const n=o(selectedBlockAtom),a=o(presentBlocksAtom);let l=n;const r=[n];do{const i=a.find(({_id:c})=>c===(l==null?void 0:l._parent));l=i,i&&r.push(i)}while(l!=null&&l._parent);return r}),useSelectedBlockHierarchy=()=>lodashEs.compact(jotai.useAtomValue(selectedBlockHierarchy)),useSelectedBlockIds=()=>{const[o,n]=jotai.useAtom(selectedBlockIdsAtom),a=React.useCallback(l=>{n(r=>lodashEs.includes(r,l)?lodashEs.without(r,l):[...r,l])},[n]);return[o,n,a]},removeNestedBlocks=(o,n)=>{let a=[...o],l=[];n.forEach(d=>{const p=a.find(g=>g._id===d);if(!p||!p._parent)return;const u=p._parent,m=a.filter(g=>g._parent===u);if(m.length===2){const g=m.find(h=>h._id!==d);if(g&&g._type==="Text"){const h=a.find(x=>x._id===u);h&&"content"in h&&(a=a.map(x=>{if(x._id===u){const f={...x,content:g.content};return Object.keys(g).forEach(b=>{b.startsWith("content-")&&(f[b]=g[b])}),f}return x}),l.push(g._id))}}});const r=[...n,...l],i=[],c=lodashEs.filter(a,d=>lodashEs.includes(r,d._id)||lodashEs.includes(r,d._parent)?(i.push(d._id),!1):!0);return lodashEs.isEmpty(i)?c:removeNestedBlocks(c,i)},useRemoveBlocks=()=>{const[o]=useBlocksStore(),[n,a]=useSelectedBlockIds(),{setNewBlocks:l}=useBlocksStoreUndoableActions();return React.useCallback(r=>{var c;const i=((c=lodashEs.find(o,{_id:r[0]}))==null?void 0:c._parent)||null;l(removeNestedBlocks(o,r)),setTimeout(()=>a(i?[i]:[]),200)},[o,a,n])},builderStore=jotai.getDefaultStore(),writeAtomValue=jotai.atom(null,(o,n,{id:a,props:l})=>{const r=o(pageBlocksAtomsAtom),i=lodashEs.find(r,c=>o(c)._id===a);if(!i)throw new Error(`Block with id ${a} not found`);return n(i,{...o(i),...l})}),useUpdateBlockAtom=()=>jotai.useSetAtom(writeAtomValue),useGetBlockAtomValue=o=>useAtomCallback(React.useCallback((n,a,l)=>{const r=n(o);if(!r||!r.length)throw new Error("No blocks available");const i=lodashEs.find(r,c=>n(c)._id===(lodashEs.isString(l)?l:n(l)._id));if(!i)throw new Error(`Block with id ${l} not found`);return n(i)},[o]),{store:builderStore}),useGetBlockAtom=o=>useAtomCallback(React.useCallback((n,a,l)=>{const r=n(o);if(!r||!r.length)return console.warn("No blocks available in splitAtoms"),null;const i=lodashEs.find(r,c=>n(c)._id===(lodashEs.isString(l)?l:n(l)._id));return i||(console.warn(`Block with id ${l} not found`),null)},[o]),{store:builderStore});function insertBlocksAtPosition(o,n,a,l){const r=[...n];let i=[...o];if(a){const u=o.find(m=>m._id===a);if(u&&u.content!==void 0&&u.content!==""&&!o.some(g=>g._parent===a)){const h={_id:iconBase.generateUUID(),_parent:a,_type:"Text",content:u.content};Object.keys(u).forEach(x=>{x.startsWith("content-")&&(h[x]=u[x])}),r.unshift(h),i=i.map(x=>{if(x._id===a){const f={...x,content:""};return Object.keys(f).forEach(b=>{b.startsWith("content-")&&(f[b]="")}),f}return x})}}let c=i.filter(u=>!u._parent);a&&(c=i.filter(u=>u._parent===a));const d=!isNaN(l)||l>-1?Math.min(l,c.length):c.length;let p=i.length;for(let u=0,m=0;u<i.length;u++)if(i[u]._parent===a){if(m===d){p=u;break}m++}return!a&&l!==void 0&&l>=c.length&&(p=i.length),[...i.slice(0,p),...r,...i.slice(p)]}function getBlocksTree(o){return convertToBlocksTree(o)}function flattenTree(o){let n=[];return o.walk(a=>(delete a.model.children,n.push(a.model),!0)),n}function findNodeById(o,n){return o.first(a=>a.model._id===n)||null}function moveNode(o,n,a,l){const r=findNodeById(o,n),i=findNodeById(o,a);if(r&&i){r.drop(),i.children||(i.model.children=[]);try{i.addChildAtIndex(r,l)}catch(c){return console.error("Error adding child to parent:",c),!1}return!0}return!1}function handleOldParentTextBlock(o,n){if(!n||!n._parent)return o;const a=n._parent,l=o.find(i=>i._id===a);if(!l)return o;const r=o.filter(i=>i._parent===a);if(r.length===2){const i=r.find(c=>c._id!==n._id);if(i&&i._type==="Text"&&"content"in l)return o.map(d=>{if(d._id===a){const p={...d,content:i.content};return Object.keys(i).forEach(u=>{u.startsWith("content-")&&(p[u]=i[u])}),p}return d}).filter(d=>d._id!==i._id)}return o}function handleNewParentTextBlock(o,n,a){if(!a||a==="root")return o;const l=o.find(r=>r._id===a);if(!l)return o;if(l.content!==void 0&&l.content!==""&&!o.some(i=>i._parent===a&&i._id!==n._id)){const c={_id:iconBase.generateUUID(),_parent:a,_type:"Text",content:l.content};Object.keys(l).forEach(u=>{u.startsWith("content-")&&(c[u]=l[u])});const d=o.map(u=>{if(u._id===a){const m={...u,content:""};return Object.keys(m).forEach(g=>{g.startsWith("content-")&&(m[g]="")}),m}return u}),p=d.findIndex(u=>u._id===n._id);return p!==-1?[...d.slice(0,p),c,...d.slice(p)]:[c,...d]}return o}function moveBlocksWithChildren(o,n,a,l){if(!n)return o;const r=o.find(u=>u._id===n);if(!r)return o;let i=handleOldParentTextBlock(o,r);const c=a||"root",p=new TreeModel().parse({_id:"root",children:getBlocksTree(i)});if(moveNode(p,n,c,l)){let u=flattenTree(p);const m=u.find(g=>g._id===n);return m&&(m._parent=c==="root"?null:c),u.shift(),a&&(u=handleNewParentTextBlock(u,r,a)),u}return i}const useBlocksStoreManager=()=>{const[,o]=useBlocksStore(),{postMessage:n}=useBroadcastChannel(),a=useUpdateBlockAtom();return{setNewBlocks:l=>{o(l),n({type:"blocks-updated",blocks:l})},addBlocks:(l,r,i)=>{o(c=>{const d=insertBlocksAtPosition(c,l,r,i);return n({type:"blocks-updated",blocks:d}),d})},removeBlocks:l=>{o(r=>{const i=removeNestedBlocks(r,l);return n({type:"blocks-updated",blocks:i}),i})},moveBlocks:(l,r,i)=>{o(c=>{let d=[...c];for(let p=0;p<l.length;p++)d=moveBlocksWithChildren(d,l[p],r,i);return lodashEs.each(l,p=>{const u=lodashEs.find(d,m=>m._id===p);u&&a({id:p,props:{_parent:u._parent||null}})}),n({type:"blocks-updated",blocks:d}),d})},updateBlocksProps:l=>{l.forEach(r=>{const i=lodashEs.omit(r,"_id");a({id:r._id,props:i})}),n({type:"blocks-props-updated",blocks:l})}}},useBlocksStore=()=>jotai.useAtom(presentBlocksAtom),useBlocksStoreUndoableActions=()=>{const{add:o}=useUndoManager(),[n]=useBlocksStore(),{setNewBlocks:a,addBlocks:l,removeBlocks:r,moveBlocks:i,updateBlocksProps:c}=useBlocksStoreManager();return{moveBlocks:(f,b,j)=>{const S=lodashEs.map(f,v=>{const C=n.find(I=>I._id===v)._parent||null,E=n.filter(I=>C?I._parent===C:!I._parent).map(I=>I._id).indexOf(v);return{_id:v,oldParent:C,oldPosition:E}}),w=S.find(({_id:v})=>v===f[0]);w&&w.oldParent===b&&w.oldPosition===j||(i(f,b,j),o({undo:()=>lodashEs.each(S,({_id:v,oldParent:k,oldPosition:C})=>{i([v],k,C)}),redo:()=>i(f,b,j)}))},addBlocks:(f,b,j)=>{l(f,b,j),o({undo:()=>r(lodashEs.map(f,"_id")),redo:()=>l(f,b,j)})},removeBlocks:f=>{var w;const b=(w=lodashEs.first(f))==null?void 0:w._parent,S=n.filter(v=>b?v._parent===b:!v._parent).indexOf(lodashEs.first(f));r(lodashEs.map(f,"_id")),o({undo:()=>l(f,b,S),redo:()=>r(lodashEs.map(f,"_id"))})},updateBlocks:(f,b,j)=>{let S=[];if(j)S=lodashEs.map(f,w=>({_id:w,...j}));else{const w=lodashEs.keys(b);S=lodashEs.map(f,v=>{const k=n.find(B=>B._id===v),C={_id:v};return lodashEs.each(w,B=>C[B]=k[B]),C})}c(lodashEs.map(f,w=>({_id:w,...b}))),o({undo:()=>c(S),redo:()=>c(lodashEs.map(f,w=>({_id:w,...b})))})},updateBlocksRuntime:(f,b)=>{c(lodashEs.map(f,j=>({_id:j,...b})))},setNewBlocks:f=>{a(f),o({undo:()=>a(n),redo:()=>a(f)})},updateMultipleBlocksProps:f=>{let b=[];b=lodashEs.map(f,j=>{const S=lodashEs.keys(j),w=n.find(k=>k._id===j._id),v={};return lodashEs.each(S,k=>v[k]=w[k]),v}),c(f),o({undo:()=>c(b),redo:()=>c(f)})}}},canAcceptChildBlock=(o,n)=>{if(!o)return!0;const a=runtime.getRegisteredChaiBlock(o);return a&&lodashEs.has(a,"canAcceptBlock")?a.canAcceptBlock(n):!1},canAddChildBlock=o=>{const n=runtime.getRegisteredChaiBlock(o);return n?lodashEs.has(n,"canAcceptBlock"):!1},canBeNestedInside=(o,n)=>{const a=runtime.getRegisteredChaiBlock(n);return a&&lodashEs.has(a,"canBeNested")?a.canBeNested(o):!0},canDuplicateBlock=o=>{const n=runtime.getRegisteredChaiBlock(o);return n&&lodashEs.has(n,"canDuplicate")?n.canDuplicate():!0},canDeleteBlock=o=>{const n=runtime.getRegisteredChaiBlock(o);return n&&lodashEs.has(n,"canDelete")?n.canDelete():!0},canDropBlock=(o,{dragSource:n,dropTarget:a})=>{const l=lodashEs.get(n,"data._type",""),r=lodashEs.get(a,"data._type","");return canAcceptChildBlock(r,l)},useAddBlock=()=>{const[o]=useBlocksStore(),[,n]=useSelectedBlockIds(),{addBlocks:a}=useBlocksStoreUndoableActions(),l=React.useCallback((i,c,d)=>{var h;for(let x=0;x<i.length;x++){const{_id:f}=i[x];i[x]._id=iconBase.generateUUID();const b=lodashEs.filter(i,{_parent:f});for(let j=0;j<b.length;j++)b[j]._parent=i[x]._id}const p=lodashEs.first(i);let u,m;return c&&(u=lodashEs.find(o,{_id:c}),i[0]._parent=c,m=c),!(u?canAcceptChildBlock(u==null?void 0:u._type,p._type):!0)&&u&&(i[0]._parent=u._parent,m=u._parent),a(i,m,d),n([(h=lodashEs.first(i))==null?void 0:h._id]),lodashEs.first(i)},[a,o,n]);return{addCoreBlock:React.useCallback((i,c,d)=>{if(lodashEs.has(i,"blocks")){const b=i.blocks;return l(b,c,d)}const p=iconBase.generateUUID(),u=runtime.getDefaultBlockProps(i.type),m={_type:i.type,_id:p,...u,...lodashEs.has(i,"_name")&&{_name:i._name},...lodashEs.has(i,"partialBlockId")&&{partialBlockId:i.partialBlockId}};let g,h;return c&&(g=lodashEs.find(o,{_id:c}),m._parent=c,h=c),!canAcceptChildBlock(g==null?void 0:g._type,m._type)&&g&&(m._parent=g._parent,h=g._parent),a([m],h,d),n([m._id]),m},[a,l,o,n]),addPredefinedBlock:l}},STANDARD=[0,1,2,3,4,5,6,7,8,9,10,11,12,14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96],CLASS_VALUES={columns:[...lodashEs.range(1,13),"auto","3xs","2xs","xs","sm","md","lg","xl",...lodashEs.map(lodashEs.range(2,8),o=>`${o}xl`)],breakAfter:["auto","avoid","all","avoid-page","page","left","right","column"],breakInside:["auto","avoid","avoid-page","avoid-column"],display:["block","flex","grid","inline-block","inline","hidden"],objectFit:["contain","cover","fill","none","scale-down"],objectPosition:["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],overflow:["auto","hidden","clip","visible","scroll"],overscroll:["auto","contain","none"],trbl:[0,"px","0.5",1,1.5,2,2.5,3,3.5,...lodashEs.range(4,13),14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96,"auto","1/2","1/3","2/3","1/4","2/4","3/4","full"],flexBasis:[...STANDARD,"auto","px","0.5","1.5","2.5","3.5","1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","2/6","3/6","4/6","5/6","1/12","2/12","3/12","4/12","5/12","6/12","7/12","8/12","9/12","10/12","11/12","full"],padding:[...STANDARD,"px","0.5","1.5","2.5","3.5"],margin:["auto",...STANDARD,"px","0.5","1.5","2.5","3.5"],scale:[0,50,75,90,95,100,105,110,125,150],origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left"],blendEffect:["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],borderWidth:[0,2,4,8],borderRadius:["global","none","sm","md","lg","xl","2xl","3xl","full"],indent:[0,"px","0.5",1,1.5,2,2.5,3,3.5,...lodashEs.range(4,13),14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96],maxHeight:[0,"px","0.5",1,1.5,2,2.5,3,3.5,...lodashEs.range(4,13),14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96,"full","screen","min","max","fit"],space:[0,"px","0.5",1,1.5,2,2.5,3,3.5,...lodashEs.range(4,13),14,16,20,24,28,32,36,40,44,48,52,56,60,64,72,80,96,"px","reverse"],width:["0","px","0.5","1","1.5","2","2.5","3","3.5","4","5","6","7","8","9","10","11","12","14","16","20","24","28","32","36","40","44","48","52","56","60","64","72","80","96","auto","1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","2/6","3/6","4/6","5/6","1/12","2/12","3/12","4/12","5/12","6/12","7/12","8/12","9/12","10/12","11/12"],maxWidth:["0","none","xs","sm","md","lg","xl","2xl","3xl","4xl","5xl","6xl","7xl","full","min","max","fit","prose","screen-sm","screen-md","screen-lg","screen-xl","screen-2xl"],height:["0","px","0.5","1","1.5","2","2.5","3","3.5","4","5","6","7","8","9","10","11","12","14","16","20","24","28","32","36","40","44","48","52","56","60","64","72","80","96","auto","1/2","1/3","2/3","1/4","2/4","3/4","1/5","2/5","3/5","4/5","1/6","2/6","3/6","4/6","5/6","full","screen","min","max","fit"]},CLASSES_LIST={textColor:{classes:[],regExp:"text-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},aspectRatio:{classes:["aspect-auto","aspect-square","aspect-video"],regExp:"aspect-(auto|square|video)"},container:{classes:["container"],regExp:"container"},columns:{classes:lodashEs.map(CLASS_VALUES.columns,o=>`columns-${o}`),regExp:"columns-(auto|[0-9]xl|[0-9]xs|xs|sm|md|lg|xl|\\d+)"},breakAfter:{classes:lodashEs.map(CLASS_VALUES.breakAfter,o=>`break-after-${o}`),regExp:"break-after-\\S+"},breakBefore:{classes:lodashEs.map(CLASS_VALUES.breakAfter,o=>`break-before-${o}`),regExp:"break-before-\\S+"},breakInside:{classes:lodashEs.map(CLASS_VALUES.breakInside,o=>`break-inside-${o}`),regExp:"break-inside-\\S+"},boxDecoration:{classes:["box-decoration-clone","box-decoration-slice"],regExp:"box-decoration-\\S+"},boxSizing:{classes:["box-border","box-content"],regExp:"box-(border|content)"},flexDirection:{classes:["flex-row","flex-row-reverse","flex-col","flex-col-reverse"],regExp:"flex-(row|row-reverse|col|col-reverse)"},flexWrap:{classes:["flex-wrap","flex-wrap-reverse","flex-nowrap"],regExp:"flex-(wrap|wrap-reverse|nowrap)"},flexGrowShrink:{classes:["flex-1","flex-auto","flex-initial","flex-none"],regExp:"flex-1|flex-auto|flex-initial|flex-none"},gridColumns:{classes:lodashEs.map([...lodashEs.range(0,13),"none"],o=>`grid-cols-${o}`),regExp:"grid-cols-(\\d+|none)"},gridFlow:{classes:["grid-flow-row","grid-flow-col","grid-flow-row-dense","grid-flow-col-dense"],regExp:"grid-flow-(row|col|row-dense|col-dense)"},outlineStyle:{classes:lodashEs.map(["none","dashed","dotted","double","hidden"],o=>`outline-${o}`),regExp:"outline-(none|dashed|dotted|double|hidden)"},borderStyle:{classes:lodashEs.map(["solid","dashed","dotted","double","hidden","none"],o=>`border-${o}`),regExp:"border-(solid|dashed|dotted|double|hidden|none)"},overflow:{classes:lodashEs.map(CLASS_VALUES.overflow,o=>`overflow-${o}`),regExp:`overflow-(${CLASS_VALUES.overflow.join("|")})`},overflowX:{classes:lodashEs.map(CLASS_VALUES.overflow,o=>`overflow-x-${o}`),regExp:`overflow-x-(${CLASS_VALUES.overflow.join("|")})`},overflowY:{classes:lodashEs.map(CLASS_VALUES.overflow,o=>`overflow-y-${o}`),regExp:`overflow-y-(${CLASS_VALUES.overflow.join("|")})`},gridRows:{classes:lodashEs.map([1,2,3,4,5,6,"none"],o=>`grid-rows-${o}`),regExp:"grid-rows-(\\d|none)"},display:{classes:lodashEs.map(CLASS_VALUES.display,o=>o.toString()),regExp:`(${CLASS_VALUES.display.join("|")})`},float:{classes:["float-right","float-left","float-none"],regExp:"float-\\S+"},clear:{classes:["clear-right","clear-left","clear-none","clear-both"],regExp:"clear-\\S+"},isolation:{classes:["isolate","isolation-auto"],regExp:"isolate|isolation-auto"},objectFit:{classes:lodashEs.map(CLASS_VALUES.objectFit,o=>`object-${o}`),regExp:"object-(contain|cover|fill|none|scale-down)"},objectPosition:{classes:lodashEs.map(CLASS_VALUES.objectPosition,o=>`object-${o}`),regExp:`object-(${CLASS_VALUES.objectPosition.join("|")})`},overscroll:{classes:lodashEs.map(CLASS_VALUES.overscroll,o=>`overscroll-${o}`),regExp:`overscroll-(${CLASS_VALUES.overscroll.join("|")})`},overscrollX:{classes:lodashEs.map(CLASS_VALUES.overscroll,o=>`overscroll-x-${o}`),regExp:`overscroll-x-(${CLASS_VALUES.overscroll.join("|")})`},overscrollY:{classes:lodashEs.map(CLASS_VALUES.overscroll,o=>`overscroll-y-${o}`),regExp:`overscroll-y-(${CLASS_VALUES.overscroll.join("|")})`},inset:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`inset-${o}`),regExp:"-?inset-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},insetX:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`inset-x-${o}`),regExp:"-?inset-x-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},insetY:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`inset-y-${o}`),regExp:"-?inset-y-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},top:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`top-${o}`),regExp:"-?top-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},topX:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`top-x-${o}`),regExp:"-?top-x-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},topY:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`top-y-${o}`),regExp:"-?top-y-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},right:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`right-${o}`),regExp:"-?right-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},rightX:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`right-x-${o}`),regExp:"-?right-x-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},rightY:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`right-y-${o}`),regExp:"-?right-y-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},bottom:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`bottom-${o}`),regExp:"-?bottom-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},bottomX:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`bottom-x-${o}`),regExp:"-?bottom-x-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},bottomY:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`bottom-y-${o}`),regExp:"-?bottom-y-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},left:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`left-${o}`),regExp:"-?left-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},leftX:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`left-x-${o}`),regExp:"-?left-x-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},leftY:{classes:lodashEs.map(CLASS_VALUES.trbl,o=>`left-y-${o}`),regExp:"-?left-y-(px|\\d\\/\\d|\\d\\.\\d|\\d+|full|auto|\\[.*\\])"},visibility:{classes:["visible","invisible"],regExp:"invisible|visible"},zIndex:{classes:lodashEs.map(["0",10,20,30,40,50,"auto"],o=>`z-${o}`),regExp:"-?z-(\\d+|auto|\\[.*\\])"},flexBasis:{classes:lodashEs.map(CLASS_VALUES.flexBasis,o=>`basis-${o}`),regExp:"basis-(\\d+|\\S+)"},flexGrow:{classes:["grow","grow-0"],regExp:"grow(-0)?"},flexShrink:{classes:["shrink","shrink-0"],regExp:"shrink(-0)?"},gridColSpan:{classes:["col-auto",...lodashEs.map(lodashEs.range(1,13),o=>`col-span-${o}`),"col-span-full"],regExp:"col-(auto|span-(\\d+|full))"},gridColStart:{classes:[...lodashEs.map(lodashEs.range(1,14),o=>`col-start-${o}`),"col-start-auto"],regExp:"col-start-(\\d+|auto)"},gridColEnd:{classes:[...lodashEs.map(lodashEs.range(1,14),o=>`col-end-${o}`),"col-end-auto"],regExp:"col-end-(\\d+|auto)"},gridRowSpan:{classes:["row-auto",...lodashEs.map(lodashEs.range(1,7),o=>`row-span-${o}`),"row-span-full"],regExp:"row-(auto|span-(\\d+|full))"},gridRowStart:{classes:[...lodashEs.map(lodashEs.range(1,8),o=>`row-start-${o}`),"row-start-auto"],regExp:"row-start-(\\d+|auto)"},gridRowEnd:{classes:[...lodashEs.map(lodashEs.range(1,8),o=>`row-end-${o}`),"row-end-auto"],regExp:"row-end-(\\d+|auto)"},gridAutoColumns:{classes:["auto-cols-auto","auto-cols-min","auto-cols-max","auto-cols-fr"],regExp:"auto-cols-(auto|min|max|fr)"},gridAutoRows:{classes:["auto-rows-auto","auto-rows-min","auto-rows-max","auto-rows-fr"],regExp:"auto-rows-(auto|min|max|fr)"},gap:{classes:lodashEs.map(CLASS_VALUES.indent,o=>`gap-${o}`),regExp:"gap-(px|\\d.\\d|\\d|\\[.*\\])"},gapX:{classes:lodashEs.map(CLASS_VALUES.indent,o=>`gap-x-${o}`),regExp:"gap-x-(px|\\d.\\d|\\d|\\[.*\\])"},gapY:{classes:lodashEs.map(CLASS_VALUES.indent,o=>`gap-y-${o}`),regExp:"gap-y-(px|\\d.\\d|\\d|\\[.*\\])"},justifyContent:{classes:["justify-start","justify-end","justify-center","justify-between","justify-around","justify-evenly"],regExp:"justify-(start|end|center|between|around|evenly)"},justifyItems:{classes:["justify-items-start","justify-items-end","justify-items-center","justify-items-stretch"],regExp:"justify-items-(start|end|center|stretch)"},justifySelf:{classes:["justify-self-auto","justify-self-start","justify-self-end","justify-self-center","justify-self-stretch"],regExp:"justify-self-(auto|start|end|center|stretch)"},placeContent:{classes:["place-content-center","place-content-start","place-content-end","place-content-between","place-content-around","place-content-evenly","place-content-stretch"],regExp:"place-content-(center|start|end|between|around|evenly|stretch)"},placeItems:{classes:["place-items-start","place-items-end","place-items-center","place-items-stretch"],regExp:"place-items-(start|end|center|stretch)"},placeSelf:{classes:["place-self-auto","place-self-start","place-self-end","place-self-center","place-self-stretch"],regExp:"place-self-(auto|start|end|center|stretch)"},alignContent:{classes:["content-center","content-start","content-end","content-between","content-around","content-evenly"],regExp:"content-(center|start|end|between|around|evenly)"},alignItems:{classes:["items-start","items-end","items-center","items-baseline","items-stretch"],regExp:"items-(start|end|center|baseline|stretch)"},alignSelf:{classes:["self-auto","self-start","self-end","self-center","self-stretch","self-baseline"],regExp:"self-(auto|start|end|center|stretch|baseline)"},backgroundClip:{classes:["bg-clip-border","bg-clip-padding","bg-clip-content","bg-clip-text"],regExp:"bg-clip-(border|padding|content|text)"},dropShadow:{classes:lodashEs.map(["sm","md","lg","xl","2xl","none"],o=>`drop-shadow-${o}`),regExp:"drop-shadow-(sm|md|lg|xl|2xl|none)"},backdropBlur:{classes:lodashEs.map(["none","sm","md","lg","xl","2xl","3xl"],o=>`backdrop-blur-${o}`),regExp:"backdrop-blur-(none|sm|md|lg|xl|2xl|3xl)"},backdropBrightness:{classes:lodashEs.map([0,50,75,90,95,100,105,110,125,150,200],o=>`backdrop-brightness-${o}`),regExp:"backdrop-brightness-(\\d+)"},backdropContrast:{classes:lodashEs.map([0,50,75,100,125,150,200],o=>`backdrop-contrast-${o}`),regExp:"backdrop-contrast-(\\d+)"},backdropGrayScale:{classes:["backdrop-grayscale-0","backdrop-grayscale"],regExp:"backdrop-grayscale(-0)?"},backdropHueRotate:{classes:lodashEs.map([0,15,30,60,90,180],o=>`backdrop-hue-rotate-${o}`),regExp:"-?backdrop-hue-rotate-(\\d+)"},backdropInvert:{classes:["backdrop-invert-0","backdrop-invert"],regExp:"backdrop-invert(-0)?"},backdropOpacity:{classes:lodashEs.map([0,5,10,20,25,30,40,50,60,70,75,80,90,95,100],o=>`backdrop-opacity-${o}`),regExp:"backdrop-opacity-(\\d+)"},backdropSaturate:{classes:lodashEs.map([0,50,100,150,200],o=>`backdrop-saturate-${o}`),regExp:"backdrop-saturate-(\\d+)"},backdropSepia:{classes:["backdrop-sepia-0, backdrop-sepia"],regExp:"backdrop-sepia(-0)?"},backgroundOrigin:{classes:["bg-origin-border","bg-origin-padding","bg-origin-content"],regExp:"bg-origin-(border|padding|content)"},transformOrigin:{classes:lodashEs.map(CLASS_VALUES.origin,o=>`origin-${o}`),regExp:"origin-(\\d+|\\S+)"},padding:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`p-${o}`),regExp:"p-(\\d+|\\S+|\\[.*\\])"},paddingX:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`px-${o}`),regExp:"px-(\\d+|\\S+|\\[.*\\])"},paddingY:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`py-${o}`),regExp:"py-(\\d+|\\S+|\\[.*\\])"},paddingTop:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`pt-${o}`),regExp:"pt-(\\d+|\\S+|\\[.*\\])"},paddingRight:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`pr-${o}`),regExp:"pr-(\\d+|\\S+|\\[.*\\])"},paddingBottom:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`pb-${o}`),regExp:"pb-(\\d+|\\S+|\\[.*\\])"},paddingLeft:{classes:lodashEs.map(CLASS_VALUES.padding,o=>`pl-${o}`),regExp:"pl-(\\d+|\\S+|\\[.*\\])"},textDecorationStyle:{classes:["decoration-solid","decoration-double","decoration-dotted","decoration-dashed","decoration-wavy"],regExp:"decoration-(solid|double|dotted|dashed|wavy)"},textDecorationThickness:{classes:lodashEs.map(["auto","from-font","0",1,2,4,8],o=>`decoration-${o}`),regExp:"decoration-(auto|from-font|\\d+|\\S+)"},fromColor:{classes:[],regExp:"from-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},margin:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`m-${o}`),regExp:"-?m-(\\d+|\\S+|\\[.*\\])"},marginX:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`mx-${o}`),regExp:"-?mx-(\\d+|\\S+|\\[.*\\])"},marginY:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`my-${o}`),regExp:"-?my-(\\d+|\\S+|\\[.*\\])"},marginTop:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`mt-${o}`),regExp:"-?mt-(\\d+|\\S+|\\[.*\\])"},marginRight:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`mr-${o}`),regExp:"-?mr-(\\d+|\\S+|\\[.*\\])"},marginBottom:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`mb-${o}`),regExp:"-?mb-(\\d+|\\S+|\\[.*\\])"},marginLeft:{classes:lodashEs.map(CLASS_VALUES.margin,o=>`ml-${o}`),regExp:"-?ml-(\\d+|\\S+|\\[.*\\])"},spaceX:{classes:lodashEs.map(CLASS_VALUES.space,o=>`space-x-${o}`),regExp:"-?space-x-(\\d+|\\S+|\\[.*\\])"},spaceY:{classes:lodashEs.map(CLASS_VALUES.space,o=>`space-y-${o}`),regExp:"-?space-y-(\\d+|\\S+|\\[.*\\])"},boxShadow:{classes:lodashEs.map(["sm","md","lg","xl","2xl","inner","none"],o=>`shadow-${o}`),regExp:"shadow-(sm|md|lg|xl|2xl|inner|none)"},minWidth:{classes:["min-w-0","min-w-full","min-w-min","min-w-max","min-w-fit"],regExp:"min-w-(\\d+|\\S+|\\[.*\\])"},maxWidth:{classes:lodashEs.map(CLASS_VALUES.maxWidth,o=>`max-w-${o}`),regExp:"max-w-(\\d+|\\S+|\\[.*\\])"},width:{classes:lodashEs.map([...CLASS_VALUES.width,"full","screen","min","max","fit"],o=>`w-${o}`),regExp:"w-(\\d+.\\d+|\\d+|px|auto|full|screen|min|max|fit|\\[.*\\])$"},minHeight:{classes:["min-h-0","min-h-full","min-h-screen","min-h-min","min-h-max","min-h-fit"],regExp:"min-h-(\\d+|\\S+|\\[.*\\])"},maxHeight:{classes:lodashEs.map(CLASS_VALUES.maxHeight,o=>`max-h-${o}`),regExp:"max-h-(\\d+|\\S+|\\[.*\\])"},height:{classes:lodashEs.map(CLASS_VALUES.height,o=>`h-${o}`),regExp:"h-(\\d+.\\d+|\\d+|px|auto|full|screen|min|max|fit|\\[.*\\])"},fontFamily:{classes:["font-heading","font-body","font-sans","font-serif","font-mono"],regExp:"font-(heading|body|sans|serif|mono)"},textAlign:{classes:["text-left","text-center","text-right","text-justify"],regExp:"text-(left|center|right|justify)"},textOverflow:{classes:["truncate","text-ellipsis","text-clip"],regExp:"truncate|text-ellipsis|text-clip"},verticalAlign:{classes:["align-baseline","align-top","align-middle","align-bottom","align-text-top","align-text-bottom","align-sub","align-super"],regExp:"align-(baseline|top|middle|bottom|text-top|text-bottom|sub|super)"},fontSize:{classes:["text-xs","text-sm","text-base","text-lg","text-xl","text-2xl","text-3xl","text-4xl","text-5xl","text-6xl","text-7xl","text-8xl","text-9xl"],regExp:"text-(\\d+|\\S+|\\[.*\\])"},fontSmoothing:{classes:["antialiased","subpixel-antialiased"],regExp:"antialiased|subpixel-antialiased"},fontStyle:{classes:["italic","not-italic"],regExp:"not-italic|italic"},fontWeight:{classes:["font-thin","font-extralight","font-light","font-normal","font-medium","font-semibold","font-bold","font-extrabold","font-black"],regExp:"font-(thin|extralight|light|normal|medium|semibold|bold|extrabold|black)"},fontVariantNum:{classes:["normal-nums","ordinal","diagonal-fractions","stacked-fractions","tabular-nums","oldstyle-nums","proportional-nums","lining-nums","slashed-zero"],regExp:"normal-nums|ordinal|diagonal-fractions|stacked-fractions|tabular-nums|oldstyle-nums|proportional-nums|lining-nums|slashed-zero"},letterSpacing:{classes:["tracking-tighter","tracking-tight","tracking-normal","tracking-wide","tracking-wider","tracking-widest"],regExp:"-?tracking-(tighter|tight|normal|wide|wider|widest|\\[.*\\])"},lineHeight:{classes:["leading-none","leading-tight","leading-snug","leading-normal","leading-relaxed","leading-loose","leading-3","leading-4","leading-5","leading-6","leading-7","leading-8","leading-9","leading-10"],regExp:"leading-(none|tight|snug|normal|relaxed|loose|\\[.*\\]|\\d+)"},listStyleType:{classes:["list-none","list-disc","list-decimal"],regExp:"list-(none|disc|decimal)"},listStylePosition:{classes:["list-inside","list-outside"],regExp:"list-(inside|outside)"},textUnderlineOffset:{classes:["underline-offset-auto","underline-offset-0","underline-offset-1","underline-offset-2","underline-offset-4","underline-offset-8"],regExp:"underline-offset-(auto|\\d+|\\S+)"},textDecoration:{classes:["underline","overline","line-through","no-underline"],regExp:"underline|overline|line-through|no-underline"},textDecorationColor:{classes:[],regExp:"decoration-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},textTransform:{classes:["uppercase","lowercase","capitalize","normal-case"],regExp:"uppercase|lowercase|capitalize|normal-case"},textIndent:{classes:lodashEs.map(CLASS_VALUES.indent,o=>`indent-${o}`),regExp:"-?indent-(\\d+|\\S+)"},whitespace:{classes:["whitespace-normal","whitespace-no-wrap","whitespace-pre","whitespace-pre-line","whitespace-pre-wrap"],regExp:"whitespace-(normal|no-wrap|pre|pre-line|pre-wrap)"},wordBreak:{classes:["break-normal","break-words","break-all"],regExp:"break-(normal|words|all)"},content:{classes:["content-none"],regExp:"content-none"},backgroundAttachment:{classes:lodashEs.map(["fixed","local","scroll"],o=>`bg-${o}`),regExp:"bg-(fixed|local|scroll)"},backgroundColor:{classes:[],regExp:"bg-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},backgroundPosition:{classes:["bg-bottom","bg-center","bg-left","bg-left-bottom","bg-left-top","bg-right","bg-right-bottom","bg-right-top","bg-top"],regExp:"bg-(bottom|center|left|left-bottom|left-top|right|right-bottom|right-top|top)"},backgroundRepeat:{classes:["bg-repeat","bg-repeat-x","bg-repeat-y","bg-no-repeat","bg-repeat-round","bg-repeat-space"],regExp:"bg-(repeat|repeat-x|repeat-y|no-repeat|repeat-round|repeat-space)"},backgroundSize:{classes:["bg-auto","bg-cover","bg-contain"],regExp:"bg-(auto|cover|contain)"},backgroundGradient:{classes:["bg-gradient-none","bg-gradient-to-t","bg-gradient-to-tr","bg-gradient-to-r","bg-gradient-to-br","bg-gradient-to-b","bg-gradient-to-bl","bg-gradient-to-l","bg-gradient-to-tl"],regExp:"bg-gradient-(none|to-(t|tr|r|br|b|bl|l|tl))"},viaColor:{classes:[],regExp:"via-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},toColor:{classes:[],regExp:"to-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},position:{classes:["static","fixed","absolute","relative","sticky"],regExp:"(static|fixed|absolute|relative|sticky)"},borderRadiusTopLeft:{classes:["rounded-tl",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-tl-${o}`)],regExp:"rounded-tl-?(\\d+|\\S+)?"},borderRadiusTopRight:{classes:["rounded-tr",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-tr-${o}`)],regExp:"rounded-tr-?(\\d+|\\S+)?"},borderRadiusBottomRight:{classes:["rounded-br",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-br-${o}`)],regExp:"rounded-br-?(\\d+|\\S+)?"},borderRadiusBottomLeft:{classes:["rounded-bl",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-bl-${o}`)],regExp:"rounded-bl-?(\\d+|\\S+)?"},borderRadiusTop:{classes:["rounded-t",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-t-${o}`)],regExp:"rounded-t-?(\\d+|\\S+)?"},borderRadiusRight:{classes:["rounded-r",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-r-${o}`)],regExp:"rounded-r-?(\\d+|\\S+)?"},borderRadiusBottom:{classes:["rounded-b",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-b-${o}`)],regExp:"rounded-b-?(\\d+|\\S+)?"},borderRadiusLeft:{classes:["rounded-l",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-l-${o}`)],regExp:`(rounded-l-(${CLASS_VALUES.borderRadius.join("|")})|rounded-l$)`},borderRadius:{classes:["rounded",...lodashEs.map(CLASS_VALUES.borderRadius,o=>`rounded-${o}`)],regExp:`(rounded-(${CLASS_VALUES.borderRadius.join("|")}$)|rounded)`},borderX:{classes:["border-x",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-x-${o}`)],regExp:"border-x-?(\\d+|\\S+|\\[.*\\])?"},borderY:{classes:["border-y",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-y-${o}`)],regExp:"border-y-?(\\d+|\\S+|\\[.*\\])?"},borderTop:{classes:["border-t",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-t-${o}`)],regExp:"border-t-?(\\d+|\\S+|\\[.*\\])?"},borderRight:{classes:["border-r",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-r-${o}`)],regExp:"border-r-?(\\d+|\\S+|\\[.*\\])?"},borderBottom:{classes:["border-b",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-b-${o}`)],regExp:"border-b-?(\\d+|\\S+|\\[.*\\])?"},borderLeft:{classes:["border-l",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-l-${o}`)],regExp:"border-l-?(\\d+|\\S+|\\[.*\\])?"},borderColor:{classes:[],regExp:"^border-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\w+-\\d+|\\[#[0-9a-fA-F]+\\])$"},border:{classes:["border",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-${o}`)],regExp:"^border(-\\d+|\\[\\d+px\\])?$"},order:{classes:lodashEs.map([...lodashEs.range(0,13),"first","last","none"],o=>`order-${o}`),regExp:"-?order-(\\d+|first|last|none)"},divideXWidth:{classes:lodashEs.map(["0",2,4,8],o=>`divide-x-${o}`),regExp:"divide-x-(\\d+|\\[.*\\])"},divideYWidth:{classes:lodashEs.map(["0",2,4,8],o=>`divide-y-${o}`),regExp:"divide-y-(\\d+|\\[.*\\])"},divideColor:{classes:[],regExp:"divide-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},divideStyle:{classes:lodashEs.map(["solid","dashed","dotted","double","none"],o=>`divide-${o}`),regExp:"divide-(solid|dashed|dotted|double|none)"},outlineWidth:{classes:lodashEs.map([0,1,2,4,8],o=>`outline-${o}`),regExp:"outline-(\\d+)"},outlineOffset:{classes:lodashEs.map([0,1,2,4,8],o=>`outline-offset-${o}`),regExp:"outline-offset-(\\d+)"},outlineColor:{classes:[],regExp:"outline-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},ringWidth:{classes:lodashEs.map([0,1,2,4,8,"inset"],o=>`ring-${o}`),regExp:"ring-(\\d+|inset)"},ringOffsetWidth:{classes:lodashEs.map([0,1,2,4,8],o=>`ring-offset-${o}`),regExp:"ring-offset-(\\d+)"},ringOffsetColor:{classes:[],regExp:"ring-offset-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},ringColor:{classes:[],regExp:"ring-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},boxShadowColor:{classes:[],regExp:"shadow-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},opacity:{classes:lodashEs.map([0,5,10,20,25,30,40,50,60,70,75,80,90,95,100],o=>`opacity-${o}`),regExp:"opacity-(\\d+|\\[.*\\])"},mixBlendMode:{classes:lodashEs.map(CLASS_VALUES.blendEffect,o=>`mix-blend-${o}`),regExp:"mix-blend-(\\d+|\\S+)"},bgBlendMode:{classes:lodashEs.map(CLASS_VALUES.blendEffect,o=>`bg-blend-${o}`),regExp:"bg-blend-(\\d+|\\S+)"},blur:{classes:lodashEs.map(["none","sm","md","lg","xl","2xl","3xl"],o=>`blur-${o}`),regExp:"blur-(none|sm|md|lg|xl|2xl|3xl)"},brightness:{classes:lodashEs.map([0,50,75,90,95,100,105,110,125,150,200],o=>`brightness-${o}`),regExp:"brightness-(\\d+)"},contrast:{classes:lodashEs.map([0,50,75,100,125,150,200],o=>`contrast-${o}`),regExp:"contrast-(\\d+)"},grayScale:{classes:["grayscale-0","grayscale"],regExp:"grayscale(-0)?"},hueRotate:{classes:lodashEs.map([0,15,30,60,90,180],o=>`hue-rotate-${o}`),regExp:"-?hue-rotate-(\\d+)"},invert:{classes:["invert-0","invert"],regExp:"invert(-0)?"},saturate:{classes:lodashEs.map([0,50,100,150,200],o=>`saturate-${o}`),regExp:"saturate-(\\d+)"},sepia:{classes:["sepia-0","sepia"],regExp:"sepia(-0)?"},transition:{classes:["transition-none","transition-all","transition-colors","transition-opacity","transition-shadow","transition-transform"],regExp:"transition-(none|all|colors|opacity|shadow|transform)"},duration:{classes:lodashEs.map([75,100,150,200,300,500,700,1e3],o=>`duration-${o}`),regExp:"duration-(\\d+|\\[.*\\])"},transitionEase:{classes:["ease-linear","ease-in","ease-out","ease-in-out"],regExp:"eas(e-linear|e-in|e-out|e-in-out)"},transitionDelay:{classes:lodashEs.map([75,100,150,200,300,500,700,1e3],o=>`delay-${o}`),regExp:"delay-(\\d+|\\[.*\\])"},animation:{classes:["animation-none","animation-spin","animation-ping"],regExp:"animation-(none|spin|ping)"},scaleX:{classes:lodashEs.map(CLASS_VALUES.scale,o=>`scale-x-${o}`),regExp:"-?scale-x-(\\d+|\\S+|\\[.*\\])"},scaleY:{classes:lodashEs.map(CLASS_VALUES.scale,o=>`scale-y-${o}`),regExp:"-?scale-y-(\\d+|\\S+|\\[.*\\])"},scale:{classes:lodashEs.map(CLASS_VALUES.scale,o=>`scale-${o}`),regExp:"-?scale-(\\d+|\\S+|\\[.*\\])"},rotate:{classes:lodashEs.map([0,1,2,3,6,12,45,90,180],o=>`rotate-${o}`),regExp:"-?rotate-(\\d+|\\S+|\\[.*\\])"},translateX:{classes:lodashEs.map([0,"px","0.5",1],o=>`translate-x-${o}`),regExp:"-?translate-x-(\\d+|\\S+|\\[.*\\])"},translateY:{classes:lodashEs.map([0,"px","0.5",1],o=>`translate-y-${o}`),regExp:"-?translate-y-(\\d+|\\S+|\\[.*\\])"},skewX:{classes:lodashEs.map([0,1,2,3,6,12],o=>`skew-x-${o}`),regExp:"-?skew-x-(\\d+|\\S+|\\[.*\\])"},skewY:{classes:lodashEs.map([0,1,2,3,6,12],o=>`skew-y-${o}`),regExp:"-?skew-y-(\\d+|\\S+|\\[.*\\])"},accentColor:{classes:[],regExp:"accent-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},appearance:{classes:["appearance-none"],regExp:"appearance-none"},cursor:{classes:["cursor-auto","cursor-default","cursor-pointer","cursor-wait","cursor-text","cursor-move","cursor-help","cursor-not-allowed"],regExp:"cursor-(auto|default|pointer|wait|text|move|help|not-allowed)"},caretColor:{classes:[],regExp:"caret-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},pointerEvents:{classes:["pointer-events-none","pointer-events-auto"],regExp:"pointer-events-(none|auto)"},userSelect:{classes:["select-none","select-text","select-all","select-auto"],regExp:"select-(none|text|all|auto)"},fill:{classes:[],regExp:"caret-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},stroke:{classes:[],regExp:"caret-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},strokeWidth:{classes:["stroke-0","stroke-1","stroke-2"],regExp:"stroke-(\\d+|\\[.*\\])"}},colorOptions={backgroundColor:"bg",textColor:"text",borderColor:"border",boxShadowColor:"shadow",outlineColor:"outline",divideColor:"divide",fromColor:"from",viaColor:"via",toColor:"to",ringColor:"ring",ringOffsetColor:"ring-offset"},soloColors=["current","inherit","transparent","black","white"],shadedColors=["slate","gray","zinc","neutral","stone","red","orange","amber","yellow","lime","green","emerald","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose"],shades=["50","100","200","300","400","500","600","700","800","900"],colorKeys=lodashEs.map(lodashEs.values(colorOptions),o=>o),ALL_COLORS=lodashEs.flattenDeep([...lodashEs.map(soloColors,o=>lodashEs.flatten(lodashEs.map(colorKeys,n=>`${n}-${o}`))),...lodashEs.map(shadedColors,o=>lodashEs.flattenDeep(lodashEs.map(colorKeys,n=>lodashEs.flattenDeep(lodashEs.map(shades,a=>`${n}-${o}-${a}`)))))]),ALL_TW_CLASSES=lodashEs.map(lodashEs.flattenDeep(lodashEs.values(CLASSES_LIST).map(o=>o.classes).concat(ALL_COLORS)),o=>({name:o})),useFuseSearch=()=>{const o=useThemeOptions(),n=React.useMemo(()=>{let a=[];if(o.colors){const l=lodashEs.flattenDeep(lodashEs.map(o.colors,({items:r})=>lodashEs.keys(r)));a=lodashEs.flattenDeep(lodashEs.map(l,r=>lodashEs.flatten(lodashEs.map(colorKeys,i=>`${i}-${r}`))))}return o.fontFamily&&(a=[...a,...lodashEs.map(lodashEs.keys(o.fontFamily),l=>`${l}`)]),lodashEs.map(a,l=>({name:l}))},[o]);return React.useMemo(()=>new Fuse([...ALL_TW_CLASSES,...n],{isCaseSensitive:!1,threshold:.2,minMatchCharLength:2,keys:["name"]}),[n])},useTailwindClassList=()=>{const o=useThemeOptions(),n=React.useMemo(()=>{if(o.colors){const r=lodashEs.flattenDeep(lodashEs.map(o.colors,({items:i})=>lodashEs.keys(i)));lodashEs.each(CLASSES_LIST,(i,c)=>{lodashEs.set(CLASSES_LIST,`${c}.regExp`,i.regExp.replace("__THEME_COLORS_REGEXP__",r.join("|")))})}return CLASSES_LIST},[o]),a=React.useCallback((r,i)=>{const c=lodashEs.get(n,`${r}.regExp`,"");return i.match(new RegExp(c))},[n]),l=React.useCallback((r,i=[])=>lodashEs.get(n,`${r}.classes`,i),[n]);return{match:a,getClasses:l}};function getMqForCls(o){if(lodashEs.isEmpty(o.trim()))return"";const n=o.match(/sm:|md:|lg:|xl:|2xl:/g);return lodashEs.get(n,0,"xs").replace(":","")}function getModForCls(o){const n=lodashEs.map(MODIFIERS,l=>`${l}:`).join("|"),a=new RegExp(n,"g");return lodashEs.get(a.exec(o.trim()),0,"").replace(":","")}function getPureClsName(o){return o.trim().split(":").pop()||""}const memoizedProps={};function getPropertyForClass(o){if(lodashEs.isEmpty(o))return"";if(memoizedProps[o])return memoizedProps[o];let n="";for(const a in CLASSES_LIST){const l=lodashEs.get(CLASSES_LIST,`${a}.regExp`,"");if(new RegExp(l,"g").test(o)){n=a,memoizedProps[o]=n;break}}return n}function constructClassObject(o){return lodashEs.isEmpty(o)?null:{dark:lodashEs.startsWith(o,"dark:"),mq:getMqForCls(o),mod:getModForCls(o),cls:getPureClsName(o),fullCls:o,property:getPropertyForClass(o)}}function generateFullClsName(o){let n="";return o.dark&&(n+="dark:"),o.mq.toLowerCase()!=="xs"&&(n+=`${o.mq}:`),o.mod&&(n+=`${o.mod}:`),n+=o.cls,n}function orderClassesByBreakpoint(o){o=o.replace(/\s+/g," ");const n=o.split(" ").map(constructClassObject),a=["xs","sm","md","lg","xl","2xl"];return n.sort((l,r)=>a.indexOf(l.mq)-a.indexOf(r.mq)).map(l=>l.fullCls).join(" ")}function removeDuplicateClasses(o){if(o=o.replace(/\s+/g," "),!o)return"";const n=["xs","sm","md","lg","xl","2xl"],a=o.split(" ").map(constructClassObject);let l=o;if(a.length===1)return a[0].fullCls;for(const r of a){const i=r.property,c=n.indexOf(r.mq);for(let d=c+1;d<n.length;d++){const p=n[d],u=a.find(m=>m.property===i&&m.mq===p);if(u&&u.cls===r.cls)l=l.replace(u.fullCls,"");else if(u&&u.cls!==r.cls)break}}return l.replace(/\s+/g," ").trim()}const selectedStylingBlocksAtom=jotai.atom([]);selectedStylingBlocksAtom.debugLabel="selectedStylingBlocksAtom";const useSelectedStylingBlocks=()=>jotai.useAtom(selectedStylingBlocksAtom),addClassesToBlocksAtom=jotai.atom(null,(o,n,{blockIds:a,newClasses:l})=>{const r=lodashEs.filter(o(pageBlocksAtomsAtom),c=>a.includes(o(c)._id)),i=lodashEs.first(o(selectedStylingBlocksAtom));return lodashEs.map(r,c=>{const d=o(c),p=lodashEs.get(d,i.prop,`${getSplitClasses.STYLES_KEY},`),{classes:u}=getSplitClasses.getSplitChaiClasses(p);return{ids:[d._id],props:{[i.prop]:`${getSplitClasses.STYLES_KEY},${orderClassesByBreakpoint(removeDuplicateClasses(tailwindMerge.twMerge(u,l)))}`}}})}),useAddClassesToBlocks=()=>{const o=jotai.useSetAtom(addClassesToBlocksAtom),{updateBlocks:n,updateBlocksRuntime:a}=useBlocksStoreUndoableActions();return React.useCallback((l,r,i=!1)=>{const c=o({blockIds:l,newClasses:r});if(!i){a(l,c[0].props);return}n(l,c[0].props)},[o,n,a])},LANGUAGES={ab:"Abkhazian",aa:"Afar",af:"Afrikaans",ak:"Akan",sq:"Albanian",am:"Amharic",ar:"Arabic",an:"Aragonese",hy:"Armenian",as:"Assamese",av:"Avaric",ae:"Avestan",ay:"Aymara",az:"Azerbaijani",bm:"Bambara",ba:"Bashkir",eu:"Basque",be:"Belarusian",bn:"Bengali",bh:"Bihari",bi:"Bislama",bs:"Bosnian",br:"Breton",bg:"Bulgarian",my:"Burmese",ca:"Catalan",ch:"Chamorro",ce:"Chechen",ny:"Chichewa",zh:"Chinese","zh-Hans":"Chinese (Simplified)","zh-Hant":"Chinese (Traditional)",cv:"Chuvash",kw:"Cornish",co:"Corsican",cr:"Cree",hr:"Croatian",cs:"Czech",da:"Danish",dv:"Maldivian",nl:"Dutch",dz:"Dzongkha",en:"English",eo:"Esperanto",et:"Estonian",ee:"Ewe",fo:"Faroese",fj:"Fijian",fi:"Finnish",fr:"French",ff:"Fula, Pular",gl:"Galician",gd:"Gaelic (Scottish)",gv:"Manx",ka:"Georgian",de:"German",el:"Greek",kl:"Kalaallisut",gn:"Guarani",gu:"Gujarati",ht:"Haitian Creole",ha:"Hausa",he:"Hebrew",hz:"Herero",hi:"Hindi",ho:"Hiri Motu",hu:"Hungarian",is:"Icelandic",io:"Ido",ig:"Igbo",id:"Indonesian",ia:"Interlingua",ie:"Interlingue",iu:"Inuktitut",ik:"Inupiak",ga:"Irish",it:"Italian",ja:"Japanese",jv:"Javanese",kn:"Kannada",kr:"Kanuri",ks:"Kashmiri",kk:"Kazakh",km:"Khmer",ki:"Kikuyu",rw:"Kinyarwanda",rn:"Kirundi",ky:"Kyrgyz",kv:"Komi",kg:"Kongo",ko:"Korean",ku:"Kurdish",kj:"Kwanyama",lo:"Lao",la:"Latin",lv:"Latvian",li:"Limburgish",ln:"Lingala",lt:"Lithuanian",lu:"Luga-Katanga",lg:"Luganda, Ganda",lb:"Luxembourgish",mk:"Macedonian",mg:"Malagasy",ms:"Malay",ml:"Malayalam",mt:"Maltese",mi:"Maori",mr:"Marathi",mh:"Marshallese",mo:"Moldavian",mn:"Mongolian",na:"Nauru",nv:"Navajo",ng:"Ndonga",nd:"Northern Ndebele",ne:"Nepali",no:"Norwegian",nb:"Norwegian bokmål",nn:"Norwegian nynorsk",ii:"Sichuan Yi",oc:"Occitan",oj:"Ojibwe",cu:"Old Church Slavonic",or:"Oriya",om:"Oromo",os:"Ossetian",pi:"Pāli",ps:"Pashto, Pushto",fa:"Persian (Farsi)",pl:"Polish",pt:"Portuguese",pa:"Punjabi (Eastern)",qu:"Quechua",rm:"Romansh",ro:"Romanian",ru:"Russian",se:"Sami",sm:"Samoan",sg:"Sango",sa:"Sanskrit",sr:"Serbian",sh:"Serbo-Croatian",st:"Sesotho",tn:"Setswana",sn:"Shona",sd:"Sindhi",si:"Sinhalese",ss:"Swati",sk:"Slovak",sl:"Slovenian",so:"Somali",nr:"Southern Ndebele",es:"Spanish",su:"Sundanese",sw:"Swahili (Kiswahili)",sv:"Swedish",tl:"Tagalog",ty:"Tahitian",tg:"Tajik",ta:"Tamil",tt:"Tatar",te:"Telugu",th:"Thai",bo:"Tibetan",ti:"Tigrinya",to:"Tonga",ts:"Tsonga",tr:"Turkish",tk:"Turkmen",tw:"Twi",ug:"Uyghur",uk:"Ukrainian",ur:"Urdu",uz:"Uzbek",ve:"Venda",vi:"Vietnamese",vo:"Volapük",wa:"Wallon",cy:"Welsh",wo:"Wolof",fy:"Western Frisian",xh:"Xhosa",yi:"Yiddish",yo:"Yoruba",za:"Zhuang, Chuang",zu:"Zulu"},languageAtom=jotai.atom("");languageAtom.debugLabel="selectedLanguageAtom";const useLanguages=()=>{const o=useBuilderProp("languages",[]),n=useBuilderProp("fallbackLang","en"),[a,l]=jotai.useAtom(languageAtom),r=i=>{l(n===i?"":i)};return{languages:o==null?void 0:o.filter(i=>i!==n),fallbackLang:n,selectedLang:a,setSelectedLang:r}},updatePropsForLanguage=(o,n,a)=>{const l=runtime.getRegisteredChaiBlock(lodashEs.get(a,"_type"));if(!l)return o;const r={...o};return lodashEs.forEach(lodashEs.keys(o),i=>{if(lodashEs.includes(lodashEs.get(l,"i18nProps",[]),i)&&!lodashEs.isEmpty(n)){const c=`${i}-${n}`;lodashEs.set(r,c,o[i]),lodashEs.unset(r,i)}}),r},useUpdateBlocksProps=()=>{const{updateBlocks:o}=useBlocksStoreUndoableActions(),{selectedLang:n}=useLanguages(),a=useSelectedBlock();return React.useCallback((l,r,i)=>{const c=updatePropsForLanguage(r,n,a);o(l,c,i)},[n,a,o])},useUpdateMultipleBlocksProps=()=>{const{updateMultipleBlocksProps:o}=useBlocksStoreUndoableActions();return React.useCallback(n=>{o(n)},[o])},useFakeStreamEffect=()=>{const{updateBlocksRuntime:o}=useBlocksStoreUndoableActions();return React.useCallback(async(n,a,l=30)=>{const r=lodashEs.keys(lodashEs.omit(a,["_id"]));for(const i of r){const c=a[i];if(lodashEs.isString(c)){const d=lodashEs.chunk(c.split(""),12);let p="";o([n],{[i]:""});for(let u=0;u<d.length;u++)p+=d[u].join(""),o([n],{[i]:p}),await new Promise(m=>setTimeout(m,l))}}},[o])},useStreamMultipleBlocksProps=()=>{const{updateMultipleBlocksProps:o}=useBlocksStoreUndoableActions(),n=useFakeStreamEffect();return React.useCallback(async a=>{for(const l of a)await n(l._id,l);o(a)},[n,o])},useUpdateBlocksPropsRealtime=()=>{const{updateBlocksRuntime:o}=useBlocksStoreUndoableActions(),{selectedLang:n}=useLanguages(),a=useSelectedBlock();return React.useCallback((l,r)=>{const i=updatePropsForLanguage(r,n,a);o(l,i)},[n,a,o])};function getChildBlocks(o,n,a){a.push(lodashEs.find(o,{_id:n}));const l=lodashEs.filter(o,{_parent:n});for(const r of l)a.push(...getBlockWithChildren(r._id,o));return a}const getBlockWithChildren=(o,n)=>{let a=[];return a=lodashEs.flattenDeep([...a,...getChildBlocks(n,o,a)]),a},pickOnlyAIProps=(o,n)=>lodashEs.compact(o.map(a=>{const l=["_id","_type","_parent"],r=lodashEs.pick(a,l),i=runtime.getRegisteredChaiBlock(a._type),c={},d=lodashEs.get(i,"aiProps",[]);for(const p in a)l.includes(p)||d.includes(p)&&(c[p]=lodashEs.get(a,`${p}-${n}`,a[p]));return lodashEs.isEmpty(c)?!1:(lodashEs.has(r,"_parent")&&lodashEs.isEmpty(r._parent)&&delete r._parent,{...r,...c})})),addLangToPrompt=(o,n,a)=>!n||a!=="content"?o:`${o}. Generate content in ${lodashEs.get(LANGUAGES,n,n)} language.`,askAiProcessingAtom=jotai.atom(!1),useAskAi=()=>{const[o,n]=jotai.useAtom(askAiProcessingAtom),[a,l]=React.useState(null),r=useBuilderProp("askAiCallBack",null),i=useStreamMultipleBlocksProps(),c=useUpdateMultipleBlocksProps(),[d]=useBlocksStore(),{selectedLang:p,fallbackLang:u}=useLanguages(),m=p.length?p:u,g=(h,x)=>{const f=lodashEs.cloneDeep(x.find(b=>b._id===h));for(const b in f){const j=f[b];if(typeof j=="string"&&lodashEs.startsWith(j,getSplitClasses.STYLES_KEY)){const{baseClasses:S,classes:w}=getSplitClasses.getSplitChaiClasses(j);f[b]=lodashEs.compact(lodashEs.flattenDeep([S,w])).join(" ")}else b!=="_id"&&delete f[b]}return f};return{askAi:React.useCallback(async(h,x,f,b)=>{if(r){n(!0),l(null);try{const j=p===u?"":p,S=h==="content"?pickOnlyAIProps(lodashEs.cloneDeep(getBlockWithChildren(x,d)),p):[g(x,d)],w=await r(h,addLangToPrompt(f,m,h),S,j),{blocks:v,error:k}=w;if(k){l(k);return}if(h==="styles"){const C=v.map(B=>{for(const E in B)E!=="_id"&&(B[E]=`${getSplitClasses.STYLES_KEY},${B[E]}`);return B});c(C)}else i(v);b&&b(w)}catch(j){l(j)}finally{n(!1),b&&b()}}},[r,n,p,u,d,m,c,i]),loading:o,error:a}},useAiAssistant=()=>{const[,o]=useRightPanel();return React.useCallback(n=>{o(n?"ai":"block")},[o])};let lastHighlighted=null;const useBlockHighlight=()=>{const[o]=jotai.useAtom(canvasIframeAtom),n=React.useMemo(()=>{var r;return(o==null?void 0:o.contentDocument)||((r=o==null?void 0:o.contentWindow)==null?void 0:r.document)},[o]);return{highlightBlock:React.useCallback(r=>{if(n)if(lastHighlighted&&lastHighlighted.removeAttribute("data-highlighted"),typeof r!="string")r.setAttribute("data-highlighted","true"),lastHighlighted=r;else if(typeof r=="string"){const i=n.querySelector(`[data-block-id="${r}"]`);i&&(i.setAttribute("data-highlighted","true"),lastHighlighted=i)}else lastHighlighted=null},[n]),clearHighlight:()=>{lastHighlighted&&(lastHighlighted.removeAttribute("data-highlighted"),lastHighlighted=null)},lastHighlighted}},partialBlocksStoreAtom=atom({}),partialBlocksLoadingStateAtom=atom({}),usePartailBlocksStore=()=>{const[o,n]=useAtom(partialBlocksStoreAtom),a=React.useCallback(r=>lodashEs.get(o,r,[]),[o]),l=React.useCallback(()=>n({}),[n]);return{getPartailBlocks:a,reset:l}},useWatchPartailBlocks=()=>{const[o]=useBlocksStore(),[n,a]=useAtom(partialBlocksStoreAtom),[l,r]=useAtom(partialBlocksLoadingStateAtom),i=useBuilderProp("getPartialBlockBlocks",async d=>[]),c=React.useMemo(()=>o.filter(d=>d._type==="PartialBlock"||d._type==="GlobalBlock").map(d=>lodashEs.get(d,"partialBlockId",lodashEs.get(d,"globalBlock",""))),[o]);React.useEffect(()=>{lodashEs.forEach(c,d=>{lodashEs.has(n,d)||lodashEs.get(l,`${d}.loading`,!1)||(r(p=>({...p,[d]:{loading:!0,error:null}})),i(d).then(p=>{a(u=>({...u,[d]:p})),r(u=>({...u,[d]:{loading:!1,error:null}}))}).catch(p=>{r(u=>({...u,[d]:{loading:!1,error:p.message}}))}))})},[i,n,l,a,r,c])},partialBlocksListAtom=atom({}),usePartialBlocksList=()=>{const[o,n]=React.useState(!1),[a,l]=React.useState(null),[r,i]=useAtom(partialBlocksListAtom),c=useBuilderProp("getPartialBlocks",async()=>[]),d=React.useCallback(async()=>{n(!0),l(null);try{const p=await c();i(p),n(!1)}catch(p){l(p instanceof Error?p.message:"Failed to fetch partial blocks"),n(!1)}},[c,i]);return React.useEffect(()=>{d()},[]),{data:r,isLoading:o,refetch:d,error:a}},useBuilderReset=()=>{const o=jotai.useSetAtom(historyStatesAtom),{clear:n}=useUndoManager(),[,a]=useSelectedBlockIds(),{clearHighlight:l}=useBlockHighlight(),[,r]=useSelectedStylingBlocks(),[,i]=useAtom(aiAssistantActiveAtom),{reset:c}=usePartailBlocksStore();return()=>{a([]),r([]),l(),n(),i(!1),o({undoCount:0,redoCount:0}),c()}},canvasZoomAtom=atomWithStorage("canvasZoom",100),useCanvasZoom=()=>jotai.useAtom(canvasZoomAtom),codeEditorAtom=jotai.atom(null),useCodeEditor=()=>jotai.useAtom(codeEditorAtom),cutBlockIdsAtom=jotai.atom([]),useCutBlockIds=()=>{const[o,n]=jotai.useAtom(cutBlockIdsAtom),a=jotai.useSetAtom(copiedBlockIdsAtom),l=React.useCallback(r=>{n(r),a([])},[n,a]);return[o,l]},copiedBlockIdsAtom=jotai.atom([]),useCopyBlockIds=()=>{const[o]=useBlocksStore(),[n,a]=jotai.useAtom(copiedBlockIdsAtom),l=jotai.useSetAtom(cutBlockIdsAtom),r=React.useCallback(async i=>{try{a(i),l([]);const c={_chai_copied_blocks:i.flatMap(d=>getDuplicatedBlocks(o,d,null))};await navigator.clipboard.writeText(JSON.stringify(c))}catch(c){console.error("Failed to copy blocks to clipboard:",c)}},[a,l,o]);return[n,r]},useCopyToClipboard=()=>{const[o,n]=React.useState(null),a=React.useCallback(async l=>{if(!(navigator!=null&&navigator.clipboard))return console.warn("Clipboard not supported"),!1;try{return await navigator.clipboard.writeText(l),n(l),!0}catch(r){return console.warn("Copy failed",r),n(null),!1}},[]);return[o,a]},darkModeAtom=atomWithStorage("darkMode",!1),useDarkMode=()=>{const[o,n]=jotai.useAtom(darkModeAtom);return[o,n]},useDuplicateBlocks=()=>{const[o]=useBlocksStore(),[,n]=useSelectedBlockIds(),{addBlocks:a}=useBlocksStoreUndoableActions();return React.useCallback((l,r=null)=>{const i=[];lodashEs.each(l,c=>{const d=o.find(h=>h._id===c);r?r==="root"&&(r=null):r=d._parent;const m=lodashEs.filter(o,h=>lodashEs.isString(r)?h._parent===r:!h._parent).indexOf(d)+1,g=getDuplicatedBlocks(o,c,r);a(g,r,m),i.push(lodashEs.get(g,"0._id",""))}),n(i)},[o,n])},hiddenBlockIdsAtom=jotai.atom([]),useHiddenBlockIds=()=>{const[o,n]=jotai.useAtom(hiddenBlockIdsAtom),a=React.useCallback(l=>{n(r=>lodashEs.includes(r,l)?lodashEs.without(r,l):[...r,l])},[n]);return[o,n,a]},highlightBlockIdAtom=jotai.atom(""),useHighlightBlockId=()=>jotai.useAtom(highlightBlockIdAtom),useCanPaste=()=>{const[o]=useBlocksStore();return(n,a)=>{var i;const l=((i=lodashEs.find(o,{_id:a}))==null?void 0:i._type)||null,r=lodashEs.first(n.map(c=>{var d;return(d=lodashEs.find(o,{_id:c}))==null?void 0:d._type}));return canAcceptChildBlock(l,r)}},useMoveCutBlocks=()=>{const o=jotai.useAtomValue(presentBlocksAtom),{moveBlocks:n}=useBlocksStoreUndoableActions();return React.useCallback((a,l)=>{const r=Array.isArray(l)?l[0]:l;if(l==="root"){const i=o==null?void 0:o.filter(c=>!c._parent);n(a,null,(i==null?void 0:i.length)||0)}else{const i=o==null?void 0:o.filter(c=>c._parent===r);n(a,r,(i==null?void 0:i.length)||0)}},[n,o])},usePasteBlocks=()=>{const[o,n]=useCutBlockIds(),a=useMoveCutBlocks(),l=useCanPaste(),{addPredefinedBlock:r}=useAddBlock();return{canPaste:React.useCallback(async c=>{if(o.length>0)return l(o,c);try{const d=await navigator.clipboard.readText();if(d){const p=JSON.parse(d);return lodashEs.has(p,"_chai_copied_blocks")}}catch{return!1}return!1},[l,o]),pasteBlocks:React.useCallback(async c=>{const d=Array.isArray(c)?c[0]:c;if(!lodashEs.isEmpty(o)){a(o,c),n([]),await navigator.clipboard.writeText("");return}try{const p=await navigator.clipboard.readText();if(p){const u=JSON.parse(p);lodashEs.has(u,"_chai_copied_blocks")?r(u._chai_copied_blocks,d==="root"?null:d):sonner.toast.error("Nothing to paste")}else sonner.toast.error("Nothing to paste")}catch{sonner.toast.error("Failed to paste blocks from clipboard")}},[o,r,a,n])}},previewModeAtom=jotai.atom(!1),usePreviewMode=()=>{const[o,n]=jotai.useAtom(previewModeAtom);return[o,n]},removeClassFromBlocksAtom=jotai.atom(null,(o,n,{blockIds:a,fullClasses:l})=>{const r=lodashEs.first(o(selectedStylingBlocksAtom)),i=lodashEs.filter(o(pageBlocksAtomsAtom),c=>a.includes(o(c)._id));return lodashEs.map(i,c=>{const d=o(c),p=l;let{classes:u,baseClasses:m}=getSplitClasses.getSplitChaiClasses(lodashEs.get(d,r.prop,`${getSplitClasses.STYLES_KEY},`));return lodashEs.each(p,g=>{const h=g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),x=new RegExp(`(^|\\s)${h}(?=\\s|$)`,"g");u=u.replace(x," ").replace(/\s+/g," ").trim();const f=lodashEs.first(g.split(":"));lodashEs.includes(["2xl","xl","lg","md","sm"],f)&&p.push(g.split(":").pop().trim())}),lodashEs.each(p,g=>{const h=g.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),x=new RegExp(`(^|\\s)${h}(?=\\s|$)`,"g");m=m.replace(x," ").replace(/\s+/g," ").trim()}),{ids:[d._id],props:{[r.prop]:`${getSplitClasses.STYLES_KEY}${m},${u}`}}})}),useRemoveClassesFromBlocks=()=>{const{updateBlocks:o,updateBlocksRuntime:n}=useBlocksStoreUndoableActions(),a=jotai.useSetAtom(removeClassFromBlocksAtom);return React.useCallback((l,r,i=!1)=>{const c=a({blockIds:l,fullClasses:r});i?o(l,c[0].props):n(l,c[0].props)},[a])},useStylingBreakpoint=()=>jotai.useAtom(styleBreakpointAtom),canvasWidthAtom=atomWithStorage("canvasWidth",800),canvasDisplayWidthAtom=atomWithStorage("canvasDisplayWidth",800),canvasBreakpointAtom=jotai.atom(o=>{const n=o(canvasWidthAtom);return iconBase.getBreakpointValue(n).toLowerCase()}),useScreenSizeWidth=()=>{const[o,n]=jotai.useAtom(canvasWidthAtom),a=jotai.useAtomValue(canvasBreakpointAtom),[l,r]=useStylingBreakpoint();return React.useEffect(()=>{l!=="xs"&&r(a)},[a,l,r]),[o,a,n]},useCanvasDisplayWidth=()=>{const[o,n]=jotai.useAtom(canvasDisplayWidthAtom);return[o,n]},selectedBlockAllClassesAtom=jotai.atom(o=>{const n=lodashEs.first(o(selectedStylingBlocksAtom)),a=o(selectedBlockAtom);if(!n||n.blockId!==lodashEs.get(a,"_id",null))return[];const l=lodashEs.get(a,n.prop,`${getSplitClasses.STYLES_KEY},`),{classes:r}=getSplitClasses.getSplitChaiClasses(l);return lodashEs.filter(lodashEs.map(r.trim().split(" "),constructClassObject),i=>!lodashEs.isNull(i))}),useSelectedBlockAllClasses=()=>jotai.useAtomValue(selectedBlockAllClassesAtom),MQ={xs:0,sm:1,md:2,lg:3,xl:4,"2xl":5},selectedBlockCurrentClassesAtom=jotai.atom(o=>{const n=o(canvasBreakpointAtom),a=o(styleStateAtom),l=o(darkModeAtom),r=getQueries(n);let i=lodashEs.filter(o(selectedBlockAllClassesAtom),{mod:a});return lodashEs.startsWith(a,"_")||(i=lodashEs.filter(i,c=>r.includes(c.mq))),i=i.sort((c,d)=>MQ[c.mq]-MQ[d.mq]),l||(i=lodashEs.filter(i,{dark:!1})),i}),getQueries=o=>{let n=[];switch(o){case"xs":n=["xs"];break;case"sm":n=["xs","sm"];break;case"md":n=["xs","sm","md"];break;case"lg":n=["xs","sm","md","lg"];break;case"xl":n=["xs","sm","md","lg","xl"];break;case"2xl":n=["xs","sm","md","lg","xl","2xl"];break;default:n=["xs"];break}return n},useSelectedBlockCurrentClasses=()=>jotai.useAtomValue(selectedBlockCurrentClassesAtom),selectedBreakpointsAtom=atomWithStorage("selectedBreakpoints",["XS","MD","XL"]),useSelectedBreakpoints=()=>{const[o,n]=jotai.useAtom(selectedBreakpointsAtom);return[o,n]},useStylingState=()=>jotai.useAtom(styleStateAtom),useUILibraryBlocks=()=>({data:useBuilderProp("uiLibraries",[]),isLoading:!1}),wrapperBlockAtom=jotai.atom(o=>{var c;const n=o(presentBlocksAtom),a=o(selectedBlockIdsAtom),l=a.length===1?a[0]:null;if(!l)return null;const r=lodashEs.find(n,{_id:l});if(!r)return null;let i=r._parent;for(;i;){const d=lodashEs.find(n,{_id:i});if(!d)return null;if((c=runtime.getRegisteredChaiBlock(d._type))!=null&&c.wrapper)return d;i=d._parent}return null});wrapperBlockAtom.debugLabel="wrapperBlockAtom";const useWrapperBlock=()=>jotai.useAtomValue(wrapperBlockAtom),layoutVariantAtom=atomWithStorage("_layout_variant_mode","DUAL_SIDE_PANEL"),useLayoutVariant=()=>{const[o,n]=jotai.useAtom(layoutVariantAtom),a=useBuilderProp("layoutVariant","DUAL_SIDE_PANEL");return[o||a,n]},CHAI_BUILDER_EVENTS={OPEN_ADD_BLOCK:"OPEN_ADD_BLOCK",CLOSE_ADD_BLOCK:"CLOSE_ADD_BLOCK",SHOW_BLOCK_SETTINGS:"SHOW_BLOCK_SETTINGS"};class PubSub{constructor(){U(this,"subscribers",new Map)}subscribe(n,a){return this.subscribers.has(n)||this.subscribers.set(n,new Set),this.subscribers.get(n).add(a),()=>{const l=this.subscribers.get(n);l&&(l.delete(a),l.size===0&&this.subscribers.delete(n))}}publish(n,a){const l=this.subscribers.get(n);l&&l.forEach(r=>r(a))}}const pubsub=new PubSub,draggedBlockAtom=jotai.atom(null),dropTargetBlockIdAtom=jotai.atom(null),BlockActionLabel=({block:o,label:n})=>{const[,a]=useSelectedBlockIds(),[,l]=useHighlightBlockId(),[,r]=jotai.useAtom(draggedBlockAtom),i=flagged.useFeature("dnd");return jsxRuntime.jsxs("div",{className:"mr-10 flex cursor-default items-center space-x-1 px-1",draggable:i?"true":"false",onDragStart:c=>{c.dataTransfer.setData("text/plain",JSON.stringify(lodashEs.pick(o,["_id","_type","_name"]))),r(o),setTimeout(()=>{a([]),l(null)},200)},children:[jsxRuntime.jsx(reactIcons.DragHandleDots2Icon,{}),n]})},BlockFloatingSelector=({selectedBlockElement:o,block:n})=>{const a=useRemoveBlocks(),l=useDuplicateBlocks(),[,r]=useSelectedBlockIds(),[,i]=useHighlightBlockId(),[,c]=useSelectedStylingBlocks(),[d]=jotai.useAtom(inlineEditingActiveAtom),{floatingStyles:p,refs:u,update:m}=reactDom.useFloating({placement:"top-start",middleware:[reactDom.shift(),dom.flip()],elements:{reference:o}});web.useResizeObserver(o,()=>m(),o!==null);const g=lodashEs.get(n,"_parent",null),h=lodashEs.isEmpty(lodashEs.get(n,"_name",""))?lodashEs.get(n,"_type",""):lodashEs.get(n,"_name","");return!o||!n||d?null:jsxRuntime.jsx(jsxRuntime.Fragment,{children:jsxRuntime.jsxs("div",{role:"button",tabIndex:0,ref:u.setFloating,style:p,onClick:x=>{x.stopPropagation(),x.preventDefault()},onMouseEnter:x=>{x.stopPropagation(),i(null)},onKeyDown:x=>x.stopPropagation(),className:"isolate z-[999] flex h-6 items-center bg-blue-500 py-2 text-xs text-white",children:[g&&jsxRuntime.jsx(reactIcons.ArrowUpIcon,{className:"hover:scale-105",onClick:()=>{c([]),r([g])}}),jsxRuntime.jsx(BlockActionLabel,{label:h,block:n}),jsxRuntime.jsxs("div",{className:"flex gap-2 px-1",children:[canAddChildBlock(lodashEs.get(n,"_type",""))&&jsxRuntime.jsx(reactIcons.PlusIcon,{className:"hover:scale-105",onClick:()=>pubsub.publish(CHAI_BUILDER_EVENTS.OPEN_ADD_BLOCK,n)}),canDuplicateBlock(lodashEs.get(n,"_type",""))?jsxRuntime.jsx(reactIcons.CopyIcon,{className:"hover:scale-105",onClick:()=>l([n==null?void 0:n._id])}):null,canDeleteBlock(lodashEs.get(n,"_type",""))?jsxRuntime.jsx(reactIcons.TrashIcon,{className:"hover:scale-105",onClick:()=>a([n==null?void 0:n._id])}):null]})]})})},IframeInitialContent=`<!doctype html>
2
2
  <html lang="en" dir="__HTML_DIR__" class="scroll-smooth h-full overflow-y-auto">
3
3
  <head>
4
4
  <meta charset="UTF-8">
@@ -36,7 +36,7 @@
36
36
  .frame-root .frame-content { height: 100%; }
37
37
  [data-drop="yes"] { outline: 2px dashed orange !important; outline-offset: -2px }
38
38
  [data-dnd="yes"] { pointer-events: auto !important}
39
- [data-dnd="no"],[data-block-type="GlobalBlock"] > * { pointer-events: none !important; }
39
+ [data-dnd="no"],[data-block-type="GlobalBlock"],[data-block-type="PartialBlock"] > * { pointer-events: none !important; }
40
40
  [data-dnd-dragged="yes"] { opacity: 0.6; pointer-events: none; }
41
41
  [data-dnd-dragged="no"] { opacity: 1; pointer-events: auto !important; }
42
42
  [force-show] { display: block !important; }
package/dist/core.js CHANGED
@@ -6,7 +6,7 @@ import * as React from "react";
6
6
  import React__default, { createContext, useReducer, useEffect, useDebugValue, useCallback, useContext, useMemo, Component, Children, useState, useRef, Suspense, createElement, memo, lazy } from "react";
7
7
  import { S as Skeleton, B as Button, al as Label, X as Dialog, Y as DialogTrigger, Z as DialogContent, am as Popover, az as Tooltip, aA as TooltipTrigger, an as PopoverTrigger, aB as TooltipContent, ao as PopoverContent, v as Command, x as CommandInput, y as CommandList, z as CommandEmpty, D as CommandGroup, E as CommandItem, _ as DialogHeader, a0 as DialogTitle, n as Badge, a2 as DropdownMenu, a3 as DropdownMenuTrigger, a4 as DropdownMenuContent, a8 as DropdownMenuLabel, a9 as DropdownMenuSeparator, a6 as DropdownMenuCheckboxItem, ah as HoverCard, ai as HoverCardTrigger, aj as HoverCardContent, ay as Textarea, ak as Input$1, aD as TooltipPortal, a as AccordionItem, b as AccordionTrigger, d as AccordionContent, ap as ScrollArea, ab as DropdownMenuGroup, a5 as DropdownMenuItem, aa as DropdownMenuShortcut, A as Accordion, C as Card, q as CardHeader, t as CardDescription, u as CardContent, r as CardFooter, au as Tabs, av as TabsList, aw as TabsTrigger, ax as TabsContent, H as ContextMenu, I as ContextMenuTrigger, J as ContextMenuContent, K as ContextMenuItem, e as AlertDialog, f as AlertDialogTrigger, g as AlertDialogContent, h as AlertDialogHeader, j as AlertDialogTitle, k as AlertDialogDescription, i as AlertDialogFooter, m as AlertDialogCancel, l as AlertDialogAction, at as Switch, ar as Separator, aC as TooltipProvider, as as Toaster } from "./tooltip-CuxBhGWF.js";
8
8
  import { atom as atom$1, useAtom as useAtom$1, useAtomValue as useAtomValue$1, getDefaultStore as getDefaultStore$1, useSetAtom as useSetAtom$1, Provider } from "jotai";
9
- import { find, filter, flatten, map, omit, isString, has, each, set, first, get, isObject, memoize, compact, isEmpty, noop, includes, without, keys, range, values, flattenDeep, startsWith, forEach, unset, chunk, cloneDeep, pick, isNull, throttle, isFunction as isFunction$1, reverse, startCase, debounce, capitalize, split, findIndex, take, toUpper, toLower, nth, isNumber, parseInt as parseInt$1, isNaN as isNaN$1, findLast, intersection, groupBy, uniq, flatMapDeep, some, reject, sortBy, round } from "lodash-es";
9
+ import { find, filter, flatten, map, omit, isString, has, isObject, memoize, get, compact, isEmpty, noop, includes, without, each, first, keys, range, values, flattenDeep, set, startsWith, forEach, unset, chunk, cloneDeep, pick, isNull, throttle, isFunction as isFunction$1, reverse, startCase, debounce, capitalize, split, findIndex, take, toUpper, toLower, nth, isNumber, parseInt as parseInt$1, isNaN as isNaN$1, findLast, intersection, groupBy, uniq, flatMapDeep, some, reject, sortBy, round } from "lodash-es";
10
10
  import { Provider as Provider$1 } from "react-wrap-balancer";
11
11
  import { useTranslation, initReactI18next } from "react-i18next";
12
12
  import { useTranslation as Ve } from "react-i18next";
@@ -930,61 +930,7 @@ function requireUndomanager() {
930
930
  }(undomanager)), undomanager.exports;
931
931
  }
932
932
  var undomanagerExports = requireUndomanager();
933
- const UndoManager = /* @__PURE__ */ getDefaultExportFromCjs(undomanagerExports);
934
- function getBlocksTree(o) {
935
- return convertToBlocksTree(o);
936
- }
937
- const nestedToFlatArray = (o, n) => flatten(
938
- o.map((r) => {
939
- if (r = n ? { ...r, _parent: n } : { ...r }, r.children) {
940
- const a = [...r.children];
941
- return delete r.children, flatten([r, ...nestedToFlatArray(a, r._id)]);
942
- }
943
- return r;
944
- })
945
- );
946
- function setProjectBlocksInMemory(o, n = !1) {
947
- for (let r = 0; r < o.length; r++) {
948
- const a = o[r];
949
- a.global && !n ? o[r] = {
950
- type: "GlobalBlock",
951
- blockId: a.blockId,
952
- _parent: get(a, "_parent", null),
953
- _id: a._id
954
- } : a.children && a.children.length && setProjectBlocksInMemory(a.children);
955
- }
956
- }
957
- function getInnerBlocks(o) {
958
- let n = [], r = filter(o, { type: "GlobalBlock" });
959
- return r.length > 0 && (r = map(r, getPBlocks), each(r, (a) => {
960
- n = [...n, ...getSingleBlock(a)];
961
- })), n;
962
- }
963
- function getSingleBlock(o) {
964
- let n = [];
965
- const r = get(first(o), "_parent", null);
966
- set(first(o), "_parent", null);
967
- const a = [flatToNestedInstance.convert(clone(o))];
968
- setProjectBlocksInMemory(a, !0);
969
- let l = nestedToFlatArray(a, o[0]._id);
970
- return l = set(l, "0._parent", r), n = [...n, l, ...getInnerBlocks(l)], n;
971
- }
972
- function getPBlocks(o) {
973
- const n = find(FLAT_ARRAY, { _id: o._id });
974
- if (!n) return [];
975
- const r = [n], a = filter(FLAT_ARRAY, { _parent: o._id });
976
- return a.length ? flatten([...r, ...flatten(map(a, getPBlocks))]) : flatten(r);
977
- }
978
- const clone = (o) => JSON.parse(JSON.stringify(o));
979
- let FLAT_ARRAY = [];
980
- function splitPageBlocks(o) {
981
- FLAT_ARRAY = o;
982
- const n = getBlocksTree(clone(o));
983
- setProjectBlocksInMemory(n);
984
- const r = nestedToFlatArray(n, null), a = getInnerBlocks(r), l = {};
985
- return each(a, (i) => set(l, first(i).blockId, i)), [r, l];
986
- }
987
- const MODIFIERS = [
933
+ const UndoManager = /* @__PURE__ */ getDefaultExportFromCjs(undomanagerExports), MODIFIERS = [
988
934
  "hover",
989
935
  "focus",
990
936
  "focus-within",
@@ -1051,10 +997,10 @@ const useBrandingOptions = () => {
1051
997
  }), useGetPageData = () => {
1052
998
  const [o] = useBrandingOptions(), { currentPage: n } = useCurrentPage(), [r] = useBlocksStore();
1053
999
  return useCallback(() => {
1054
- const a = map(r, (i) => omit(i, getBlockBuilderProps(i._type))), [l = []] = splitPageBlocks(a);
1000
+ const a = map(r, (l) => omit(l, getBlockBuilderProps(l._type)));
1055
1001
  return {
1056
1002
  currentPage: n,
1057
- blocks: l
1003
+ blocks: a
1058
1004
  };
1059
1005
  }, [o, n, r]);
1060
1006
  }, chaiBuilderPropsAtom = atom$1(null);
@@ -1314,6 +1260,9 @@ function insertBlocksAtPosition(o, n, r, a) {
1314
1260
  }
1315
1261
  return !r && a !== void 0 && a >= c.length && (p = i.length), [...i.slice(0, p), ...l, ...i.slice(p)];
1316
1262
  }
1263
+ function getBlocksTree(o) {
1264
+ return convertToBlocksTree(o);
1265
+ }
1317
1266
  function flattenTree(o) {
1318
1267
  let n = [];
1319
1268
  return o.walk((r) => (delete r.model.children, n.push(r.model), !0)), n;
@@ -3095,7 +3044,7 @@ const useBlockHighlight = () => {
3095
3044
  const [o, n] = useAtom(partialBlocksStoreAtom), r = useCallback((l) => get(o, l, []), [o]), a = useCallback(() => n({}), [n]);
3096
3045
  return { getPartailBlocks: r, reset: a };
3097
3046
  }, useWatchPartailBlocks = () => {
3098
- const [o] = useBlocksStore(), [n, r] = useAtom(partialBlocksStoreAtom), [a, l] = useAtom(partialBlocksLoadingStateAtom), i = useBuilderProp("getPartialBlockBlocks", async (d) => []), c = useMemo(() => o.filter((d) => d._type === "PartialBlock").map((d) => d.partialBlockId), [o]);
3047
+ const [o] = useBlocksStore(), [n, r] = useAtom(partialBlocksStoreAtom), [a, l] = useAtom(partialBlocksLoadingStateAtom), i = useBuilderProp("getPartialBlockBlocks", async (d) => []), c = useMemo(() => o.filter((d) => d._type === "PartialBlock" || d._type === "GlobalBlock").map((d) => get(d, "partialBlockId", get(d, "globalBlock", ""))), [o]);
3099
3048
  useEffect(() => {
3100
3049
  forEach(c, (d) => {
3101
3050
  has(n, d) || get(a, `${d}.loading`, !1) || (l((p) => ({ ...p, [d]: { loading: !0, error: null } })), i(d).then((p) => {
@@ -3498,7 +3447,7 @@ const pubsub = new PubSub(), draggedBlockAtom = atom$1(null), dropTargetBlockIdA
3498
3447
  .frame-root .frame-content { height: 100%; }
3499
3448
  [data-drop="yes"] { outline: 2px dashed orange !important; outline-offset: -2px }
3500
3449
  [data-dnd="yes"] { pointer-events: auto !important}
3501
- [data-dnd="no"],[data-block-type="GlobalBlock"] > * { pointer-events: none !important; }
3450
+ [data-dnd="no"],[data-block-type="GlobalBlock"],[data-block-type="PartialBlock"] > * { pointer-events: none !important; }
3502
3451
  [data-dnd-dragged="yes"] { opacity: 0.6; pointer-events: none; }
3503
3452
  [data-dnd-dragged="no"] { opacity: 1; pointer-events: auto !important; }
3504
3453
  [force-show] { display: block !important; }
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.0.0-beta.109",
8
+ "version": "2.0.0-beta.110",
9
9
  "type": "module",
10
10
  "repository": {
11
11
  "type": "git",