@chaibuilder/sdk 0.1.10 → 0.1.12

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 (55) hide show
  1. package/dist/{AddBlocks-f76f509d.js → AddBlocks-73aa52ed.js} +46 -46
  2. package/dist/{AddBlocks-2feb85b6.cjs → AddBlocks-eafcb8ab.cjs} +2 -2
  3. package/dist/{BrandingOptions-96d7aa44.cjs → BrandingOptions-45caece9.cjs} +1 -1
  4. package/dist/{BrandingOptions-852c1274.js → BrandingOptions-6e8c6721.js} +1 -1
  5. package/dist/{CanvasArea-714b0fdd.js → CanvasArea-3049f560.js} +2 -2
  6. package/dist/{CanvasArea-a272e5ce.cjs → CanvasArea-a392ffc1.cjs} +2 -2
  7. package/dist/{CurrentPage-235f6546.js → CurrentPage-3d3209a1.js} +21 -21
  8. package/dist/CurrentPage-def95a2d.cjs +1 -0
  9. package/dist/{ImagesPanel-8ccab6d9.js → ImagesPanel-36a2f276.js} +1 -1
  10. package/dist/{ImagesPanel-addb2bf9.cjs → ImagesPanel-731cda7a.cjs} +1 -1
  11. package/dist/{Layers-1ce42e18.js → Layers-23512777.js} +2 -2
  12. package/dist/{Layers-42588f4e.cjs → Layers-3bdb61c3.cjs} +1 -1
  13. package/dist/{MarkAsGlobalBlock-f559dc7f.js → MarkAsGlobalBlock-37ae563e.js} +1 -1
  14. package/dist/{MarkAsGlobalBlock-a75613f0.cjs → MarkAsGlobalBlock-d10b749d.cjs} +1 -1
  15. package/dist/PagesPanel-2e626ee0.cjs +1 -0
  16. package/dist/{PagesPanel-40fa913f.js → PagesPanel-a0cb2a3c.js} +8 -14
  17. package/dist/{ProjectPanel-f8629c81.cjs → ProjectPanel-453caab3.cjs} +1 -1
  18. package/dist/{ProjectPanel-232d9d07.js → ProjectPanel-590ad7b5.js} +2 -2
  19. package/dist/{Settings-abd094d0.js → Settings-201df828.js} +3 -3
  20. package/dist/{Settings-8a78ef02.cjs → Settings-3f024a5e.cjs} +1 -1
  21. package/dist/{SidePanels-c1f857a8.js → SidePanels-2135b1a7.js} +2 -2
  22. package/dist/{SidePanels-edb9c3ac.cjs → SidePanels-2d310a73.cjs} +1 -1
  23. package/dist/{Topbar-8a8249c5.js → Topbar-4e436076.js} +1 -1
  24. package/dist/{Topbar-a8ca3af7.cjs → Topbar-f722a517.cjs} +1 -1
  25. package/dist/UploadImages-33c1507a.cjs +1 -0
  26. package/dist/{UploadImages-1839950f.js → UploadImages-f0ba3215.js} +5 -3
  27. package/dist/{add-page-modal-1bc36ab2.cjs → add-page-modal-17cd6043.cjs} +1 -1
  28. package/dist/{add-page-modal-0d32113a.js → add-page-modal-e38900bd.js} +4 -4
  29. package/dist/core.cjs +1 -1
  30. package/dist/core.js +1 -1
  31. package/dist/{delete-page-modal-96c453aa.js → delete-page-modal-69202329.js} +1 -1
  32. package/dist/{delete-page-modal-22b50aea.cjs → delete-page-modal-7e833472.cjs} +1 -1
  33. package/dist/{form-526188f9.js → form-52b48fbc.js} +1 -1
  34. package/dist/{form-431f0141.cjs → form-e9748a4e.cjs} +1 -1
  35. package/dist/{index-8bd8bb62.cjs → index-4462d894.cjs} +2 -2
  36. package/dist/{index-3ab5dba5.js → index-9ba9f277.js} +9 -8
  37. package/dist/{link-8b201d2c.cjs → link-26d3158f.cjs} +1 -1
  38. package/dist/{link-ebe8a751.js → link-eeef0a29.js} +6 -6
  39. package/dist/{page-viewer-36ef3ef4.cjs → page-viewer-2fb5485c.cjs} +1 -1
  40. package/dist/{page-viewer-a32d8269.js → page-viewer-ddaba8df.js} +4 -4
  41. package/dist/{project-general-setting-6a64c051.js → project-general-setting-5810b457.js} +4 -4
  42. package/dist/{project-general-setting-f8edd93b.cjs → project-general-setting-fc4ea1f6.cjs} +1 -1
  43. package/dist/{project-seo-setting-f31a84f5.js → project-seo-setting-23fb5e80.js} +3 -3
  44. package/dist/{project-seo-setting-157acce4.cjs → project-seo-setting-b3372d3f.cjs} +1 -1
  45. package/dist/server.cjs +1 -1
  46. package/dist/server.d.ts +133 -59
  47. package/dist/server.js +82 -48
  48. package/dist/{single-page-detail-4f2cce8a.cjs → single-page-detail-128a33a7.cjs} +1 -1
  49. package/dist/{single-page-detail-8ccf6b26.js → single-page-detail-359a0806.js} +5 -5
  50. package/dist/ui.cjs +1 -1
  51. package/dist/ui.js +2 -2
  52. package/package.json +1 -1
  53. package/dist/CurrentPage-b22f60aa.cjs +0 -1
  54. package/dist/PagesPanel-edd76634.cjs +0 -1
  55. package/dist/UploadImages-d398bc93.cjs +0 -1
