@chaibuilder/sdk 2.0.0-beta.14 → 2.0.0-beta.15

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 U=Object.defineProperty;var F=(o,n,r)=>n in o?U(o,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[n]=r;var V=(o,n,r)=>(F(o,typeof n!="symbol"?n+"":n,r),r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const jsxRuntime=require("./jsx-runtime-JYMCiFoE.cjs"),React=require("react"),contextMenu=require("./context-menu-4nQs6OxC.cjs"),lodashEs=require("lodash-es"),jotai=require("jotai"),iconBase=require("./iconBase-aZzpqff_.cjs"),reactI18next=require("react-i18next"),ChaiThemeFn=require("./ChaiThemeFn-6Rmrzvu_.cjs"),web=require("@react-hookz/web"),lodash=require("lodash"),STRINGS=require("./STRINGS-sVplluh6.cjs"),TreeModel=require("tree-model"),runtime=require("@chaibuilder/runtime"),ReactQuill=require("react-quill"),flagged=require("flagged"),reactHotkeysHook=require("react-hotkeys-hook"),dom=require("@floating-ui/dom"),reactDom=require("@floating-ui/react-dom"),reactIcons=require("@radix-ui/react-icons"),typography=require("@tailwindcss/typography"),forms=require("@tailwindcss/forms"),aspectRatio=require("@tailwindcss/aspect-ratio"),tailwindMerge=require("tailwind-merge"),reactWrapBalancer=require("react-wrap-balancer"),ReactDOM=require("react-dom"),PropTypes=require("prop-types"),reactErrorBoundary=require("react-error-boundary"),reResizable=require("re-resizable"),lucideReact=require("lucide-react"),reactArborist=require("react-arborist"),himalaya=require("himalaya"),RjForm=require("@rjsf/core"),validator=require("@rjsf/validator-ajv8"),IconPicker=require("react-icons-picker"),Autosuggest=require("react-autosuggest"),Fuse=require("fuse.js"),clsx=require("clsx"),i18n=require("i18next"),framerMotion=require("framer-motion");require("@radix-ui/react-switch");require("@radix-ui/react-accordion");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-slot");require("class-variance-authority");require("@radix-ui/react-dialog");require("@radix-ui/react-label");require("@radix-ui/react-scroll-area");require("@radix-ui/react-tabs");require("@radix-ui/react-tooltip");require("@radix-ui/react-popover");require("@radix-ui/react-hover-card");require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-separator");require("@radix-ui/react-toast");require("@radix-ui/react-context-menu");function _interopNamespaceDefault(o){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const r in o)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(o,r);Object.defineProperty(n,r,a.get?a:{enumerable:!0,get:()=>o[r]})}}return n.default=o,Object.freeze(n)}const React__namespace=_interopNamespaceDefault(React),canAcceptChildBlock=(o,n)=>{if(!o)return!0;const r=runtime.getRegisteredChaiBlock(o);return r&&lodashEs.has(r,"canAcceptBlock")?r.canAcceptBlock(n):!1},canAddChildBlock=o=>{const n=runtime.getRegisteredChaiBlock(o);return n?lodashEs.has(n,"canAcceptBlock"):!1},canBeNestedInside=(o,n)=>{const r=runtime.getRegisteredChaiBlock(n);return r&&lodashEs.has(r,"canBeNested")?r.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};var define_import_meta_env_default$2={VITE_OPENAI_API_KEY:"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",VITE_UNSPASH_ACCESS_KEY:"XgYBCm-XCHecRMsbfhw6oZWGkltco1U5TYMEd0LXZeA",VITE_JOTAI_DEVTOOL_ENABLED:"true",BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};let keyCount=0;function atom(o,n){const r=`atom${++keyCount}`,a={toString:()=>r};return typeof o=="function"?a.read=o:(a.init=o,a.read=i=>i(a),a.write=(i,l,c)=>l(a,typeof c=="function"?c(i(a)):c)),n&&(a.write=n),a}const hasInitialValue=o=>"init"in o,isActuallyWritableAtom=o=>!!o.write,cancelPromiseMap=new WeakMap,registerCancelPromise=(o,n)=>{cancelPromiseMap.set(o,n),o.catch(()=>{}).finally(()=>cancelPromiseMap.delete(o))},cancelPromise=(o,n)=>{const r=cancelPromiseMap.get(o);r&&(cancelPromiseMap.delete(o),r(n))},resolvePromise=(o,n)=>{o.status="fulfilled",o.value=n},rejectPromise=(o,n)=>{o.status="rejected",o.reason=n},isPromiseLike$2=o=>typeof(o==null?void 0:o.then)=="function",isEqualAtomValue=(o,n)=>"v"in o&&"v"in n&&Object.is(o.v,n.v),isEqualAtomError=(o,n)=>"e"in o&&"e"in n&&Object.is(o.e,n.e),hasPromiseAtomValue=o=>"v"in o&&o.v instanceof Promise,isEqualPromiseAtomValue=(o,n)=>"v"in o&&"v"in n&&o.v.orig&&o.v.orig===n.v.orig,returnAtomValue=o=>{if("e"in o)throw o.e;return o.v},createStore=()=>{const o=new WeakMap,n=new WeakMap,r=new Map;let a,i,l;(define_import_meta_env_default$2?"production":void 0)!=="production"&&(a=new Set,i=new Set,l=new Set);const c=p=>o.get(p),u=(p,b)=>{(define_import_meta_env_default$2?"production":void 0)!=="production"&&Object.freeze(b);const k=o.get(p);if(o.set(p,b),r.has(p)||r.set(p,k),k&&hasPromiseAtomValue(k)){const v="v"in b?b.v instanceof Promise?b.v:Promise.resolve(b.v):Promise.reject(b.e);cancelPromise(k.v,v)}},d=(p,b,k)=>{const v=new Map;let _=!1;k.forEach((B,L)=>{!B&&L===p&&(B=b),B?(v.set(L,B),b.d.get(L)!==B&&(_=!0)):(define_import_meta_env_default$2?"production":void 0)!=="production"&&console.warn("[Bug] atom state not found")}),(_||b.d.size!==v.size)&&(b.d=v)},x=(p,b,k)=>{const v=c(p),_={d:(v==null?void 0:v.d)||new Map,v:b};if(k&&d(p,_,k),v&&isEqualAtomValue(v,_)&&v.d===_.d)return v;if(v&&hasPromiseAtomValue(v)&&hasPromiseAtomValue(_)&&isEqualPromiseAtomValue(v,_)){if(v.d===_.d)return v;_.v=v.v}return u(p,_),_},m=(p,b,k,v)=>{if(isPromiseLike$2(b)){let _;const B=new Promise((L,O)=>{let M=!1;b.then(D=>{if(!M){M=!0;const P=c(p),H=x(p,B,k);resolvePromise(B,D),L(D),(P==null?void 0:P.d)!==H.d&&I(p,H,P==null?void 0:P.d)}},D=>{if(!M){M=!0;const P=c(p),H=x(p,B,k);rejectPromise(B,D),O(D),(P==null?void 0:P.d)!==H.d&&I(p,H,P==null?void 0:P.d)}}),_=D=>{M||(M=!0,D.then(P=>resolvePromise(B,P),P=>rejectPromise(B,P)),L(D))}});return B.orig=b,B.status="pending",registerCancelPromise(B,L=>{L&&_(L),v==null||v()}),x(p,B,k)}return x(p,b,k)},g=(p,b,k)=>{const v=c(p),_={d:(v==null?void 0:v.d)||new Map,e:b};return k&&d(p,_,k),v&&isEqualAtomError(v,_)&&v.d===_.d?v:(u(p,_),_)},h=p=>{const b=c(p);if(b&&(b.d.forEach((M,D)=>{D!==p&&!n.has(D)&&h(D)}),Array.from(b.d).every(([M,D])=>{const P=c(M);return M===p||P===D||P&&!hasPromiseAtomValue(P)&&isEqualAtomValue(P,D)})))return b;const k=new Map;let v=!0;const _=M=>{if(M===p){const P=c(M);if(P)return k.set(M,P),returnAtomValue(P);if(hasInitialValue(M))return k.set(M,void 0),M.init;throw new Error("no atom init")}const D=h(M);return k.set(M,D),returnAtomValue(D)};let B,L;const O={get signal(){return B||(B=new AbortController),B.signal},get setSelf(){return(define_import_meta_env_default$2?"production":void 0)!=="production"&&!isActuallyWritableAtom(p)&&console.warn("setSelf function cannot be used with read-only atom"),!L&&isActuallyWritableAtom(p)&&(L=(...M)=>{if((define_import_meta_env_default$2?"production":void 0)!=="production"&&v&&console.warn("setSelf function cannot be called in sync"),!v)return w(p,...M)}),L}};try{const M=p.read(_,O);return m(p,M,k,()=>B==null?void 0:B.abort())}catch(M){return g(p,M,k)}finally{v=!1}},E=p=>returnAtomValue(h(p)),R=p=>{let b=n.get(p);return b||(b=C(p)),b},j=(p,b)=>!b.l.size&&(!b.t.size||b.t.size===1&&b.t.has(p)),f=p=>{const b=n.get(p);b&&j(p,b)&&A(p)},y=p=>{const b=new Map,k=new WeakMap,v=B=>{const L=n.get(B);L==null||L.t.forEach(O=>{O!==B&&(b.set(O,(b.get(O)||new Set).add(B)),k.set(O,(k.get(O)||0)+1),v(O))})};v(p);const _=B=>{const L=n.get(B);L==null||L.t.forEach(O=>{var M;if(O!==B){let D=k.get(O);if(D&&k.set(O,--D),!D){let P=!!((M=b.get(O))!=null&&M.size);if(P){const H=c(O),$=h(O);P=!H||!isEqualAtomValue(H,$)}P||b.forEach(H=>H.delete(O))}_(O)}})};_(p)},S=(p,...b)=>{let k=!0;const v=L=>returnAtomValue(h(L)),_=(L,...O)=>{let M;if(L===p){if(!hasInitialValue(L))throw new Error("atom not writable");const D=c(L),P=m(L,O[0]);(!D||!isEqualAtomValue(D,P))&&y(L)}else M=S(L,...O);if(!k){const D=T();(define_import_meta_env_default$2?"production":void 0)!=="production"&&i.forEach(P=>P({type:"async-write",flushed:D}))}return M},B=p.write(v,_,...b);return k=!1,B},w=(p,...b)=>{const k=S(p,...b),v=T();return(define_import_meta_env_default$2?"production":void 0)!=="production"&&i.forEach(_=>_({type:"write",flushed:v})),k},C=(p,b)=>{const k={t:new Set(b&&[b]),l:new Set};if(n.set(p,k),(define_import_meta_env_default$2?"production":void 0)!=="production"&&l.add(p),h(p).d.forEach((v,_)=>{const B=n.get(_);B?B.t.add(p):_!==p&&C(_,p)}),h(p),isActuallyWritableAtom(p)&&p.onMount){const v=p.onMount((..._)=>w(p,..._));v&&(k.u=v)}return k},A=p=>{var b;const k=(b=n.get(p))==null?void 0:b.u;k&&k(),n.delete(p),(define_import_meta_env_default$2?"production":void 0)!=="production"&&l.delete(p);const v=c(p);v?(hasPromiseAtomValue(v)&&cancelPromise(v.v),v.d.forEach((_,B)=>{if(B!==p){const L=n.get(B);L&&(L.t.delete(p),j(B,L)&&A(B))}})):(define_import_meta_env_default$2?"production":void 0)!=="production"&&console.warn("[Bug] could not find atom state to unmount",p)},I=(p,b,k)=>{const v=new Set(b.d.keys());k==null||k.forEach((_,B)=>{if(v.has(B)){v.delete(B);return}const L=n.get(B);L&&(L.t.delete(p),j(B,L)&&A(B))}),v.forEach(_=>{const B=n.get(_);B?B.t.add(p):n.has(p)&&C(_,p)})},T=()=>{let p;for((define_import_meta_env_default$2?"production":void 0)!=="production"&&(p=new Set);r.size;){const b=Array.from(r);r.clear(),b.forEach(([k,v])=>{const _=c(k);if(_){_.d!==(v==null?void 0:v.d)&&I(k,_,v==null?void 0:v.d);const B=n.get(k);B&&!(v&&!hasPromiseAtomValue(v)&&(isEqualAtomValue(v,_)||isEqualAtomError(v,_)))&&(B.l.forEach(L=>L()),(define_import_meta_env_default$2?"production":void 0)!=="production"&&p.add(k))}else(define_import_meta_env_default$2?"production":void 0)!=="production"&&console.warn("[Bug] no atom state to flush")})}if((define_import_meta_env_default$2?"production":void 0)!=="production")return a.forEach(b=>b("state")),p},N=(p,b)=>{const k=R(p),v=T(),_=k.l;return _.add(b),(define_import_meta_env_default$2?"production":void 0)!=="production"&&(a.forEach(B=>B("sub")),i.forEach(B=>B({type:"sub",flushed:v}))),()=>{_.delete(b),f(p),(define_import_meta_env_default$2?"production":void 0)!=="production"&&(a.forEach(B=>B("unsub")),i.forEach(B=>B({type:"unsub"})))}};return(define_import_meta_env_default$2?"production":void 0)!=="production"?{get:E,set:w,sub:N,dev_subscribe_store:(p,b)=>b!==2?(console.warn("The current StoreListener revision is 2. The older ones are deprecated."),a.add(p),()=>{a.delete(p)}):(i.add(p),()=>{i.delete(p)}),dev_get_mounted_atoms:()=>l.values(),dev_get_atom_state:p=>o.get(p),dev_get_mounted:p=>n.get(p),dev_restore_atoms:p=>{for(const[k,v]of p)hasInitialValue(k)&&(m(k,v),y(k));const b=T();i.forEach(k=>k({type:"restore",flushed:b}))}}:{get:E,set:w,sub:N}};let defaultStore;const getDefaultStore=()=>(defaultStore||(defaultStore=createStore()),defaultStore);var define_import_meta_env_default$1={VITE_OPENAI_API_KEY:"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",VITE_UNSPASH_ACCESS_KEY:"XgYBCm-XCHecRMsbfhw6oZWGkltco1U5TYMEd0LXZeA",VITE_JOTAI_DEVTOOL_ENABLED:"true",BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const RESET=Symbol(),getCached$1=(o,n,r)=>(n.has(r)?n:n.set(r,o())).get(r),cache1$2=new WeakMap,memo2$1=(o,n,r)=>{const a=getCached$1(()=>new WeakMap,cache1$2,n);return getCached$1(o,a,r)},cacheKeyForEmptyKeyExtractor={},isWritable=o=>!!o.write,isFunction=o=>typeof o=="function";function splitAtom(o,n){return memo2$1(()=>{const r=new WeakMap,a=(c,u)=>{let d=r.get(c);if(d)return d;const x=u&&r.get(u),m=[],g=[];return c.forEach((h,E)=>{const R=n?n(h):E;g[E]=R;const j=x&&x.atomList[x.keyList.indexOf(R)];if(j){m[E]=j;return}const f=S=>{const w=S(i),C=S(o),I=a(C,w==null?void 0:w.arr).keyList.indexOf(R);if(I<0||I>=C.length){const T=c[a(c).keyList.indexOf(R)];if(T)return T;throw new Error("splitAtom: index out of bounds for read")}return C[I]},y=(S,w,C)=>{const A=S(i),I=S(o),N=a(I,A==null?void 0:A.arr).keyList.indexOf(R);if(N<0||N>=I.length)throw new Error("splitAtom: index out of bounds for write");const p=isFunction(C)?C(I[N]):C;w(o,[...I.slice(0,N),p,...I.slice(N+1)])};m[E]=isWritable(o)?atom(f,y):atom(f)}),x&&x.keyList.length===g.length&&x.keyList.every((h,E)=>h===g[E])?d=x:d={arr:c,atomList:m,keyList:g},r.set(c,d),d},i=atom(c=>{const u=c(i),d=c(o);return a(d,u==null?void 0:u.arr)});(define_import_meta_env_default$1?"production":void 0)!=="production"&&(i.debugPrivate=!0),i.init=void 0;const l=isWritable(o)?atom(c=>c(i).atomList,(c,u,d)=>{switch(d.type){case"remove":{const x=c(l).indexOf(d.atom);if(x>=0){const m=c(o);u(o,[...m.slice(0,x),...m.slice(x+1)])}break}case"insert":{const x=d.before?c(l).indexOf(d.before):c(l).length;if(x>=0){const m=c(o);u(o,[...m.slice(0,x),d.value,...m.slice(x)])}break}case"move":{const x=c(l).indexOf(d.atom),m=d.before?c(l).indexOf(d.before):c(l).length;if(x>=0&&m>=0){const g=c(o);x<m?u(o,[...g.slice(0,x),...g.slice(x+1,m),g[x],...g.slice(m)]):u(o,[...g.slice(0,m),g[x],...g.slice(m,x),...g.slice(x+1)])}break}}}):atom(c=>c(i).atomList);return l},o,n||cacheKeyForEmptyKeyExtractor)}const isPromiseLike$1=o=>typeof(o==null?void 0:o.then)=="function";function createJSONStorage(o){let n,r;const a={getItem:(i,l)=>{var c,u;const d=m=>{if(m=m||"",n!==m){try{r=JSON.parse(m)}catch{return l}n=m}return r},x=(u=(c=o())==null?void 0:c.getItem(i))!=null?u:null;return isPromiseLike$1(x)?x.then(d):d(x)},setItem:(i,l)=>{var c;return(c=o())==null?void 0:c.setItem(i,JSON.stringify(l))},removeItem:i=>{var l;return(l=o())==null?void 0:l.removeItem(i)}};return typeof window<"u"&&typeof window.addEventListener=="function"&&(a.subscribe=(i,l,c)=>{if(!(o()instanceof window.Storage))return()=>{};const u=d=>{if(d.storageArea===o()&&d.key===i){let x;try{x=JSON.parse(d.newValue||"")}catch{x=c}l(x)}};return window.addEventListener("storage",u),()=>{window.removeEventListener("storage",u)}}),a}const defaultStorage=createJSONStorage(()=>typeof window<"u"?window.localStorage:void 0);function atomWithStorage(o,n,r=defaultStorage,a){const i=a==null?void 0:a.unstable_getOnInit,l=atom(i?r.getItem(o,n):n);return(define_import_meta_env_default$1?"production":void 0)!=="production"&&(l.debugPrivate=!0),l.onMount=u=>{i||u(r.getItem(o,n));let d;return r.subscribe&&(d=r.subscribe(o,u,n)),d},atom(u=>u(l),(u,d,x)=>{const m=typeof x=="function"?x(u(l)):x;return m===RESET?(d(l,n),r.removeItem(o)):m instanceof Promise?m.then(g=>(d(l,g),r.setItem(o,g))):(d(l,m),r.setItem(o,m))})}var define_import_meta_env_default={VITE_OPENAI_API_KEY:"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",VITE_UNSPASH_ACCESS_KEY:"XgYBCm-XCHecRMsbfhw6oZWGkltco1U5TYMEd0LXZeA",VITE_JOTAI_DEVTOOL_ENABLED:"true",BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};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",use=React.use||(o=>{if(o.status==="pending")throw o;if(o.status==="fulfilled")return o.value;throw o.status==="rejected"?o.reason:(o.status="pending",o.then(n=>{o.status="fulfilled",o.value=n},n=>{o.status="rejected",o.reason=n}),o)});function useAtomValue(o,n){const r=useStore(n),[[a,i,l],c]=React.useReducer(x=>{const m=r.get(o);return Object.is(x[0],m)&&x[1]===r&&x[2]===o?x:[m,r,o]},void 0,()=>[r.get(o),r,o]);let u=a;(i!==r||l!==o)&&(c(),u=r.get(o));const d=n==null?void 0:n.delay;return React.useEffect(()=>{const x=r.sub(o,()=>{if(typeof d=="number"){setTimeout(c,d);return}c()});return c(),x},[r,o,d]),React.useDebugValue(u),isPromiseLike(u)?use(u):u}function useSetAtom(o,n){const r=useStore(n);return React.useCallback((...i)=>{if((define_import_meta_env_default?"production":void 0)!=="production"&&!("write"in o))throw new Error("not writable atom");return r.set(o,...i)},[r,o])}function useAtom(o,n){return[useAtomValue(o,n),useSetAtom(o,n)]}function duplicateBlocks(o,n,r){const a=lodashEs.filter(o,l=>l._parent===n),i=[];for(let l=0;l<a.length;l++){const c=getSlots(a[l]);if(Object.keys(c).length>0&&Object.keys(c).forEach(u=>{a[l][u]=`slot:${iconBase.generateUUID()}`}),lodashEs.filter(o,{_parent:a[l]._id}).length>0){const u=iconBase.generateUUID();i.push({...a[l],oldId:a[l]._id,_id:u,_parent:r}),i.push(lodashEs.flatten(duplicateBlocks(o,a[l]._id,u)))}else i.push({...a[l],oldId:a[l]._id,_id:iconBase.generateUUID(),_parent:r})}return lodashEs.flatten(i)}function convertToBlocksTree(o){const n={};o.forEach(a=>{n[a._id]={...a,children:[]}});const r=[];return o.forEach(a=>{if(a._parent){const i=n[a._parent];i&&i.children.push(n[a._id])}else r.push(n[a._id])}),r}const getSlots=o=>{const n={};return Object.keys(o).forEach(r=>{lodashEs.isString(o[r])&&o[r].startsWith("slot")&&(n[r]=o[r].replace("slot:",""))}),n},getDuplicatedBlocks=(o,n,r=null)=>{let a=lodashEs.find(o,{_id:n});a={...a,oldId:a._id,_id:iconBase.generateUUID()},r&&(a={...a,_parent:r});const i=[a];lodashEs.filter(o,{_parent:n}).length>0&&i.push(lodashEs.flatten(duplicateBlocks(o,n,a._id)));const l=lodashEs.flatten(i);return lodashEs.map(l,c=>{const u=c,d=getSlots(u);return Object.keys(d).length>0&&Object.keys(d).forEach(x=>{const m=lodashEs.find(l,{oldId:d[x].replace("slot:","")});u[x]=`slot:${m._id}`}),lodashEs.omit(u,["global","oldId"])})},presentBlocksAtom=jotai.atom([]);presentBlocksAtom.debugLabel="presentBlocksAtom";const treeDSBlocks=jotai.atom(o=>{const n=o(presentBlocksAtom);return convertToBlocksTree([...n])});treeDSBlocks.debugLabel="treeDSBlocks";presentBlocksAtom.debugLabel="presentBlocksAtom";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,r=>lodashEs.has(r,"blockId"))});globalBlocksAtom.debugLabel="globalBlocksAtom";const selectedBlockIdsAtom=jotai.atom([]);selectedBlockIdsAtom.debugLabel="selectedBlockIdsAtom";const selectedBlocksAtom=jotai.atom(o=>{const n=o(presentBlocksAtom),r=o(selectedBlockIdsAtom);return lodashEs.map(lodashEs.filter(n,({_id:a})=>lodashEs.includes(r,a)),a=>({...a}))});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),r=lodashEs.map(n,getParentId);return lodashEs.filter(o(presentBlocksAtom),a=>lodashEs.includes(r,a._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),r=o(presentBlocksAtom);let a=n;const i=[n];do{const l=r.find(({_id:c})=>c===(a==null?void 0:a._parent));a=l,l&&i.push(l)}while(a!=null&&a._parent);return i}),useSelectedBlockHierarchy=()=>lodashEs.compact(jotai.useAtomValue(selectedBlockHierarchy)),useSelectedBlockIds=()=>{const[o,n]=jotai.useAtom(selectedBlockIdsAtom),r=React.useCallback(a=>{n(i=>lodashEs.includes(i,a)?lodashEs.without(i,a):[...i,a])},[n]);return[o,n,r]};var undomanager={exports:{}};(function(o){(function(){function n(a,i,l){return a.splice(i,!l||1+l-i+(!(l<0^i>=0)&&(l<0||-1)*a.length)),a.length}let r=function(){let a=[],i=-1,l=0,c=!1,u;function d(x,m){return!x||typeof x[m]!="function"?this:(c=!0,x[m](),c=!1,this)}return{add:function(x){return c?this:(a.splice(i+1,a.length-i),a.push(x),l&&a.length>l&&n(a,0,-(l+1)),i=a.length-1,u&&u(),this)},setCallback:function(x){u=x},undo:function(){let x=a[i];if(!x)return this;const m=x.groupId;for(;x.groupId===m&&(d(x,"undo"),i-=1,x=a[i],!(!x||!x.groupId)););return u&&u(),this},redo:function(){let x=a[i+1];if(!x)return this;const m=x.groupId;for(;x.groupId===m&&(d(x,"redo"),i+=1,x=a[i+1],!(!x||!x.groupId)););return u&&u(),this},clear:function(){let x=a.length;a=[],i=-1,u&&x>0&&u()},hasUndo:function(){return i!==-1},hasRedo:function(){return i<a.length-1},getCommands:function(x){return x?a.filter(m=>m.groupId===x):a},getIndex:function(){return i},setLimit:function(x){l=x}}};o.exports?o.exports=r:window.UndoManager=r})()})(undomanager);var undomanagerExports=undomanager.exports;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)});function getBlocksTree(o){return convertToBlocksTree(o)}const nestedToFlatArray=(o,n)=>lodashEs.flatten(o.map(r=>{if(r=n?{...r,_parent:n}:{...r},r.children){const a=[...r.children];return delete r.children,lodashEs.flatten([r,...nestedToFlatArray(a,r._id)])}return r}));function setProjectBlocksInMemory(o,n=!1){for(let r=0;r<o.length;r++){const a=o[r];a.global&&!n?o[r]={type:"GlobalBlock",blockId:a.blockId,_parent:lodashEs.get(a,"_parent",null),_id:a._id}:a.children&&a.children.length&&setProjectBlocksInMemory(a.children)}}function getInnerBlocks(o){let n=[],r=lodashEs.filter(o,{type:"GlobalBlock"});return r.length>0&&(r=lodashEs.map(r,getPBlocks),lodashEs.each(r,a=>{n=[...n,...getSingleBlock(a)]})),n}function getSingleBlock(o){let n=[];const r=lodashEs.get(lodashEs.first(o),"_parent",null);lodashEs.set(lodashEs.first(o),"_parent",null);const a=[flatToNestedInstance.convert(clone(o))];setProjectBlocksInMemory(a,!0);let i=nestedToFlatArray(a,o[0]._id);return i=lodashEs.set(i,"0._parent",r),n=[...n,i,...getInnerBlocks(i)],n}function getPBlocks(o){const n=lodashEs.find(FLAT_ARRAY,{_id:o._id});if(!n)return[];const r=[n],a=lodashEs.filter(FLAT_ARRAY,{_parent:o._id});return a.length?lodashEs.flatten([...r,...lodashEs.flatten(lodashEs.map(a,getPBlocks))]):lodashEs.flatten(r)}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 r=nestedToFlatArray(n,null),a=getInnerBlocks(r),i={};return lodashEs.each(a,l=>lodashEs.set(i,lodashEs.first(l).blockId,l)),[r,i]}const useGetPageData=()=>{const[o]=useBrandingOptions(),{currentPage:n}=useCurrentPage(),[r]=useBlocksStore();return React.useCallback(()=>{const a=lodashEs.map(r,l=>lodashEs.omit(l,["expanded","order","title","siblings","tempClasses"])),[i=[]]=splitPageBlocks(a);return{currentPage:n,blocks:i}},[o,n,r])},chaiBuilderPropsAtom=jotai.atom(null);chaiBuilderPropsAtom.debugLabel="chaiBuilderPropsAtom";const chaiExternalDataAtom=jotai.atom({});chaiExternalDataAtom.debugLabel="chaiExternalDataAtom";const useBuilderProp=(o,n=void 0)=>{const r=jotai.useAtomValue(chaiBuilderPropsAtom);return lodashEs.get(r,o,n)},getDefaultThemeValues=o=>{const n={};return o.fontFamily&&(n.fontFamily=Object.entries(o.fontFamily).reduce((r,[a,i])=>({...r,[a.replace("font-","")]:i}),{})),n.borderRadius=o.borderRadius,o.colors&&(n.colors=o.colors.reduce((r,a)=>(Object.entries(a.items).forEach(([i,l])=>{r[i]=l}),r),{})),n},chaiThemeValuesAtom=jotai.atom({}),useTheme=()=>{const o=useThemeOptions(),n=React.useMemo(()=>getDefaultThemeValues(o),[o]),r=useBuilderProp("theme",{}),[a,i]=jotai.useAtom(chaiThemeValuesAtom);return[{...n,...!lodash.isEmpty(r)&&r,...!lodash.isEmpty(a)&&a},i]},useThemeOptions=()=>{const o=useBuilderProp("themeOptions",r=>r);return React.useMemo(()=>o(STRINGS.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),r=useBuilderProp("onSave",async u=>{}),a=useBuilderProp("onSaveStateChange",lodashEs.noop),i=useGetPageData(),[l]=useTheme();return{savePage:web.useThrottledCallback(async(u=!1)=>{n("SAVING"),a("SAVING");const d=i();return await r({autoSave:u,blocks:d.blocks,theme:l}),setTimeout(()=>{n("SAVED"),a("SAVED")},100),!0},[i,n,l,r,a],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}},removeNestedBlocks=(o,n)=>{const r=[],a=lodashEs.filter(o,i=>lodashEs.includes(n,i._id)||lodashEs.includes(n,i._parent)?(r.push(i._id),!1):!0);return lodashEs.isEmpty(r)?a:removeNestedBlocks(a,r)},useRemoveBlocks=()=>{const[o]=useBlocksStore(),[n,r]=useSelectedBlockIds(),{setNewBlocks:a}=useBlocksStoreUndoableActions();return React.useCallback(i=>{var c;const l=((c=lodashEs.find(o,{_id:i[0]}))==null?void 0:c._parent)||null;a(removeNestedBlocks(o,i)),setTimeout(()=>r(l?[l]:[]),200)},[o,r,n])};function insertBlocksAtPosition(o,n,r,a){let i=o.filter(u=>!u._parent);r&&(i=o.filter(u=>u._parent===r));const l=a!==void 0?a:i.length;let c=o.length;for(let u=0,d=0;u<o.length;u++)if(o[u]._parent===r){if(d===l){c=u;break}d++}return!r&&a!==void 0&&a>=i.length&&(c=o.length),[...o.slice(0,c),...n,...o.slice(c)]}function flattenTree(o){let n=[];return o.walk(r=>(delete r.model.children,n.push(r.model),!0)),n}function findNodeById(o,n){return o.first(r=>r.model._id===n)||null}function moveNode(o,n,r,a){const i=findNodeById(o,n),l=findNodeById(o,r);if(i&&l){i.drop(),l.children||(l.model.children=[]);try{l.addChildAtIndex(i,a)}catch(c){return console.error("Error adding child to parent:",c),!1}return!0}return!1}function moveBlocksWithChildren(o,n,r,a){if(!n)return o;r=r||"root";const l=new TreeModel().parse({_id:"root",children:getBlocksTree(o)});if(moveNode(l,n,r,a)){const c=flattenTree(l),u=c.find(d=>d._id===n);return u&&(u._parent=r==="root"?null:r),c.shift(),c}return o}const useBlocksStoreManager=()=>{const[,o]=useBlocksStore();return{setNewBlocks:n=>{o(n)},addBlocks:(n,r,a)=>{o(i=>insertBlocksAtPosition(i,n,r,a))},removeBlocks:n=>{o(r=>removeNestedBlocks(r,n))},moveBlocks:(n,r,a)=>{o(i=>{let l=i;for(let c=0;c<n.length;c++)l=moveBlocksWithChildren(l,n[c],r,a);return l})},updateBlocksProps:n=>{o(r=>{const a=n.map(i=>i._id);return r.map(i=>{if(a.includes(i._id)){const l=lodashEs.find(n,{_id:i._id});return{...i,...lodashEs.omit(l,"_id")}}return i})})}}},useBlocksStore=()=>jotai.useAtom(presentBlocksAtom),useBlocksStoreUndoableActions=()=>{const{add:o}=useUndoManager(),[n]=useBlocksStore(),{setNewBlocks:r,addBlocks:a,removeBlocks:i,moveBlocks:l,updateBlocksProps:c}=useBlocksStoreManager();return{moveBlocks:(R,j,f)=>{const y=lodashEs.map(R,w=>{const A=n.find(N=>N._id===w)._parent||null,T=n.filter(N=>A?N._parent===A:!N._parent).map(N=>N._id).indexOf(w);return{_id:w,oldParent:A,oldPosition:T}}),S=y.find(({_id:w})=>w===R[0]);S&&S.oldParent===j&&S.oldPosition===f||(l(R,j,f),o({undo:()=>lodashEs.each(y,({_id:w,oldParent:C,oldPosition:A})=>{l([w],C,A)}),redo:()=>l(R,j,f)}))},addBlocks:(R,j,f)=>{a(R,j,f),o({undo:()=>i(lodashEs.map(R,"_id")),redo:()=>a(R,j,f)})},removeBlocks:R=>{var S;const j=(S=lodashEs.first(R))==null?void 0:S._parent,y=n.filter(w=>j?w._parent===j:!w._parent).indexOf(lodashEs.first(R));i(lodashEs.map(R,"_id")),o({undo:()=>a(R,j,y),redo:()=>i(lodashEs.map(R,"_id"))})},updateBlocks:(R,j,f)=>{let y=[];if(f)y=lodashEs.map(R,S=>({_id:S,...f}));else{const S=lodashEs.keys(j);y=lodashEs.map(R,w=>{const C=n.find(I=>I._id===w),A={_id:w};return lodashEs.each(S,I=>A[I]=C[I]),A})}c(lodashEs.map(R,S=>({_id:S,...j}))),o({undo:()=>c(y),redo:()=>c(lodashEs.map(R,S=>({_id:S,...j})))})},updateBlocksRuntime:(R,j)=>{c(lodashEs.map(R,f=>({_id:f,...j})))},setNewBlocks:R=>{r(R),o({undo:()=>r(n),redo:()=>r(R)})},updateMultipleBlocksProps:R=>{let j=[];j=lodashEs.map(R,f=>{const y=lodashEs.keys(f),S=n.find(C=>C._id===f._id),w={};return lodashEs.each(y,C=>w[C]=S[C]),w}),c(R),o({undo:()=>c(j),redo:()=>c(R)})}}},useAddBlock=()=>{const[o]=useBlocksStore(),[,n]=useSelectedBlockIds(),{addBlocks:r}=useBlocksStoreUndoableActions(),a=React.useCallback((l,c,u)=>{var h;for(let E=0;E<l.length;E++){const{_id:R}=l[E];l[E]._id=iconBase.generateUUID();const j=lodashEs.filter(l,{_parent:R});for(let f=0;f<j.length;f++)j[f]._parent=l[E]._id}const d=lodashEs.first(l);let x,m;return c&&(x=lodashEs.find(o,{_id:c}),l[0]._parent=c,m=c),!(x?canAcceptChildBlock(x==null?void 0:x._type,d._type):!0)&&x&&(l[0]._parent=x._parent,m=x._parent),r(l,m,u),n([(h=lodashEs.first(l))==null?void 0:h._id]),lodashEs.first(l)},[r,o,n]);return{addCoreBlock:React.useCallback((l,c,u)=>{if(lodashEs.has(l,"blocks")){const j=l.blocks;return a(j,c,u)}const d=iconBase.generateUUID(),x=runtime.getDefaultBlockProps(l.type);console.log("props",l);const m={_type:l.type,_id:d,...x};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),r([m],h,u),n([m._id]),m},[r,a,o,n]),addPredefinedBlock:a}},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"},backgroundColor:{classes:[],regExp:"bg-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},backgroundAttachment:{classes:["bg-fixed","bg-local","bg-scroll"],regExp:"bg-(fixed|local|scroll)"},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__|\\S+-\\d+)"},border:{classes:["border",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-${o}`)],regExp:"border-?(\\d+|\\S+|\\[.*\\])?"},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,r=>`${n}-${o}-${r}`)))))]),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 r=[];if(o.colors){const a=lodashEs.flattenDeep(lodashEs.map(o.colors,({items:i})=>lodashEs.keys(i)));r=lodashEs.flattenDeep(lodashEs.map(a,i=>lodashEs.flatten(lodashEs.map(colorKeys,l=>`${l}-${i}`))))}return o.fontFamily&&(r=[...r,...lodashEs.map(lodashEs.keys(o.fontFamily),a=>`${a}`)]),lodashEs.map(r,a=>({name:a}))},[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 i=lodashEs.flattenDeep(lodashEs.map(o.colors,({items:l})=>lodashEs.keys(l)));lodashEs.each(CLASSES_LIST,(l,c)=>{lodashEs.set(CLASSES_LIST,`${c}.regExp`,l.regExp.replace("__THEME_COLORS_REGEXP__",i.join("|")))})}return CLASSES_LIST},[o]),r=React.useCallback((i,l)=>{const c=lodashEs.get(n,`${i}.regExp`,"");return l.match(new RegExp(c))},[n]),a=React.useCallback((i,l=[])=>lodashEs.get(n,`${i}.classes`,l),[n]);return{match:r,getClasses:a}};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,a=>`${a}:`).join("|"),r=new RegExp(n,"g");return lodashEs.get(r.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 r in CLASSES_LIST){const a=lodashEs.get(CLASSES_LIST,`${r}.regExp`,"");if(new RegExp(a,"g").test(o)){n=r,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}const MEDIA_QUERIES={xs:420,sm:620,md:768,lg:1024,xl:1280,"2xl":1536},breakpoints=["xs","sm","md","lg","xl","2xl"];function getBelongsToForClass(o,n){if(n===null)return"baseClasses";const r=n.mq;if(r==="xs"||n.dark||n.mod!=="")return"classes";let a="baseClasses",i=breakpoints.indexOf(r);for(;i>0;){const l=breakpoints[i-1];if(lodashEs.find(o,{mq:l,property:n.property})){a="classes";break}i--}return a}const IGNORED_BASES_CLASSES_PROPERTIES=[];function getNewClasses(o="",n="",r=[]){o=o.trim().replace(/ +/g,"");let a=lodashEs.filter(lodashEs.map(o.split(" "),constructClassObject),x=>!lodashEs.isNull(x)),i=lodashEs.filter(lodashEs.map(n.split(" "),constructClassObject),x=>!lodashEs.isNull(x));i=lodashEs.filter(i,x=>!lodashEs.includes(IGNORED_BASES_CLASSES_PROPERTIES,x.property));const l=[],c=[];lodashEs.each(r,x=>{const m=constructClassObject(x),g=lodashEs.find(a,lodashEs.pick(m,["dark","mq","mod","property"]));if(g&&(a=lodashEs.filter(a,h=>h.fullCls!==(g==null?void 0:g.fullCls))),l.push(m),m.mq==="xs"&&!m.dark&&m.mod===""&&(i=lodashEs.filter(i,h=>h.property!==m.property)),getBelongsToForClass(a,m)==="baseClasses"&&!lodashEs.includes(IGNORED_BASES_CLASSES_PROPERTIES,m.property)){const h=lodashEs.find(i,lodashEs.pick(m,["property"]));g&&(i=lodashEs.filter(i,E=>E.fullCls!==(h==null?void 0:h.fullCls))),c.push({...m,fullCls:m.cls,mq:"xs"})}});const u=lodashEs.map(lodashEs.sortBy([...a,...l],x=>MEDIA_QUERIES[x.mq]),"fullCls").join(" ");return`${lodashEs.map(lodashEs.sortBy([...i,...c],x=>MEDIA_QUERIES[x.mq]),"fullCls").join(" ").trim()},${u.trim()}`.trim().replace(/ +/g,"")}const selectedStylingBlocksAtom=jotai.atom([]);selectedStylingBlocksAtom.debugLabel="selectedStylingBlocksAtom";const useSelectedStylingBlocks=()=>jotai.useAtom(selectedStylingBlocksAtom),getSplitClasses$1=o=>{const n=o.replace(STRINGS.STYLES_KEY,"").split(",");return{baseClasses:n[0],classes:n[1]}},addClassesToBlocksAtom=jotai.atom(null,(o,n,{blockIds:r,newClasses:a})=>{const i=lodashEs.filter(o(pageBlocksAtomsAtom),c=>r.includes(o(c)._id)),l=lodashEs.first(o(selectedStylingBlocksAtom));return lodashEs.map(i,c=>{const u=o(c),d=lodashEs.get(u,l.prop,`${STRINGS.STYLES_KEY},`),{baseClasses:x,classes:m}=getSplitClasses$1(d);return{ids:[u._id],props:{[l.prop]:`${STRINGS.STYLES_KEY}${getNewClasses(m,x,a)}`}}})}),useAddClassesToBlocks=()=>{const o=jotai.useSetAtom(addClassesToBlocksAtom),{updateBlocks:n,updateBlocksRuntime:r}=useBlocksStoreUndoableActions();return React.useCallback((a,i,l=!1)=>{const c=o({blockIds:a,newClasses:i});if(!l){r(a,c[0].props);return}n(a,c[0].props)},[o])},useStylingBreakpoint=()=>jotai.useAtom(styleBreakpointAtom),canvasWidthAtom=atomWithStorage("canvasWidth",800),canvasBreakpointAtom=jotai.atom(o=>{const n=o(canvasWidthAtom);return iconBase.getBreakpointValue(n).toLowerCase()}),useCanvasWidth=()=>{const[o,n]=jotai.useAtom(canvasWidthAtom),r=jotai.useAtomValue(canvasBreakpointAtom),[a,i]=useStylingBreakpoint();return React.useEffect(()=>{a!=="xs"&&i(r)},[r,a,i]),[o,r,n]},canvasZoomAtom=atomWithStorage("canvasZoom",100),useCanvasZoom=()=>jotai.useAtom(canvasZoomAtom),cutBlockIdsAtom=jotai.atom([]),useCutBlockIds=()=>{const[o,n]=jotai.useAtom(cutBlockIdsAtom),r=jotai.useSetAtom(copiedBlockIdsAtom),a=React.useCallback(i=>{n(i),r([])},[n,r]);return[o,a]},copiedBlockIdsAtom=jotai.atom([]),useCopyBlockIds=()=>{const[o,n]=jotai.useAtom(copiedBlockIdsAtom),r=jotai.useSetAtom(cutBlockIdsAtom),a=React.useCallback(i=>{n(i),r([])},[n,r]);return[o,a]},darkModeAtom=atomWithStorage("darkMode",!1),useDarkMode=()=>{const[o,n]=jotai.useAtom(darkModeAtom);return[o,n]},useDuplicateBlocks=()=>{const[o]=useBlocksStore(),[,n]=useSelectedBlockIds(),{addBlocks:r}=useBlocksStoreUndoableActions();return React.useCallback((a,i=null)=>{const l=[];lodashEs.each(a,c=>{const u=o.find(h=>h._id===c);i||(i=u._parent);const m=lodashEs.filter(o,h=>lodashEs.isString(i)?h._parent===i:!u._parent).indexOf(u)+1,g=getDuplicatedBlocks(o,c,i);r(g,i,m),l.push(lodashEs.get(g,"0._id",""))}),n(l)},[o,n])},hiddenBlockIdsAtom=jotai.atom([]),useHiddenBlockIds=()=>{const[o,n]=jotai.useAtom(hiddenBlockIdsAtom),r=React.useCallback(a=>{n(i=>lodashEs.includes(i,a)?lodashEs.without(i,a):[...i,a])},[n]);return[o,n,r]},highlightBlockIdAtom=jotai.atom(""),useHighlightBlockId=()=>jotai.useAtom(highlightBlockIdAtom),useCanPaste=()=>{const[o]=useBlocksStore();return(n,r)=>{var l;const a=(l=lodashEs.find(o,{_id:r}))==null?void 0:l._type,i=lodashEs.first(n.map(c=>{var u;return(u=lodashEs.find(o,{_id:c}))==null?void 0:u._type}));return canAcceptChildBlock(a,i)}},useMoveCutBlocks=()=>{const o=jotai.useAtomValue(presentBlocksAtom),{moveBlocks:n}=useBlocksStoreUndoableActions();return React.useCallback((r,a)=>{const i=a[0],l=o.find(u=>u._id===a),c=l?l.children.length:0;n(r,i,c)},[n,o])},usePasteBlocks=()=>{const o=jotai.useAtomValue(copiedBlockIdsAtom),[n,r]=useCutBlockIds(),a=useDuplicateBlocks(),i=useMoveCutBlocks(),l=useCanPaste();return{canPaste:React.useCallback(u=>o.length>0?l(o,u):n.length>0?l(n,u):!1,[l,o,n]),pasteBlocks:React.useCallback(u=>{const d=Array.isArray(u)?u[0]:u;lodashEs.isEmpty(o)?i(n,u):a(o,d),r([])},[n,o,a,i,r])}},previewModeAtom=jotai.atom(!1),usePreviewMode=()=>{const[o,n]=jotai.useAtom(previewModeAtom);return[o,n]},getSplitClasses=o=>{const n=o.replace(STRINGS.STYLES_KEY,"").split(",");return{baseClasses:n[0],classes:n[1]}},removeClassFromBlocksAtom=jotai.atom(null,(o,n,{blockIds:r,fullClasses:a})=>{const i=lodashEs.first(o(selectedStylingBlocksAtom)),l=lodashEs.filter(o(pageBlocksAtomsAtom),c=>r.includes(o(c)._id));return lodashEs.map(l,c=>{const u=o(c),d=a;let{classes:x,baseClasses:m}=getSplitClasses(lodashEs.get(u,i.prop,"styles:,"));return lodashEs.each(d,g=>{const h=g.replace(/[\[\]\/\\{}()*+?.^$|]/g,"\\$&"),E=new RegExp(`(^| )${h}($| )`,"g");x=x.replace(E," ").replace(/ +/g," ").trim();const R=lodashEs.first(g.split(":"));lodashEs.includes(["2xl","xl","lg","md","sm"],R)&&d.push(g.split(":").pop().trim())}),lodashEs.each(d,g=>{const h=new RegExp(`(^| )${g.replace("[","\\[").replace("]","\\]")}($| )`,"g");m=m.replace(h," ").replace(/ +/g," ").trim()}),{ids:[u._id],props:{[i.prop]:`${STRINGS.STYLES_KEY}${m},${x}`}}})}),useRemoveClassesFromBlocks=()=>{const{updateBlocks:o}=useBlocksStoreUndoableActions(),n=jotai.useSetAtom(removeClassFromBlocksAtom);return React.useCallback((r,a)=>{const i=n({blockIds:r,fullClasses:a});o(r,i[0].props)},[n])},selectedBlockAllClassesAtom=jotai.atom(o=>{const n=lodashEs.first(o(selectedStylingBlocksAtom)),r=o(selectedBlockAtom);if(!n||n.blockId!==lodashEs.get(r,"_id",null))return[];const i=lodashEs.get(r,n.prop,`${STRINGS.STYLES_KEY},`).replace(STRINGS.STYLES_KEY,"").split(",").join(" ");return lodashEs.filter(lodashEs.map(i.trim().split(" "),constructClassObject),l=>!lodashEs.isNull(l))}),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),r=o(styleStateAtom),a=o(darkModeAtom),i=getQueries(n);let l=lodashEs.filter(o(selectedBlockAllClassesAtom),{mod:r});return lodashEs.startsWith(r,"_")||(l=lodashEs.filter(l,c=>i.includes(c.mq))),l=l.sort((c,u)=>MQ[c.mq]-MQ[u.mq]),a||(l=lodashEs.filter(l,{dark:!1})),l}),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),useStylingState=()=>jotai.useAtom(styleStateAtom),languageAtom=jotai.atom("");languageAtom.debugLabel="selectedLanguageAtom";const useLanguages=()=>{const o=useBuilderProp("languages",[]),n=useBuilderProp("fallbackLang","en"),[r,a]=jotai.useAtom(languageAtom),i=l=>{a(n===l?"":l)};return{languages:o==null?void 0:o.filter(l=>l!==n),fallbackLang:n,selectedLang:r,setSelectedLang:i}},updatePropsForLanguage=lodashEs.memoize((o,n,r)=>{const a=runtime.getRegisteredChaiBlock(lodashEs.get(r,"_type"));if(!a)return o;const i={...o};return lodashEs.forEach(lodashEs.keys(o),l=>{if(lodashEs.includes(lodashEs.get(a,"i18nProps",[]),l)&&!lodashEs.isEmpty(n)){const c=`${l}-${n}`;lodashEs.set(i,c,o[l]),lodashEs.unset(i,l)}}),i}),useUpdateBlocksProps=()=>{const{updateBlocks:o}=useBlocksStoreUndoableActions(),{selectedLang:n}=useLanguages(),r=useSelectedBlock();return React.useCallback((a,i,l)=>{const c=updatePropsForLanguage(i,n,r);o(a,c,l)},[n,r,o])},useUpdateMultipleBlocksProps=()=>{const{updateMultipleBlocksProps:o}=useBlocksStoreUndoableActions();return React.useCallback(n=>{o(n)},[o])},useFakeStreamEffect=()=>{const{updateBlocksRuntime:o}=useBlocksStoreUndoableActions();return React.useCallback(async(n,r,a=30)=>{const i=lodashEs.keys(lodashEs.omit(r,["_id"]));for(const l of i){const c=r[l];if(lodashEs.isString(c)){const u=lodashEs.chunk(c.split(""),12);let d="";o([n],{[l]:""});for(let x=0;x<u.length;x++)d+=u[x].join(""),o([n],{[l]:d}),await new Promise(m=>setTimeout(m,a))}}},[o])},useStreamMultipleBlocksProps=()=>{const{updateMultipleBlocksProps:o}=useBlocksStoreUndoableActions(),n=useFakeStreamEffect();return React.useCallback(async r=>{for(const a of r)await n(a._id,a);o(r)},[n,o])},useUpdateBlocksPropsRealtime=()=>{const{updateBlocksRuntime:o}=useBlocksStoreUndoableActions(),{selectedLang:n}=useLanguages(),r=useSelectedBlock();return React.useCallback((a,i)=>{const l=updatePropsForLanguage(i,n,r);o(a,l)},[n,r,o])},selectedBreakpointsAtom=atomWithStorage("selectedBreakpoints",["XS","MD","XL"]),useSelectedBreakpoints=()=>{const[o,n]=jotai.useAtom(selectedBreakpointsAtom);return[o,n]},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";let lastHighlighted=null;const useBlockHighlight=()=>{const[o]=jotai.useAtom(canvasIframeAtom);return{highlightBlock:a=>{var c;const i=o.contentDocument||((c=o.contentWindow)==null?void 0:c.document);lastHighlighted&&lastHighlighted.removeAttribute("data-highlighted");const l=i.querySelector(`[data-block-id="${a}"]`);l?(l.setAttribute("data-highlighted","true"),lastHighlighted=l):lastHighlighted=null},clearHighlight:()=>{lastHighlighted&&(lastHighlighted.removeAttribute("data-highlighted"),lastHighlighted=null)},lastHighlighted}},globalBlocksStoreAtom=atom({}),globalBlocksLoadingStateAtom=atom({}),useGlobalBlocksStore=()=>{const[o,n]=useAtom(globalBlocksStoreAtom),r=React.useCallback(i=>lodashEs.get(o,i==null?void 0:i.globalBlock,[]),[o]),a=React.useCallback(()=>{n({})},[n]);return{getGlobalBlocks:r,reset:a}},useWatchGlobalBlocks=()=>{const[o]=useBlocksStore(),[n,r]=useAtom(globalBlocksStoreAtom),[a,i]=useAtom(globalBlocksLoadingStateAtom),l=useBuilderProp("getGlobalBlockBlocks",async u=>[]),c=React.useMemo(()=>o.filter(d=>d._type==="GlobalBlock").filter(d=>d._type==="GlobalBlock").map(d=>d.globalBlock),[o]);React.useEffect(()=>{lodashEs.forEach(c,u=>{lodashEs.has(n,u)||lodashEs.get(a,`${u}.loading`,!1)||(i(d=>({...d,[u]:{loading:!0,error:null}})),l(u).then(d=>{r(x=>({...x,[u]:d})),i(x=>({...x,[u]:{loading:!1,error:null}}))}).catch(d=>{i(x=>({...x,[u]:{loading:!1,error:d.message}}))}))})},[l,n,c,a,r,i])},globalBlocksListAtom=atom({}),useGlobalBlocksList=()=>{const[o,n]=React.useState(!1),[r,a]=useAtom(globalBlocksListAtom),i=useBuilderProp("getGlobalBlocks",async()=>[]),l=React.useCallback(async()=>{n(!0);const c=await i();a(c),n(!1)},[i,a]);return React.useEffect(()=>{l()},[]),{data:r,isLoading:o,refetch:l}},useBuilderReset=()=>{const o=jotai.useSetAtom(historyStatesAtom),{clear:n}=useUndoManager(),[,r]=useSelectedBlockIds(),{clearHighlight:a}=useBlockHighlight(),[,i]=useSelectedStylingBlocks(),[,l]=useAtom(aiAssistantActiveAtom),{reset:c}=useGlobalBlocksStore();return()=>{r([]),i([]),a(),n(),l(!1),o({undoCount:0,redoCount:0}),c()}},useUILibraryBlocks=()=>({data:useBuilderProp("uiLibraries",[]),isLoading:!1}),useCopyToClipboard=()=>{const[o,n]=React.useState(null),r=React.useCallback(async a=>{if(!(navigator!=null&&navigator.clipboard))return console.warn("Clipboard not supported"),!1;try{return await navigator.clipboard.writeText(a),n(a),!0}catch(i){return console.warn("Copy failed",i),n(null),!1}},[]);return[o,r]},codeEditorAtom=jotai.atom(null),useCodeEditor=()=>jotai.useAtom(codeEditorAtom),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"};function getChildBlocks(o,n,r){r.push(lodashEs.find(o,{_id:n}));const a=lodashEs.filter(o,{_parent:n});for(const i of a)r.push(...getBlockWithChildren(i._id,o));return r}const getBlockWithChildren=(o,n)=>{let r=[];return r=lodashEs.flattenDeep([...r,...getChildBlocks(n,o,r)]),r},pickOnlyAIProps=(o,n)=>lodashEs.compact(o.map(r=>{const a=["_id","_type","_parent"],i=lodashEs.pick(r,a),l=runtime.getRegisteredChaiBlock(r._type),c={},u=lodashEs.get(l,"aiProps",[]);for(const d in r)a.includes(d)||u.includes(d)&&(c[d]=lodashEs.get(r,`${d}-${n}`,r[d]));return lodashEs.isEmpty(c)?!1:(lodashEs.has(i,"_parent")&&lodashEs.isEmpty(i._parent)&&delete i._parent,{...i,...c})})),addLangToPrompt=(o,n,r)=>!n||r!=="content"?o:`${o}. Generate content in ${lodashEs.get(LANGUAGES,n,n)} language.`,askAiProcessingAtom=jotai.atom(!1),useAskAi=()=>{const[o,n]=jotai.useAtom(askAiProcessingAtom),[r,a]=React.useState(null),i=useBuilderProp("askAiCallBack",null),l=useStreamMultipleBlocksProps(),c=useUpdateMultipleBlocksProps(),[u]=useBlocksStore(),{selectedLang:d,fallbackLang:x}=useLanguages(),m=d.length?d:x,g=(h,E)=>{const R=lodashEs.cloneDeep(E.find(j=>j._id===h));for(const j in R){const f=R[j];typeof f=="string"&&lodashEs.startsWith(f,STRINGS.STYLES_KEY)?R[j]=lodashEs.compact(lodashEs.flattenDeep(f.replace(STRINGS.STYLES_KEY,"").split(","))).join(" "):j!=="_id"&&delete R[j]}return R};return{askAi:React.useCallback(async(h,E,R,j)=>{if(i){n(!0),a(null);try{const f=d===x?"":d,y=h==="content"?pickOnlyAIProps(lodashEs.cloneDeep(getBlockWithChildren(E,u)),d):[g(E,u)],S=await i(h,addLangToPrompt(R,m,h),y,f),{blocks:w,error:C}=S;if(C){a(C);return}if(h==="styles"){const A=w.map(I=>{for(const T in I)T!=="_id"&&(I[T]=`${STRINGS.STYLES_KEY},${I[T]}`);return I});c(A)}else l(w);j&&j(S)}catch(f){a(f)}finally{n(!1),j&&j()}}},[i,n,d,x,u,m,c,l]),loading:o,error:r}},useAiAssistant=()=>{const[,o]=useRightPanel();return React.useCallback(n=>{o(n?"ai":"block")},[o])},layoutVariantAtom=atomWithStorage("_layout_variant_mode","DUAL_SIDE_PANEL"),useLayoutVariant=()=>{const[o,n]=jotai.useAtom(layoutVariantAtom),r=useBuilderProp("layoutVariant","DUAL_SIDE_PANEL");return[o||r,n]},IframeInitialContent=`<!doctype html>
1
+ "use strict";var U=Object.defineProperty;var F=(o,n,r)=>n in o?U(o,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[n]=r;var V=(o,n,r)=>(F(o,typeof n!="symbol"?n+"":n,r),r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const jsxRuntime=require("./jsx-runtime-JYMCiFoE.cjs"),React=require("react"),contextMenu=require("./context-menu-4nQs6OxC.cjs"),lodashEs=require("lodash-es"),jotai=require("jotai"),iconBase=require("./iconBase-aZzpqff_.cjs"),reactI18next=require("react-i18next"),ChaiThemeFn=require("./ChaiThemeFn-6Rmrzvu_.cjs"),web=require("@react-hookz/web"),lodash=require("lodash"),STRINGS=require("./STRINGS-sVplluh6.cjs"),TreeModel=require("tree-model"),runtime=require("@chaibuilder/runtime"),ReactQuill=require("react-quill"),flagged=require("flagged"),reactHotkeysHook=require("react-hotkeys-hook"),dom=require("@floating-ui/dom"),reactDom=require("@floating-ui/react-dom"),reactIcons=require("@radix-ui/react-icons"),typography=require("@tailwindcss/typography"),forms=require("@tailwindcss/forms"),aspectRatio=require("@tailwindcss/aspect-ratio"),tailwindMerge=require("tailwind-merge"),reactWrapBalancer=require("react-wrap-balancer"),ReactDOM=require("react-dom"),PropTypes=require("prop-types"),reactErrorBoundary=require("react-error-boundary"),reResizable=require("re-resizable"),lucideReact=require("lucide-react"),reactArborist=require("react-arborist"),himalaya=require("himalaya"),RjForm=require("@rjsf/core"),validator=require("@rjsf/validator-ajv8"),IconPicker=require("react-icons-picker"),Autosuggest=require("react-autosuggest"),Fuse=require("fuse.js"),clsx=require("clsx"),i18n=require("i18next"),framerMotion=require("framer-motion");require("@radix-ui/react-switch");require("@radix-ui/react-accordion");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-slot");require("class-variance-authority");require("@radix-ui/react-dialog");require("@radix-ui/react-label");require("@radix-ui/react-scroll-area");require("@radix-ui/react-tabs");require("@radix-ui/react-tooltip");require("@radix-ui/react-popover");require("@radix-ui/react-hover-card");require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-separator");require("@radix-ui/react-toast");require("@radix-ui/react-context-menu");function _interopNamespaceDefault(o){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const r in o)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(o,r);Object.defineProperty(n,r,a.get?a:{enumerable:!0,get:()=>o[r]})}}return n.default=o,Object.freeze(n)}const React__namespace=_interopNamespaceDefault(React),canAcceptChildBlock=(o,n)=>{if(!o)return!0;const r=runtime.getRegisteredChaiBlock(o);return r&&lodashEs.has(r,"canAcceptBlock")?r.canAcceptBlock(n):!1},canAddChildBlock=o=>{const n=runtime.getRegisteredChaiBlock(o);return n?lodashEs.has(n,"canAcceptBlock"):!1},canBeNestedInside=(o,n)=>{const r=runtime.getRegisteredChaiBlock(n);return r&&lodashEs.has(r,"canBeNested")?r.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};var define_import_meta_env_default$2={VITE_OPENAI_API_KEY:"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",VITE_UNSPASH_ACCESS_KEY:"XgYBCm-XCHecRMsbfhw6oZWGkltco1U5TYMEd0LXZeA",VITE_JOTAI_DEVTOOL_ENABLED:"true",BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};let keyCount=0;function atom(o,n){const r=`atom${++keyCount}`,a={toString:()=>r};return typeof o=="function"?a.read=o:(a.init=o,a.read=i=>i(a),a.write=(i,l,c)=>l(a,typeof c=="function"?c(i(a)):c)),n&&(a.write=n),a}const hasInitialValue=o=>"init"in o,isActuallyWritableAtom=o=>!!o.write,cancelPromiseMap=new WeakMap,registerCancelPromise=(o,n)=>{cancelPromiseMap.set(o,n),o.catch(()=>{}).finally(()=>cancelPromiseMap.delete(o))},cancelPromise=(o,n)=>{const r=cancelPromiseMap.get(o);r&&(cancelPromiseMap.delete(o),r(n))},resolvePromise=(o,n)=>{o.status="fulfilled",o.value=n},rejectPromise=(o,n)=>{o.status="rejected",o.reason=n},isPromiseLike$2=o=>typeof(o==null?void 0:o.then)=="function",isEqualAtomValue=(o,n)=>"v"in o&&"v"in n&&Object.is(o.v,n.v),isEqualAtomError=(o,n)=>"e"in o&&"e"in n&&Object.is(o.e,n.e),hasPromiseAtomValue=o=>"v"in o&&o.v instanceof Promise,isEqualPromiseAtomValue=(o,n)=>"v"in o&&"v"in n&&o.v.orig&&o.v.orig===n.v.orig,returnAtomValue=o=>{if("e"in o)throw o.e;return o.v},createStore=()=>{const o=new WeakMap,n=new WeakMap,r=new Map;let a,i,l;(define_import_meta_env_default$2?"production":void 0)!=="production"&&(a=new Set,i=new Set,l=new Set);const c=p=>o.get(p),u=(p,b)=>{(define_import_meta_env_default$2?"production":void 0)!=="production"&&Object.freeze(b);const k=o.get(p);if(o.set(p,b),r.has(p)||r.set(p,k),k&&hasPromiseAtomValue(k)){const v="v"in b?b.v instanceof Promise?b.v:Promise.resolve(b.v):Promise.reject(b.e);cancelPromise(k.v,v)}},d=(p,b,k)=>{const v=new Map;let _=!1;k.forEach((B,L)=>{!B&&L===p&&(B=b),B?(v.set(L,B),b.d.get(L)!==B&&(_=!0)):(define_import_meta_env_default$2?"production":void 0)!=="production"&&console.warn("[Bug] atom state not found")}),(_||b.d.size!==v.size)&&(b.d=v)},x=(p,b,k)=>{const v=c(p),_={d:(v==null?void 0:v.d)||new Map,v:b};if(k&&d(p,_,k),v&&isEqualAtomValue(v,_)&&v.d===_.d)return v;if(v&&hasPromiseAtomValue(v)&&hasPromiseAtomValue(_)&&isEqualPromiseAtomValue(v,_)){if(v.d===_.d)return v;_.v=v.v}return u(p,_),_},m=(p,b,k,v)=>{if(isPromiseLike$2(b)){let _;const B=new Promise((L,O)=>{let M=!1;b.then(D=>{if(!M){M=!0;const P=c(p),H=x(p,B,k);resolvePromise(B,D),L(D),(P==null?void 0:P.d)!==H.d&&I(p,H,P==null?void 0:P.d)}},D=>{if(!M){M=!0;const P=c(p),H=x(p,B,k);rejectPromise(B,D),O(D),(P==null?void 0:P.d)!==H.d&&I(p,H,P==null?void 0:P.d)}}),_=D=>{M||(M=!0,D.then(P=>resolvePromise(B,P),P=>rejectPromise(B,P)),L(D))}});return B.orig=b,B.status="pending",registerCancelPromise(B,L=>{L&&_(L),v==null||v()}),x(p,B,k)}return x(p,b,k)},g=(p,b,k)=>{const v=c(p),_={d:(v==null?void 0:v.d)||new Map,e:b};return k&&d(p,_,k),v&&isEqualAtomError(v,_)&&v.d===_.d?v:(u(p,_),_)},h=p=>{const b=c(p);if(b&&(b.d.forEach((M,D)=>{D!==p&&!n.has(D)&&h(D)}),Array.from(b.d).every(([M,D])=>{const P=c(M);return M===p||P===D||P&&!hasPromiseAtomValue(P)&&isEqualAtomValue(P,D)})))return b;const k=new Map;let v=!0;const _=M=>{if(M===p){const P=c(M);if(P)return k.set(M,P),returnAtomValue(P);if(hasInitialValue(M))return k.set(M,void 0),M.init;throw new Error("no atom init")}const D=h(M);return k.set(M,D),returnAtomValue(D)};let B,L;const O={get signal(){return B||(B=new AbortController),B.signal},get setSelf(){return(define_import_meta_env_default$2?"production":void 0)!=="production"&&!isActuallyWritableAtom(p)&&console.warn("setSelf function cannot be used with read-only atom"),!L&&isActuallyWritableAtom(p)&&(L=(...M)=>{if((define_import_meta_env_default$2?"production":void 0)!=="production"&&v&&console.warn("setSelf function cannot be called in sync"),!v)return w(p,...M)}),L}};try{const M=p.read(_,O);return m(p,M,k,()=>B==null?void 0:B.abort())}catch(M){return g(p,M,k)}finally{v=!1}},E=p=>returnAtomValue(h(p)),R=p=>{let b=n.get(p);return b||(b=C(p)),b},j=(p,b)=>!b.l.size&&(!b.t.size||b.t.size===1&&b.t.has(p)),f=p=>{const b=n.get(p);b&&j(p,b)&&A(p)},y=p=>{const b=new Map,k=new WeakMap,v=B=>{const L=n.get(B);L==null||L.t.forEach(O=>{O!==B&&(b.set(O,(b.get(O)||new Set).add(B)),k.set(O,(k.get(O)||0)+1),v(O))})};v(p);const _=B=>{const L=n.get(B);L==null||L.t.forEach(O=>{var M;if(O!==B){let D=k.get(O);if(D&&k.set(O,--D),!D){let P=!!((M=b.get(O))!=null&&M.size);if(P){const H=c(O),$=h(O);P=!H||!isEqualAtomValue(H,$)}P||b.forEach(H=>H.delete(O))}_(O)}})};_(p)},S=(p,...b)=>{let k=!0;const v=L=>returnAtomValue(h(L)),_=(L,...O)=>{let M;if(L===p){if(!hasInitialValue(L))throw new Error("atom not writable");const D=c(L),P=m(L,O[0]);(!D||!isEqualAtomValue(D,P))&&y(L)}else M=S(L,...O);if(!k){const D=T();(define_import_meta_env_default$2?"production":void 0)!=="production"&&i.forEach(P=>P({type:"async-write",flushed:D}))}return M},B=p.write(v,_,...b);return k=!1,B},w=(p,...b)=>{const k=S(p,...b),v=T();return(define_import_meta_env_default$2?"production":void 0)!=="production"&&i.forEach(_=>_({type:"write",flushed:v})),k},C=(p,b)=>{const k={t:new Set(b&&[b]),l:new Set};if(n.set(p,k),(define_import_meta_env_default$2?"production":void 0)!=="production"&&l.add(p),h(p).d.forEach((v,_)=>{const B=n.get(_);B?B.t.add(p):_!==p&&C(_,p)}),h(p),isActuallyWritableAtom(p)&&p.onMount){const v=p.onMount((..._)=>w(p,..._));v&&(k.u=v)}return k},A=p=>{var b;const k=(b=n.get(p))==null?void 0:b.u;k&&k(),n.delete(p),(define_import_meta_env_default$2?"production":void 0)!=="production"&&l.delete(p);const v=c(p);v?(hasPromiseAtomValue(v)&&cancelPromise(v.v),v.d.forEach((_,B)=>{if(B!==p){const L=n.get(B);L&&(L.t.delete(p),j(B,L)&&A(B))}})):(define_import_meta_env_default$2?"production":void 0)!=="production"&&console.warn("[Bug] could not find atom state to unmount",p)},I=(p,b,k)=>{const v=new Set(b.d.keys());k==null||k.forEach((_,B)=>{if(v.has(B)){v.delete(B);return}const L=n.get(B);L&&(L.t.delete(p),j(B,L)&&A(B))}),v.forEach(_=>{const B=n.get(_);B?B.t.add(p):n.has(p)&&C(_,p)})},T=()=>{let p;for((define_import_meta_env_default$2?"production":void 0)!=="production"&&(p=new Set);r.size;){const b=Array.from(r);r.clear(),b.forEach(([k,v])=>{const _=c(k);if(_){_.d!==(v==null?void 0:v.d)&&I(k,_,v==null?void 0:v.d);const B=n.get(k);B&&!(v&&!hasPromiseAtomValue(v)&&(isEqualAtomValue(v,_)||isEqualAtomError(v,_)))&&(B.l.forEach(L=>L()),(define_import_meta_env_default$2?"production":void 0)!=="production"&&p.add(k))}else(define_import_meta_env_default$2?"production":void 0)!=="production"&&console.warn("[Bug] no atom state to flush")})}if((define_import_meta_env_default$2?"production":void 0)!=="production")return a.forEach(b=>b("state")),p},N=(p,b)=>{const k=R(p),v=T(),_=k.l;return _.add(b),(define_import_meta_env_default$2?"production":void 0)!=="production"&&(a.forEach(B=>B("sub")),i.forEach(B=>B({type:"sub",flushed:v}))),()=>{_.delete(b),f(p),(define_import_meta_env_default$2?"production":void 0)!=="production"&&(a.forEach(B=>B("unsub")),i.forEach(B=>B({type:"unsub"})))}};return(define_import_meta_env_default$2?"production":void 0)!=="production"?{get:E,set:w,sub:N,dev_subscribe_store:(p,b)=>b!==2?(console.warn("The current StoreListener revision is 2. The older ones are deprecated."),a.add(p),()=>{a.delete(p)}):(i.add(p),()=>{i.delete(p)}),dev_get_mounted_atoms:()=>l.values(),dev_get_atom_state:p=>o.get(p),dev_get_mounted:p=>n.get(p),dev_restore_atoms:p=>{for(const[k,v]of p)hasInitialValue(k)&&(m(k,v),y(k));const b=T();i.forEach(k=>k({type:"restore",flushed:b}))}}:{get:E,set:w,sub:N}};let defaultStore;const getDefaultStore=()=>(defaultStore||(defaultStore=createStore()),defaultStore);var define_import_meta_env_default$1={VITE_OPENAI_API_KEY:"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",VITE_UNSPASH_ACCESS_KEY:"XgYBCm-XCHecRMsbfhw6oZWGkltco1U5TYMEd0LXZeA",VITE_JOTAI_DEVTOOL_ENABLED:"true",BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const RESET=Symbol(),getCached$1=(o,n,r)=>(n.has(r)?n:n.set(r,o())).get(r),cache1$2=new WeakMap,memo2$1=(o,n,r)=>{const a=getCached$1(()=>new WeakMap,cache1$2,n);return getCached$1(o,a,r)},cacheKeyForEmptyKeyExtractor={},isWritable=o=>!!o.write,isFunction=o=>typeof o=="function";function splitAtom(o,n){return memo2$1(()=>{const r=new WeakMap,a=(c,u)=>{let d=r.get(c);if(d)return d;const x=u&&r.get(u),m=[],g=[];return c.forEach((h,E)=>{const R=n?n(h):E;g[E]=R;const j=x&&x.atomList[x.keyList.indexOf(R)];if(j){m[E]=j;return}const f=S=>{const w=S(i),C=S(o),I=a(C,w==null?void 0:w.arr).keyList.indexOf(R);if(I<0||I>=C.length){const T=c[a(c).keyList.indexOf(R)];if(T)return T;throw new Error("splitAtom: index out of bounds for read")}return C[I]},y=(S,w,C)=>{const A=S(i),I=S(o),N=a(I,A==null?void 0:A.arr).keyList.indexOf(R);if(N<0||N>=I.length)throw new Error("splitAtom: index out of bounds for write");const p=isFunction(C)?C(I[N]):C;w(o,[...I.slice(0,N),p,...I.slice(N+1)])};m[E]=isWritable(o)?atom(f,y):atom(f)}),x&&x.keyList.length===g.length&&x.keyList.every((h,E)=>h===g[E])?d=x:d={arr:c,atomList:m,keyList:g},r.set(c,d),d},i=atom(c=>{const u=c(i),d=c(o);return a(d,u==null?void 0:u.arr)});(define_import_meta_env_default$1?"production":void 0)!=="production"&&(i.debugPrivate=!0),i.init=void 0;const l=isWritable(o)?atom(c=>c(i).atomList,(c,u,d)=>{switch(d.type){case"remove":{const x=c(l).indexOf(d.atom);if(x>=0){const m=c(o);u(o,[...m.slice(0,x),...m.slice(x+1)])}break}case"insert":{const x=d.before?c(l).indexOf(d.before):c(l).length;if(x>=0){const m=c(o);u(o,[...m.slice(0,x),d.value,...m.slice(x)])}break}case"move":{const x=c(l).indexOf(d.atom),m=d.before?c(l).indexOf(d.before):c(l).length;if(x>=0&&m>=0){const g=c(o);x<m?u(o,[...g.slice(0,x),...g.slice(x+1,m),g[x],...g.slice(m)]):u(o,[...g.slice(0,m),g[x],...g.slice(m,x),...g.slice(x+1)])}break}}}):atom(c=>c(i).atomList);return l},o,n||cacheKeyForEmptyKeyExtractor)}const isPromiseLike$1=o=>typeof(o==null?void 0:o.then)=="function";function createJSONStorage(o){let n,r;const a={getItem:(i,l)=>{var c,u;const d=m=>{if(m=m||"",n!==m){try{r=JSON.parse(m)}catch{return l}n=m}return r},x=(u=(c=o())==null?void 0:c.getItem(i))!=null?u:null;return isPromiseLike$1(x)?x.then(d):d(x)},setItem:(i,l)=>{var c;return(c=o())==null?void 0:c.setItem(i,JSON.stringify(l))},removeItem:i=>{var l;return(l=o())==null?void 0:l.removeItem(i)}};return typeof window<"u"&&typeof window.addEventListener=="function"&&(a.subscribe=(i,l,c)=>{if(!(o()instanceof window.Storage))return()=>{};const u=d=>{if(d.storageArea===o()&&d.key===i){let x;try{x=JSON.parse(d.newValue||"")}catch{x=c}l(x)}};return window.addEventListener("storage",u),()=>{window.removeEventListener("storage",u)}}),a}const defaultStorage=createJSONStorage(()=>typeof window<"u"?window.localStorage:void 0);function atomWithStorage(o,n,r=defaultStorage,a){const i=a==null?void 0:a.unstable_getOnInit,l=atom(i?r.getItem(o,n):n);return(define_import_meta_env_default$1?"production":void 0)!=="production"&&(l.debugPrivate=!0),l.onMount=u=>{i||u(r.getItem(o,n));let d;return r.subscribe&&(d=r.subscribe(o,u,n)),d},atom(u=>u(l),(u,d,x)=>{const m=typeof x=="function"?x(u(l)):x;return m===RESET?(d(l,n),r.removeItem(o)):m instanceof Promise?m.then(g=>(d(l,g),r.setItem(o,g))):(d(l,m),r.setItem(o,m))})}var define_import_meta_env_default={VITE_OPENAI_API_KEY:"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",VITE_UNSPASH_ACCESS_KEY:"XgYBCm-XCHecRMsbfhw6oZWGkltco1U5TYMEd0LXZeA",VITE_JOTAI_DEVTOOL_ENABLED:"true",BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1};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",use=React.use||(o=>{if(o.status==="pending")throw o;if(o.status==="fulfilled")return o.value;throw o.status==="rejected"?o.reason:(o.status="pending",o.then(n=>{o.status="fulfilled",o.value=n},n=>{o.status="rejected",o.reason=n}),o)});function useAtomValue(o,n){const r=useStore(n),[[a,i,l],c]=React.useReducer(x=>{const m=r.get(o);return Object.is(x[0],m)&&x[1]===r&&x[2]===o?x:[m,r,o]},void 0,()=>[r.get(o),r,o]);let u=a;(i!==r||l!==o)&&(c(),u=r.get(o));const d=n==null?void 0:n.delay;return React.useEffect(()=>{const x=r.sub(o,()=>{if(typeof d=="number"){setTimeout(c,d);return}c()});return c(),x},[r,o,d]),React.useDebugValue(u),isPromiseLike(u)?use(u):u}function useSetAtom(o,n){const r=useStore(n);return React.useCallback((...i)=>{if((define_import_meta_env_default?"production":void 0)!=="production"&&!("write"in o))throw new Error("not writable atom");return r.set(o,...i)},[r,o])}function useAtom(o,n){return[useAtomValue(o,n),useSetAtom(o,n)]}function duplicateBlocks(o,n,r){const a=lodashEs.filter(o,l=>l._parent===n),i=[];for(let l=0;l<a.length;l++){const c=getSlots(a[l]);if(Object.keys(c).length>0&&Object.keys(c).forEach(u=>{a[l][u]=`slot:${iconBase.generateUUID()}`}),lodashEs.filter(o,{_parent:a[l]._id}).length>0){const u=iconBase.generateUUID();i.push({...a[l],oldId:a[l]._id,_id:u,_parent:r}),i.push(lodashEs.flatten(duplicateBlocks(o,a[l]._id,u)))}else i.push({...a[l],oldId:a[l]._id,_id:iconBase.generateUUID(),_parent:r})}return lodashEs.flatten(i)}function convertToBlocksTree(o){const n={};o.forEach(a=>{n[a._id]={...a,children:[]}});const r=[];return o.forEach(a=>{if(a._parent){const i=n[a._parent];i&&i.children.push(n[a._id])}else r.push(n[a._id])}),r}const getSlots=o=>{const n={};return Object.keys(o).forEach(r=>{lodashEs.isString(o[r])&&o[r].startsWith("slot")&&(n[r]=o[r].replace("slot:",""))}),n},getDuplicatedBlocks=(o,n,r=null)=>{let a=lodashEs.find(o,{_id:n});a={...a,oldId:a._id,_id:iconBase.generateUUID()},r&&(a={...a,_parent:r});const i=[a];lodashEs.filter(o,{_parent:n}).length>0&&i.push(lodashEs.flatten(duplicateBlocks(o,n,a._id)));const l=lodashEs.flatten(i);return lodashEs.map(l,c=>{const u=c,d=getSlots(u);return Object.keys(d).length>0&&Object.keys(d).forEach(x=>{const m=lodashEs.find(l,{oldId:d[x].replace("slot:","")});u[x]=`slot:${m._id}`}),lodashEs.omit(u,["global","oldId"])})},presentBlocksAtom=jotai.atom([]);presentBlocksAtom.debugLabel="presentBlocksAtom";const treeDSBlocks=jotai.atom(o=>{const n=o(presentBlocksAtom);return convertToBlocksTree([...n])});treeDSBlocks.debugLabel="treeDSBlocks";presentBlocksAtom.debugLabel="presentBlocksAtom";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,r=>lodashEs.has(r,"blockId"))});globalBlocksAtom.debugLabel="globalBlocksAtom";const selectedBlockIdsAtom=jotai.atom([]);selectedBlockIdsAtom.debugLabel="selectedBlockIdsAtom";const selectedBlocksAtom=jotai.atom(o=>{const n=o(presentBlocksAtom),r=o(selectedBlockIdsAtom);return lodashEs.map(lodashEs.filter(n,({_id:a})=>lodashEs.includes(r,a)),a=>({...a}))});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),r=lodashEs.map(n,getParentId);return lodashEs.filter(o(presentBlocksAtom),a=>lodashEs.includes(r,a._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),r=o(presentBlocksAtom);let a=n;const i=[n];do{const l=r.find(({_id:c})=>c===(a==null?void 0:a._parent));a=l,l&&i.push(l)}while(a!=null&&a._parent);return i}),useSelectedBlockHierarchy=()=>lodashEs.compact(jotai.useAtomValue(selectedBlockHierarchy)),useSelectedBlockIds=()=>{const[o,n]=jotai.useAtom(selectedBlockIdsAtom),r=React.useCallback(a=>{n(i=>lodashEs.includes(i,a)?lodashEs.without(i,a):[...i,a])},[n]);return[o,n,r]};var undomanager={exports:{}};(function(o){(function(){function n(a,i,l){return a.splice(i,!l||1+l-i+(!(l<0^i>=0)&&(l<0||-1)*a.length)),a.length}let r=function(){let a=[],i=-1,l=0,c=!1,u;function d(x,m){return!x||typeof x[m]!="function"?this:(c=!0,x[m](),c=!1,this)}return{add:function(x){return c?this:(a.splice(i+1,a.length-i),a.push(x),l&&a.length>l&&n(a,0,-(l+1)),i=a.length-1,u&&u(),this)},setCallback:function(x){u=x},undo:function(){let x=a[i];if(!x)return this;const m=x.groupId;for(;x.groupId===m&&(d(x,"undo"),i-=1,x=a[i],!(!x||!x.groupId)););return u&&u(),this},redo:function(){let x=a[i+1];if(!x)return this;const m=x.groupId;for(;x.groupId===m&&(d(x,"redo"),i+=1,x=a[i+1],!(!x||!x.groupId)););return u&&u(),this},clear:function(){let x=a.length;a=[],i=-1,u&&x>0&&u()},hasUndo:function(){return i!==-1},hasRedo:function(){return i<a.length-1},getCommands:function(x){return x?a.filter(m=>m.groupId===x):a},getIndex:function(){return i},setLimit:function(x){l=x}}};o.exports?o.exports=r:window.UndoManager=r})()})(undomanager);var undomanagerExports=undomanager.exports;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)});function getBlocksTree(o){return convertToBlocksTree(o)}const nestedToFlatArray=(o,n)=>lodashEs.flatten(o.map(r=>{if(r=n?{...r,_parent:n}:{...r},r.children){const a=[...r.children];return delete r.children,lodashEs.flatten([r,...nestedToFlatArray(a,r._id)])}return r}));function setProjectBlocksInMemory(o,n=!1){for(let r=0;r<o.length;r++){const a=o[r];a.global&&!n?o[r]={type:"GlobalBlock",blockId:a.blockId,_parent:lodashEs.get(a,"_parent",null),_id:a._id}:a.children&&a.children.length&&setProjectBlocksInMemory(a.children)}}function getInnerBlocks(o){let n=[],r=lodashEs.filter(o,{type:"GlobalBlock"});return r.length>0&&(r=lodashEs.map(r,getPBlocks),lodashEs.each(r,a=>{n=[...n,...getSingleBlock(a)]})),n}function getSingleBlock(o){let n=[];const r=lodashEs.get(lodashEs.first(o),"_parent",null);lodashEs.set(lodashEs.first(o),"_parent",null);const a=[flatToNestedInstance.convert(clone(o))];setProjectBlocksInMemory(a,!0);let i=nestedToFlatArray(a,o[0]._id);return i=lodashEs.set(i,"0._parent",r),n=[...n,i,...getInnerBlocks(i)],n}function getPBlocks(o){const n=lodashEs.find(FLAT_ARRAY,{_id:o._id});if(!n)return[];const r=[n],a=lodashEs.filter(FLAT_ARRAY,{_parent:o._id});return a.length?lodashEs.flatten([...r,...lodashEs.flatten(lodashEs.map(a,getPBlocks))]):lodashEs.flatten(r)}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 r=nestedToFlatArray(n,null),a=getInnerBlocks(r),i={};return lodashEs.each(a,l=>lodashEs.set(i,lodashEs.first(l).blockId,l)),[r,i]}const useGetPageData=()=>{const[o]=useBrandingOptions(),{currentPage:n}=useCurrentPage(),[r]=useBlocksStore();return React.useCallback(()=>{const a=lodashEs.map(r,l=>lodashEs.omit(l,["expanded","order","title","siblings","tempClasses"])),[i=[]]=splitPageBlocks(a);return{currentPage:n,blocks:i}},[o,n,r])},chaiBuilderPropsAtom=jotai.atom(null);chaiBuilderPropsAtom.debugLabel="chaiBuilderPropsAtom";const chaiExternalDataAtom=jotai.atom({});chaiExternalDataAtom.debugLabel="chaiExternalDataAtom";const useBuilderProp=(o,n=void 0)=>{const r=jotai.useAtomValue(chaiBuilderPropsAtom);return lodashEs.get(r,o,n)},getDefaultThemeValues=(o=STRINGS.defaultThemeOptions)=>{const n={};return o.fontFamily&&(n.fontFamily=Object.entries(o.fontFamily).reduce((r,[a,i])=>({...r,[a.replace("font-","")]:i}),{})),n.borderRadius=o.borderRadius,o.colors&&(n.colors=o.colors.reduce((r,a)=>(Object.entries(a.items).forEach(([i,l])=>{r[i]=l}),r),{})),n},chaiThemeValuesAtom=jotai.atom({}),useTheme=()=>{const o=useThemeOptions(),n=React.useMemo(()=>getDefaultThemeValues(o),[o]),r=useBuilderProp("theme",{}),[a,i]=jotai.useAtom(chaiThemeValuesAtom);return[{...n,...!lodash.isEmpty(r)&&r,...!lodash.isEmpty(a)&&a},i]},useThemeOptions=()=>{const o=useBuilderProp("themeOptions",r=>r);return React.useMemo(()=>o(STRINGS.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),r=useBuilderProp("onSave",async u=>{}),a=useBuilderProp("onSaveStateChange",lodashEs.noop),i=useGetPageData(),[l]=useTheme();return{savePage:web.useThrottledCallback(async(u=!1)=>{n("SAVING"),a("SAVING");const d=i();return await r({autoSave:u,blocks:d.blocks,theme:l}),setTimeout(()=>{n("SAVED"),a("SAVED")},100),!0},[i,n,l,r,a],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}},removeNestedBlocks=(o,n)=>{const r=[],a=lodashEs.filter(o,i=>lodashEs.includes(n,i._id)||lodashEs.includes(n,i._parent)?(r.push(i._id),!1):!0);return lodashEs.isEmpty(r)?a:removeNestedBlocks(a,r)},useRemoveBlocks=()=>{const[o]=useBlocksStore(),[n,r]=useSelectedBlockIds(),{setNewBlocks:a}=useBlocksStoreUndoableActions();return React.useCallback(i=>{var c;const l=((c=lodashEs.find(o,{_id:i[0]}))==null?void 0:c._parent)||null;a(removeNestedBlocks(o,i)),setTimeout(()=>r(l?[l]:[]),200)},[o,r,n])};function insertBlocksAtPosition(o,n,r,a){let i=o.filter(u=>!u._parent);r&&(i=o.filter(u=>u._parent===r));const l=a!==void 0?a:i.length;let c=o.length;for(let u=0,d=0;u<o.length;u++)if(o[u]._parent===r){if(d===l){c=u;break}d++}return!r&&a!==void 0&&a>=i.length&&(c=o.length),[...o.slice(0,c),...n,...o.slice(c)]}function flattenTree(o){let n=[];return o.walk(r=>(delete r.model.children,n.push(r.model),!0)),n}function findNodeById(o,n){return o.first(r=>r.model._id===n)||null}function moveNode(o,n,r,a){const i=findNodeById(o,n),l=findNodeById(o,r);if(i&&l){i.drop(),l.children||(l.model.children=[]);try{l.addChildAtIndex(i,a)}catch(c){return console.error("Error adding child to parent:",c),!1}return!0}return!1}function moveBlocksWithChildren(o,n,r,a){if(!n)return o;r=r||"root";const l=new TreeModel().parse({_id:"root",children:getBlocksTree(o)});if(moveNode(l,n,r,a)){const c=flattenTree(l),u=c.find(d=>d._id===n);return u&&(u._parent=r==="root"?null:r),c.shift(),c}return o}const useBlocksStoreManager=()=>{const[,o]=useBlocksStore();return{setNewBlocks:n=>{o(n)},addBlocks:(n,r,a)=>{o(i=>insertBlocksAtPosition(i,n,r,a))},removeBlocks:n=>{o(r=>removeNestedBlocks(r,n))},moveBlocks:(n,r,a)=>{o(i=>{let l=i;for(let c=0;c<n.length;c++)l=moveBlocksWithChildren(l,n[c],r,a);return l})},updateBlocksProps:n=>{o(r=>{const a=n.map(i=>i._id);return r.map(i=>{if(a.includes(i._id)){const l=lodashEs.find(n,{_id:i._id});return{...i,...lodashEs.omit(l,"_id")}}return i})})}}},useBlocksStore=()=>jotai.useAtom(presentBlocksAtom),useBlocksStoreUndoableActions=()=>{const{add:o}=useUndoManager(),[n]=useBlocksStore(),{setNewBlocks:r,addBlocks:a,removeBlocks:i,moveBlocks:l,updateBlocksProps:c}=useBlocksStoreManager();return{moveBlocks:(R,j,f)=>{const y=lodashEs.map(R,w=>{const A=n.find(N=>N._id===w)._parent||null,T=n.filter(N=>A?N._parent===A:!N._parent).map(N=>N._id).indexOf(w);return{_id:w,oldParent:A,oldPosition:T}}),S=y.find(({_id:w})=>w===R[0]);S&&S.oldParent===j&&S.oldPosition===f||(l(R,j,f),o({undo:()=>lodashEs.each(y,({_id:w,oldParent:C,oldPosition:A})=>{l([w],C,A)}),redo:()=>l(R,j,f)}))},addBlocks:(R,j,f)=>{a(R,j,f),o({undo:()=>i(lodashEs.map(R,"_id")),redo:()=>a(R,j,f)})},removeBlocks:R=>{var S;const j=(S=lodashEs.first(R))==null?void 0:S._parent,y=n.filter(w=>j?w._parent===j:!w._parent).indexOf(lodashEs.first(R));i(lodashEs.map(R,"_id")),o({undo:()=>a(R,j,y),redo:()=>i(lodashEs.map(R,"_id"))})},updateBlocks:(R,j,f)=>{let y=[];if(f)y=lodashEs.map(R,S=>({_id:S,...f}));else{const S=lodashEs.keys(j);y=lodashEs.map(R,w=>{const C=n.find(I=>I._id===w),A={_id:w};return lodashEs.each(S,I=>A[I]=C[I]),A})}c(lodashEs.map(R,S=>({_id:S,...j}))),o({undo:()=>c(y),redo:()=>c(lodashEs.map(R,S=>({_id:S,...j})))})},updateBlocksRuntime:(R,j)=>{c(lodashEs.map(R,f=>({_id:f,...j})))},setNewBlocks:R=>{r(R),o({undo:()=>r(n),redo:()=>r(R)})},updateMultipleBlocksProps:R=>{let j=[];j=lodashEs.map(R,f=>{const y=lodashEs.keys(f),S=n.find(C=>C._id===f._id),w={};return lodashEs.each(y,C=>w[C]=S[C]),w}),c(R),o({undo:()=>c(j),redo:()=>c(R)})}}},useAddBlock=()=>{const[o]=useBlocksStore(),[,n]=useSelectedBlockIds(),{addBlocks:r}=useBlocksStoreUndoableActions(),a=React.useCallback((l,c,u)=>{var h;for(let E=0;E<l.length;E++){const{_id:R}=l[E];l[E]._id=iconBase.generateUUID();const j=lodashEs.filter(l,{_parent:R});for(let f=0;f<j.length;f++)j[f]._parent=l[E]._id}const d=lodashEs.first(l);let x,m;return c&&(x=lodashEs.find(o,{_id:c}),l[0]._parent=c,m=c),!(x?canAcceptChildBlock(x==null?void 0:x._type,d._type):!0)&&x&&(l[0]._parent=x._parent,m=x._parent),r(l,m,u),n([(h=lodashEs.first(l))==null?void 0:h._id]),lodashEs.first(l)},[r,o,n]);return{addCoreBlock:React.useCallback((l,c,u)=>{if(lodashEs.has(l,"blocks")){const j=l.blocks;return a(j,c,u)}const d=iconBase.generateUUID(),x=runtime.getDefaultBlockProps(l.type);console.log("props",l);const m={_type:l.type,_id:d,...x};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),r([m],h,u),n([m._id]),m},[r,a,o,n]),addPredefinedBlock:a}},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"},backgroundColor:{classes:[],regExp:"bg-(black|transparent|current|white|__THEME_COLORS_REGEXP__|\\S+-\\d+)"},backgroundAttachment:{classes:["bg-fixed","bg-local","bg-scroll"],regExp:"bg-(fixed|local|scroll)"},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__|\\S+-\\d+)"},border:{classes:["border",...lodashEs.map(CLASS_VALUES.borderWidth,o=>`border-${o}`)],regExp:"border-?(\\d+|\\S+|\\[.*\\])?"},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,r=>`${n}-${o}-${r}`)))))]),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 r=[];if(o.colors){const a=lodashEs.flattenDeep(lodashEs.map(o.colors,({items:i})=>lodashEs.keys(i)));r=lodashEs.flattenDeep(lodashEs.map(a,i=>lodashEs.flatten(lodashEs.map(colorKeys,l=>`${l}-${i}`))))}return o.fontFamily&&(r=[...r,...lodashEs.map(lodashEs.keys(o.fontFamily),a=>`${a}`)]),lodashEs.map(r,a=>({name:a}))},[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 i=lodashEs.flattenDeep(lodashEs.map(o.colors,({items:l})=>lodashEs.keys(l)));lodashEs.each(CLASSES_LIST,(l,c)=>{lodashEs.set(CLASSES_LIST,`${c}.regExp`,l.regExp.replace("__THEME_COLORS_REGEXP__",i.join("|")))})}return CLASSES_LIST},[o]),r=React.useCallback((i,l)=>{const c=lodashEs.get(n,`${i}.regExp`,"");return l.match(new RegExp(c))},[n]),a=React.useCallback((i,l=[])=>lodashEs.get(n,`${i}.classes`,l),[n]);return{match:r,getClasses:a}};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,a=>`${a}:`).join("|"),r=new RegExp(n,"g");return lodashEs.get(r.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 r in CLASSES_LIST){const a=lodashEs.get(CLASSES_LIST,`${r}.regExp`,"");if(new RegExp(a,"g").test(o)){n=r,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}const MEDIA_QUERIES={xs:420,sm:620,md:768,lg:1024,xl:1280,"2xl":1536},breakpoints=["xs","sm","md","lg","xl","2xl"];function getBelongsToForClass(o,n){if(n===null)return"baseClasses";const r=n.mq;if(r==="xs"||n.dark||n.mod!=="")return"classes";let a="baseClasses",i=breakpoints.indexOf(r);for(;i>0;){const l=breakpoints[i-1];if(lodashEs.find(o,{mq:l,property:n.property})){a="classes";break}i--}return a}const IGNORED_BASES_CLASSES_PROPERTIES=[];function getNewClasses(o="",n="",r=[]){o=o.trim().replace(/ +/g,"");let a=lodashEs.filter(lodashEs.map(o.split(" "),constructClassObject),x=>!lodashEs.isNull(x)),i=lodashEs.filter(lodashEs.map(n.split(" "),constructClassObject),x=>!lodashEs.isNull(x));i=lodashEs.filter(i,x=>!lodashEs.includes(IGNORED_BASES_CLASSES_PROPERTIES,x.property));const l=[],c=[];lodashEs.each(r,x=>{const m=constructClassObject(x),g=lodashEs.find(a,lodashEs.pick(m,["dark","mq","mod","property"]));if(g&&(a=lodashEs.filter(a,h=>h.fullCls!==(g==null?void 0:g.fullCls))),l.push(m),m.mq==="xs"&&!m.dark&&m.mod===""&&(i=lodashEs.filter(i,h=>h.property!==m.property)),getBelongsToForClass(a,m)==="baseClasses"&&!lodashEs.includes(IGNORED_BASES_CLASSES_PROPERTIES,m.property)){const h=lodashEs.find(i,lodashEs.pick(m,["property"]));g&&(i=lodashEs.filter(i,E=>E.fullCls!==(h==null?void 0:h.fullCls))),c.push({...m,fullCls:m.cls,mq:"xs"})}});const u=lodashEs.map(lodashEs.sortBy([...a,...l],x=>MEDIA_QUERIES[x.mq]),"fullCls").join(" ");return`${lodashEs.map(lodashEs.sortBy([...i,...c],x=>MEDIA_QUERIES[x.mq]),"fullCls").join(" ").trim()},${u.trim()}`.trim().replace(/ +/g,"")}const selectedStylingBlocksAtom=jotai.atom([]);selectedStylingBlocksAtom.debugLabel="selectedStylingBlocksAtom";const useSelectedStylingBlocks=()=>jotai.useAtom(selectedStylingBlocksAtom),getSplitClasses$1=o=>{const n=o.replace(STRINGS.STYLES_KEY,"").split(",");return{baseClasses:n[0],classes:n[1]}},addClassesToBlocksAtom=jotai.atom(null,(o,n,{blockIds:r,newClasses:a})=>{const i=lodashEs.filter(o(pageBlocksAtomsAtom),c=>r.includes(o(c)._id)),l=lodashEs.first(o(selectedStylingBlocksAtom));return lodashEs.map(i,c=>{const u=o(c),d=lodashEs.get(u,l.prop,`${STRINGS.STYLES_KEY},`),{baseClasses:x,classes:m}=getSplitClasses$1(d);return{ids:[u._id],props:{[l.prop]:`${STRINGS.STYLES_KEY}${getNewClasses(m,x,a)}`}}})}),useAddClassesToBlocks=()=>{const o=jotai.useSetAtom(addClassesToBlocksAtom),{updateBlocks:n,updateBlocksRuntime:r}=useBlocksStoreUndoableActions();return React.useCallback((a,i,l=!1)=>{const c=o({blockIds:a,newClasses:i});if(!l){r(a,c[0].props);return}n(a,c[0].props)},[o])},useStylingBreakpoint=()=>jotai.useAtom(styleBreakpointAtom),canvasWidthAtom=atomWithStorage("canvasWidth",800),canvasBreakpointAtom=jotai.atom(o=>{const n=o(canvasWidthAtom);return iconBase.getBreakpointValue(n).toLowerCase()}),useCanvasWidth=()=>{const[o,n]=jotai.useAtom(canvasWidthAtom),r=jotai.useAtomValue(canvasBreakpointAtom),[a,i]=useStylingBreakpoint();return React.useEffect(()=>{a!=="xs"&&i(r)},[r,a,i]),[o,r,n]},canvasZoomAtom=atomWithStorage("canvasZoom",100),useCanvasZoom=()=>jotai.useAtom(canvasZoomAtom),cutBlockIdsAtom=jotai.atom([]),useCutBlockIds=()=>{const[o,n]=jotai.useAtom(cutBlockIdsAtom),r=jotai.useSetAtom(copiedBlockIdsAtom),a=React.useCallback(i=>{n(i),r([])},[n,r]);return[o,a]},copiedBlockIdsAtom=jotai.atom([]),useCopyBlockIds=()=>{const[o,n]=jotai.useAtom(copiedBlockIdsAtom),r=jotai.useSetAtom(cutBlockIdsAtom),a=React.useCallback(i=>{n(i),r([])},[n,r]);return[o,a]},darkModeAtom=atomWithStorage("darkMode",!1),useDarkMode=()=>{const[o,n]=jotai.useAtom(darkModeAtom);return[o,n]},useDuplicateBlocks=()=>{const[o]=useBlocksStore(),[,n]=useSelectedBlockIds(),{addBlocks:r}=useBlocksStoreUndoableActions();return React.useCallback((a,i=null)=>{const l=[];lodashEs.each(a,c=>{const u=o.find(h=>h._id===c);i||(i=u._parent);const m=lodashEs.filter(o,h=>lodashEs.isString(i)?h._parent===i:!u._parent).indexOf(u)+1,g=getDuplicatedBlocks(o,c,i);r(g,i,m),l.push(lodashEs.get(g,"0._id",""))}),n(l)},[o,n])},hiddenBlockIdsAtom=jotai.atom([]),useHiddenBlockIds=()=>{const[o,n]=jotai.useAtom(hiddenBlockIdsAtom),r=React.useCallback(a=>{n(i=>lodashEs.includes(i,a)?lodashEs.without(i,a):[...i,a])},[n]);return[o,n,r]},highlightBlockIdAtom=jotai.atom(""),useHighlightBlockId=()=>jotai.useAtom(highlightBlockIdAtom),useCanPaste=()=>{const[o]=useBlocksStore();return(n,r)=>{var l;const a=(l=lodashEs.find(o,{_id:r}))==null?void 0:l._type,i=lodashEs.first(n.map(c=>{var u;return(u=lodashEs.find(o,{_id:c}))==null?void 0:u._type}));return canAcceptChildBlock(a,i)}},useMoveCutBlocks=()=>{const o=jotai.useAtomValue(presentBlocksAtom),{moveBlocks:n}=useBlocksStoreUndoableActions();return React.useCallback((r,a)=>{const i=a[0],l=o.find(u=>u._id===a),c=l?l.children.length:0;n(r,i,c)},[n,o])},usePasteBlocks=()=>{const o=jotai.useAtomValue(copiedBlockIdsAtom),[n,r]=useCutBlockIds(),a=useDuplicateBlocks(),i=useMoveCutBlocks(),l=useCanPaste();return{canPaste:React.useCallback(u=>o.length>0?l(o,u):n.length>0?l(n,u):!1,[l,o,n]),pasteBlocks:React.useCallback(u=>{const d=Array.isArray(u)?u[0]:u;lodashEs.isEmpty(o)?i(n,u):a(o,d),r([])},[n,o,a,i,r])}},previewModeAtom=jotai.atom(!1),usePreviewMode=()=>{const[o,n]=jotai.useAtom(previewModeAtom);return[o,n]},getSplitClasses=o=>{const n=o.replace(STRINGS.STYLES_KEY,"").split(",");return{baseClasses:n[0],classes:n[1]}},removeClassFromBlocksAtom=jotai.atom(null,(o,n,{blockIds:r,fullClasses:a})=>{const i=lodashEs.first(o(selectedStylingBlocksAtom)),l=lodashEs.filter(o(pageBlocksAtomsAtom),c=>r.includes(o(c)._id));return lodashEs.map(l,c=>{const u=o(c),d=a;let{classes:x,baseClasses:m}=getSplitClasses(lodashEs.get(u,i.prop,"styles:,"));return lodashEs.each(d,g=>{const h=g.replace(/[\[\]\/\\{}()*+?.^$|]/g,"\\$&"),E=new RegExp(`(^| )${h}($| )`,"g");x=x.replace(E," ").replace(/ +/g," ").trim();const R=lodashEs.first(g.split(":"));lodashEs.includes(["2xl","xl","lg","md","sm"],R)&&d.push(g.split(":").pop().trim())}),lodashEs.each(d,g=>{const h=new RegExp(`(^| )${g.replace("[","\\[").replace("]","\\]")}($| )`,"g");m=m.replace(h," ").replace(/ +/g," ").trim()}),{ids:[u._id],props:{[i.prop]:`${STRINGS.STYLES_KEY}${m},${x}`}}})}),useRemoveClassesFromBlocks=()=>{const{updateBlocks:o}=useBlocksStoreUndoableActions(),n=jotai.useSetAtom(removeClassFromBlocksAtom);return React.useCallback((r,a)=>{const i=n({blockIds:r,fullClasses:a});o(r,i[0].props)},[n])},selectedBlockAllClassesAtom=jotai.atom(o=>{const n=lodashEs.first(o(selectedStylingBlocksAtom)),r=o(selectedBlockAtom);if(!n||n.blockId!==lodashEs.get(r,"_id",null))return[];const i=lodashEs.get(r,n.prop,`${STRINGS.STYLES_KEY},`).replace(STRINGS.STYLES_KEY,"").split(",").join(" ");return lodashEs.filter(lodashEs.map(i.trim().split(" "),constructClassObject),l=>!lodashEs.isNull(l))}),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),r=o(styleStateAtom),a=o(darkModeAtom),i=getQueries(n);let l=lodashEs.filter(o(selectedBlockAllClassesAtom),{mod:r});return lodashEs.startsWith(r,"_")||(l=lodashEs.filter(l,c=>i.includes(c.mq))),l=l.sort((c,u)=>MQ[c.mq]-MQ[u.mq]),a||(l=lodashEs.filter(l,{dark:!1})),l}),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),useStylingState=()=>jotai.useAtom(styleStateAtom),languageAtom=jotai.atom("");languageAtom.debugLabel="selectedLanguageAtom";const useLanguages=()=>{const o=useBuilderProp("languages",[]),n=useBuilderProp("fallbackLang","en"),[r,a]=jotai.useAtom(languageAtom),i=l=>{a(n===l?"":l)};return{languages:o==null?void 0:o.filter(l=>l!==n),fallbackLang:n,selectedLang:r,setSelectedLang:i}},updatePropsForLanguage=lodashEs.memoize((o,n,r)=>{const a=runtime.getRegisteredChaiBlock(lodashEs.get(r,"_type"));if(!a)return o;const i={...o};return lodashEs.forEach(lodashEs.keys(o),l=>{if(lodashEs.includes(lodashEs.get(a,"i18nProps",[]),l)&&!lodashEs.isEmpty(n)){const c=`${l}-${n}`;lodashEs.set(i,c,o[l]),lodashEs.unset(i,l)}}),i}),useUpdateBlocksProps=()=>{const{updateBlocks:o}=useBlocksStoreUndoableActions(),{selectedLang:n}=useLanguages(),r=useSelectedBlock();return React.useCallback((a,i,l)=>{const c=updatePropsForLanguage(i,n,r);o(a,c,l)},[n,r,o])},useUpdateMultipleBlocksProps=()=>{const{updateMultipleBlocksProps:o}=useBlocksStoreUndoableActions();return React.useCallback(n=>{o(n)},[o])},useFakeStreamEffect=()=>{const{updateBlocksRuntime:o}=useBlocksStoreUndoableActions();return React.useCallback(async(n,r,a=30)=>{const i=lodashEs.keys(lodashEs.omit(r,["_id"]));for(const l of i){const c=r[l];if(lodashEs.isString(c)){const u=lodashEs.chunk(c.split(""),12);let d="";o([n],{[l]:""});for(let x=0;x<u.length;x++)d+=u[x].join(""),o([n],{[l]:d}),await new Promise(m=>setTimeout(m,a))}}},[o])},useStreamMultipleBlocksProps=()=>{const{updateMultipleBlocksProps:o}=useBlocksStoreUndoableActions(),n=useFakeStreamEffect();return React.useCallback(async r=>{for(const a of r)await n(a._id,a);o(r)},[n,o])},useUpdateBlocksPropsRealtime=()=>{const{updateBlocksRuntime:o}=useBlocksStoreUndoableActions(),{selectedLang:n}=useLanguages(),r=useSelectedBlock();return React.useCallback((a,i)=>{const l=updatePropsForLanguage(i,n,r);o(a,l)},[n,r,o])},selectedBreakpointsAtom=atomWithStorage("selectedBreakpoints",["XS","MD","XL"]),useSelectedBreakpoints=()=>{const[o,n]=jotai.useAtom(selectedBreakpointsAtom);return[o,n]},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";let lastHighlighted=null;const useBlockHighlight=()=>{const[o]=jotai.useAtom(canvasIframeAtom);return{highlightBlock:a=>{var c;const i=o.contentDocument||((c=o.contentWindow)==null?void 0:c.document);lastHighlighted&&lastHighlighted.removeAttribute("data-highlighted");const l=i.querySelector(`[data-block-id="${a}"]`);l?(l.setAttribute("data-highlighted","true"),lastHighlighted=l):lastHighlighted=null},clearHighlight:()=>{lastHighlighted&&(lastHighlighted.removeAttribute("data-highlighted"),lastHighlighted=null)},lastHighlighted}},globalBlocksStoreAtom=atom({}),globalBlocksLoadingStateAtom=atom({}),useGlobalBlocksStore=()=>{const[o,n]=useAtom(globalBlocksStoreAtom),r=React.useCallback(i=>lodashEs.get(o,i==null?void 0:i.globalBlock,[]),[o]),a=React.useCallback(()=>{n({})},[n]);return{getGlobalBlocks:r,reset:a}},useWatchGlobalBlocks=()=>{const[o]=useBlocksStore(),[n,r]=useAtom(globalBlocksStoreAtom),[a,i]=useAtom(globalBlocksLoadingStateAtom),l=useBuilderProp("getGlobalBlockBlocks",async u=>[]),c=React.useMemo(()=>o.filter(d=>d._type==="GlobalBlock").filter(d=>d._type==="GlobalBlock").map(d=>d.globalBlock),[o]);React.useEffect(()=>{lodashEs.forEach(c,u=>{lodashEs.has(n,u)||lodashEs.get(a,`${u}.loading`,!1)||(i(d=>({...d,[u]:{loading:!0,error:null}})),l(u).then(d=>{r(x=>({...x,[u]:d})),i(x=>({...x,[u]:{loading:!1,error:null}}))}).catch(d=>{i(x=>({...x,[u]:{loading:!1,error:d.message}}))}))})},[l,n,c,a,r,i])},globalBlocksListAtom=atom({}),useGlobalBlocksList=()=>{const[o,n]=React.useState(!1),[r,a]=useAtom(globalBlocksListAtom),i=useBuilderProp("getGlobalBlocks",async()=>[]),l=React.useCallback(async()=>{n(!0);const c=await i();a(c),n(!1)},[i,a]);return React.useEffect(()=>{l()},[]),{data:r,isLoading:o,refetch:l}},useBuilderReset=()=>{const o=jotai.useSetAtom(historyStatesAtom),{clear:n}=useUndoManager(),[,r]=useSelectedBlockIds(),{clearHighlight:a}=useBlockHighlight(),[,i]=useSelectedStylingBlocks(),[,l]=useAtom(aiAssistantActiveAtom),{reset:c}=useGlobalBlocksStore();return()=>{r([]),i([]),a(),n(),l(!1),o({undoCount:0,redoCount:0}),c()}},useUILibraryBlocks=()=>({data:useBuilderProp("uiLibraries",[]),isLoading:!1}),useCopyToClipboard=()=>{const[o,n]=React.useState(null),r=React.useCallback(async a=>{if(!(navigator!=null&&navigator.clipboard))return console.warn("Clipboard not supported"),!1;try{return await navigator.clipboard.writeText(a),n(a),!0}catch(i){return console.warn("Copy failed",i),n(null),!1}},[]);return[o,r]},codeEditorAtom=jotai.atom(null),useCodeEditor=()=>jotai.useAtom(codeEditorAtom),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"};function getChildBlocks(o,n,r){r.push(lodashEs.find(o,{_id:n}));const a=lodashEs.filter(o,{_parent:n});for(const i of a)r.push(...getBlockWithChildren(i._id,o));return r}const getBlockWithChildren=(o,n)=>{let r=[];return r=lodashEs.flattenDeep([...r,...getChildBlocks(n,o,r)]),r},pickOnlyAIProps=(o,n)=>lodashEs.compact(o.map(r=>{const a=["_id","_type","_parent"],i=lodashEs.pick(r,a),l=runtime.getRegisteredChaiBlock(r._type),c={},u=lodashEs.get(l,"aiProps",[]);for(const d in r)a.includes(d)||u.includes(d)&&(c[d]=lodashEs.get(r,`${d}-${n}`,r[d]));return lodashEs.isEmpty(c)?!1:(lodashEs.has(i,"_parent")&&lodashEs.isEmpty(i._parent)&&delete i._parent,{...i,...c})})),addLangToPrompt=(o,n,r)=>!n||r!=="content"?o:`${o}. Generate content in ${lodashEs.get(LANGUAGES,n,n)} language.`,askAiProcessingAtom=jotai.atom(!1),useAskAi=()=>{const[o,n]=jotai.useAtom(askAiProcessingAtom),[r,a]=React.useState(null),i=useBuilderProp("askAiCallBack",null),l=useStreamMultipleBlocksProps(),c=useUpdateMultipleBlocksProps(),[u]=useBlocksStore(),{selectedLang:d,fallbackLang:x}=useLanguages(),m=d.length?d:x,g=(h,E)=>{const R=lodashEs.cloneDeep(E.find(j=>j._id===h));for(const j in R){const f=R[j];typeof f=="string"&&lodashEs.startsWith(f,STRINGS.STYLES_KEY)?R[j]=lodashEs.compact(lodashEs.flattenDeep(f.replace(STRINGS.STYLES_KEY,"").split(","))).join(" "):j!=="_id"&&delete R[j]}return R};return{askAi:React.useCallback(async(h,E,R,j)=>{if(i){n(!0),a(null);try{const f=d===x?"":d,y=h==="content"?pickOnlyAIProps(lodashEs.cloneDeep(getBlockWithChildren(E,u)),d):[g(E,u)],S=await i(h,addLangToPrompt(R,m,h),y,f),{blocks:w,error:C}=S;if(C){a(C);return}if(h==="styles"){const A=w.map(I=>{for(const T in I)T!=="_id"&&(I[T]=`${STRINGS.STYLES_KEY},${I[T]}`);return I});c(A)}else l(w);j&&j(S)}catch(f){a(f)}finally{n(!1),j&&j()}}},[i,n,d,x,u,m,c,l]),loading:o,error:r}},useAiAssistant=()=>{const[,o]=useRightPanel();return React.useCallback(n=>{o(n?"ai":"block")},[o])},layoutVariantAtom=atomWithStorage("_layout_variant_mode","DUAL_SIDE_PANEL"),useLayoutVariant=()=>{const[o,n]=jotai.useAtom(layoutVariantAtom),r=useBuilderProp("layoutVariant","DUAL_SIDE_PANEL");return[o||r,n]},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">
package/dist/core.js CHANGED
@@ -973,7 +973,7 @@ chaiExternalDataAtom.debugLabel = "chaiExternalDataAtom";
973
973
  const useBuilderProp = (o, n = void 0) => {
974
974
  const r = useAtomValue$1(chaiBuilderPropsAtom);
975
975
  return get(r, o, n);
976
- }, getDefaultThemeValues = (o) => {
976
+ }, getDefaultThemeValues = (o = defaultThemeOptions) => {
977
977
  const n = {};
978
978
  return o.fontFamily && (n.fontFamily = Object.entries(o.fontFamily).reduce(
979
979
  (r, [a, l]) => ({
package/dist/render.cjs CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("lodash-es"),u=require("./STRINGS-sVplluh6.cjs"),g=require("./jsx-runtime-JYMCiFoE.cjs"),m=require("react"),_=require("tailwind-merge"),j=require("@chaibuilder/runtime"),B=require("@mhsdesign/jit-browser-tailwindcss"),q=require("@tailwindcss/forms"),R=require("@tailwindcss/typography"),Y=require("@tailwindcss/aspect-ratio"),y=require("./plugin-TWM10GFj.cjs"),S=require("./ChaiThemeFn-6Rmrzvu_.cjs"),L=(e,s="")=>{const t=e.replace(u.STYLES_KEY,"").split(",").map(i=>i.split(" ").map(a=>{if(a==="")return"";if(a.includes(":")){const l=a.split(":");return l[l.length-1]=s+r.last(l),l.join(":")}return`${s}${a}`}).join(" "));return r.flattenDeep(t).join(" ")},O=e=>{if(!e)return[];try{return JSON.parse(P(e)).filter(n=>!n._type.startsWith("@chai"))}catch{return[{_type:"Paragraph",_id:"error",content:"Invalid JSON. Please check the JSON string."}]}};function P(e){const s=/(asset:\/\/|https:\/\/asset\.localhost\/)(?:localhost\/)?[^"']+/g;return e.replace(s,n=>{const t=decodeURIComponent(n),i=t.indexOf("public");return i!==-1?t.substring(i+6):t})}const A=r.memoize((e,s)=>{const n=e.replace(u.STYLES_KEY,"").split(","),t=_.twMerge(n[0],n[1]);return s===""?t.replace(u.STYLES_KEY,"").trim():L(t,s).replace(u.STYLES_KEY,"").trim()});function N(e,s){const n=r.get(e,`${s}_attrs`,{}),t=r.keys(n).join(" ");return r.includes(t,"x-show")&&!r.includes(t,"x-transition")&&(n["x-transition"]=""),n}function $(e,s){const n={};return Object.keys(e).forEach(t=>{if(r.isString(e[t])&&e[t].startsWith(u.STYLES_KEY)){const i=A(e[t],s);n[t]={className:i,...N(e,t)}}}),n}function F(e,s){const n=r.get(e,"_bindings",{});return r.isEmpty(n)?{...e}:(r.each(n,(t,i)=>{r.isString(t)&&r.get(s,t,null)&&(e[i]=r.get(s,t,null))}),e)}function K(e,s,n){if(r.isEmpty(s))return e;const t=r.cloneDeep(e),i=r.get(n,"i18nProps",[]);return r.forEach(r.keys(t),c=>{i.includes(c)&&!r.isEmpty(s)&&(t[c]=r.get(t,`${c}-${s}`,t[c]))}),t}function E({blocks:e,parent:s,classPrefix:n="",externalData:t={},blockModifierCallback:i,lang:c,metadata:f={}}){const a=e,l=o=>$(o,n),T=s?r.filter(e,{_parent:s}):r.filter(e,o=>r.isEmpty(o._parent));return g.jsxRuntimeExports.jsx(g.jsxRuntimeExports.Fragment,{children:m.Children.toArray(T.map((o,w)=>{const h={},C=r.filter(a,{_parent:o._id});h.children=C.length>0?g.jsxRuntimeExports.jsx(E,{externalData:t,classPrefix:n,parent:o._id,blocks:a,lang:c,metadata:f}):null;const d=j.getRegisteredChaiBlock(o._type);if(d!==null){let p=o;const x=d.component;return p={...d.defaults,...o},i&&(p=i(p)),m.createElement(x,r.omit({blockProps:{},inBuilder:!1,...p,index:w,...F(K(o,c,d),t),...l(p),...h,metadata:f},["_parent"]))}return g.jsxRuntimeExports.jsxs("noscript",{children:[o._type," not found"]})}))})}async function M(e,s,n=[],t="",i=!1){return await B.createTailwindcss({tailwindConfig:{darkMode:"class",safelist:n,theme:{extend:y.getChaiBuilderTheme(e)},plugins:[q,R,Y,y.chaiBuilderPlugin],corePlugins:{preflight:i},...t?{prefix:`${t}`}:{}}}).generateStylesFromContent(` ${i?"@tailwind base;":""}
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("lodash-es"),u=require("./STRINGS-sVplluh6.cjs"),g=require("./jsx-runtime-JYMCiFoE.cjs"),m=require("react"),_=require("tailwind-merge"),j=require("@chaibuilder/runtime"),B=require("@mhsdesign/jit-browser-tailwindcss"),q=require("@tailwindcss/forms"),R=require("@tailwindcss/typography"),Y=require("@tailwindcss/aspect-ratio"),y=require("./plugin-TWM10GFj.cjs"),S=require("./ChaiThemeFn-6Rmrzvu_.cjs"),L=(e,s="")=>{const t=e.replace(u.STYLES_KEY,"").split(",").map(i=>i.split(" ").map(a=>{if(a==="")return"";if(a.includes(":")){const l=a.split(":");return l[l.length-1]=s+r.last(l),l.join(":")}return`${s}${a}`}).join(" "));return r.flattenDeep(t).join(" ")},O=e=>{if(!e)return[];try{return JSON.parse(P(e)).filter(n=>!n._type.startsWith("@chai"))}catch{return[{_type:"Paragraph",_id:"error",content:"Invalid JSON. Please check the JSON string."}]}};function P(e){const s=/(asset:\/\/|https:\/\/asset\.localhost\/)(?:localhost\/)?[^"']+/g;return e.replace(s,n=>{const t=decodeURIComponent(n),i=t.indexOf("public");return i!==-1?t.substring(i+6):t})}const A=r.memoize((e,s)=>{const n=e.replace(u.STYLES_KEY,"").split(","),t=_.twMerge(n[0],n[1]);return s===""?t.replace(u.STYLES_KEY,"").trim():L(t,s).replace(u.STYLES_KEY,"").trim()});function N(e,s){const n=r.get(e,`${s}_attrs`,{}),t=r.keys(n).join(" ");return r.includes(t,"x-show")&&!r.includes(t,"x-transition")&&(n["x-transition"]=""),n}function $(e,s){const n={};return Object.keys(e).forEach(t=>{if(r.isString(e[t])&&e[t].startsWith(u.STYLES_KEY)){const i=A(e[t],s);n[t]={className:i,...N(e,t)}}}),n}function F(e,s){const n=r.get(e,"_bindings",{});return r.isEmpty(n)?{...e}:(r.each(n,(t,i)=>{r.isString(t)&&r.get(s,t,null)&&(e[i]=r.get(s,t,null))}),e)}function K(e,s,n){if(r.isEmpty(s))return e;const t=r.cloneDeep(e),i=r.get(n,"i18nProps",[]);return r.forEach(r.keys(t),c=>{i.includes(c)&&!r.isEmpty(s)&&(t[c]=r.get(t,`${c}-${s}`,t[c]))}),t}function E({blocks:e,parent:s,classPrefix:n="",externalData:t={},blockModifierCallback:i,lang:c,metadata:f={}}){const a=e,l=o=>$(o,n),T=s?r.filter(e,{_parent:s}):r.filter(e,o=>r.isEmpty(o._parent));return g.jsxRuntimeExports.jsx(g.jsxRuntimeExports.Fragment,{children:m.Children.toArray(T.map((o,w)=>{const h={},C=r.filter(a,{_parent:o._id});h.children=C.length>0?g.jsxRuntimeExports.jsx(E,{externalData:t,classPrefix:n,parent:o._id,blocks:a,lang:c,metadata:f}):null;const d=j.getRegisteredChaiBlock(o._type);if(d!==null){let p=o;const x=d.component;return p={...d.defaults,...o},i&&(p=i(p)),m.createElement(x,r.omit({blockProps:{},inBuilder:!1,...p,index:w,...F(K(o,c,d),t),...l(p),...h,metadata:f},["_parent"]))}return g.jsxRuntimeExports.jsxs("noscript",{children:[o._type," not found"]})}))})}async function M(e,s,n=[],t="",i){return await B.createTailwindcss({tailwindConfig:{darkMode:"class",safelist:n,theme:{extend:y.getChaiBuilderTheme(e)},plugins:[q,R,Y,y.chaiBuilderPlugin],corePlugins:{preflight:i},...t?{prefix:`${t}`}:{}}}).generateStylesFromContent(` ${i?"@tailwind base;":""}
2
2
  @tailwind components;
3
- @tailwind utilities;`,s)}const v=(e,s,n=!1)=>M(s,[r.replace(JSON.stringify(e),/#styles:,?/g,"")],[],"",n),I=async(e,s=u.defaultThemeOptions,n=!0)=>await v(e,s,n);exports.getChaiThemeCssVariables=S.getChaiThemeCssVariables;exports.getThemeFontsLinkMarkup=S.getThemeFontsLinkMarkup;exports.RenderChaiBlocks=E;exports.convertToBlocks=O;exports.getStylesForBlocks=I;
3
+ @tailwind utilities;`,s)}const v=(e,s,n)=>M(s,[r.replace(JSON.stringify(e),/#styles:,?/g,"")],[],"",n),I=async(e,s=u.defaultThemeOptions,n=!1)=>await v(e,s,n);exports.getChaiThemeCssVariables=S.getChaiThemeCssVariables;exports.getThemeFontsLinkMarkup=S.getThemeFontsLinkMarkup;exports.RenderChaiBlocks=E;exports.convertToBlocks=O;exports.getStylesForBlocks=I;
package/dist/render.d.ts CHANGED
@@ -33,7 +33,7 @@ export declare const convertToBlocks: (chaiFormatContent: string) => ChaiBlock[]
33
33
 
34
34
  export declare const getChaiThemeCssVariables: (chaiTheme: Partial<ChaiBuilderThemeValues>) => string;
35
35
 
36
- export declare const getStylesForBlocks: (blocks: ChaiBlock[], theme?: ChaiBuilderThemeOptions, includeBaseStyles?: boolean) => Promise<string>;
36
+ export declare const getStylesForBlocks: (blocks: ChaiBlock[], themeOptions?: ChaiBuilderThemeOptions, includeBaseStyles?: boolean) => Promise<string>;
37
37
 
38
38
  export declare const getThemeFontsLinkMarkup: (chaiTheme: Pick<Partial<ChaiBuilderThemeValues>, "fontFamily">) => any;
39
39
 
package/dist/render.js CHANGED
@@ -123,7 +123,7 @@ function X({
123
123
  })
124
124
  ) });
125
125
  }
126
- async function Z(t, s, r = [], e = "", n = !1) {
126
+ async function Z(t, s, r = [], e = "", n) {
127
127
  return await v({
128
128
  tailwindConfig: {
129
129
  darkMode: "class",
@@ -140,7 +140,7 @@ async function Z(t, s, r = [], e = "", n = !1) {
140
140
  s
141
141
  );
142
142
  }
143
- const b = (t, s, r = !1) => Z(s, [J(JSON.stringify(t), /#styles:,?/g, "")], [], "", r), ut = async (t, s = F, r = !0) => await b(t, s, r);
143
+ const b = (t, s, r) => Z(s, [J(JSON.stringify(t), /#styles:,?/g, "")], [], "", r), ut = async (t, s = F, r = !1) => await b(t, s, r);
144
144
  export {
145
145
  X as RenderChaiBlocks,
146
146
  pt as convertToBlocks,
@@ -94,7 +94,7 @@ export declare const getChaiBuilderTailwindConfig: (content: string[]) => {
94
94
  plugins: any[];
95
95
  };
96
96
 
97
- export declare const getChaiBuilderTheme: (theme: ChaiBuilderThemeOptions) => {
97
+ export declare const getChaiBuilderTheme: (themeOptions: ChaiBuilderThemeOptions) => {
98
98
  fontFamily: any;
99
99
  borderRadius: {
100
100
  lg: string;
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "author": "Suraj Air",
6
6
  "license": "BSD-3-Clause",
7
7
  "homepage": "https://chaibuilder.com",
8
- "version": "2.0.0-beta.14",
8
+ "version": "2.0.0-beta.15",
9
9
  "type": "module",
10
10
  "repository": {
11
11
  "type": "git",