convex-cms 0.0.3 → 0.0.5-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +109 -13
- package/admin-dist/nitro.json +1 -1
- package/admin-dist/public/assets/{CmsEmptyState-CRswfTzk.js → CmsEmptyState-CiMQwSQV.js} +2 -2
- package/admin-dist/public/assets/{CmsPageHeader-CirpXndm.js → CmsPageHeader-ohOq0luT.js} +1 -1
- package/admin-dist/public/assets/{CmsStatusBadge-CbEUpQu-.js → CmsStatusBadge-BdNf0V9v.js} +1 -1
- package/admin-dist/public/assets/CmsSurface-CWup6Jh7.js +1 -0
- package/admin-dist/public/assets/{CmsToolbar-BI2nZOXp.js → CmsToolbar-cEBlCHa3.js} +1 -1
- package/admin-dist/public/assets/{ContentEntryEditor-CBeCyK_m.js → ContentEntryEditor-BY5ypfUs.js} +1 -1
- package/admin-dist/public/assets/{ErrorState-BIVaWmom.js → ErrorState-C4nJ-ml4.js} +1 -1
- package/admin-dist/public/assets/{TaxonomyFilter-ChaY6Y_x.js → TaxonomyFilter-BgE_SR_O.js} +1 -1
- package/admin-dist/public/assets/{_contentTypeId-DQ8k_Rvw.js → _contentTypeId-DtZectcC.js} +1 -1
- package/admin-dist/public/assets/{_entryId-CKU_glsK.js → _entryId-BpSmrfAm.js} +1 -1
- package/admin-dist/public/assets/alert-Bf2l8kxw.js +1 -0
- package/admin-dist/public/assets/{badge-hvUOzpVZ.js → badge-qPrc4AUM.js} +1 -1
- package/admin-dist/public/assets/{circle-check-big-CF_pR17r.js → circle-check-big-Dgozy3vV.js} +1 -1
- package/admin-dist/public/assets/{command-DU82cJlt.js → command-QOmNhlb0.js} +1 -1
- package/admin-dist/public/assets/content-OEBGlxg1.js +1 -0
- package/admin-dist/public/assets/content-types-CjQliqVV.js +2 -0
- package/admin-dist/public/assets/{globals-CS6BZ0zp.css → globals-hAmgC66w.css} +1 -1
- package/admin-dist/public/assets/index-BH_ECMhv.js +1 -0
- package/admin-dist/public/assets/{label-KNtpL71g.js → label-DCsUdvFh.js} +1 -1
- package/admin-dist/public/assets/{link-2-Bw2aI4V4.js → link-2-Czw1N61H.js} +1 -1
- package/admin-dist/public/assets/{list-sYepHjt_.js → list-DtCsXj8-.js} +1 -1
- package/admin-dist/public/assets/{main-CKj5yfEi.js → main-CXgkZMhe.js} +3 -3
- package/admin-dist/public/assets/{media-Bkrkffm7.js → media-DTJ3-ViE.js} +1 -1
- package/admin-dist/public/assets/{new._contentTypeId-C3LstjNs.js → new._contentTypeId-CoTDxKzf.js} +1 -1
- package/admin-dist/public/assets/{plus-DUn8v_Xf.js → plus-xCFJK0RC.js} +1 -1
- package/admin-dist/public/assets/{rotate-ccw-DJEoHcRI.js → rotate-ccw-DIqK63wY.js} +1 -1
- package/admin-dist/public/assets/scroll-area-B-yrE66a.js +1 -0
- package/admin-dist/public/assets/{search-MuAUDJKR.js → search-CbCbboeU.js} +1 -1
- package/admin-dist/public/assets/select-Co3TZFJb.js +1 -0
- package/admin-dist/public/assets/settings-BspTTv_o.js +1 -0
- package/admin-dist/public/assets/switch-CfavASmR.js +1 -0
- package/admin-dist/public/assets/tabs-CN5s5u2W.js +1 -0
- package/admin-dist/public/assets/tanstack-adapter-npeE3RdY.js +1 -0
- package/admin-dist/public/assets/taxonomies-CgG46fIF.js +1 -0
- package/admin-dist/public/assets/{textarea-BTy7nwzR.js → textarea-BJ0XFZpT.js} +1 -1
- package/admin-dist/public/assets/trash-B3daldm5.js +1 -0
- package/admin-dist/public/assets/{triangle-alert-E52Vfeuh.js → triangle-alert-BZRcqsUg.js} +1 -1
- package/admin-dist/public/assets/useBreadcrumbLabel-DwZlwvFF.js +1 -0
- package/admin-dist/public/assets/{usePermissions-Basjs9BT.js → usePermissions-C1JQhfqb.js} +1 -1
- package/admin-dist/server/_chunks/_libs/@tanstack/react-router.mjs +7 -0
- package/admin-dist/server/_ssr/{badge-6BsP37vG.mjs → CmsButton-B45JAKR1.mjs} +33 -33
- package/admin-dist/server/_ssr/{CmsEmptyState-DU7-7-mV.mjs → CmsEmptyState-D_BQFAVR.mjs} +2 -2
- package/admin-dist/server/_ssr/{CmsPageHeader-CseW0AHm.mjs → CmsPageHeader-CrUZA59A.mjs} +1 -1
- package/admin-dist/server/_ssr/{CmsStatusBadge-B_pi4KCp.mjs → CmsStatusBadge-B-sj6yaj.mjs} +2 -2
- package/admin-dist/server/_ssr/CmsSurface-DKJZhpjk.mjs +44 -0
- package/admin-dist/server/_ssr/{CmsToolbar-X75ex6ek.mjs → CmsToolbar-ByaW5iXf.mjs} +2 -2
- package/admin-dist/server/_ssr/{ContentEntryEditor-CepusRsA.mjs → ContentEntryEditor-D3_Jb1dq.mjs} +11 -11
- package/admin-dist/server/_ssr/{TaxonomyFilter-Bwrq0-cz.mjs → TaxonomyFilter-BRJkuCtA.mjs} +4 -4
- package/admin-dist/server/_ssr/{_contentTypeId-BqYKEcLr.mjs → _contentTypeId-B9kA6CaM.mjs} +11 -11
- package/admin-dist/server/_ssr/{_entryId-CRfnqeDf.mjs → _entryId-BddcMkZN.mjs} +14 -14
- package/admin-dist/server/_ssr/_tanstack-start-manifest_v-Dd7AmelK.mjs +4 -0
- package/admin-dist/server/_ssr/{command-fy8epIKf.mjs → command-CGtVr8Gb.mjs} +1 -1
- package/admin-dist/server/_ssr/{content-B5RhL7uW.mjs → content-D1tbeOd0.mjs} +201 -86
- package/admin-dist/server/_ssr/{content-types-BIOqCQYN.mjs → content-types-BZqY_BER.mjs} +279 -103
- package/admin-dist/server/_ssr/{index-DHSHDPt1.mjs → index-BIdq4xaC.mjs} +88 -17
- package/admin-dist/server/_ssr/index.mjs +2 -2
- package/admin-dist/server/_ssr/{label-C8Dko1j7.mjs → label-T-QNKAr6.mjs} +1 -1
- package/admin-dist/server/_ssr/{media-CSx3XttC.mjs → media-C-xqjBrl.mjs} +40 -40
- package/admin-dist/server/_ssr/{new._contentTypeId-DzanEZQM.mjs → new._contentTypeId-DWic9cRq.mjs} +13 -13
- package/admin-dist/server/_ssr/{router-DDWcF-kt.mjs → router-D1BMAMJT.mjs} +11 -11
- package/admin-dist/server/_ssr/{scroll-area-bjPYwhXN.mjs → scroll-area-C0pic_WA.mjs} +1 -1
- package/admin-dist/server/_ssr/{select-BUhDDf4T.mjs → select-CqmuN2F6.mjs} +1 -1
- package/admin-dist/server/_ssr/{settings-DAsxnw2q.mjs → settings-CAkncGGV.mjs} +211 -129
- package/admin-dist/server/_ssr/{switch-BgyRtQ1Z.mjs → switch-CgmuJkT9.mjs} +1 -1
- package/admin-dist/server/_ssr/{tabs-DzMdRB1A.mjs → tabs-CnMj0aRy.mjs} +5 -3
- package/admin-dist/server/_ssr/tanstack-adapter-BXZrMauE.mjs +119 -0
- package/admin-dist/server/_ssr/{taxonomies-C8j8g5Q5.mjs → taxonomies-thl3BfVm.mjs} +168 -68
- package/admin-dist/server/_ssr/{textarea-9jNeYJSc.mjs → textarea-4K5OJgeh.mjs} +1 -1
- package/admin-dist/server/_ssr/{trash-DYMxwhZB.mjs → trash-B40Gx5zP.mjs} +206 -86
- package/admin-dist/server/_ssr/{useBreadcrumbLabel-FNSAr2Ha.mjs → useBreadcrumbLabel-rn-fL4zV.mjs} +1 -1
- package/admin-dist/server/_ssr/{usePermissions-BJGGahrJ.mjs → usePermissions-CKeM6_Vw.mjs} +1 -1
- package/admin-dist/server/index.mjs +194 -180
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +156 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/index.js +6 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/client/admin-config.d.ts +2 -2
- package/dist/client/admin-config.js +2 -2
- package/dist/client/adminApi.d.ts +1877 -1851
- package/dist/client/adminApi.d.ts.map +1 -1
- package/dist/client/adminApi.js +649 -629
- package/dist/client/adminApi.js.map +1 -1
- package/dist/client/agentTools.d.ts +7 -17
- package/dist/client/agentTools.d.ts.map +1 -1
- package/dist/client/agentTools.js +4 -4
- package/dist/client/index.d.ts +4 -4
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +4 -4
- package/dist/client/index.js.map +1 -1
- package/dist/client/schema/codegen.d.ts +2 -2
- package/dist/client/schema/codegen.d.ts.map +1 -1
- package/dist/client/schema/codegen.js +3 -3
- package/dist/client/schema/codegen.js.map +1 -1
- package/dist/client/schema/defineContentType.d.ts +3 -3
- package/dist/client/schema/defineContentType.js +3 -3
- package/dist/client/schema/index.d.ts +7 -7
- package/dist/client/schema/index.d.ts.map +1 -1
- package/dist/client/schema/index.js +5 -5
- package/dist/client/schema/index.js.map +1 -1
- package/dist/client/schema/schemaDrift.d.ts +1 -1
- package/dist/client/schema/schemaDrift.js +1 -1
- package/dist/client/schema/typedClient.d.ts +2 -2
- package/dist/client/schema/typedClient.js +2 -2
- package/dist/client/schema/types.d.ts +1 -1
- package/dist/client/schema/types.js +1 -1
- package/dist/client/wrapper.d.ts +108 -65
- package/dist/client/wrapper.d.ts.map +1 -1
- package/dist/client/wrapper.js +22 -22
- package/dist/client/wrapper.js.map +1 -1
- package/dist/component/convex.config.d.ts +2 -2
- package/dist/component/convex.config.js +2 -2
- package/dist/component/index.d.ts +1 -1
- package/dist/component/index.js +1 -1
- package/dist/component/lib/ragContentChunker.d.ts +1 -1
- package/dist/component/lib/ragContentChunker.js +1 -1
- package/dist/component/roles.d.ts +1 -1
- package/dist/component/roles.js +1 -1
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +13 -7
- package/dist/react/index.js.map +1 -1
- package/dist/test.d.ts +2 -2
- package/dist/test.js +2 -2
- package/package.json +31 -11
- package/admin-dist/public/assets/alert-BXjTqrwQ.js +0 -1
- package/admin-dist/public/assets/content-_LXl3pp7.js +0 -1
- package/admin-dist/public/assets/content-types-KjxaXGxY.js +0 -2
- package/admin-dist/public/assets/index-DNGIZHL-.js +0 -1
- package/admin-dist/public/assets/scroll-area-DfIlT0in.js +0 -1
- package/admin-dist/public/assets/select-BD29IXCI.js +0 -1
- package/admin-dist/public/assets/settings-DmMyn_6A.js +0 -1
- package/admin-dist/public/assets/switch-h3Rrnl5i.js +0 -1
- package/admin-dist/public/assets/tabs-imc8h-Dp.js +0 -1
- package/admin-dist/public/assets/taxonomies-dAsrT65H.js +0 -1
- package/admin-dist/public/assets/trash-SAWKZZHv.js +0 -1
- package/admin-dist/public/assets/useBreadcrumbLabel-BECBMCzM.js +0 -1
- package/admin-dist/server/_ssr/_tanstack-start-manifest_v-BwDlABVk.mjs +0 -4
- package/admin-dist/server/_ssr/alert-CVt45UUP.mjs +0 -92
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as r}from"./main-
|
|
1
|
+
import{j as r}from"./main-CXgkZMhe.js";function c({error:e,title:a="Something went wrong",onRetry:t,isRetrying:s=!1,icon:l,className:i=""}){const n=e instanceof Error?e.message:e??"An unexpected error occurred";return r.jsxs("div",{className:`error-state ${i}`,role:"alert","data-testid":"error-state",children:[r.jsx("div",{className:"error-state-icon",children:l??r.jsxs("svg",{width:"48",height:"48",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[r.jsx("path",{d:"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"}),r.jsx("line",{x1:"12",y1:"9",x2:"12",y2:"13"}),r.jsx("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"})]})}),r.jsx("h3",{className:"error-state-title",children:a}),r.jsx("p",{className:"error-state-message",children:n}),t&&r.jsx("button",{type:"button",className:"btn btn-primary",onClick:t,disabled:s,"data-testid":"error-retry-button",children:s?"Retrying...":"Try Again"})]})}function d({error:e,onDismiss:a,onRetry:t,isRetrying:s=!1,variant:l="error",className:i=""}){if(!e)return null;const n=e instanceof Error?e.message:e;return r.jsxs("div",{className:`error-alert error-alert--${l} ${i}`,role:"alert","data-testid":"error-alert",children:[r.jsx("div",{className:"error-alert-icon",children:r.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("circle",{cx:"12",cy:"12",r:"10"}),r.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"12"}),r.jsx("line",{x1:"12",y1:"16",x2:"12.01",y2:"16"})]})}),r.jsx("div",{className:"error-alert-content",children:r.jsx("p",{className:"error-alert-message",children:n})}),r.jsxs("div",{className:"error-alert-actions",children:[t&&r.jsx("button",{type:"button",className:"error-alert-btn error-alert-btn--retry",onClick:t,disabled:s,"data-testid":"error-alert-retry",children:s?"Retrying...":"Retry"}),a&&r.jsx("button",{type:"button",className:"error-alert-btn error-alert-btn--dismiss",onClick:a,"aria-label":"Dismiss error","data-testid":"error-alert-dismiss",children:r.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[r.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),r.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]})}export{c as E,d as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o,u as j,
|
|
1
|
+
import{r as o,u as j,b as N,j as a,P as F,J as T,e as B,C as E,c as M,K as O}from"./main-CXgkZMhe.js";import{C,B as v,X as $,a as D}from"./badge-qPrc4AUM.js";import{C as A,a as G,b as J,c as K,d as Q,e as V,f as X}from"./command-QOmNhlb0.js";import{a as q}from"./CmsEmptyState-CiMQwSQV.js";function aa({selectedTermIds:e,onChange:n,taxonomyId:r,placeholder:b="Filter by tags...",disabled:y=!1,className:k}){const[d,p]=o.useState(!1),[c,w]=o.useState(""),m=j(N.taxonomies.list,{isActive:!0}),i=m?.page??[],_=o.useMemo(()=>r?i.find(s=>s._id===r):null,[r,i]),u=r??i[0]?._id,h=j(N.taxonomies.listTerms,u?{taxonomyId:u,paginationOpts:{numItems:200,cursor:null}}:"skip"),t=h?.page??[],g=o.useMemo(()=>t.filter(s=>e.includes(s._id)),[t,e]),f=o.useMemo(()=>{if(!c.trim())return t;const s=c.toLowerCase();return t.filter(l=>l.name.toLowerCase().includes(s))},[t,c]),z=o.useCallback(s=>{e.includes(s)?n(e.filter(l=>l!==s)):n([...e,s])},[e,n]),S=o.useCallback(()=>{n([]),p(!1)},[n]),L=o.useCallback((s,l)=>{l.stopPropagation(),n(e.filter(R=>R!==s))},[e,n]),x=_?.displayName??i[0]?.displayName??"Tags",P=m===void 0||u&&h===void 0;return i.length===0&&m!==void 0?null:a.jsxs(F,{open:d,onOpenChange:p,children:[a.jsx(T,{asChild:!0,children:a.jsxs(C,{variant:"outline",role:"combobox","aria-expanded":d,disabled:y||P,className:M("h-9 min-w-[140px] justify-between gap-2",e.length>0&&"border-primary/50",k),children:[a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx(B,{className:"size-4 text-muted-foreground"}),e.length===0?a.jsx("span",{className:"text-muted-foreground",children:b}):e.length===1?a.jsx("span",{className:"max-w-[100px] truncate",children:g[0]?.name??"Tag"}):a.jsxs("span",{children:[e.length," tags"]})]}),a.jsxs("div",{className:"flex items-center gap-1",children:[e.length>0&&a.jsx(v,{variant:"secondary",className:"size-5 rounded-full p-0 text-xs",children:e.length}),a.jsx(E,{className:"size-4 text-muted-foreground"})]})]})}),a.jsx(O,{className:"w-[280px] p-0",align:"start",children:a.jsxs(A,{shouldFilter:!1,children:[a.jsx(G,{placeholder:`Search ${x.toLowerCase()}...`,value:c,onValueChange:w}),a.jsx(J,{children:f.length===0?a.jsx(K,{children:t.length===0?`No ${x.toLowerCase()} found`:"No matches"}):a.jsx(Q,{heading:x,children:f.map(s=>a.jsx(H,{term:s,isSelected:e.includes(s._id),onToggle:()=>z(s._id)},s._id))})}),e.length>0&&a.jsxs(a.Fragment,{children:[a.jsx(V,{}),a.jsxs("div",{className:"p-2",children:[a.jsx("div",{className:"mb-2 flex flex-wrap gap-1",children:g.map(s=>a.jsxs(v,{variant:"secondary",className:"gap-1 pr-1",style:s.color?{backgroundColor:s.color,color:"#fff"}:void 0,children:[s.name,a.jsx("button",{type:"button",className:"ml-0.5 rounded-full p-0.5 hover:bg-black/10",onClick:l=>L(s._id,l),"aria-label":`Remove ${s.name}`,children:a.jsx($,{className:"size-3"})})]},s._id))}),a.jsx(C,{variant:"ghost",size:"sm",className:"w-full",onClick:S,children:"Clear all filters"})]})]})]})})]})}function H({term:e,isSelected:n,onToggle:r}){return a.jsxs(X,{onSelect:r,className:"cursor-pointer",children:[a.jsx(q,{checked:n,className:"mr-2","aria-hidden":"true",tabIndex:-1}),e.color&&a.jsx("span",{className:"size-2.5 shrink-0 rounded-full",style:{backgroundColor:e.color}}),a.jsx("span",{className:"flex-1 truncate",children:e.name}),a.jsx("span",{className:"text-xs text-muted-foreground",children:e.usageCount}),n&&a.jsx(D,{className:"ml-1 size-4 text-primary"})]})}export{aa as T};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as ce,
|
|
1
|
+
import{d as ce,A as de,p as ue,r as s,a as me,b as x,u as g,j as e,F as J,G as z,C as he}from"./main-CXgkZMhe.js";import{u as xe}from"./usePermissions-C1JQhfqb.js";import{u as pe}from"./useBreadcrumbLabel-DwZlwvFF.js";import{C as fe}from"./CmsPageHeader-ohOq0luT.js";import{C as ge}from"./CmsToolbar-cEBlCHa3.js";import{C as u}from"./badge-qPrc4AUM.js";import{C as je}from"./CmsStatusBadge-BdNf0V9v.js";import{C as K,I as ye,b as Ce}from"./CmsEmptyState-CiMQwSQV.js";import{T as Ne}from"./TaxonomyFilter-BgE_SR_O.js";import{S as ve,a as be,b as Se,c as Te,d as j,C as ke}from"./select-Co3TZFJb.js";import{P as De}from"./plus-xCFJK0RC.js";import{S as Ee}from"./search-CbCbboeU.js";import"./command-QOmNhlb0.js";const we=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],Ie=ce("arrow-up-down",we);function Qe(){const{contentTypeId:y}=de.useParams(),W=ue(),[C,P]=s.useState("all"),[N,B]=s.useState(""),[X,M]=s.useState(""),[v,Y]=s.useState("updatedAt"),[b,L]=s.useState("desc"),[d,c]=s.useState(0),[n,$]=s.useState([]),S=25,{canCreate:Z,canUpdate:ee,canDelete:te}=xe(),R=me(x.entries.remove),[se,k]=s.useState(!1),[p,D]=s.useState(null),[E,U]=s.useState(!1),[ae,T]=s.useState(null);s.useEffect(()=>{const t=setTimeout(()=>{M(N),c(0)},300);return()=>clearTimeout(t)},[N]);const l=g(x.contentTypes.get,{id:y});pe(`/entries/type/${y}`,l?.displayName);const O=g(x.entries.list,{contentTypeId:y,status:C==="all"?void 0:C,search:X||void 0,paginationOpts:{numItems:250,cursor:null}}),V=O?.page??[],Q=g(x.taxonomies.getEntriesByTerm,n[0]?{termId:n[0]}:"skip"),q=g(x.taxonomies.getEntriesByTerm,n[1]?{termId:n[1]}:"skip"),G=g(x.taxonomies.getEntriesByTerm,n[2]?{termId:n[2]}:"skip"),w=s.useMemo(()=>{if(n.length===0)return null;const t=new Set,a=[Q,q,G];for(let r=0;r<n.length&&r<3;r++){const i=a[r];if(i?.page)for(const f of i.page)t.add(f._id)}return t},[n,Q,q,G]),m=s.useCallback(t=>{const a=l?.titleField??"title",r=t.data[a];return typeof r=="string"&&r?r:"Untitled"},[l?.titleField]),o=s.useMemo(()=>{let t=[...V];return w!==null&&(t=t.filter(a=>w.has(a._id))),t.sort((a,r)=>{let i=0;switch(v){case"title":{const f=m(a).toLowerCase(),_=m(r).toLowerCase();i=f.localeCompare(_);break}case"status":i=a.status.localeCompare(r.status);break;case"updatedAt":{const f=a.lastPublishedAt??a._creationTime??0,_=r.lastPublishedAt??r._creationTime??0;i=f-_;break}case"createdAt":i=(a._creationTime??0)-(r._creationTime??0);break;default:i=0}return b==="desc"?-i:i}),t},[V,v,b,m,w]),H=s.useMemo(()=>{const t=d*S;return o.slice(t,t+S)},[o,d,S]),h=Math.ceil(o.length/S),re=t=>new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}),I=t=>{v===t?L(b==="asc"?"desc":"asc"):(Y(t),L("desc"))},A=t=>v!==t?e.jsx(Ie,{className:"size-3.5 text-muted-foreground/50"}):b==="asc"?e.jsx(ke,{className:"size-3.5"}):e.jsx(he,{className:"size-3.5"}),ne=s.useCallback(t=>{const a=m(t);D({_id:t._id,title:a}),T(null),k(!0)},[m]),le=s.useCallback(async()=>{if(p){U(!0),T(null);try{await R({id:p._id,hardDelete:!1}),k(!1),D(null)}catch(t){const a=t instanceof Error?t.message:"Failed to delete entry";T(a)}finally{U(!1)}}},[p,R]),ie=s.useCallback(t=>{!t&&!E&&(k(!1),D(null),T(null))},[E]),oe=s.useCallback(()=>{B(""),M(""),P("all"),$([]),c(0)},[]);if(l===void 0||O===void 0)return e.jsx("div",{className:"space-y-6 p-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12",children:[e.jsx("div",{className:"size-8 animate-spin rounded-full border-2 border-muted border-t-primary"}),e.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:"Loading entries..."})]})});if(l===null)return e.jsx("div",{className:"space-y-6 p-6",children:e.jsx(K,{icon:e.jsx(J,{className:"size-6"}),title:"Content Type Not Found",description:"The content type you're looking for doesn't exist or has been deleted.",action:{label:"Back to Content Types",onClick:()=>W({to:"/content-types"})}})});const F=N||C!=="all"||n.length>0;return e.jsxs("div",{className:"space-y-6 p-6",children:[e.jsx(fe,{title:l.displayName,description:l.description,actions:Z("contentEntries")&&e.jsx(u,{asChild:!0,children:e.jsxs(z,{to:"/entries/new/$contentTypeId",params:{contentTypeId:y},children:[e.jsx(De,{className:"size-4"}),"Create ",l.displayName]})})}),e.jsx(ge,{left:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Ee,{className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(ye,{type:"search",placeholder:"Search entries...",value:N,onChange:t=>B(t.target.value),className:"w-64 pl-9"})]}),e.jsxs(ve,{value:C,onValueChange:t=>{P(t),c(0)},children:[e.jsx(be,{className:"w-36",children:e.jsx(Se,{placeholder:"All Statuses"})}),e.jsxs(Te,{children:[e.jsx(j,{value:"all",children:"All Statuses"}),e.jsx(j,{value:"draft",children:"Draft"}),e.jsx(j,{value:"published",children:"Published"}),e.jsx(j,{value:"scheduled",children:"Scheduled"}),e.jsx(j,{value:"archived",children:"Archived"})]})]}),e.jsx(Ne,{selectedTermIds:n,onChange:t=>{$(t),c(0)},placeholder:"Tags"})]}),right:e.jsxs("span",{className:"text-sm text-muted-foreground",children:[o.length," ",o.length===1?"entry":"entries"]})}),o.length===0?e.jsx(K,{icon:e.jsx(J,{className:"size-6"}),title:F?"No matching entries":`No ${l.displayName} entries yet`,description:F?"Try adjusting your search or filter criteria.":`Click "Create ${l.displayName}" to add your first entry.`,action:F?{label:"Clear Filters",onClick:oe,variant:"secondary"}:void 0}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"rounded-lg border bg-card",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"p-3 text-left",children:e.jsxs("button",{className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground",onClick:()=>I("title"),children:["Title",A("title")]})}),e.jsx("th",{className:"p-3 text-left",children:e.jsxs("button",{className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground",onClick:()=>I("status"),children:["Status",A("status")]})}),e.jsx("th",{className:"p-3 text-left",children:e.jsxs("button",{className:"flex items-center gap-1.5 text-sm font-medium text-muted-foreground hover:text-foreground",onClick:()=>I("updatedAt"),children:["Updated",A("updatedAt")]})}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Actions"})]})}),e.jsx("tbody",{children:H.map(t=>e.jsxs("tr",{className:"border-b last:border-0 transition-colors hover:bg-muted/50",children:[e.jsxs("td",{className:"p-3",children:[e.jsx(z,{to:"/entries/$entryId",params:{entryId:t._id},className:"font-medium text-foreground hover:text-primary hover:underline",children:m(t)}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t.slug})]}),e.jsx("td",{className:"p-3",children:e.jsx(je,{status:t.status})}),e.jsx("td",{className:"p-3 text-sm text-muted-foreground",children:re(t.lastPublishedAt??t._creationTime)}),e.jsx("td",{className:"p-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(u,{variant:"outline",size:"sm",asChild:!0,children:e.jsx(z,{to:"/entries/$entryId",params:{entryId:t._id},children:ee("contentEntries")?"Edit":"View"})}),te("contentEntries")&&e.jsx(u,{variant:"danger",size:"sm",onClick:()=>ne(t),"data-testid":`delete-entry-${t._id}`,children:"Delete"})]})})]},t._id))})]})}),h>1&&e.jsxs("div",{className:"flex items-center justify-center gap-2",children:[e.jsx(u,{variant:"outline",size:"sm",onClick:()=>c(0),disabled:d===0,children:"First"}),e.jsx(u,{variant:"outline",size:"sm",onClick:()=>c(t=>Math.max(0,t-1)),disabled:d===0,children:"Previous"}),e.jsxs("span",{className:"px-3 text-sm text-muted-foreground",children:["Page ",d+1," of ",h]}),e.jsx(u,{variant:"outline",size:"sm",onClick:()=>c(t=>Math.min(h-1,t+1)),disabled:d>=h-1,children:"Next"}),e.jsx(u,{variant:"outline",size:"sm",onClick:()=>c(h-1),disabled:d>=h-1,children:"Last"})]})]}),o.length>0&&e.jsxs("p",{className:"text-center text-sm text-muted-foreground",children:["Showing ",H.length," of ",o.length," ",o.length===1?"entry":"entries"]}),e.jsx(Ce,{open:se,onOpenChange:ie,title:"Delete Entry",description:p?`Are you sure you want to delete "${p.title}"? It will be moved to the trash and can be restored within the retention period.`:"Are you sure you want to delete this entry?",confirmLabel:"Delete",variant:"danger",onConfirm:le,isLoading:E,error:ae})]})}export{Qe as component};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{z as f,p as j,u as a,b as c,j as t,F as l}from"./main-CXgkZMhe.js";import{C as h}from"./ContentEntryEditor-BY5ypfUs.js";import{u as v}from"./usePermissions-C1JQhfqb.js";import{u as N}from"./useBreadcrumbLabel-DwZlwvFF.js";import{C as d}from"./CmsEmptyState-CiMQwSQV.js";import"./label-DCsUdvFh.js";import"./switch-CfavASmR.js";import"./badge-qPrc4AUM.js";import"./tabs-CN5s5u2W.js";import"./textarea-BJ0XFZpT.js";import"./list-DtCsXj8-.js";import"./select-Co3TZFJb.js";import"./search-CbCbboeU.js";import"./command-QOmNhlb0.js";import"./CmsStatusBadge-BdNf0V9v.js";import"./plus-xCFJK0RC.js";import"./link-2-Czw1N61H.js";import"./scroll-area-B-yrE66a.js";import"./triangle-alert-BZRcqsUg.js";import"./circle-check-big-Dgozy3vV.js";function A(){const{entryId:i}=f.useParams(),o=j(),{canDelete:p}=v(),e=a(c.entries.get,{id:i}),n=a(c.contentTypes.get,e?{id:e.contentTypeId}:"skip"),m=()=>{if(!e||!n)return;const r=n.titleField??"title",s=e.data[r];return typeof s=="string"&&s?s:"Untitled"};if(N(`/entries/${i}`,m()),e===void 0||e&&n===void 0)return t.jsx("div",{className:"space-y-6 p-6",children:t.jsxs("div",{className:"flex flex-col items-center justify-center py-12",children:[t.jsx("div",{className:"size-8 animate-spin rounded-full border-2 border-muted border-t-primary"}),t.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:"Loading entry..."})]})});if(e===null)return t.jsx("div",{className:"space-y-6 p-6",children:t.jsx(d,{icon:t.jsx(l,{className:"size-6"}),title:"Entry Not Found",description:"The content entry you're looking for doesn't exist or has been deleted.",action:{label:"Back to Content",onClick:()=>o({to:"/content-types"})}})});if(n===null)return t.jsx("div",{className:"space-y-6 p-6",children:t.jsx(d,{icon:t.jsx(l,{className:"size-6"}),title:"Content Type Not Found",description:"The content type for this entry doesn't exist or has been deleted.",action:{label:"Back to Content",onClick:()=>o({to:"/content-types"})}})});const u=r=>{},y=()=>{o({to:"/content"})},x=()=>{o({to:"/content"})};return t.jsx("div",{className:"space-y-6 p-6",children:t.jsx(h,{contentType:n,entry:e,onSave:u,onCancel:y,onDelete:x,canDelete:p("contentEntries")})})}export{A as component};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as r,c as e,i}from"./main-CXgkZMhe.js";const d=i("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"text-destructive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90"}},defaultVariants:{variant:"default"}});function c({className:t,variant:a,...s}){return r.jsx("div",{"data-slot":"alert",role:"alert",className:e(d({variant:a}),t),...s})}function n({className:t,...a}){return r.jsx("div",{"data-slot":"alert-description",className:e("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",t),...a})}export{c as A,n as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as f,j as t,B as d,c as i,r as l,
|
|
1
|
+
import{d as f,j as t,B as d,c as i,r as l,au as m,i as p}from"./main-CXgkZMhe.js";const b=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],C=f("check",b);const h=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],M=f("x",h),v={fast:"duration-100 ease-out"},x={primary:"default",secondary:"secondary",danger:"destructive",ghost:"ghost",outline:"outline",link:"link",success:"default",warning:"default"},y={success:"bg-emerald-600 text-white hover:bg-emerald-700 focus-visible:ring-emerald-500",warning:"bg-amber-500 text-white hover:bg-amber-600 focus-visible:ring-amber-500"},w=()=>t.jsxs("svg",{className:"size-4 animate-spin",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[t.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),t.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]});function N({variant:r="primary",loading:e,disabled:s,children:a,className:n,asChild:g,...o}){const c=x[r],u=y[r];return g?t.jsx(d,{variant:c,disabled:s||e,className:i(v.fast,u,n),asChild:!0,...o,children:a}):t.jsxs(d,{variant:c,disabled:s||e,className:i(v.fast,u,n),...o,children:[e&&t.jsx(w,{}),a]})}function B(r){const e=l.useRef({value:r,previous:r});return l.useMemo(()=>(e.current.value!==r&&(e.current.previous=e.current.value,e.current.value=r),e.current.previous),[r])}function V(r,[e,s]){return Math.min(s,Math.max(e,r))}const k=p("inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function z({className:r,variant:e,asChild:s=!1,...a}){const n=s?m:"span";return t.jsx(n,{"data-slot":"badge",className:i(k({variant:e}),r),...a})}export{z as B,N as C,M as X,C as a,V as c,B as u};
|
package/admin-dist/public/assets/{circle-check-big-CF_pR17r.js → circle-check-big-Dgozy3vV.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as c}from"./main-
|
|
1
|
+
import{d as c}from"./main-CXgkZMhe.js";const e=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],t=c("circle-check-big",e);export{t as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l,a8 as L,a0 as A,ad as z,j as C,c as P}from"./main-CKj5yfEi.js";import{R as Se,P as Ce,O as Ie,h as Re}from"./CmsEmptyState-CRswfTzk.js";import{S as Ae}from"./search-MuAUDJKR.js";var fe=1,je=.9,Me=.8,$e=.17,ee=.1,te=.999,De=.9999,Ne=.99,Fe=/[\\\/_+.#"@\[\(\{&]/,Ke=/[\\\/_+.#"@\[\(\{&]/g,Le=/[\s-]/,he=/[\s-]/g;function ne(e,n,r,m,u,c,d){if(c===n.length)return u===e.length?fe:Ne;var f=`${u},${c}`;if(d[f]!==void 0)return d[f];for(var b=m.charAt(c),o=r.indexOf(b,u),v=0,h,S,w,I;o>=0;)h=ne(e,n,r,m,o+1,c+1,d),h>v&&(o===u?h*=fe:Fe.test(e.charAt(o-1))?(h*=Me,w=e.slice(u,o-1).match(Ke),w&&u>0&&(h*=Math.pow(te,w.length))):Le.test(e.charAt(o-1))?(h*=je,I=e.slice(u,o-1).match(he),I&&u>0&&(h*=Math.pow(te,I.length))):(h*=$e,u>0&&(h*=Math.pow(te,o-u))),e.charAt(o)!==n.charAt(c)&&(h*=De)),(h<ee&&r.charAt(o-1)===m.charAt(c+1)||m.charAt(c+1)===m.charAt(c)&&r.charAt(o-1)!==m.charAt(c))&&(S=ne(e,n,r,m,o+1,c+2,d),S*ee>h&&(h=S*ee)),h>v&&(v=h),o=r.indexOf(b,o+1);return d[f]=v,v}function pe(e){return e.toLowerCase().replace(he," ")}function Pe(e,n,r){return e=r&&r.length>0?`${e+" "+r.join(" ")}`:e,ne(e,n,pe(e),pe(n),0,0,{})}var V='[cmdk-group=""]',re='[cmdk-group-items=""]',qe='[cmdk-group-heading=""]',ge='[cmdk-item=""]',ve=`${ge}:not([aria-disabled="true"])`,le="cmdk-item-select",F="data-value",Ve=(e,n,r)=>Pe(e,n,r),be=l.createContext(void 0),O=()=>l.useContext(be),xe=l.createContext(void 0),ae=()=>l.useContext(xe),ye=l.createContext(void 0),we=l.forwardRef((e,n)=>{let r=K(()=>{var t,i;return{search:"",value:(i=(t=e.value)!=null?t:e.defaultValue)!=null?i:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),m=K(()=>new Set),u=K(()=>new Map),c=K(()=>new Map),d=K(()=>new Set),f=ke(e),{label:b,children:o,value:v,onValueChange:h,filter:S,shouldFilter:w,loop:I,disablePointerSelection:H=!1,vimBindings:j=!0,...B}=e,T=L(),ue=L(),W=L(),M=l.useRef(null),x=Xe();$(()=>{if(v!==void 0){let t=v.trim();r.current.value=t,k.emit()}},[v]),$(()=>{x(6,ie)},[]);let k=l.useMemo(()=>({subscribe:t=>(d.current.add(t),()=>d.current.delete(t)),snapshot:()=>r.current,setState:(t,i,s)=>{var a,p,g,E;if(!Object.is(r.current[t],i)){if(r.current[t]=i,t==="search")Y(),J(),x(1,X);else if(t==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let y=document.getElementById(W);y?y.focus():(a=document.getElementById(T))==null||a.focus()}if(x(7,()=>{var y;r.current.selectedItemId=(y=N())==null?void 0:y.id,k.emit()}),s||x(5,ie),((p=f.current)==null?void 0:p.value)!==void 0){let y=i??"";(E=(g=f.current).onValueChange)==null||E.call(g,y);return}}k.emit()}},emit:()=>{d.current.forEach(t=>t())}}),[]),_=l.useMemo(()=>({value:(t,i,s)=>{var a;i!==((a=c.current.get(t))==null?void 0:a.value)&&(c.current.set(t,{value:i,keywords:s}),r.current.filtered.items.set(t,oe(i,s)),x(2,()=>{J(),k.emit()}))},item:(t,i)=>(m.current.add(t),i&&(u.current.has(i)?u.current.get(i).add(t):u.current.set(i,new Set([t]))),x(3,()=>{Y(),J(),r.current.value||X(),k.emit()}),()=>{c.current.delete(t),m.current.delete(t),r.current.filtered.items.delete(t);let s=N();x(4,()=>{Y(),s?.getAttribute("id")===t&&X(),k.emit()})}),group:t=>(u.current.has(t)||u.current.set(t,new Set),()=>{c.current.delete(t),u.current.delete(t)}),filter:()=>f.current.shouldFilter,label:b||e["aria-label"],getDisablePointerSelection:()=>f.current.disablePointerSelection,listId:T,inputId:W,labelId:ue,listInnerRef:M}),[]);function oe(t,i){var s,a;let p=(a=(s=f.current)==null?void 0:s.filter)!=null?a:Ve;return t?p(t,r.current.search,i):0}function J(){if(!r.current.search||f.current.shouldFilter===!1)return;let t=r.current.filtered.items,i=[];r.current.filtered.groups.forEach(a=>{let p=u.current.get(a),g=0;p.forEach(E=>{let y=t.get(E);g=Math.max(y,g)}),i.push([a,g])});let s=M.current;q().sort((a,p)=>{var g,E;let y=a.getAttribute("id"),G=p.getAttribute("id");return((g=t.get(G))!=null?g:0)-((E=t.get(y))!=null?E:0)}).forEach(a=>{let p=a.closest(re);p?p.appendChild(a.parentElement===p?a:a.closest(`${re} > *`)):s.appendChild(a.parentElement===s?a:a.closest(`${re} > *`))}),i.sort((a,p)=>p[1]-a[1]).forEach(a=>{var p;let g=(p=M.current)==null?void 0:p.querySelector(`${V}[${F}="${encodeURIComponent(a[0])}"]`);g?.parentElement.appendChild(g)})}function X(){let t=q().find(s=>s.getAttribute("aria-disabled")!=="true"),i=t?.getAttribute(F);k.setState("value",i||void 0)}function Y(){var t,i,s,a;if(!r.current.search||f.current.shouldFilter===!1){r.current.filtered.count=m.current.size;return}r.current.filtered.groups=new Set;let p=0;for(let g of m.current){let E=(i=(t=c.current.get(g))==null?void 0:t.value)!=null?i:"",y=(a=(s=c.current.get(g))==null?void 0:s.keywords)!=null?a:[],G=oe(E,y);r.current.filtered.items.set(g,G),G>0&&p++}for(let[g,E]of u.current)for(let y of E)if(r.current.filtered.items.get(y)>0){r.current.filtered.groups.add(g);break}r.current.filtered.count=p}function ie(){var t,i,s;let a=N();a&&(((t=a.parentElement)==null?void 0:t.firstChild)===a&&((s=(i=a.closest(V))==null?void 0:i.querySelector(qe))==null||s.scrollIntoView({block:"nearest"})),a.scrollIntoView({block:"nearest"}))}function N(){var t;return(t=M.current)==null?void 0:t.querySelector(`${ge}[aria-selected="true"]`)}function q(){var t;return Array.from(((t=M.current)==null?void 0:t.querySelectorAll(ve))||[])}function Q(t){let i=q()[t];i&&k.setState("value",i.getAttribute(F))}function Z(t){var i;let s=N(),a=q(),p=a.findIndex(E=>E===s),g=a[p+t];(i=f.current)!=null&&i.loop&&(g=p+t<0?a[a.length-1]:p+t===a.length?a[0]:a[p+t]),g&&k.setState("value",g.getAttribute(F))}function ce(t){let i=N(),s=i?.closest(V),a;for(;s&&!a;)s=t>0?_e(s,V):Je(s,V),a=s?.querySelector(ve);a?k.setState("value",a.getAttribute(F)):Z(t)}let de=()=>Q(q().length-1),se=t=>{t.preventDefault(),t.metaKey?de():t.altKey?ce(1):Z(1)},me=t=>{t.preventDefault(),t.metaKey?Q(0):t.altKey?ce(-1):Z(-1)};return l.createElement(A.div,{ref:n,tabIndex:-1,...B,"cmdk-root":"",onKeyDown:t=>{var i;(i=B.onKeyDown)==null||i.call(B,t);let s=t.nativeEvent.isComposing||t.keyCode===229;if(!(t.defaultPrevented||s))switch(t.key){case"n":case"j":{j&&t.ctrlKey&&se(t);break}case"ArrowDown":{se(t);break}case"p":case"k":{j&&t.ctrlKey&&me(t);break}case"ArrowUp":{me(t);break}case"Home":{t.preventDefault(),Q(0);break}case"End":{t.preventDefault(),de();break}case"Enter":{t.preventDefault();let a=N();if(a){let p=new Event(le);a.dispatchEvent(p)}}}}},l.createElement("label",{"cmdk-label":"",htmlFor:_.inputId,id:_.labelId,style:Qe},b),U(e,t=>l.createElement(xe.Provider,{value:k},l.createElement(be.Provider,{value:_},t))))}),ze=l.forwardRef((e,n)=>{var r,m;let u=L(),c=l.useRef(null),d=l.useContext(ye),f=O(),b=ke(e),o=(m=(r=b.current)==null?void 0:r.forceMount)!=null?m:d?.forceMount;$(()=>{if(!o)return f.item(u,d?.id)},[o]);let v=Ee(u,c,[e.value,e.children,c],e.keywords),h=ae(),S=R(x=>x.value&&x.value===v.current),w=R(x=>o||f.filter()===!1?!0:x.search?x.filtered.items.get(u)>0:!0);l.useEffect(()=>{let x=c.current;if(!(!x||e.disabled))return x.addEventListener(le,I),()=>x.removeEventListener(le,I)},[w,e.onSelect,e.disabled]);function I(){var x,k;H(),(k=(x=b.current).onSelect)==null||k.call(x,v.current)}function H(){h.setState("value",v.current,!0)}if(!w)return null;let{disabled:j,value:B,onSelect:T,forceMount:ue,keywords:W,...M}=e;return l.createElement(A.div,{ref:z(c,n),...M,id:u,"cmdk-item":"",role:"option","aria-disabled":!!j,"aria-selected":!!S,"data-disabled":!!j,"data-selected":!!S,onPointerMove:j||f.getDisablePointerSelection()?void 0:H,onClick:j?void 0:I},e.children)}),Oe=l.forwardRef((e,n)=>{let{heading:r,children:m,forceMount:u,...c}=e,d=L(),f=l.useRef(null),b=l.useRef(null),o=L(),v=O(),h=R(w=>u||v.filter()===!1?!0:w.search?w.filtered.groups.has(d):!0);$(()=>v.group(d),[]),Ee(d,f,[e.value,e.heading,b]);let S=l.useMemo(()=>({id:d,forceMount:u}),[u]);return l.createElement(A.div,{ref:z(f,n),...c,"cmdk-group":"",role:"presentation",hidden:h?void 0:!0},r&&l.createElement("div",{ref:b,"cmdk-group-heading":"","aria-hidden":!0,id:o},r),U(e,w=>l.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?o:void 0},l.createElement(ye.Provider,{value:S},w))))}),Be=l.forwardRef((e,n)=>{let{alwaysRender:r,...m}=e,u=l.useRef(null),c=R(d=>!d.search);return!r&&!c?null:l.createElement(A.div,{ref:z(u,n),...m,"cmdk-separator":"",role:"separator"})}),Ge=l.forwardRef((e,n)=>{let{onValueChange:r,...m}=e,u=e.value!=null,c=ae(),d=R(o=>o.search),f=R(o=>o.selectedItemId),b=O();return l.useEffect(()=>{e.value!=null&&c.setState("search",e.value)},[e.value]),l.createElement(A.input,{ref:n,...m,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":b.listId,"aria-labelledby":b.labelId,"aria-activedescendant":f,id:b.inputId,type:"text",value:u?e.value:d,onChange:o=>{u||c.setState("search",o.target.value),r?.(o.target.value)}})}),Ue=l.forwardRef((e,n)=>{let{children:r,label:m="Suggestions",...u}=e,c=l.useRef(null),d=l.useRef(null),f=R(o=>o.selectedItemId),b=O();return l.useEffect(()=>{if(d.current&&c.current){let o=d.current,v=c.current,h,S=new ResizeObserver(()=>{h=requestAnimationFrame(()=>{let w=o.offsetHeight;v.style.setProperty("--cmdk-list-height",w.toFixed(1)+"px")})});return S.observe(o),()=>{cancelAnimationFrame(h),S.unobserve(o)}}},[]),l.createElement(A.div,{ref:z(c,n),...u,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":f,"aria-label":m,id:b.listId},U(e,o=>l.createElement("div",{ref:z(d,b.listInnerRef),"cmdk-list-sizer":""},o)))}),He=l.forwardRef((e,n)=>{let{open:r,onOpenChange:m,overlayClassName:u,contentClassName:c,container:d,...f}=e;return l.createElement(Se,{open:r,onOpenChange:m},l.createElement(Ce,{container:d},l.createElement(Ie,{"cmdk-overlay":"",className:u}),l.createElement(Re,{"aria-label":e.label,"cmdk-dialog":"",className:c},l.createElement(we,{ref:n,...f}))))}),Te=l.forwardRef((e,n)=>R(r=>r.filtered.count===0)?l.createElement(A.div,{ref:n,...e,"cmdk-empty":"",role:"presentation"}):null),We=l.forwardRef((e,n)=>{let{progress:r,children:m,label:u="Loading...",...c}=e;return l.createElement(A.div,{ref:n,...c,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":u},U(e,d=>l.createElement("div",{"aria-hidden":!0},d)))}),D=Object.assign(we,{List:Ue,Item:ze,Input:Ge,Group:Oe,Separator:Be,Dialog:He,Empty:Te,Loading:We});function _e(e,n){let r=e.nextElementSibling;for(;r;){if(r.matches(n))return r;r=r.nextElementSibling}}function Je(e,n){let r=e.previousElementSibling;for(;r;){if(r.matches(n))return r;r=r.previousElementSibling}}function ke(e){let n=l.useRef(e);return $(()=>{n.current=e}),n}var $=typeof window>"u"?l.useEffect:l.useLayoutEffect;function K(e){let n=l.useRef();return n.current===void 0&&(n.current=e()),n}function R(e){let n=ae(),r=()=>e(n.snapshot());return l.useSyncExternalStore(n.subscribe,r,r)}function Ee(e,n,r,m=[]){let u=l.useRef(),c=O();return $(()=>{var d;let f=(()=>{var o;for(let v of r){if(typeof v=="string")return v.trim();if(typeof v=="object"&&"current"in v)return v.current?(o=v.current.textContent)==null?void 0:o.trim():u.current}})(),b=m.map(o=>o.trim());c.value(e,f,b),(d=n.current)==null||d.setAttribute(F,f),u.current=f}),u}var Xe=()=>{let[e,n]=l.useState(),r=K(()=>new Map);return $(()=>{r.current.forEach(m=>m()),r.current=new Map},[e]),(m,u)=>{r.current.set(m,u),n({})}};function Ye(e){let n=e.type;return typeof n=="function"?n(e.props):"render"in n?n.render(e.props):e}function U({asChild:e,children:n},r){return e&&l.isValidElement(n)?l.cloneElement(Ye(n),{ref:n.ref},r(n.props.children)):r(n)}var Qe={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function rt({className:e,...n}){return C.jsx(D,{"data-slot":"command",className:P("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...n})}function nt({className:e,...n}){return C.jsxs("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[C.jsx(Ae,{className:"size-4 shrink-0 opacity-50"}),C.jsx(D.Input,{"data-slot":"command-input",className:P("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e),...n})]})}function lt({className:e,...n}){return C.jsx(D.List,{"data-slot":"command-list",className:P("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...n})}function at({...e}){return C.jsx(D.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}function ut({className:e,...n}){return C.jsx(D.Group,{"data-slot":"command-group",className:P("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",e),...n})}function ot({className:e,...n}){return C.jsx(D.Separator,{"data-slot":"command-separator",className:P("bg-border -mx-1 h-px",e),...n})}function it({className:e,...n}){return C.jsx(D.Item,{"data-slot":"command-item",className:P("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...n})}export{rt as C,nt as a,lt as b,at as c,ut as d,ot as e,it as f};
|
|
1
|
+
import{r as l,aa as L,a2 as A,af as z,j as C,c as P}from"./main-CXgkZMhe.js";import{R as Se,P as Ce,O as Ie,h as Re}from"./CmsEmptyState-CiMQwSQV.js";import{S as Ae}from"./search-CbCbboeU.js";var me=1,je=.9,Me=.8,$e=.17,ee=.1,te=.999,De=.9999,Ne=.99,Fe=/[\\\/_+.#"@\[\(\{&]/,Ke=/[\\\/_+.#"@\[\(\{&]/g,Le=/[\s-]/,he=/[\s-]/g;function ne(e,n,r,f,u,c,d){if(c===n.length)return u===e.length?me:Ne;var m=`${u},${c}`;if(d[m]!==void 0)return d[m];for(var b=f.charAt(c),o=r.indexOf(b,u),v=0,h,S,w,I;o>=0;)h=ne(e,n,r,f,o+1,c+1,d),h>v&&(o===u?h*=me:Fe.test(e.charAt(o-1))?(h*=Me,w=e.slice(u,o-1).match(Ke),w&&u>0&&(h*=Math.pow(te,w.length))):Le.test(e.charAt(o-1))?(h*=je,I=e.slice(u,o-1).match(he),I&&u>0&&(h*=Math.pow(te,I.length))):(h*=$e,u>0&&(h*=Math.pow(te,o-u))),e.charAt(o)!==n.charAt(c)&&(h*=De)),(h<ee&&r.charAt(o-1)===f.charAt(c+1)||f.charAt(c+1)===f.charAt(c)&&r.charAt(o-1)!==f.charAt(c))&&(S=ne(e,n,r,f,o+1,c+2,d),S*ee>h&&(h=S*ee)),h>v&&(v=h),o=r.indexOf(b,o+1);return d[m]=v,v}function pe(e){return e.toLowerCase().replace(he," ")}function Pe(e,n,r){return e=r&&r.length>0?`${e+" "+r.join(" ")}`:e,ne(e,n,pe(e),pe(n),0,0,{})}var V='[cmdk-group=""]',re='[cmdk-group-items=""]',qe='[cmdk-group-heading=""]',ge='[cmdk-item=""]',ve=`${ge}:not([aria-disabled="true"])`,le="cmdk-item-select",F="data-value",Ve=(e,n,r)=>Pe(e,n,r),be=l.createContext(void 0),O=()=>l.useContext(be),xe=l.createContext(void 0),ae=()=>l.useContext(xe),ye=l.createContext(void 0),we=l.forwardRef((e,n)=>{let r=K(()=>{var t,i;return{search:"",value:(i=(t=e.value)!=null?t:e.defaultValue)!=null?i:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),f=K(()=>new Set),u=K(()=>new Map),c=K(()=>new Map),d=K(()=>new Set),m=ke(e),{label:b,children:o,value:v,onValueChange:h,filter:S,shouldFilter:w,loop:I,disablePointerSelection:H=!1,vimBindings:j=!0,...B}=e,T=L(),ue=L(),W=L(),M=l.useRef(null),x=Xe();$(()=>{if(v!==void 0){let t=v.trim();r.current.value=t,k.emit()}},[v]),$(()=>{x(6,ie)},[]);let k=l.useMemo(()=>({subscribe:t=>(d.current.add(t),()=>d.current.delete(t)),snapshot:()=>r.current,setState:(t,i,s)=>{var a,p,g,E;if(!Object.is(r.current[t],i)){if(r.current[t]=i,t==="search")Y(),J(),x(1,X);else if(t==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let y=document.getElementById(W);y?y.focus():(a=document.getElementById(T))==null||a.focus()}if(x(7,()=>{var y;r.current.selectedItemId=(y=N())==null?void 0:y.id,k.emit()}),s||x(5,ie),((p=m.current)==null?void 0:p.value)!==void 0){let y=i??"";(E=(g=m.current).onValueChange)==null||E.call(g,y);return}}k.emit()}},emit:()=>{d.current.forEach(t=>t())}}),[]),_=l.useMemo(()=>({value:(t,i,s)=>{var a;i!==((a=c.current.get(t))==null?void 0:a.value)&&(c.current.set(t,{value:i,keywords:s}),r.current.filtered.items.set(t,oe(i,s)),x(2,()=>{J(),k.emit()}))},item:(t,i)=>(f.current.add(t),i&&(u.current.has(i)?u.current.get(i).add(t):u.current.set(i,new Set([t]))),x(3,()=>{Y(),J(),r.current.value||X(),k.emit()}),()=>{c.current.delete(t),f.current.delete(t),r.current.filtered.items.delete(t);let s=N();x(4,()=>{Y(),s?.getAttribute("id")===t&&X(),k.emit()})}),group:t=>(u.current.has(t)||u.current.set(t,new Set),()=>{c.current.delete(t),u.current.delete(t)}),filter:()=>m.current.shouldFilter,label:b||e["aria-label"],getDisablePointerSelection:()=>m.current.disablePointerSelection,listId:T,inputId:W,labelId:ue,listInnerRef:M}),[]);function oe(t,i){var s,a;let p=(a=(s=m.current)==null?void 0:s.filter)!=null?a:Ve;return t?p(t,r.current.search,i):0}function J(){if(!r.current.search||m.current.shouldFilter===!1)return;let t=r.current.filtered.items,i=[];r.current.filtered.groups.forEach(a=>{let p=u.current.get(a),g=0;p.forEach(E=>{let y=t.get(E);g=Math.max(y,g)}),i.push([a,g])});let s=M.current;q().sort((a,p)=>{var g,E;let y=a.getAttribute("id"),G=p.getAttribute("id");return((g=t.get(G))!=null?g:0)-((E=t.get(y))!=null?E:0)}).forEach(a=>{let p=a.closest(re);p?p.appendChild(a.parentElement===p?a:a.closest(`${re} > *`)):s.appendChild(a.parentElement===s?a:a.closest(`${re} > *`))}),i.sort((a,p)=>p[1]-a[1]).forEach(a=>{var p;let g=(p=M.current)==null?void 0:p.querySelector(`${V}[${F}="${encodeURIComponent(a[0])}"]`);g?.parentElement.appendChild(g)})}function X(){let t=q().find(s=>s.getAttribute("aria-disabled")!=="true"),i=t?.getAttribute(F);k.setState("value",i||void 0)}function Y(){var t,i,s,a;if(!r.current.search||m.current.shouldFilter===!1){r.current.filtered.count=f.current.size;return}r.current.filtered.groups=new Set;let p=0;for(let g of f.current){let E=(i=(t=c.current.get(g))==null?void 0:t.value)!=null?i:"",y=(a=(s=c.current.get(g))==null?void 0:s.keywords)!=null?a:[],G=oe(E,y);r.current.filtered.items.set(g,G),G>0&&p++}for(let[g,E]of u.current)for(let y of E)if(r.current.filtered.items.get(y)>0){r.current.filtered.groups.add(g);break}r.current.filtered.count=p}function ie(){var t,i,s;let a=N();a&&(((t=a.parentElement)==null?void 0:t.firstChild)===a&&((s=(i=a.closest(V))==null?void 0:i.querySelector(qe))==null||s.scrollIntoView({block:"nearest"})),a.scrollIntoView({block:"nearest"}))}function N(){var t;return(t=M.current)==null?void 0:t.querySelector(`${ge}[aria-selected="true"]`)}function q(){var t;return Array.from(((t=M.current)==null?void 0:t.querySelectorAll(ve))||[])}function Q(t){let i=q()[t];i&&k.setState("value",i.getAttribute(F))}function Z(t){var i;let s=N(),a=q(),p=a.findIndex(E=>E===s),g=a[p+t];(i=m.current)!=null&&i.loop&&(g=p+t<0?a[a.length-1]:p+t===a.length?a[0]:a[p+t]),g&&k.setState("value",g.getAttribute(F))}function ce(t){let i=N(),s=i?.closest(V),a;for(;s&&!a;)s=t>0?_e(s,V):Je(s,V),a=s?.querySelector(ve);a?k.setState("value",a.getAttribute(F)):Z(t)}let de=()=>Q(q().length-1),se=t=>{t.preventDefault(),t.metaKey?de():t.altKey?ce(1):Z(1)},fe=t=>{t.preventDefault(),t.metaKey?Q(0):t.altKey?ce(-1):Z(-1)};return l.createElement(A.div,{ref:n,tabIndex:-1,...B,"cmdk-root":"",onKeyDown:t=>{var i;(i=B.onKeyDown)==null||i.call(B,t);let s=t.nativeEvent.isComposing||t.keyCode===229;if(!(t.defaultPrevented||s))switch(t.key){case"n":case"j":{j&&t.ctrlKey&&se(t);break}case"ArrowDown":{se(t);break}case"p":case"k":{j&&t.ctrlKey&&fe(t);break}case"ArrowUp":{fe(t);break}case"Home":{t.preventDefault(),Q(0);break}case"End":{t.preventDefault(),de();break}case"Enter":{t.preventDefault();let a=N();if(a){let p=new Event(le);a.dispatchEvent(p)}}}}},l.createElement("label",{"cmdk-label":"",htmlFor:_.inputId,id:_.labelId,style:Qe},b),U(e,t=>l.createElement(xe.Provider,{value:k},l.createElement(be.Provider,{value:_},t))))}),ze=l.forwardRef((e,n)=>{var r,f;let u=L(),c=l.useRef(null),d=l.useContext(ye),m=O(),b=ke(e),o=(f=(r=b.current)==null?void 0:r.forceMount)!=null?f:d?.forceMount;$(()=>{if(!o)return m.item(u,d?.id)},[o]);let v=Ee(u,c,[e.value,e.children,c],e.keywords),h=ae(),S=R(x=>x.value&&x.value===v.current),w=R(x=>o||m.filter()===!1?!0:x.search?x.filtered.items.get(u)>0:!0);l.useEffect(()=>{let x=c.current;if(!(!x||e.disabled))return x.addEventListener(le,I),()=>x.removeEventListener(le,I)},[w,e.onSelect,e.disabled]);function I(){var x,k;H(),(k=(x=b.current).onSelect)==null||k.call(x,v.current)}function H(){h.setState("value",v.current,!0)}if(!w)return null;let{disabled:j,value:B,onSelect:T,forceMount:ue,keywords:W,...M}=e;return l.createElement(A.div,{ref:z(c,n),...M,id:u,"cmdk-item":"",role:"option","aria-disabled":!!j,"aria-selected":!!S,"data-disabled":!!j,"data-selected":!!S,onPointerMove:j||m.getDisablePointerSelection()?void 0:H,onClick:j?void 0:I},e.children)}),Oe=l.forwardRef((e,n)=>{let{heading:r,children:f,forceMount:u,...c}=e,d=L(),m=l.useRef(null),b=l.useRef(null),o=L(),v=O(),h=R(w=>u||v.filter()===!1?!0:w.search?w.filtered.groups.has(d):!0);$(()=>v.group(d),[]),Ee(d,m,[e.value,e.heading,b]);let S=l.useMemo(()=>({id:d,forceMount:u}),[u]);return l.createElement(A.div,{ref:z(m,n),...c,"cmdk-group":"",role:"presentation",hidden:h?void 0:!0},r&&l.createElement("div",{ref:b,"cmdk-group-heading":"","aria-hidden":!0,id:o},r),U(e,w=>l.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":r?o:void 0},l.createElement(ye.Provider,{value:S},w))))}),Be=l.forwardRef((e,n)=>{let{alwaysRender:r,...f}=e,u=l.useRef(null),c=R(d=>!d.search);return!r&&!c?null:l.createElement(A.div,{ref:z(u,n),...f,"cmdk-separator":"",role:"separator"})}),Ge=l.forwardRef((e,n)=>{let{onValueChange:r,...f}=e,u=e.value!=null,c=ae(),d=R(o=>o.search),m=R(o=>o.selectedItemId),b=O();return l.useEffect(()=>{e.value!=null&&c.setState("search",e.value)},[e.value]),l.createElement(A.input,{ref:n,...f,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":b.listId,"aria-labelledby":b.labelId,"aria-activedescendant":m,id:b.inputId,type:"text",value:u?e.value:d,onChange:o=>{u||c.setState("search",o.target.value),r?.(o.target.value)}})}),Ue=l.forwardRef((e,n)=>{let{children:r,label:f="Suggestions",...u}=e,c=l.useRef(null),d=l.useRef(null),m=R(o=>o.selectedItemId),b=O();return l.useEffect(()=>{if(d.current&&c.current){let o=d.current,v=c.current,h,S=new ResizeObserver(()=>{h=requestAnimationFrame(()=>{let w=o.offsetHeight;v.style.setProperty("--cmdk-list-height",w.toFixed(1)+"px")})});return S.observe(o),()=>{cancelAnimationFrame(h),S.unobserve(o)}}},[]),l.createElement(A.div,{ref:z(c,n),...u,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":m,"aria-label":f,id:b.listId},U(e,o=>l.createElement("div",{ref:z(d,b.listInnerRef),"cmdk-list-sizer":""},o)))}),He=l.forwardRef((e,n)=>{let{open:r,onOpenChange:f,overlayClassName:u,contentClassName:c,container:d,...m}=e;return l.createElement(Se,{open:r,onOpenChange:f},l.createElement(Ce,{container:d},l.createElement(Ie,{"cmdk-overlay":"",className:u}),l.createElement(Re,{"aria-label":e.label,"cmdk-dialog":"",className:c},l.createElement(we,{ref:n,...m}))))}),Te=l.forwardRef((e,n)=>R(r=>r.filtered.count===0)?l.createElement(A.div,{ref:n,...e,"cmdk-empty":"",role:"presentation"}):null),We=l.forwardRef((e,n)=>{let{progress:r,children:f,label:u="Loading...",...c}=e;return l.createElement(A.div,{ref:n,...c,"cmdk-loading":"",role:"progressbar","aria-valuenow":r,"aria-valuemin":0,"aria-valuemax":100,"aria-label":u},U(e,d=>l.createElement("div",{"aria-hidden":!0},d)))}),D=Object.assign(we,{List:Ue,Item:ze,Input:Ge,Group:Oe,Separator:Be,Dialog:He,Empty:Te,Loading:We});function _e(e,n){let r=e.nextElementSibling;for(;r;){if(r.matches(n))return r;r=r.nextElementSibling}}function Je(e,n){let r=e.previousElementSibling;for(;r;){if(r.matches(n))return r;r=r.previousElementSibling}}function ke(e){let n=l.useRef(e);return $(()=>{n.current=e}),n}var $=typeof window>"u"?l.useEffect:l.useLayoutEffect;function K(e){let n=l.useRef();return n.current===void 0&&(n.current=e()),n}function R(e){let n=ae(),r=()=>e(n.snapshot());return l.useSyncExternalStore(n.subscribe,r,r)}function Ee(e,n,r,f=[]){let u=l.useRef(),c=O();return $(()=>{var d;let m=(()=>{var o;for(let v of r){if(typeof v=="string")return v.trim();if(typeof v=="object"&&"current"in v)return v.current?(o=v.current.textContent)==null?void 0:o.trim():u.current}})(),b=f.map(o=>o.trim());c.value(e,m,b),(d=n.current)==null||d.setAttribute(F,m),u.current=m}),u}var Xe=()=>{let[e,n]=l.useState(),r=K(()=>new Map);return $(()=>{r.current.forEach(f=>f()),r.current=new Map},[e]),(f,u)=>{r.current.set(f,u),n({})}};function Ye(e){let n=e.type;return typeof n=="function"?n(e.props):"render"in n?n.render(e.props):e}function U({asChild:e,children:n},r){return e&&l.isValidElement(n)?l.cloneElement(Ye(n),{ref:n.ref},r(n.props.children)):r(n)}var Qe={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};function rt({className:e,...n}){return C.jsx(D,{"data-slot":"command",className:P("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md",e),...n})}function nt({className:e,...n}){return C.jsxs("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[C.jsx(Ae,{className:"size-4 shrink-0 opacity-50"}),C.jsx(D.Input,{"data-slot":"command-input",className:P("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",e),...n})]})}function lt({className:e,...n}){return C.jsx(D.List,{"data-slot":"command-list",className:P("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto",e),...n})}function at({...e}){return C.jsx(D.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...e})}function ut({className:e,...n}){return C.jsx(D.Group,{"data-slot":"command-group",className:P("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",e),...n})}function ot({className:e,...n}){return C.jsx(D.Separator,{"data-slot":"command-separator",className:P("bg-border -mx-1 h-px",e),...n})}function it({className:e,...n}){return C.jsx(D.Item,{"data-slot":"command-item",className:P("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),...n})}export{rt as C,nt as a,lt as b,at as c,ut as d,ot as e,it as f};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as e,r,a as E,b as w,u as L,D as J,k as K,C as W,l as Z,m as ee,F as te,c as se}from"./main-CXgkZMhe.js";import{u as ne}from"./usePermissions-C1JQhfqb.js";import{C as m,B as ae,X as re}from"./badge-qPrc4AUM.js";import{c as le,I as ie,C as ce,a as P}from"./CmsEmptyState-CiMQwSQV.js";import{S as O,a as F,b as R,c as V,d as g}from"./select-Co3TZFJb.js";import{E as oe,a as M}from"./ErrorState-C4nJ-ml4.js";import{C as de}from"./circle-check-big-Dgozy3vV.js";import{T as me}from"./triangle-alert-BZRcqsUg.js";import{C as I}from"./CmsPageHeader-ohOq0luT.js";import{C as ue}from"./CmsToolbar-cEBlCHa3.js";import{C as xe}from"./CmsStatusBadge-BdNf0V9v.js";import{P as he}from"./plus-xCFJK0RC.js";import{S as pe}from"./search-CbCbboeU.js";import{u as fe}from"./tanstack-adapter-npeE3RdY.js";const be={publish:{title:"Publish Items",description:"This will publish all selected items, making them publicly visible.",confirmLabel:"Publish All",confirmVariant:"success"},unpublish:{title:"Unpublish Items",description:"This will unpublish all selected items, changing them back to draft status.",confirmLabel:"Unpublish All",confirmVariant:"warning"},delete:{title:"Delete Items",description:"This will move all selected items to trash.",warning:"Items in trash can be restored within the retention period.",confirmLabel:"Delete All",confirmVariant:"danger"},archive:{title:"Archive Items",description:"This will archive all selected items.",confirmLabel:"Archive All",confirmVariant:"secondary"}};function ge({action:n,count:i,isProcessing:o,result:s,onConfirm:u,onCancel:p}){const l=be[n];return e.jsx(le,{open:!0,onOpenChange:f=>!f&&!o&&p(),title:l.title,size:"sm",footer:s?e.jsx(m,{variant:"primary",onClick:p,children:s.failed===0?"Done":"Close"}):e.jsxs(e.Fragment,{children:[e.jsx(m,{variant:"outline",onClick:p,disabled:o,children:"Cancel"}),e.jsx(m,{variant:l.confirmVariant,onClick:u,loading:o,children:l.confirmLabel})]}),children:s?e.jsx("div",{className:"space-y-4",children:s.failed===0?e.jsxs("div",{className:"flex flex-col items-center gap-3 py-4 text-center",children:[e.jsx("div",{className:"flex size-12 items-center justify-center rounded-full bg-emerald-100 text-emerald-600",children:e.jsx(de,{className:"size-6"})}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Successfully processed"," ",e.jsx("span",{className:"font-semibold text-foreground",children:s.succeeded})," ",s.succeeded===1?"item":"items"]})]}):e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"rounded-lg border border-emerald-200 bg-emerald-50 p-3 text-center",children:[e.jsx("p",{className:"text-2xl font-semibold text-emerald-700",children:s.succeeded}),e.jsx("p",{className:"text-xs text-emerald-600",children:"Succeeded"})]}),e.jsxs("div",{className:"rounded-lg border border-red-200 bg-red-50 p-3 text-center",children:[e.jsx("p",{className:"text-2xl font-semibold text-red-700",children:s.failed}),e.jsx("p",{className:"text-xs text-red-600",children:"Failed"})]})]}),s.errors&&s.errors.length>0&&e.jsxs("div",{className:"rounded-lg border border-amber-200 bg-amber-50 p-3",children:[e.jsx("p",{className:"mb-2 text-sm font-medium text-amber-800",children:"Errors:"}),e.jsxs("ul",{className:"space-y-1 text-xs text-amber-700",children:[s.errors.slice(0,5).map((f,c)=>e.jsxs("li",{className:"truncate",children:["• ",f]},c)),s.errors.length>5&&e.jsxs("li",{className:"text-amber-600",children:["...and ",s.errors.length-5," more errors"]})]})]})]})}):e.jsxs("div",{className:"space-y-3",children:[e.jsxs("p",{className:"text-sm text-muted-foreground",children:["You are about to ",n," ",e.jsxs("span",{className:"font-semibold text-foreground",children:[i," ",i===1?"item":"items"]}),"."]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:l.description}),l.warning&&e.jsxs("div",{className:"flex items-start gap-2 rounded-lg border border-amber-200 bg-amber-50 p-3",children:[e.jsx(me,{className:"mt-0.5 size-4 shrink-0 text-amber-600"}),e.jsxs("p",{className:"text-sm text-amber-800",children:[e.jsx("span",{className:"font-medium",children:"Note:"})," ",l.warning]})]})]})})}function je({selectedIds:n,onClearSelection:i,onOperationComplete:o}){const[s,u]=r.useState(null),[p,l]=r.useState(!1),[f,c]=r.useState(null),j=E(w.bulkOperations.bulkPublish),d=E(w.bulkOperations.bulkUnpublish),b=E(w.bulkOperations.bulkDelete),S=E(w.bulkOperations.bulkUpdate),N=r.useCallback(a=>{u(a),c(null)},[]),y=r.useCallback(async()=>{if(!(!s||n.length===0)){l(!0),c(null);try{let a;switch(s){case"publish":a=await j({ids:n,changeDescription:"Bulk published from admin"});break;case"unpublish":a=await d({ids:n});break;case"delete":a=await b({ids:n,hardDelete:!1});break;case"archive":a=await S({ids:n,status:"archived"});break;default:throw new Error(`Unknown action: ${s}`)}c({succeeded:a.succeeded,failed:a.failed,errors:a.errors?.map(v=>`${v.id}: ${v.error}`)}),a.failed===0&&setTimeout(()=>{u(null),i(),o?.()},1500)}catch(a){const v=a instanceof Error?a.message:"Operation failed";c({succeeded:0,failed:n.length,errors:[v]})}finally{l(!1)}}},[s,n,j,d,b,S,i,o]),x=r.useCallback(()=>{u(null),c(null)},[]);return n.length===0?null:e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"fixed inset-x-0 bottom-0 z-50 border-t bg-background/95 px-6 py-3 shadow-lg backdrop-blur supports-[backdrop-filter]:bg-background/80",children:e.jsxs("div",{className:"mx-auto flex max-w-7xl items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(ae,{variant:"secondary",className:"text-sm font-semibold",children:n.length}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[n.length===1?"item":"items"," selected"]}),e.jsxs("button",{type:"button",onClick:i,className:"flex items-center gap-1 text-sm text-muted-foreground transition-colors hover:text-foreground",children:[e.jsx(re,{className:"size-3"}),"Clear"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(m,{variant:"success",size:"sm",onClick:()=>N("publish"),children:"Publish"}),e.jsx(m,{variant:"warning",size:"sm",onClick:()=>N("unpublish"),children:"Unpublish"}),e.jsx(m,{variant:"secondary",size:"sm",onClick:()=>N("archive"),children:"Archive"}),e.jsx(m,{variant:"danger",size:"sm",onClick:()=>N("delete"),children:"Delete"})]})]})}),s&&e.jsx(ge,{action:s,count:n.length,isProcessing:p,result:f,onConfirm:y,onCancel:x})]})}function Ne({api:n,navigation:i}){const[o,s]=r.useState(""),[u,p]=r.useState(""),[l,f]=r.useState(""),[c,j]=r.useState(null),[d,b]=r.useState(new Set),{canCreate:S,canUpdate:N}=ne(),y=L(n.contentTypes.list,{isActive:!0}),x=y?.page??[],a=y?.error,v=y===void 0,A=L(n.entries.list,{contentTypeId:o||void 0,status:u||void 0,search:l.trim()||void 0,paginationOpts:{numItems:50,cursor:null}}),h=A?.page??[],D=A?.error,$=v||A===void 0,z=r.useCallback(()=>{j(null),window.location.reload()},[]),Q=t=>{i.navigateToNewEntry(t)},G=t=>x.find(T=>T._id===t)?.displayName??"Unknown",U=(t,C)=>{const k=x.find(q=>q._id===C)?.titleField??"title",_=t.data[k];return typeof _=="string"&&_?_:"Untitled"},H=t=>new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),X=r.useCallback((t,C)=>{b(T=>{const k=new Set(T);return C?k.add(t):k.delete(t),k})},[]),Y=r.useCallback(()=>{d.size===h.length&&h.length>0?b(new Set):b(new Set(h.map(t=>t._id)))},[d.size,h]),B=r.useCallback(()=>{b(new Set)},[]);return a&&D?e.jsxs("div",{className:"space-y-6 p-6",children:[e.jsx(I,{title:"Content",description:"Browse and manage content entries across all content types."}),e.jsx(oe,{error:a,title:"Failed to load content",onRetry:z})]}):$?e.jsxs("div",{className:"space-y-6 p-6",children:[e.jsx(I,{title:"Content",description:"Browse and manage content entries across all content types."}),e.jsxs("div",{className:"flex flex-col items-center justify-center py-12",children:[e.jsx("div",{className:"size-8 animate-spin rounded-full border-2 border-muted border-t-primary"}),e.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:"Loading content..."})]})]}):e.jsxs("div",{className:"space-y-6 p-6",children:[e.jsx(I,{title:"Content",description:"Browse and manage content entries across all content types."}),a&&c!=="contentTypes"&&e.jsx(M,{error:a,onDismiss:()=>j("contentTypes"),onRetry:z}),D&&c!=="entries"&&e.jsx(M,{error:D,onDismiss:()=>j("entries"),onRetry:z}),e.jsx(ue,{left:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(pe,{className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(ie,{type:"text",placeholder:"Search content...",value:l,onChange:t=>f(t.target.value),className:"w-64 pl-9","data-testid":"content-search-input"})]}),e.jsxs(O,{value:o||"all",onValueChange:t=>s(t==="all"?"":t),children:[e.jsx(F,{className:"w-48",children:e.jsx(R,{placeholder:"All Content Types"})}),e.jsxs(V,{children:[e.jsx(g,{value:"all",children:"All Content Types"}),x.map(t=>e.jsx(g,{value:t._id,children:t.displayName},t._id))]})]}),e.jsxs(O,{value:u||"all",onValueChange:t=>p(t==="all"?"":t),children:[e.jsx(F,{className:"w-36",children:e.jsx(R,{placeholder:"All Statuses"})}),e.jsxs(V,{children:[e.jsx(g,{value:"all",children:"All Statuses"}),e.jsx(g,{value:"draft",children:"Draft"}),e.jsx(g,{value:"published",children:"Published"}),e.jsx(g,{value:"scheduled",children:"Scheduled"}),e.jsx(g,{value:"archived",children:"Archived"})]})]})]}),right:S("contentEntries")&&e.jsxs(J,{children:[e.jsx(K,{asChild:!0,children:e.jsxs(m,{disabled:x.length===0,children:[e.jsx(he,{className:"size-4"}),"Create Entry",e.jsx(W,{className:"size-4"})]})}),e.jsx(Z,{align:"end",children:x.map(t=>e.jsx(ee,{onClick:()=>Q(t._id),children:t.displayName},t._id))})]})}),e.jsx(je,{selectedIds:Array.from(d),onClearSelection:B,onOperationComplete:B}),h.length===0?e.jsx(ce,{icon:e.jsx(te,{className:"size-6"}),title:"No content entries yet",description:x.length===0?"Create a content type first, then start adding content entries.":'Click "Create Entry" to add your first content entry.'}):e.jsx("div",{className:"rounded-lg border bg-card",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"w-10 p-3 text-left",children:e.jsx(P,{checked:d.size===h.length&&h.length>0,onCheckedChange:Y,"aria-label":"Select all entries"})}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Title"}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Type"}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Status"}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Updated"}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Actions"})]})}),e.jsx("tbody",{children:h.map(t=>e.jsxs("tr",{className:se("border-b last:border-0 transition-colors hover:bg-muted/50",d.has(t._id)&&"bg-primary/5"),children:[e.jsx("td",{className:"p-3",children:e.jsx(P,{checked:d.has(t._id),onCheckedChange:C=>X(t._id,C),"aria-label":`Select ${U(t,t.contentTypeId)}`})}),e.jsx("td",{className:"p-3",children:e.jsxs("button",{type:"button",onClick:()=>i.navigateToEntry(t._id),className:"block text-left",children:[e.jsx("span",{className:"font-medium text-foreground hover:text-primary",children:U(t,t.contentTypeId)}),e.jsx("span",{className:"block text-xs text-muted-foreground",children:t.slug})]})}),e.jsx("td",{className:"p-3 text-sm text-muted-foreground",children:G(t.contentTypeId)}),e.jsx("td",{className:"p-3",children:e.jsx(xe,{status:t.status})}),e.jsx("td",{className:"p-3 text-sm text-muted-foreground",children:H(t._creationTime)}),e.jsx("td",{className:"p-3",children:e.jsx(m,{variant:"outline",size:"sm",onClick:()=>i.navigateToEntry(t._id),children:N("contentEntries")?"Edit":"View"})})]},t._id))})]})})]})}function Le(){const n=fe();return e.jsx(Ne,{api:w,navigation:n})}export{Le as component};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{d as oe,j as e,r as a,a as je,b as ne,c as W,C as ce,q as Ce,I as Fe,s as X,t as ke,v as Se,u as Oe}from"./main-CXgkZMhe.js";import{c as ze,I as A,a as re,C as Re}from"./CmsEmptyState-CiMQwSQV.js";import{C as _,X as de,B as Q}from"./badge-qPrc4AUM.js";import{L as F}from"./label-DCsUdvFh.js";import{T as Be,a as we,P as Ne}from"./textarea-BJ0XFZpT.js";import{C as Pe,S as se,a as te,b as ae,c as le,d as H}from"./select-Co3TZFJb.js";import{T as Ue}from"./triangle-alert-BZRcqsUg.js";import{P as me}from"./plus-xCFJK0RC.js";import{F as Me,L as ue}from"./list-DtCsXj8-.js";import{L as Ee}from"./link-2-Czw1N61H.js";import{E as Ve,a as He}from"./ErrorState-C4nJ-ml4.js";import{C as be}from"./CmsPageHeader-ohOq0luT.js";import{C as We}from"./CmsToolbar-cEBlCHa3.js";import{S as Ge}from"./search-CbCbboeU.js";import{u as Je}from"./tanstack-adapter-npeE3RdY.js";const Qe=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M11 18h2",key:"12mj7e"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"M9 13v-.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 .5.5v.5",key:"qbrxap"}]],Y=oe("file-type",Qe);const Xe=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M3 15h18",key:"5xshup"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"M15 3v18",key:"14nvp0"}]],Ye=oe("grid-3x3",Xe);const Ke=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]],xe=oe("text-align-start",Ke);function Ze({isOpen:u,onClose:f,breakingChanges:h,onForceUpdate:S,onCancel:d,isLoading:x}){const o=()=>{d(),f()};return e.jsx(ze,{open:u,onOpenChange:p=>!p&&!x&&o(),title:"Breaking Changes Detected",size:"lg",footer:e.jsxs(e.Fragment,{children:[e.jsx(_,{variant:"outline",onClick:o,disabled:x,children:"Cancel"}),e.jsx(_,{variant:"danger",onClick:S,loading:x,children:"Force Update"})]}),children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3 rounded-lg border border-amber-200 bg-amber-50 p-3",children:[e.jsx(Ue,{className:"mt-0.5 size-5 shrink-0 text-amber-600"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium text-amber-800",children:"These changes may affect existing content"}),e.jsx("p",{className:"text-sm text-amber-700",children:"The following changes could cause data loss or validation errors for existing entries. Review carefully before proceeding."})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"text-sm font-medium text-foreground",children:[h.length," breaking change",h.length!==1?"s":""," detected:"]}),e.jsx("ul",{className:"space-y-2",children:h.map((p,c)=>e.jsxs("li",{className:"flex items-start gap-2 rounded-md border bg-muted/30 px-3 py-2 text-sm",children:[e.jsx("span",{className:"mt-0.5 size-1.5 shrink-0 rounded-full bg-amber-500"}),e.jsx("span",{className:"text-muted-foreground",children:p})]},c))})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:'Click "Force Update" to apply these changes anyway, or "Cancel" to go back and modify your changes.'})]})})}const ie={text:{label:"Text",icon:e.jsx(xe,{className:"size-4"}),description:"Single line text input"},richText:{label:"Rich Text",icon:e.jsx(Y,{className:"size-4"}),description:"Multi-line formatted text"},number:{label:"Number",icon:e.jsx(Se,{className:"size-4"}),description:"Numeric value"},boolean:{label:"Boolean",icon:e.jsx(ke,{className:"size-4"}),description:"True/false toggle"},date:{label:"Date",icon:e.jsx(X,{className:"size-4"}),description:"Date picker"},datetime:{label:"Date & Time",icon:e.jsx(X,{className:"size-4"}),description:"Date and time picker"},reference:{label:"Reference",icon:e.jsx(Ee,{className:"size-4"}),description:"Link to another content entry"},media:{label:"Media",icon:e.jsx(Fe,{className:"size-4"}),description:"Image, video, or file"},json:{label:"JSON",icon:e.jsx(Ce,{className:"size-4"}),description:"Custom JSON data"},select:{label:"Select",icon:e.jsx(ce,{className:"size-4"}),description:"Dropdown selection"},multiSelect:{label:"Multi-Select",icon:e.jsx(ue,{className:"size-4"}),description:"Multiple selections"},tags:{label:"Tags",icon:e.jsx(we,{className:"size-4"}),description:"Free-form tag list"},category:{label:"Category",icon:e.jsx(Me,{className:"size-4"}),description:"Taxonomy category selection"}};function ve(u){return u.toLowerCase().trim().replace(/[^a-z0-9\s]/g,"").replace(/\s+/g,"_").replace(/^[0-9]/,"_$&").slice(0,64)}function ye(u){return/^[a-z][a-z0-9_]{0,63}$/.test(u)}function es({isOpen:u,onClose:f,onCreated:h,onUpdated:S,contentType:d}){const x=!!d,[o,p]=a.useState(""),[c,N]=a.useState(""),[D,L]=a.useState(!1),[T,I]=a.useState(""),[q,B]=a.useState(!1),[r,y]=a.useState([{name:"title",label:"Title",type:"text",required:!0}]),[C,w]=a.useState("title"),[k,z]=a.useState("title"),[m,P]=a.useState(!1),[t,j]=a.useState(null),[g,M]=a.useState(null),[U,E]=a.useState(!1),[V,K]=a.useState([]),[_e,O]=a.useState(!1),[De,Z]=a.useState(!1),he=je(ne.contentTypes.create),G=je(ne.contentTypes.update);a.useEffect(()=>{d&&u&&(p(d.displayName),N(d.name),L(!0),I(d.description||""),B(d.singleton||!1),y(d.fields),w(d.titleField||""),z(d.slugField||""))},[d,u]);const $=a.useCallback(()=>{p(""),N(""),L(!1),I(""),B(!1),y([{name:"title",label:"Title",type:"text",required:!0}]),w("title"),z("title"),P(!1),j(null),M(null),E(!1),K([]),O(!1),Z(!1)},[]),Le=a.useCallback(s=>{p(s),D||N(ve(s))},[D]),Te=a.useCallback(s=>{L(!0),N(s.toLowerCase().replace(/[^a-z0-9_]/g,""))},[]),qe=a.useCallback(()=>{const s=`field_${r.length+1}`;y(l=>[...l,{name:s,label:`Field ${l.length+1}`,type:"text",required:!1}]),M(r.length),E(!0)},[r.length]),Ae=a.useCallback(s=>{const l=r[s];if(y(n=>n.filter((i,v)=>v!==s)),C===l.name){const n=r.find((i,v)=>v!==s&&i.type==="text");w(n?.name||"")}if(k===l.name){const n=r.find((i,v)=>v!==s&&i.type==="text");z(n?.name||"")}g===s?(M(null),E(!1)):g!==null&&g>s&&M(g-1)},[r,g,C,k]),R=a.useCallback((s,l)=>{y(n=>n.map((i,v)=>v===s?{...i,...l}:i))},[]),pe=a.useCallback((s,l)=>{y(n=>{const i=[...n],[v]=i.splice(s,1);return i.splice(l,0,v),i}),M(l)},[]),J=a.useMemo(()=>{const s=[];o.trim()||s.push("Display name is required"),c.trim()?ye(c)||s.push("System Name must start with a letter and contain only lowercase letters, numbers, and underscores"):s.push("System Name is required"),r.length===0&&s.push("At least one field is required");const l=r.map(i=>i.name),n=l.filter((i,v)=>l.indexOf(i)!==v);n.length>0&&s.push(`Duplicate field names: ${[...new Set(n)].join(", ")}`);for(const i of r)i.name.trim()?/^[a-z][a-z0-9_]{0,63}$/.test(i.name)||s.push(`Field "${i.name}" has an invalid name format`):s.push(`Field "${i.label}" has an empty name`),i.label.trim()||s.push(`Field with name "${i.name}" has an empty label`),(i.type==="select"||i.type==="multiSelect")&&(!i.options?.options||i.options.options.length===0)&&s.push(`${i.type} field "${i.label}" requires at least one option`);return s},[o,c,r]),ee=a.useMemo(()=>r.filter(s=>s.type==="text"),[r]),$e=s=>s.split(`
|
|
2
|
+
`).filter(n=>n.trim().startsWith("-")).map(n=>n.trim().substring(2)),ge=a.useCallback(async(s,l=!1)=>{if(s.preventDefault(),J.length>0){j(J.join(". "));return}P(!0),j(null);try{if(x&&d){const n=await G({id:d._id,displayName:o.trim(),description:T.trim()||void 0,fields:r,singleton:q,titleField:C||void 0,slugField:k||void 0,force:l});S?.(n),$(),f()}else{const n=await he({name:c,displayName:o.trim(),description:T.trim()||void 0,fields:r,singleton:q,titleField:C||void 0,slugField:k||void 0});h?.(n),$(),f()}}catch(n){const i=n instanceof Error?n.message:x?"Failed to update content type":"Failed to create content type";if(x&&!l&&i.includes("breaking change")){const v=$e(i);K(v),O(!0)}else j(i)}finally{P(!1)}},[J,x,d,he,G,c,o,T,r,q,C,k,h,S,$,f]),Ie=a.useCallback(async()=>{Z(!0);try{if(d){const s=await G({id:d._id,displayName:o.trim(),description:T.trim()||void 0,fields:r,singleton:q,titleField:C||void 0,slugField:k||void 0,force:!0});S?.(s),$(),O(!1),f()}}catch(s){const l=s instanceof Error?s.message:"Failed to update content type";j(l),O(!1)}finally{Z(!1)}},[d,G,o,T,r,q,C,k,S,$,f]),fe=a.useCallback(()=>{m||($(),f())},[m,$,f]);if(!u)return null;const b=g!==null?r[g]:null;return e.jsxs(e.Fragment,{children:[e.jsx(ze,{open:u,onOpenChange:s=>!s&&fe(),title:x?"Edit Content Type":"Create Content Type",size:"2xl",footer:e.jsxs(e.Fragment,{children:[e.jsx(_,{variant:"outline",onClick:fe,disabled:m,children:"Cancel"}),e.jsx(_,{variant:"primary",onClick:ge,disabled:J.length>0,loading:m,"data-testid":x?"update-content-type-submit":"create-content-type-submit",children:x?"Save Changes":"Create Content Type"})]}),children:e.jsxs("form",{onSubmit:ge,className:"space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx("h4",{className:"text-sm font-semibold text-foreground",children:"Basic Information"}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(F,{htmlFor:"displayName",children:["Display Name ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(A,{id:"displayName",value:o,onChange:s=>Le(s.target.value),placeholder:"e.g., Blog Post",disabled:m,autoFocus:!0,"data-testid":"display-name-input"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(F,{htmlFor:"machineName",children:["System Name ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(A,{id:"machineName",value:c,onChange:s=>Te(s.target.value),placeholder:"e.g., blog_post",disabled:m||x,className:W(!ye(c)&&c&&"border-destructive"),"data-testid":"machine-name-input"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:x?"System name cannot be changed after creation":"Lowercase letters, numbers, and underscores only. Used in API queries."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{htmlFor:"description",children:"Description"}),e.jsx(Be,{id:"description",value:T,onChange:s=>I(s.target.value),placeholder:"Optional description of this content type",disabled:m,rows:2})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(re,{id:"singleton",checked:q,onCheckedChange:s=>B(s),disabled:m}),e.jsx(F,{htmlFor:"singleton",className:"cursor-pointer",children:"Singleton (only one entry allowed)"})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("h4",{className:"text-sm font-semibold text-foreground",children:"Fields"}),e.jsxs(_,{type:"button",variant:"secondary",size:"sm",onClick:qe,disabled:m,"data-testid":"add-field-button",children:[e.jsx(me,{className:"size-3.5"}),"Add Field"]})]}),e.jsx("div",{className:"space-y-2",children:r.map((s,l)=>e.jsxs("div",{className:W("flex cursor-pointer items-center gap-2 rounded-lg border p-2 transition-colors hover:bg-muted/50",g===l&&"border-primary bg-primary/5"),onClick:()=>{M(l),E(!0)},"data-testid":`field-item-${l}`,children:[e.jsxs("div",{className:"flex flex-col gap-0.5",children:[l>0&&e.jsx("button",{type:"button",onClick:n=>{n.stopPropagation(),pe(l,l-1)},className:"rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground",children:e.jsx(Pe,{className:"size-3"})}),l<r.length-1&&e.jsx("button",{type:"button",onClick:n=>{n.stopPropagation(),pe(l,l+1)},className:"rounded p-0.5 text-muted-foreground hover:bg-muted hover:text-foreground",children:e.jsx(ce,{className:"size-3"})})]}),e.jsx("div",{className:"flex size-8 items-center justify-center rounded bg-muted text-muted-foreground",children:ie[s.type].icon}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"truncate text-sm font-medium",children:s.label}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[ie[s.type].label,s.required&&" *"]})]}),e.jsx("button",{type:"button",onClick:n=>{n.stopPropagation(),Ae(l)},disabled:m||r.length===1,className:"rounded p-1 text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive disabled:opacity-50",children:e.jsx(de,{className:"size-4"})})]},l))}),U&&b&&g!==null&&e.jsxs("div",{className:"rounded-lg border bg-muted/30 p-4","data-testid":"field-editor",children:[e.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[e.jsxs("h5",{className:"font-medium",children:["Edit Field: ",b.label]}),e.jsx("button",{type:"button",onClick:()=>{E(!1),M(null)},className:"rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground",children:e.jsx(de,{className:"size-4"})})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(F,{htmlFor:"fieldLabel",children:["Label ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(A,{id:"fieldLabel",value:b.label,onChange:s=>R(g,{label:s.target.value,name:D?b.name:ve(s.target.value)||b.name}),disabled:m,"data-testid":"field-label-input"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(F,{htmlFor:"fieldName",children:["Name ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(A,{id:"fieldName",value:b.name,onChange:s=>R(g,{name:s.target.value.toLowerCase().replace(/[^a-z0-9_]/g,"")}),disabled:m,"data-testid":"field-name-input"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(F,{htmlFor:"fieldType",children:["Type ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsxs(se,{value:b.type,onValueChange:s=>R(g,{type:s,options:void 0}),disabled:m,children:[e.jsx(te,{"data-testid":"field-type-select",children:e.jsx(ae,{})}),e.jsx(le,{children:Object.entries(ie).map(([s,l])=>e.jsx(H,{value:s,children:e.jsxs("div",{className:"flex items-center gap-2",children:[l.icon,e.jsx("span",{children:l.label}),e.jsxs("span",{className:"text-muted-foreground",children:["- ",l.description]})]})},s))})]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(re,{id:"fieldRequired",checked:b.required,onCheckedChange:s=>R(g,{required:s}),disabled:m}),e.jsx(F,{htmlFor:"fieldRequired",className:"cursor-pointer",children:"Required"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{htmlFor:"fieldDescription",children:"Help Text"}),e.jsx(A,{id:"fieldDescription",value:b.description||"",onChange:s=>R(g,{description:s.target.value||void 0}),placeholder:"Help text shown below the field",disabled:m})]}),(b.type==="select"||b.type==="multiSelect")&&e.jsx(ss,{options:b.options?.options||[],onChange:s=>R(g,{options:{...b.options,options:s}}),disabled:m})]})]})]}),ee.length>0&&e.jsxs("div",{className:"space-y-4",children:[e.jsx("h4",{className:"text-sm font-semibold text-foreground",children:"Display Settings"}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{htmlFor:"titleField",children:"Title Field"}),e.jsxs(se,{value:C||"none",onValueChange:s=>w(s==="none"?"":s),disabled:m,children:[e.jsx(te,{children:e.jsx(ae,{placeholder:"None"})}),e.jsxs(le,{children:[e.jsx(H,{value:"none",children:"None"}),ee.map(s=>e.jsx(H,{value:s.name,children:s.label},s.name))]})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Field to display as the entry title in lists"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(F,{htmlFor:"slugField",children:"Slug Field"}),e.jsxs(se,{value:k||"none",onValueChange:s=>z(s==="none"?"":s),disabled:m,children:[e.jsx(te,{children:e.jsx(ae,{placeholder:"None (auto-generate)"})}),e.jsxs(le,{children:[e.jsx(H,{value:"none",children:"None (auto-generate)"}),ee.map(s=>e.jsx(H,{value:s.name,children:s.label},s.name))]})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Field to use for generating URL-friendly slugs"})]})]}),t&&e.jsx("div",{className:"rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-800",role:"alert","data-testid":"submit-error",children:t})]})}),e.jsx(Ze,{isOpen:_e,onClose:()=>O(!1),breakingChanges:V,onForceUpdate:Ie,onCancel:()=>{O(!1),K([])},isLoading:De})]})}function ss({options:u,onChange:f,disabled:h}){const S=()=>{f([...u,{value:`option_${u.length+1}`,label:""}])},d=o=>{f(u.filter((p,c)=>c!==o))},x=(o,p)=>{f(u.map((c,N)=>N===o?{...c,...p}:c))};return e.jsxs("div",{className:"space-y-2",children:[e.jsxs(F,{children:["Options ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx("div",{className:"space-y-2",children:u.map((o,p)=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(A,{value:o.label,onChange:c=>{const N=c.target.value,D=N.toLowerCase().replace(/[^a-z0-9]/g,"_").replace(/^_+|_+$/g,"");x(p,{label:N,value:D})},placeholder:"Option label",disabled:h,className:"flex-1"}),e.jsx(A,{value:o.value,onChange:c=>x(p,{value:c.target.value.toLowerCase().replace(/[^a-z0-9_]/g,"")}),placeholder:"value",disabled:h,className:"w-32"}),e.jsx("button",{type:"button",onClick:()=>d(p),disabled:h,className:"rounded p-1 text-muted-foreground hover:bg-destructive/10 hover:text-destructive",children:e.jsx(de,{className:"size-4"})})]},p))}),e.jsxs(_,{type:"button",variant:"secondary",size:"sm",onClick:S,disabled:h,children:[e.jsx(me,{className:"size-3.5"}),"Add Option"]})]})}const ts={text:e.jsx(xe,{className:"size-3"}),richText:e.jsx(Y,{className:"size-3"}),number:e.jsx(Se,{className:"size-3"}),boolean:e.jsx(ke,{className:"size-3"}),date:e.jsx(X,{className:"size-3"}),datetime:e.jsx(X,{className:"size-3"}),reference:e.jsx(Ee,{className:"size-3"}),media:e.jsx(Fe,{className:"size-3"}),json:e.jsx(Ce,{className:"size-3"}),select:e.jsx(ce,{className:"size-3"}),multiSelect:e.jsx(ue,{className:"size-3"}),tags:e.jsx(we,{className:"size-3"}),category:e.jsx(Me,{className:"size-3"})};function as({api:u,navigation:f}){const[h,S]=a.useState(""),[d,x]=a.useState("grid"),[o,p]=a.useState(!0),[c,N]=a.useState(!1),[D,L]=a.useState(null),[T,I]=a.useState(!1),q=a.useCallback(()=>{N(!1)},[]),B=a.useCallback(()=>{L(null)},[]),r=Oe(u.contentTypes.list,{isActive:o?!0:void 0,includeEntryCounts:!0}),y=r?.page??[],C=r===void 0,w=r?.error,k=a.useCallback(()=>{I(!1),window.location.reload()},[]),z=a.useMemo(()=>{if(!h.trim())return y;const t=h.toLowerCase();return y.filter(j=>j.name.toLowerCase().includes(t)||j.displayName.toLowerCase().includes(t))},[y,h]),m=t=>new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}),P=t=>{const g=Date.now()-t,M=Math.floor(g/1e3),U=Math.floor(M/60),E=Math.floor(U/60),V=Math.floor(E/24);return V>30?m(t):V>0?`${V}d ago`:E>0?`${E}h ago`:U>0?`${U}m ago`:"Just now"};return w&&!C?e.jsxs("div",{className:"space-y-6 p-6",children:[e.jsx(be,{title:"Content Types",description:"Define the structure of your content with custom fields and validation rules."}),e.jsx(Ve,{error:w,title:"Failed to load content types",onRetry:k})]}):e.jsxs("div",{className:"space-y-6 p-6",children:[e.jsx(be,{title:"Content Types",description:"Define the structure of your content with custom fields and validation rules."}),w&&!T&&e.jsx(He,{error:w,onDismiss:()=>I(!0),onRetry:k}),e.jsx(We,{left:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsxs("div",{className:"relative",children:[e.jsx(Ge,{className:"absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),e.jsx(A,{type:"search",placeholder:"Search content types...",value:h,onChange:t=>S(t.target.value),className:"w-64 pl-9"})]}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-2 text-sm",children:[e.jsx(re,{checked:o,onCheckedChange:t=>p(t)}),"Active only"]})]}),right:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("div",{className:"flex rounded-md border bg-muted/30",children:[e.jsx("button",{className:W("rounded-l-md p-2 transition-colors",d==="grid"?"bg-background shadow-sm":"hover:bg-muted/50"),onClick:()=>x("grid"),title:"Grid view","aria-label":"Grid view",children:e.jsx(Ye,{className:"size-4"})}),e.jsx("button",{className:W("rounded-r-md p-2 transition-colors",d==="list"?"bg-background shadow-sm":"hover:bg-muted/50"),onClick:()=>x("list"),title:"List view","aria-label":"List view",children:e.jsx(ue,{className:"size-4"})})]}),e.jsxs(_,{onClick:()=>N(!0),"data-testid":"create-content-type-button",children:[e.jsx(me,{className:"size-4"}),"Create Content Type"]})]})}),C?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12",children:[e.jsx("div",{className:"size-8 animate-spin rounded-full border-2 border-muted border-t-primary"}),e.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:"Loading content types..."})]}):z.length===0?e.jsx(Re,{icon:e.jsx(Y,{className:"size-6"}),title:h?"No content types match your search":"No content types defined",description:h?"Try adjusting your search query or filters.":"Content types define the schema for your content. Create one to get started."}):d==="grid"?e.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:z.map(t=>e.jsxs("div",{className:"group flex flex-col rounded-lg border bg-card p-4 transition-all hover:border-primary/50 hover:shadow-md",children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between",children:[e.jsx("div",{className:"flex size-10 items-center justify-center rounded-md bg-muted text-muted-foreground",children:e.jsx(Y,{className:"size-5"})}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[!t.isActive&&e.jsx(Q,{variant:"secondary",className:"text-xs font-normal",children:"Inactive"}),t.singleton&&e.jsx(Q,{variant:"secondary",className:"border-amber-200 bg-amber-50 text-xs font-normal text-amber-700",children:"Singleton"}),e.jsx("button",{onClick:()=>L(t),className:"rounded p-1.5 text-muted-foreground opacity-0 transition-all hover:bg-muted hover:text-foreground group-hover:opacity-100",title:"Edit content type","aria-label":"Edit content type",children:e.jsx(Ne,{className:"size-4"})})]})]}),e.jsxs("button",{type:"button",onClick:()=>f.navigateToContentType(t._id),className:"flex flex-1 flex-col text-left",children:[e.jsx("h3",{className:"text-base font-semibold text-foreground",children:t.displayName}),e.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:t.name}),e.jsxs("div",{className:"mt-3 flex items-center gap-4",children:[e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-lg font-semibold text-foreground",children:t.fields.length}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t.fields.length===1?"Field":"Fields"})]}),e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-lg font-semibold text-foreground",children:t.entryCount??0}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t.entryCount===1?"Entry":"Entries"})]})]}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-1.5",children:[t.fields.slice(0,4).map(j=>e.jsxs("span",{className:"flex items-center gap-1 rounded-md bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",title:j.label,children:[ts[j.type]||e.jsx(xe,{className:"size-3"}),e.jsx("span",{className:"truncate",children:j.label})]},j.name)),t.fields.length>4&&e.jsxs("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-xs text-muted-foreground",children:["+",t.fields.length-4," more"]})]}),e.jsxs("p",{className:"mt-auto pt-3 text-xs text-muted-foreground",children:["Updated ",P(t._creationTime)]})]})]},t._id))}):e.jsx("div",{className:"rounded-lg border bg-card",children:e.jsxs("table",{className:"w-full",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b",children:[e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Name"}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Fields"}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Entries"}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Status"}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Last Updated"}),e.jsx("th",{className:"p-3 text-left text-sm font-medium text-muted-foreground",children:"Actions"})]})}),e.jsx("tbody",{children:z.map(t=>e.jsxs("tr",{className:"border-b last:border-0 transition-colors hover:bg-muted/50",children:[e.jsxs("td",{className:"p-3",children:[e.jsx("p",{className:"font-medium text-foreground",children:t.displayName}),e.jsx("p",{className:"text-xs text-muted-foreground",children:t.name})]}),e.jsx("td",{className:"p-3 text-sm text-muted-foreground",children:t.fields.length}),e.jsx("td",{className:"p-3 text-sm text-muted-foreground",children:t.entryCount??0}),e.jsx("td",{className:"p-3",children:e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx(Q,{variant:t.isActive?"default":"secondary",className:W("text-xs font-normal",t.isActive&&"border-emerald-200 bg-emerald-50 text-emerald-700"),children:t.isActive?"Active":"Inactive"}),t.singleton&&e.jsx(Q,{variant:"secondary",className:"border-amber-200 bg-amber-50 text-xs font-normal text-amber-700",children:"Singleton"})]})}),e.jsx("td",{className:"p-3 text-sm text-muted-foreground",children:m(t._creationTime)}),e.jsx("td",{className:"p-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(_,{variant:"outline",size:"sm",onClick:()=>L(t),children:[e.jsx(Ne,{className:"size-3.5"}),"Edit"]}),e.jsx(_,{variant:"outline",size:"sm",onClick:()=>f.navigateToContentType(t._id),children:"View Entries"})]})})]},t._id))})]})}),!C&&z.length>0&&e.jsxs("p",{className:"text-center text-sm text-muted-foreground",children:["Showing ",z.length," of ",y.length," content type",y.length!==1?"s":""]}),e.jsx(es,{isOpen:c||!!D,onClose:()=>{N(!1),L(null)},contentType:D,onCreated:q,onUpdated:B})]})}function Ns(){const u=Je();return e.jsx(as,{api:ne,navigation:u})}export{Ns as component};
|