@chaibuilder/sdk 0.1.32 → 1.0.0

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 (84) hide show
  1. package/dist/AddBlocks-4f054351.cjs +3 -0
  2. package/dist/{AddBlocks-4b96d545.js → AddBlocks-f6836e71.js} +5 -4
  3. package/dist/{BrandingOptions-c91e9d44.js → BrandingOptions-33e6da26.js} +6 -5
  4. package/dist/BrandingOptions-cfa79ffe.cjs +1 -0
  5. package/dist/{CanvasArea-957f5f74.js → CanvasArea-1e5fa968.js} +42 -43
  6. package/dist/CanvasArea-971b3ff8.cjs +46 -0
  7. package/dist/{CurrentPage-fb4c55bc.js → CurrentPage-223cc3dd.js} +5 -4
  8. package/dist/CurrentPage-b2d12d83.cjs +1 -0
  9. package/dist/{ImagesPanel-3fb8087f.js → ImagesPanel-47ac13c3.js} +1 -1
  10. package/dist/{ImagesPanel-56ca0618.cjs → ImagesPanel-8b7a989d.cjs} +1 -1
  11. package/dist/Layers-860f5e42.cjs +1 -0
  12. package/dist/{Layers-6866cb0c.js → Layers-b2c5aa66.js} +48 -47
  13. package/dist/MarkAsGlobalBlock-1a3d5e53.cjs +1 -0
  14. package/dist/{MarkAsGlobalBlock-f28148d9.js → MarkAsGlobalBlock-9b0135aa.js} +8 -7
  15. package/dist/{PagesPanel-003201ca.js → PagesPanel-034efd4c.js} +8 -7
  16. package/dist/PagesPanel-2a80f9b2.cjs +1 -0
  17. package/dist/{ProjectPanel-83321040.js → ProjectPanel-3827a349.js} +7 -6
  18. package/dist/ProjectPanel-5deae7f1.cjs +1 -0
  19. package/dist/Settings-9f61cc69.cjs +1 -0
  20. package/dist/{Settings-ad55d8cb.js → Settings-a2d4e9c2.js} +82 -79
  21. package/dist/SidePanels-0d276d29.cjs +1 -0
  22. package/dist/{SidePanels-96bf29c6.js → SidePanels-b881185b.js} +33 -34
  23. package/dist/Topbar-68a0d125.cjs +1 -0
  24. package/dist/{Topbar-1c4964e5.js → Topbar-fda7588e.js} +38 -37
  25. package/dist/{UnsplashImages-fe480747.js → UnsplashImages-4edb97e7.js} +6 -5
  26. package/dist/UnsplashImages-98c085c2.cjs +1 -0
  27. package/dist/{UploadImages-b14bd152.js → UploadImages-52181c3e.js} +9 -8
  28. package/dist/UploadImages-61ef83ad.cjs +1 -0
  29. package/dist/{add-page-modal-2ef8a63c.js → add-page-modal-38af4548.js} +11 -10
  30. package/dist/add-page-modal-fb51b45b.cjs +1 -0
  31. package/dist/confirm-alert-c1fdf1e4.js +35 -0
  32. package/dist/confirm-alert-e1ea5110.cjs +1 -0
  33. package/dist/core.cjs +1 -1
  34. package/dist/core.d.ts +2 -1
  35. package/dist/core.js +56 -55
  36. package/dist/delete-page-modal-305c49fd.cjs +1 -0
  37. package/dist/{delete-page-modal-961dcc5f.js → delete-page-modal-a226ed3a.js} +18 -19
  38. package/dist/{form-046bcdbc.js → form-25e1af37.js} +1 -1
  39. package/dist/{form-2dc05f35.cjs → form-ea21db6c.cjs} +1 -1
  40. package/dist/{index-86352d44.cjs → index-6fc652ec.cjs} +41 -41
  41. package/dist/{index-370ce00c.js → index-914d197c.js} +7239 -7070
  42. package/dist/{link-e71b94f1.cjs → link-24679521.cjs} +1 -1
  43. package/dist/{link-e3a788f7.js → link-57de608a.js} +2 -2
  44. package/dist/{page-viewer-0c45ce74.js → page-viewer-682940be.js} +17 -16
  45. package/dist/page-viewer-857a82f4.cjs +1 -0
  46. package/dist/{project-general-setting-c5d96f79.js → project-general-setting-0fa55bb9.js} +9 -8
  47. package/dist/project-general-setting-280ccd16.cjs +1 -0
  48. package/dist/project-seo-setting-6eef8387.cjs +1 -0
  49. package/dist/{project-seo-setting-639e4f33.js → project-seo-setting-d81fc1e3.js} +7 -6
  50. package/dist/server.cjs +1 -1
  51. package/dist/server.d.ts +4 -2
  52. package/dist/server.js +27 -23
  53. package/dist/{single-page-detail-22e7bc3b.js → single-page-detail-8b715650.js} +11 -10
  54. package/dist/single-page-detail-b9c4ac1e.cjs +1 -0
  55. package/dist/ui.cjs +1 -1
  56. package/dist/ui.js +105 -106
  57. package/dist/useBuilderProp-21feb2da.js +296 -0
  58. package/dist/useBuilderProp-adacf42f.cjs +1 -0
  59. package/package.json +1 -1
  60. package/dist/AddBlocks-e4f51b58.cjs +0 -3
  61. package/dist/BrandingOptions-52f9691c.cjs +0 -1
  62. package/dist/CanvasArea-b8c26858.cjs +0 -46
  63. package/dist/CurrentPage-715fe809.cjs +0 -1
  64. package/dist/Layers-a955d0bb.cjs +0 -1
  65. package/dist/MarkAsGlobalBlock-cbcb3003.cjs +0 -1
  66. package/dist/PagesPanel-7b8f54e1.cjs +0 -1
  67. package/dist/ProjectPanel-6c5f2470.cjs +0 -1
  68. package/dist/Settings-8f07a4b7.cjs +0 -1
  69. package/dist/SidePanels-446b93e7.cjs +0 -1
  70. package/dist/Topbar-5eeea40a.cjs +0 -1
  71. package/dist/UnsplashImages-ef3b6388.cjs +0 -1
  72. package/dist/UploadImages-10439fde.cjs +0 -1
  73. package/dist/add-page-modal-56dc3c56.cjs +0 -1
  74. package/dist/alert-dialog-4ce6ed22.cjs +0 -1
  75. package/dist/alert-dialog-ee98f47e.js +0 -64
  76. package/dist/confirm-alert-4f50caa7.cjs +0 -1
  77. package/dist/confirm-alert-f2a47cc7.js +0 -36
  78. package/dist/delete-page-modal-88aeacfd.cjs +0 -1
  79. package/dist/page-viewer-e0d9895d.cjs +0 -1
  80. package/dist/project-general-setting-d4d96611.cjs +0 -1
  81. package/dist/project-seo-setting-6356c72f.cjs +0 -1
  82. package/dist/single-page-detail-36430438.cjs +0 -1
  83. package/dist/useBuilderProp-5e57d0c8.cjs +0 -1
  84. package/dist/useBuilderProp-81a14920.js +0 -238
