@chaibuilder/pages 0.15.1 → 0.15.3

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 (69) hide show
  1. package/dist/{2AITGKQY-a-BJOrVj.js → 2AITGKQY-DhC0sF1x.js} +2 -2
  2. package/dist/{2AITGKQY-GcbF_G3s.cjs → 2AITGKQY-o6FgGSqg.cjs} +1 -1
  3. package/dist/{NCMVHL6D-fz7uxKMS.cjs → NCMVHL6D-BPM6RHYa.cjs} +1 -1
  4. package/dist/{NCMVHL6D-CCFQEIik.js → NCMVHL6D-D7HU3akD.js} +2 -2
  5. package/dist/{ZDWCUMSJ-B87y4E-s.js → ZDWCUMSJ-Cr1v3giV.js} +1 -1
  6. package/dist/{ZDWCUMSJ-D40Aht5l.cjs → ZDWCUMSJ-NVCxv9uE.cjs} +1 -1
  7. package/dist/{add-new-language-page-CxNpkd0L.js → add-new-language-page-8q4Ku3eg.js} +2 -2
  8. package/dist/{add-new-language-page-Dyh26P7i.cjs → add-new-language-page-D3PSLiUv.cjs} +1 -1
  9. package/dist/{add-new-page-DGQqN1GO.js → add-new-page-BpvpSM4X.js} +1 -1
  10. package/dist/{add-new-page-jWn3_pZ4.cjs → add-new-page-YpzILOYq.cjs} +1 -1
  11. package/dist/{delete-page-WnsCggnJ.js → delete-page-CXRJjJ4o.js} +1 -1
  12. package/dist/{delete-page-Bxl1t_Ue.cjs → delete-page-w64MO7db.cjs} +1 -1
  13. package/dist/digital-asset-manager-B2m5T22s.js +1001 -0
  14. package/dist/digital-asset-manager-BGyKKd_6.cjs +1 -0
  15. package/dist/{duplicate-page-DOloolXy.js → duplicate-page-CSQs2MOp.js} +2 -2
  16. package/dist/{duplicate-page-CDtfdgyJ.cjs → duplicate-page-DB_c7V2t.cjs} +1 -1
  17. package/dist/{dynamic-page-selector-CcYIfKlO.cjs → dynamic-page-selector-CF9nb6i_.cjs} +1 -1
  18. package/dist/{dynamic-page-selector-B-8TUdTG.js → dynamic-page-selector-DTk4oull.js} +1 -1
  19. package/dist/image-editor-D9MPdtxC.js +107 -0
  20. package/dist/image-editor-Da6lrqkL.cjs +1 -0
  21. package/dist/{index-CguzNa4U.js → index-BuXZJnGo.js} +15 -15
  22. package/dist/{index-CffopOpP.cjs → index-Cds1vIhw.cjs} +2 -2
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.js +1 -1
  25. package/dist/{json-diff-viewer-CxFGgqa_.js → json-diff-viewer-oyxMD3Hc.js} +1 -1
  26. package/dist/{json-diff-viewer-DcR1gbkd.cjs → json-diff-viewer-zBoPBSd3.cjs} +1 -1
  27. package/dist/{lang-panel-Bi427DLp.js → lang-panel-B_HcsPPo.js} +2 -2
  28. package/dist/{lang-panel-XonHaLBn.cjs → lang-panel-D2YUMeJZ.cjs} +1 -1
  29. package/dist/{mark-as-template-BtI1QfuI.cjs → mark-as-template-C4wH4UKf.cjs} +1 -1
  30. package/dist/{mark-as-template-CS68JVP8.js → mark-as-template-CPEPYXg7.js} +1 -1
  31. package/dist/{no-language-page-content-C5t9cDI4.js → no-language-page-content-CVyOpT9h.js} +1 -1
  32. package/dist/{no-language-page-content-DMqw1cTK.cjs → no-language-page-content-ECt0SxFX.cjs} +1 -1
  33. package/dist/{page-creator-BkKT_Xy1.cjs → page-creator-BG2hc82u.cjs} +1 -1
  34. package/dist/{page-creator-BY2w99Ez.js → page-creator-y6kl3nw5.js} +2 -2
  35. package/dist/{page-lock-request-Z1sTGi6N.js → page-lock-request-DC62b588.js} +1 -1
  36. package/dist/{page-lock-request-CIRTswpw.cjs → page-lock-request-fGZbOFTp.cjs} +1 -1
  37. package/dist/{page-locked-by-dialog-DpBpQ0oI.cjs → page-locked-by-dialog-BIC-c0Jl.cjs} +1 -1
  38. package/dist/{page-locked-by-dialog-B2C1M_bK.js → page-locked-by-dialog-D-vXaoga.js} +1 -1
  39. package/dist/{page-manager-new-tWV46glN.cjs → page-manager-new-CUfjlMed.cjs} +1 -1
  40. package/dist/{page-manager-new-CSqFLJBd.js → page-manager-new-Cto2r7Va.js} +2 -2
  41. package/dist/{page-manager-search-and-filter-B9VZzJQd.js → page-manager-search-and-filter-sVnGlF46.js} +1 -1
  42. package/dist/{page-manager-search-and-filter-CwuukvKn.cjs → page-manager-search-and-filter-z2b4sgvb.cjs} +1 -1
  43. package/dist/{page-revisions-content-WoIu0uan.js → page-revisions-content-BaTqBnko.js} +2 -2
  44. package/dist/{page-revisions-content-BWhJz0_7.cjs → page-revisions-content-Tb3T6zvU.cjs} +1 -1
  45. package/dist/{publish-pages-content-BHDTLdGv.cjs → publish-pages-content-BGkEZ3GK.cjs} +1 -1
  46. package/dist/{publish-pages-content-CkWvQGbm.js → publish-pages-content-C9CgEWo0.js} +2 -2
  47. package/dist/{save-to-lib-AkbnWUxR.js → save-to-lib-DGtyTG6H.js} +1 -1
  48. package/dist/{save-to-lib-C0ZfwiAE.cjs → save-to-lib-DNK4GPNw.cjs} +1 -1
  49. package/dist/{seo-panel-CiKkn5Jp.cjs → seo-panel-CrK7z4bR.cjs} +1 -1
  50. package/dist/{seo-panel-Gu3HZveQ.js → seo-panel-DESVAQM5.js} +1 -1
  51. package/dist/shared-json-ld-BMfQzOWc.js +650 -0
  52. package/dist/shared-json-ld-_ozYsSHn.cjs +1 -0
  53. package/dist/{slug-input-B4w0Ihxn.cjs → slug-input-DMYhARDW.cjs} +1 -1
  54. package/dist/{slug-input-BXNj3cZf.js → slug-input-DfAsMPg8.js} +1 -1
  55. package/dist/{theme-panel-footer-DnZs9SzB.cjs → theme-panel-footer-Bj2yHtxO.cjs} +1 -1
  56. package/dist/{theme-panel-footer-68bQaQeh.js → theme-panel-footer-RrxiDGoD.js} +1 -1
  57. package/dist/{unmark-as-template-MpXMyb0Q.js → unmark-as-template-BjetSrYF.js} +1 -1
  58. package/dist/{unmark-as-template-DFxmzyx4.cjs → unmark-as-template-C8hTjRVk.cjs} +1 -1
  59. package/dist/{unpublish-page-Bzouoco9.js → unpublish-page-BTPEVAkv.js} +1 -1
  60. package/dist/{unpublish-page-CCPyMoaC.cjs → unpublish-page-gtGfNOAq.cjs} +1 -1
  61. package/dist/{web-preview-B3-o8BoT.cjs → web-preview-BcULgiw_.cjs} +1 -1
  62. package/dist/{web-preview-D9PcexXy.js → web-preview-DNgPjdgZ.js} +1 -1
  63. package/package.json +1 -1
  64. package/dist/digital-asset-manager-ClyooOJY.js +0 -976
  65. package/dist/digital-asset-manager-DrXotZ_n.cjs +0 -1
  66. package/dist/image-editor-BWLJT1mr.cjs +0 -1
  67. package/dist/image-editor-CzFST20j.js +0 -104
  68. package/dist/shared-json-ld-BPaeG1gf.cjs +0 -1
  69. package/dist/shared-json-ld-CsyZjZdT.js +0 -557