@@ -1456,7 +1456,7 @@ const zd = () => {
1456
1456
  const r = Me(e);
1457
1457
  $s(r) && (s = [r, ...Xc(t, r)]), n(s);
1458
1458
  }, [e, t, n]);
1459
- }, bf = () => ne(Hi), eu = Pt(() => import("./SidePanels-c1f857a8.js")), tu = Pt(() => import("./Topbar-8a8249c5.js")), nu = Pt(() => import("./CanvasArea-714b0fdd.js")), su = Pt(() => import("./Settings-abd094d0.js")), ru = () => {
1459
+ }, bf = () => ne(Hi), eu = Pt(() => import("./SidePanels-2135b1a7.js")), tu = Pt(() => import("./Topbar-4e436076.js")), nu = Pt(() => import("./CanvasArea-3049f560.js")), su = Pt(() => import("./Settings-201df828.js")), ru = () => {
1460
1460
  const [e] = Ua(ss), t = (n) => {
1461
1461
  n.preventDefault();
1462
1462
  };
@@ -2711,7 +2711,7 @@ function el() {
2711
2711
  };
2712
2712
  return Qu(Kr(Kr({}, t), e));
2713
2713
  }
2714
- const tl = "@chaibuilder/sdk", nl = "0.1.10", sl = "module", rl = [
2714
+ const tl = "@chaibuilder/sdk", nl = "0.1.12", sl = "module", rl = [
2715
2715
  "dist"
2716
2716
  ], il = "dist/core.js", ol = !1, al = {
2717
2717
  ".": {
@@ -4781,13 +4781,13 @@ const In = () => {
4781
4781
  return $e({
4782
4782
  mutationFn: async (t) => {
4783
4783
  const n = new FormData();
4784
- return n.append("file", t), await (await fetch(`${e}/upload`, {
4784
+ return n.append("file", t), (await (await fetch(`${e}/upload`, {
4785
4785
  method: "POST",
4786
4786
  body: n
4787
- })).json();
4787
+ })).json()).url;
4788
4788
  }
4789
4789
  });
4790
- }, rd = Pt(() => import("./PagesPanel-40fa913f.js")), id = Pt(() => import("./ProjectPanel-232d9d07.js")), od = Pt(() => import("./CurrentPage-235f6546.js")), ad = () => /* @__PURE__ */ _.jsx("h2", { children: "Your Logo" }), cd = () => {
4790
+ }, rd = Pt(() => import("./PagesPanel-a0cb2a3c.js")), id = Pt(() => import("./ProjectPanel-590ad7b5.js")), od = Pt(() => import("./CurrentPage-3d3209a1.js")), ad = () => /* @__PURE__ */ _.jsx("h2", { children: "Your Logo" }), cd = () => {
4791
4791
  const e = qe();
4792
4792
  return /* @__PURE__ */ _.jsx("div", { className: "border-gray-200 rounded-md p-2 mb-2 border", children: /* @__PURE__ */ _.jsx(
4793
4793
  oa,
@@ -4839,7 +4839,8 @@ const In = () => {
4839
4839
  uploadMediaCallback: g,
4840
4840
  fetchMediaCallback: y,
4841
4841
  getUILibraryBlocks: O,
4842
- getExternalPredefinedBlock: C
4842
+ getExternalPredefinedBlock: C,
4843
+ getPages: () => s
4843
4844
  }
4844
4845
  ) });
4845
4846
  }, dd = () => {
@@ -4961,8 +4962,8 @@ export {
4961
4962
  $d as L,
4962
4963
  gc as M,
4963
4964
  _o as N,
4964
- Yl as O,
4965
- ir as P,
4965
+ ir as O,
4966
+ Yl as P,
4966
4967
  Xl as Q,
4967
4968
  In as R,
4968
4969
  Yd as S,
@@ -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-addb2bf9.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.page_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-731cda7a.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,17 +1,17 @@
1
1
  import { j as e } from "./jsx-runtime-944c88e2.js";
2
- import g, { IconPickerItem as m } from "react-icons-picker";
2
+ import m, { IconPickerItem as g } from "react-icons-picker";
3
3
  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, b as v, a as k } from "./dialog-3d4e82ed.js";
7
- import y from "./ImagesPanel-8ccab6d9.js";
7
+ import y from "./ImagesPanel-36a2f276.js";
8
8
  import w from "react-quill";
9
9
  import "react-i18next";
10
10
  import { u as N } from "./useBuilderProp-81a14920.js";
11
11
  const B = (t) => {
12
12
  try {
13
13
  const r = document.getElementById("icon-picker-field"), s = document.createElement("div");
14
- x.render(/* @__PURE__ */ e.jsx(m, { value: t }), s), r.appendChild(s), s.hidden = !0;
14
+ x.render(/* @__PURE__ */ e.jsx(g, { value: t }), s), r.appendChild(s), s.hidden = !0;
15
15
  let a = s.innerHTML;
16
16
  setTimeout(() => r.removeChild(s), 1e3);
17
17
  const n = new DOMParser().parseFromString(a, "image/svg+xml"), l = n.querySelector("svg");
@@ -35,7 +35,7 @@ const B = (t) => {
35
35
  }
36
36
  ),
37
37
  /* @__PURE__ */ e.jsx(
38
- g,
38
+ m,
39
39
  {
40
40
  value: t ? "BiSolidGrid" : null,
41
41
  onChange: i,
@@ -137,7 +137,7 @@ const B = (t) => {
137
137
  return b(() => {
138
138
  (async () => {
139
139
  const o = await n();
140
- i(o);
140
+ i(o || []);
141
141
  })();
142
142
  }, [n]), /* @__PURE__ */ e.jsxs("div", { children: [
143
143
  /* @__PURE__ */ e.jsx("span", { className: "text-xs font-medium", children: (t == null ? void 0 : t.title) ?? "Link" }),
@@ -168,7 +168,7 @@ const B = (t) => {
168
168
  onChange: (o) => s({ ...r, href: o.target.value }),
169
169
  children: [
170
170
  /* @__PURE__ */ e.jsx("option", { value: "", children: "Choose page" }),
171
- f(a, (o) => /* @__PURE__ */ e.jsx("option", { value: o.slug, children: o.page_name }, o.uuid))
171
+ f(a, (o) => /* @__PURE__ */ e.jsx("option", { value: o.slug, children: o.name }, o.uuid))
172
172
  ]
173
173
  }
174
174
  ) : /* @__PURE__ */ e.jsx(
@@ -1 +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-8bd8bb62.cjs");require("@radix-ui/react-popover");require("./utils-3c452dd0.cjs");require("clsx");require("tailwind-merge");require("i18next");require("react-i18next");require("flagged");require("react-dnd");require("lodash");require("@minoru/react-dnd-treeview");require("./useBuilderProp-5e57d0c8.cjs");require("@radix-ui/react-slot");require("class-variance-authority");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("jotai");require("react-hotkeys-hook");require("flat-to-nested");require("./html-to-json-78bfa1f3.cjs");require("./MODIFIERS-70fef873.cjs");require("himalaya");require("redux-undo");require("@react-hookz/web");require("@chaibuilder/blocks");require("lucide-react");require("sonner");const j=n.lazy(()=>Promise.resolve().then(()=>require("./single-page-detail-4f2cce8a.cjs"))),m=({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(j,{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 items-center gap-x-1.5",children:[l?e.jsxRuntimeExports.jsx(u.HomeIcon,{}):e.jsxRuntimeExports.jsx(u.FileTextIcon,{})," ",s.name]}),e.jsxRuntimeExports.jsx(m,{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;
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-4462d894.cjs");require("@radix-ui/react-popover");require("./utils-3c452dd0.cjs");require("clsx");require("tailwind-merge");require("i18next");require("react-i18next");require("flagged");require("react-dnd");require("lodash");require("@minoru/react-dnd-treeview");require("./useBuilderProp-5e57d0c8.cjs");require("@radix-ui/react-slot");require("class-variance-authority");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("jotai");require("react-hotkeys-hook");require("flat-to-nested");require("./html-to-json-78bfa1f3.cjs");require("./MODIFIERS-70fef873.cjs");require("himalaya");require("redux-undo");require("@react-hookz/web");require("@chaibuilder/blocks");require("lucide-react");require("sonner");const j=n.lazy(()=>Promise.resolve().then(()=>require("./single-page-detail-128a33a7.cjs"))),m=({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(j,{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 items-center gap-x-1.5",children:[l?e.jsxRuntimeExports.jsx(u.HomeIcon,{}):e.jsxRuntimeExports.jsx(u.FileTextIcon,{})," ",s.name]}),e.jsxRuntimeExports.jsx(m,{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,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 { R as j, P as N, Q as P } from "./index-3ab5dba5.js";
5
+ import { R as j, O as N, Q as b } from "./index-9ba9f277.js";
6
6
  import "@radix-ui/react-popover";
7
7
  import "./utils-ac68b2c8.js";
8
8
  import "clsx";
@@ -29,7 +29,7 @@ import "@react-hookz/web";
29
29
  import "@chaibuilder/blocks";
30
30
  import "lucide-react";
31
31
  import "sonner";
32
- const b = o.lazy(() => import("./single-page-detail-8ccf6b26.js")), v = ({ pageData: r }) => {
32
+ const P = o.lazy(() => import("./single-page-detail-359a0806.js")), v = ({ pageData: r }) => {
33
33
  const [s, t] = m("CLOSE");
34
34
  return /* @__PURE__ */ e.jsxs(
35
35
  g,
@@ -57,14 +57,14 @@ const b = o.lazy(() => import("./single-page-detail-8ccf6b26.js")), v = ({ pageD
57
57
  /* @__PURE__ */ e.jsx("div", { className: "bg-background-300 h-20 w-full" }),
58
58
  /* @__PURE__ */ e.jsx("div", { className: "bg-background-300 h-20 w-full" })
59
59
  ] }),
60
- children: /* @__PURE__ */ e.jsx(b, { pageData: r, open: s, setOpen: t })
60
+ children: /* @__PURE__ */ e.jsx(P, { pageData: r, open: s, setOpen: t })
61
61
  }
62
62
  ) })
63
63
  ]
64
64
  }
65
65
  );
66
66
  }, E = (r) => {
67
- const [s] = j(), { data: t } = N(), i = P(), a = (t == null ? void 0 : t.homepage) === r.uuid, n = s === r.uuid, l = () => i(r);
67
+ const [s] = j(), { data: t } = N(), i = b(), a = (t == null ? void 0 : t.homepage) === r.uuid, n = s === r.uuid, l = () => i(r);
68
68
  return t ? /* @__PURE__ */ e.jsxs(
69
69
  "button",
70
70
  {
@@ -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-9f64a082.js";
4
4
  import { SingleLineText as c, Image as d } from "@chaibuilder/blocks";
5
- import { F as u } from "./form-526188f9.js";
6
- import { P as x } from "./index-3ab5dba5.js";
5
+ import { F as u } from "./form-52b48fbc.js";
6
+ import { O as x } from "./index-9ba9f277.js";
7
7
  import "@radix-ui/react-scroll-area";
8
8
  import "./utils-ac68b2c8.js";
9
9
  import "clsx";
@@ -11,13 +11,13 @@ import "tailwind-merge";
11
11
  import "@rjsf/core";
12
12
  import "@rjsf/validator-ajv8";
13
13
  import "lodash";
14
- import "./link-ebe8a751.js";
14
+ import "./link-eeef0a29.js";
15
15
  import "react-icons-picker";
16
16
  import "react-dom";
17
17
  import "./dialog-3d4e82ed.js";
18
18
  import "@radix-ui/react-dialog";
19
19
  import "@radix-ui/react-icons";
20
- import "./ImagesPanel-8ccab6d9.js";
20
+ import "./ImagesPanel-36a2f276.js";
21
21
  import "./tabs-85caa1e8.js";
22
22
  import "@radix-ui/react-tabs";
23
23
  import "react-quill";
@@ -1 +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-088530b9.cjs"),o=require("@chaibuilder/blocks"),m=require("./form-431f0141.cjs"),d=require("./index-8bd8bb62.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-8b201d2c.cjs");require("react-icons-picker");require("react-dom");require("./dialog-170eaad9.cjs");require("@radix-ui/react-dialog");require("@radix-ui/react-icons");require("./ImagesPanel-addb2bf9.cjs");require("./tabs-860e37aa.cjs");require("@radix-ui/react-tabs");require("react-quill");require("react-i18next");require("./useBuilderProp-5e57d0c8.cjs");require("@radix-ui/react-slot");require("class-variance-authority");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("jotai");require("i18next");require("flagged");require("react-dnd");require("@minoru/react-dnd-treeview");require("react-hotkeys-hook");require("flat-to-nested");require("./html-to-json-78bfa1f3.cjs");require("./MODIFIERS-70fef873.cjs");require("himalaya");require("redux-undo");require("@react-hookz/web");require("lucide-react");require("sonner");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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./jsx-runtime-5c3ac4f7.cjs"),a=require("react"),f=require("./scroll-area-088530b9.cjs"),o=require("@chaibuilder/blocks"),m=require("./form-e9748a4e.cjs"),d=require("./index-4462d894.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-26d3158f.cjs");require("react-icons-picker");require("react-dom");require("./dialog-170eaad9.cjs");require("@radix-ui/react-dialog");require("@radix-ui/react-icons");require("./ImagesPanel-731cda7a.cjs");require("./tabs-860e37aa.cjs");require("@radix-ui/react-tabs");require("react-quill");require("react-i18next");require("./useBuilderProp-5e57d0c8.cjs");require("@radix-ui/react-slot");require("class-variance-authority");require("@radix-ui/react-tooltip");require("@radix-ui/react-toast");require("jotai");require("i18next");require("flagged");require("react-dnd");require("@minoru/react-dnd-treeview");require("react-hotkeys-hook");require("flat-to-nested");require("./html-to-json-78bfa1f3.cjs");require("./MODIFIERS-70fef873.cjs");require("himalaya");require("redux-undo");require("@react-hookz/web");require("lucide-react");require("sonner");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;
@@ -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-526188f9.js";
3
+ import { F as v } from "./form-52b48fbc.js";
4
4
  import "react";
5
5
  import "@rjsf/core";
6
6
  import "@rjsf/validator-ajv8";
7
7
  import "lodash";
8
- import "./link-ebe8a751.js";
8
+ import "./link-eeef0a29.js";
9
9
  import "react-icons-picker";
10
10
  import "react-dom";
11
11
  import "./dialog-3d4e82ed.js";
@@ -14,7 +14,7 @@ import "@radix-ui/react-icons";
14
14
  import "./utils-ac68b2c8.js";
15
15
  import "clsx";
16
16
  import "tailwind-merge";
17
- import "./ImagesPanel-8ccab6d9.js";
17
+ import "./ImagesPanel-36a2f276.js";
18
18
  import "./tabs-85caa1e8.js";
19
19
  import "@radix-ui/react-tabs";
20
20
  import "react-quill";
@@ -1 +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-431f0141.cjs");require("react");require("@rjsf/core");require("@rjsf/validator-ajv8");require("lodash");require("./link-8b201d2c.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-addb2bf9.cjs");require("./tabs-860e37aa.cjs");require("@radix-ui/react-tabs");require("react-quill");require("react-i18next");require("./useBuilderProp-5e57d0c8.cjs");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,o,u,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:((o=e.seoData)==null?void 0:o.description)||"",image:((u=e.seoData)==null?void 0:u.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
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./jsx-runtime-5c3ac4f7.cjs"),r=require("@chaibuilder/blocks"),g=require("./form-e9748a4e.cjs");require("react");require("@rjsf/core");require("@rjsf/validator-ajv8");require("lodash");require("./link-26d3158f.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-731cda7a.cjs");require("./tabs-860e37aa.cjs");require("@radix-ui/react-tabs");require("react-quill");require("react-i18next");require("./useBuilderProp-5e57d0c8.cjs");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,o,u,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:((o=e.seoData)==null?void 0:o.description)||"",image:((u=e.seoData)==null?void 0:u.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;
package/dist/server.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var d=Object.defineProperty;var u=(a,t,e)=>t in a?d(a,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[t]=e;var c=(a,t,e)=>(u(a,typeof t!="symbol"?t+"":t,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("lodash"),i="https://api.chaibuilder.com";class g{constructor(t,e){c(this,"authToken");c(this,"projectKey");if(!t)throw"Please provide valid auth token.";if(!e)throw"Please provide valid project key.";this.authToken=t,this.projectKey=e}async getPageData(t){const e=this.getHeaders(),s=this.getURL("page-data",h.isEmpty(t)?{}:{slug:t}),r={method:"GET",headers:e,next:{tags:[h.isEmpty(t)?"_homepage":t]}};return this.fetchAPI(s,r)}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}),r={method:"GET",headers:e};return this.fetchAPI(s,r)}async getPages(){const t=this.getHeaders(),e=this.getURL("pages"),o={method:"GET",headers:t};return this.fetchAPI(e,o)}async addPage(t){const e=JSON.stringify(t),s=this.getHeaders(),o=this.getURL("page"),n={method:"POST",headers:s,body:e};return this.fetchAPI(o,n)}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}),r={method:"DELETE",headers:e};return this.fetchAPI(s,r)}async updatePage(t){const e=JSON.stringify(t),s=this.getHeaders(),o=this.getURL("page"),n={method:"PUT",headers:s,body:e};return this.fetchAPI(o,n)}async getProject(){const t=this.getHeaders(),e=this.getURL("project"),o={method:"GET",headers:t};return this.fetchAPI(e,o)}async updateProject(t){const e=JSON.stringify(t),s=this.getHeaders(),o=this.getURL("project"),n={method:"PUT",headers:s,body:e};return this.fetchAPI(o,n)}async authenticate({password:t}){const e=JSON.stringify({password:t}),s=this.getHeaders(),o=this.getURL("authenticate"),n={method:"POST",headers:s,body:e};return this.fetchAPI(o,n)}async verify(t){const e=JSON.stringify({token:t}),s=this.getHeaders(),o=this.getURL("verify"),n={method:"POST",headers:s,body:e};return this.fetchAPI(o,n)}getURL(t,e){const s=new URLSearchParams(e).toString();return h.isEmpty(e)?`${i}/v1/${t}`:`${i}/v1/${t}?${s}`}getHeaders(){const t=new Headers;return t.append("x-chai-app-key",this.projectKey),t.append("x-chai-auth-token",this.authToken),t.append("Content-Type","application/json"),t}async fetchAPI(t,e){try{const s=await fetch(t,e).then(o=>o.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"}}}}exports.ChaibuilderBackend=g;
1
+ "use strict";var u=Object.defineProperty;var g=(a,t,e)=>t in a?u(a,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[t]=e;var c=(a,t,e)=>(g(a,typeof t!="symbol"?t+"":t,e),e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("lodash"),i="https://api.chaibuilder.com";class l{constructor(t,e){c(this,"authSecret");c(this,"appKey");if(!t)throw"Please provide valid auth secret.";if(!e)throw"Please provide valid project key.";this.authSecret=t,this.appKey=e}getURL(t,e){const s=new URLSearchParams(e).toString();return h.isEmpty(e)?`${i}/v1/${t}`:`${i}/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(o=>o.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"}}}async getPageData(t){const e=this.getHeaders(),s=this.getURL("page-data",h.isEmpty(t)?{}:{slug:t}),n={method:"GET",headers:e,next:{tags:[h.isEmpty(t)?"_homepage":t]}};return this.fetchAPI(s,n)}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}),n={method:"GET",headers:e};return this.fetchAPI(s,n)}async getPages(){const t=this.getHeaders(),e=this.getURL("pages"),o={method:"GET",headers:t};return this.fetchAPI(e,o)}async addPage(t){const e=JSON.stringify(t),s=this.getHeaders(),o=this.getURL("page"),r={method:"POST",headers:s,body:e};return this.fetchAPI(o,r)}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}),n={method:"DELETE",headers:e};return this.fetchAPI(s,n)}async updatePage(t){const e=JSON.stringify(t),s=this.getHeaders(),o=this.getURL("page"),r={method:"PUT",headers:s,body:e};return this.fetchAPI(o,r)}async getProject(){const t=this.getHeaders(),e=this.getURL("project"),o={method:"GET",headers:t};return this.fetchAPI(e,o)}async updateProject(t){const e=JSON.stringify(t),s=this.getHeaders(),o=this.getURL("project"),r={method:"PUT",headers:s,body:e};return this.fetchAPI(o,r)}async uploadAsset(t){const e=this.getHeaders(),s=this.getURL("asset"),o="POST",n=await t.get("file"),r=new FormData;r.append("file",n);const d={method:o,headers:e,body:r};return this.fetchAPI(s,d)}async getAssets(t,e){const s=this.getHeaders(),o=this.getURL("asset");t&&o.concat(`?limit=${t}`),e&&o.concat(`&offset=${e}`);const r={method:"GET",headers:s};return this.fetchAPI(o,r)}async authenticate({password:t}){const e=JSON.stringify({password:t}),s=this.getHeaders(),o=this.getURL("authenticate"),r={method:"POST",headers:s,body:e};return this.fetchAPI(o,r)}async verify(t){const e=JSON.stringify({token:t}),s=this.getHeaders(),o=this.getURL("verify"),r={method:"POST",headers:s,body:e};return this.fetchAPI(o,r)}}exports.ChaibuilderBackend=l;
package/dist/server.d.ts CHANGED
@@ -1,16 +1,44 @@
1
- import type { ChaiBlock } from '@chaibuilder/sdk';
2
- import type { ChaiPageData } from '@chaibuilder/sdk/render';
3
-
4
1
  declare type ChaiApiResponse<T> = Promise<{
5
2
  data: T;
6
3
  error: null;
7
4
  result: string;
8
5
  }>;
9
6
 
7
+ declare type ChaiAsset = {
8
+ id: string;
9
+ url: string;
10
+ thumbUrl: string;
11
+ };
12
+
13
+ declare type ChaiBlock = {
14
+ _id: string;
15
+ _name?: string;
16
+ _parent?: string | null | undefined;
17
+ _bindings?: Record<string, string>;
18
+ readonly _type: string;
19
+ } & Record<string, string>;
20
+
10
21
  export declare class ChaibuilderBackend implements ChaibuilderBackendInterface {
11
- private authToken;
12
- private readonly projectKey;
13
- constructor(authToken: string, projectKey: string);
22
+ private authSecret;
23
+ private readonly appKey;
24
+ constructor(authSecret: string, appKey: string);
25
+ /**
26
+ *
27
+ * @param endpoint
28
+ * @param queryParam
29
+ * @returns api endpoint with query param
30
+ */
31
+ private getURL;
32
+ /**
33
+ *
34
+ * @returns headers for api
35
+ */
36
+ private getHeaders;
37
+ /**
38
+ *
39
+ * @returns Fetch API
40
+ */
41
+ private fetchAPI;
14
42
  getPageData(slug: string): Promise<{
15
43
  data: ChaiPageData;
16
44
  error: null;
@@ -86,74 +114,120 @@ export declare class ChaibuilderBackend implements ChaibuilderBackendInterface {
86
114
  error: null;
87
115
  result: string;
88
116
  }>;
89
- authenticate({ password }: {
90
- password: string;
91
- }): Promise<{
92
- data: {
93
- token: string;
94
- };
95
- error: null;
96
- result: string;
97
- }>;
98
- verify(token: string): Promise<{
117
+ /**
118
+ *
119
+ * @returns Upload asset
120
+ * @param formData
121
+ * @param req
122
+ */
123
+ uploadAsset(formData: FormData): Promise<{
99
124
  data: {
100
- result: string;
125
+ url: string;
101
126
  };
102
127
  error: null;
103
128
  result: string;
104
129
  }>;
105
130
  /**
106
131
  *
107
- * @param endpoint
108
- * @param queryParam
109
- * @returns api endpoint with query param
132
+ * @returns Get assets
133
+ * @param limit
134
+ * @param offset
110
135
  */
111
- private getURL;
136
+ getAssets(limit?: string, offset?: string): Promise<{
137
+ data: ChaiAsset[];
138
+ error: null;
139
+ result: string;
140
+ }>;
112
141
  /**
113
142
  *
114
- * @returns headers for api
143
+ * @param { password }
144
+ * @returns { token }
115
145
  */
116
- private getHeaders;
146
+ authenticate({ password }: {
147
+ password: string;
148
+ }): Promise<{
149
+ data: {
150
+ token: string;
151
+ };
152
+ error: null;
153
+ result: string;
154
+ }>;
117
155
  /**
118
156
  *
119
- * @returns Fetch API
120
- */
121
- private fetchAPI;
122
- }
157
+ * @param token
158
+ * @returns { result: 'success' | 'error' }
159
+ */
160
+ verify(token: string): Promise<{
161
+ data: {
162
+ result: string;
163
+ };
164
+ error: null;
165
+ result: string;
166
+ }>;
167
+ }
123
168
 
124
- declare interface ChaibuilderBackendInterface {
125
- getPage(uuid: string): ChaiApiResponse<ChaiPage & {
126
- subPages: ChaiSubPage[];
127
- }>;
128
- getPages(): ChaiApiResponse<ChaiPage>;
129
- addPage(page: Pick<ChaiPage, "name" | "slug">): ChaiApiResponse<ChaiPage>;
130
- deletePage(uuid: string): ChaiApiResponse<null>;
131
- updatePage(page: ChaiPage): ChaiApiResponse<ChaiPage>;
132
- getProject(): ChaiApiResponse<ChaiProject>;
133
- updateProject(project: Partial<ChaiProject>): ChaiApiResponse<ChaiProject>;
134
- }
169
+ declare interface ChaibuilderBackendInterface {
170
+ getPage(uuid: string): ChaiApiResponse<ChaiPage & {
171
+ subPages: ChaiSubPage[];
172
+ }>;
173
+ getPages(): ChaiApiResponse<ChaiPage>;
174
+ addPage(page: Pick<ChaiPage, "name" | "slug">): ChaiApiResponse<ChaiPage>;
175
+ deletePage(uuid: string): ChaiApiResponse<null>;
176
+ updatePage(page: ChaiPage): ChaiApiResponse<ChaiPage>;
177
+ getProject(): ChaiApiResponse<ChaiProject>;
178
+ updateProject(project: Partial<ChaiProject>): ChaiApiResponse<ChaiProject>;
179
+ uploadAsset(formData: FormData): ChaiApiResponse<{
180
+ url: string;
181
+ }>;
182
+ getAssets(): ChaiApiResponse<ChaiAsset[]>;
183
+ }
135
184
 
136
- declare type ChaiPage = {
137
- uuid: string;
138
- name: string;
139
- slug: string;
140
- blocks: ChaiBlock[];
141
- seoData: object;
142
- type: "STATIC" | "DYNAMIC" | "SUBPAGE";
143
- };
185
+ declare type ChaiPage = {
186
+ uuid: string;
187
+ name: string;
188
+ slug: string;
189
+ blocks: ChaiBlock[];
190
+ seoData: object;
191
+ type: "STATIC" | "DYNAMIC" | "SUBPAGE";
192
+ project: string;
193
+ };
144
194
 
145
- declare type ChaiProject = {
146
- brandingOptions: Record<string, string | number>;
147
- favicon: string;
148
- homepage: string;
149
- name: string;
150
- description?: string;
151
- seoData: Record<string, string>;
152
- primaryLanguage?: string;
153
- password?: string;
154
- languages?: Array<string>;
155
- };
195
+ declare type ChaiPageData = {
196
+ page: {
197
+ blocks: ChaiBlock[];
198
+ seoData?: Record<string, string>;
199
+ slug?: string;
200
+ name: string;
201
+ };
202
+ subPages?: {
203
+ uuid: string;
204
+ blocks: ChaiBlock[];
205
+ }[];
206
+ project: {
207
+ name: string;
208
+ favicon: string;
209
+ brandingOptions: Record<string, string | number>;
210
+ seoData?: Record<string, string>;
211
+ primaryLanguage: string;
212
+ languages: string[];
213
+ homepage: string;
214
+ };
215
+ };
216
+
217
+ declare type ChaiProject = {
218
+ uuid: string;
219
+ brandingOptions: Record<string, string | number>;
220
+ favicon: string;
221
+ homepage: string;
222
+ name: string;
223
+ description?: string;
224
+ seoData: Record<string, string>;
225
+ primaryLanguage?: string;
226
+ password?: string;
227
+ languages?: Array<string>;
228
+ user?: string;
229
+ };
156
230
 
157
- declare type ChaiSubPage = Pick<ChaiPage, "uuid" | "name" | "blocks" | "type">;
231
+ declare type ChaiSubPage = Pick<ChaiPage, "uuid" | "name" | "blocks" | "type" | "project">;
158
232
 
159
- export { }
233
+ export { }