@chaibuilder/sdk 1.2.63 → 1.2.65

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.
Files changed (78) hide show
  1. package/dist/CanvasArea-fSdH_RiN.cjs +1 -0
  2. package/dist/{CanvasArea-DvfLxy0w.js → CanvasArea-ut5yknzX.js} +58 -54
  3. package/dist/{CodeEditor-QPwyZNgA.js → CodeEditor-Qff4q7sx.js} +1 -1
  4. package/dist/{CurrentPage-rOUX01kk.js → CurrentPage-jHSVy3hq.js} +38 -26
  5. package/dist/CurrentPage-p_AM4lrF.cjs +1 -0
  6. package/dist/{PagesPanel-6P4VkMP-.js → PagesPanel-U3InJ9Db.js} +20 -8
  7. package/dist/PagesPanel-wqDb4D-x.cjs +1 -0
  8. package/dist/{ProjectPanel-Cn3teDRW.js → ProjectPanel-XODJTO4J.js} +36 -24
  9. package/dist/ProjectPanel-fWESzHr6.cjs +1 -0
  10. package/dist/{SidePanels-_Im6sF4f.js → SidePanels-ijaUKSek.js} +84 -70
  11. package/dist/SidePanels-lrMQqc0h.cjs +1 -0
  12. package/dist/Topbar-RrCDxd0i.cjs +1 -0
  13. package/dist/{Topbar-SuY-S0im.js → Topbar-vHlnfxPs.js} +45 -30
  14. package/dist/UILibrariesPanel-7btHgBD0.cjs +1 -0
  15. package/dist/{UILibrariesPanel-RI9mo293.js → UILibrariesPanel-NVUMUPUj.js} +83 -63
  16. package/dist/{UnsplashImages-dasLGrBn.js → UnsplashImages-UkHihhA5.js} +16 -16
  17. package/dist/{UploadImages-Gh2AQpk1.js → UploadImages-HtuJZJlo.js} +7 -7
  18. package/dist/add-page-modal-RwIj1FxH.cjs +1 -0
  19. package/dist/{add-page-modal-zCiyvKEa.js → add-page-modal-TOfMfmPA.js} +32 -23
  20. package/dist/{confirm-alert-9XYi0a4k.js → confirm-alert-eIp2cAkc.js} +1 -1
  21. package/dist/core.cjs +1 -1
  22. package/dist/core.d.ts +10 -7
  23. package/dist/core.js +74 -59
  24. package/dist/{delete-page-modal-pzagU_6y.js → delete-page-modal-4bxjpVBD.js} +33 -21
  25. package/dist/delete-page-modal-qYDZmpgT.cjs +1 -0
  26. package/dist/email.cjs +1 -1
  27. package/dist/email.js +20 -5
  28. package/dist/{form-EjiQiiEY.js → form-NAzFjGs0.js} +9 -9
  29. package/dist/html-to-json-NqRjgFqp.cjs +1 -0
  30. package/dist/html-to-json-l_mw5y-e.js +243 -0
  31. package/dist/{index-DzAuS11k.cjs → index--k2M8kzI.cjs} +1 -1
  32. package/dist/{index-BbW1Uw_k.cjs → index-5XyNUAjc.cjs} +81 -22
  33. package/dist/{index-bscJUvUx.js → index-C7mB4XFm.js} +117 -117
  34. package/dist/{index-qSbpzIA4.js → index-YZhtVcj_.js} +4 -4
  35. package/dist/{index-EEcKvBh3.js → index-lFgDm1oa.js} +48587 -45055
  36. package/dist/lib.cjs +2 -2
  37. package/dist/lib.js +22 -22
  38. package/dist/page-viewer-4wrnWnK0.js +124 -0
  39. package/dist/page-viewer-ra0GLx1p.cjs +1 -0
  40. package/dist/{project-general-setting-5B7s5swF.js → project-general-setting-IwZUkYF3.js} +18 -9
  41. package/dist/project-general-setting-lFjTUhHD.cjs +1 -0
  42. package/dist/{project-seo-setting-aAGnwBrw.js → project-seo-setting-e1fTqVsd.js} +2 -2
  43. package/dist/{single-page-detail-Yr0EbBJJ.js → single-page-detail-ZNWFKqLW.js} +69 -60
  44. package/dist/single-page-detail-g55Anu7R.cjs +1 -0
  45. package/dist/studio.cjs +1 -1
  46. package/dist/studio.js +18 -6
  47. package/dist/style.css +2 -2
  48. package/dist/ui.js +67 -67
  49. package/package.json +1 -1
  50. package/dist/AddBlocks-4wpxOF2K.cjs +0 -1
  51. package/dist/AddBlocks-ChNxwRrx.js +0 -142
  52. package/dist/CanvasArea-hGLbDJlM.cjs +0 -1
  53. package/dist/CurrentPage-fMCaBGwl.cjs +0 -1
  54. package/dist/PagesPanel-ZCZjs7Bi.cjs +0 -1
  55. package/dist/ProjectPanel-XSVWRr6v.cjs +0 -1
  56. package/dist/Settings-Amh8Mtm7.cjs +0 -1
  57. package/dist/Settings-dbB2VPAj.js +0 -2378
  58. package/dist/SidePanels-5adH7U3T.cjs +0 -1
  59. package/dist/StaticCanvas-fDhBK35X.cjs +0 -60
  60. package/dist/StaticCanvas-goU42OMU.js +0 -749
  61. package/dist/ThemeConfigPanel-N6l317II.cjs +0 -1
  62. package/dist/ThemeConfigPanel-aEN4tTYi.js +0 -191
  63. package/dist/Topbar-ag6qdgbe.cjs +0 -1
  64. package/dist/UILibrariesPanel-03Y3F3A_.cjs +0 -1
  65. package/dist/add-page-modal-80cVOM7i.cjs +0 -1
  66. package/dist/atoms-KQpaDRnF.cjs +0 -1
  67. package/dist/atoms-Oomqut88.js +0 -6
  68. package/dist/delete-page-modal-foPRP--l.cjs +0 -1
  69. package/dist/html-to-json-_01DXd-a.js +0 -192
  70. package/dist/html-to-json-ndxaXRT8.cjs +0 -1
  71. package/dist/index-e0c8PmRQ.js +0 -205
  72. package/dist/index-gi1LIOCw.cjs +0 -1
  73. package/dist/page-viewer-XFTCHu_2.cjs +0 -1
  74. package/dist/page-viewer-Z1wXyzzc.js +0 -112
  75. package/dist/plugin-2hf9pCRy.cjs +0 -1
  76. package/dist/plugin-wDnsBVPp.js +0 -54
  77. package/dist/project-general-setting-HV3X_wHI.cjs +0 -1
  78. package/dist/single-page-detail-6C1WP3s5.cjs +0 -1
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./jsx-runtime-Z_BpKhVy.cjs"),R=require("@radix-ui/react-icons"),i=require("react"),D=require("jotai"),u=require("lodash-es"),s=require("./index-aeDphKpP.cjs"),E=require("lucide-react"),S=require("@chaibuilder/runtime"),v=require("react-i18next"),T=require("./index-gi1LIOCw.cjs"),P=require("./index-BbW1Uw_k.cjs"),a=require("./MODIFIERS-mVmfEGgo.cjs"),I=require("./Functions-N3yhPYKY.cjs");require("./_commonjsHelpers-wDK0ZLPo.cjs");require("@radix-ui/react-toggle");require("class-variance-authority");require("./utils-D_vtk3zK.cjs");require("clsx");require("tailwind-merge");require("@radix-ui/react-switch");require("@radix-ui/react-slot");require("@radix-ui/react-accordion");require("@radix-ui/react-alert-dialog");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-menubar");require("@radix-ui/react-hover-card");require("@radix-ui/react-select");require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-separator");require("@radix-ui/react-toast");require("cmdk");require("@radix-ui/react-context-menu");require("react-icons-picker");require("react-dom");require("react-quill");require("@react-hookz/web");require("tree-model");require("i18next");require("react-arborist");require("./index--mLLy7QQ.cjs");require("@floating-ui/react-dom");require("flagged");require("react-hotkeys-hook");const _=({provider:t,onClose:x})=>{const{t:o}=v.useTranslation(),[l,p]=i.useState(null);return i.useEffect(()=>{t&&(t.mockFn?t.mockFn:t.dataFn)().then(d=>p(d))},[t]),t?e.jsxRuntimeExports.jsx(s.Dialog,{onOpenChange:m=>m?"":x(),defaultOpen:!0,children:e.jsxRuntimeExports.jsxs(s.DialogContent,{children:[e.jsxRuntimeExports.jsxs(s.DialogHeader,{children:[e.jsxRuntimeExports.jsxs(s.DialogTitle,{children:[o("data_provider"),": ",t.name]}),e.jsxRuntimeExports.jsx(s.DialogDescription,{children:t.description})]}),e.jsxRuntimeExports.jsx(P.ErrorBoundary,{children:e.jsxRuntimeExports.jsx(T.JsonView,{data:l,shouldExpandNode:T.allExpanded,style:{...T.defaultStyles,container:"max-h-[80vh] overflow-y-auto text-[12px] leading-[1.5] tracking-wide font-mono",stringValue:"text-orange-600",label:"text-green-900 font-semibold pr-1 tracking-wider"}})})]})}):null};function K({children:t,name:x,onRemove:o}){const{t:l}=v.useTranslation();return e.jsxRuntimeExports.jsxs(s.AlertDialog,{children:[e.jsxRuntimeExports.jsx(s.AlertDialogTrigger,{asChild:!0,children:t}),e.jsxRuntimeExports.jsxs(s.AlertDialogContent,{children:[e.jsxRuntimeExports.jsxs(s.AlertDialogHeader,{children:[e.jsxRuntimeExports.jsx(s.AlertDialogTitle,{dangerouslySetInnerHTML:{__html:l("remove_provider_confirmation").replace("{name}",x)}}),e.jsxRuntimeExports.jsx(s.AlertDialogDescription,{children:l("remove_provider_warning")})]}),e.jsxRuntimeExports.jsxs(s.AlertDialogFooter,{children:[e.jsxRuntimeExports.jsx(s.AlertDialogCancel,{children:l("cancel")}),e.jsxRuntimeExports.jsx(s.AlertDialogAction,{onClick:o,className:"bg-red-600 hover:bg-red-700",children:l("remove")})]})]})]})}const L=()=>{const{t}=v.useTranslation(),x=i.useMemo(()=>S.getChaiDataProviders(),[]),[o,l]=s.usePageDataProviders(),[,p]=D.useAtom(s.builderSaveStateAtom),[m,d]=i.useState(u.filter(x,r=>u.map(o,"providerKey").includes(r.providerKey))),[b,h]=i.useState(""),[N,f]=i.useState(null),y=u.filter(x.map(r=>u.map(m,"providerKey").includes(r.providerKey)?null:{value:r.providerKey,label:r.name}),r=>!u.isNull(r)),w=r=>{const j=u.find(x,{providerKey:r});d(n=>[...n,j]),l(n=>[...n,{providerKey:j.providerKey,args:{}}]),h(""),p("UNSAVED")},g=r=>{d(j=>u.filter(j,n=>n.providerKey!==r.providerKey)),l(j=>u.filter(j,n=>n.providerKey!==r.providerKey)),p("UNSAVED")},c=r=>f(r);return u.isEmpty(x)?e.jsxRuntimeExports.jsx("div",{children:e.jsxRuntimeExports.jsxs("p",{className:"mb-1.5 p-4 text-xs text-gray-500",children:[t("no_data_providers"),e.jsxRuntimeExports.jsx("br",{}),e.jsxRuntimeExports.jsx("a",{className:"text-blue-500",href:"https://chaibuilder.com/docs/registering-data-providers",target:"_blank",children:t("learn_more")})]})}):e.jsxRuntimeExports.jsxs("div",{className:"px-1",children:[e.jsxRuntimeExports.jsx("br",{}),e.jsxRuntimeExports.jsx("label",{children:e.jsxRuntimeExports.jsx("p",{className:"mb-1.5 text-xs text-gray-500",children:t("add_data_providers")})}),e.jsxRuntimeExports.jsx("div",{className:"flex items-center space-x-1",children:e.jsxRuntimeExports.jsxs(s.Select,{value:b,onValueChange:r=>w(r),children:[e.jsxRuntimeExports.jsx(s.SelectTrigger,{className:"w-full",children:e.jsxRuntimeExports.jsx(s.SelectValue,{placeholder:t("select_provider")})}),e.jsxRuntimeExports.jsxs(s.SelectContent,{children:[e.jsxRuntimeExports.jsx(s.SelectItem,{value:"",children:t("choose")}),y.map(r=>e.jsxRuntimeExports.jsx(s.SelectItem,{value:r.value,children:r.label},r.value))]})]})}),e.jsxRuntimeExports.jsx("br",{}),e.jsxRuntimeExports.jsxs("div",{className:`border-t ${m.length?"block":"hidden"}`,children:[e.jsxRuntimeExports.jsxs("p",{className:"flex-1 pb-1.5 pt-4 text-xs font-medium text-gray-500",children:[t("page_data_providers"),":"]}),e.jsxRuntimeExports.jsx("div",{className:"space-y-2",children:m.map(r=>e.jsxRuntimeExports.jsxs("div",{className:"w-full rounded-lg border bg-card text-card-foreground shadow-sm","data-v0-t":"card",children:[e.jsxRuntimeExports.jsx("div",{className:"flex flex-col space-y-1.5 px-4 pt-4",children:e.jsxRuntimeExports.jsx("div",{className:"flex items-center justify-between",children:e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx("h3",{className:"font-medium leading-4",children:r.name}),e.jsxRuntimeExports.jsx("p",{className:"pt-1 text-xs text-gray-400",children:r.description})]})})}),e.jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between p-2 py-2",children:[e.jsxRuntimeExports.jsxs("button",{onClick:()=>c(r),className:"inline-flex h-9 items-center justify-center rounded-md px-3 text-xs font-medium text-blue-500 underline-offset-4 ring-offset-background transition-colors hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",children:[e.jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"mr-2 h-4 w-4",children:[e.jsxRuntimeExports.jsx("path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"}),e.jsxRuntimeExports.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),t("view_data")]}),e.jsxRuntimeExports.jsx(K,{onRemove:()=>g(r),name:r.name,children:e.jsxRuntimeExports.jsxs("button",{className:"inline-flex h-9 items-center justify-center rounded-md px-3 text-xs font-medium text-red-500 underline-offset-4 ring-offset-background transition-colors hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",children:[e.jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"mr-2 h-4 w-4",children:[e.jsxRuntimeExports.jsx("path",{d:"M3 6h18"}),e.jsxRuntimeExports.jsx("path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6"}),e.jsxRuntimeExports.jsx("path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2"})]}),t("remove")]})})]})]},r.providerKey))}),e.jsxRuntimeExports.jsx(_,{onClose:()=>f(null),provider:N})]})]})},B=i.memo(()=>{const{t}=v.useTranslation(),x={"ctrl + Z":"Undo","ctrl + Y":"Redo","ctrl + D":"Duplicate"},o={"ctrl + S":"Save page",esc:"Deselect blocks",del:"Delete block"};return e.jsxRuntimeExports.jsxs(s.Dialog,{children:[e.jsxRuntimeExports.jsx(s.DialogTrigger,{children:e.jsxRuntimeExports.jsxs(s.Tooltip,{children:[e.jsxRuntimeExports.jsx(s.TooltipTrigger,{asChild:!0,children:e.jsxRuntimeExports.jsx("div",{className:"flex w-10 items-center justify-center",children:e.jsxRuntimeExports.jsx(R.KeyboardIcon,{})})}),e.jsxRuntimeExports.jsx(s.TooltipContent,{children:e.jsxRuntimeExports.jsx("p",{children:t("Keyboard shortcuts")})})]})}),e.jsxRuntimeExports.jsxs(s.DialogContent,{className:"sm:max-w-[525px]",children:[e.jsxRuntimeExports.jsx(s.DialogHeader,{children:e.jsxRuntimeExports.jsx(s.DialogTitle,{children:t("Keyboard shortcuts")})}),e.jsxRuntimeExports.jsx("div",{children:e.jsxRuntimeExports.jsxs("div",{className:"grid grid-cols-2",children:[e.jsxRuntimeExports.jsx("div",{className:"mr-8 flex flex-col space-y-2 border-r border-gray-200",children:Object.keys(x).map(l=>e.jsxRuntimeExports.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsxRuntimeExports.jsx(s.Badge,{variant:"outline",className:"border border-gray-600 p-1 px-2",children:t(l)}),e.jsxRuntimeExports.jsx("div",{children:t(x[l])})]},l))}),e.jsxRuntimeExports.jsx("div",{className:"flex flex-col space-y-2",children:Object.keys(o).map(l=>e.jsxRuntimeExports.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsxRuntimeExports.jsx(s.Badge,{variant:"outline",className:"border border-gray-600 p-1 px-2",children:t(l)}),e.jsxRuntimeExports.jsx("div",{children:t(o[l])})]},l))})]})})]})]})}),A=i.lazy(()=>Promise.resolve().then(()=>require("./AddBlocks-4wpxOF2K.cjs"))),k=i.lazy(()=>Promise.resolve().then(()=>require("./index-BbW1Uw_k.cjs")).then(t=>t.ListTree$1)),O=i.lazy(()=>Promise.resolve().then(()=>require("./ThemeConfigPanel-N6l317II.cjs"))),U=i.lazy(()=>Promise.resolve().then(()=>require("./index-aeDphKpP.cjs")).then(t=>t.ImagesPanel)),z=i.lazy(()=>Promise.resolve().then(()=>require("./UILibrariesPanel-03Y3F3A_.cjs")));let C=null;const Y=()=>{const t=s.useBuilderProp("sideBarComponents.top",[]),x=s.useBuilderProp("sideBarComponents.bottom",[]),[o,l]=D.useAtom(s.activePanelAtom),[p,m]=i.useState(o),[d,b]=i.useState(null),{t:h}=v.useTranslation(),N=s.useBuilderProp("uiLibraries",[]),f=S.useChaiBlocks(),y=u.values(f).find(n=>n.category==="custom")!==void 0,w=N.length>0||y,g={"add-blocks":A,[a.OUTLINE_KEY]:k,"theme-configuration":O,images:U,"ui-libraries":z};u.each(t,({name:n,panel:q})=>{g[n]=q});const c=n=>{clearTimeout(C),o!==a.OUTLINE_KEY&&n===a.OUTLINE_KEY?C=setTimeout(()=>l(a.OUTLINE_KEY),500):m(n),l(n)},r=s.useBuilderProp("dataBindingSupport",!1);function j(){const n=setTimeout(()=>{d&&(c(a.OUTLINE_KEY),clearTimeout(d))},500);b(n)}return e.jsxRuntimeExports.jsxs("div",{className:"relative flex",children:[o!==a.OUTLINE_KEY?e.jsxRuntimeExports.jsx("div",{onMouseEnter:j,onClick:()=>c(a.OUTLINE_KEY),className:"fixed inset-0 z-[50] bg-black/20"}):null,e.jsxRuntimeExports.jsxs("div",{className:"z-[100] flex h-full w-fit flex-col items-center justify-between border-b border-r border-border bg-background pt-2",children:[e.jsxRuntimeExports.jsxs("div",{className:"relative z-[100] flex w-14 flex-col items-center space-y-2",children:[w?e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-1 rounded-md bg-gray-200 p-1",children:[e.jsxRuntimeExports.jsx(s.Button,{onClick:()=>c("add-blocks"),size:"sm",variant:o==="add-blocks"?"default":"outline",children:e.jsxRuntimeExports.jsx(R.PlusIcon,{className:"text-xl"})}),e.jsxRuntimeExports.jsx(s.Button,{onClick:()=>c("ui-libraries"),size:"sm",variant:o==="ui-libraries"?"default":"outline",children:e.jsxRuntimeExports.jsx(R.Component2Icon,{className:"text-xl"})})]}):e.jsxRuntimeExports.jsx(s.Button,{onClick:()=>c("add-blocks"),size:"sm",variant:o==="add-blocks"?"default":"outline",children:e.jsxRuntimeExports.jsx(R.PlusIcon,{className:"text-xl"})}),e.jsxRuntimeExports.jsx(s.Button,{onClick:()=>c(a.OUTLINE_KEY),size:"sm",variant:o===a.OUTLINE_KEY?"default":"outline",children:e.jsxRuntimeExports.jsx(E.ListTreeIcon,{className:"w-4"})}),e.jsxRuntimeExports.jsx(s.Button,{onClick:()=>c("theme-configuration"),size:"sm",variant:o==="theme-configuration"?"default":"outline",children:e.jsxRuntimeExports.jsx(E.PaletteIcon,{className:"w-4 max-w-[40px] text-xs"})}),i.Children.toArray(t.map(({name:n,icon:q})=>e.jsxRuntimeExports.jsx(i.Suspense,{fallback:e.jsxRuntimeExports.jsx(s.Skeleton,{className:"h-10"}),children:e.jsxRuntimeExports.jsx(s.Button,{onClick:()=>c(n),size:"sm",className:"w-10",variant:o===n?"default":"outline",children:e.jsxRuntimeExports.jsx(q,{})})})))]}),e.jsxRuntimeExports.jsxs("div",{className:"relative z-[100] flex w-14 flex-col items-center space-y-2 pb-2",children:[e.jsxRuntimeExports.jsx(B,{}),i.Children.toArray(x.map(n=>e.jsxRuntimeExports.jsx(i.Suspense,{fallback:e.jsxRuntimeExports.jsx(s.Skeleton,{className:"h-10"}),children:e.jsxRuntimeExports.jsx(n,{})})))]})]}),o!==a.OUTLINE_KEY?e.jsxRuntimeExports.jsx("div",{className:"absolute left-14 z-[50] h-[100vh] w-fit translate-x-0 border-r bg-background transition-all duration-500 ease-in-out",children:e.jsxRuntimeExports.jsx(i.Suspense,{fallback:e.jsxRuntimeExports.jsxs("div",{className:"flex animate-pulse flex-col gap-y-2 bg-white p-4",children:[e.jsxRuntimeExports.jsx("div",{className:"h-6 w-1/2 bg-gray-300"}),e.jsxRuntimeExports.jsx("div",{className:"h-16 w-full bg-gray-200"}),e.jsxRuntimeExports.jsx("div",{className:"h-16 w-full bg-gray-200"})]}),children:e.jsxRuntimeExports.jsx("div",{className:I.cn("relative z-[100] h-full max-h-full overflow-y-auto overflow-x-hidden border-r bg-background p-1 shadow-md"),onMouseEnter:()=>{d&&clearTimeout(d)},children:i.createElement(u.get(g,o,()=>e.jsxRuntimeExports.jsx("div",{})))})})}):null,e.jsxRuntimeExports.jsx("div",{className:"h-full w-60 border-r p-1",children:e.jsxRuntimeExports.jsx(i.Suspense,{fallback:e.jsxRuntimeExports.jsxs("div",{className:"flex animate-pulse flex-col gap-y-2 p-4",children:[e.jsxRuntimeExports.jsx("div",{className:"h-6 w-1/2 bg-gray-300"}),e.jsxRuntimeExports.jsx("div",{className:"h-16 w-full bg-gray-200"}),e.jsxRuntimeExports.jsx("div",{className:"h-16 w-full bg-gray-200"})]}),children:r?e.jsxRuntimeExports.jsxs(s.Tabs,{defaultValue:a.OUTLINE_KEY,className:"flex h-full w-full flex-col py-1",children:[e.jsxRuntimeExports.jsxs(s.TabsList,{className:"mx-1 grid h-10 grid-cols-2",children:[e.jsxRuntimeExports.jsxs(s.TabsTrigger,{value:a.OUTLINE_KEY,children:[e.jsxRuntimeExports.jsx(E.ListTreeIcon,{className:"mr-2 h-3"})," ",h("Outline")]}),e.jsxRuntimeExports.jsxs(s.TabsTrigger,{value:"data-provider",children:[e.jsxRuntimeExports.jsx(E.DatabaseIcon,{className:"mr-2 w-3"}),h("Data")]})]}),e.jsxRuntimeExports.jsx(s.TabsContent,{value:a.OUTLINE_KEY,className:"no-scrollbar h-full flex-1 overflow-y-auto overflow-x-hidden",children:i.createElement(k)}),e.jsxRuntimeExports.jsx(s.TabsContent,{value:"data-provider",className:"flex-1 overflow-y-auto overflow-x-hidden",children:e.jsxRuntimeExports.jsx(L,{})})]}):e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsxs("div",{className:"sticky top-0 -m-1 flex h-fit items-center justify-center border-b bg-gray-100 py-2 pb-[9px] text-sm",children:[e.jsxRuntimeExports.jsx(E.ListTreeIcon,{className:"mr-2 h-3"})," ",h("Outline")]}),e.jsxRuntimeExports.jsx("div",{className:"no-scrollbar h-full flex-1 overflow-y-auto overflow-x-hidden pt-2",children:i.createElement(k)})]})})})]})};exports.default=Y;
@@ -1,60 +0,0 @@
1
- "use strict";var st=Object.defineProperty;var ot=(n,e,t)=>e in n?st(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var q=(n,e,t)=>(ot(n,typeof e!="symbol"?e+"":e,t),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("./jsx-runtime-Z_BpKhVy.cjs"),f=require("react"),l=require("lodash-es"),E=require("jotai"),a=require("./index-aeDphKpP.cjs"),K=require("react-dom"),S=require("prop-types"),it=require("react-quill"),D=require("./atoms-KQpaDRnF.cjs"),U=require("./index-BbW1Uw_k.cjs"),rt=require("@floating-ui/dom"),V=require("@floating-ui/react-dom"),L=require("@radix-ui/react-icons"),lt=require("@react-hookz/web"),at=require("flagged"),ct=require("@tailwindcss/typography"),dt=require("@tailwindcss/forms"),ut=require("@tailwindcss/aspect-ratio"),pt=require("tailwindcss-palette-generator"),gt=require("./plugin-2hf9pCRy.cjs"),ft=require("tailwind-merge"),F=require("./MODIFIERS-mVmfEGgo.cjs"),mt=require("@chaibuilder/runtime"),G=require("lodash"),ht=require("react-wrap-balancer");require("./_commonjsHelpers-wDK0ZLPo.cjs");require("@radix-ui/react-toggle");require("class-variance-authority");require("./utils-D_vtk3zK.cjs");require("clsx");require("@radix-ui/react-switch");require("@radix-ui/react-slot");require("@radix-ui/react-accordion");require("@radix-ui/react-alert-dialog");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-menubar");require("@radix-ui/react-hover-card");require("@radix-ui/react-select");require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-separator");require("@radix-ui/react-toast");require("cmdk");require("@radix-ui/react-context-menu");require("react-icons-picker");require("./Functions-N3yhPYKY.cjs");require("tree-model");require("react-i18next");require("i18next");require("react-arborist");require("lucide-react");require("./index--mLLy7QQ.cjs");require("react-hotkeys-hook");const xt=`<!doctype html>
2
- <html lang="en" dir="__HTML_DIR__" class="scroll-smooth h-full overflow-y-auto">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <script src="https://cdn.tailwindcss.com?plugins=forms,typography,aspect-ratio"><\/script>
7
- <style>
8
- html { height: 100%; overflow:auto; }
9
- body { height: 100%; }
10
- .air-highlight{ outline: 1px solid #42a1fc !important; outline-offset: -1px;}
11
- .air-highlight-multi{ outline: 1px solid #29e503 !important; outline-offset: -1px;}
12
- body{ -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none;
13
- -moz-user-select: none;-ms-user-select: none; user-select: none; }
14
- html{
15
- -ms-overflow-style: none; /* IE and Edge */
16
- scrollbar-width: none; /* Firefox */
17
- }
18
- /** IMPORTANT: Make fields content editable in SAFARI */
19
- [contenteditable] {-webkit-user-select: text;user-select: text;}
20
-
21
- html::-webkit-scrollbar { width: 0 !important }
22
- .aspect-auto{aspect-ratio: auto;}
23
- .aspect-square{aspect-ratio: 1/1;}
24
- .aspect-video{aspect-ratio: 16/9;}
25
- .dragging [data-dnd="leaf"] { pointer-events: none; } .dragging [data-dnd="leaf"] * { pointer-events: none; }
26
- .dragging [data-dnd="ignore"], .dragging [data-dnd="ignore"] * { pointer-events: none; }
27
- a{ pointer-events: none !important; }
28
- [contenteditable="true"], [contenteditable="true"] * { cursor: text !important; }
29
- [contenteditable="true"] {
30
- outline: none;
31
- box-shadow: 0 0 0px 4px rgba(36, 150, 255, 0.2);
32
- -webkit-user-select: text;
33
- -moz-user-select: text;
34
- user-select: text;
35
- }
36
- .frame-root .frame-content { height: 100%; }
37
- [data-drop="yes"] { outline: 2px dashed orange !important; outline-offset: -2px }
38
- [data-dnd="yes"] { pointer-events: auto !important}
39
- [data-dnd="no"] { pointer-events: none !important; }
40
- [data-dnd-dragged="yes"] { opacity: 0.6; pointer-events: none; }
41
- [data-dnd-dragged="no"] { opacity: 1; pointer-events: auto !important; }
42
- [force-show] { display: block !important; }
43
- </style>
44
- <style id="hidden-blocks"></style>
45
- <style id="selected-block"></style>
46
- <style id="selected-styling-block"></style>
47
- <style id="highlighted-block"></style>
48
- <style id="dragged-block"></style>
49
- <style id="drop-target-block"></style>
50
-
51
- </head>
52
- <body class="font-body antialiased h-full">
53
- <div class="frame-root h-full"></div>
54
- <script src="https://cdn.jsdelivr.net/npm/quill@2.0.0/dist/quill.js"><\/script>
55
- </body>
56
- </html>`,yt=n=>{const[e]=a.useCanvasWidth(),[,t]=a.useCanvasZoom(),[s,c]=f.useState({}),u=f.useCallback(()=>{const{width:r,height:i}=n;if(r<e){const o=parseFloat((r/e).toFixed(2).toString());let m={};const d=i*o;i&&(m={height:100+(i-d)/d*100+"%"}),c({position:"relative",top:0,transform:`scale(${o})`,transformOrigin:"top left",...m,maxWidth:"none"}),t(o*100)}else c({}),t(100)},[e,n,t]);return f.useEffect(()=>{u()},[e,n,t,u]),s};let Z,J;typeof document<"u"&&(Z=document);typeof window<"u"&&(J=window);const tt=f.createContext({document:Z,window:J}),H=()=>f.useContext(tt),{Provider:bt,Consumer:Vt}=tt;class et extends f.Component{componentDidMount(){this.props.contentDidMount()}componentDidUpdate(){this.props.contentDidUpdate()}render(){return f.Children.only(this.props.children)}}q(et,"propTypes",{children:S.element.isRequired,contentDidMount:S.func.isRequired,contentDidUpdate:S.func.isRequired});class $ extends f.Component{constructor(t,s){super(t,s);q(this,"setRef",t=>{this.nodeRef.current=t;const{forwardedRef:s}=this.props;typeof s=="function"?s(t):s&&(s.current=t)});q(this,"handleLoad",()=>{clearInterval(this.loadCheck),this.state.iframeLoaded||this.setState({iframeLoaded:!0})});q(this,"loadCheck",()=>setInterval(()=>{this.handleLoad()},500));this._isMounted=!1,this.nodeRef=f.createRef(),this.state={iframeLoaded:!1}}componentDidMount(){this._isMounted=!0,this.getDoc()&&this.nodeRef.current.contentWindow.addEventListener("DOMContentLoaded",this.handleLoad)}componentWillUnmount(){this._isMounted=!1,this.nodeRef.current.removeEventListener("DOMContentLoaded",this.handleLoad)}getDoc(){return this.nodeRef.current?this.nodeRef.current.contentDocument:null}getMountTarget(){const t=this.getDoc();return this.props.mountTarget?t.querySelector(this.props.mountTarget):t.body.children[0]}renderFrameContents(){if(!this._isMounted)return null;const t=this.getDoc();if(!t)return null;const s=this.props.contentDidMount,c=this.props.contentDidUpdate,u=t.defaultView||t.parentView,r=p.jsxRuntimeExports.jsx(et,{contentDidMount:s,contentDidUpdate:c,children:p.jsxRuntimeExports.jsx(bt,{value:{document:t,window:u},children:p.jsxRuntimeExports.jsx("div",{className:"frame-content",children:this.props.children})})}),i=this.getMountTarget();return[K.createPortal(this.props.head,this.getDoc().head),K.createPortal(r,i)]}render(){const t={...this.props,srcDoc:this.props.initialContent,children:void 0};return delete t.head,delete t.initialContent,delete t.mountTarget,delete t.contentDidMount,delete t.contentDidUpdate,delete t.forwardedRef,p.jsxRuntimeExports.jsx("iframe",{...t,ref:this.setRef,onLoad:this.handleLoad,children:this.state.iframeLoaded&&this.renderFrameContents()})}}q($,"propTypes",{style:S.object,head:S.node,initialContent:S.string,mountTarget:S.string,className:S.string,contentDidMount:S.func,contentDidUpdate:S.func,children:S.oneOfType([S.element,S.arrayOf(S.element)])}),q($,"defaultProps",{style:{},head:null,children:void 0,mountTarget:void 0,contentDidMount:()=>{},contentDidUpdate:()=>{},initialContent:'<!DOCTYPE html><html><head></head><body><div class="frame-root"></div></body></html>'});const kt=f.forwardRef((n,e)=>p.jsxRuntimeExports.jsx($,{...n,forwardedRef:e}));function z(n){const e=window.getComputedStyle(n),t=e.display;if(t==="flex"||t==="inline-flex"){const s=e.flexDirection;return s==="column"||s==="column-reverse"?"vertical":"horizontal"}else if(t==="grid"){const s=e.gridAutoFlow,c=e.gridTemplateRows,u=e.gridTemplateColumns;return s.includes("column")||c.split(" ").length>u.split(" ").length?"vertical":"horizontal"}else if(t==="block"||t==="inline-block")return"vertical";return"horizontal"}let k=null,w=[],X=null,O=null;const Q=(n,e,t)=>{if(!k||!n)return;const s=k==null?void 0:k.getElementById("placeholder"),c=w.map(([o])=>o),u=c.reduce((o,m)=>Math.abs(m-t)<Math.abs(o-t)?m:o,0),r=c.indexOf(u);if(!w[r])return;const i=w[r];s.style.width=e==="vertical"?i[2]+"px":"2px",s.style.height=e==="vertical"?"2px":i[2]+"px",s.style.display="block",e==="vertical"?(s.style.top=i[0]+"px",s.style.left=i[1]+"px"):(s.style.top=i[1]+"px",s.style.left=i[0]+"px")};function vt(n,e){let t=0,s=1/0;return e.forEach((c,u)=>{const r=Math.abs(c[0]-n);r<s&&(s=r,t=u)}),t}const Et=n=>{const t=z(n)==="horizontal";w=[],Array.from(n.children).forEach((s,c)=>{if(s.classList.contains("pointer-events-none"))return;const u=t?s.offsetLeft:s.offsetTop,r=t?[s.offsetTop,s.clientHeight]:[s.offsetLeft,s.clientWidth];if(w.push([u,r[0],r[1]]),c===n.children.length-1){const i=t?s.offsetLeft+s.clientWidth:s.offsetTop+s.clientHeight;w.push([i,r[0],r[1]])}})},St=l.throttle(n=>{var c;const e=n.target,t=z(e),s=(c=k==null?void 0:k.defaultView)==null?void 0:c.scrollY;t==="vertical"?Q(e,t,n.clientY+s):Q(e,t,n.clientX)},0);function N(){const n=k==null?void 0:k.getElementById("placeholder");n.style.display="none",At("pointer-none"),jt()}function At(n){(k==null?void 0:k.querySelectorAll(`.${n}`)).forEach(t=>{t.classList.remove(n)})}function jt(){const n=k==null?void 0:k.querySelector('[data-drop="yes"]');n&&n.removeAttribute("data-drop")}const Bt=()=>{const{document:n}=H(),[e,t]=E.useAtom(a.draggingFlagAtom),{addCoreBlock:s}=a.useAddBlock(),[,c]=a.useHighlightBlockId(),[,u]=a.useSelectedBlockIds(),{moveBlocks:r}=a.useBlocksStoreUndoableActions(),[i,o]=E.useAtom(D.draggedBlockAtom),[,m]=E.useAtom(D.dropTargetBlockIdAtom),d=()=>{N(),t(!1),u([i._id]),o(null),m(null),w=[]};return k=n,{isDragging:e,onDragOver:h=>{h.preventDefault(),h.stopPropagation(),St(h)},onDrop:h=>{var I;const g=X,v=z(g)==="vertical"?h.clientY+((I=k==null?void 0:k.defaultView)==null?void 0:I.scrollY):h.clientX;O=vt(v,w);const x=i,A=g.getAttribute("data-block-id");if(!l.has(x,"_id")){s(x,A==="canvas"?null:A,O),setTimeout(d,300);return}let j=g.getAttribute("data-block-id");j===null&&(j=h.target.parentElement.getAttribute("data-block-id")),r([x._id],j==="canvas"?null:j,O),d(),setTimeout(N,300)},onDragEnter:h=>{const g=h,y=g.target;X=y;const v=y.getAttribute("data-block-id");m(v),g.stopPropagation(),g.preventDefault(),w=[],Et(y),t(!0),c(""),u([])},onDragLeave:h=>{h.target.getAttribute("data-block-id")==="canvas"&&(m(null),t(!1),N(),w=[])}}};function Y(n){return n.getAttribute("data-block-id")?n:n.closest("[data-block-id]")}function wt(n){n.container.innerHTML="",n.container.parentNode.removeChild(n.container);var e=document.querySelector(".ql-toolbar");e&&e.parentNode.removeChild(e),n=null}const Ct=()=>{const n=["Heading","Paragraph","Text","Link","Span","Button"],e=a.useUpdateBlocksProps(),[,t]=a.useHighlightBlockId(),[s,c]=E.useAtom(a.inlineEditingActiveAtom);return u=>{var h;if(s)return;const r=Y(u.target),i=r.getAttribute("data-block-type");if(!i||!n.includes(i))return;const o=r.cloneNode(!0);r.style.display="none",Array.from(o.attributes).forEach(g=>{g.name!=="class"&&o.removeAttribute(g.name)}),i==="Text"&&(o.style.display="inline-block"),r.parentNode.insertBefore(o,r.nextSibling);const m=new it.Quill(o,{placeholder:"Type here..."});function d(){const g=m.getText(0,m.getLength());e([r.getAttribute("data-block-id")],{content:g}),r.removeAttribute("style"),o.removeEventListener("blur",d,!0),wt(m),c(""),t("")}o.addEventListener("blur",d,!0),o.addEventListener("keydown",g=>{(g.key==="Enter"||g.key==="Escape")&&d()}),m.focus(),(h=o.querySelector(".ql-clipboard"))==null||h.remove(),c(r.getAttribute("data-block-id"))}},It=()=>{const[,n]=a.useSelectedStylingBlocks(),[e,t]=a.useSelectedBlockIds(),[,s]=a.useHighlightBlockId(),[c]=E.useAtom(a.inlineEditingActiveAtom),[u]=E.useAtom(a.treeRefAtom);return r=>{if(c)return;r.stopPropagation();const i=Y(r.target);if(i!=null&&i.getAttribute("data-block-id")&&(i==null?void 0:i.getAttribute("data-block-id"))==="container"){t([]),n([]),s("");return}if(i!=null&&i.getAttribute("data-block-parent")){const o=i.getAttribute("data-style-prop"),m=i.getAttribute("data-style-id"),d=i.getAttribute("data-block-parent");e.includes(d)||u==null||u.closeAll(),n([{id:m,prop:o,blockId:d}]),t([d])}else if(i!=null&&i.getAttribute("data-block-id")){let o=i.getAttribute("data-block-id");e.includes(o)||u==null||u.closeAll(),n([]),t([o])}s("")}},Rt=l.throttle((n,e)=>{const t=Y(n.target);t!=null&&t.getAttribute("data-style-id")&&e(t.getAttribute("data-style-id"))},100),qt=()=>{const[,n]=a.useHighlightBlockId(),[e]=E.useAtom(a.inlineEditingActiveAtom);return t=>{e||Rt(t,n)}},Tt=({children:n})=>{const{document:e}=H(),[t]=a.useSelectedBlockIds(),[s,c]=a.useSelectedStylingBlocks();f.useEffect(()=>{setTimeout(()=>{if(!l.isEmpty(s))return;const m=nt(e,l.first(t));if(m){const d=m.getAttribute("data-style-prop");if(d){const h=m.getAttribute("data-style-id"),g=m.getAttribute("data-block-parent");c([{id:h,prop:d,blockId:g}])}}},100)},[e,t,c,s]);const u=Ct(),r=It(),i=qt(),o=Bt();return p.jsxRuntimeExports.jsx("div",{"data-block-id":"canvas",id:"canvas",onClick:r,onDoubleClick:u,onMouseMove:i,...l.omit(o,"isDragging"),className:"relative mb-5 h-full max-w-full px-1 "+(o.isDragging?"dragging":""),children:n})},nt=(n,e)=>n.querySelector(`[data-block-id="${e}"]`),_t=()=>{const{document:n}=H();return U.useKeyEventWatcher(n),null},Dt=({block:n,label:e})=>{const[,t]=a.useSelectedBlockIds(),[,s]=a.useHighlightBlockId(),[,c]=E.useAtom(D.draggedBlockAtom),u=at.useFeature("dnd");return p.jsxRuntimeExports.jsxs("div",{className:"mr-10 flex cursor-default items-center space-x-1 px-1",draggable:u?"true":"false",onDragStart:r=>{r.dataTransfer.setData("text/plain",JSON.stringify(l.pick(n,["_id","_type","_name"]))),c(n),setTimeout(()=>{t([]),s(null)},200)},children:[p.jsxRuntimeExports.jsx(L.DragHandleDots2Icon,{}),e]})},Mt=({selectedBlockElement:n,block:e})=>{const t=a.useRemoveBlocks(),s=a.useDuplicateBlocks(),[,c]=a.useSelectedBlockIds(),[,u]=a.useHighlightBlockId(),[,r]=a.useSelectedStylingBlocks(),[i]=E.useAtom(a.inlineEditingActiveAtom),{floatingStyles:o,refs:m,update:d}=V.useFloating({placement:"top-start",middleware:[V.shift(),rt.flip()],elements:{reference:n}});lt.useResizeObserver(n,()=>d(),n!==null);const h=l.get(e,"_parent",null),g=l.isEmpty(l.get(e,"_name",""))?l.get(e,"_type",""):l.get(e,"_name","");return!n||!e||i?null:p.jsxRuntimeExports.jsx(p.jsxRuntimeExports.Fragment,{children:p.jsxRuntimeExports.jsxs("div",{role:"button",tabIndex:0,ref:m.setFloating,style:o,onClick:y=>{y.stopPropagation(),y.preventDefault()},onMouseEnter:y=>{y.stopPropagation(),u(null)},onKeyDown:y=>y.stopPropagation(),className:"z-[99999] flex h-6 items-center bg-blue-500 py-2 text-xs text-white",children:[p.jsxRuntimeExports.jsx(Dt,{label:g,block:e}),p.jsxRuntimeExports.jsxs("div",{className:"flex gap-2 px-1",children:[h&&p.jsxRuntimeExports.jsx(L.ArrowUpIcon,{className:"hover:scale-105",onClick:()=>{r([]),c([h])}}),a.canDuplicateBlock(l.get(e,"_type",""))?p.jsxRuntimeExports.jsx(L.CopyIcon,{className:"hover:scale-105",onClick:()=>s([e==null?void 0:e._id])}):null,a.canDeleteBlock(l.get(e,"_type",""))?p.jsxRuntimeExports.jsx(L.TrashIcon,{className:"hover:scale-105",onClick:()=>t([e==null?void 0:e._id])}):null]})]})})},Lt=({model:n})=>{const[e]=a.useBrandingOptions(),[t]=a.useSelectedBlockIds(),[s]=a.useDarkMode(),[c]=a.useHighlightBlockId(),[u]=a.useSelectedStylingBlocks(),[r]=E.useAtom(D.draggedBlockAtom),[i]=E.useAtom(D.dropTargetBlockIdAtom),{document:o,window:m}=H(),[d]=f.useState(o==null?void 0:o.getElementById("highlighted-block")),[h]=f.useState(o==null?void 0:o.getElementById("selected-block")),[g]=f.useState(o==null?void 0:o.getElementById("selected-styling-block")),[y]=f.useState(o==null?void 0:o.getElementById("dragged-block"));f.useEffect(()=>{s?o==null||o.documentElement.classList.add("dark"):o==null||o.documentElement.classList.remove("dark")},[s,o]);const v=l.get(e,"headingFont","DM Sans"),x=l.get(e,"bodyFont","DM Sans");return f.useEffect(()=>{const A=l.get(e,"primaryColor","#000"),j=l.get(e,"secondaryColor","#FFF"),I=l.get(e,"bodyBgLightColor","#fff"),R=l.get(e,"bodyBgDarkColor","#000"),T=l.get(e,"bodyTextDarkColor","#000"),M=l.get(e,"bodyTextLightColor","#fff"),P=pt([{color:A,name:"primary"},{color:j,name:"secondary"}]),b={"bg-light":I,"bg-dark":R,"text-dark":T,"text-light":M},B=l.get(e,"roundedCorners","0");!m||!m.tailwind||(m.tailwind.config={darkMode:"class",theme:{extend:{container:{center:!0,padding:"1rem",screens:{"2xl":"1400px"}},fontFamily:{heading:[v],body:[x]},borderRadius:{DEFAULT:`${B||"0"}px`},colors:{...b,...P}}},plugins:[ct,dt,ut,gt.plugin(function({addBase:C,theme:_}){C({"h1,h2,h3,h4,h5,h6":{fontFamily:_("fontFamily.heading")},body:{fontFamily:_("fontFamily.body"),color:_("colors.text-light"),backgroundColor:_("colors.bg-light")},".dark body":{color:_("colors.text-dark"),backgroundColor:_("colors.bg-dark")}})})]})},[e,m,v,x]),f.useEffect(()=>{h&&(h.textContent=`${l.map(t,A=>`[data-block-id="${A}"]`).join(",")}{
57
- outline: 1px solid ${t.length===1?"#42a1fc":"orange"} !important; outline-offset: -1px;
58
- }`)},[t,h]),f.useEffect(()=>{y.textContent=r?`[data-block-id="${r._id}"], [data-block-id="${r._id}"] > * { pointer-events: none !important; opacity: 0.6 !important}`:""},[r,y]),f.useEffect(()=>{d&&(d.textContent=c?`[data-style-id="${c}"]{ outline: 1px solid #42a1fc !important; outline-offset: -1px;}`:"")},[c,t,d]),f.useEffect(()=>{g&&(g.textContent=`${l.map(u,({id:A})=>`[data-style-id="${A}"]`).join(",")}{
59
- outline: 1px solid #42a1fc !important; outline-offset: -1px;
60
- }`)},[u,g]),f.useEffect(()=>{o.querySelector("#drop-target-block").innerHTML=i?`[data-block-id="${i}"]{ outline: 1px dashed orange !important; outline-offset: -1px;}`:""},[i]),p.jsxRuntimeExports.jsx(p.jsxRuntimeExports.Fragment,{children:(v||x)&&p.jsxRuntimeExports.jsx("link",{rel:"stylesheet",href:`https://fonts.googleapis.com/css2?family=${v?`${v.replace(/ /g,"+")}:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,500;1,600;1,700;1,800;1,900`:""}${v&&x&&v!==x?"&":""}${x&&x!==v?`family=${x.replace(/ /g,"+")}:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400;1,500;1,600;1,700;1,800;1,900`:""}&display=swap`})})},Ft=()=>E.useAtom(a.canvasSettingsAtom),Ht=(n,e)=>{const t=["xs","sm","md","lg","xl","2xl"],s=t.indexOf(e),c=n.split(" ");let u=new Array(t.length).fill(!1);for(const r of c){let[i,o]=r.split(":");o||(o=i,i="xs");const m=t.indexOf(i);if(m<=s){const d=["block","flex","inline","inline-block","inline-flex","grid","table"],h=["hidden"];if(d.includes(o))for(let g=m;g<t.length;g++)u[g]=!0;else if(h.includes(o))for(let g=m;g<t.length;g++)u[g]=!1}}return u[s]},Pt=n=>{const e={};return Object.keys(n).forEach(t=>{l.isString(n[t])&&n[t].startsWith(F.SLOT_KEY)&&(e[t]=n[t].replace(F.SLOT_KEY,"").split(","))}),e},Ot=l.memoize(n=>{const e=n.replace(F.STYLES_KEY,"").split(",");return ft.twMerge(e[0],e[1])});function Nt(n,e){return l.get(n,`${e}_attrs`,{})}function $t(n,e){const t={};return Object.keys(n).forEach(s=>{if(l.isString(n[s])&&n[s].startsWith(F.STYLES_KEY)){const c=Ot(n[s]),u=Nt(n,s);t[s]={className:c,"data-style-prop":s,"data-block-parent":n._id,"data-style-id":`${s}-${n._id}`,...u};const r=l.has(u,"x-show")||l.has(u,"x-if");r&&(t.__isHidden=r&&!Ht(c,e))}}),t}function Wt(n,e){const t=l.get(n,"_bindings",{});return l.isEmpty(t)?{...n}:(l.each(t,(s,c)=>{l.isString(s)&&l.get(e,s,null)&&(n[c]=l.get(e,s,null))}),n)}function W({blocks:n}){const[e]=a.useBlocksStore(),[t]=E.useAtom(a.xShowBlocksAtom),[s]=E.useAtom(D.draggedBlockAtom),[,c]=a.useCanvasWidth(),[u]=Ft(),r=f.useCallback(d=>$t(d,c),[c]),[i]=U.useChaiExternalData(),[o]=E.useAtom(a.inlineEditingActiveAtom),m=f.useCallback(d=>d.reduce((h,g)=>{const y=l.get(u,g,{});return{...h,...y}},{}),[u,e]);return p.jsxRuntimeExports.jsx(p.jsxRuntimeExports.Fragment,{children:f.Children.toArray(n.map((d,h)=>{if(o===d._id)return null;const g=Pt(d),y={};l.isEmpty(g)||Object.keys(g).forEach(T=>{y[T]=f.Children.toArray(g[T].map(M=>p.jsxRuntimeExports.jsx(W,{blocks:[l.find(e,{_id:M})]})))});const v=l.filter(e,{_parent:d._id});y.children=v.length?p.jsxRuntimeExports.jsx(W,{blocks:v}):null;const x=mt.getBlockComponent(d._type),A=l.get(x,"builderComponent",l.get(x,"component",null));if(l.isNull(A))return p.jsxRuntimeExports.jsx("noscript",{children:`<!-- ${d==null?void 0:d._type} not registered -->`});const j=l.has(x,"getBlockStateFrom")?x==null?void 0:x.getBlockStateFrom(d,e):[],I=m(j),R=r(d);return l.get(R,"__isHidden",!1)&&!G.includes(t,d._id)?null:p.jsxRuntimeExports.jsx(f.Suspense,{children:f.createElement(A,{blockProps:{...G.includes(t,d._id)?{"force-show":""}:{},"data-block-id":d._id,"data-block-type":d._type,...s?{"data-dnd":a.canAcceptChildBlock(d._type,s==null?void 0:s._type)?"yes":"no"}:{}},index:h,...Wt(d,i),...l.omit(R,["__isHidden"]),...y,inBuilder:!0,blockState:I})})}))})}const Ut=()=>{const[n]=a.useBlocksStore(),e=l.isEmpty(n)?null:p.jsxRuntimeExports.jsx(U.BlocksExternalDataProvider,{children:p.jsxRuntimeExports.jsx(W,{blocks:l.filter(n,t=>l.isEmpty(t._parent))})});return p.jsxRuntimeExports.jsx(p.jsxRuntimeExports.Fragment,{children:e})},zt=(n,e)=>n.querySelector(`[data-style-id="${e}"]`),Yt=()=>{const[n]=E.useAtom(a.networkModeAtom),[e]=a.usePreviewMode(),[t]=a.useCanvasWidth(),[,s]=a.useSelectedBlockIds(),c=a.useSelectedBlock(),[,u]=a.useHighlightBlockId(),r=f.useRef(null),i=f.useRef(null),[o,m]=f.useState({width:0,height:0}),d=yt(o),[h,g]=f.useState(0),[y,v]=f.useState([]),[,x]=f.useState([]),[,A]=E.useAtom(a.canvasIframeAtom),[j,I]=a.useSelectedStylingBlocks(),R=a.useBuilderProp("loading",!1),T=a.useBuilderProp("htmlDir","ltr");f.useEffect(()=>{const{clientWidth:b,clientHeight:B}=i.current;m({width:b,height:B}),h===0&&g(b)},[i,t,h]);const M=(b,B=0)=>{const{top:C}=b.getBoundingClientRect();return C+B>=0&&C-B<=window.innerHeight};f.useEffect(()=>{var b,B;if(c&&c.type!=="Multiple"&&r.current){const C=nt(r.current.contentDocument,c._id);C&&(M(C)||(B=(b=r.current)==null?void 0:b.contentWindow)==null||B.scrollTo({top:C.offsetTop,behavior:"smooth"}),v([C]))}},[c]),f.useEffect(()=>{if(!l.isEmpty(j)&&r.current){const b=zt(r.current.contentDocument,l.first(j).id);x(b?[b]:[null])}else x([null])},[j]);const P=f.useMemo(()=>{let b=xt;return b=b.replace("__HTML_DIR__",T),n==="offline"&&(b=b.replace("https://old.chaibuilder.com/offline/tailwind.cdn.js","/offline/tailwind.cdn.js"),b=b.replace("https://unpkg.com/aos@next/dist/aos.css","/offline/aos.css"),b=b.replace("https://unpkg.com/aos@next/dist/aos.js","/offline/aos.js")),b},[n]);return p.jsxRuntimeExports.jsx("div",{onClick:()=>{s([]),I([])},onMouseLeave:()=>setTimeout(()=>u(""),300),className:"relative mx-auto h-full w-full overflow-hidden",style:h>0&&!l.isEmpty(d)?{width:e?"100%":h}:{},ref:i,children:p.jsxRuntimeExports.jsxs(kt,{contentDidMount:()=>A(r.current),ref:r,id:"canvas-iframe",style:{width:`${t}px`,...d},className:"relative mx-auto box-content h-full max-w-full shadow-lg transition-all duration-300 ease-linear",initialContent:P,children:[p.jsxRuntimeExports.jsx(_t,{}),p.jsxRuntimeExports.jsx(Mt,{block:c,selectedBlockElement:l.first(y)}),p.jsxRuntimeExports.jsx(Lt,{model:"page"}),p.jsxRuntimeExports.jsx(ht.Provider,{children:p.jsxRuntimeExports.jsx(Tt,{children:R?p.jsxRuntimeExports.jsx("div",{className:"h-full p-4",children:p.jsxRuntimeExports.jsx(a.Skeleton,{className:"h-full"})}):p.jsxRuntimeExports.jsx(Ut,{})})}),p.jsxRuntimeExports.jsx("br",{}),p.jsxRuntimeExports.jsx("div",{id:"placeholder",className:"pointer-events-none absolute z-[99999] max-w-full bg-green-500 transition-transform"})]})})};exports.default=Yt;