@@ -1,6 +1,6 @@
1
1
  import { jsx as t, jsxs as h, Fragment as rn } from "react/jsx-runtime";
2
- import { p as hn, r as fn, S as An } from "./slug-input-BXNj3cZf.js";
3
- import { b as Nn, c as mn, d as En, e as Sn, f as gn, g as K, h as xn, i as Gn, L, C as f } from "./index-CguzNa4U.js";
2
+ import { p as hn, r as fn, S as An } from "./slug-input-DfAsMPg8.js";
3
+ import { b as Nn, c as mn, d as En, e as Sn, f as gn, g as K, h as xn, i as Gn, L, C as f } from "./index-BuXZJnGo.js";
4
4
  import { useLanguages as vn, useSidebarActivePanel as Ln } from "@chaibuilder/sdk";
5
5
  import { Dialog as Dn, DialogContent as _n, DialogHeader as Un, DialogTitle as pn, DialogDescription as Fn, Label as k, Input as Tn, Alert as X, DialogFooter as wn, Button as Cn } from "@chaibuilder/sdk/ui";
6
6
  import { filter as $n, find as In, startsWith as Rn } from "lodash-es";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),M=require("./slug-input-B4w0Ihxn.cjs"),t=require("./index-CffopOpP.cjs"),H=require("@chaibuilder/sdk"),E=require("@chaibuilder/sdk/ui"),W=require("lodash-es"),us=require("lucide-react"),T=require("react"),J=({edit:a,lang:h,languages:i,name:u,setLang:o,setName:r,primaryPageObject:l})=>e.jsxs("div",{className:"space-y-1",children:[e.jsx(E.Label,{htmlFor:"lang",children:t.CONTENT.LANGUAGE}),e.jsxs("select",{value:a?"":h,disabled:a||!i.length,onChange:s=>{const c=s.target.value;o(c),!a&&(W.startsWith(u,l==null?void 0:l.name)||u.length===0)&&r(`${l==null?void 0:l.name} - ${t.LANGUAGES[c]}`)},className:"col-span-3 flex h-9 w-full rounded-md border border-border bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",children:[e.jsx("option",{value:"",disabled:!0,children:a?t.LANGUAGES[h]||h:i.length?t.CONTENT.CHOOSE_LANGUAGE:t.CONTENT.ALL_AVAILABLE_LANGUAGE_PAGE}),i.map(s=>e.jsx("option",{value:s,children:t.LANGUAGES[s]||s},s))]})]}),K=({lang:a,name:h,setName:i,parentHasSelectedLanguagePage:u})=>e.jsxs("div",{className:"space-y-1",children:[e.jsx(E.Label,{htmlFor:"name",children:t.CONTENT.PAGE_NAME}),e.jsx(E.Input,{id:"name",value:a?h:"",onChange:o=>i(o.target.value),required:!0,placeholder:a?t.CONTENT.ENTER_PAGE_NAME:t.CONTENT.CHOOSE_LANGUAGE_TO_ADD_SLUG,disabled:!u||!a})]}),ds=({dynamic:a,isNonSlugPageType:h,isRootPage:i,lang:u,useLanguagePrefix:o,setUseLanguagePrefix:r,isHomePage:l,parentSlug:s,parentHasSelectedLanguagePage:c,slug:N,setSlug:d,setIsSlugValid:A,getSlug:x})=>h?null:e.jsxs("div",{className:"space-y-1",children:[i&&u&&e.jsxs("div",{className:"flex items-center space-x-2 pb-1",children:[e.jsx("input",{type:"checkbox",id:"useLanguagePrefix",checked:o,onChange:S=>r(S.target.checked),className:"rounded border-gray-300"}),e.jsxs(E.Label,{htmlFor:"useLanguagePrefix",className:"text-sm font-normal leading-tight",children:["Add language code (",e.jsxs("span",{className:"font-mono text-gray-900",children:["/",u]}),") as slug prefix"]})]}),e.jsx(E.Label,{htmlFor:"slug",children:t.CONTENT.SLUG}),a?e.jsx(E.Alert,{variant:"default",className:"p-2 text-xs font-medium italic text-muted-foreground",children:"This page will use dynamic slug as defined in primary page"}):e.jsx(M.SlugInput,{disabled:!u||!c,value:N,onChange:d,placeholder:u?l&&o?"Leave empty for home page":t.CONTENT.ENTER_PAGE_SLUG:t.CONTENT.CHOOSE_LANGUAGE_TO_ADD_SLUG,parentSlug:s,onValidationChange:A,fullSlug:x()})]}),Q=({parentHasSelectedLanguagePage:a,name:h,lang:i,slug:u,edit:o,id:r,primaryPageObject:l,pages:s,isNonSlugPageType:c,isHomePage:N,useLanguagePrefix:d,isSlugValid:A,isPending:x})=>{const S=x||!h||!i||s.some(f=>(o?f.id!==r:!0)&&f.parent===(l==null?void 0:l.id)&&f.lang===i)||!c&&!(N&&d)&&(!A||!u);return e.jsx(E.DialogFooter,{children:a?e.jsxs(e.Fragment,{children:[e.jsx(E.Button,{type:"submit",disabled:S&&!l.dynamic,children:x?e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"loader mr-2"}),o?t.CONTENT.UPDATING:t.CONTENT.ADDING]}):o?t.CONTENT.UPDATE:t.CONTENT.ADD_NEW_LANGUAGE}),s.some(f=>(o?f.id!==r:!0)&&f.parent===(l==null?void 0:l.id)&&f.lang===i)&&e.jsx("p",{className:"mt-2 text-xs text-red-500",children:"A page for this language already exists."})]}):i&&e.jsx(E.Alert,{variant:"destructive",children:e.jsxs("p",{className:"mx-auto w-5/6 text-center",children:["You need to create the ",e.jsx("span",{className:"font-medium",children:t.LANGUAGES[i]})," page in the parent to add here."]})})})},cs=({onSubmit:a,edit:h,lang:i,languages:u,name:o,setLang:r,setName:l,primaryPageObject:s,parentHasSelectedLanguagePage:c,id:N,pages:d,isNonSlugPageType:A,isHomePage:x,useLanguagePrefix:S,slug:f,isSlugValid:U,isPending:G})=>e.jsxs("form",{onSubmit:a,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(J,{edit:h,lang:i,languages:u,name:o,setLang:r,setName:l,primaryPageObject:s}),e.jsx(K,{lang:i,name:o,setName:l,parentHasSelectedLanguagePage:c})]}),e.jsx(Q,{parentHasSelectedLanguagePage:c,name:o,lang:i,slug:f,edit:h,id:N,primaryPageObject:s,pages:d,isNonSlugPageType:A,isHomePage:x,useLanguagePrefix:S,isSlugValid:U,isPending:G})]}),as=({loading:a,onSubmit:h,edit:i,lang:u,languages:o,name:r,setLang:l,setName:s,primaryPageObject:c,parentHasSelectedLanguagePage:N,isNonSlugPageType:d,isRootPage:A,useLanguagePrefix:x,setUseLanguagePrefix:S,isHomePage:f,parentSlug:U,slug:G,setSlug:_,isSlugValid:D,setIsSlugValid:$,getSlug:I,isPending:F,id:w,pages:v})=>a?e.jsx("div",{className:"flex h-80 items-center justify-center",children:e.jsx(us.Loader,{className:"animate-spin"})}):d?e.jsx(cs,{onSubmit:h,edit:i,lang:u,languages:o,name:r,setLang:l,setName:s,primaryPageObject:c,parentHasSelectedLanguagePage:N,id:w,pages:v,isNonSlugPageType:d,isHomePage:f,useLanguagePrefix:x,slug:G,isSlugValid:D,isPending:F}):e.jsxs("form",{onSubmit:h,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(J,{edit:i,lang:u,languages:o,name:r,setLang:l,setName:s,primaryPageObject:c}),e.jsx(K,{lang:u,name:r,setName:s,parentHasSelectedLanguagePage:N}),e.jsx(ds,{dynamic:c==null?void 0:c.dynamic,isNonSlugPageType:d,isRootPage:A,lang:u,useLanguagePrefix:x,setUseLanguagePrefix:S,isHomePage:f,parentSlug:U,parentHasSelectedLanguagePage:N,slug:G,setSlug:_,isSlugValid:D,setIsSlugValid:$,getSlug:I})]}),e.jsx(Q,{parentHasSelectedLanguagePage:N,name:r,lang:u,slug:G,edit:i,id:w,primaryPageObject:c,pages:v,isNonSlugPageType:d,isHomePage:f,useLanguagePrefix:x,isSlugValid:D,isPending:F})]}),rs=({id:a,isOpen:h,onClose:i,primaryPage:u,edit:o=!1,preselectedLang:r})=>{const{data:l=[]}=t.useWebsitePages(),s=T.useMemo(()=>l.find(n=>n.id===u),[l,u]),[c,N]=T.useState(""),[d,A]=T.useState(""),[x,S]=T.useState(""),[f,U]=T.useState(!0),[G,_]=T.useState(!0),{mutate:D,isPending:$}=t.useCreatePage(),{mutate:I,isPending:F}=t.useUpdatePage(),w=$||F,{data:v,isFetching:X}=t.useWebsiteSetting(),B=t.useFallbackLang(),{data:m,isFetching:Z}=t.useLanguagePages(u),{data:L=[],isFetching:b}=t.useLanguagePages(s==null?void 0:s.parent),{data:V=[],isFetching:y}=t.usePageTypes(),{setSelectedLang:O}=H.useLanguages(),[,P]=t.useSearchParams(),[,ss]=H.useSidebarActivePanel(),es=X||Z||b||y,C=T.useMemo(()=>W.filter(v==null?void 0:v.languages,n=>!W.find(m,{lang:n})),[v,m]),q=T.useMemo(()=>V.find(n=>n.key===(s==null?void 0:s.pageType)),[V,s==null?void 0:s.pageType]),Y=!(q!=null&&q.hasSlug),k=(s==null?void 0:s.slug)==="/";T.useEffect(()=>{if(!o&&s&&r&&(A(r),N(`${s.name} - ${t.LANGUAGES[r]}`)),!o||!s)return;const n=m==null?void 0:m.find(is=>is.id===a);if(!n)return;N(n.name),A(n.lang);const g=n.slug||"",{initSlug:R,prefix:ls}=M.parseSlugForEdit(g,s);S(R),_(ls)},[o,a,m,s,r]),T.useEffect(()=>{if(r)A(r);else if((C==null?void 0:C.length)===1&&!o){const n=C[0];if(!n||!t.LANGUAGES[n])return;A(n),(!c||c===(s==null?void 0:s.name))&&N(`${s==null?void 0:s.name} - ${t.LANGUAGES[n]}`)}},[r,C,o,c,s]);const{parentSlug:j,isRootPage:p}=T.useMemo(()=>{if(k||!d)return{parentSlug:void 0,isRootPage:!(s!=null&&s.parent)};if(!(s!=null&&s.parent))return{parentSlug:G?`/${d}`:void 0,isRootPage:!0};const n=L==null?void 0:L.find(g=>g.lang===d);return{parentSlug:n==null?void 0:n.slug,isRootPage:!1}},[s==null?void 0:s.parent,L,G,d,k]),ns=T.useMemo(()=>p?!0:!!(L!=null&&L.some(n=>(n==null?void 0:n.lang)===d)),[d,L,p]),z=()=>{let n="";return p?n=`/${G?[d,x].filter(Boolean).join("/"):x}`:n=`${M.removeSlugExtension(j)}/${x}`,n.replace(/\/{2,}/g,"/").replace(/\/$/,"")},ts=n=>{const g=new URLSearchParams(window.location.search);B&&n===B?g.delete("lang"):g.set("lang",n),P(g),window.dispatchEvent(new PopStateEvent("popstate"))},os=n=>{n.preventDefault();const g={name:c,lang:d,primaryPage:s==null?void 0:s.id,slug:Y?"":z(),pageType:s==null?void 0:s.pageType,...o&&{id:a}},R=()=>{!o&&d&&(O(d),ts(d)),ss("outline"),i()};o?I(g,{onSuccess:R}):D(g,{onSuccess:R})};return e.jsx(E.Dialog,{open:h,onOpenChange:i,children:h&&e.jsxs(E.DialogContent,{className:"text-slate-600 sm:max-w-[425px]",children:[e.jsxs(E.DialogHeader,{children:[e.jsx(E.DialogTitle,{children:o?t.CONTENT.EDIT_LANGUAGE:t.CONTENT.ADD_NEW_LANGUAGE}),e.jsx(E.DialogDescription,{className:"font-light",children:t.CONTENT.ENTER_LANGUAGE_DETAILS})]}),e.jsx(as,{id:a,pages:l,loading:es,onSubmit:os,edit:o,lang:d,languages:C,name:c,setLang:A,setName:N,primaryPageObject:s,parentHasSelectedLanguagePage:ns,isNonSlugPageType:Y,isRootPage:p,useLanguagePrefix:G,setUseLanguagePrefix:_,isHomePage:k,parentSlug:j,slug:x,setSlug:S,isSlugValid:f,setIsSlugValid:U,getSlug:z,isPending:w})]})})};exports.default=rs;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),M=require("./slug-input-DMYhARDW.cjs"),t=require("./index-Cds1vIhw.cjs"),H=require("@chaibuilder/sdk"),E=require("@chaibuilder/sdk/ui"),W=require("lodash-es"),us=require("lucide-react"),T=require("react"),J=({edit:a,lang:h,languages:i,name:u,setLang:o,setName:r,primaryPageObject:l})=>e.jsxs("div",{className:"space-y-1",children:[e.jsx(E.Label,{htmlFor:"lang",children:t.CONTENT.LANGUAGE}),e.jsxs("select",{value:a?"":h,disabled:a||!i.length,onChange:s=>{const c=s.target.value;o(c),!a&&(W.startsWith(u,l==null?void 0:l.name)||u.length===0)&&r(`${l==null?void 0:l.name} - ${t.LANGUAGES[c]}`)},className:"col-span-3 flex h-9 w-full rounded-md border border-border bg-background px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",children:[e.jsx("option",{value:"",disabled:!0,children:a?t.LANGUAGES[h]||h:i.length?t.CONTENT.CHOOSE_LANGUAGE:t.CONTENT.ALL_AVAILABLE_LANGUAGE_PAGE}),i.map(s=>e.jsx("option",{value:s,children:t.LANGUAGES[s]||s},s))]})]}),K=({lang:a,name:h,setName:i,parentHasSelectedLanguagePage:u})=>e.jsxs("div",{className:"space-y-1",children:[e.jsx(E.Label,{htmlFor:"name",children:t.CONTENT.PAGE_NAME}),e.jsx(E.Input,{id:"name",value:a?h:"",onChange:o=>i(o.target.value),required:!0,placeholder:a?t.CONTENT.ENTER_PAGE_NAME:t.CONTENT.CHOOSE_LANGUAGE_TO_ADD_SLUG,disabled:!u||!a})]}),ds=({dynamic:a,isNonSlugPageType:h,isRootPage:i,lang:u,useLanguagePrefix:o,setUseLanguagePrefix:r,isHomePage:l,parentSlug:s,parentHasSelectedLanguagePage:c,slug:N,setSlug:d,setIsSlugValid:A,getSlug:x})=>h?null:e.jsxs("div",{className:"space-y-1",children:[i&&u&&e.jsxs("div",{className:"flex items-center space-x-2 pb-1",children:[e.jsx("input",{type:"checkbox",id:"useLanguagePrefix",checked:o,onChange:S=>r(S.target.checked),className:"rounded border-gray-300"}),e.jsxs(E.Label,{htmlFor:"useLanguagePrefix",className:"text-sm font-normal leading-tight",children:["Add language code (",e.jsxs("span",{className:"font-mono text-gray-900",children:["/",u]}),") as slug prefix"]})]}),e.jsx(E.Label,{htmlFor:"slug",children:t.CONTENT.SLUG}),a?e.jsx(E.Alert,{variant:"default",className:"p-2 text-xs font-medium italic text-muted-foreground",children:"This page will use dynamic slug as defined in primary page"}):e.jsx(M.SlugInput,{disabled:!u||!c,value:N,onChange:d,placeholder:u?l&&o?"Leave empty for home page":t.CONTENT.ENTER_PAGE_SLUG:t.CONTENT.CHOOSE_LANGUAGE_TO_ADD_SLUG,parentSlug:s,onValidationChange:A,fullSlug:x()})]}),Q=({parentHasSelectedLanguagePage:a,name:h,lang:i,slug:u,edit:o,id:r,primaryPageObject:l,pages:s,isNonSlugPageType:c,isHomePage:N,useLanguagePrefix:d,isSlugValid:A,isPending:x})=>{const S=x||!h||!i||s.some(f=>(o?f.id!==r:!0)&&f.parent===(l==null?void 0:l.id)&&f.lang===i)||!c&&!(N&&d)&&(!A||!u);return e.jsx(E.DialogFooter,{children:a?e.jsxs(e.Fragment,{children:[e.jsx(E.Button,{type:"submit",disabled:S&&!l.dynamic,children:x?e.jsxs("span",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"loader mr-2"}),o?t.CONTENT.UPDATING:t.CONTENT.ADDING]}):o?t.CONTENT.UPDATE:t.CONTENT.ADD_NEW_LANGUAGE}),s.some(f=>(o?f.id!==r:!0)&&f.parent===(l==null?void 0:l.id)&&f.lang===i)&&e.jsx("p",{className:"mt-2 text-xs text-red-500",children:"A page for this language already exists."})]}):i&&e.jsx(E.Alert,{variant:"destructive",children:e.jsxs("p",{className:"mx-auto w-5/6 text-center",children:["You need to create the ",e.jsx("span",{className:"font-medium",children:t.LANGUAGES[i]})," page in the parent to add here."]})})})},cs=({onSubmit:a,edit:h,lang:i,languages:u,name:o,setLang:r,setName:l,primaryPageObject:s,parentHasSelectedLanguagePage:c,id:N,pages:d,isNonSlugPageType:A,isHomePage:x,useLanguagePrefix:S,slug:f,isSlugValid:U,isPending:G})=>e.jsxs("form",{onSubmit:a,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(J,{edit:h,lang:i,languages:u,name:o,setLang:r,setName:l,primaryPageObject:s}),e.jsx(K,{lang:i,name:o,setName:l,parentHasSelectedLanguagePage:c})]}),e.jsx(Q,{parentHasSelectedLanguagePage:c,name:o,lang:i,slug:f,edit:h,id:N,primaryPageObject:s,pages:d,isNonSlugPageType:A,isHomePage:x,useLanguagePrefix:S,isSlugValid:U,isPending:G})]}),as=({loading:a,onSubmit:h,edit:i,lang:u,languages:o,name:r,setLang:l,setName:s,primaryPageObject:c,parentHasSelectedLanguagePage:N,isNonSlugPageType:d,isRootPage:A,useLanguagePrefix:x,setUseLanguagePrefix:S,isHomePage:f,parentSlug:U,slug:G,setSlug:_,isSlugValid:D,setIsSlugValid:$,getSlug:I,isPending:F,id:w,pages:v})=>a?e.jsx("div",{className:"flex h-80 items-center justify-center",children:e.jsx(us.Loader,{className:"animate-spin"})}):d?e.jsx(cs,{onSubmit:h,edit:i,lang:u,languages:o,name:r,setLang:l,setName:s,primaryPageObject:c,parentHasSelectedLanguagePage:N,id:w,pages:v,isNonSlugPageType:d,isHomePage:f,useLanguagePrefix:x,slug:G,isSlugValid:D,isPending:F}):e.jsxs("form",{onSubmit:h,children:[e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsx(J,{edit:i,lang:u,languages:o,name:r,setLang:l,setName:s,primaryPageObject:c}),e.jsx(K,{lang:u,name:r,setName:s,parentHasSelectedLanguagePage:N}),e.jsx(ds,{dynamic:c==null?void 0:c.dynamic,isNonSlugPageType:d,isRootPage:A,lang:u,useLanguagePrefix:x,setUseLanguagePrefix:S,isHomePage:f,parentSlug:U,parentHasSelectedLanguagePage:N,slug:G,setSlug:_,isSlugValid:D,setIsSlugValid:$,getSlug:I})]}),e.jsx(Q,{parentHasSelectedLanguagePage:N,name:r,lang:u,slug:G,edit:i,id:w,primaryPageObject:c,pages:v,isNonSlugPageType:d,isHomePage:f,useLanguagePrefix:x,isSlugValid:D,isPending:F})]}),rs=({id:a,isOpen:h,onClose:i,primaryPage:u,edit:o=!1,preselectedLang:r})=>{const{data:l=[]}=t.useWebsitePages(),s=T.useMemo(()=>l.find(n=>n.id===u),[l,u]),[c,N]=T.useState(""),[d,A]=T.useState(""),[x,S]=T.useState(""),[f,U]=T.useState(!0),[G,_]=T.useState(!0),{mutate:D,isPending:$}=t.useCreatePage(),{mutate:I,isPending:F}=t.useUpdatePage(),w=$||F,{data:v,isFetching:X}=t.useWebsiteSetting(),B=t.useFallbackLang(),{data:m,isFetching:Z}=t.useLanguagePages(u),{data:L=[],isFetching:b}=t.useLanguagePages(s==null?void 0:s.parent),{data:V=[],isFetching:y}=t.usePageTypes(),{setSelectedLang:O}=H.useLanguages(),[,P]=t.useSearchParams(),[,ss]=H.useSidebarActivePanel(),es=X||Z||b||y,C=T.useMemo(()=>W.filter(v==null?void 0:v.languages,n=>!W.find(m,{lang:n})),[v,m]),q=T.useMemo(()=>V.find(n=>n.key===(s==null?void 0:s.pageType)),[V,s==null?void 0:s.pageType]),Y=!(q!=null&&q.hasSlug),k=(s==null?void 0:s.slug)==="/";T.useEffect(()=>{if(!o&&s&&r&&(A(r),N(`${s.name} - ${t.LANGUAGES[r]}`)),!o||!s)return;const n=m==null?void 0:m.find(is=>is.id===a);if(!n)return;N(n.name),A(n.lang);const g=n.slug||"",{initSlug:R,prefix:ls}=M.parseSlugForEdit(g,s);S(R),_(ls)},[o,a,m,s,r]),T.useEffect(()=>{if(r)A(r);else if((C==null?void 0:C.length)===1&&!o){const n=C[0];if(!n||!t.LANGUAGES[n])return;A(n),(!c||c===(s==null?void 0:s.name))&&N(`${s==null?void 0:s.name} - ${t.LANGUAGES[n]}`)}},[r,C,o,c,s]);const{parentSlug:j,isRootPage:p}=T.useMemo(()=>{if(k||!d)return{parentSlug:void 0,isRootPage:!(s!=null&&s.parent)};if(!(s!=null&&s.parent))return{parentSlug:G?`/${d}`:void 0,isRootPage:!0};const n=L==null?void 0:L.find(g=>g.lang===d);return{parentSlug:n==null?void 0:n.slug,isRootPage:!1}},[s==null?void 0:s.parent,L,G,d,k]),ns=T.useMemo(()=>p?!0:!!(L!=null&&L.some(n=>(n==null?void 0:n.lang)===d)),[d,L,p]),z=()=>{let n="";return p?n=`/${G?[d,x].filter(Boolean).join("/"):x}`:n=`${M.removeSlugExtension(j)}/${x}`,n.replace(/\/{2,}/g,"/").replace(/\/$/,"")},ts=n=>{const g=new URLSearchParams(window.location.search);B&&n===B?g.delete("lang"):g.set("lang",n),P(g),window.dispatchEvent(new PopStateEvent("popstate"))},os=n=>{n.preventDefault();const g={name:c,lang:d,primaryPage:s==null?void 0:s.id,slug:Y?"":z(),pageType:s==null?void 0:s.pageType,...o&&{id:a}},R=()=>{!o&&d&&(O(d),ts(d)),ss("outline"),i()};o?I(g,{onSuccess:R}):D(g,{onSuccess:R})};return e.jsx(E.Dialog,{open:h,onOpenChange:i,children:h&&e.jsxs(E.DialogContent,{className:"text-slate-600 sm:max-w-[425px]",children:[e.jsxs(E.DialogHeader,{children:[e.jsx(E.DialogTitle,{children:o?t.CONTENT.EDIT_LANGUAGE:t.CONTENT.ADD_NEW_LANGUAGE}),e.jsx(E.DialogDescription,{className:"font-light",children:t.CONTENT.ENTER_LANGUAGE_DETAILS})]}),e.jsx(as,{id:a,pages:l,loading:es,onSubmit:os,edit:o,lang:d,languages:C,name:c,setLang:A,setName:N,primaryPageObject:s,parentHasSelectedLanguagePage:ns,isNonSlugPageType:Y,isRootPage:p,useLanguagePrefix:G,setUseLanguagePrefix:_,isHomePage:k,parentSlug:j,slug:x,setSlug:S,isSlugValid:f,setIsSlugValid:U,getSlug:z,isPending:w})]})})};exports.default=rs;
