@chaibuilder/pages 0.16.24 → 0.16.26

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 (90) hide show
  1. package/dist/{2AITGKQY-UndKMj-X.cjs → 2AITGKQY-Be359164.cjs} +1 -1
  2. package/dist/{2AITGKQY-Ir_ZXu1s.js → 2AITGKQY-CoZaZMrf.js} +2 -2
  3. package/dist/{NCMVHL6D-B3xcD0Vz.js → NCMVHL6D-C2p_bwgN.js} +2 -2
  4. package/dist/{NCMVHL6D-taGMv4he.cjs → NCMVHL6D-CmKLw38-.cjs} +1 -1
  5. package/dist/{ZDWCUMSJ-Cot4ixKZ.cjs → ZDWCUMSJ-DDHOTUX8.cjs} +1 -1
  6. package/dist/{ZDWCUMSJ-B1vApR00.js → ZDWCUMSJ-DmZy2MGb.js} +1 -1
  7. package/dist/{active-in-another-tab-Kp8LaYW5.js → active-in-another-tab-At1yEu4g.js} +1 -1
  8. package/dist/{active-in-another-tab-DYU7aCUa.cjs → active-in-another-tab-B1PAoWFL.cjs} +1 -1
  9. package/dist/{add-new-language-page-CkyPkpzC.cjs → add-new-language-page-B7fKZbYT.cjs} +1 -1
  10. package/dist/{add-new-language-page-0J2KTKg6.js → add-new-language-page-BfPVFqO4.js} +2 -2
  11. package/dist/{add-new-page-DPtVHa8m.cjs → add-new-page-DBVt7xSO.cjs} +1 -1
  12. package/dist/{add-new-page-BjxHUGIo.js → add-new-page-GZdKxwCY.js} +1 -1
  13. package/dist/{ai-panel-content-CMfopU0G.js → ai-panel-content-CWw-2gPV.js} +2 -2
  14. package/dist/{ai-panel-content-nmbQV7rT.cjs → ai-panel-content-Cv67WLJd.cjs} +1 -1
  15. package/dist/{ai-panel-default-lang-7L9rURdC.js → ai-panel-default-lang-B1WScOB4.js} +3 -3
  16. package/dist/{ai-panel-default-lang-B5eNybL4.cjs → ai-panel-default-lang-BBk6sSyh.cjs} +2 -2
  17. package/dist/{ai-panel-other-lang-DLn89TFE.cjs → ai-panel-other-lang-BrVV9nKv.cjs} +1 -1
  18. package/dist/{ai-panel-other-lang-U5XRqxbF.js → ai-panel-other-lang-DgNon2GH.js} +3 -3
  19. package/dist/{ai-prompt-input-B24vn-LG.js → ai-prompt-input-B6KsNLgP.js} +2 -2
  20. package/dist/ai-prompt-input-DSmIbsS_.cjs +1 -0
  21. package/dist/{ai-translation-prompt-CB67Sqo9.cjs → ai-translation-prompt-BYTviKVU.cjs} +1 -1
  22. package/dist/{ai-translation-prompt-cym054ja.js → ai-translation-prompt-CfnXqyai.js} +1 -1
  23. package/dist/button-CMMN5Cp4.cjs +1 -0
  24. package/dist/button-CggatMM3.js +48 -0
  25. package/dist/{continue-editing-in-this-client-BYJaymOL.cjs → continue-editing-in-this-client--Fzos10u.cjs} +1 -1
  26. package/dist/{continue-editing-in-this-client-BDYiQrbE.js → continue-editing-in-this-client--RRixZUo.js} +1 -1
  27. package/dist/{delete-page-BXEQB0Si.cjs → delete-page-BOuq3v6x.cjs} +1 -1
  28. package/dist/{delete-page-CvSN4E4V.js → delete-page-CeJdK5hc.js} +1 -1
  29. package/dist/{digital-asset-manager-CF1Lyc5K.cjs → digital-asset-manager-BUEa7fSG.cjs} +1 -1
  30. package/dist/{digital-asset-manager-BxbX7ji1.js → digital-asset-manager-D6GbpYDo.js} +1 -1
  31. package/dist/{duplicate-page-BFnuk1nL.js → duplicate-page-C7FjAbqP.js} +2 -2
  32. package/dist/{duplicate-page-C32_9H41.cjs → duplicate-page-Ch9Fn-Gu.cjs} +1 -1
  33. package/dist/{dynamic-page-selector-CLxpglyO.cjs → dynamic-page-selector-CZNYCxbJ.cjs} +1 -1
  34. package/dist/{dynamic-page-selector-CSTuQhej.js → dynamic-page-selector-C_-ihnB7.js} +1 -1
  35. package/dist/{index-Bre43r-W.cjs → index-CJcS3b8n.cjs} +5 -5
  36. package/dist/{index-tgsBai_8.js → index-CtRx3Y3K.js} +1039 -1028
  37. package/dist/index.cjs +1 -1
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.js +7 -7
  40. package/dist/{json-diff-viewer-2gVCV5T-.js → json-diff-viewer-DX4sQltt.js} +1 -1
  41. package/dist/{json-diff-viewer-34Sqd4il.cjs → json-diff-viewer-DluaC8tY.cjs} +1 -1
  42. package/dist/{lang-panel-CXIcTGVk.cjs → lang-panel-DFe4DfU4.cjs} +1 -1
  43. package/dist/{lang-panel-Cj0axCpE.js → lang-panel-p7OYw-2c.js} +2 -2
  44. package/dist/{mark-as-template-DKBwTiMJ.cjs → mark-as-template-Biqpp8uM.cjs} +1 -1
  45. package/dist/{mark-as-template-1TuznHtx.js → mark-as-template-CuPKgc5N.js} +1 -1
  46. package/dist/{no-language-page-content-C265--no.js → no-language-page-content-B_zNVuVO.js} +1 -1
  47. package/dist/{no-language-page-content-B8udZsi2.cjs → no-language-page-content-oy4ZcH34.cjs} +1 -1
  48. package/dist/{no-language-page-dialog-CctilPnb.cjs → no-language-page-dialog-CTRG81hU.cjs} +1 -1
  49. package/dist/{no-language-page-dialog-DgaP74-Y.js → no-language-page-dialog-Q2rvsEP6.js} +2 -2
  50. package/dist/{page-creator-NkF29o0S.cjs → page-creator-CVrbjJa-.cjs} +1 -1
  51. package/dist/{page-creator-Cer7L7dg.js → page-creator-b6UTCFeu.js} +2 -2
  52. package/dist/{page-lock-0qEG4sLX.cjs → page-lock-DUwWdppB.cjs} +1 -1
  53. package/dist/{page-lock-DNrP3AhL.js → page-lock-Dl5CmUgk.js} +2 -2
  54. package/dist/{page-locked-dialog-B9p5gIGE.cjs → page-locked-dialog-DeUMR-pV.cjs} +1 -1
  55. package/dist/{page-locked-dialog-U5eDKeBc.js → page-locked-dialog-MJ3kA-oQ.js} +1 -1
  56. package/dist/page-manager-new-C3XuiDiM.cjs +1 -0
  57. package/dist/page-manager-new-C8PGR_4a.js +394 -0
  58. package/dist/{page-manager-search-and-filter-DKrQdcb0.cjs → page-manager-search-and-filter-BdfXZwwH.cjs} +1 -1
  59. package/dist/{page-manager-search-and-filter-DDdYtDF7.js → page-manager-search-and-filter-DIz68YHL.js} +1 -1
  60. package/dist/{page-revisions-content-CoVYI0hI.js → page-revisions-content-BvYTXKgT.js} +2 -2
  61. package/dist/{page-revisions-content-NE8Y5DrC.cjs → page-revisions-content-CwrPL9kp.cjs} +1 -1
  62. package/dist/pages.css +1 -1
  63. package/dist/{publish-pages-content-KgbEbRVV.js → publish-pages-content-9VBFj6LH.js} +2 -2
  64. package/dist/{publish-pages-content-CCUKnVTH.cjs → publish-pages-content-DTPjR33T.cjs} +1 -1
  65. package/dist/{save-to-lib-CQmcDI5w.js → save-to-lib-Bkou78G6.js} +1 -1
  66. package/dist/{save-to-lib-C06RQn4k.cjs → save-to-lib-ByoB0FW5.cjs} +1 -1
  67. package/dist/selected-block-display-Auur5nl7.cjs +16 -0
  68. package/dist/selected-block-display-D1L4e4Cb.js +355 -0
  69. package/dist/{seo-panel-C-dqg-1A.js → seo-panel-KjxjFcdp.js} +16 -16
  70. package/dist/{seo-panel-hwJUoGfJ.cjs → seo-panel-Mjkh_Urn.cjs} +1 -1
  71. package/dist/{shared-json-ld-BP2l89h2.cjs → shared-json-ld-DYD7q8ST.cjs} +1 -1
  72. package/dist/{shared-json-ld-BUPafGh_.js → shared-json-ld-S9OIaOTA.js} +1 -1
  73. package/dist/{slug-input-91_G-ww1.cjs → slug-input-C0BtQs2w.cjs} +1 -1
  74. package/dist/{slug-input-hcJHNszn.js → slug-input-CUTtvZQ9.js} +1 -1
  75. package/dist/{take-over-request-Dw2P9U_Q.js → take-over-request-CXED2804.js} +1 -1
  76. package/dist/{take-over-request-kRGwkXvv.cjs → take-over-request-Dh9HVZPO.cjs} +1 -1
  77. package/dist/{theme-panel-footer-2qsvp4AM.js → theme-panel-footer-CftO53LS.js} +1 -1
  78. package/dist/{theme-panel-footer-DmO4-lci.cjs → theme-panel-footer-tdNtbqZs.cjs} +1 -1
  79. package/dist/{unmark-as-template-DbXx3l6p.js → unmark-as-template-Dp6S9dY3.js} +1 -1
  80. package/dist/{unmark-as-template-BBzZqNJt.cjs → unmark-as-template-DyUqAa9Z.cjs} +1 -1
  81. package/dist/{unpublish-page-BKQqPk_e.js → unpublish-page-c382vh74.js} +1 -1
  82. package/dist/{unpublish-page-CHYNjTFU.cjs → unpublish-page-ch791au1.cjs} +1 -1
  83. package/dist/{web-preview-BKoPv6AO.js → web-preview-DiOChE4E.js} +1 -1
  84. package/dist/{web-preview-D4KdtUYp.cjs → web-preview-cls5-Dlv.cjs} +1 -1
  85. package/package.json +3 -3
  86. package/dist/ai-prompt-input-6LzuYu5L.cjs +0 -1
  87. package/dist/page-manager-new-BL5S9ccS.cjs +0 -1
  88. package/dist/page-manager-new-DGaBkeJp.js +0 -354
  89. package/dist/selected-block-display-7n8S3vf1.js +0 -394
  90. package/dist/selected-block-display-DDC1_UC8.cjs +0 -16
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),x=require("./index-Bre43r-W.cjs"),G=require("./use-page-expand-manager-2KjeYfVS.cjs"),n=require("lodash-es"),$=require("@chaibuilder/sdk"),te=require("jotai"),v=require("lucide-react"),l=require("react"),J=(e,r)=>!e||!Array.isArray(e)?[]:n.isEmpty(r)?e:n.compact(n.filter(e,a=>{const t=n.toLower(r);return n.includes(n.toLower((a==null?void 0:a.name)||""),t)||n.includes(n.toLower((a==null?void 0:a.slug)||""),t)})),ne=(e,r)=>{const a=new Set,t=n.keyBy(e,"id");return r.forEach(c=>{let o=c;for(;o.parent&&t[o.parent];)a.add(o.parent),o=t[o.parent]}),Array.from(a).map(c=>t[c])},B=(e,r,a)=>n.isEmpty(r)?e:e.map(t=>{if(!a(t.pageType))return{...t,shouldExpandOnSearch:!0,children:t.children?B(t.children,r,a):[]};const c=t.children&&t.children.some(o=>n.includes(n.toLower(o.name||""),n.toLower(r))||n.includes(n.toLower(o.slug||""),n.toLower(r)));return{...t,shouldExpandOnSearch:c,children:t.children?B(t.children,r,a):[]}}),re=e=>{if(!e||!e.length)return[];const r={};e.forEach(t=>{r[t.id]={...t,children:[]}});const a=[];return Object.values(r).forEach(t=>{t.parent&&r[t.parent]?r[t.parent].children.push(t):a.push(t)}),a},K=e=>!e||!e.length?[]:[...e].sort((a,t)=>(a.name||"").localeCompare(t.name||"")).map(a=>({...a,children:a.children?K(a.children):[]})),ae=(e,r,a,t)=>{if(!e||!e.length)return[];let c=e;if(a!=="all"&&(c=n.compact(n.filter(e,{pageType:a}))),n.isEmpty(r))c=J(c,r);else{const m=J(c,r),d=ne(e,m);c=n.uniqBy([...m,...d],"id")}const o=K(re(c)),y=B(o,r,t),N=n.filter(y,m=>t(m.pageType)).sort((m,d)=>(m.name||"").localeCompare(d.name||"")),p=n.filter(y,m=>!t(m.pageType));let f=[];if(a==="all"){const m=n.keyBy(p,"pageType");f=Object.values(n.mapValues(m,(d,j)=>({...d,id:j,name:n.startCase(j),isPartialGroup:!0,children:y.filter(g=>g.pageType===j)})))}else f=p.sort((m,d)=>(m.name||"").localeCompare(d.name||""));return[...N,...f]},le=({page:e})=>{var t,c;const{isExpanded:r,toggleExpanded:a}=G.usePageExpandManager(e==null?void 0:e.id);return s.jsx("button",{onClick:o=>{o.stopPropagation(),a()},disabled:!((t=e==null?void 0:e.children)!=null&&t.length),className:`flex h-[calc(100%-2px)] w-5 items-center justify-center rounded text-gray-400 transition-colors hover:bg-gray-200 hover:px-1 hover:text-gray-500 ${(c=e==null?void 0:e.children)!=null&&c.length?"hover:text-blue-400":"opacity-0"}`,children:s.jsx(v.ChevronRight,{size:12,className:`stroke-[4] transition-transform duration-200 ${r?"rotate-90":""}`})})},ie=({page:e,pageType:r})=>s.jsx("div",{className:"flex h-full items-center justify-center gap-x-1",children:e.dynamic?s.jsx(v.StarsIcon,{size:12,className:"text-yellow-400"}):r!=null&&r.icon?s.jsx("div",{className:"flex h-4 max-h-4 w-4 max-w-4 items-center justify-center stroke-[1] text-slate-500",dangerouslySetInnerHTML:{__html:r.icon}}):r!=null&&r.hasSlug?s.jsx(v.File,{size:12,className:"stroke-[1] text-slate-500"}):s.jsx(v.Hash,{size:12,className:"stroke-[1] text-slate-500"})}),oe=({isOnline:e})=>s.jsx("div",{className:`h-2 w-2 rounded-full ${e?"bg-green-300":"bg-gray-300"}`}),ce=({page:e,pageTypes:r,currentPage:a,onClickAction:t,languagePages:c,selectedLanguage:o,showUntranslatedPages:y})=>{const N=x.useUserId(),{pageToUser:p}=x.usePageToUser(),f=n.get(p,[e==null?void 0:e.id,"userId"]),{data:m}=x.useChaiUserInfo(f),d=m&&N!==f?m==null?void 0:m.name:null,j=x.useFallbackLang(),g=a===e.id,U=!!e.isTemplate,b=l.useMemo(()=>n.find(r,{key:e.pageType}),[r,e.pageType]);let h=n.get(c,e==null?void 0:e.id);h=n.get(h,"lang")===o?h:null;const E=o===j||!!h,L=(h==null?void 0:h.name)||(e==null?void 0:e.name)||"No name";let S=(h==null?void 0:h.slug)||(e==null?void 0:e.slug)||"";const C=S+(e!=null&&e.dynamic?`/${b==null?void 0:b.dynamicSlug}`:"")+(e!=null&&e.dynamicSlugCustom?`${e.dynamicSlugCustom}`:"");if(S.startsWith("/")&&!y){const u=S.split("/").pop();S=S.endsWith(u)&&e.dynamic?"":`/${u}`}const q=l.useMemo(()=>{const u="flex h-7 min-w-0 flex-1 cursor-pointer select-none items-center gap-x-1.5 rounded px-px text-xs duration-300 border-[1px]",T=`${g?"border-primary/30 bg-primary/5":"border-transparent hover:border-gray-200 hover:bg-gray-100"}`;return E?`${u} ${T} ${d?"opacity-60":""}`:`${u} bg-gray-100 opacity-50 group-hover:border-gray-200 border-transparent group-hover:bg-blue-100`},[E,g,d]);return s.jsxs("div",{className:"group relative",children:[s.jsxs("div",{onClick:()=>!e.isPartialGroup&&E&&t("select",e==null?void 0:e.id),className:q,children:[s.jsx(le,{page:e}),!e.isPartialGroup&&s.jsx(oe,{isOnline:h?h.online:e.online}),!e.isPartialGroup&&s.jsx(ie,{page:e,pageType:b}),s.jsx(x.Tooltip,{content:L,side:"top",showTooltip:L.length>35,children:s.jsx("span",{className:"max-w-[40%] truncate font-medium text-black",children:L})}),(S||e.dynamic)&&s.jsx(x.Tooltip,{content:C,side:"top",showTooltip:!0,children:s.jsxs("span",{className:"max-w-[40%] truncate font-mono text-xs text-muted-foreground",children:[S,e.dynamic&&(b==null?void 0:b.dynamicSlug)&&s.jsxs("span",{className:"text-xs text-gray-500",children:["/",b==null?void 0:b.dynamicSlug,e.dynamicSlugCustom]})]})}),U&&s.jsx(x.Tooltip,{content:"Template",side:"top",children:s.jsx("span",{className:"text-blue-500",children:s.jsx(v.NotepadText,{size:16})})}),!e.isPartialGroup&&E&&!d?s.jsx("div",{className:"duration absolute right-0.5 top-[3px]",children:s.jsx(x.PageActionsDropdown,{isLanguagePage:!!h,page:h||e,setDuplicatePage:u=>t("duplicate",u),setAddEditPage:u=>t("edit",h||u),setUnpublishPage:u=>t("unpublish",u),setDeletePage:u=>t("delete",h||u),setMarkAsTemplate:u=>t("markAsTemplate",u),setUnmarkAsTemplate:u=>t("unmarkAsTemplate",u),children:s.jsx("div",{className:"m-0 cursor-pointer rounded border border-transparent p-0.5 duration-100 hover:border-gray-400 hover:bg-white",children:s.jsx(v.MoreHorizontal,{className:"h-4 w-4",onClick:u=>u.stopPropagation()})})})}):d?s.jsx("span",{className:"duration absolute right-1.5 top-1/2 -translate-y-1/2 text-xs text-gray-500",children:s.jsx(v.Lock,{className:"h-3.5 w-3.5 fill-red-200 text-red-500"})}):null]}),s.jsx(s.Fragment,{children:d&&s.jsxs("button",{className:"absolute right-px top-1/2 flex h-6 -translate-y-1/2 items-center gap-x-1 rounded bg-red-50 px-2 py-0.5 text-xs font-light text-red-500 opacity-0 group-hover:opacity-100",children:[s.jsx(v.Edit,{size:12,className:"stroke-[3]"})," ",s.jsx("span",{className:"font-medium",children:d})," is editing this page"]})}),s.jsx(s.Fragment,{children:!E&&!e.isPartialGroup&&!d&&s.jsxs("button",{onClick:u=>{u.stopPropagation(),t("addLanguagePage",{language:o,page:e})},className:"absolute left-1/2 top-1 flex -translate-x-1/2 items-center gap-x-1 rounded bg-blue-500 px-2 py-0.5 text-xs text-white opacity-0 duration-200 hover:bg-blue-700 group-hover:opacity-100",children:[s.jsx(v.Plus,{size:12,className:"stroke-[3]"})," ",s.jsxs("span",{className:"text-[10px]",children:["Add ",n.get(x.LANGUAGES,o)," Page"]})]})})]})},X=({pages:e,tier:r,pageTypes:a,currentPage:t,onClickAction:c,languagePages:o,selectedLanguage:y,showUntranslatedPages:N})=>{const{expandedPages:p}=G.usePageExpandManager();return s.jsx("div",{className:"space-y-0.5",style:{paddingLeft:`${r*10}px`},children:e.map(f=>s.jsxs(s.Fragment,{children:[s.jsx(ce,{page:f,pageTypes:a,currentPage:t,onClickAction:c,languagePages:o,selectedLanguage:y,showUntranslatedPages:N}),f.children&&f.children.length>0&&(p==null?void 0:p.includes(f.id))&&s.jsx(X,{pages:f.children,tier:r+1,pageTypes:a,currentPage:t,onClickAction:c,languagePages:o,selectedLanguage:y,showUntranslatedPages:N})]},f.id))})},de=l.lazy(()=>Promise.resolve().then(()=>require("./page-manager-search-and-filter-DKrQdcb0.cjs"))),ue=l.lazy(()=>Promise.resolve().then(()=>require("./add-new-page-DPtVHa8m.cjs"))),me=l.lazy(()=>Promise.resolve().then(()=>require("./delete-page-BXEQB0Si.cjs"))),he=l.lazy(()=>Promise.resolve().then(()=>require("./duplicate-page-C32_9H41.cjs"))),xe=l.lazy(()=>Promise.resolve().then(()=>require("./mark-as-template-DKBwTiMJ.cjs"))),fe=l.lazy(()=>Promise.resolve().then(()=>require("./unmark-as-template-BBzZqNJt.cjs"))),Pe=l.lazy(()=>Promise.resolve().then(()=>require("./unpublish-page-CHYNjTFU.cjs"))),ye=({close:e})=>{const{t:r}=$.useTranslation(),{languages:a,setSelectedLang:t}=$.useLanguages(),{data:c}=x.usePageTypes(),{data:o,isFetching:y}=x.useWebsitePages(),[N,p]=x.useSearchParams(),{updateForSelectedPage:f,expandPagesOnSearch:m}=G.usePageExpandManager(null),d=x.useFallbackLang(),j=N.get("page"),[g,U]=l.useState(""),[b,h]=l.useState(null),[E,L]=l.useState(null),[S,C]=l.useState(null),[q,u]=l.useState(null),[T,F]=l.useState(""),[O,R]=l.useState(null),[D,W]=l.useState(null),[k,Y]=l.useState(d),[Z,ee]=l.useState(!1),[,H]=te.useAtom(x.addNewLangAtom),M=Z&&k!==d,{data:A,isFetching:se}=x.useWebsiteLanguagePages(k),_=l.useCallback(P=>{var i;return(i=n.find(c,{key:P}))==null?void 0:i.hasSlug},[c]),w=l.useMemo(()=>o?M?n.filter(o,P=>!(A!=null&&A[P.id])):ae(o,g,T,_):[],[o,_,g,T,A,M]);l.useEffect(()=>{t(d)},[d,t]),l.useEffect(()=>{if(!n.isEmpty(T))return;const P=sessionStorage.getItem("pageTypeFilter")||"all";!n.isEmpty(c)&&P&&(n.find(c,{key:P})?F(P):F("all"))},[c,T]),l.useEffect(()=>{if(j&&!y&&!n.find(o,{id:j})){const i=n.find(o,{slug:"/"});if(i){const z=new URLSearchParams({page:i.id});x.navigateToPage(z,p)}else x.navigateToPage(new URLSearchParams({}),p,!0)}},[o,j,y,p]),l.useEffect(()=>{j&&!y&&!n.isEmpty(w)&&f(w,j)},[j,y,w,f]),l.useEffect(()=>{!n.isEmpty(g)&&!n.isEmpty(w)&&m(w)},[g,w,m]);const{setSelectedLang:I}=$.useLanguages(),Q=l.useCallback(P=>{const i=new URLSearchParams({page:P});k!==d?(i.set("lang",k),I(k)):I(""),x.navigateToPage(i,p),e()},[e,p,I,k,d]),V=(P,i)=>{var z;if(i)switch(P){case"add":L(i);break;case"select":Q(i);break;case"edit":k!==d?H({edit:!0,id:i==null?void 0:i.id,primaryPage:i==null?void 0:i.primaryPage}):L(i);break;case"delete":h(i);break;case"unpublish":C(i);break;case"markAsTemplate":u(i);break;case"unmarkAsTemplate":W(i);break;case"duplicate":R(i);break;case"addLanguagePage":H({edit:!1,primaryPage:((z=i==null?void 0:i.page)==null?void 0:z.id)||"",preselectedLang:(i==null?void 0:i.language)||k});break}};return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex h-full flex-col justify-between",children:[s.jsx(l.Suspense,{children:s.jsx(de,{pages:w,search:g,setSearch:U,languages:[d,...a],selectedLanguage:k,setSelectedLanguage:Y,selectedPageType:T,setSelectedPageType:F,onAddPage:P=>V("add",P),showUntranslatedPages:M,setShowUntranslatedPages:ee})}),s.jsx("div",{className:"flex-1 overflow-y-auto px-4 pb-6 pt-2",children:y||se?s.jsx("div",{className:"space-y-2",children:n.map([...Array(15).keys()],P=>s.jsx("div",{className:"h-7 w-full animate-pulse rounded border border-gray-300 bg-gray-200"},P))}):n.isEmpty(w)?s.jsxs("div",{className:"flex h-[70vh] flex-col items-center justify-center gap-y-1 text-sm font-medium text-slate-500",children:[s.jsx(v.File,{className:"h-6 w-6 stroke-[1]"}),r("Empty List!"),s.jsx("span",{className:"font-light",children:r("Add new page to start")})]}):s.jsx(X,{tier:0,pages:w,pageTypes:c,currentPage:j||"",onClickAction:V,languagePages:A,selectedLanguage:k,showUntranslatedPages:M})})]}),E&&s.jsx(l.Suspense,{children:s.jsx(ue,{closePanel:e,editPage:Q,addEditPage:E,setAddEditPage:L})}),b&&s.jsx(l.Suspense,{children:s.jsx(me,{page:b,onClose:()=>h(null)})}),S&&s.jsx(l.Suspense,{children:s.jsx(Pe,{page:S,onClose:()=>C(null)})}),q&&s.jsx(l.Suspense,{children:s.jsx(xe,{page:q,onClose:()=>u(null)})}),D&&s.jsx(l.Suspense,{children:s.jsx(fe,{page:D,onClose:()=>W(null)})}),O&&s.jsx(l.Suspense,{children:s.jsx(he,{page:O,onClose:()=>R(null),closePanel:e})})]})};exports.default=ye;
@@ -1,354 +0,0 @@
1
- import { jsxs as b, jsx as t, Fragment as D } from "react/jsx-runtime";
2
- import { aA as be, aB as ye, ao as ge, k as ie, T as q, aK as ke, L as Ne, m as ve, g as we, c as Se, av as Ae, aL as Le, aM as K } from "./index-tgsBai_8.js";
3
- import { u as J } from "./use-page-expand-manager-D6T75I11.js";
4
- import { compact as ce, filter as z, isEmpty as w, uniqBy as Te, keyBy as de, mapValues as Ce, startCase as Ee, toLower as E, includes as R, get as O, find as $, map as Ue } from "lodash-es";
5
- import { useTranslation as Ie, useLanguages as ae } from "@chaibuilder/sdk";
6
- import { useAtom as Me } from "jotai";
7
- import { NotepadText as $e, MoreHorizontal as ze, Lock as Be, Edit as Fe, Plus as je, ChevronRight as Ge, StarsIcon as Oe, Hash as De, File as ue } from "lucide-react";
8
- import { useMemo as Q, lazy as U, useState as N, useCallback as le, useEffect as M, Suspense as C } from "react";
9
- const oe = (e, n) => !e || !Array.isArray(e) ? [] : w(n) ? e : ce(
10
- z(e, (r) => {
11
- const s = E(n);
12
- return R(E((r == null ? void 0 : r.name) || ""), s) || R(E((r == null ? void 0 : r.slug) || ""), s);
13
- })
14
- ), Re = (e, n) => {
15
- const r = /* @__PURE__ */ new Set(), s = de(e, "id");
16
- return n.forEach((o) => {
17
- let l = o;
18
- for (; l.parent && s[l.parent]; )
19
- r.add(l.parent), l = s[l.parent];
20
- }), Array.from(r).map((o) => s[o]);
21
- }, V = (e, n, r) => w(n) ? e : e.map((s) => {
22
- if (!r(s.pageType))
23
- return {
24
- ...s,
25
- shouldExpandOnSearch: !0,
26
- children: s.children ? V(s.children, n, r) : []
27
- };
28
- const o = s.children && s.children.some(
29
- (l) => R(E(l.name || ""), E(n)) || R(E(l.slug || ""), E(n))
30
- );
31
- return {
32
- ...s,
33
- shouldExpandOnSearch: o,
34
- children: s.children ? V(s.children, n, r) : []
35
- };
36
- }), We = (e) => {
37
- if (!e || !e.length) return [];
38
- const n = {};
39
- e.forEach((s) => {
40
- n[s.id] = { ...s, children: [] };
41
- });
42
- const r = [];
43
- return Object.values(n).forEach((s) => {
44
- s.parent && n[s.parent] ? n[s.parent].children.push(s) : r.push(s);
45
- }), r;
46
- }, me = (e) => !e || !e.length ? [] : [...e].sort(
47
- (r, s) => (r.name || "").localeCompare(s.name || "")
48
- ).map((r) => ({
49
- ...r,
50
- children: r.children ? me(r.children) : []
51
- })), He = (e, n, r, s) => {
52
- if (!e || !e.length) return [];
53
- let o = e;
54
- if (r !== "all" && (o = ce(z(e, { pageType: r }))), w(n))
55
- o = oe(o, n);
56
- else {
57
- const d = oe(o, n), i = Re(e, d);
58
- o = Te([...d, ...i], "id");
59
- }
60
- const l = me(We(o)), f = V(l, n, s), S = z(f, (d) => s(d.pageType)).sort((d, i) => (d.name || "").localeCompare(i.name || "")), x = z(f, (d) => !s(d.pageType));
61
- let m = [];
62
- if (r === "all") {
63
- const d = de(x, "pageType");
64
- m = Object.values(
65
- Ce(d, (i, P) => ({
66
- ...i,
67
- id: P,
68
- name: Ee(P),
69
- isPartialGroup: !0,
70
- children: f.filter((y) => y.pageType === P)
71
- }))
72
- );
73
- } else
74
- m = x.sort((d, i) => (d.name || "").localeCompare(i.name || ""));
75
- return [...S, ...m];
76
- }, _e = ({ page: e }) => {
77
- var s, o;
78
- const { isExpanded: n, toggleExpanded: r } = J(e == null ? void 0 : e.id);
79
- return /* @__PURE__ */ t(
80
- "button",
81
- {
82
- onClick: (l) => {
83
- l.stopPropagation(), r();
84
- },
85
- disabled: !((s = e == null ? void 0 : e.children) != null && s.length),
86
- className: `flex h-[calc(100%-2px)] w-5 items-center justify-center rounded text-gray-400 transition-colors hover:bg-gray-200 hover:px-1 hover:text-gray-500 ${(o = e == null ? void 0 : e.children) != null && o.length ? "hover:text-blue-400" : "opacity-0"}`,
87
- children: /* @__PURE__ */ t(
88
- Ge,
89
- {
90
- size: 12,
91
- className: `stroke-[4] transition-transform duration-200 ${n ? "rotate-90" : ""}`
92
- }
93
- )
94
- }
95
- );
96
- }, qe = ({ page: e, pageType: n }) => /* @__PURE__ */ t("div", { className: "flex h-full items-center justify-center gap-x-1", children: e.dynamic ? /* @__PURE__ */ t(Oe, { size: 12, className: "text-yellow-400" }) : n != null && n.icon ? /* @__PURE__ */ t(
97
- "div",
98
- {
99
- className: "flex h-4 max-h-4 w-4 max-w-4 items-center justify-center stroke-[1] text-slate-500",
100
- dangerouslySetInnerHTML: { __html: n.icon }
101
- }
102
- ) : n != null && n.hasSlug ? /* @__PURE__ */ t(ue, { size: 12, className: "stroke-[1] text-slate-500" }) : /* @__PURE__ */ t(De, { size: 12, className: "stroke-[1] text-slate-500" }) }), Ke = ({ isOnline: e }) => /* @__PURE__ */ t("div", { className: `h-2 w-2 rounded-full ${e ? "bg-green-300" : "bg-gray-300"}` }), Qe = ({
103
- page: e,
104
- pageTypes: n,
105
- currentPage: r,
106
- onClickAction: s,
107
- languagePages: o,
108
- selectedLanguage: l,
109
- showUntranslatedPages: f
110
- }) => {
111
- const S = be(), { pageToUser: x } = ye(), m = O(x, [e == null ? void 0 : e.id, "userId"]), { data: d } = ge(m), i = d && S !== m ? d == null ? void 0 : d.name : null, P = ie(), y = r === e.id, W = !!e.isTemplate, p = Q(() => $(n, { key: e.pageType }), [n, e.pageType]);
112
- let u = O(o, e == null ? void 0 : e.id);
113
- u = O(u, "lang") === l ? u : null;
114
- const A = l === P || !!u, L = (u == null ? void 0 : u.name) || (e == null ? void 0 : e.name) || "No name";
115
- let g = (u == null ? void 0 : u.slug) || (e == null ? void 0 : e.slug) || "";
116
- const B = g + (e != null && e.dynamic ? `/${p == null ? void 0 : p.dynamicSlug}` : "") + (e != null && e.dynamicSlugCustom ? `${e.dynamicSlugCustom}` : "");
117
- if (g.startsWith("/") && !f) {
118
- const c = g.split("/").pop();
119
- g = g.endsWith(c) && e.dynamic ? "" : `/${c}`;
120
- }
121
- const F = Q(() => {
122
- const c = "flex h-7 min-w-0 flex-1 cursor-pointer select-none items-center gap-x-1.5 rounded px-px text-xs duration-300 border-[1px]", T = `${y ? "border-primary/30 bg-primary/5" : "border-transparent hover:border-gray-200 hover:bg-gray-100"}`;
123
- return A ? `${c} ${T} ${i ? "opacity-60" : ""}` : `${c} bg-gray-100 opacity-50 group-hover:border-gray-200 border-transparent group-hover:bg-blue-100`;
124
- }, [A, y, i]);
125
- return /* @__PURE__ */ b("div", { className: "group relative", children: [
126
- /* @__PURE__ */ b(
127
- "div",
128
- {
129
- onClick: () => !e.isPartialGroup && A && s("select", e == null ? void 0 : e.id),
130
- className: F,
131
- children: [
132
- /* @__PURE__ */ t(_e, { page: e }),
133
- !e.isPartialGroup && /* @__PURE__ */ t(Ke, { isOnline: u ? u.online : e.online }),
134
- !e.isPartialGroup && /* @__PURE__ */ t(qe, { page: e, pageType: p }),
135
- /* @__PURE__ */ t(q, { content: L, side: "top", showTooltip: L.length > 35, children: /* @__PURE__ */ t("span", { className: "max-w-[40%] truncate font-medium text-black", children: L }) }),
136
- (g || e.dynamic) && /* @__PURE__ */ t(q, { content: B, side: "top", showTooltip: !0, children: /* @__PURE__ */ b("span", { className: "max-w-[40%] truncate font-mono text-xs text-muted-foreground", children: [
137
- g,
138
- e.dynamic && (p == null ? void 0 : p.dynamicSlug) && /* @__PURE__ */ b("span", { className: "text-xs text-gray-500", children: [
139
- "/",
140
- p == null ? void 0 : p.dynamicSlug,
141
- e.dynamicSlugCustom
142
- ] })
143
- ] }) }),
144
- W && /* @__PURE__ */ t(q, { content: "Template", side: "top", children: /* @__PURE__ */ t("span", { className: "text-blue-500", children: /* @__PURE__ */ t($e, { size: 16 }) }) }),
145
- !e.isPartialGroup && A && !i ? /* @__PURE__ */ t("div", { className: "duration absolute right-0.5 top-[3px]", children: /* @__PURE__ */ t(
146
- ke,
147
- {
148
- isLanguagePage: !!u,
149
- page: u || e,
150
- setDuplicatePage: (c) => s("duplicate", c),
151
- setAddEditPage: (c) => s("edit", u || c),
152
- setUnpublishPage: (c) => s("unpublish", c),
153
- setDeletePage: (c) => s("delete", u || c),
154
- setMarkAsTemplate: (c) => s("markAsTemplate", c),
155
- setUnmarkAsTemplate: (c) => s("unmarkAsTemplate", c),
156
- children: /* @__PURE__ */ t("div", { className: "m-0 cursor-pointer rounded border border-transparent p-0.5 duration-100 hover:border-gray-400 hover:bg-white", children: /* @__PURE__ */ t(ze, { className: "h-4 w-4", onClick: (c) => c.stopPropagation() }) })
157
- }
158
- ) }) : i ? /* @__PURE__ */ t("span", { className: "duration absolute right-1.5 top-1/2 -translate-y-1/2 text-xs text-gray-500", children: /* @__PURE__ */ t(Be, { className: "h-3.5 w-3.5 fill-red-200 text-red-500" }) }) : null
159
- ]
160
- }
161
- ),
162
- /* @__PURE__ */ t(D, { children: i && /* @__PURE__ */ b("button", { className: "absolute right-px top-1/2 flex h-6 -translate-y-1/2 items-center gap-x-1 rounded bg-red-50 px-2 py-0.5 text-xs font-light text-red-500 opacity-0 group-hover:opacity-100", children: [
163
- /* @__PURE__ */ t(Fe, { size: 12, className: "stroke-[3]" }),
164
- " ",
165
- /* @__PURE__ */ t("span", { className: "font-medium", children: i }),
166
- " is editing this page"
167
- ] }) }),
168
- /* @__PURE__ */ t(D, { children: !A && !e.isPartialGroup && !i && /* @__PURE__ */ b(
169
- "button",
170
- {
171
- onClick: (c) => {
172
- c.stopPropagation(), s("addLanguagePage", { language: l, page: e });
173
- },
174
- className: "absolute left-1/2 top-1 flex -translate-x-1/2 items-center gap-x-1 rounded bg-blue-500 px-2 py-0.5 text-xs text-white opacity-0 duration-200 hover:bg-blue-700 group-hover:opacity-100",
175
- children: [
176
- /* @__PURE__ */ t(je, { size: 12, className: "stroke-[3]" }),
177
- " ",
178
- /* @__PURE__ */ b("span", { className: "text-[10px]", children: [
179
- "Add ",
180
- O(Ne, l),
181
- " Page"
182
- ] })
183
- ]
184
- }
185
- ) })
186
- ] });
187
- }, he = ({
188
- pages: e,
189
- tier: n,
190
- pageTypes: r,
191
- currentPage: s,
192
- onClickAction: o,
193
- languagePages: l,
194
- selectedLanguage: f,
195
- showUntranslatedPages: S
196
- }) => {
197
- const { expandedPages: x } = J();
198
- return /* @__PURE__ */ t("div", { className: "space-y-0.5", style: { paddingLeft: `${n * 10}px` }, children: e.map((m) => /* @__PURE__ */ b(D, { children: [
199
- /* @__PURE__ */ t(
200
- Qe,
201
- {
202
- page: m,
203
- pageTypes: r,
204
- currentPage: s,
205
- onClickAction: o,
206
- languagePages: l,
207
- selectedLanguage: f,
208
- showUntranslatedPages: S
209
- }
210
- ),
211
- m.children && m.children.length > 0 && (x == null ? void 0 : x.includes(m.id)) && /* @__PURE__ */ t(
212
- he,
213
- {
214
- pages: m.children,
215
- tier: n + 1,
216
- pageTypes: r,
217
- currentPage: s,
218
- onClickAction: o,
219
- languagePages: l,
220
- selectedLanguage: f,
221
- showUntranslatedPages: S
222
- }
223
- )
224
- ] }, m.id)) });
225
- }, Ve = U(() => import("./page-manager-search-and-filter-DDdYtDF7.js")), Je = U(() => import("./add-new-page-BjxHUGIo.js")), Xe = U(() => import("./delete-page-CvSN4E4V.js")), Ye = U(() => import("./duplicate-page-BFnuk1nL.js")), Ze = U(() => import("./mark-as-template-1TuznHtx.js")), et = U(() => import("./unmark-as-template-DbXx3l6p.js")), tt = U(() => import("./unpublish-page-BKQqPk_e.js")), dt = ({ close: e }) => {
226
- const { t: n } = Ie(), { languages: r, setSelectedLang: s } = ae(), { data: o } = ve(), { data: l, isFetching: f } = we(), [S, x] = Se(), { updateForSelectedPage: m, expandPagesOnSearch: d } = J(null), i = ie(), P = S.get("page"), [y, W] = N(""), [p, u] = N(null), [A, L] = N(null), [g, B] = N(null), [F, c] = N(null), [T, H] = N(""), [X, Y] = N(null), [Z, ee] = N(null), [k, fe] = N(i), [xe, Pe] = N(!1), [, te] = Me(Ae), j = xe && k !== i, { data: I, isFetching: pe } = Le(k), se = le(
227
- (h) => {
228
- var a;
229
- return (a = $(o, { key: h })) == null ? void 0 : a.hasSlug;
230
- },
231
- [o]
232
- ), v = Q(() => l ? j ? z(l, (h) => !(I != null && I[h.id])) : He(l, y, T, se) : [], [l, se, y, T, I, j]);
233
- M(() => {
234
- s(i);
235
- }, [i, s]), M(() => {
236
- if (!w(T)) return;
237
- const h = sessionStorage.getItem("pageTypeFilter") || "all";
238
- !w(o) && h && ($(o, { key: h }) ? H(h) : H("all"));
239
- }, [o, T]), M(() => {
240
- if (P && !f && !$(l, { id: P })) {
241
- const a = $(l, { slug: "/" });
242
- if (a) {
243
- const G = new URLSearchParams({ page: a.id });
244
- K(G, x);
245
- } else
246
- K(new URLSearchParams({}), x, !0);
247
- }
248
- }, [l, P, f, x]), M(() => {
249
- P && !f && !w(v) && m(v, P);
250
- }, [P, f, v, m]), M(() => {
251
- !w(y) && !w(v) && d(v);
252
- }, [y, v, d]);
253
- const { setSelectedLang: _ } = ae(), ne = le(
254
- (h) => {
255
- const a = new URLSearchParams({ page: h });
256
- k !== i ? (a.set("lang", k), _(k)) : _(""), K(a, x), e();
257
- },
258
- [e, x, _, k, i]
259
- ), re = (h, a) => {
260
- var G;
261
- if (a)
262
- switch (h) {
263
- case "add":
264
- L(a);
265
- break;
266
- case "select":
267
- ne(a);
268
- break;
269
- case "edit":
270
- k !== i ? te({
271
- edit: !0,
272
- id: a == null ? void 0 : a.id,
273
- primaryPage: a == null ? void 0 : a.primaryPage
274
- }) : L(a);
275
- break;
276
- case "delete":
277
- u(a);
278
- break;
279
- case "unpublish":
280
- B(a);
281
- break;
282
- case "markAsTemplate":
283
- c(a);
284
- break;
285
- case "unmarkAsTemplate":
286
- ee(a);
287
- break;
288
- case "duplicate":
289
- Y(a);
290
- break;
291
- case "addLanguagePage":
292
- te({
293
- edit: !1,
294
- primaryPage: ((G = a == null ? void 0 : a.page) == null ? void 0 : G.id) || "",
295
- preselectedLang: (a == null ? void 0 : a.language) || k
296
- });
297
- break;
298
- }
299
- };
300
- return /* @__PURE__ */ b(D, { children: [
301
- /* @__PURE__ */ b("div", { className: "flex h-full flex-col justify-between", children: [
302
- /* @__PURE__ */ t(C, { children: /* @__PURE__ */ t(
303
- Ve,
304
- {
305
- pages: v,
306
- search: y,
307
- setSearch: W,
308
- languages: [i, ...r],
309
- selectedLanguage: k,
310
- setSelectedLanguage: fe,
311
- selectedPageType: T,
312
- setSelectedPageType: H,
313
- onAddPage: (h) => re("add", h),
314
- showUntranslatedPages: j,
315
- setShowUntranslatedPages: Pe
316
- }
317
- ) }),
318
- /* @__PURE__ */ t("div", { className: "flex-1 overflow-y-auto px-4 pb-6 pt-2", children: f || pe ? /* @__PURE__ */ t("div", { className: "space-y-2", children: Ue([...Array(15).keys()], (h) => /* @__PURE__ */ t("div", { className: "h-7 w-full animate-pulse rounded border border-gray-300 bg-gray-200" }, h)) }) : w(v) ? /* @__PURE__ */ b("div", { className: "flex h-[70vh] flex-col items-center justify-center gap-y-1 text-sm font-medium text-slate-500", children: [
319
- /* @__PURE__ */ t(ue, { className: "h-6 w-6 stroke-[1]" }),
320
- n("Empty List!"),
321
- /* @__PURE__ */ t("span", { className: "font-light", children: n("Add new page to start") })
322
- ] }) : /* @__PURE__ */ t(
323
- he,
324
- {
325
- tier: 0,
326
- pages: v,
327
- pageTypes: o,
328
- currentPage: P || "",
329
- onClickAction: re,
330
- languagePages: I,
331
- selectedLanguage: k,
332
- showUntranslatedPages: j
333
- }
334
- ) })
335
- ] }),
336
- A && /* @__PURE__ */ t(C, { children: /* @__PURE__ */ t(
337
- Je,
338
- {
339
- closePanel: e,
340
- editPage: ne,
341
- addEditPage: A,
342
- setAddEditPage: L
343
- }
344
- ) }),
345
- p && /* @__PURE__ */ t(C, { children: /* @__PURE__ */ t(Xe, { page: p, onClose: () => u(null) }) }),
346
- g && /* @__PURE__ */ t(C, { children: /* @__PURE__ */ t(tt, { page: g, onClose: () => B(null) }) }),
347
- F && /* @__PURE__ */ t(C, { children: /* @__PURE__ */ t(Ze, { page: F, onClose: () => c(null) }) }),
348
- Z && /* @__PURE__ */ t(C, { children: /* @__PURE__ */ t(et, { page: Z, onClose: () => ee(null) }) }),
349
- X && /* @__PURE__ */ t(C, { children: /* @__PURE__ */ t(Ye, { page: X, onClose: () => Y(null), closePanel: e }) })
350
- ] });
351
- };
352
- export {
353
- dt as default
354
- };