@@ -1 +1 @@
1
- "use strict";const e=require("./jsx-runtime-5c3ac4f7.cjs"),m=require("react-icons-picker"),h=require("react-dom"),g=require("lodash"),d=require("react"),x=require("./dialog-170eaad9.cjs"),j=require("./ImagesPanel-56ca0618.cjs"),E=require("react-quill");require("react-i18next");const R=require("./useBuilderProp-5e57d0c8.cjs"),f=t=>{try{const s=document.getElementById("icon-picker-field"),r=document.createElement("div");h.render(e.jsxRuntimeExports.jsx(m.IconPickerItem,{value:t}),r),s.appendChild(r),r.hidden=!0;let l=r.innerHTML;setTimeout(()=>s.removeChild(r),1e3);const o=new DOMParser().parseFromString(l,"image/svg+xml"),n=o.querySelector("svg");return n&&(n.removeAttribute("width"),n.removeAttribute("height")),new XMLSerializer().serializeToString(o)}catch{return""}},b=({value:t,onChange:s,onBlur:r,id:l})=>{const a=o=>{s("<svg />");const n=f(o);s(n),r(l,n)};return e.jsxRuntimeExports.jsxs("div",{className:"mt-1 flex h-20 items-center gap-x-2",id:"icon-picker-field",children:[e.jsxRuntimeExports.jsxs("div",{className:"relative h-12 w-12 group",children:[e.jsxRuntimeExports.jsx("div",{dangerouslySetInnerHTML:{__html:t==null?void 0:t.replace("<svg",'<svg class="h-5 w-5"')},className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 transform cursor-pointer bg-white z-0"}),e.jsxRuntimeExports.jsx(m,{value:t?"BiSolidGrid":null,onChange:a,pickButtonStyle:{position:"relative",height:"48px",width:"48px",border:"1px solid #BBBBBB",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"6px",backgroundColor:"transparent",zIndex:1},searchInputStyle:{backgroundColor:"transparent",width:"100%",border:"1px solid #BBBBBB",margin:"0px 10px",padding:"10px"}})]}),e.jsxRuntimeExports.jsx("textarea",{value:t,onChange:o=>s(o.target.value),className:"h-full border w-full rounded-sm border-foreground/20 px-2 py-1 text-xs shadow-sm focus:border-gray-500/80 focus:outline-none focus:ring-0",placeholder:"Choose icon or enter svg"})]})},k=({children:t,onSelect:s})=>{const[r,l]=d.useState(!1),a=(...o)=>{s.call(void 0,...o),l(!1)};return e.jsxRuntimeExports.jsxs(x.Dialog,{open:r,onOpenChange:o=>l(o),children:[e.jsxRuntimeExports.jsx(x.DialogTrigger,{asChild:!0,children:t}),e.jsxRuntimeExports.jsx(x.DialogContent,{className:"flex h-3/4 max-w-5xl",children:e.jsxRuntimeExports.jsx("div",{className:"h-full w-full",children:e.jsxRuntimeExports.jsx(j.default,{isModalView:!0,onSelect:a})})})]})},p=k,v=({value:t,onChange:s,id:r,onBlur:l})=>e.jsxRuntimeExports.jsxs("div",{className:"mt-1.5 flex items-center gap-x-3",children:[t?e.jsxRuntimeExports.jsx("img",{src:t,className:"h-20 w-20 overflow-hidden rounded-md border object-cover",alt:""}):e.jsxRuntimeExports.jsx(p,{onSelect:s,children:e.jsxRuntimeExports.jsx("div",{className:"h-20 w-20 cursor-pointer rounded-md border bg-[radial-gradient(#AAA,transparent_1px)] duration-300 [background-size:10px_10px] hover:border-gray-400"})}),e.jsxRuntimeExports.jsxs("div",{className:"flex w-3/5 flex-col",children:[e.jsxRuntimeExports.jsx(p,{onSelect:s,children:e.jsxRuntimeExports.jsx("small",{className:"cursor-pointer rounded-full bg-gray-600 px-2 py-1 text-center text-xs text-white hover:bg-gray-500 dark:bg-gray-700",children:t||!g.isEmpty(t)?"Replace Image":"Choose Image"})}),e.jsxRuntimeExports.jsx("small",{className:"-pl-4 pt-2 text-center text-xs text-gray-600",children:"OR"}),e.jsxRuntimeExports.jsx("input",{type:"url",className:"text-xs",placeholder:"Enter image URL",value:t,onBlur:({target:{value:a}})=>l(r,a),onChange:a=>s(a.target.value)})]})]}),y=({id:t,placeholder:s,value:r,onChange:l,onBlur:a})=>{const o={toolbar:[["bold","italic","underline","strike","blockquote"],[{list:"ordered"},{list:"bullet"}],[{color:[]},{background:[]},{align:[]}],["link","clean"]]},n=["header","font","list","bold","italic","underline","strike","blockquote","color","background","align","link","image"];return typeof window>"u"?null:e.jsxRuntimeExports.jsx(E,{id:t,value:r,onBlur:c=>a(t,c),onChange:c=>l(c),modules:o,formats:n,placeholder:s,className:"mt-1 rounded-md"})},w=({schema:t,formData:s,onChange:r})=>{const[l,a]=d.useState([]),o=R.useBuilderProp("getPages",()=>[]),{type:n="page",href:c="",target:u="self"}=s;return d.useEffect(()=>{(async()=>{const i=await o();a(i||[])})()},[o]),e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx("span",{className:"text-xs font-medium",children:(t==null?void 0:t.title)??"Link"}),e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-y-1.5",children:[e.jsxRuntimeExports.jsx("select",{name:"type",defaultValue:"page",value:n,onChange:i=>r({...s,type:i.target.value}),children:[{const:"page",title:"Open Page"},{const:"url",title:"Open URL"},{const:"email",title:"Compose Email"},{const:"telephone",title:"Call Phone"},{const:"scroll",title:"Scroll to element"}].map(i=>e.jsxRuntimeExports.jsx("option",{value:i.const,children:i.title},i.const))}),n==="page"?e.jsxRuntimeExports.jsxs("select",{name:"href",defaultValue:"",placeholder:"Choose Page",value:c,onChange:i=>r({...s,href:i.target.value}),children:[e.jsxRuntimeExports.jsx("option",{value:"",children:"Choose page"}),g.map(l,i=>e.jsxRuntimeExports.jsx("option",{value:i.slug,children:i.name},i.uuid))]}):e.jsxRuntimeExports.jsx("input",{name:"href",type:"text",value:c,onChange:i=>r({...s,href:i.target.value}),placeholder:n==="page"||n==="url"?"Enter URL":n==="scroll"?"#ElementID":"Enter detail"}),(n==="page"||n==="url")&&e.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-x-2",children:[e.jsxRuntimeExports.jsx("input",{type:"checkbox",defaultChecked:u==="_blank",className:"cursor-pointer rounded-md border border-border",onChange:()=>r({...s,target:u==="_blank"?"_self":"_blank"})}),e.jsxRuntimeExports.jsx("span",{className:"pt-1 text-xs",children:"Open in new tab"})]})]})]})};exports.IconPickerField=b;exports.ImagePickerField=v;exports.LinkField=w;exports.RichTextEditorField=y;
1
+ "use strict";const e=require("./jsx-runtime-5c3ac4f7.cjs"),m=require("react-icons-picker"),h=require("react-dom"),g=require("lodash"),d=require("react"),x=require("./dialog-170eaad9.cjs"),j=require("./ImagesPanel-8b7a989d.cjs"),E=require("react-quill");require("react-i18next");const R=require("./useBuilderProp-adacf42f.cjs"),f=t=>{try{const s=document.getElementById("icon-picker-field"),r=document.createElement("div");h.render(e.jsxRuntimeExports.jsx(m.IconPickerItem,{value:t}),r),s.appendChild(r),r.hidden=!0;let l=r.innerHTML;setTimeout(()=>s.removeChild(r),1e3);const o=new DOMParser().parseFromString(l,"image/svg+xml"),n=o.querySelector("svg");return n&&(n.removeAttribute("width"),n.removeAttribute("height")),new XMLSerializer().serializeToString(o)}catch{return""}},b=({value:t,onChange:s,onBlur:r,id:l})=>{const a=o=>{s("<svg />");const n=f(o);s(n),r(l,n)};return e.jsxRuntimeExports.jsxs("div",{className:"mt-1 flex h-20 items-center gap-x-2",id:"icon-picker-field",children:[e.jsxRuntimeExports.jsxs("div",{className:"relative h-12 w-12 group",children:[e.jsxRuntimeExports.jsx("div",{dangerouslySetInnerHTML:{__html:t==null?void 0:t.replace("<svg",'<svg class="h-5 w-5"')},className:"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 transform cursor-pointer bg-white z-0"}),e.jsxRuntimeExports.jsx(m,{value:t?"BiSolidGrid":null,onChange:a,pickButtonStyle:{position:"relative",height:"48px",width:"48px",border:"1px solid #BBBBBB",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"6px",backgroundColor:"transparent",zIndex:1},searchInputStyle:{backgroundColor:"transparent",width:"100%",border:"1px solid #BBBBBB",margin:"0px 10px",padding:"10px"}})]}),e.jsxRuntimeExports.jsx("textarea",{value:t,onChange:o=>s(o.target.value),className:"h-full border w-full rounded-sm border-foreground/20 px-2 py-1 text-xs shadow-sm focus:border-gray-500/80 focus:outline-none focus:ring-0",placeholder:"Choose icon or enter svg"})]})},k=({children:t,onSelect:s})=>{const[r,l]=d.useState(!1),a=(...o)=>{s.call(void 0,...o),l(!1)};return e.jsxRuntimeExports.jsxs(x.Dialog,{open:r,onOpenChange:o=>l(o),children:[e.jsxRuntimeExports.jsx(x.DialogTrigger,{asChild:!0,children:t}),e.jsxRuntimeExports.jsx(x.DialogContent,{className:"flex h-3/4 max-w-5xl",children:e.jsxRuntimeExports.jsx("div",{className:"h-full w-full",children:e.jsxRuntimeExports.jsx(j.default,{isModalView:!0,onSelect:a})})})]})},p=k,v=({value:t,onChange:s,id:r,onBlur:l})=>e.jsxRuntimeExports.jsxs("div",{className:"mt-1.5 flex items-center gap-x-3",children:[t?e.jsxRuntimeExports.jsx("img",{src:t,className:"h-20 w-20 overflow-hidden rounded-md border object-cover",alt:""}):e.jsxRuntimeExports.jsx(p,{onSelect:s,children:e.jsxRuntimeExports.jsx("div",{className:"h-20 w-20 cursor-pointer rounded-md border bg-[radial-gradient(#AAA,transparent_1px)] duration-300 [background-size:10px_10px] hover:border-gray-400"})}),e.jsxRuntimeExports.jsxs("div",{className:"flex w-3/5 flex-col",children:[e.jsxRuntimeExports.jsx(p,{onSelect:s,children:e.jsxRuntimeExports.jsx("small",{className:"cursor-pointer rounded-full bg-gray-600 px-2 py-1 text-center text-xs text-white hover:bg-gray-500 dark:bg-gray-700",children:t||!g.isEmpty(t)?"Replace Image":"Choose Image"})}),e.jsxRuntimeExports.jsx("small",{className:"-pl-4 pt-2 text-center text-xs text-gray-600",children:"OR"}),e.jsxRuntimeExports.jsx("input",{type:"url",className:"text-xs",placeholder:"Enter image URL",value:t,onBlur:({target:{value:a}})=>l(r,a),onChange:a=>s(a.target.value)})]})]}),y=({id:t,placeholder:s,value:r,onChange:l,onBlur:a})=>{const o={toolbar:[["bold","italic","underline","strike","blockquote"],[{list:"ordered"},{list:"bullet"}],[{color:[]},{background:[]},{align:[]}],["link","clean"]]},n=["header","font","list","bold","italic","underline","strike","blockquote","color","background","align","link","image"];return typeof window>"u"?null:e.jsxRuntimeExports.jsx(E,{id:t,value:r,onBlur:c=>a(t,c),onChange:c=>l(c),modules:o,formats:n,placeholder:s,className:"mt-1 rounded-md"})},w=({schema:t,formData:s,onChange:r})=>{const[l,a]=d.useState([]),o=R.useBuilderProp("getPages",()=>[]),{type:n="page",href:c="",target:u="self"}=s;return d.useEffect(()=>{(async()=>{const i=await o();a(i||[])})()},[o]),e.jsxRuntimeExports.jsxs("div",{children:[e.jsxRuntimeExports.jsx("span",{className:"text-xs font-medium",children:(t==null?void 0:t.title)??"Link"}),e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-y-1.5",children:[e.jsxRuntimeExports.jsx("select",{name:"type",defaultValue:"page",value:n,onChange:i=>r({...s,type:i.target.value}),children:[{const:"page",title:"Open Page"},{const:"url",title:"Open URL"},{const:"email",title:"Compose Email"},{const:"telephone",title:"Call Phone"},{const:"scroll",title:"Scroll to element"}].map(i=>e.jsxRuntimeExports.jsx("option",{value:i.const,children:i.title},i.const))}),n==="page"?e.jsxRuntimeExports.jsxs("select",{name:"href",defaultValue:"",placeholder:"Choose Page",value:c,onChange:i=>r({...s,href:i.target.value}),children:[e.jsxRuntimeExports.jsx("option",{value:"",children:"Choose page"}),g.map(l,i=>e.jsxRuntimeExports.jsx("option",{value:i.slug,children:i.name},i.uuid))]}):e.jsxRuntimeExports.jsx("input",{name:"href",type:"text",value:c,onChange:i=>r({...s,href:i.target.value}),placeholder:n==="page"||n==="url"?"Enter URL":n==="scroll"?"#ElementID":"Enter detail"}),(n==="page"||n==="url")&&e.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-x-2",children:[e.jsxRuntimeExports.jsx("input",{type:"checkbox",defaultChecked:u==="_blank",className:"cursor-pointer rounded-md border border-border",onChange:()=>r({...s,target:u==="_blank"?"_self":"_blank"})}),e.jsxRuntimeExports.jsx("span",{className:"pt-1 text-xs",children:"Open in new tab"})]})]})]})};exports.IconPickerField=b;exports.ImagePickerField=v;exports.LinkField=w;exports.RichTextEditorField=y;
@@ -4,10 +4,10 @@ import x from "react-dom";
4
4
  import { isEmpty as h, map as f } from "lodash";
5
5
  import { useState as u, useEffect as b } from "react";
6
6
  import { D as j, a as v, b as k } from "./dialog-18207bef.js";
7
- import y from "./ImagesPanel-3fb8087f.js";
7
+ import y from "./ImagesPanel-47ac13c3.js";
8
8
  import w from "react-quill";
9
9
  import "react-i18next";
10
- import { u as N } from "./useBuilderProp-81a14920.js";
10
+ import { u as N } from "./useBuilderProp-21feb2da.js";
11
11
  const B = (t) => {
12
12
  try {
13
13
  const r = document.getElementById("icon-picker-field"), s = document.createElement("div");
@@ -2,7 +2,7 @@ import { j as e } from "./jsx-runtime-944c88e2.js";
2
2
  import o, { useState as m, Suspense as c } from "react";
3
3
  import { HomeIcon as p, FileTextIcon as u, ChevronRightIcon as d, GearIcon as x } from "@radix-ui/react-icons";
4
4
  import { P as g, a as h, b as f } from "./popover-f7addcf4.js";
5
- import { U as j, R as N, T as b } from "./index-370ce00c.js";
5
+ import { U as j, R as N, T as b } from "./index-914d197c.js";
6
6
  import "@radix-ui/react-popover";
7
7
  import "./utils-ac68b2c8.js";
8
8
  import "clsx";
@@ -18,7 +18,8 @@ import "flagged";
18
18
  import "react-dnd";
19
19
  import "lodash";
20
20
  import "@minoru/react-dnd-treeview";
21
- import "./useBuilderProp-81a14920.js";
21
+ import "./useBuilderProp-21feb2da.js";
22
+ import "@radix-ui/react-alert-dialog";
22
23
  import "@radix-ui/react-slot";
23
24
  import "class-variance-authority";
24
25
  import "@radix-ui/react-tooltip";
@@ -30,16 +31,16 @@ import "himalaya";
30
31
  import "redux-undo";
31
32
  import "@react-hookz/web";
32
33
  import "@chaibuilder/blocks";
33
- import "lucide-react";
34
34
  import "sonner";
35
- const P = o.lazy(() => import("./single-page-detail-22e7bc3b.js")), v = ({ pageData: t }) => {
36
- const [s, r] = m("CLOSE");
35
+ import "lucide-react";
36
+ const P = o.lazy(() => import("./single-page-detail-8b715650.js")), v = ({ pageData: s }) => {
37
+ const [t, r] = m("CLOSE");
37
38
  return /* @__PURE__ */ e.jsxs(
38
39
  g,
39
40
  {
40
- open: s === "OPEN" || s === "ALERT" || s === "PENDING",
41
+ open: t === "OPEN" || t === "ALERT" || t === "PENDING",
41
42
  onOpenChange: (i) => {
42
- r(s === "PENDING" ? "ALERT" : i ? "OPEN" : "CLOSE");
43
+ r(t === "PENDING" ? "ALERT" : i ? "OPEN" : "CLOSE");
43
44
  },
44
45
  children: [
45
46
  /* @__PURE__ */ e.jsx(
@@ -49,7 +50,7 @@ const P = o.lazy(() => import("./single-page-detail-22e7bc3b.js")), v = ({ pageD
49
50
  onClick: (i) => {
50
51
  i.stopPropagation(), r("OPEN");
51
52
  },
52
- children: /* @__PURE__ */ e.jsx("div", { className: "flex items-center justify-between", children: s === "OPEN" || s === "ALERT" || s === "PENDING" ? /* @__PURE__ */ e.jsx(d, {}) : /* @__PURE__ */ e.jsx("div", { className: "hidden hover:text-blue-600 group-hover:flex", children: /* @__PURE__ */ e.jsx(x, {}) }) })
53
+ children: /* @__PURE__ */ e.jsx("div", { className: "flex items-center justify-between", children: t === "OPEN" || t === "ALERT" || t === "PENDING" ? /* @__PURE__ */ e.jsx(d, {}) : /* @__PURE__ */ e.jsx("div", { className: "hidden hover:text-blue-600 group-hover:flex", children: /* @__PURE__ */ e.jsx(x, {}) }) })
53
54
  }
54
55
  ),
55
56
  /* @__PURE__ */ e.jsx(f, { side: "right", align: "start", alignOffset: -35, className: "h-screen w-96", children: /* @__PURE__ */ e.jsx(
@@ -60,14 +61,14 @@ const P = o.lazy(() => import("./single-page-detail-22e7bc3b.js")), v = ({ pageD
60
61
  /* @__PURE__ */ e.jsx("div", { className: "bg-background-300 h-20 w-full" }),
61
62
  /* @__PURE__ */ e.jsx("div", { className: "bg-background-300 h-20 w-full" })
62
63
  ] }),
63
- children: /* @__PURE__ */ e.jsx(P, { pageData: t, open: s, setOpen: r })
64
+ children: /* @__PURE__ */ e.jsx(P, { pageData: s, open: t, setOpen: r })
64
65
  }
65
66
  ) })
66
67
  ]
67
68
  }
68
69
  );
69
- }, E = (t) => {
70
- const [s] = j(), { data: r } = N(), i = b(), a = (r == null ? void 0 : r.homepage) === t.uuid, n = s === t.uuid, l = () => i(t);
70
+ }, E = (s) => {
71
+ const [t] = j(), { data: r } = N(), i = b(), a = (r == null ? void 0 : r.homepage) === s.uuid, n = t === s.uuid, l = () => i(s);
71
72
  return r ? /* @__PURE__ */ e.jsxs(
72
73
  "button",
73
74
  {
@@ -78,17 +79,17 @@ const P = o.lazy(() => import("./single-page-detail-22e7bc3b.js")), v = ({ pageD
78
79
  /* @__PURE__ */ e.jsxs("div", { className: "flex text-sm items-center gap-x-1.5", children: [
79
80
  a ? /* @__PURE__ */ e.jsx(p, {}) : /* @__PURE__ */ e.jsx(u, {}),
80
81
  " ",
81
- t.name
82
+ s.name
82
83
  ] }),
83
- /* @__PURE__ */ e.jsx(v, { pageData: t })
84
+ /* @__PURE__ */ e.jsx(v, { pageData: s })
84
85
  ]
85
86
  }
86
87
  ) : null;
87
- }, ie = ({ pages: t, isLoading: s }) => s ? /* @__PURE__ */ e.jsxs("div", { className: "flex animate-pulse flex-col gap-y-1 px-2.5 pt-2", children: [
88
+ }, oe = ({ pages: s, isLoading: t }) => t ? /* @__PURE__ */ e.jsxs("div", { className: "flex animate-pulse flex-col gap-y-1 px-2.5 pt-2", children: [
88
89
  /* @__PURE__ */ e.jsx("div", { className: "bg-background-200 h-7 w-full" }),
89
90
  /* @__PURE__ */ e.jsx("div", { className: "bg-background-200 h-7 w-full" }),
90
91
  /* @__PURE__ */ e.jsx("div", { className: "bg-background-200 h-7 w-full" })
91
- ] }) : t.length === 0 ? /* @__PURE__ */ e.jsx("div", { className: "px-2.5 pb-2 pt-4", children: "No pages" }) : /* @__PURE__ */ e.jsx("div", { className: "-mb-2", children: o.Children.toArray(t.map((r) => /* @__PURE__ */ e.jsx(E, { ...r }))) });
92
+ ] }) : s.length === 0 ? /* @__PURE__ */ e.jsx("div", { className: "px-2.5 pb-2 pt-4", children: "No pages" }) : /* @__PURE__ */ e.jsx("div", { className: "-mb-2", children: o.Children.toArray(s.map((r) => /* @__PURE__ */ e.jsx(E, { ...r }))) });
92
93
  export {
93
- ie as default
94
+ oe as default
94
95
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./jsx-runtime-5c3ac4f7.cjs"),n=require("react"),u=require("@radix-ui/react-icons"),o=require("./popover-7cb9079b.cjs"),x=require("./index-6fc652ec.cjs");require("@radix-ui/react-popover");require("./utils-3c452dd0.cjs");require("clsx");require("tailwind-merge");require("./MODIFIERS-4716c669.cjs");require("@radix-ui/react-scroll-area");require("react-dom");require("@floating-ui/react-dom");require("jotai");require("i18next");require("react-i18next");require("flagged");require("react-dnd");require("lodash");require("@minoru/react-dnd-treeview");require("./useBuilderProp-adacf42f.cjs");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-slot");require("class-variance-authority");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("react-hotkeys-hook");require("flat-to-nested");require("./html-to-json-aadcbf66.cjs");require("himalaya");require("redux-undo");require("@react-hookz/web");require("@chaibuilder/blocks");require("sonner");require("lucide-react");const m=n.lazy(()=>Promise.resolve().then(()=>require("./single-page-detail-b9c4ac1e.cjs"))),j=({pageData:s})=>{const[r,t]=n.useState("CLOSE");return e.jsxRuntimeExports.jsxs(o.Popover,{open:r==="OPEN"||r==="ALERT"||r==="PENDING",onOpenChange:i=>{t(r==="PENDING"?"ALERT":i?"OPEN":"CLOSE")},children:[e.jsxRuntimeExports.jsx(o.PopoverTrigger,{asChild:!0,onClick:i=>{i.stopPropagation(),t("OPEN")},children:e.jsxRuntimeExports.jsx("div",{className:"flex items-center justify-between",children:r==="OPEN"||r==="ALERT"||r==="PENDING"?e.jsxRuntimeExports.jsx(u.ChevronRightIcon,{}):e.jsxRuntimeExports.jsx("div",{className:"hidden hover:text-blue-600 group-hover:flex",children:e.jsxRuntimeExports.jsx(u.GearIcon,{})})})}),e.jsxRuntimeExports.jsx(o.PopoverContent,{side:"right",align:"start",alignOffset:-35,className:"h-screen w-96",children:e.jsxRuntimeExports.jsx(n.Suspense,{fallback:e.jsxRuntimeExports.jsxs("div",{className:"flex w-full animate-pulse flex-col gap-y-3",children:[e.jsxRuntimeExports.jsx("div",{className:"bg-background-300 h-6 w-1/2"}),e.jsxRuntimeExports.jsx("div",{className:"bg-background-300 h-20 w-full"}),e.jsxRuntimeExports.jsx("div",{className:"bg-background-300 h-20 w-full"})]}),children:e.jsxRuntimeExports.jsx(m,{pageData:s,open:r,setOpen:t})})})]})},p=s=>{const[r]=x.useCurrentPage(),{data:t}=x.useProject(),i=x.useChangePage(),l=(t==null?void 0:t.homepage)===s.uuid,a=r===s.uuid,c=()=>i(s);return t?e.jsxRuntimeExports.jsxs("button",{className:`group relative flex w-full cursor-pointer items-center justify-between px-2.5 py-2 ${a?"bg-blue-200 ":""}`,onClick:c,type:"button",children:[e.jsxRuntimeExports.jsxs("div",{className:"flex text-sm items-center gap-x-1.5",children:[l?e.jsxRuntimeExports.jsx(u.HomeIcon,{}):e.jsxRuntimeExports.jsx(u.FileTextIcon,{})," ",s.name]}),e.jsxRuntimeExports.jsx(j,{pageData:s})]}):null},d=({pages:s,isLoading:r})=>r?e.jsxRuntimeExports.jsxs("div",{className:"flex animate-pulse flex-col gap-y-1 px-2.5 pt-2",children:[e.jsxRuntimeExports.jsx("div",{className:"bg-background-200 h-7 w-full"}),e.jsxRuntimeExports.jsx("div",{className:"bg-background-200 h-7 w-full"}),e.jsxRuntimeExports.jsx("div",{className:"bg-background-200 h-7 w-full"})]}):s.length===0?e.jsxRuntimeExports.jsx("div",{className:"px-2.5 pb-2 pt-4",children:"No pages"}):e.jsxRuntimeExports.jsx("div",{className:"-mb-2",children:n.Children.toArray(s.map(t=>e.jsxRuntimeExports.jsx(p,{...t})))});exports.default=d;
@@ -2,8 +2,8 @@ import { j as i } from "./jsx-runtime-944c88e2.js";
2
2
  import * as n from "react";
3
3
  import { S as f } from "./scroll-area-83bd9e8f.js";
4
4
  import { SingleLineText as c, Image as d } from "@chaibuilder/blocks";
5
- import { F as u } from "./form-046bcdbc.js";
6
- import { R as x } from "./index-370ce00c.js";
5
+ import { F as u } from "./form-25e1af37.js";
6
+ import { R as x } from "./index-914d197c.js";
7
7
  import "@radix-ui/react-scroll-area";
8
8
  import "./utils-ac68b2c8.js";
9
9
  import "clsx";
@@ -11,18 +11,19 @@ import "tailwind-merge";
11
11
  import "@rjsf/core";
12
12
  import "@rjsf/validator-ajv8";
13
13
  import "lodash";
14
- import "./link-e3a788f7.js";
14
+ import "./link-57de608a.js";
15
15
  import "react-icons-picker";
16
16
  import "react-dom";
17
17
  import "./dialog-18207bef.js";
18
18
  import "@radix-ui/react-dialog";
19
19
  import "@radix-ui/react-icons";
20
- import "./ImagesPanel-3fb8087f.js";
20
+ import "./ImagesPanel-47ac13c3.js";
21
21
  import "./tabs-85caa1e8.js";
22
22
  import "@radix-ui/react-tabs";
23
23
  import "react-quill";
24
24
  import "react-i18next";
25
- import "./useBuilderProp-81a14920.js";
25
+ import "./useBuilderProp-21feb2da.js";
26
+ import "@radix-ui/react-alert-dialog";
26
27
  import "@radix-ui/react-slot";
27
28
  import "class-variance-authority";
28
29
  import "@radix-ui/react-tooltip";
@@ -40,9 +41,9 @@ import "./html-to-json-45e0e3b5.js";
40
41
  import "himalaya";
41
42
  import "redux-undo";
42
43
  import "@react-hookz/web";
43
- import "lucide-react";
44
44
  import "sonner";
45
- const po = ({
45
+ import "lucide-react";
46
+ const eo = ({
46
47
  _projectData: m,
47
48
  seany: t
48
49
  }) => {
@@ -65,5 +66,5 @@ const po = ({
65
66
  return /* @__PURE__ */ i.jsx(f, { className: "flex h-full select-none flex-col", children: /* @__PURE__ */ i.jsx(u, { properties: a, disabled: p, formData: m, onChange: e }) });
66
67
  };
67
68
  export {
68
- po as default
69
+ eo as default
69
70
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./jsx-runtime-5c3ac4f7.cjs"),a=require("react"),f=require("./scroll-area-bb343b86.cjs"),o=require("@chaibuilder/blocks"),m=require("./form-ea21db6c.cjs"),d=require("./index-6fc652ec.cjs");require("@radix-ui/react-scroll-area");require("./utils-3c452dd0.cjs");require("clsx");require("tailwind-merge");require("@rjsf/core");require("@rjsf/validator-ajv8");require("lodash");require("./link-24679521.cjs");require("react-icons-picker");require("react-dom");require("./dialog-170eaad9.cjs");require("@radix-ui/react-dialog");require("@radix-ui/react-icons");require("./ImagesPanel-8b7a989d.cjs");require("./tabs-860e37aa.cjs");require("@radix-ui/react-tabs");require("react-quill");require("react-i18next");require("./useBuilderProp-adacf42f.cjs");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-slot");require("class-variance-authority");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("jotai");require("./MODIFIERS-4716c669.cjs");require("@floating-ui/react-dom");require("i18next");require("flagged");require("react-dnd");require("@minoru/react-dnd-treeview");require("react-hotkeys-hook");require("flat-to-nested");require("./html-to-json-aadcbf66.cjs");require("himalaya");require("redux-undo");require("@react-hookz/web");require("sonner");require("lucide-react");function g(r){const i=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const e in r)if(e!=="default"){const u=Object.getOwnPropertyDescriptor(r,e);Object.defineProperty(i,e,u.get?u:{enumerable:!0,get:()=>r[e]})}}return i.default=r,Object.freeze(i)}const j=g(a),b=({_projectData:r,seany:i})=>{const{data:e,isLoading:u}=d.useProject();j.useEffect(()=>{e&&i(e)},[e,i]);const q=({formData:l},t)=>{i(s=>({...s,[t]:l[t]}))},c={name:o.SingleLineText({title:"Project Name",default:e==null?void 0:e.name}),favicon:o.Image({title:"Favicon",default:e==null?void 0:e.favicon})};return n.jsxRuntimeExports.jsx(f.ScrollArea,{className:"flex h-full select-none flex-col",children:n.jsxRuntimeExports.jsx(m.Form,{properties:c,disabled:u,formData:r,onChange:q})})};exports.default=b;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./jsx-runtime-5c3ac4f7.cjs"),r=require("@chaibuilder/blocks"),g=require("./form-ea21db6c.cjs");require("react");require("@rjsf/core");require("@rjsf/validator-ajv8");require("lodash");require("./link-24679521.cjs");require("react-icons-picker");require("react-dom");require("./dialog-170eaad9.cjs");require("@radix-ui/react-dialog");require("@radix-ui/react-icons");require("./utils-3c452dd0.cjs");require("clsx");require("tailwind-merge");require("./ImagesPanel-8b7a989d.cjs");require("./tabs-860e37aa.cjs");require("@radix-ui/react-tabs");require("react-quill");require("react-i18next");require("./useBuilderProp-adacf42f.cjs");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-slot");require("class-variance-authority");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("jotai");const D=({_projectData:e,seany:q})=>{var t,u,o,s,a,l;const d=({formData:c})=>{const i={...c};i.seoData.title===void 0&&(i.seoData.title=""),i.seoData.description===void 0&&(i.seoData.description=""),i.seoData.image===void 0&&(i.seoData.image=""),q(f=>({...f,...i}))},m={seoData:r.Model({title:"",default:{title:((t=e.seoData)==null?void 0:t.title)||"",description:((u=e.seoData)==null?void 0:u.description)||"",image:((o=e.seoData)==null?void 0:o.image)||""},properties:{title:r.SingleLineText({title:"Default Title",default:((s=e.seoData)==null?void 0:s.title)||""}),description:r.MultilineText({title:"Default Description",default:((a=e.seoData)==null?void 0:a.description)||""}),image:r.Image({title:"Social Media Image",default:((l=e.seoData)==null?void 0:l.image)||""})}})};return n.jsxRuntimeExports.jsx("div",{className:"flex h-full select-none flex-col",children:n.jsxRuntimeExports.jsx(g.Form,{properties:m,formData:e,onChange:d})})};exports.default=D;
@@ -1,11 +1,11 @@
1
1
  import { j as p } from "./jsx-runtime-944c88e2.js";
2
2
  import { Model as D, SingleLineText as c, MultilineText as g, Image as x } from "@chaibuilder/blocks";
3
- import { F as v } from "./form-046bcdbc.js";
3
+ import { F as v } from "./form-25e1af37.js";
4
4
  import "react";
5
5
  import "@rjsf/core";
6
6
  import "@rjsf/validator-ajv8";
7
7
  import "lodash";
8
- import "./link-e3a788f7.js";
8
+ import "./link-57de608a.js";
9
9
  import "react-icons-picker";
10
10
  import "react-dom";
11
11
  import "./dialog-18207bef.js";
@@ -14,18 +14,19 @@ import "@radix-ui/react-icons";
14
14
  import "./utils-ac68b2c8.js";
15
15
  import "clsx";
16
16
  import "tailwind-merge";
17
- import "./ImagesPanel-3fb8087f.js";
17
+ import "./ImagesPanel-47ac13c3.js";
18
18
  import "./tabs-85caa1e8.js";
19
19
  import "@radix-ui/react-tabs";
20
20
  import "react-quill";
21
21
  import "react-i18next";
22
- import "./useBuilderProp-81a14920.js";
22
+ import "./useBuilderProp-21feb2da.js";
23
+ import "@radix-ui/react-alert-dialog";
23
24
  import "@radix-ui/react-slot";
24
25
  import "class-variance-authority";
25
26
  import "@radix-ui/react-tooltip";
26
27
  import "@radix-ui/react-toast";
27
28
  import "jotai";
28
- const V = ({
29
+ const W = ({
29
30
  _projectData: t,
30
31
  seany: l
31
32
  }) => {
@@ -63,5 +64,5 @@ const V = ({
63
64
  return /* @__PURE__ */ p.jsx("div", { className: "flex h-full select-none flex-col", children: /* @__PURE__ */ p.jsx(v, { properties: d, formData: t, onChange: n }) });
64
65
  };
65
66
  export {
66
- V as default
67
+ W as default
67
68
  };
package/dist/server.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var u=Object.defineProperty;var g=(n,t,e)=>t in n?u(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var h=(n,t,e)=>(g(n,typeof t!="symbol"?t+"":t,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash"),p=require("@chaibuilder/blocks"),d="https://api.chaibuilder.com";class l{constructor(t,e){h(this,"authSecret");h(this,"appKey");if(!t)throw"Please provide valid auth secret.";if(!e)throw"Please provide valid project key.";this.authSecret=t,this.appKey=e}async getPageData(t){const e=this.getHeaders(),s=this.getURL("page-data",c.isEmpty(t)?{}:{slug:t}),a={method:"GET",headers:e,next:{tags:["everything",c.isEmpty(t)?"_homepage":t]}};return this.fetchAPI(s,a)}async getPage(t){if(!t)return Promise.reject({data:null,error:{message:"Invalid page uuid"},result:"error"});const e=this.getHeaders(),s=this.getURL("page",{uuid:t}),a={method:"GET",headers:e};return this.fetchAPI(s,a)}async getPages(){const t=this.getHeaders(),e=this.getURL("pages"),r={method:"GET",headers:t};return this.fetchAPI(e,r)}async addPage(t){const e=JSON.stringify(t),s=this.getHeaders(),r=this.getURL("page"),o={method:"POST",headers:s,body:e};return this.fetchAPI(r,o)}async deletePage(t){if(!t)return Promise.reject({data:null,error:{message:"Invalid page uuid"},result:"error"});const e=this.getHeaders(),s=this.getURL("page",{uuid:t}),a={method:"DELETE",headers:e};return this.fetchAPI(s,a)}async updatePage(t){const e=JSON.stringify(t),s=this.getHeaders(),r=this.getURL("page"),o={method:"PUT",headers:s,body:e};return this.fetchAPI(r,o)}async getProject(){const t=this.getHeaders(),e=this.getURL("project"),r={method:"GET",headers:t};return this.fetchAPI(e,r)}async updateProject(t){const e=JSON.stringify(t),s=this.getHeaders(),r=this.getURL("project"),o={method:"PUT",headers:s,body:e};return this.fetchAPI(r,o)}async uploadAsset(t){const e=this.getHeaders(),s=this.getURL("asset"),r="POST",a=await t.get("file"),o=new FormData;o.append("file",a);const i={method:r,headers:e,body:o};return this.fetchAPI(s,i)}async getAssets(t,e){const s=this.getHeaders(),r=this.getURL("asset");t&&r.concat(`?limit=${t}`),e&&r.concat(`&offset=${e}`);const o={method:"GET",headers:s};return this.fetchAPI(r,o)}async authenticate({password:t}){const e=JSON.stringify({password:t}),s=this.getHeaders(),r=this.getURL("authenticate"),o={method:"POST",headers:s,body:e};return this.fetchAPI(r,o)}async verify(t){const e=JSON.stringify({token:t}),s=this.getHeaders(),r=this.getURL("verify"),o={method:"POST",headers:s,body:e};return this.fetchAPI(r,o)}getURL(t,e){const s=new URLSearchParams(e).toString();return c.isEmpty(e)?`${d}/v1/${t}`:`${d}/v1/${t}?${s}`}getHeaders(){const t=new Headers;return t.append("x-chai-app-key",this.appKey),t.append("x-chai-auth-secret",this.authSecret),t}async fetchAPI(t,e){try{const s=await fetch(t,e).then(r=>r.json());if((s==null?void 0:s.result)==="success")return{data:s==null?void 0:s.data,error:null,result:"success"};throw s==null?void 0:s.error}catch(s){return{data:null,error:s,result:"error"}}}}const y=async(n,t)=>{const e=p.getChaiDataProviders(),s=c.filter(e,o=>c.map(n,"providerKey").includes(o.providerKey)),r={},a=[];for(const o of s)try{r[o.providerKey]=await o.dataFn({},t)}catch(i){a.push(i)}return{data:r,errors:a}};exports.ChaibuilderBackend=l;exports.prepareExternalData=y;
1
+ "use strict";var u=Object.defineProperty;var g=(n,t,e)=>t in n?u(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var i=(n,t,e)=>(g(n,typeof t!="symbol"?t+"":t,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("lodash"),p=require("@chaibuilder/blocks"),d="https://api.chaibuilder.com";class l{constructor(t,e){i(this,"_authSecret");i(this,"_accessToken",null);i(this,"_appKey");if(!t)throw"Please provide valid auth secret.";if(!e)throw"Please provide valid project key.";this._authSecret=t,this._appKey=e}setAccessToken(t){this._accessToken=t}async getPageData(t){const e=this.getHeaders(),s=this.getURL("page-data",c.isEmpty(t)?{}:{slug:t}),a={method:"GET",headers:e,next:{tags:["everything",c.isEmpty(t)?"_homepage":t]}};return this.fetchAPI(s,a)}async getPage(t){if(!t)return Promise.reject({data:null,error:{message:"Invalid page uuid"},result:"error"});const e=this.getHeaders(),s=this.getURL("page",{uuid:t}),a={method:"GET",headers:e};return this.fetchAPI(s,a)}async getPages(){const t=this.getHeaders(),e=this.getURL("pages"),r={method:"GET",headers:t};return this.fetchAPI(e,r)}async addPage(t){const e=JSON.stringify(t),s=this.getHeaders(),r=this.getURL("page"),o={method:"POST",headers:s,body:e};return this.fetchAPI(r,o)}async deletePage(t){if(!t)return Promise.reject({data:null,error:{message:"Invalid page uuid"},result:"error"});const e=this.getHeaders(),s=this.getURL("page",{uuid:t}),a={method:"DELETE",headers:e};return this.fetchAPI(s,a)}async updatePage(t){const e=JSON.stringify(t),s=this.getHeaders(),r=this.getURL("page"),o={method:"PUT",headers:s,body:e};return this.fetchAPI(r,o)}async getProject(){const t=this.getHeaders(),e=this.getURL("project"),r={method:"GET",headers:t};return this.fetchAPI(e,r)}async updateProject(t){const e=JSON.stringify(t),s=this.getHeaders(),r=this.getURL("project"),o={method:"PUT",headers:s,body:e};return this.fetchAPI(r,o)}async uploadAsset(t){const e=this.getHeaders(),s=this.getURL("asset"),r="POST",a=await t.get("file"),o=new FormData;o.append("file",a);const h={method:r,headers:e,body:o};return this.fetchAPI(s,h)}async getAssets(t,e){const s=this.getHeaders(),r=this.getURL("asset");t&&r.concat(`?limit=${t}`),e&&r.concat(`&offset=${e}`);const o={method:"GET",headers:s};return this.fetchAPI(r,o)}async authenticate({password:t}){const e=JSON.stringify({password:t}),s=this.getHeaders(),r=this.getURL("authenticate"),o={method:"POST",headers:s,body:e};return this.fetchAPI(r,o)}async verify(t){const e=JSON.stringify({token:t}),s=this.getHeaders(),r=this.getURL("verify"),o={method:"POST",headers:s,body:e};return this.fetchAPI(r,o)}getURL(t,e){const s=new URLSearchParams(e).toString();return c.isEmpty(e)?`${d}/v1/${t}`:`${d}/v1/${t}?${s}`}getHeaders(){const t=new Headers;return t.append("x-chai-app-key",this._appKey),t.append("x-chai-auth-secret",this._authSecret),this._accessToken&&t.append("x-chai-access-token",this._accessToken),t}async fetchAPI(t,e){try{const s=await fetch(t,e).then(r=>r.json());if((s==null?void 0:s.result)==="success")return{data:s==null?void 0:s.data,error:null,result:"success"};throw s==null?void 0:s.error}catch(s){return{data:null,error:s,result:"error"}}}}const y=async(n,t)=>{const e=p.getChaiDataProviders(),s=c.filter(e,o=>c.map(n,"providerKey").includes(o.providerKey)),r={},a=[];for(const o of s)try{r[o.providerKey]=await o.dataFn({},t)}catch(h){a.push(h)}return{data:r,errors:a}};exports.ChaibuilderBackend=l;exports.prepareExternalData=y;
package/dist/server.d.ts CHANGED
@@ -19,9 +19,11 @@ declare type ChaiBlock = {
19
19
  } & Record<string, any>;
20
20
 
21
21
  export declare class ChaibuilderBackend implements ChaibuilderBackendInterface {
22
- private authSecret;
23
- private readonly appKey;
22
+ private _authSecret;
23
+ private _accessToken;
24
+ private readonly _appKey;
24
25
  constructor(authSecret: string, appKey: string);
26
+ setAccessToken(token: string | null): void;
25
27
  getPageData(slug: string): Promise<{
26
28
  data: ChaiPageData;
27
29
  error: null;
package/dist/server.js CHANGED
@@ -1,26 +1,30 @@
1
1
  var g = Object.defineProperty;
2
- var u = (n, t, e) => t in n ? g(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e;
3
- var h = (n, t, e) => (u(n, typeof t != "symbol" ? t + "" : t, e), e);
2
+ var u = (a, t, e) => t in a ? g(a, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : a[t] = e;
3
+ var c = (a, t, e) => (u(a, typeof t != "symbol" ? t + "" : t, e), e);
4
4
  import { isEmpty as i, filter as p, map as l } from "lodash";
5
- import { getChaiDataProviders as y } from "@chaibuilder/blocks";
5
+ import { getChaiDataProviders as f } from "@chaibuilder/blocks";
6
6
  const d = "https://api.chaibuilder.com";
7
7
  class v {
8
8
  constructor(t, e) {
9
- h(this, "authSecret");
10
- h(this, "appKey");
9
+ c(this, "_authSecret");
10
+ c(this, "_accessToken", null);
11
+ c(this, "_appKey");
11
12
  if (!t)
12
13
  throw "Please provide valid auth secret.";
13
14
  if (!e)
14
15
  throw "Please provide valid project key.";
15
- this.authSecret = t, this.appKey = e;
16
+ this._authSecret = t, this._appKey = e;
17
+ }
18
+ setAccessToken(t) {
19
+ this._accessToken = t;
16
20
  }
17
21
  async getPageData(t) {
18
- const e = this.getHeaders(), s = this.getURL("page-data", i(t) ? {} : { slug: t }), a = {
22
+ const e = this.getHeaders(), s = this.getURL("page-data", i(t) ? {} : { slug: t }), n = {
19
23
  method: "GET",
20
24
  headers: e,
21
25
  next: { tags: ["everything", i(t) ? "_homepage" : t] }
22
26
  };
23
- return this.fetchAPI(s, a);
27
+ return this.fetchAPI(s, n);
24
28
  }
25
29
  /**
26
30
  *
@@ -34,8 +38,8 @@ class v {
34
38
  error: { message: "Invalid page uuid" },
35
39
  result: "error"
36
40
  });
37
- const e = this.getHeaders(), s = this.getURL("page", { uuid: t }), a = { method: "GET", headers: e };
38
- return this.fetchAPI(s, a);
41
+ const e = this.getHeaders(), s = this.getURL("page", { uuid: t }), n = { method: "GET", headers: e };
42
+ return this.fetchAPI(s, n);
39
43
  }
40
44
  /**
41
45
  *
@@ -67,8 +71,8 @@ class v {
67
71
  error: { message: "Invalid page uuid" },
68
72
  result: "error"
69
73
  });
70
- const e = this.getHeaders(), s = this.getURL("page", { uuid: t }), a = { method: "DELETE", headers: e };
71
- return this.fetchAPI(s, a);
74
+ const e = this.getHeaders(), s = this.getURL("page", { uuid: t }), n = { method: "DELETE", headers: e };
75
+ return this.fetchAPI(s, n);
72
76
  }
73
77
  /**
74
78
  *
@@ -103,10 +107,10 @@ class v {
103
107
  * @param req
104
108
  */
105
109
  async uploadAsset(t) {
106
- const e = this.getHeaders(), s = this.getURL("asset"), r = "POST", a = await t.get("file"), o = new FormData();
107
- o.append("file", a);
108
- const c = { method: r, headers: e, body: o };
109
- return this.fetchAPI(s, c);
110
+ const e = this.getHeaders(), s = this.getURL("asset"), r = "POST", n = await t.get("file"), o = new FormData();
111
+ o.append("file", n);
112
+ const h = { method: r, headers: e, body: o };
113
+ return this.fetchAPI(s, h);
110
114
  }
111
115
  /**
112
116
  *
@@ -154,7 +158,7 @@ class v {
154
158
  */
155
159
  getHeaders() {
156
160
  const t = new Headers();
157
- return t.append("x-chai-app-key", this.appKey), t.append("x-chai-auth-secret", this.authSecret), t;
161
+ return t.append("x-chai-app-key", this._appKey), t.append("x-chai-auth-secret", this._authSecret), this._accessToken && t.append("x-chai-access-token", this._accessToken), t;
158
162
  }
159
163
  /**
160
164
  *
@@ -171,17 +175,17 @@ class v {
171
175
  }
172
176
  }
173
177
  }
174
- const U = async (n, t) => {
175
- const e = y(), s = p(e, (o) => l(n, "providerKey").includes(o.providerKey)), r = {}, a = [];
178
+ const A = async (a, t) => {
179
+ const e = f(), s = p(e, (o) => l(a, "providerKey").includes(o.providerKey)), r = {}, n = [];
176
180
  for (const o of s)
177
181
  try {
178
182
  r[o.providerKey] = await o.dataFn({}, t);
179
- } catch (c) {
180
- a.push(c);
183
+ } catch (h) {
184
+ n.push(h);
181
185
  }
182
- return { data: r, errors: a };
186
+ return { data: r, errors: n };
183
187
  };
184
188
  export {
185
189
  v as ChaibuilderBackend,
186
- U as prepareExternalData
190
+ A as prepareExternalData
187
191
  };
@@ -2,29 +2,30 @@ import { j as t } from "./jsx-runtime-944c88e2.js";
2
2
  import y, { useState as I, useEffect as L } from "react";
3
3
  import { isEqual as P, isEmpty as C, isString as z, omit as j, kebabCase as B } from "lodash";
4
4
  import { HomeIcon as G } from "@radix-ui/react-icons";
5
- import { B as Y } from "./useBuilderProp-81a14920.js";
5
+ import { B as Y } from "./useBuilderProp-21feb2da.js";
6
6
  import { S as q } from "./scroll-area-83bd9e8f.js";
7
7
  import { SingleLineText as g, Model as Z, MultilineText as $, Image as F, Checkbox as Q } from "@chaibuilder/blocks";
8
8
  import { toast as U } from "sonner";
9
- import { F as h } from "./form-046bcdbc.js";
10
- import { a2 as V, R as X, a3 as _, S as K } from "./index-370ce00c.js";
11
- import "@radix-ui/react-slot";
12
- import "class-variance-authority";
9
+ import { F as h } from "./form-25e1af37.js";
10
+ import { a2 as V, R as X, a3 as _, S as K } from "./index-914d197c.js";
11
+ import "@radix-ui/react-alert-dialog";
13
12
  import "./utils-ac68b2c8.js";
14
13
  import "clsx";
15
14
  import "tailwind-merge";
15
+ import "@radix-ui/react-slot";
16
+ import "class-variance-authority";
16
17
  import "@radix-ui/react-tooltip";
17
18
  import "@radix-ui/react-toast";
18
19
  import "jotai";
19
20
  import "@radix-ui/react-scroll-area";
20
21
  import "@rjsf/core";
21
22
  import "@rjsf/validator-ajv8";
22
- import "./link-e3a788f7.js";
23
+ import "./link-57de608a.js";
23
24
  import "react-icons-picker";
24
25
  import "react-dom";
25
26
  import "./dialog-18207bef.js";
26
27
  import "@radix-ui/react-dialog";
27
- import "./ImagesPanel-3fb8087f.js";
28
+ import "./ImagesPanel-47ac13c3.js";
28
29
  import "./tabs-85caa1e8.js";
29
30
  import "@radix-ui/react-tabs";
30
31
  import "react-quill";
@@ -42,7 +43,7 @@ import "himalaya";
42
43
  import "redux-undo";
43
44
  import "@react-hookz/web";
44
45
  import "lucide-react";
45
- const O = y.lazy(() => import("./delete-page-modal-961dcc5f.js")), J = y.lazy(() => import("./confirm-alert-f2a47cc7.js")), x = (n) => {
46
+ const O = y.lazy(() => import("./delete-page-modal-a226ed3a.js")), J = y.lazy(() => import("./confirm-alert-c1fdf1e4.js")), x = (n) => {
46
47
  if (!z(n) || !(n.includes("/[") && n.includes("]")))
47
48
  return !1;
48
49
  const s = /^\[((?:\.{3})?[a-zA-Z0-9_-]+)\]$/, u = /^[a-zA-Z0-9_-]+$/;
@@ -56,7 +57,7 @@ const O = y.lazy(() => import("./delete-page-modal-961dcc5f.js")), J = y.lazy(()
56
57
  } : n, W = (n, l) => {
57
58
  const s = !P(j(n, ["seoData"]), j(l, ["seoData"])), u = !P(f(l).seoData, f(n).seoData);
58
59
  return s || u;
59
- }, Fe = ({ open: n, setOpen: l, pageData: s }) => {
60
+ }, Qe = ({ open: n, setOpen: l, pageData: s }) => {
60
61
  const u = V(), { data: e } = X(), r = _(), c = K("Homepage updated successfully."), [i, T] = I(f(s)), [d, M] = I({
61
62
  isHomePage: (e == null ? void 0 : e.homepage) === s.uuid
62
63
  }), S = W(i, s);
@@ -204,5 +205,5 @@ const O = y.lazy(() => import("./delete-page-modal-961dcc5f.js")), J = y.lazy(()
204
205
  ] });
205
206
  };
206
207
  export {
207
- Fe as default
208
+ Qe as default
208
209
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./jsx-runtime-5c3ac4f7.cjs"),g=require("react"),c=require("lodash"),M=require("@radix-ui/react-icons"),H=require("./useBuilderProp-adacf42f.cjs"),w=require("./scroll-area-bb343b86.cjs"),d=require("@chaibuilder/blocks"),L=require("sonner"),p=require("./form-ea21db6c.cjs"),P=require("./index-6fc652ec.cjs");require("@radix-ui/react-alert-dialog");require("./utils-3c452dd0.cjs");require("clsx");require("tailwind-merge");require("@radix-ui/react-slot");require("class-variance-authority");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("jotai");require("@radix-ui/react-scroll-area");require("@rjsf/core");require("@rjsf/validator-ajv8");require("./link-24679521.cjs");require("react-icons-picker");require("react-dom");require("./dialog-170eaad9.cjs");require("@radix-ui/react-dialog");require("./ImagesPanel-8b7a989d.cjs");require("./tabs-860e37aa.cjs");require("@radix-ui/react-tabs");require("react-quill");require("react-i18next");require("./MODIFIERS-4716c669.cjs");require("@floating-ui/react-dom");require("i18next");require("flagged");require("react-dnd");require("@minoru/react-dnd-treeview");require("react-hotkeys-hook");require("flat-to-nested");require("./html-to-json-aadcbf66.cjs");require("himalaya");require("redux-undo");require("@react-hookz/web");require("lucide-react");const z=g.lazy(()=>Promise.resolve().then(()=>require("./delete-page-modal-305c49fd.cjs"))),B=g.lazy(()=>Promise.resolve().then(()=>require("./confirm-alert-e1ea5110.cjs"))),E=n=>{if(!c.isString(n)||!(n.includes("/[")&&n.includes("]")))return!1;const s=/^\[((?:\.{3})?[a-zA-Z0-9_-]+)\]$/,q=/^[a-zA-Z0-9_-]+$/;let e=!0;return n.split("/").forEach(u=>{e&&(u.includes("[[")&&u.includes("]]")?e=/^\[\[\.{3}[a-zA-Z0-9_-]+\]\]$/.test(u):u.includes("[")&&u.includes("]")?e=s.test(u):e=q.test(u))}),e},h=n=>n&&c.isEmpty(n.seoData)?{...n,seoData:{title:"",description:"",image:""}}:n,G=(n,o)=>{const s=!c.isEqual(c.omit(n,["seoData"]),c.omit(o,["seoData"])),q=!c.isEqual(h(o).seoData,h(n).seoData);return s||q},Y=({open:n,setOpen:o,pageData:s})=>{const q=P.useQueryClient(),{data:e}=P.useProject(),u=P.useUpdatePage(),m=P.useUpdateProject("Homepage updated successfully."),[i,b]=g.useState(h(s)),[a,y]=g.useState({isHomePage:(e==null?void 0:e.homepage)===s.uuid}),j=G(i,s);g.useEffect(()=>{const l=!c.isEqual(h(s),i),r=(e==null?void 0:e.homepage)!==s.uuid&&a.isHomePage;o(l||r?"PENDING":"OPEN")},[e,s,i,a,o]);const S=()=>{if(j){if(s.type==="DYNAMIC"&&!E((i==null?void 0:i.slug)||"")){n==="ALERT"&&o("PENDING");return}u.mutate(i,{onSuccess:()=>{q.invalidateQueries({refetchType:"active",queryKey:["pages",e==null?void 0:e.uuid]}),o("CLOSE"),L.toast.success("Page updated successfully.")}})}a.isHomePage&&(e==null?void 0:e.homepage)!==s.uuid&&m.mutate({...e,homepage:s==null?void 0:s.uuid},{onSuccess:()=>o("CLOSE")})},C=({formData:l},r)=>{b(f=>{var R,N;if(!r)return f;const x={[r]:l[r]};return r==="name"?x.slug=c.kebabCase((R=l[r])==null?void 0:R.replace(/\d/g,"")):r==="slug"?x.slug=(N=l[r])==null?void 0:N.replace(/\d/g,"").replace(/\s+/g,"").replace("--","-").replace("__","_"):r==="seoData"&&(x.seoData={title:l[r].title||"",description:l[r].description||"",image:l[r].image||""}),{...f,...x}})},A=({formData:l},r)=>{y(f=>{const x={[r]:l[r]};return{...f,...x}})},I={name:d.SingleLineText({title:"Page Name",default:i.name}),slug:d.SingleLineText({title:"Page Slug",default:i.slug})},T={seoData:d.Model({title:"",description:"",default:{title:"",description:"",image:""},properties:{title:d.SingleLineText({title:"Meta Title",default:i.name}),description:d.MultilineText({title:"Meta Description",default:i.slug}),image:d.Image({title:"Social Media Image",default:""})}})},v={isHomePage:d.Checkbox({title:"Set as homepage",default:a.isHomePage})};return t.jsxRuntimeExports.jsxs(w.ScrollArea,{className:"flex h-full select-none flex-col",children:[t.jsxRuntimeExports.jsx(B,{open:n==="ALERT",title:"Do yo want to save changes?",onCancel:()=>o("CLOSE"),onConfirm:S,disabled:m.isPending||u.isPending}),t.jsxRuntimeExports.jsx("div",{className:"rounded-md bg-background/30 px-2.5 py-1",children:t.jsxRuntimeExports.jsx("h1",{className:"px-1 font-semibold",children:"Page Details"})}),t.jsxRuntimeExports.jsx("div",{className:"px-2.5 pt-2",children:t.jsxRuntimeExports.jsxs("div",{className:"flex flex-col space-y-2",children:[t.jsxRuntimeExports.jsx(p.Form,{title:"Basic Details",formData:i,properties:I,onChange:C,disabled:u.isPending||m.isPending}),t.jsxRuntimeExports.jsx("div",{className:"h-2 w-full"}),t.jsxRuntimeExports.jsx(p.Form,{title:"SEO Details",formData:i,properties:T,onChange:C,disabled:u.isPending||m.isPending}),(e==null?void 0:e.homepage)!==s.uuid&&s.type==="STATIC"?t.jsxRuntimeExports.jsx(p.Form,{formData:a,properties:v,onChange:A,disabled:u.isPending||m.isPending}):s.type==="STATIC"&&t.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-x-1 px-1 pt-2 text-xs font-medium text-gray-500",children:[t.jsxRuntimeExports.jsx(M.HomeIcon,{})," This is homepage"," "]}),i.type==="DYNAMIC"&&!E((i==null?void 0:i.slug)||"")&&t.jsxRuntimeExports.jsxs("small",{className:"px-1 text-red-400",children:["Add dynamic ID in page slug Eg: ",t.jsxRuntimeExports.jsx("i",{className:"underline",children:"some-url/[some-id]"})]}),t.jsxRuntimeExports.jsxs("div",{className:"my-2 flex w-full items-center justify-between gap-x-2 px-1",children:[t.jsxRuntimeExports.jsx(H.Button,{className:"w-full",type:"submit",onClick:S,disabled:(e==null?void 0:e.homepage)!==s.uuid&&a.isHomePage?!1:c.isEmpty(i.name)||c.isEmpty(i.slug)||!j||u.isPending||m.isPending||i.type==="DYNAMIC"&&!E((i==null?void 0:i.slug)||""),children:"Save"}),t.jsxRuntimeExports.jsx(z,{pageData:s,projectData:e})]})]})})]})};exports.default=Y;
package/dist/ui.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const j=require("./toggle-b90fed97.cjs"),a=require("./dropdown-menu-84b2439e.cjs"),c=require("./useBuilderProp-5e57d0c8.cjs"),C=require("./accordion-0afd8143.cjs"),m=require("./textarea-a338ede6.cjs"),r=require("./jsx-runtime-5c3ac4f7.cjs"),y=require("class-variance-authority"),s=require("./utils-3c452dd0.cjs"),x=require("./alert-dialog-4ce6ed22.cjs"),f=require("./dialog-170eaad9.cjs"),p=require("./command-b1103666.cjs"),Q=require("./label-167415e5.cjs"),w=require("./scroll-area-bb343b86.cjs"),M=require("./tabs-860e37aa.cjs"),D=require("./popover-7cb9079b.cjs"),U=require("react"),S=require("@radix-ui/react-icons"),W=require("@radix-ui/react-menubar"),g=require("./select-0e32300c.cjs"),X=require("@radix-ui/react-dialog"),Y=require("./separator-a597dba7.cjs"),d=require("./context-menu-fec580f2.cjs"),h=require("./link-e71b94f1.cjs");require("@radix-ui/react-toggle");require("@radix-ui/react-switch");require("@radix-ui/react-hover-card");require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-slot");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("jotai");require("lodash");require("@radix-ui/react-accordion");require("clsx");require("tailwind-merge");require("@radix-ui/react-alert-dialog");require("cmdk");require("@radix-ui/react-label");require("@radix-ui/react-scroll-area");require("@radix-ui/react-tabs");require("@radix-ui/react-popover");require("@radix-ui/react-select");require("@radix-ui/react-separator");require("@radix-ui/react-context-menu");require("react-icons-picker");require("react-dom");require("./ImagesPanel-56ca0618.cjs");require("react-quill");require("react-i18next");function T(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const i=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,i.get?i:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const u=T(U),n=T(W),l=T(X),R=y.cva("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}}),Z=({className:e,variant:t,...o})=>r.jsxRuntimeExports.jsx("div",{className:s.cn(R({variant:t}),e),...o}),$=n.Menu,ee=n.Group,te=n.Portal,oe=n.Sub,re=n.RadioGroup,N=u.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(n.Root,{ref:o,className:s.cn("flex h-9 items-center space-x-1 rounded-md border bg-background p-1 shadow-sm",e),...t}));N.displayName=n.Root.displayName;const v=u.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(n.Trigger,{ref:o,className:s.cn("flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",e),...t}));v.displayName=n.Trigger.displayName;const q=u.forwardRef(({className:e,inset:t,children:o,...i},b)=>r.jsxRuntimeExports.jsxs(n.SubTrigger,{ref:b,className:s.cn("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...i,children:[o,r.jsxRuntimeExports.jsx(S.ChevronRightIcon,{className:"ml-auto h-4 w-4"})]}));q.displayName=n.SubTrigger.displayName;const I=u.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(n.SubContent,{ref:o,className:s.cn("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t}));I.displayName=n.SubContent.displayName;const A=u.forwardRef(({className:e,align:t="start",alignOffset:o=-4,sideOffset:i=8,...b},K)=>r.jsxRuntimeExports.jsx(n.Portal,{children:r.jsxRuntimeExports.jsx(n.Content,{ref:K,align:t,alignOffset:o,sideOffset:i,className:s.cn("z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...b})}));A.displayName=n.Content.displayName;const E=u.forwardRef(({className:e,inset:t,...o},i)=>r.jsxRuntimeExports.jsx(n.Item,{ref:i,className:s.cn("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...o}));E.displayName=n.Item.displayName;const P=u.forwardRef(({className:e,children:t,checked:o,...i},b)=>r.jsxRuntimeExports.jsxs(n.CheckboxItem,{ref:b,className:s.cn("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:o,...i,children:[r.jsxRuntimeExports.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsxRuntimeExports.jsx(n.ItemIndicator,{children:r.jsxRuntimeExports.jsx(S.CheckIcon,{className:"h-4 w-4"})})}),t]}));P.displayName=n.CheckboxItem.displayName;const k=u.forwardRef(({className:e,children:t,...o},i)=>r.jsxRuntimeExports.jsxs(n.RadioItem,{ref:i,className:s.cn("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...o,children:[r.jsxRuntimeExports.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsxRuntimeExports.jsx(n.ItemIndicator,{children:r.jsxRuntimeExports.jsx(S.DotFilledIcon,{className:"h-4 w-4 fill-current"})})}),t]}));k.displayName=n.RadioItem.displayName;const F=u.forwardRef(({className:e,inset:t,...o},i)=>r.jsxRuntimeExports.jsx(n.Label,{ref:i,className:s.cn("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...o}));F.displayName=n.Label.displayName;const G=u.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(n.Separator,{ref:o,className:s.cn("-mx-1 my-1 h-px bg-muted",e),...t}));G.displayName=n.Separator.displayName;const L=({className:e,...t})=>r.jsxRuntimeExports.jsx("span",{className:s.cn("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});L.displayname="MenubarShortcut";const ne=l.Root,ae=l.Trigger,se=l.Close,H=({className:e,...t})=>r.jsxRuntimeExports.jsx(l.Portal,{className:s.cn(e),...t});H.displayName=l.Portal.displayName;const V=u.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(l.Overlay,{className:s.cn("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:o}));V.displayName=l.Overlay.displayName;const ie=y.cva("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),z=u.forwardRef(({side:e="right",className:t,children:o,...i},b)=>r.jsxRuntimeExports.jsxs(H,{children:[r.jsxRuntimeExports.jsx(V,{}),r.jsxRuntimeExports.jsxs(l.Content,{ref:b,className:s.cn(ie({side:e}),t),...i,children:[o,r.jsxRuntimeExports.jsxs(l.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[r.jsxRuntimeExports.jsx(S.Cross2Icon,{className:"h-4 w-4"}),r.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));z.displayName=l.Content.displayName;const O=({className:e,...t})=>r.jsxRuntimeExports.jsx("div",{className:s.cn("flex flex-col space-y-2 text-center sm:text-left",e),...t});O.displayName="SheetHeader";const B=({className:e,...t})=>r.jsxRuntimeExports.jsx("div",{className:s.cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});B.displayName="SheetFooter";const _=u.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(l.Title,{ref:o,className:s.cn("text-lg font-semibold text-foreground",e),...t}));_.displayName=l.Title.displayName;const J=u.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(l.Description,{ref:o,className:s.cn("text-sm text-muted-foreground",e),...t}));J.displayName=l.Description.displayName;exports.Toggle=j.Toggle;exports.toggleVariants=j.toggleVariants;exports.DropdownMenu=a.DropdownMenu;exports.DropdownMenuCheckboxItem=a.DropdownMenuCheckboxItem;exports.DropdownMenuContent=a.DropdownMenuContent;exports.DropdownMenuGroup=a.DropdownMenuGroup;exports.DropdownMenuItem=a.DropdownMenuItem;exports.DropdownMenuLabel=a.DropdownMenuLabel;exports.DropdownMenuPortal=a.DropdownMenuPortal;exports.DropdownMenuRadioGroup=a.DropdownMenuRadioGroup;exports.DropdownMenuRadioItem=a.DropdownMenuRadioItem;exports.DropdownMenuSeparator=a.DropdownMenuSeparator;exports.DropdownMenuShortcut=a.DropdownMenuShortcut;exports.DropdownMenuSub=a.DropdownMenuSub;exports.DropdownMenuSubContent=a.DropdownMenuSubContent;exports.DropdownMenuSubTrigger=a.DropdownMenuSubTrigger;exports.DropdownMenuTrigger=a.DropdownMenuTrigger;exports.HoverCard=a.HoverCard;exports.HoverCardContent=a.HoverCardContent;exports.HoverCardTrigger=a.HoverCardTrigger;exports.Switch=a.Switch;exports.Button=c.Button;exports.Skeleton=c.Skeleton;exports.Toaster=c.Toaster;exports.Tooltip=c.Tooltip;exports.TooltipContent=c.TooltipContent;exports.TooltipPortal=c.TooltipPortal;exports.TooltipProvider=c.TooltipProvider;exports.TooltipTrigger=c.TooltipTrigger;exports.buttonVariants=c.buttonVariants;exports.reducer=c.reducer;exports.toast=c.toast;exports.useToast=c.useToast;exports.Accordion=C.Accordion;exports.AccordionContent=C.AccordionContent;exports.AccordionItem=C.AccordionItem;exports.AccordionTrigger=C.AccordionTrigger;exports.Alert=m.Alert;exports.AlertDescription=m.AlertDescription;exports.AlertTitle=m.AlertTitle;exports.Card=m.Card;exports.CardContent=m.CardContent;exports.CardDescription=m.CardDescription;exports.CardFooter=m.CardFooter;exports.CardHeader=m.CardHeader;exports.CardTitle=m.CardTitle;exports.Textarea=m.Textarea;exports.AlertDialog=x.AlertDialog;exports.AlertDialogAction=x.AlertDialogAction;exports.AlertDialogCancel=x.AlertDialogCancel;exports.AlertDialogContent=x.AlertDialogContent;exports.AlertDialogDescription=x.AlertDialogDescription;exports.AlertDialogFooter=x.AlertDialogFooter;exports.AlertDialogHeader=x.AlertDialogHeader;exports.AlertDialogTitle=x.AlertDialogTitle;exports.AlertDialogTrigger=x.AlertDialogTrigger;exports.Dialog=f.Dialog;exports.DialogContent=f.DialogContent;exports.DialogDescription=f.DialogDescription;exports.DialogFooter=f.DialogFooter;exports.DialogHeader=f.DialogHeader;exports.DialogTitle=f.DialogTitle;exports.DialogTrigger=f.DialogTrigger;exports.Command=p.Command;exports.CommandDialog=p.CommandDialog;exports.CommandEmpty=p.CommandEmpty;exports.CommandGroup=p.CommandGroup;exports.CommandInput=p.CommandInput;exports.CommandItem=p.CommandItem;exports.CommandList=p.CommandList;exports.CommandSeparator=p.CommandSeparator;exports.CommandShortcut=p.CommandShortcut;exports.Input=p.Input;exports.Label=Q.Label;exports.ScrollArea=w.ScrollArea;exports.ScrollBar=w.ScrollBar;exports.Tabs=M.Tabs;exports.TabsContent=M.TabsContent;exports.TabsList=M.TabsList;exports.TabsTrigger=M.TabsTrigger;exports.Popover=D.Popover;exports.PopoverContent=D.PopoverContent;exports.PopoverTrigger=D.PopoverTrigger;exports.Select=g.Select;exports.SelectContent=g.SelectContent;exports.SelectGroup=g.SelectGroup;exports.SelectItem=g.SelectItem;exports.SelectLabel=g.SelectLabel;exports.SelectSeparator=g.SelectSeparator;exports.SelectTrigger=g.SelectTrigger;exports.SelectValue=g.SelectValue;exports.Separator=Y.Separator;exports.ContextMenu=d.ContextMenu;exports.ContextMenuCheckboxItem=d.ContextMenuCheckboxItem;exports.ContextMenuContent=d.ContextMenuContent;exports.ContextMenuGroup=d.ContextMenuGroup;exports.ContextMenuItem=d.ContextMenuItem;exports.ContextMenuLabel=d.ContextMenuLabel;exports.ContextMenuPortal=d.ContextMenuPortal;exports.ContextMenuRadioGroup=d.ContextMenuRadioGroup;exports.ContextMenuRadioItem=d.ContextMenuRadioItem;exports.ContextMenuSeparator=d.ContextMenuSeparator;exports.ContextMenuShortcut=d.ContextMenuShortcut;exports.ContextMenuSub=d.ContextMenuSub;exports.ContextMenuSubContent=d.ContextMenuSubContent;exports.ContextMenuSubTrigger=d.ContextMenuSubTrigger;exports.ContextMenuTrigger=d.ContextMenuTrigger;exports.IconPickerField=h.IconPickerField;exports.ImagePickerField=h.ImagePickerField;exports.LinkField=h.LinkField;exports.RTEField=h.RichTextEditorField;exports.Badge=Z;exports.Menubar=N;exports.MenubarCheckboxItem=P;exports.MenubarContent=A;exports.MenubarGroup=ee;exports.MenubarItem=E;exports.MenubarLabel=F;exports.MenubarMenu=$;exports.MenubarPortal=te;exports.MenubarRadioGroup=re;exports.MenubarRadioItem=k;exports.MenubarSeparator=G;exports.MenubarShortcut=L;exports.MenubarSub=oe;exports.MenubarSubContent=I;exports.MenubarSubTrigger=q;exports.MenubarTrigger=v;exports.Sheet=ne;exports.SheetClose=se;exports.SheetContent=z;exports.SheetDescription=J;exports.SheetFooter=B;exports.SheetHeader=O;exports.SheetTitle=_;exports.SheetTrigger=ae;exports.badgeVariants=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("./toggle-b90fed97.cjs"),s=require("./dropdown-menu-84b2439e.cjs"),a=require("./useBuilderProp-adacf42f.cjs"),f=require("./accordion-0afd8143.cjs"),m=require("./textarea-a338ede6.cjs"),r=require("./jsx-runtime-5c3ac4f7.cjs"),j=require("class-variance-authority"),i=require("./utils-3c452dd0.cjs"),b=require("./dialog-170eaad9.cjs"),p=require("./command-b1103666.cjs"),K=require("./label-167415e5.cjs"),y=require("./scroll-area-bb343b86.cjs"),C=require("./tabs-860e37aa.cjs"),h=require("./popover-7cb9079b.cjs"),Q=require("react"),M=require("@radix-ui/react-icons"),U=require("@radix-ui/react-menubar"),x=require("./select-0e32300c.cjs"),W=require("@radix-ui/react-dialog"),X=require("./separator-a597dba7.cjs"),l=require("./context-menu-fec580f2.cjs"),S=require("./link-24679521.cjs");require("@radix-ui/react-toggle");require("@radix-ui/react-switch");require("@radix-ui/react-hover-card");require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-slot");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("jotai");require("lodash");require("@radix-ui/react-accordion");require("clsx");require("tailwind-merge");require("cmdk");require("@radix-ui/react-label");require("@radix-ui/react-scroll-area");require("@radix-ui/react-tabs");require("@radix-ui/react-popover");require("@radix-ui/react-select");require("@radix-ui/react-separator");require("@radix-ui/react-context-menu");require("react-icons-picker");require("react-dom");require("./ImagesPanel-8b7a989d.cjs");require("react-quill");require("react-i18next");function D(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const d=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,d.get?d:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const c=D(Q),n=D(U),u=D(W),w=j.cva("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}}),Y=({className:e,variant:t,...o})=>r.jsxRuntimeExports.jsx("div",{className:i.cn(w({variant:t}),e),...o}),Z=n.Menu,$=n.Group,ee=n.Portal,te=n.Sub,oe=n.RadioGroup,R=c.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(n.Root,{ref:o,className:i.cn("flex h-9 items-center space-x-1 rounded-md border bg-background p-1 shadow-sm",e),...t}));R.displayName=n.Root.displayName;const N=c.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(n.Trigger,{ref:o,className:i.cn("flex cursor-default select-none items-center rounded-sm px-3 py-1 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",e),...t}));N.displayName=n.Trigger.displayName;const v=c.forwardRef(({className:e,inset:t,children:o,...d},g)=>r.jsxRuntimeExports.jsxs(n.SubTrigger,{ref:g,className:i.cn("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...d,children:[o,r.jsxRuntimeExports.jsx(M.ChevronRightIcon,{className:"ml-auto h-4 w-4"})]}));v.displayName=n.SubTrigger.displayName;const q=c.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(n.SubContent,{ref:o,className:i.cn("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t}));q.displayName=n.SubContent.displayName;const I=c.forwardRef(({className:e,align:t="start",alignOffset:o=-4,sideOffset:d=8,...g},J)=>r.jsxRuntimeExports.jsx(n.Portal,{children:r.jsxRuntimeExports.jsx(n.Content,{ref:J,align:t,alignOffset:o,sideOffset:d,className:i.cn("z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...g})}));I.displayName=n.Content.displayName;const A=c.forwardRef(({className:e,inset:t,...o},d)=>r.jsxRuntimeExports.jsx(n.Item,{ref:d,className:i.cn("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...o}));A.displayName=n.Item.displayName;const E=c.forwardRef(({className:e,children:t,checked:o,...d},g)=>r.jsxRuntimeExports.jsxs(n.CheckboxItem,{ref:g,className:i.cn("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:o,...d,children:[r.jsxRuntimeExports.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsxRuntimeExports.jsx(n.ItemIndicator,{children:r.jsxRuntimeExports.jsx(M.CheckIcon,{className:"h-4 w-4"})})}),t]}));E.displayName=n.CheckboxItem.displayName;const P=c.forwardRef(({className:e,children:t,...o},d)=>r.jsxRuntimeExports.jsxs(n.RadioItem,{ref:d,className:i.cn("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...o,children:[r.jsxRuntimeExports.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsxRuntimeExports.jsx(n.ItemIndicator,{children:r.jsxRuntimeExports.jsx(M.DotFilledIcon,{className:"h-4 w-4 fill-current"})})}),t]}));P.displayName=n.RadioItem.displayName;const k=c.forwardRef(({className:e,inset:t,...o},d)=>r.jsxRuntimeExports.jsx(n.Label,{ref:d,className:i.cn("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...o}));k.displayName=n.Label.displayName;const F=c.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(n.Separator,{ref:o,className:i.cn("-mx-1 my-1 h-px bg-muted",e),...t}));F.displayName=n.Separator.displayName;const G=({className:e,...t})=>r.jsxRuntimeExports.jsx("span",{className:i.cn("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});G.displayname="MenubarShortcut";const re=u.Root,ne=u.Trigger,ae=u.Close,L=({className:e,...t})=>r.jsxRuntimeExports.jsx(u.Portal,{className:i.cn(e),...t});L.displayName=u.Portal.displayName;const H=c.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(u.Overlay,{className:i.cn("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:o}));H.displayName=u.Overlay.displayName;const se=j.cva("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),V=c.forwardRef(({side:e="right",className:t,children:o,...d},g)=>r.jsxRuntimeExports.jsxs(L,{children:[r.jsxRuntimeExports.jsx(H,{}),r.jsxRuntimeExports.jsxs(u.Content,{ref:g,className:i.cn(se({side:e}),t),...d,children:[o,r.jsxRuntimeExports.jsxs(u.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[r.jsxRuntimeExports.jsx(M.Cross2Icon,{className:"h-4 w-4"}),r.jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));V.displayName=u.Content.displayName;const z=({className:e,...t})=>r.jsxRuntimeExports.jsx("div",{className:i.cn("flex flex-col space-y-2 text-center sm:text-left",e),...t});z.displayName="SheetHeader";const O=({className:e,...t})=>r.jsxRuntimeExports.jsx("div",{className:i.cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});O.displayName="SheetFooter";const B=c.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(u.Title,{ref:o,className:i.cn("text-lg font-semibold text-foreground",e),...t}));B.displayName=u.Title.displayName;const _=c.forwardRef(({className:e,...t},o)=>r.jsxRuntimeExports.jsx(u.Description,{ref:o,className:i.cn("text-sm text-muted-foreground",e),...t}));_.displayName=u.Description.displayName;exports.Toggle=T.Toggle;exports.toggleVariants=T.toggleVariants;exports.DropdownMenu=s.DropdownMenu;exports.DropdownMenuCheckboxItem=s.DropdownMenuCheckboxItem;exports.DropdownMenuContent=s.DropdownMenuContent;exports.DropdownMenuGroup=s.DropdownMenuGroup;exports.DropdownMenuItem=s.DropdownMenuItem;exports.DropdownMenuLabel=s.DropdownMenuLabel;exports.DropdownMenuPortal=s.DropdownMenuPortal;exports.DropdownMenuRadioGroup=s.DropdownMenuRadioGroup;exports.DropdownMenuRadioItem=s.DropdownMenuRadioItem;exports.DropdownMenuSeparator=s.DropdownMenuSeparator;exports.DropdownMenuShortcut=s.DropdownMenuShortcut;exports.DropdownMenuSub=s.DropdownMenuSub;exports.DropdownMenuSubContent=s.DropdownMenuSubContent;exports.DropdownMenuSubTrigger=s.DropdownMenuSubTrigger;exports.DropdownMenuTrigger=s.DropdownMenuTrigger;exports.HoverCard=s.HoverCard;exports.HoverCardContent=s.HoverCardContent;exports.HoverCardTrigger=s.HoverCardTrigger;exports.Switch=s.Switch;exports.AlertDialog=a.AlertDialog;exports.AlertDialogAction=a.AlertDialogAction;exports.AlertDialogCancel=a.AlertDialogCancel;exports.AlertDialogContent=a.AlertDialogContent;exports.AlertDialogDescription=a.AlertDialogDescription;exports.AlertDialogFooter=a.AlertDialogFooter;exports.AlertDialogHeader=a.AlertDialogHeader;exports.AlertDialogTitle=a.AlertDialogTitle;exports.AlertDialogTrigger=a.AlertDialogTrigger;exports.Button=a.Button;exports.Skeleton=a.Skeleton;exports.Toaster=a.Toaster;exports.Tooltip=a.Tooltip;exports.TooltipContent=a.TooltipContent;exports.TooltipPortal=a.TooltipPortal;exports.TooltipProvider=a.TooltipProvider;exports.TooltipTrigger=a.TooltipTrigger;exports.buttonVariants=a.buttonVariants;exports.reducer=a.reducer;exports.toast=a.toast;exports.useToast=a.useToast;exports.Accordion=f.Accordion;exports.AccordionContent=f.AccordionContent;exports.AccordionItem=f.AccordionItem;exports.AccordionTrigger=f.AccordionTrigger;exports.Alert=m.Alert;exports.AlertDescription=m.AlertDescription;exports.AlertTitle=m.AlertTitle;exports.Card=m.Card;exports.CardContent=m.CardContent;exports.CardDescription=m.CardDescription;exports.CardFooter=m.CardFooter;exports.CardHeader=m.CardHeader;exports.CardTitle=m.CardTitle;exports.Textarea=m.Textarea;exports.Dialog=b.Dialog;exports.DialogContent=b.DialogContent;exports.DialogDescription=b.DialogDescription;exports.DialogFooter=b.DialogFooter;exports.DialogHeader=b.DialogHeader;exports.DialogTitle=b.DialogTitle;exports.DialogTrigger=b.DialogTrigger;exports.Command=p.Command;exports.CommandDialog=p.CommandDialog;exports.CommandEmpty=p.CommandEmpty;exports.CommandGroup=p.CommandGroup;exports.CommandInput=p.CommandInput;exports.CommandItem=p.CommandItem;exports.CommandList=p.CommandList;exports.CommandSeparator=p.CommandSeparator;exports.CommandShortcut=p.CommandShortcut;exports.Input=p.Input;exports.Label=K.Label;exports.ScrollArea=y.ScrollArea;exports.ScrollBar=y.ScrollBar;exports.Tabs=C.Tabs;exports.TabsContent=C.TabsContent;exports.TabsList=C.TabsList;exports.TabsTrigger=C.TabsTrigger;exports.Popover=h.Popover;exports.PopoverContent=h.PopoverContent;exports.PopoverTrigger=h.PopoverTrigger;exports.Select=x.Select;exports.SelectContent=x.SelectContent;exports.SelectGroup=x.SelectGroup;exports.SelectItem=x.SelectItem;exports.SelectLabel=x.SelectLabel;exports.SelectSeparator=x.SelectSeparator;exports.SelectTrigger=x.SelectTrigger;exports.SelectValue=x.SelectValue;exports.Separator=X.Separator;exports.ContextMenu=l.ContextMenu;exports.ContextMenuCheckboxItem=l.ContextMenuCheckboxItem;exports.ContextMenuContent=l.ContextMenuContent;exports.ContextMenuGroup=l.ContextMenuGroup;exports.ContextMenuItem=l.ContextMenuItem;exports.ContextMenuLabel=l.ContextMenuLabel;exports.ContextMenuPortal=l.ContextMenuPortal;exports.ContextMenuRadioGroup=l.ContextMenuRadioGroup;exports.ContextMenuRadioItem=l.ContextMenuRadioItem;exports.ContextMenuSeparator=l.ContextMenuSeparator;exports.ContextMenuShortcut=l.ContextMenuShortcut;exports.ContextMenuSub=l.ContextMenuSub;exports.ContextMenuSubContent=l.ContextMenuSubContent;exports.ContextMenuSubTrigger=l.ContextMenuSubTrigger;exports.ContextMenuTrigger=l.ContextMenuTrigger;exports.IconPickerField=S.IconPickerField;exports.ImagePickerField=S.ImagePickerField;exports.LinkField=S.LinkField;exports.RTEField=S.RichTextEditorField;exports.Badge=Y;exports.Menubar=R;exports.MenubarCheckboxItem=E;exports.MenubarContent=I;exports.MenubarGroup=$;exports.MenubarItem=A;exports.MenubarLabel=k;exports.MenubarMenu=Z;exports.MenubarPortal=ee;exports.MenubarRadioGroup=oe;exports.MenubarRadioItem=P;exports.MenubarSeparator=F;exports.MenubarShortcut=G;exports.MenubarSub=te;exports.MenubarSubContent=q;exports.MenubarSubTrigger=v;exports.MenubarTrigger=N;exports.Sheet=re;exports.SheetClose=ae;exports.SheetContent=V;exports.SheetDescription=_;exports.SheetFooter=O;exports.SheetHeader=z;exports.SheetTitle=B;exports.SheetTrigger=ne;exports.badgeVariants=w;