@@ -1,7 +1,7 @@
1
1
  import { jsx as o, jsxs as n } from "react/jsx-runtime";
2
2
  import { Dialog as c, DialogContent as a, DialogHeader as t, DialogTitle as p, DialogDescription as m } from "@chaibuilder/sdk/ui";
3
3
  import { lazy as h, Suspense as D } from "react";
4
- const f = h(() => import("./page-creator-BY2w99Ez.js")), N = ({
4
+ const f = h(() => import("./page-creator-y6kl3nw5.js")), N = ({
5
5
  addEditPage: e,
6
6
  setAddEditPage: r,
7
7
  closePanel: s
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("@chaibuilder/sdk/ui"),l=require("react"),t=l.lazy(()=>Promise.resolve().then(()=>require("./page-creator-BkKT_Xy1.cjs"))),a=({addEditPage:s,setAddEditPage:o,closePanel:c})=>{const r=!!(s!=null&&s.id),i=!!s;return e.jsx(n.Dialog,{open:i,onOpenChange:()=>o(void 0),children:i&&e.jsxs(n.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxs(n.DialogHeader,{children:[e.jsxs(n.DialogTitle,{children:[r?"Edit":"Add New"," "]}),e.jsx(n.DialogDescription,{children:r?"Update your page name":"Enter details to create a new page"})]}),e.jsx(l.Suspense,{fallback:e.jsx("div",{className:"min-h-40"}),children:e.jsx(t,{closePanel:c,addEditPage:s,close:()=>o(void 0)})})]})})};exports.default=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("@chaibuilder/sdk/ui"),l=require("react"),t=l.lazy(()=>Promise.resolve().then(()=>require("./page-creator-BG2hc82u.cjs"))),a=({addEditPage:s,setAddEditPage:o,closePanel:c})=>{const r=!!(s!=null&&s.id),i=!!s;return e.jsx(n.Dialog,{open:i,onOpenChange:()=>o(void 0),children:i&&e.jsxs(n.DialogContent,{className:"sm:max-w-[425px]",children:[e.jsxs(n.DialogHeader,{children:[e.jsxs(n.DialogTitle,{children:[r?"Edit":"Add New"," "]}),e.jsx(n.DialogDescription,{children:r?"Update your page name":"Enter details to create a new page"})]}),e.jsx(l.Suspense,{fallback:e.jsx("div",{className:"min-h-40"}),children:e.jsx(t,{closePanel:c,addEditPage:s,close:()=>o(void 0)})})]})})};exports.default=a;
@@ -1,5 +1,5 @@
1
1
  import { jsx as n, jsxs as i } from "react/jsx-runtime";
2
- import { i as D, m as f, h as w, L as y } from "./index-CguzNa4U.js";
2
+ import { i as D, m as f, h as w, L as y } from "./index-BuXZJnGo.js";
3
3
  import { useLanguages as S, useSidebarActivePanel as v } from "@chaibuilder/sdk";
4
4
  import { Dialog as L, DialogContent as x, DialogHeader as A, DialogTitle as k, DialogDescription as C, DialogFooter as N, Button as o } from "@chaibuilder/sdk/ui";
5
5
  import { get as g } from "lodash-es";
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),i=require("./index-CffopOpP.cjs"),c=require("@chaibuilder/sdk"),t=require("@chaibuilder/sdk/ui"),D=require("lodash-es");function y({page:e,onClose:r}){const[,o]=i.useSearchParams(),{mutate:d,isPending:l}=i.useDeletePage(),{data:a}=i.usePageTypes(),{setSelectedLang:u,fallbackLang:h}=c.useLanguages(),[,m]=c.useSidebarActivePanel(),x=()=>{l||d(e,{onSuccess:()=>{e!=null&&e.primaryPage?(window.history.replaceState({},"",`/?page=${e.primaryPage}`),o(new URLSearchParams({page:e.primaryPage}))):(window.history.replaceState({},"","/"),o(new URLSearchParams)),window.dispatchEvent(new PopStateEvent("popstate")),u(h),m("outline"),r()}})},s=a==null?void 0:a.find(P=>P.key===(e==null?void 0:e.pageType));return n.jsx(t.Dialog,{open:!!e,onOpenChange:r,children:n.jsxs(t.DialogContent,{children:[n.jsxs(t.DialogHeader,{children:[n.jsx(t.DialogTitle,{children:"Confirm Deletion"}),n.jsxs(t.DialogDescription,{className:"py-4 text-slate-500",children:[n.jsxs("div",{children:["Are you sure you want to remove ",n.jsx("b",{children:(e==null?void 0:e.name)??(e==null?void 0:e.slug)})," ",s!=null&&s.hasSlug?(s==null?void 0:s.name)+"?":`page? ${e!=null&&e.primaryPage?"":"This will also delete all associated language pages."}`]}),e.lang&&n.jsxs("div",{className:"py-2 text-sm",children:["Language: ",n.jsx("span",{className:"font-medium text-gray-500",children:D.get(i.LANGUAGES,e.lang,e.lang)})]})]})]}),n.jsxs(t.DialogFooter,{children:[n.jsx(t.Button,{variant:"outline",onClick:r,children:"Cancel"}),n.jsx(t.Button,{variant:"destructive",disabled:l,onClick:x,children:l?"Deleting...":"Delete"})]})]})})}exports.default=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),i=require("./index-Cds1vIhw.cjs"),c=require("@chaibuilder/sdk"),t=require("@chaibuilder/sdk/ui"),D=require("lodash-es");function y({page:e,onClose:r}){const[,o]=i.useSearchParams(),{mutate:d,isPending:l}=i.useDeletePage(),{data:a}=i.usePageTypes(),{setSelectedLang:u,fallbackLang:h}=c.useLanguages(),[,m]=c.useSidebarActivePanel(),x=()=>{l||d(e,{onSuccess:()=>{e!=null&&e.primaryPage?(window.history.replaceState({},"",`/?page=${e.primaryPage}`),o(new URLSearchParams({page:e.primaryPage}))):(window.history.replaceState({},"","/"),o(new URLSearchParams)),window.dispatchEvent(new PopStateEvent("popstate")),u(h),m("outline"),r()}})},s=a==null?void 0:a.find(P=>P.key===(e==null?void 0:e.pageType));return n.jsx(t.Dialog,{open:!!e,onOpenChange:r,children:n.jsxs(t.DialogContent,{children:[n.jsxs(t.DialogHeader,{children:[n.jsx(t.DialogTitle,{children:"Confirm Deletion"}),n.jsxs(t.DialogDescription,{className:"py-4 text-slate-500",children:[n.jsxs("div",{children:["Are you sure you want to remove ",n.jsx("b",{children:(e==null?void 0:e.name)??(e==null?void 0:e.slug)})," ",s!=null&&s.hasSlug?(s==null?void 0:s.name)+"?":`page? ${e!=null&&e.primaryPage?"":"This will also delete all associated language pages."}`]}),e.lang&&n.jsxs("div",{className:"py-2 text-sm",children:["Language: ",n.jsx("span",{className:"font-medium text-gray-500",children:D.get(i.LANGUAGES,e.lang,e.lang)})]})]})]}),n.jsxs(t.DialogFooter,{children:[n.jsx(t.Button,{variant:"outline",onClick:r,children:"Cancel"}),n.jsx(t.Button,{variant:"destructive",disabled:l,onClick:x,children:l?"Deleting...":"Delete"})]})]})})}exports.default=y;