headroom-cms 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/admin/assets/{AdminsPage-DYJhlQnA.js → AdminsPage-Cvqw6UOu.js} +1 -1
  2. package/admin/assets/{AllContentPage-DShBvFru.js → AllContentPage-Cnkt8Fgm.js} +1 -1
  3. package/admin/assets/{ApiKeysPage-DONrd-TJ.js → ApiKeysPage-FLex3Chc.js} +1 -1
  4. package/admin/assets/{AuditPage-BwhYu96L.js → AuditPage-ClgwR_8y.js} +1 -1
  5. package/admin/assets/{BlockEditor-C0KaZUHQ.js → BlockEditor-uSyk_TPt.js} +1 -1
  6. package/admin/assets/{BlockTypeEditPage-BYJfEA6l.js → BlockTypeEditPage-Dr_yNLDI.js} +1 -1
  7. package/admin/assets/{BlockTypesPage-Pf9u78-O.js → BlockTypesPage-CwsGPuAZ.js} +1 -1
  8. package/admin/assets/{BulkActionBar-BX-t8fyM.js → BulkActionBar-C-88Wnqw.js} +1 -1
  9. package/admin/assets/{CollectionEditPage-CQGo9Cbu.js → CollectionEditPage-Cimkb84B.js} +1 -1
  10. package/admin/assets/{CollectionsPage-D-QTkoW_.js → CollectionsPage-CxnSFPCH.js} +1 -1
  11. package/admin/assets/{ContentCreatePage-DujNZXXj.js → ContentCreatePage-DZCyOcte.js} +1 -1
  12. package/admin/assets/ContentEditPage-RtHbU_l4.js +3 -0
  13. package/admin/assets/{ContentListPage-llAlhZTH.js → ContentListPage-qFcZVzg9.js} +1 -1
  14. package/admin/assets/{CustomBlockPreview-CCiZrZhi.js → CustomBlockPreview-ers8OdZ0.js} +1 -1
  15. package/admin/assets/{FieldBuilder-B3-3MTqp.js → FieldBuilder-Ds-agLm7.js} +1 -1
  16. package/admin/assets/{LoginPage-BlJXP0GH.js → LoginPage-uxiw8K1J.js} +1 -1
  17. package/admin/assets/{MediaPage-Cad4n33B.js → MediaPage-CeepVDHQ.js} +1 -1
  18. package/admin/assets/{SiteSettingsPage-xfAm3ZKQ.js → SiteSettingsPage-xkngL15i.js} +1 -1
  19. package/admin/assets/SitesPage-BD9tou9-.js +1 -0
  20. package/admin/assets/{TagsPage-DNlaoFCE.js → TagsPage-BxSwTLpQ.js} +1 -1
  21. package/admin/assets/{UsersPage-D_nOx6W9.js → UsersPage-BayuQyLh.js} +1 -1
  22. package/admin/assets/{WebhookEditPage-BUvLl4rY.js → WebhookEditPage-BrXm8Dht.js} +1 -1
  23. package/admin/assets/{WebhooksPage-CG7WC9Bq.js → WebhooksPage-BUE6XuIP.js} +1 -1
  24. package/admin/assets/{badge-ChZ2DZue.js → badge-B8OxObuF.js} +1 -1
  25. package/admin/assets/{card-DpNr7WTb.js → card-C7fgQS_U.js} +1 -1
  26. package/admin/assets/check-CxKAR64t.js +1 -0
  27. package/admin/assets/{checkbox-VtCfoGic.js → checkbox-BV2kjQBe.js} +1 -1
  28. package/admin/assets/{command-98iA8Va4.js → command-qGFnWxcS.js} +1 -1
  29. package/admin/assets/{copy-fXL6Ngxi.js → copy-CgYzmj06.js} +1 -1
  30. package/admin/assets/{core.esm-BtFZvlg0.js → core.esm-DRuhixPo.js} +1 -1
  31. package/admin/assets/index-DX9xeoQx.js +18 -0
  32. package/admin/assets/index-PpbsYFRh.css +1 -0
  33. package/admin/assets/{plus-2Ds_MoqB.js → plus-HdRn2U0S.js} +1 -1
  34. package/admin/assets/{popover-DFInMOpa.js → popover-Cou924mw.js} +1 -1
  35. package/admin/assets/{radix-n1vDIPi6.js → radix-lA_IxTIV.js} +1 -1
  36. package/admin/assets/{react-vendor-DNVhVxD7.js → react-vendor-B0Dih9Pj.js} +1 -1
  37. package/admin/assets/{search-DRNC6QB5.js → search-C-3Q9nn7.js} +1 -1
  38. package/admin/assets/{select-Cj54Wt-H.js → select-CHW5R8qv.js} +1 -1
  39. package/admin/assets/{sortable.esm-BUhmZW2_.js → sortable.esm-CBJBhe4k.js} +1 -1
  40. package/admin/assets/{table-D4rLgOKa.js → table-BjSue8Ev.js} +1 -1
  41. package/admin/assets/{tanstack-BO6c-AOu.js → tanstack-oFmRhGwV.js} +1 -1
  42. package/admin/assets/{trash-2-CbbWF_O4.js → trash-2-CWWRVuRB.js} +1 -1
  43. package/admin/assets/{use-mobile-Cvl5tIVY.js → use-mobile-C1r2eP64.js} +1 -1
  44. package/admin/assets/useAdminResolver-D6B6RXnk.js +1 -0
  45. package/admin/assets/useContent-f19XHVlJ.js +1 -0
  46. package/admin/assets/{useDebouncedValue-Bf8UizjU.js → useDebouncedValue-DHUCnm9B.js} +1 -1
  47. package/admin/assets/{useMedia-DjiNKMOU.js → useMedia-DkvP1QLG.js} +1 -1
  48. package/admin/assets/{useTags-BB47vbXO.js → useTags-BuXf7_7H.js} +1 -1
  49. package/admin/assets/{useWebhooks-DS4Ee8Wk.js → useWebhooks-Cx9tbBME.js} +1 -1
  50. package/admin/index.html +5 -5
  51. package/admin/sw.js +1 -1
  52. package/lambda/api/bootstrap +0 -0
  53. package/lambda/webhook-worker/bootstrap +0 -0
  54. package/package.json +1 -1
  55. package/admin/assets/ContentEditPage-DyqgEoAe.js +0 -3
  56. package/admin/assets/SitesPage-DnCiSu23.js +0 -1
  57. package/admin/assets/check-BMpruHpO.js +0 -1
  58. package/admin/assets/index-CwkwXbO-.js +0 -18
  59. package/admin/assets/index-FYfbavkE.css +0 -1
  60. package/admin/assets/useAdminResolver-B-_1f6SR.js +0 -1
  61. package/admin/assets/useContent-Cp41wBYR.js +0 -1
@@ -1 +1 @@
1
- import{o as v,w as c,B as q,X as N,I as D,e as r}from"./index-CwkwXbO-.js";import{j as n,a as u,b as d,u as h,d as k}from"./tanstack-BO6c-AOu.js";import{r as y}from"./react-vendor-DNVhVxD7.js";import{x as z,y as M,z as A,B as T,E as I,F as C,G as K,H as O,J as P}from"./radix-n1vDIPi6.js";import{B as U}from"./badge-ChZ2DZue.js";const E=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],W=v("ellipsis",E);const Q=[["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"}]],X=v("file",Q);const L=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Y=v("upload",L);function Z({...e}){return n.jsx(z,{"data-slot":"alert-dialog",...e})}function ee({...e}){return n.jsx(K,{"data-slot":"alert-dialog-trigger",...e})}function _({...e}){return n.jsx(O,{"data-slot":"alert-dialog-portal",...e})}function B({className:e,...t}){return n.jsx(P,{"data-slot":"alert-dialog-overlay",className:c("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function te({className:e,size:t="default",...i}){return n.jsxs(_,{children:[n.jsx(B,{}),n.jsx(M,{"data-slot":"alert-dialog-content","data-size":t,className:c("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",e),...i})]})}function ae({className:e,...t}){return n.jsx("div",{"data-slot":"alert-dialog-header",className:c("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",e),...t})}function ie({className:e,...t}){return n.jsx("div",{"data-slot":"alert-dialog-footer",className:c("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",e),...t})}function se({className:e,...t}){return n.jsx(A,{"data-slot":"alert-dialog-title",className:c("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",e),...t})}function ne({className:e,...t}){return n.jsx(T,{"data-slot":"alert-dialog-description",className:c("text-muted-foreground text-sm",e),...t})}function oe({className:e,variant:t="default",size:i="default",...a}){return n.jsx(q,{variant:t,size:i,asChild:!0,children:n.jsx(C,{"data-slot":"alert-dialog-action",className:c(e),...a})})}function re({className:e,variant:t="outline",size:i="default",...a}){return n.jsx(q,{variant:t,size:i,asChild:!0,children:n.jsx(I,{"data-slot":"alert-dialog-cancel",className:c(e),...a})})}function le({tags:e,onChange:t,placeholder:i,suggestions:a}){const[o,F]=y.useState(""),[p,m]=y.useState(-1),[w,g]=y.useState(!1),b=y.useRef(null),f=o&&a?a.filter(s=>s.toLowerCase().startsWith(o.toLowerCase())&&!e.includes(s)):[];function x(s){const l=s.trim().toLowerCase();l&&!e.includes(l)&&t([...e,l]),F(""),m(-1),g(!1)}function S(s){if(s.key==="ArrowDown"&&f.length>0){s.preventDefault(),m(l=>Math.min(l+1,f.length-1));return}if(s.key==="ArrowUp"&&f.length>0){s.preventDefault(),m(l=>Math.max(l-1,0));return}if(s.key==="Enter"||s.key===","){s.preventDefault(),p>=0&&p<f.length?x(f[p]):x(o);return}if(s.key==="Escape"){g(!1),m(-1);return}s.key==="Backspace"&&!o&&e.length>0&&t(e.slice(0,-1))}function $(s){t(e.filter(l=>l!==s))}return n.jsxs("div",{className:"relative",ref:b,children:[n.jsxs("div",{className:"flex flex-wrap gap-1 rounded-md border p-2 focus-within:ring-1 focus-within:ring-ring",children:[e.map(s=>n.jsxs(U,{variant:"secondary",className:"gap-1",children:[s,n.jsx("button",{type:"button",onClick:()=>$(s),className:"ml-0.5 rounded-full hover:bg-muted",children:n.jsx(N,{className:"h-3 w-3"})})]},s)),n.jsx(D,{value:o,onChange:s=>{F(s.target.value),m(-1),g(!0)},onKeyDown:S,onFocus:()=>g(!0),onBlur:()=>{setTimeout(()=>g(!1),150)},placeholder:e.length===0?i??"Add tags...":"",className:"min-w-[80px] flex-1 border-0 p-0 shadow-none focus-visible:ring-0"})]}),w&&f.length>0&&n.jsx("div",{className:"absolute z-10 mt-1 max-h-48 w-full overflow-auto rounded-md border bg-popover p-1 shadow-md",children:f.map((s,l)=>n.jsx("button",{type:"button",className:`w-full rounded-sm px-2 py-1.5 text-left text-sm ${l===p?"bg-accent text-accent-foreground":"hover:bg-accent/50"}`,onMouseDown:j=>{j.preventDefault(),x(s)},children:s},s))})]})}function de(e,t){const i=r();return h({queryKey:["sites",e,"media","item",t],queryFn:()=>i.apiFetch(`/v1/admin/sites/${e}/media/${t}`),enabled:!!e&&!!t})}function ce(e,t){const i=r(),a=new URLSearchParams;t?.tag&&a.set("tag",t.tag),t?.folderId!==void 0&&a.set("folderId",t.folderId),t?.q&&a.set("q",t.q),t?.sort&&a.set("sort",t.sort),t?.limit&&a.set("limit",String(t.limit));const o=a.toString();return h({queryKey:["sites",e,"media",t],queryFn:()=>i.apiFetch(`/v1/admin/sites/${e}/media${o?`?${o}`:""}`),enabled:!!e})}function ue(e,t){const i=r();return k({queryKey:["sites",e,"media","infinite",t],queryFn:({pageParam:a})=>{const o=new URLSearchParams;return a&&o.set("cursor",a),t?.tag&&o.set("tag",t.tag),t?.folderId!==void 0&&o.set("folderId",t.folderId),t?.q&&o.set("q",t.q),t?.sort&&o.set("sort",t.sort),t?.limit&&o.set("limit",String(t.limit)),i.apiFetch(`/v1/admin/sites/${e}/media?${o.toString()}`)},initialPageParam:void 0,getNextPageParam:a=>a.hasMore?a.cursor??void 0:void 0,enabled:!!e})}function fe(e){const t=r();return d({mutationFn:i=>t.apiFetch(`/v1/admin/sites/${e}/media/upload-url`,{method:"POST",body:JSON.stringify(i)})})}function me(e){const t=r(),i=u();return d({mutationFn:a=>t.apiFetch(`/v1/admin/sites/${e}/media/${a.mediaId}/complete`,{method:"POST",body:JSON.stringify({filename:a.filename,alt:a.alt,caption:a.caption,folderId:a.folderId})}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"media"]})})}function ge(e,t){const i=r(),a=u();return d({mutationFn:o=>i.apiFetch(`/v1/admin/sites/${e}/media/${t}`,{method:"PUT",body:JSON.stringify(o)}),onSuccess:()=>a.invalidateQueries({queryKey:["sites",e,"media"]})})}function pe(e,t){const i=r(),a=u();return d({mutationFn:()=>i.apiFetch(`/v1/admin/sites/${e}/media/${t}`,{method:"DELETE"}),onSuccess:()=>a.invalidateQueries({queryKey:["sites",e,"media"]})})}function ye(e){const t=r();return h({queryKey:["sites",e,"media","folders"],queryFn:()=>t.apiFetch(`/v1/admin/sites/${e}/media/folders`),enabled:!!e})}function he(e){const t=r(),i=u();return d({mutationFn:a=>t.apiFetch(`/v1/admin/sites/${e}/media/folders`,{method:"POST",body:JSON.stringify({name:a})}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"media","folders"]})})}function xe(e){const t=r(),i=u();return d({mutationFn:({folderId:a,name:o})=>t.apiFetch(`/v1/admin/sites/${e}/media/folders/${a}`,{method:"PUT",body:JSON.stringify({name:o})}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"media","folders"]})})}function ve(e){const t=r(),i=u();return d({mutationFn:a=>t.apiFetch(`/v1/admin/sites/${e}/media/folders/${a}`,{method:"DELETE"}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"media","folders"]})})}function Fe(e){const t=r(),i=u();return d({mutationFn:a=>t.apiFetch(`/v1/admin/sites/${e}/media/bulk`,{method:"POST",body:JSON.stringify(a)}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"media"]})})}function qe(e){const t=r();return d({mutationFn:({filename:i,size:a})=>t.apiFetch(`/v1/admin/sites/${e}/media/check-duplicate?filename=${encodeURIComponent(i)}&size=${a}`)})}function we(e,t){const i=r(),a=u();return d({mutationFn:o=>i.apiFetch(`/v1/admin/sites/${e}/media/${t}/save-transform`,{method:"POST",body:JSON.stringify(o)}),onSuccess:()=>a.invalidateQueries({queryKey:["sites",e,"media"]})})}function be(e,t){const i=r();return h({queryKey:["sites",e,"media","usage",t],queryFn:()=>i.apiFetch(`/v1/admin/sites/${e}/media/${t}/usage`),enabled:!!e&&!!t})}export{Z as A,W as E,X as F,le as T,Y as U,me as a,ye as b,ue as c,de as d,te as e,ae as f,se as g,ne as h,ie as i,re as j,oe as k,we as l,ge as m,pe as n,be as o,ee as p,he as q,xe as r,ve as s,Fe as t,fe as u,qe as v,ce as w};
1
+ import{o as v,w as c,B as q,X as N,I as D,e as r}from"./index-DX9xeoQx.js";import{j as n,a as u,b as d,u as h,d as k}from"./tanstack-oFmRhGwV.js";import{r as y}from"./react-vendor-B0Dih9Pj.js";import{x as z,y as M,z as A,B as T,E as I,F as C,G as K,H as O,J as P}from"./radix-lA_IxTIV.js";import{B as U}from"./badge-B8OxObuF.js";const E=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],W=v("ellipsis",E);const Q=[["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"}]],X=v("file",Q);const L=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Y=v("upload",L);function Z({...e}){return n.jsx(z,{"data-slot":"alert-dialog",...e})}function ee({...e}){return n.jsx(K,{"data-slot":"alert-dialog-trigger",...e})}function _({...e}){return n.jsx(O,{"data-slot":"alert-dialog-portal",...e})}function B({className:e,...t}){return n.jsx(P,{"data-slot":"alert-dialog-overlay",className:c("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...t})}function te({className:e,size:t="default",...i}){return n.jsxs(_,{children:[n.jsx(B,{}),n.jsx(M,{"data-slot":"alert-dialog-content","data-size":t,className:c("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg",e),...i})]})}function ae({className:e,...t}){return n.jsx("div",{"data-slot":"alert-dialog-header",className:c("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",e),...t})}function ie({className:e,...t}){return n.jsx("div",{"data-slot":"alert-dialog-footer",className:c("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",e),...t})}function se({className:e,...t}){return n.jsx(A,{"data-slot":"alert-dialog-title",className:c("text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",e),...t})}function ne({className:e,...t}){return n.jsx(T,{"data-slot":"alert-dialog-description",className:c("text-muted-foreground text-sm",e),...t})}function oe({className:e,variant:t="default",size:i="default",...a}){return n.jsx(q,{variant:t,size:i,asChild:!0,children:n.jsx(C,{"data-slot":"alert-dialog-action",className:c(e),...a})})}function re({className:e,variant:t="outline",size:i="default",...a}){return n.jsx(q,{variant:t,size:i,asChild:!0,children:n.jsx(I,{"data-slot":"alert-dialog-cancel",className:c(e),...a})})}function le({tags:e,onChange:t,placeholder:i,suggestions:a}){const[o,F]=y.useState(""),[p,m]=y.useState(-1),[w,g]=y.useState(!1),b=y.useRef(null),f=o&&a?a.filter(s=>s.toLowerCase().startsWith(o.toLowerCase())&&!e.includes(s)):[];function x(s){const l=s.trim().toLowerCase();l&&!e.includes(l)&&t([...e,l]),F(""),m(-1),g(!1)}function S(s){if(s.key==="ArrowDown"&&f.length>0){s.preventDefault(),m(l=>Math.min(l+1,f.length-1));return}if(s.key==="ArrowUp"&&f.length>0){s.preventDefault(),m(l=>Math.max(l-1,0));return}if(s.key==="Enter"||s.key===","){s.preventDefault(),p>=0&&p<f.length?x(f[p]):x(o);return}if(s.key==="Escape"){g(!1),m(-1);return}s.key==="Backspace"&&!o&&e.length>0&&t(e.slice(0,-1))}function $(s){t(e.filter(l=>l!==s))}return n.jsxs("div",{className:"relative",ref:b,children:[n.jsxs("div",{className:"flex flex-wrap gap-1 rounded-md border p-2 focus-within:ring-1 focus-within:ring-ring",children:[e.map(s=>n.jsxs(U,{variant:"secondary",className:"gap-1",children:[s,n.jsx("button",{type:"button",onClick:()=>$(s),className:"ml-0.5 rounded-full hover:bg-muted",children:n.jsx(N,{className:"h-3 w-3"})})]},s)),n.jsx(D,{value:o,onChange:s=>{F(s.target.value),m(-1),g(!0)},onKeyDown:S,onFocus:()=>g(!0),onBlur:()=>{setTimeout(()=>g(!1),150)},placeholder:e.length===0?i??"Add tags...":"",className:"min-w-[80px] flex-1 border-0 p-0 shadow-none focus-visible:ring-0"})]}),w&&f.length>0&&n.jsx("div",{className:"absolute z-10 mt-1 max-h-48 w-full overflow-auto rounded-md border bg-popover p-1 shadow-md",children:f.map((s,l)=>n.jsx("button",{type:"button",className:`w-full rounded-sm px-2 py-1.5 text-left text-sm ${l===p?"bg-accent text-accent-foreground":"hover:bg-accent/50"}`,onMouseDown:j=>{j.preventDefault(),x(s)},children:s},s))})]})}function de(e,t){const i=r();return h({queryKey:["sites",e,"media","item",t],queryFn:()=>i.apiFetch(`/v1/admin/sites/${e}/media/${t}`),enabled:!!e&&!!t})}function ce(e,t){const i=r(),a=new URLSearchParams;t?.tag&&a.set("tag",t.tag),t?.folderId!==void 0&&a.set("folderId",t.folderId),t?.q&&a.set("q",t.q),t?.sort&&a.set("sort",t.sort),t?.limit&&a.set("limit",String(t.limit));const o=a.toString();return h({queryKey:["sites",e,"media",t],queryFn:()=>i.apiFetch(`/v1/admin/sites/${e}/media${o?`?${o}`:""}`),enabled:!!e})}function ue(e,t){const i=r();return k({queryKey:["sites",e,"media","infinite",t],queryFn:({pageParam:a})=>{const o=new URLSearchParams;return a&&o.set("cursor",a),t?.tag&&o.set("tag",t.tag),t?.folderId!==void 0&&o.set("folderId",t.folderId),t?.q&&o.set("q",t.q),t?.sort&&o.set("sort",t.sort),t?.limit&&o.set("limit",String(t.limit)),i.apiFetch(`/v1/admin/sites/${e}/media?${o.toString()}`)},initialPageParam:void 0,getNextPageParam:a=>a.hasMore?a.cursor??void 0:void 0,enabled:!!e})}function fe(e){const t=r();return d({mutationFn:i=>t.apiFetch(`/v1/admin/sites/${e}/media/upload-url`,{method:"POST",body:JSON.stringify(i)})})}function me(e){const t=r(),i=u();return d({mutationFn:a=>t.apiFetch(`/v1/admin/sites/${e}/media/${a.mediaId}/complete`,{method:"POST",body:JSON.stringify({filename:a.filename,alt:a.alt,caption:a.caption,folderId:a.folderId})}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"media"]})})}function ge(e,t){const i=r(),a=u();return d({mutationFn:o=>i.apiFetch(`/v1/admin/sites/${e}/media/${t}`,{method:"PUT",body:JSON.stringify(o)}),onSuccess:()=>a.invalidateQueries({queryKey:["sites",e,"media"]})})}function pe(e,t){const i=r(),a=u();return d({mutationFn:()=>i.apiFetch(`/v1/admin/sites/${e}/media/${t}`,{method:"DELETE"}),onSuccess:()=>a.invalidateQueries({queryKey:["sites",e,"media"]})})}function ye(e){const t=r();return h({queryKey:["sites",e,"media","folders"],queryFn:()=>t.apiFetch(`/v1/admin/sites/${e}/media/folders`),enabled:!!e})}function he(e){const t=r(),i=u();return d({mutationFn:a=>t.apiFetch(`/v1/admin/sites/${e}/media/folders`,{method:"POST",body:JSON.stringify({name:a})}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"media","folders"]})})}function xe(e){const t=r(),i=u();return d({mutationFn:({folderId:a,name:o})=>t.apiFetch(`/v1/admin/sites/${e}/media/folders/${a}`,{method:"PUT",body:JSON.stringify({name:o})}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"media","folders"]})})}function ve(e){const t=r(),i=u();return d({mutationFn:a=>t.apiFetch(`/v1/admin/sites/${e}/media/folders/${a}`,{method:"DELETE"}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"media","folders"]})})}function Fe(e){const t=r(),i=u();return d({mutationFn:a=>t.apiFetch(`/v1/admin/sites/${e}/media/bulk`,{method:"POST",body:JSON.stringify(a)}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"media"]})})}function qe(e){const t=r();return d({mutationFn:({filename:i,size:a})=>t.apiFetch(`/v1/admin/sites/${e}/media/check-duplicate?filename=${encodeURIComponent(i)}&size=${a}`)})}function we(e,t){const i=r(),a=u();return d({mutationFn:o=>i.apiFetch(`/v1/admin/sites/${e}/media/${t}/save-transform`,{method:"POST",body:JSON.stringify(o)}),onSuccess:()=>a.invalidateQueries({queryKey:["sites",e,"media"]})})}function be(e,t){const i=r();return h({queryKey:["sites",e,"media","usage",t],queryFn:()=>i.apiFetch(`/v1/admin/sites/${e}/media/${t}/usage`),enabled:!!e&&!!t})}export{Z as A,W as E,X as F,le as T,Y as U,me as a,ye as b,ue as c,de as d,te as e,ae as f,se as g,ne as h,ie as i,re as j,oe as k,we as l,ge as m,pe as n,be as o,ee as p,he as q,xe as r,ve as s,Fe as t,fe as u,qe as v,ce as w};
@@ -1 +1 @@
1
- import{u as r,a as i,b as u}from"./tanstack-BO6c-AOu.js";import{e as a}from"./index-CwkwXbO-.js";function m(e){const t=a();return r({queryKey:["sites",e,"tags"],queryFn:async()=>(await t.apiFetch(`/v1/admin/sites/${e}/tags`)).tags,enabled:!!e})}function y(e){const t=a(),s=i();return u({mutationFn:n=>t.apiFetch(`/v1/admin/sites/${e}/tags`,{method:"POST",body:JSON.stringify({tag:n})}),onSuccess:()=>s.invalidateQueries({queryKey:["sites",e,"tags"]})})}function d(e){const t=a(),s=i();return u({mutationFn:n=>t.apiFetch(`/v1/admin/sites/${e}/tags/${encodeURIComponent(n)}`,{method:"DELETE"}),onSuccess:()=>s.invalidateQueries({queryKey:["sites",e,"tags"]})})}export{y as a,d as b,m as u};
1
+ import{u as r,a as i,b as u}from"./tanstack-oFmRhGwV.js";import{e as a}from"./index-DX9xeoQx.js";function m(e){const t=a();return r({queryKey:["sites",e,"tags"],queryFn:async()=>(await t.apiFetch(`/v1/admin/sites/${e}/tags`)).tags,enabled:!!e})}function y(e){const t=a(),s=i();return u({mutationFn:n=>t.apiFetch(`/v1/admin/sites/${e}/tags`,{method:"POST",body:JSON.stringify({tag:n})}),onSuccess:()=>s.invalidateQueries({queryKey:["sites",e,"tags"]})})}function d(e){const t=a(),s=i();return u({mutationFn:n=>t.apiFetch(`/v1/admin/sites/${e}/tags/${encodeURIComponent(n)}`,{method:"DELETE"}),onSuccess:()=>s.invalidateQueries({queryKey:["sites",e,"tags"]})})}export{y as a,d as b,m as u};
@@ -1 +1 @@
1
- import{u,a,b as o}from"./tanstack-BO6c-AOu.js";import{e as n}from"./index-CwkwXbO-.js";function y(e){const s=n();return u({queryKey:["sites",e,"webhooks"],queryFn:async()=>({items:(await s.apiFetch(`/v1/admin/sites/${e}/webhooks`)).webhooks}),enabled:!!e})}function d(e,s){const t=n();return u({queryKey:["sites",e,"webhooks",s],queryFn:()=>t.apiFetch(`/v1/admin/sites/${e}/webhooks/${s}`),enabled:!!e&&!!s})}function m(e){const s=n(),t=a();return o({mutationFn:i=>s.apiFetch(`/v1/admin/sites/${e}/webhooks`,{method:"POST",body:JSON.stringify(i)}),onSuccess:()=>t.invalidateQueries({queryKey:["sites",e,"webhooks"]})})}function h(e,s){const t=n(),i=a();return o({mutationFn:c=>t.apiFetch(`/v1/admin/sites/${e}/webhooks/${s}`,{method:"PUT",body:JSON.stringify(c)}),onSuccess:()=>{i.invalidateQueries({queryKey:["sites",e,"webhooks"]})}})}function l(e,s){const t=n(),i=a();return o({mutationFn:()=>t.apiFetch(`/v1/admin/sites/${e}/webhooks/${s}`,{method:"DELETE"}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"webhooks"]})})}function k(e,s){const t=n();return o({mutationFn:()=>t.apiFetch(`/v1/admin/sites/${e}/webhooks/${s}/test`,{method:"POST"})})}function v(e,s){const t=n();return u({queryKey:["sites",e,"webhooks",s,"deliveries"],queryFn:()=>t.apiFetch(`/v1/admin/sites/${e}/webhooks/${s}/deliveries`),enabled:!!e&&!!s})}export{d as a,m as b,h as c,l as d,k as e,v as f,y as u};
1
+ import{u,a,b as o}from"./tanstack-oFmRhGwV.js";import{e as n}from"./index-DX9xeoQx.js";function y(e){const s=n();return u({queryKey:["sites",e,"webhooks"],queryFn:async()=>({items:(await s.apiFetch(`/v1/admin/sites/${e}/webhooks`)).webhooks}),enabled:!!e})}function d(e,s){const t=n();return u({queryKey:["sites",e,"webhooks",s],queryFn:()=>t.apiFetch(`/v1/admin/sites/${e}/webhooks/${s}`),enabled:!!e&&!!s})}function m(e){const s=n(),t=a();return o({mutationFn:i=>s.apiFetch(`/v1/admin/sites/${e}/webhooks`,{method:"POST",body:JSON.stringify(i)}),onSuccess:()=>t.invalidateQueries({queryKey:["sites",e,"webhooks"]})})}function h(e,s){const t=n(),i=a();return o({mutationFn:c=>t.apiFetch(`/v1/admin/sites/${e}/webhooks/${s}`,{method:"PUT",body:JSON.stringify(c)}),onSuccess:()=>{i.invalidateQueries({queryKey:["sites",e,"webhooks"]})}})}function l(e,s){const t=n(),i=a();return o({mutationFn:()=>t.apiFetch(`/v1/admin/sites/${e}/webhooks/${s}`,{method:"DELETE"}),onSuccess:()=>i.invalidateQueries({queryKey:["sites",e,"webhooks"]})})}function k(e,s){const t=n();return o({mutationFn:()=>t.apiFetch(`/v1/admin/sites/${e}/webhooks/${s}/test`,{method:"POST"})})}function v(e,s){const t=n();return u({queryKey:["sites",e,"webhooks",s,"deliveries"],queryFn:()=>t.apiFetch(`/v1/admin/sites/${e}/webhooks/${s}/deliveries`),enabled:!!e&&!!s})}export{d as a,m as b,h as c,l as d,k as e,v as f,y as u};
package/admin/index.html CHANGED
@@ -10,11 +10,11 @@
10
10
  <meta name="apple-mobile-web-app-title" content="Headroom" />
11
11
  <link rel="apple-touch-icon" href="/icons/icon-180x180.png" />
12
12
  <title>Headroom CMS</title>
13
- <script type="module" crossorigin src="/assets/index-CwkwXbO-.js"></script>
14
- <link rel="modulepreload" crossorigin href="/assets/react-vendor-DNVhVxD7.js">
15
- <link rel="modulepreload" crossorigin href="/assets/tanstack-BO6c-AOu.js">
16
- <link rel="modulepreload" crossorigin href="/assets/radix-n1vDIPi6.js">
17
- <link rel="stylesheet" crossorigin href="/assets/index-FYfbavkE.css">
13
+ <script type="module" crossorigin src="/assets/index-DX9xeoQx.js"></script>
14
+ <link rel="modulepreload" crossorigin href="/assets/react-vendor-B0Dih9Pj.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/tanstack-oFmRhGwV.js">
16
+ <link rel="modulepreload" crossorigin href="/assets/radix-lA_IxTIV.js">
17
+ <link rel="stylesheet" crossorigin href="/assets/index-PpbsYFRh.css">
18
18
  <link rel="manifest" href="/manifest.webmanifest"></head>
19
19
  <body>
20
20
  <script>
package/admin/sw.js CHANGED
@@ -1 +1 @@
1
- if(!self.define){let s,e={};const l=(l,i)=>(l=new URL(l+".js",i).href,e[l]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()}).then(()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s}));self.define=(i,n)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let u={};const o=s=>l(s,r),a={module:{uri:r},exports:u,require:o};e[r]=Promise.all(i.map(s=>a[s]||o(s))).then(s=>(n(...s),u))}}define(["./workbox-7d58179f"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"vite.svg",revision:"8e3a10e157f75ada21ab742c022d5430"},{url:"index.html",revision:"c26a1e99ad36b20ccc332e80223d3e6c"},{url:"icons/maskable-icon-512x512.png",revision:"d6913dcae3805185fad0790a20eae097"},{url:"icons/icon-512x512.png",revision:"ed25f5ccf87506782ee42be66318531b"},{url:"icons/icon-192x192.png",revision:"578d0c18e97882eaae9436f3bdd3c446"},{url:"icons/icon-180x180.png",revision:"8a45d7715a9f2f3a8b929a791b4a67e1"},{url:"assets/workbox-window.prod.es5-BIl4cyR9.js",revision:null},{url:"assets/useWebhooks-DS4Ee8Wk.js",revision:null},{url:"assets/useTags-BB47vbXO.js",revision:null},{url:"assets/useMedia-DjiNKMOU.js",revision:null},{url:"assets/useDebouncedValue-Bf8UizjU.js",revision:null},{url:"assets/useContent-Cp41wBYR.js",revision:null},{url:"assets/useAdminResolver-B-_1f6SR.js",revision:null},{url:"assets/use-mobile-Cvl5tIVY.js",revision:null},{url:"assets/trash-2-CbbWF_O4.js",revision:null},{url:"assets/tanstack-BO6c-AOu.js",revision:null},{url:"assets/table-D4rLgOKa.js",revision:null},{url:"assets/sortable.esm-BUhmZW2_.js",revision:null},{url:"assets/select-Cj54Wt-H.js",revision:null},{url:"assets/search-DRNC6QB5.js",revision:null},{url:"assets/react-vendor-DNVhVxD7.js",revision:null},{url:"assets/radix-n1vDIPi6.js",revision:null},{url:"assets/popover-DFInMOpa.js",revision:null},{url:"assets/plus-2Ds_MoqB.js",revision:null},{url:"assets/native-48B9X9Wg.js",revision:null},{url:"assets/module-RjUF93sV.js",revision:null},{url:"assets/lib-BrI1UB_t.js",revision:null},{url:"assets/index-FYfbavkE.css",revision:null},{url:"assets/index-CwkwXbO-.js",revision:null},{url:"assets/format-C88SDH8g.js",revision:null},{url:"assets/core.esm-BtFZvlg0.js",revision:null},{url:"assets/copy-fXL6Ngxi.js",revision:null},{url:"assets/contentStatus-BmaiYVOm.js",revision:null},{url:"assets/command-98iA8Va4.js",revision:null},{url:"assets/checkbox-VtCfoGic.js",revision:null},{url:"assets/check-BMpruHpO.js",revision:null},{url:"assets/card-DpNr7WTb.js",revision:null},{url:"assets/badge-ChZ2DZue.js",revision:null},{url:"assets/WebhooksPage-CG7WC9Bq.js",revision:null},{url:"assets/WebhookEditPage-BUvLl4rY.js",revision:null},{url:"assets/UsersPage-D_nOx6W9.js",revision:null},{url:"assets/TagsPage-DNlaoFCE.js",revision:null},{url:"assets/SitesPage-DnCiSu23.js",revision:null},{url:"assets/SiteSettingsPage-xfAm3ZKQ.js",revision:null},{url:"assets/MediaPage-DfPQBmNf.css",revision:null},{url:"assets/MediaPage-Cad4n33B.js",revision:null},{url:"assets/LoginPage-BlJXP0GH.js",revision:null},{url:"assets/FieldBuilder-B3-3MTqp.js",revision:null},{url:"assets/CustomBlockPreview-CCiZrZhi.js",revision:null},{url:"assets/ContentListPage-llAlhZTH.js",revision:null},{url:"assets/ContentEditPage-DyqgEoAe.js",revision:null},{url:"assets/ContentCreatePage-DujNZXXj.js",revision:null},{url:"assets/CollectionsPage-D-QTkoW_.js",revision:null},{url:"assets/CollectionEditPage-CQGo9Cbu.js",revision:null},{url:"assets/BulkActionBar-BX-t8fyM.js",revision:null},{url:"assets/BlockTypesPage-Pf9u78-O.js",revision:null},{url:"assets/BlockTypeEditPage-BYJfEA6l.js",revision:null},{url:"assets/BlockEditor-Cp_wZ2xN.css",revision:null},{url:"assets/BlockEditor-C0KaZUHQ.js",revision:null},{url:"assets/AuditPage-BwhYu96L.js",revision:null},{url:"assets/ApiKeysPage-DONrd-TJ.js",revision:null},{url:"assets/AllContentPage-DShBvFru.js",revision:null},{url:"assets/AdminsPage-DYJhlQnA.js",revision:null},{url:"icons/icon-180x180.png",revision:"8a45d7715a9f2f3a8b929a791b4a67e1"},{url:"icons/icon-192x192.png",revision:"578d0c18e97882eaae9436f3bdd3c446"},{url:"icons/icon-512x512.png",revision:"ed25f5ccf87506782ee42be66318531b"},{url:"icons/maskable-icon-512x512.png",revision:"d6913dcae3805185fad0790a20eae097"},{url:"manifest.webmanifest",revision:"be12a951409033222ff660a548620488"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"),{denylist:[/^\/v1\//]})),s.registerRoute(({url:s})=>s.pathname.startsWith("/v1/admin/"),new s.NetworkFirst({cacheName:"api-cache",networkTimeoutSeconds:10,plugins:[new s.ExpirationPlugin({maxEntries:200,maxAgeSeconds:3600}),new s.CacheableResponsePlugin({statuses:[200]})]}),"GET"),s.registerRoute(({request:s})=>"image"===s.destination,new s.CacheFirst({cacheName:"media-cache",plugins:[new s.ExpirationPlugin({maxEntries:500,maxAgeSeconds:604800}),new s.CacheableResponsePlugin({statuses:[200]})]}),"GET")});
1
+ if(!self.define){let s,e={};const l=(l,n)=>(l=new URL(l+".js",n).href,e[l]||new Promise(e=>{if("document"in self){const s=document.createElement("script");s.src=l,s.onload=e,document.head.appendChild(s)}else s=l,importScripts(l),e()}).then(()=>{let s=e[l];if(!s)throw new Error(`Module ${l} didn’t register its module`);return s}));self.define=(n,i)=>{const r=s||("document"in self?document.currentScript.src:"")||location.href;if(e[r])return;let u={};const o=s=>l(s,r),a={module:{uri:r},exports:u,require:o};e[r]=Promise.all(n.map(s=>a[s]||o(s))).then(s=>(i(...s),u))}}define(["./workbox-7d58179f"],function(s){"use strict";self.skipWaiting(),s.clientsClaim(),s.precacheAndRoute([{url:"vite.svg",revision:"8e3a10e157f75ada21ab742c022d5430"},{url:"index.html",revision:"ae2eb739320b3bb2559fd86c028b2821"},{url:"icons/maskable-icon-512x512.png",revision:"d6913dcae3805185fad0790a20eae097"},{url:"icons/icon-512x512.png",revision:"ed25f5ccf87506782ee42be66318531b"},{url:"icons/icon-192x192.png",revision:"578d0c18e97882eaae9436f3bdd3c446"},{url:"icons/icon-180x180.png",revision:"8a45d7715a9f2f3a8b929a791b4a67e1"},{url:"assets/workbox-window.prod.es5-BIl4cyR9.js",revision:null},{url:"assets/useWebhooks-Cx9tbBME.js",revision:null},{url:"assets/useTags-BuXf7_7H.js",revision:null},{url:"assets/useMedia-DkvP1QLG.js",revision:null},{url:"assets/useDebouncedValue-DHUCnm9B.js",revision:null},{url:"assets/useContent-f19XHVlJ.js",revision:null},{url:"assets/useAdminResolver-D6B6RXnk.js",revision:null},{url:"assets/use-mobile-C1r2eP64.js",revision:null},{url:"assets/trash-2-CWWRVuRB.js",revision:null},{url:"assets/tanstack-oFmRhGwV.js",revision:null},{url:"assets/table-BjSue8Ev.js",revision:null},{url:"assets/sortable.esm-CBJBhe4k.js",revision:null},{url:"assets/select-CHW5R8qv.js",revision:null},{url:"assets/search-C-3Q9nn7.js",revision:null},{url:"assets/react-vendor-B0Dih9Pj.js",revision:null},{url:"assets/radix-lA_IxTIV.js",revision:null},{url:"assets/popover-Cou924mw.js",revision:null},{url:"assets/plus-HdRn2U0S.js",revision:null},{url:"assets/native-48B9X9Wg.js",revision:null},{url:"assets/module-RjUF93sV.js",revision:null},{url:"assets/lib-BrI1UB_t.js",revision:null},{url:"assets/index-PpbsYFRh.css",revision:null},{url:"assets/index-DX9xeoQx.js",revision:null},{url:"assets/format-C88SDH8g.js",revision:null},{url:"assets/core.esm-DRuhixPo.js",revision:null},{url:"assets/copy-CgYzmj06.js",revision:null},{url:"assets/contentStatus-BmaiYVOm.js",revision:null},{url:"assets/command-qGFnWxcS.js",revision:null},{url:"assets/checkbox-BV2kjQBe.js",revision:null},{url:"assets/check-CxKAR64t.js",revision:null},{url:"assets/card-C7fgQS_U.js",revision:null},{url:"assets/badge-B8OxObuF.js",revision:null},{url:"assets/WebhooksPage-BUE6XuIP.js",revision:null},{url:"assets/WebhookEditPage-BrXm8Dht.js",revision:null},{url:"assets/UsersPage-BayuQyLh.js",revision:null},{url:"assets/TagsPage-BxSwTLpQ.js",revision:null},{url:"assets/SitesPage-BD9tou9-.js",revision:null},{url:"assets/SiteSettingsPage-xkngL15i.js",revision:null},{url:"assets/MediaPage-DfPQBmNf.css",revision:null},{url:"assets/MediaPage-CeepVDHQ.js",revision:null},{url:"assets/LoginPage-uxiw8K1J.js",revision:null},{url:"assets/FieldBuilder-Ds-agLm7.js",revision:null},{url:"assets/CustomBlockPreview-ers8OdZ0.js",revision:null},{url:"assets/ContentListPage-qFcZVzg9.js",revision:null},{url:"assets/ContentEditPage-RtHbU_l4.js",revision:null},{url:"assets/ContentCreatePage-DZCyOcte.js",revision:null},{url:"assets/CollectionsPage-CxnSFPCH.js",revision:null},{url:"assets/CollectionEditPage-Cimkb84B.js",revision:null},{url:"assets/BulkActionBar-C-88Wnqw.js",revision:null},{url:"assets/BlockTypesPage-CwsGPuAZ.js",revision:null},{url:"assets/BlockTypeEditPage-Dr_yNLDI.js",revision:null},{url:"assets/BlockEditor-uSyk_TPt.js",revision:null},{url:"assets/BlockEditor-Cp_wZ2xN.css",revision:null},{url:"assets/AuditPage-ClgwR_8y.js",revision:null},{url:"assets/ApiKeysPage-FLex3Chc.js",revision:null},{url:"assets/AllContentPage-Cnkt8Fgm.js",revision:null},{url:"assets/AdminsPage-Cvqw6UOu.js",revision:null},{url:"icons/icon-180x180.png",revision:"8a45d7715a9f2f3a8b929a791b4a67e1"},{url:"icons/icon-192x192.png",revision:"578d0c18e97882eaae9436f3bdd3c446"},{url:"icons/icon-512x512.png",revision:"ed25f5ccf87506782ee42be66318531b"},{url:"icons/maskable-icon-512x512.png",revision:"d6913dcae3805185fad0790a20eae097"},{url:"manifest.webmanifest",revision:"be12a951409033222ff660a548620488"}],{}),s.cleanupOutdatedCaches(),s.registerRoute(new s.NavigationRoute(s.createHandlerBoundToURL("index.html"),{denylist:[/^\/v1\//]})),s.registerRoute(({url:s})=>s.pathname.startsWith("/v1/admin/"),new s.NetworkFirst({cacheName:"api-cache",networkTimeoutSeconds:10,plugins:[new s.ExpirationPlugin({maxEntries:200,maxAgeSeconds:3600}),new s.CacheableResponsePlugin({statuses:[200]})]}),"GET"),s.registerRoute(({request:s})=>"image"===s.destination,new s.CacheFirst({cacheName:"media-cache",plugins:[new s.ExpirationPlugin({maxEntries:500,maxAgeSeconds:604800}),new s.CacheableResponsePlugin({statuses:[200]})]}),"GET")});
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "headroom-cms",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Headroom CMS — Serverless headless CMS for AWS, deployed with SST",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/BlockEditor-C0KaZUHQ.js","assets/tanstack-BO6c-AOu.js","assets/react-vendor-DNVhVxD7.js","assets/index-CwkwXbO-.js","assets/radix-n1vDIPi6.js","assets/index-FYfbavkE.css","assets/command-98iA8Va4.js","assets/search-DRNC6QB5.js","assets/badge-ChZ2DZue.js","assets/use-mobile-Cvl5tIVY.js","assets/CustomBlockPreview-CCiZrZhi.js","assets/useContent-Cp41wBYR.js","assets/useAdminResolver-B-_1f6SR.js","assets/select-Cj54Wt-H.js","assets/check-BMpruHpO.js","assets/format-C88SDH8g.js","assets/sortable.esm-BUhmZW2_.js","assets/core.esm-BtFZvlg0.js","assets/card-DpNr7WTb.js","assets/useMedia-DjiNKMOU.js","assets/useTags-BB47vbXO.js","assets/popover-DFInMOpa.js","assets/useDebouncedValue-Bf8UizjU.js","assets/plus-2Ds_MoqB.js","assets/checkbox-VtCfoGic.js","assets/trash-2-CbbWF_O4.js","assets/contentStatus-BmaiYVOm.js","assets/BlockEditor-Cp_wZ2xN.css"])))=>i.map(i=>d[i]);
2
- import{j as e,u as At}from"./tanstack-BO6c-AOu.js";import{r as x,u as Ce,e as Tt,L as Lt}from"./react-vendor-DNVhVxD7.js";import{f as _t,g as Ls,h as Mt,i as _s,j as Ot,k as Ft,l as Rt,m as Et,n as $t,o as Ut,p as Vt,q as zt,r as Ms}from"./useContent-Cp41wBYR.js";import{o as we,x as Os,y as Bt,w as X,z as Ht,A as Wt,C as qt,E as Jt,S as O,T as Fs,F as Rs,G as xe,J as fe,D as ge,j as je,k as ve,l as ye,m as be,I as ie,B as v,a as z,K as Ue,t as L,e as Es,M as Z,X as ee,N as Kt,_ as Gt,L as ne,v as Qt,O as ws,P as Ss,Q as Yt,R as ks,V as Le,n as Oe,W as Xt,i as Zt}from"./index-CwkwXbO-.js";import{u as en}from"./useAdminResolver-B-_1f6SR.js";import{m as Ve,u as $s}from"./use-mobile-Cvl5tIVY.js";import{S as ze,a as Be,b as He,c as We,d as J,e as sn,f as tn,g as nn}from"./select-Cj54Wt-H.js";import{f as W,a as _e}from"./format-C88SDH8g.js";import{u as Us,S as qe,v as Je,a as Ke,T as Vs,C as zs,b as Bs,c as Hs}from"./sortable.esm-BUhmZW2_.js";import{B as le}from"./badge-ChZ2DZue.js";import{C as B,a as Fe,b as Re,c as q}from"./card-DpNr7WTb.js";import{u as an,a as ln,b as rn,c as on,U as cn,F as dn,d as Ws,T as un,E as hn,A as mn,e as pn,f as xn,g as fn,h as gn,i as jn,j as vn,k as yn}from"./useMedia-DjiNKMOU.js";import{u as bn}from"./useTags-BB47vbXO.js";import{C as qs,G as Js,u as Ge,a as Qe,P as Ye,D as Xe,c as Ze,b as Ks}from"./core.esm-BtFZvlg0.js";import{P as Nn,a as Cn,b as wn}from"./popover-DFInMOpa.js";import{C as Sn,a as kn,b as Pn,c as In,d as Dn,e as An}from"./command-98iA8Va4.js";import{u as Tn}from"./useDebouncedValue-Bf8UizjU.js";import{P as es}from"./plus-2Ds_MoqB.js";import{C as Ln}from"./checkbox-VtCfoGic.js";import{T as Gs}from"./trash-2-CbbWF_O4.js";import{g as _n,a as Mn,b as On}from"./contentStatus-BmaiYVOm.js";import{C as Ps}from"./check-BMpruHpO.js";const Fn=[["path",{d:"M16 14v2.2l1.6 1",key:"fo4ql5"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]],Is=we("calendar-clock",Fn);const Rn=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],En=we("eye",Rn);const $n=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Un=we("pencil",$n);const Vn=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],zn=we("rotate-ccw",Vn),Bn=3e3,Hn="__HEADROOM_API_URL__".replace(/\/+$/,"");function Wn(i,s,n,t){const a=_t(i,s),l=x.useRef(null),r=x.useRef(n?JSON.stringify(n):""),o=x.useRef(void 0),[u,d]=x.useState(null),[p,b]=x.useState(null),h=x.useRef(!1),f=x.useCallback(m=>{JSON.stringify(m)!==r.current&&(l.current=m,clearTimeout(o.current),o.current=window.setTimeout(()=>{if(l.current){const P=l.current,C=JSON.stringify(P);l.current=null,a.mutate(P,{onSuccess:S=>{if(h.current){h.current=!1;return}r.current=C,d(Date.now()),S?.blockId&&b(S.blockId)},onError:S=>{S instanceof Os&&S.code==="SLUG_TAKEN"&&t?.()}})}},Bn))},[a,t]),g=x.useCallback(async m=>{if(clearTimeout(o.current),l.current){const y={...l.current};m?.createVersion&&(y.createVersion=!0);const P=JSON.stringify(l.current);l.current=null;const C=await a.mutateAsync(y);r.current=P,d(Date.now()),C?.blockId&&b(C.blockId)}else if(m?.createVersion&&r.current){const P={...JSON.parse(r.current),createVersion:!0},C=await a.mutateAsync(P);d(Date.now()),C?.blockId&&b(C.blockId)}},[a]),N=x.useCallback(()=>{clearTimeout(o.current),l.current=null},[]),w=x.useCallback(m=>{r.current=JSON.stringify(m)},[]),k=x.useCallback(()=>{clearTimeout(o.current),l.current=null,h.current=!0,b(null)},[]);return x.useEffect(()=>()=>{if(clearTimeout(o.current),l.current){const m=JSON.stringify(l.current),y=Bt(),P=`${Hn}/v1/admin/sites/${i}/content/${s}/draft`;fetch(P,{method:"PUT",body:m,headers:{"Content-Type":"application/json",...y?{Authorization:`Bearer ${y}`}:{}},keepalive:!0}).catch(()=>{}),l.current=null}},[i,s]),{schedule:f,flush:g,cancel:N,resetBaseline:w,discard:k,isSaving:a.isPending,lastSavedAt:u,lastSavedBlockId:p}}function qn({lines:i}){return e.jsx("div",{className:"font-mono text-sm leading-relaxed",children:i.map((s,n)=>e.jsx("div",{style:{paddingLeft:`${s.indent*1.5}rem`},className:X("min-h-[1.5em]",s.type==="label"&&"text-muted-foreground font-semibold mt-1",s.type==="heading"&&"font-bold",s.type==="empty"&&"h-2"),children:s.text},n))})}class Jn{diff(s,n,t={}){let a;typeof t=="function"?(a=t,t={}):"callback"in t&&(a=t.callback);const l=this.castInput(s,t),r=this.castInput(n,t),o=this.removeEmpty(this.tokenize(l,t)),u=this.removeEmpty(this.tokenize(r,t));return this.diffWithOptionsObj(o,u,t,a)}diffWithOptionsObj(s,n,t,a){var l;const r=m=>{if(m=this.postProcess(m,t),a){setTimeout(function(){a(m)},0);return}else return m},o=n.length,u=s.length;let d=1,p=o+u;t.maxEditLength!=null&&(p=Math.min(p,t.maxEditLength));const b=(l=t.timeout)!==null&&l!==void 0?l:1/0,h=Date.now()+b,f=[{oldPos:-1,lastComponent:void 0}];let g=this.extractCommon(f[0],n,s,0,t);if(f[0].oldPos+1>=u&&g+1>=o)return r(this.buildValues(f[0].lastComponent,n,s));let N=-1/0,w=1/0;const k=()=>{for(let m=Math.max(N,-d);m<=Math.min(w,d);m+=2){let y;const P=f[m-1],C=f[m+1];P&&(f[m-1]=void 0);let S=!1;if(C){const D=C.oldPos-m;S=C&&0<=D&&D<o}const A=P&&P.oldPos+1<u;if(!S&&!A){f[m]=void 0;continue}if(!A||S&&P.oldPos<C.oldPos?y=this.addToPath(C,!0,!1,0,t):y=this.addToPath(P,!1,!0,1,t),g=this.extractCommon(y,n,s,m,t),y.oldPos+1>=u&&g+1>=o)return r(this.buildValues(y.lastComponent,n,s))||!0;f[m]=y,y.oldPos+1>=u&&(w=Math.min(w,m-1)),g+1>=o&&(N=Math.max(N,m+1))}d++};if(a)(function m(){setTimeout(function(){if(d>p||Date.now()>h)return a(void 0);k()||m()},0)})();else for(;d<=p&&Date.now()<=h;){const m=k();if(m)return m}}addToPath(s,n,t,a,l){const r=s.lastComponent;return r&&!l.oneChangePerToken&&r.added===n&&r.removed===t?{oldPos:s.oldPos+a,lastComponent:{count:r.count+1,added:n,removed:t,previousComponent:r.previousComponent}}:{oldPos:s.oldPos+a,lastComponent:{count:1,added:n,removed:t,previousComponent:r}}}extractCommon(s,n,t,a,l){const r=n.length,o=t.length;let u=s.oldPos,d=u-a,p=0;for(;d+1<r&&u+1<o&&this.equals(t[u+1],n[d+1],l);)d++,u++,p++,l.oneChangePerToken&&(s.lastComponent={count:1,previousComponent:s.lastComponent,added:!1,removed:!1});return p&&!l.oneChangePerToken&&(s.lastComponent={count:p,previousComponent:s.lastComponent,added:!1,removed:!1}),s.oldPos=u,d}equals(s,n,t){return t.comparator?t.comparator(s,n):s===n||!!t.ignoreCase&&s.toLowerCase()===n.toLowerCase()}removeEmpty(s){const n=[];for(let t=0;t<s.length;t++)s[t]&&n.push(s[t]);return n}castInput(s,n){return s}tokenize(s,n){return Array.from(s)}join(s){return s.join("")}postProcess(s,n){return s}get useLongestToken(){return!1}buildValues(s,n,t){const a=[];let l;for(;s;)a.push(s),l=s.previousComponent,delete s.previousComponent,s=l;a.reverse();const r=a.length;let o=0,u=0,d=0;for(;o<r;o++){const p=a[o];if(p.removed)p.value=this.join(t.slice(d,d+p.count)),d+=p.count;else{if(!p.added&&this.useLongestToken){let b=n.slice(u,u+p.count);b=b.map(function(h,f){const g=t[d+f];return g.length>h.length?g:h}),p.value=this.join(b)}else p.value=this.join(n.slice(u,u+p.count));u+=p.count,p.added||(d+=p.count)}}return a}}class Kn extends Jn{tokenize(s){return s.slice()}join(s){return s}removeEmpty(s){return s}}const Gn=new Kn;function Qs(i,s,n){return Gn.diff(i,s,n)}const Qn=5;function Yn({published:i,draft:s,leftLabel:n="Published",rightLabel:t="Draft"}){const a=x.useMemo(()=>ea(i,s),[i,s]),l=x.useMemo(()=>sa(a),[a]);return a.every(r=>r.type==="unchanged")?e.jsxs("p",{className:"text-sm text-muted-foreground italic py-4",children:["No changes between ",n," and ",t," versions."]}):e.jsxs("div",{className:"font-mono text-xs leading-relaxed border rounded-md overflow-hidden",children:[e.jsxs("div",{className:"grid grid-cols-2 border-b bg-muted/50 text-muted-foreground text-[10px] font-semibold",children:[e.jsx("div",{className:"px-3 py-1.5",children:n}),e.jsx("div",{className:"px-3 py-1.5 border-l",children:t})]}),e.jsx("div",{children:l.map((r,o)=>e.jsx(Xn,{segment:r},o))})]})}function Xn({segment:i}){const[s,n]=x.useState(!1);return i.type==="collapsed"&&!s?e.jsxs("button",{onClick:()=>n(!0),className:"w-full grid grid-cols-2 text-[10px] text-muted-foreground bg-muted/30 hover:bg-muted/50 transition-colors cursor-pointer",children:[e.jsxs("div",{className:"px-3 py-1 text-center border-b",children:["... ",i.count," unchanged lines ..."]}),e.jsxs("div",{className:"px-3 py-1 text-center border-l border-b",children:["... ",i.count," unchanged lines ..."]})]}):i.type==="collapsed"?null:e.jsx(e.Fragment,{children:i.rows.map((t,a)=>e.jsx(Zn,{row:t},a))})}function Zn({row:i}){return e.jsxs("div",{className:"grid grid-cols-2 border-b last:border-b-0",children:[e.jsx("div",{className:X("px-3 py-0.5 min-h-[1.5em]",i.type==="removed"&&"bg-red-50 dark:bg-red-950/30"),style:i.left?{paddingLeft:`calc(0.75rem + ${i.left.indent*1}rem)`}:void 0,children:e.jsx("span",{className:X(i.left?.type==="label"&&"text-muted-foreground font-semibold",i.left?.type==="heading"&&"font-bold"),children:i.left?.text??""})}),e.jsx("div",{className:X("px-3 py-0.5 min-h-[1.5em] border-l",i.type==="added"&&"bg-green-50 dark:bg-green-950/30"),style:i.right?{paddingLeft:`calc(0.75rem + ${i.right.indent*1}rem)`}:void 0,children:e.jsx("span",{className:X(i.right?.type==="label"&&"text-muted-foreground font-semibold",i.right?.type==="heading"&&"font-bold"),children:i.right?.text??""})})]})}function ea(i,s){const n=Qs(i,s,{comparator:(a,l)=>a.text===l.text&&a.indent===l.indent&&a.type===l.type}),t=[];for(const a of n)if(a.added)for(const l of a.value)t.push({type:"added",right:l});else if(a.removed)for(const l of a.value)t.push({type:"removed",left:l});else for(const l of a.value)t.push({type:"unchanged",left:l,right:l});return t}function sa(i){const s=[];let n=[];function t(){if(n.length!==0){if(n.length>Qn){const r=n.slice(0,2),o=n.slice(-2),u=n.length-4;s.push({type:"rows",rows:r}),u>0&&s.push({type:"collapsed",count:u}),s.push({type:"rows",rows:o})}else s.push({type:"rows",rows:n});n=[]}}let a=[];function l(){a.length!==0&&(s.push({type:"rows",rows:a}),a=[])}for(const r of i)r.type==="unchanged"?(l(),n.push(r)):(t(),a.push(r));return l(),t(),s}function Ee(i){switch(i.kind){case"draft":return"Draft";case"published":return"Published";case"history":return W(i.createdAt)}}function Ne(i){switch(i.kind){case"draft":return"draft";case"published":return"published";case"history":return`history:${i.blockId}`}}function Ds({value:i,onChange:s,isPublished:n,versions:t,exclude:a,size:l}){const r=a?Ne(a):null;function o(u){if(u==="draft")s({kind:"draft"});else if(u==="published")s({kind:"published"});else if(u.startsWith("history:")){const d=u.slice(8),p=t.find(b=>b.blockId===d);p&&s({kind:"history",blockId:p.blockId,createdAt:p.createdAt,title:p.title})}}return e.jsxs(ze,{value:Ne(i),onValueChange:o,children:[e.jsx(Be,{size:l,children:e.jsx(He,{children:Ee(i)})}),e.jsxs(We,{position:"popper",children:[r!=="draft"&&e.jsx(J,{value:"draft",children:"Draft"}),n&&r!=="published"&&e.jsx(J,{value:"published",children:"Published"}),t.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(sn,{}),e.jsxs(tn,{children:[e.jsx(nn,{children:"Version History"}),t.map(u=>{const d=`history:${u.blockId}`;return d===r?null:e.jsx(J,{value:d,children:W(u.createdAt)},d)})]})]})]})]})}function Ys(i,s){if(s==null||s==="")return[{text:"(empty)",indent:0,type:"value"}];switch(i.type){case"text":case"url":case"email":case"date":case"number":case"select":return[{text:String(s),indent:0,type:"value"}];case"textarea":return String(s).split(`
3
- `).map(n=>({text:n,indent:0,type:"value"}));case"boolean":return[{text:s?"Yes":"No",indent:0,type:"value"}];case"media":return[{text:`[Media: ${s}]`,indent:0,type:"value"}];case"blocks":return $e(s);case"array":return aa(i,s);default:return[{text:String(s),indent:0,type:"value"}]}}function ae(i,s,n,t){const a=[];n&&(n.title!==void 0&&(a.push({text:"Title",indent:0,type:"label"}),a.push({text:n.title||"(empty)",indent:0,type:"value"}),a.push({text:"",indent:0,type:"empty"})),n.slug!==void 0&&(a.push({text:"Slug",indent:0,type:"label"}),a.push({text:n.slug||"(empty)",indent:0,type:"value"}),a.push({text:"",indent:0,type:"empty"})),n.snippet!==void 0&&(a.push({text:"Snippet",indent:0,type:"label"}),a.push({text:n.snippet||"(empty)",indent:0,type:"value"}),a.push({text:"",indent:0,type:"empty"})),n.tags!==void 0&&(a.push({text:"Tags",indent:0,type:"label"}),a.push({text:n.tags.length>0?n.tags.join(", "):"(empty)",indent:0,type:"value"}),a.push({text:"",indent:0,type:"empty"})));for(const l of i){a.push({text:l.label,indent:0,type:"label"});const r=Ys(l,s[l.name]);a.push(...r),a.push({text:"",indent:0,type:"empty"})}if(t&&t.defs.length>0)for(const l of t.defs){a.push({text:l.label,indent:0,type:"label"});const r=t.values[l.name]??[];r.length===0?a.push({text:"(empty)",indent:0,type:"value"}):a.push({text:r.map(o=>o.title).join(", "),indent:0,type:"value"}),a.push({text:"",indent:0,type:"empty"})}return a.length>0&&a[a.length-1].type==="empty"&&a.pop(),a}const ta=[["bold","**","**"],["italic","_","_"],["underline","__","__"],["strike","~~","~~"],["code","`","`"]];function na(i,s){if(!s||!i)return i;let n=i;for(const[t,a,l]of ta)s[t]===!0&&(n=a+n+l);return n}function Y(i){return Array.isArray(i)?i.map(s=>typeof s.text=="string"?na(s.text,s.styles):s.type==="link"&&Array.isArray(s.content)?`[${Y(s.content)}](${s.href??""})`:"").join(""):""}function $e(i,s=0){if(!Array.isArray(i))return[{text:"(empty)",indent:0,type:"value"}];if(i.length===0)return[{text:"(empty)",indent:0,type:"value"}];const n=[];let t=0;for(const a of i){if(typeof a!="object"||a===null)continue;const l=a,r=l.type??"";switch(r!=="numberedListItem"&&(t=0),r){case"paragraph":{const o=Y(l.content);n.push({text:o||"",indent:s,type:"value"});break}case"heading":{const o=l.props?.level??1,u="#".repeat(Math.min(o,6))+" ",d=Y(l.content);n.push({text:u+d,indent:s,type:"heading"});break}case"bulletListItem":{const o=Y(l.content);n.push({text:`- ${o}`,indent:s,type:"list-item"});break}case"numberedListItem":{t++;const o=Y(l.content);n.push({text:`${t}. ${o}`,indent:s,type:"list-item"});break}case"image":case"HeadroomImage":{const o=l.props?.alt,u=l.props?.mediaId,d=o||u||"image";n.push({text:`[Image: ${d}]`,indent:s,type:"value"});break}default:{if(l.props&&typeof l.props=="object"){const o=l.props,u=Object.entries(o).filter(([d])=>!["textAlignment","level"].includes(d));if(u.length>0){n.push({text:`[${r}]`,indent:s,type:"label"});for(const[d,p]of u)p==null||p===""||(Array.isArray(p)?(n.push({text:`${d}:`,indent:s+1,type:"label"}),n.push(...$e(p,s+2))):n.push({text:`${d}: ${String(p)}`,indent:s+1,type:"value"}))}else n.push({text:`[${r}]`,indent:s,type:"value"})}else{const o=Y(l.content);o&&n.push({text:o,indent:s,type:"value"})}break}}Array.isArray(l.children)&&l.children.length>0&&n.push(...$e(l.children,s+1))}return n}function aa(i,s){if(!Array.isArray(s)||s.length===0)return[{text:"(empty)",indent:0,type:"value"}];const t=i.options?.itemFields??[],a=[];for(let l=0;l<s.length;l++){a.push({text:`${l+1}.`,indent:0,type:"list-item"});const r=s[l];if(t.length>0)for(const o of t){a.push({text:o.label+":",indent:1,type:"label"});const u=Ys(o,r[o.name]);a.push(...u.map(d=>({...d,indent:d.indent+1})))}else a.push({text:JSON.stringify(r,null,2),indent:1,type:"value"})}return a}function As({ref:i,host:s,contentId:n,collectionFields:t,isSingleton:a,draftBody:l,draftMetadata:r,collectionRelationships:o,draftRelationships:u}){const d=i?.kind==="published",p=i?.kind==="history",b=p?i.blockId:null,{data:h,isLoading:f}=Ls(s,n,d),{data:g,isLoading:N}=Mt(s,n,p?b:null),w=x.useMemo(()=>(o??[]).map(y=>({name:y.name,label:y.label})),[o]);function k(y){if(w.length!==0)return{defs:w,values:y??{}}}const m=x.useMemo(()=>{if(!i)return[];if(i.kind==="draft")return l?ae(t,l,a?void 0:r,k(u)):[];if(i.kind==="published"){if(!h)return[];const C=a?void 0:{title:h.title,slug:h.slug,snippet:h.snippet,tags:h.tags},S=h.relationships;return ae(t,h.body??{},C,k(S))}if(!g)return[];const y=a?void 0:{title:g.title,slug:g.slug,snippet:g.snippet,tags:g.tags},P=g.relationships;return ae(t,g.body??{},y,k(P))},[i,l,r,u,h,g,t,a,w]);return i?i.kind==="draft"?{lines:m,isLoading:!1,hasData:!!l}:i.kind==="published"?{lines:m,isLoading:f,hasData:!!h}:{lines:m,isLoading:N,hasData:!!g}:{lines:[],isLoading:!1,hasData:!1}}function ia({open:i,onOpenChange:s,host:n,contentId:t,collectionFields:a,isSingleton:l,isPublished:r,draftBody:o,draftMetadata:u,initialVersion:d,collectionRelationships:p,draftRelationships:b}){const[h,f]=x.useState(d??{kind:"published"}),[g,N]=x.useState({kind:"draft"}),[w,k]=x.useState(i),[m,y]=x.useState(d);if((i!==w||d!==m)&&(k(i),y(d),i)){const T=d??{kind:"published"};f(T),N(T.kind==="draft"?{kind:"published"}:{kind:"draft"})}Ne(h)===Ne(g)&&(h.kind!=="draft"?N({kind:"draft"}):r&&N({kind:"published"}));const{data:P}=_s(n,t),C=P?.items??[],S={host:n,contentId:t,collectionFields:a,isSingleton:l,draftBody:o,draftMetadata:u,collectionRelationships:p,draftRelationships:b},A=As({ref:h,...S}),D=As({ref:g,...S}),j=A.isLoading;return e.jsx(Ht,{open:i,onOpenChange:s,children:e.jsxs(Wt,{className:"w-[calc(100vw-2rem)] sm:max-w-2xl overflow-y-auto pt-[env(safe-area-inset-top,0px)] pr-[env(safe-area-inset-right,0px)]",children:[e.jsx(qt,{children:e.jsxs(Jt,{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-muted-foreground text-sm font-normal",children:"Viewing"}),e.jsx(Ds,{value:h,onChange:f,isPublished:r,versions:C,size:"sm"})]})}),j&&e.jsxs("div",{className:"space-y-4 p-4",children:[e.jsx(O,{className:"h-6 w-48"}),e.jsx(O,{className:"h-4 w-full"}),e.jsx(O,{className:"h-4 w-full"}),e.jsx(O,{className:"h-4 w-2/3"})]}),!j&&!A.hasData&&e.jsx("p",{className:"p-4 text-sm text-muted-foreground",children:"No data available for this version."}),!j&&A.hasData&&e.jsx("div",{className:"p-4",children:e.jsxs(Fs,{defaultValue:"changes",children:[e.jsxs(Rs,{variant:"line",className:"mb-4",children:[e.jsx(xe,{value:"content",children:"Content"}),e.jsx(xe,{value:"changes",children:"Changes"})]}),e.jsx(fe,{value:"content",children:e.jsx(qn,{lines:A.lines})}),e.jsxs(fe,{value:"changes",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:"Compare with"}),e.jsx(Ds,{value:g,onChange:N,isPublished:r,versions:C,exclude:h,size:"sm"})]}),D.isLoading?e.jsxs("div",{className:"space-y-4",children:[e.jsx(O,{className:"h-4 w-full"}),e.jsx(O,{className:"h-4 w-full"}),e.jsx(O,{className:"h-4 w-2/3"})]}):D.hasData?e.jsx(Yn,{published:A.lines,draft:D.lines,leftLabel:Ee(h),rightLabel:Ee(g)}):e.jsx("p",{className:"text-sm text-muted-foreground italic",children:"No data available for comparison."})]})]})})]})})}function Xs({open:i,onSelect:s,onClose:n,allowedTypes:t}){const{host:a}=Ce(),[l,r]=x.useState(""),[o,u]=x.useState("__all__"),d=x.useRef(null),p=an(a),b=ln(a),{data:h}=rn(a),f=h?.items??[],g=o==="__all__"?void 0:o==="__unfiled__"?"":o,{data:N,fetchNextPage:w,hasNextPage:k,isFetchingNextPage:m}=on(a,{folderId:g}),[y,P]=x.useState(!1),S=(N?.pages.flatMap(j=>j.items)??[]).filter(j=>t&&!t.some(R=>R.endsWith("/*")?j.mimeType.startsWith(R.slice(0,-1)):j.mimeType===R)?!1:l?j.filename.toLowerCase().includes(l.toLowerCase())||j.alt?.toLowerCase().includes(l.toLowerCase()):!0);async function A(j){P(!0);try{const{uploadUrl:T,mediaId:R}=await p.mutateAsync({filename:j.name,contentType:j.type,size:j.size});await fetch(T,{method:"PUT",body:j,headers:{"Content-Type":j.type}});const M=await b.mutateAsync({mediaId:R,filename:j.name});s(M),n()}catch(T){L.error("Upload failed",{description:T instanceof Error?T.message:void 0})}finally{P(!1)}}function D(j){return j.startsWith("image/")}return e.jsx(ge,{open:i,onOpenChange:()=>n(),children:e.jsxs(je,{className:"max-w-3xl",children:[e.jsxs(ve,{children:[e.jsx(ye,{children:"Select Media"}),e.jsx(be,{className:"sr-only",children:"Browse and select media files"})]}),e.jsxs("div",{className:"mb-4 flex justify-between gap-2",children:[e.jsxs("div",{className:"flex gap-2",children:[e.jsx(ie,{placeholder:"Search by filename...",value:l,onChange:j=>r(j.target.value),className:"max-w-xs"}),f.length>0&&e.jsxs(ze,{value:o,onValueChange:u,children:[e.jsx(Be,{className:"w-[150px]",children:e.jsx(He,{})}),e.jsxs(We,{children:[e.jsx(J,{value:"__all__",children:"All folders"}),f.map(j=>e.jsx(J,{value:j.folderId,children:j.name},j.folderId)),e.jsx(J,{value:"__unfiled__",children:"Unfiled"})]})]})]}),e.jsxs("div",{children:[e.jsx("input",{ref:d,type:"file",className:"hidden",accept:t?.join(",")??void 0,onChange:j=>j.target.files?.[0]&&A(j.target.files[0])}),e.jsxs(v,{variant:"outline",onClick:()=>d.current?.click(),disabled:y,children:[y?e.jsx(z,{className:"mr-2 h-4 w-4 animate-spin"}):e.jsx(cn,{className:"mr-2 h-4 w-4"}),"Upload New"]})]})]}),e.jsx("div",{className:"grid max-h-96 grid-cols-4 gap-3 overflow-y-auto",children:S.map(j=>e.jsxs(B,{className:"cursor-pointer overflow-hidden hover:ring-2 hover:ring-primary",onClick:()=>{s(j),n()},children:[e.jsx("div",{className:"flex aspect-square items-center justify-center bg-muted",children:D(j.mimeType)?e.jsx("img",{src:Ve(j.urls?.thumb_md??j.url),alt:j.alt??j.filename,className:"h-full w-full object-cover"}):e.jsxs("div",{className:"flex flex-col items-center gap-1 p-2",children:[j.mimeType.startsWith("image/")?e.jsx(Ue,{className:"h-8 w-8 text-muted-foreground"}):e.jsx(dn,{className:"h-8 w-8 text-muted-foreground"}),e.jsx("span",{className:"max-w-full truncate text-xs text-muted-foreground",children:j.filename})]})}),e.jsx("div",{className:"p-1.5",children:e.jsx("p",{className:"truncate text-xs",children:j.filename})})]},j.mediaId))}),S.length===0&&e.jsx("p",{className:"py-8 text-center text-sm text-muted-foreground",children:"No media found."}),k&&e.jsxs(v,{variant:"ghost",className:"mt-2 w-full",onClick:()=>w(),disabled:m,children:[m?e.jsx(z,{className:"mr-2 h-4 w-4 animate-spin"}):null,"Load More"]})]})})}function la(i,s,n){const t=Es(),a=n?.length===1?n[0]:void 0,l=new URLSearchParams;return s?(l.set("q",s),l.set("search","full")):l.set("limit","5"),a&&l.set("collection",a),At({queryKey:["sites",i,"content-search",s,n??[]],queryFn:async()=>{const r=await t.apiFetch(`/v1/admin/sites/${i}/content?${l.toString()}`);return n&&n.length>1?{...r,items:r.items.filter(o=>n.includes(o.collection))}:r},enabled:!!i,staleTime:3e4})}function ra({field:i,value:s,onChange:n}){const{host:t}=Ce(),a=i.options,l=!!a?.multiple,r=a?.collections;return l?e.jsx(ca,{host:t,collections:r,value:s??[],onChange:n}):e.jsx(oa,{host:t,collections:r,value:s,onChange:n})}function oa({host:i,collections:s,value:n,onChange:t}){const[a,l]=x.useState(!1),r=n?[n.contentId]:[];function o(u){t(u),l(!1)}return e.jsx("div",{children:n?e.jsxs("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[e.jsx(Z,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),e.jsx("span",{className:"flex-1 truncate text-sm",children:n.title}),e.jsx(le,{variant:"secondary",children:n.collection}),e.jsx(v,{type:"button",variant:"ghost",size:"sm",onClick:()=>t(null),children:e.jsx(ee,{className:"h-3 w-3"})})]}):e.jsx(Se,{host:i,collections:s,selectedIds:r,open:a,onOpenChange:l,onSelect:o,trigger:e.jsxs(v,{type:"button",variant:"outline",children:[e.jsx(Z,{className:"mr-2 h-4 w-4"}),"Select Content"]})})})}function ca({host:i,collections:s,value:n,onChange:t}){const a=Ge(Qe(Ye)),[l,r]=x.useState(!1),o=n??[],u=o.map(f=>f.contentId),d=o.map(f=>f.contentId);function p(f){t([...o,f]),r(!1)}function b(f){t(o.filter((g,N)=>N!==f))}function h(f){const{active:g,over:N}=f;if(N&&g.id!==N.id){const w=o.findIndex(m=>m.contentId===String(g.id)),k=o.findIndex(m=>m.contentId===String(N.id));w!==-1&&k!==-1&&t(Ke(o,w,k))}}return e.jsx(Xe,{sensors:a,collisionDetection:Ze,onDragEnd:h,children:e.jsx(qe,{items:u,strategy:Je,children:e.jsxs("div",{className:"space-y-2",children:[o.map(f=>e.jsx(Zs,{id:f.contentId,contentRef:f,onRemove:()=>b(o.indexOf(f))},f.contentId)),e.jsx(Se,{host:i,collections:s,selectedIds:d,open:l,onOpenChange:r,onSelect:p,trigger:e.jsxs(v,{type:"button",variant:"outline",size:"sm",children:[e.jsx(es,{className:"mr-2 h-3 w-3"}),"Add Content"]})})]})})})}function Zs({id:i,contentRef:s,onRemove:n}){const{attributes:t,listeners:a,setNodeRef:l,transform:r,transition:o}=Us({id:i}),u={transform:qs.Transform.toString(r),transition:o};return e.jsxs("div",{ref:l,style:u,className:"flex items-center gap-2 rounded-md border p-2",children:[e.jsx("button",{type:"button",className:"cursor-grab touch-none text-muted-foreground hover:text-foreground",...t,...a,children:e.jsx(Js,{className:"h-4 w-4"})}),e.jsx(Z,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),e.jsx("span",{className:"flex-1 truncate text-sm",children:s.title}),e.jsx(le,{variant:"secondary",children:s.collection}),e.jsx(v,{type:"button",variant:"ghost",size:"sm",onClick:n,className:"text-destructive",children:e.jsx(ee,{className:"h-3 w-3"})})]})}function Se({host:i,collections:s,selectedIds:n,open:t,onOpenChange:a,onSelect:l,trigger:r}){const[o,u]=x.useState(""),d=Tn(o,300),{data:p,isLoading:b}=la(i,d,s);return e.jsxs(Nn,{open:t,onOpenChange:a,children:[e.jsx(Cn,{asChild:!0,children:r}),e.jsx(wn,{className:"w-80 p-0",align:"start",children:e.jsxs(Sn,{shouldFilter:!1,children:[e.jsx(kn,{placeholder:"Search content...",value:o,onValueChange:u}),e.jsx(Pn,{children:b?e.jsx("p",{className:"py-6 text-center text-sm text-muted-foreground",children:"Searching..."}):e.jsxs(e.Fragment,{children:[e.jsx(In,{children:"No content found."}),e.jsx(Dn,{heading:d.length===0?"Recent":void 0,children:p?.items.map(h=>{const f=n.includes(h.contentId);return e.jsxs(An,{value:h.contentId,disabled:f,onSelect:()=>l({contentId:h.contentId,collection:h.collection,slug:h.slug??"",title:h.title}),children:[e.jsx(Z,{className:"h-4 w-4"}),e.jsx("span",{className:"flex-1 truncate",children:h.title}),e.jsx(le,{variant:"outline",className:"text-xs",children:h.collection})]},h.contentId)})})]})})]})})]})}function da({relationships:i,values:s,onChange:n,host:t}){return e.jsxs(B,{children:[e.jsx(Fe,{children:e.jsx(Re,{children:"Relationships"})}),e.jsx(q,{className:"space-y-4",children:i.map(a=>a.multiple?e.jsx(ha,{rel:a,items:s[a.name]??[],host:t,onChange:l=>n({...s,[a.name]:l})},a.name):e.jsx(ua,{rel:a,value:s[a.name]?.[0]??null,host:t,onChange:l=>n({...s,[a.name]:l?[l]:[]})},a.name))})]})}function ua({rel:i,value:s,host:n,onChange:t}){const[a,l]=x.useState(!1),r=s?[s.contentId]:[];return e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium",children:i.label}),s?e.jsxs("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[e.jsx(Z,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),e.jsx("span",{className:"flex-1 truncate text-sm",children:s.title}),e.jsx(le,{variant:"secondary",children:s.collection}),e.jsx(v,{type:"button",variant:"ghost",size:"sm",onClick:()=>t(null),children:e.jsx(ee,{className:"h-3 w-3"})})]}):e.jsx(Se,{host:n,collections:[i.targetCollection],selectedIds:r,open:a,onOpenChange:l,onSelect:o=>{t(o),l(!1)},trigger:e.jsxs(v,{type:"button",variant:"outline",size:"sm",children:[e.jsx(Z,{className:"mr-2 h-4 w-4"}),"Select ",i.label]})})]})}function ha({rel:i,items:s,host:n,onChange:t}){const a=Ge(Qe(Ye)),[l,r]=x.useState(!1),o=s.map(h=>h.contentId),u=s.map(h=>h.contentId);function d(h){t([...s,h]),r(!1)}function p(h){t(s.filter((f,g)=>g!==h))}function b(h){const{active:f,over:g}=h;if(g&&f.id!==g.id){const N=s.findIndex(k=>k.contentId===String(f.id)),w=s.findIndex(k=>k.contentId===String(g.id));N!==-1&&w!==-1&&t(Ke(s,N,w))}}return e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium",children:i.label}),e.jsx(Xe,{sensors:a,collisionDetection:Ze,onDragEnd:b,children:e.jsx(qe,{items:o,strategy:Je,children:e.jsxs("div",{className:"space-y-2",children:[s.map(h=>e.jsx(Zs,{id:h.contentId,contentRef:h,onRemove:()=>p(s.indexOf(h))},h.contentId)),e.jsx(Se,{host:n,collections:[i.targetCollection],selectedIds:u,open:l,onOpenChange:r,onSelect:d,trigger:e.jsxs(v,{type:"button",variant:"outline",size:"sm",children:[e.jsx(es,{className:"mr-2 h-3 w-3"}),"Add ",i.label]})})]})})})]})}function Me({field:i,value:s,onChange:n}){const t=i.options;return e.jsx(ie,{value:s??"",onChange:a=>n(a.target.value),placeholder:t?.placeholder,maxLength:t?.maxLength,required:!!t?.required,type:i.type==="url"?"url":i.type==="email"?"email":"text"})}function ma({field:i,value:s,onChange:n}){const t=i.options;return e.jsx(Vs,{value:s??"",onChange:a=>n(a.target.value),placeholder:t?.placeholder,maxLength:t?.maxLength,required:!!t?.required,rows:4})}function pa({field:i,value:s,onChange:n}){const t=i.options;return e.jsx(ie,{type:"number",value:s??"",onChange:a=>n(a.target.value===""?void 0:Number(a.target.value)),min:t?.min,max:t?.max,step:t?.step,required:!!t?.required})}function xa({field:i,value:s,onChange:n}){return e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ln,{id:`field-${i.name}`,checked:!!s,onCheckedChange:t=>n(!!t)}),e.jsx("label",{htmlFor:`field-${i.name}`,className:"text-sm text-muted-foreground",children:i.label})]})}function fa({field:i,value:s,onChange:n}){const a=i.options?.choices??[];return e.jsxs(ze,{value:s??"",onValueChange:l=>n(l),children:[e.jsx(Be,{children:e.jsx(He,{placeholder:"Select..."})}),e.jsx(We,{children:a.map(l=>e.jsx(J,{value:l,children:l},l))})]})}function ga({field:i,value:s,onChange:n}){const{host:t}=Ce(),[a,l]=x.useState(!1),o=i.options?.allowedTypes,u=typeof s=="string"?s:s?.mediaId??"",{data:d}=Ws(t,u);return e.jsxs("div",{children:[u?e.jsxs("div",{className:"flex items-center gap-3 rounded-md border p-2 cursor-pointer hover:bg-muted/50 transition-colors",onClick:()=>l(!0),children:[d?.url&&e.jsx("img",{src:Ve(d.urls?.thumb_sm??d.url),alt:d?.filename??"",className:"h-10 w-10 rounded object-cover bg-muted"}),e.jsx("span",{className:"flex-1 truncate text-sm",children:d?.filename??"Loading..."}),e.jsx(v,{type:"button",variant:"ghost",size:"sm",onClick:p=>{p.stopPropagation(),n("")},children:e.jsx(ee,{className:"h-3 w-3"})})]}):e.jsxs(v,{type:"button",variant:"outline",onClick:()=>l(!0),children:[e.jsx(Ue,{className:"mr-2 h-4 w-4"}),"Select Media"]}),e.jsx(Xs,{open:a,onClose:()=>l(!1),onSelect:p=>{n({mediaId:p.mediaId,url:p.url,width:p.width??0,height:p.height??0,filename:p.filename}),l(!1)},allowedTypes:o})]})}function ja({field:i,value:s,onChange:n}){const t=Ge(Qe(Ye)),a=s??[],r=i.options?.itemFields??[],o=a.map((h,f)=>`item-${f}`);function u(){n([...a,{}])}function d(h){n(a.filter((f,g)=>g!==h))}function p(h,f){const g=[...a];g[h]=f,n(g)}function b(h){const{active:f,over:g}=h;if(g&&f.id!==g.id){const N=o.indexOf(String(f.id)),w=o.indexOf(String(g.id));n(Ke(a,N,w))}}return e.jsx(Xe,{sensors:t,collisionDetection:Ze,onDragEnd:b,children:e.jsx(qe,{items:o,strategy:Je,children:e.jsxs("div",{className:"space-y-3",children:[a.map((h,f)=>e.jsx(va,{id:`item-${f}`,itemFields:r,item:h,onUpdate:g=>p(f,g),onRemove:()=>d(f)},`item-${f}`)),e.jsxs(v,{type:"button",variant:"outline",size:"sm",onClick:u,children:[e.jsx(es,{className:"mr-2 h-3 w-3"})," Add Item"]})]})})})}function va({id:i,itemFields:s,item:n,onUpdate:t,onRemove:a}){const{attributes:l,listeners:r,setNodeRef:o,transform:u,transition:d}=Us({id:i}),p={transform:qs.Transform.toString(u),transition:d};return e.jsx(B,{ref:o,style:p,children:e.jsxs(q,{className:"flex gap-2 p-3",children:[e.jsx("button",{type:"button",className:"cursor-grab touch-none text-muted-foreground hover:text-foreground",...l,...r,children:e.jsx(Js,{className:"h-4 w-4"})}),e.jsx("div",{className:"flex-1",children:e.jsx(et,{fields:s,values:n,onChange:t})}),e.jsx(v,{type:"button",variant:"ghost",size:"sm",onClick:a,className:"text-destructive",children:e.jsx(Gs,{className:"h-3 w-3"})})]})})}const ya=x.lazy(()=>Gt(()=>import("./BlockEditor-C0KaZUHQ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]))),ba=2,Ts=x.createContext(0);function Na({value:i,onChange:s,compact:n=!0}){const t=x.useContext(Ts),l=Kt()?.blockTypes??[],r=$s();return t>=ba?e.jsx("div",{className:"rounded-md border border-muted p-4 text-sm text-muted-foreground",children:"Maximum nesting depth reached. Cannot embed another block editor here."}):e.jsx(Ts.Provider,{value:t+1,children:e.jsx("div",{className:r?"":"rounded-md border",children:e.jsx(x.Suspense,{fallback:e.jsx(O,{className:"h-48"}),children:e.jsx(ya,{initialBlocks:i??[],onChange:s,blockTypes:l,compact:n})})})})}function et({fields:i,values:s,onChange:n}){function t(a,l){n({...s,[a]:l})}return e.jsx("div",{className:"space-y-4",children:i.map(a=>e.jsxs("div",{className:"space-y-2",children:[a.type!=="boolean"&&e.jsx(ne,{children:a.label}),Ca(a,s[a.name],l=>t(a.name,l))]},a.name))})}function Ca(i,s,n){switch(i.type){case"text":case"url":case"email":return e.jsx(Me,{field:i,value:s,onChange:n});case"textarea":return e.jsx(ma,{field:i,value:s,onChange:n});case"number":return e.jsx(pa,{field:i,value:s,onChange:n});case"boolean":return e.jsx(xa,{field:i,value:s,onChange:n});case"select":return e.jsx(fa,{field:i,value:s,onChange:n});case"media":return e.jsx(ga,{field:i,value:s,onChange:n});case"content":return e.jsx(ra,{field:i,value:s,onChange:n});case"blocks":return e.jsx(Na,{field:i,value:s,onChange:n});case"array":return e.jsx(ja,{field:i,value:s,onChange:n});case"date":return e.jsx(Me,{field:{...i,type:"text"},value:s,onChange:n});default:return e.jsx(Me,{field:i,value:s,onChange:n})}}function wa(){const{host:i,collection:s,id:n}=Ce(),{data:t,isLoading:a}=Ot(i,n);return a?e.jsxs("div",{className:"space-y-4",children:[e.jsx(O,{className:"h-8 w-64"}),e.jsx(O,{className:"h-64 w-full"})]}):t?.content?e.jsx(Sa,{host:i,collection:s,contentId:n,content:t.content,draft:t.draft,publishedBlockId:t.publishedBlockId}):e.jsx("p",{className:"text-muted-foreground",children:"Content not found."})}function Sa({host:i,collection:s,contentId:n,content:t,draft:a,publishedBlockId:l}){const r=Tt(),o=Es(),{collections:u}=Qt(),d=Ft(i,n),p=Rt(i,n),b=Et(i,n),h=$t(i,n),f=Ut(i,n),g=Vt(i,n),N=a?{title:a.title??t.title,slug:a.slug??t.slug??"",snippet:a.snippet??t.snippet??"",tags:a.tags??t.tags??[],coverUrl:a.coverUrl??t.coverUrl??"",coverMediaId:a.coverMediaId??t.coverMediaId??"",coverWidth:a.coverWidth??t.coverWidth??0,coverHeight:a.coverHeight??t.coverHeight??0,body:a.body??{},relationships:a.relationships??{}}:void 0,[w,k]=x.useState(null),m=Wn(i,n,N,()=>{k("This slug is already in use by another item in this collection")}),{data:y}=bn(i),P=y?.map(c=>c.tag),C=u.find(c=>c.name===s),S=x.useMemo(()=>C?.fields??[],[C?.fields]),A=x.useMemo(()=>C?.relationships??[],[C?.relationships]),D=C?.singleton??!1,j=$s(),[T,R]=x.useState(a?.title??t.title),[M,ss]=x.useState(a?.slug??t.slug??""),[E,ts]=x.useState(a?.snippet??t.snippet??""),ns=a?.autoSnippet??"",[K,as]=x.useState(a?.tags??t.tags??[]),[ke,is]=x.useState(a?.coverUrl??t.coverUrl??""),[re,ls]=x.useState(a?.coverMediaId??t.coverMediaId??""),[rs,os]=x.useState(a?.coverWidth??t.coverWidth??0),[cs,ds]=x.useState(a?.coverHeight??t.coverHeight??0),[G,us]=x.useState(a?.body??{}),[Q,hs]=x.useState(a?.relationships??{}),[st,tt]=x.useState(0),[nt,at]=x.useState(!1),[it,oe]=x.useState(!1),[lt,se]=x.useState(!1),[rt,ce]=x.useState(null),[Pe,de]=x.useState(!1),[ot,ue]=x.useState(!1),[ct,he]=x.useState(!1),[me,ms]=x.useState(""),[dt,Ie]=x.useState(!1),[De,ps]=x.useState(""),xs=zt(i,n),{data:fs}=Ws(i,re),H=x.useCallback(()=>({title:T,slug:M,snippet:E,tags:K,coverUrl:ke,coverMediaId:re,coverWidth:rs,coverHeight:cs,body:G,relationships:Q}),[T,M,E,K,ke,re,rs,cs,G,Q]);function ut(c){R(c),setTimeout(()=>m.schedule({...H(),title:c}),0)}function ht(c){ss(c),k(null),setTimeout(()=>m.schedule({...H(),slug:c}),0)}function mt(c){ts(c),setTimeout(()=>m.schedule({...H(),snippet:c}),0)}function pt(c){as(c),setTimeout(()=>m.schedule({...H(),tags:c}),0)}function gs(c,I,V,te){is(c),ls(I),os(V),ds(te),setTimeout(()=>m.schedule({...H(),coverUrl:c,coverMediaId:I,coverWidth:V,coverHeight:te}),0)}function xt(c){us(c),setTimeout(()=>m.schedule({...H(),body:c}),0)}function ft(c){hs(c),setTimeout(()=>m.schedule({...H(),relationships:c}),0)}const gt=m.lastSavedBlockId??a?.blockId,$=_n(t.publishedAt,t.lastPublishedAt,l,gt,t.scheduledAt,t.scheduledFailed),js=Mn($),vs=On($),{data:U}=Ls(i,n,!!t.publishedAt),F=x.useMemo(()=>{if(!Pe||!U)return null;const c=D?void 0:{title:U.title,slug:U.slug,snippet:U.snippet,tags:U.tags},I=A.map(_=>({name:_.name,label:_.label})),V=U.relationships,te=I.length>0?{defs:I,values:V??{}}:void 0,St=ae(S,U.body??{},c,te),kt=D?void 0:{title:T,slug:M,snippet:E,tags:K},Pt=I.length>0?{defs:I,values:Q}:void 0,It=ae(S,G,kt,Pt),Dt=Qs(St,It,{comparator:(_,Te)=>_.text===Te.text&&_.indent===Te.indent&&_.type===Te.type});let Ns=0,Cs=0;for(const _ of Dt)_.added?Ns+=_.count??0:_.removed&&(Cs+=_.count??0);return{added:Ns,removed:Cs}},[Pe,U,S,A,D,T,M,E,K,G,Q]);function jt(){if(t.publishedAt&&t.slug&&M!==t.slug){ue(!0);return}$==="published-changes"?de(!0):pe()}async function pe(){try{m.cancel(),await m.flush({createVersion:!0}),await d.mutateAsync(void 0),L.success("Content published")}catch(c){if(c instanceof Os&&c.code==="SLUG_TAKEN"){k("This slug is already in use by another item in this collection"),L.error("Slug already in use",{description:"Please choose a different slug before publishing."});return}L.error("Failed to publish",{description:c instanceof Error?c.message:void 0})}}async function vt(){try{await p.mutateAsync(),se(!1),L.success("Content unpublished")}catch(c){L.error("Failed to unpublish",{description:c instanceof Error?c.message:void 0})}}async function yt(){try{m.discard();const c=await o.apiFetch(`/v1/admin/sites/${i}/content/${n}/published`);await xs.mutateAsync();const I={title:c.title??"",slug:c.slug??"",snippet:c.snippet??"",tags:c.tags??[],coverUrl:c.coverUrl??"",coverMediaId:c.coverMediaId??"",coverWidth:c.coverWidth??0,coverHeight:c.coverHeight??0,body:c.body??{},relationships:c.relationships??{}};R(I.title),ss(I.slug),ts(I.snippet),as(I.tags),is(I.coverUrl),ls(I.coverMediaId),os(I.coverWidth),ds(I.coverHeight),us(I.body),hs(I.relationships),tt(V=>V+1),m.resetBaseline(I),L.success("Changes discarded")}catch(c){L.error("Failed to discard changes",{description:c instanceof Error?c.message:void 0})}}async function bt(){try{await b.mutateAsync(),L.success("Content deleted"),r(`/sites/${i}/content/${s}`)}catch(c){L.error("Failed to delete",{description:c instanceof Error?c.message:void 0})}}async function Nt(){if(me)try{m.cancel(),await m.flush({createVersion:!0});const c=new Date(me).getTime();await f.mutateAsync(c),he(!1),ms(""),L.success("Content scheduled for publishing")}catch(c){L.error("Failed to schedule",{description:c instanceof Error?c.message:void 0})}}async function Ct(){try{await g.mutateAsync(),L.success("Schedule cancelled")}catch(c){L.error("Failed to cancel schedule",{description:c instanceof Error?c.message:void 0})}}async function wt(){if(De)try{const c=new Date(De).getTime();await h.mutateAsync(c),Ie(!1),L.success("Publish date updated")}catch(c){L.error("Failed to update publish date",{description:c instanceof Error?c.message:void 0})}}function Ae(c){const I=new Date(c),V=I.getTimezoneOffset();return new Date(I.getTime()-V*6e4).toISOString().slice(0,16)}const ys=e.jsx("div",{className:"space-y-6",children:S.length>0?e.jsx(et,{fields:S,values:G,onChange:xt},st):e.jsx(B,{children:e.jsx(q,{className:"py-8 text-center",children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:["No fields defined for this collection."," ",e.jsx(Lt,{to:`/sites/${i}/settings/collections/${s}`,className:"underline",children:"Configure fields"})]})})})}),bs=e.jsxs("div",{className:"space-y-6",children:[!D&&e.jsx(B,{children:e.jsxs(q,{className:"space-y-4 pt-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(ne,{htmlFor:"title",children:"Title"}),e.jsx(ie,{id:"title",value:T,onChange:c=>ut(c.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ne,{htmlFor:"slug",children:"Slug"}),e.jsx(ie,{id:"slug",value:M,onChange:c=>ht(c.target.value),className:w?"border-destructive":""}),w&&e.jsx("p",{className:"text-sm text-destructive",children:w})]}),e.jsxs(zs,{defaultOpen:!!E,children:[e.jsxs(Bs,{className:"flex w-full items-center gap-2 text-sm font-medium",children:[e.jsx(Ks,{className:"h-4 w-4 transition-transform [[data-state=open]>&]:rotate-90"}),"Snippet",e.jsx("span",{className:"text-xs text-muted-foreground",children:"(auto-generated if empty)"})]}),e.jsxs(Hs,{className:"mt-2 space-y-2",children:[e.jsx(Vs,{id:"snippet",value:E,onChange:c=>mt(c.target.value),rows:3,placeholder:"Brief summary of this content..."}),!E&&ns&&e.jsxs("p",{className:"text-xs italic text-muted-foreground",children:["Auto-generated: ",ns]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ne,{children:"Cover Image"}),re?e.jsxs("div",{className:"flex items-center gap-3 rounded-md border p-2 cursor-pointer hover:bg-muted/50 transition-colors",onClick:()=>oe(!0),children:[e.jsx("img",{src:Ve(ke),alt:fs?.filename??"",className:"h-10 w-10 rounded object-cover bg-muted"}),e.jsx("span",{className:"flex-1 truncate text-sm",children:fs?.filename??"Loading..."}),e.jsx(v,{type:"button",variant:"ghost",size:"sm",onClick:c=>{c.stopPropagation(),gs("","",0,0)},children:e.jsx(ee,{className:"h-3 w-3"})})]}):e.jsxs(v,{type:"button",variant:"outline",className:"w-full",onClick:()=>oe(!0),children:[e.jsx(Ue,{className:"mr-2 h-4 w-4"}),"Select Image"]}),e.jsx(Xs,{open:it,onClose:()=>oe(!1),onSelect:c=>{gs(c.url,c.mediaId,c.width??0,c.height??0),oe(!1)},allowedTypes:["image/*"]})]})]})}),!D&&e.jsxs(B,{children:[e.jsx(Fe,{children:e.jsx(Re,{children:"Tags"})}),e.jsx(q,{children:e.jsx(un,{tags:K,onChange:pt,suggestions:P})})]}),A.length>0&&e.jsx(da,{relationships:A,values:Q,onChange:ft,host:i}),e.jsxs(B,{children:[e.jsx(Fe,{children:e.jsx(Re,{children:"Info"})}),e.jsxs(q,{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Collection"}),e.jsx("span",{children:t.collection})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"ID"}),e.jsx("span",{className:"font-mono text-xs",children:t.contentId})]}),t.publishedAt?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-muted-foreground",children:"Published"}),dt?e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("input",{type:"datetime-local",value:De,onChange:c=>ps(c.target.value),className:"text-xs border rounded px-1 py-0.5",max:Ae(Date.now())}),e.jsx(v,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:wt,disabled:h.isPending,children:e.jsx(Ps,{className:"h-3 w-3"})}),e.jsx(v,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>Ie(!1),children:e.jsx(ee,{className:"h-3 w-3"})})]}):e.jsxs("span",{className:"cursor-pointer hover:underline",title:W(t.publishedAt),onClick:()=>{ps(Ae(t.publishedAt)),Ie(!0)},children:[_e(t.publishedAt),e.jsx(Un,{className:"inline ml-1 h-3 w-3 text-muted-foreground"})]})]}),t.lastPublishedAt&&t.lastPublishedAt!==t.publishedAt&&e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Last published"}),e.jsx("span",{title:W(t.lastPublishedAt),children:_e(t.lastPublishedAt)})]})]}):t.lastPublishedAt?e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{className:"text-muted-foreground",children:"Last published"}),e.jsx("span",{title:W(t.lastPublishedAt),children:_e(t.lastPublishedAt)})]}):null,$==="scheduled"&&t.scheduledAt&&e.jsxs("div",{className:"flex justify-between items-center",children:[e.jsx("span",{className:"text-muted-foreground",children:"Scheduled for"}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(Is,{className:"h-3 w-3"}),W(t.scheduledAt)]})]}),$==="schedule-failed"&&e.jsx("div",{className:"text-destructive text-xs",children:"Scheduled publishing failed after multiple attempts."}),t.publishedAt&&e.jsxs(v,{variant:"outline",size:"sm",className:"w-full mt-2",onClick:()=>{ce({kind:"published"}),se(!0)},children:[e.jsx(En,{className:"mr-2 h-4 w-4"}),"View published"]})]})]}),e.jsx(Ia,{host:i,contentId:n,onViewVersion:c=>{ce({kind:"history",blockId:c.blockId,createdAt:c.createdAt,title:c.title}),se(!0)}}),!D&&e.jsx(Pa,{deleteOpen:nt,setDeleteOpen:at,onDelete:bt,host:i,contentId:n})]});return e.jsxs("div",{className:"mx-auto max-w-6xl",children:[e.jsxs("div",{className:"mb-4 flex flex-wrap items-center gap-2 md:mb-6 md:flex-nowrap md:gap-3 md:justify-between",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2 md:gap-3",children:[e.jsx("h1",{className:"truncate text-xl font-semibold md:text-2xl",children:D?C?.label??s:T||"Untitled"}),e.jsx(le,{variant:js.variant,children:js.label}),m.isSaving&&e.jsxs("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx(z,{className:"h-3 w-3 animate-spin"}),"Saving..."]}),!m.isSaving&&m.lastSavedAt&&e.jsxs("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[e.jsx(Ps,{className:"h-3 w-3"}),"Saved"]})]}),e.jsxs("div",{className:"flex gap-2 ml-auto",children:[e.jsxs(v,{variant:"outline",onClick:()=>m.flush({createVersion:!0}),disabled:m.isSaving,children:[m.isSaving&&e.jsx(z,{className:"mr-2 h-4 w-4 animate-spin"}),"Save Draft"]}),$==="scheduled"&&e.jsxs(e.Fragment,{children:[e.jsxs(v,{variant:"outline",onClick:Ct,disabled:g.isPending,children:[g.isPending&&e.jsx(z,{className:"mr-2 h-4 w-4 animate-spin"}),"Cancel Schedule"]}),e.jsxs(v,{onClick:()=>void pe(),disabled:d.isPending,children:[d.isPending&&e.jsx(z,{className:"mr-2 h-4 w-4 animate-spin"}),"Publish Now"]})]}),$!=="scheduled"&&vs&&e.jsxs("div",{className:"flex",children:[e.jsxs(v,{onClick:jt,disabled:d.isPending,className:"rounded-r-none",children:[d.isPending&&e.jsx(z,{className:"mr-2 h-4 w-4 animate-spin"}),vs]}),!t.publishedAt&&e.jsxs(ws,{children:[e.jsx(Ss,{asChild:!0,children:e.jsx(v,{className:"rounded-l-none border-l px-2",disabled:d.isPending,children:e.jsx(Yt,{className:"h-4 w-4"})})}),e.jsx(ks,{align:"end",children:e.jsxs(Le,{onClick:()=>he(!0),children:[e.jsx(Is,{className:"mr-2 h-4 w-4"}),"Schedule for later"]})})]})]}),t.publishedAt&&e.jsxs(ws,{children:[e.jsx(Ss,{asChild:!0,children:e.jsx(v,{variant:"outline",size:"icon",children:e.jsx(hn,{className:"h-4 w-4"})})}),e.jsxs(ks,{align:"end",children:[$==="published-changes"&&e.jsxs(Le,{onClick:yt,disabled:xs.isPending,children:[e.jsx(zn,{className:"mr-2 h-4 w-4"}),"Discard Changes"]}),e.jsx(Le,{onClick:vt,className:"text-destructive focus:text-destructive",children:"Unpublish"})]})]})]})]}),j?e.jsxs(Fs,{defaultValue:"content",children:[e.jsxs(Rs,{variant:"line",className:"mb-2",children:[e.jsx(xe,{value:"content",children:"Content"}),e.jsx(xe,{value:"info",children:"Info"})]}),e.jsx(fe,{value:"content",className:"mt-0",children:ys}),e.jsx(fe,{value:"info",className:"mt-0",children:bs})]}):e.jsxs("div",{className:"grid gap-6 lg:grid-cols-3",children:[e.jsx("div",{className:"lg:col-span-2",children:ys}),e.jsx("div",{children:bs})]}),e.jsx(ia,{open:lt,onOpenChange:c=>{se(c),c||ce(null)},host:i,contentId:n,collectionFields:S,isSingleton:D,isPublished:!!t.publishedAt,draftBody:G,draftMetadata:D?void 0:{title:T,slug:M,snippet:E,tags:K},initialVersion:rt,collectionRelationships:A,draftRelationships:Q}),e.jsx(mn,{open:Pe,onOpenChange:de,children:e.jsxs(pn,{children:[e.jsxs(xn,{children:[e.jsx(fn,{children:"Publish changes?"}),e.jsx(gn,{children:F?e.jsxs(e.Fragment,{children:[F.added>0&&e.jsxs("span",{className:"text-green-600",children:["+",F.added," added"]}),F.added>0&&F.removed>0&&", ",F.removed>0&&e.jsxs("span",{className:"text-red-600",children:["-",F.removed," removed"]}),F.added===0&&F.removed===0&&e.jsx("span",{children:"No visible changes detected."})]}):"This will update the published version with your current changes."})]}),e.jsx("div",{className:"mb-2",children:e.jsx(v,{variant:"link",className:"p-0 h-auto text-sm",onClick:()=>{de(!1),ce({kind:"published"}),se(!0)},children:"View full diff"})}),e.jsxs(jn,{children:[e.jsx(vn,{children:"Cancel"}),e.jsx(yn,{onClick:()=>{de(!1),pe()},children:"Publish Update"})]})]})}),e.jsx(ge,{open:ot,onOpenChange:ue,children:e.jsxs(je,{children:[e.jsxs(ve,{children:[e.jsx(ye,{children:"Slug change detected"}),e.jsxs(be,{children:["You are changing the slug from “",t.slug,"” to “",M,"”. This may break external bookmarks and SEO links."]})]}),e.jsx(ka,{host:i,contentId:n}),e.jsxs(Oe,{children:[e.jsx(v,{variant:"outline",onClick:()=>ue(!1),children:"Cancel"}),e.jsx(v,{onClick:()=>{ue(!1),pe()},children:"Publish Anyway"})]})]})}),e.jsx(ge,{open:ct,onOpenChange:he,children:e.jsxs(je,{children:[e.jsxs(ve,{children:[e.jsx(ye,{children:"Schedule publishing"}),e.jsx(be,{children:"Choose a date and time to automatically publish this content. Times are rounded to the nearest 15-minute interval."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ne,{htmlFor:"schedule-date",children:"Publish at"}),e.jsx("input",{id:"schedule-date",type:"datetime-local",value:me,onChange:c=>ms(c.target.value),min:Ae(Date.now()+1200*1e3),className:"w-full rounded-md border px-3 py-2 text-sm",step:"900"})]}),e.jsxs(Oe,{children:[e.jsx(v,{variant:"outline",onClick:()=>he(!1),children:"Cancel"}),e.jsxs(v,{onClick:Nt,disabled:!me||f.isPending,children:[f.isPending&&e.jsx(z,{className:"mr-2 h-4 w-4 animate-spin"}),"Schedule"]})]})]})})]})}function ka({host:i,contentId:s}){const{data:n}=Ms(i,s,!0);return!n||n.count===0?null:e.jsxs("div",{className:"rounded-md border border-yellow-500/50 bg-yellow-50 p-3 text-sm dark:bg-yellow-950/30",children:[e.jsxs("p",{className:"font-medium text-yellow-800 dark:text-yellow-200",children:["This content is referenced by ",n.count," other"," ",n.count===1?"item":"items",":"]}),e.jsxs("ul",{className:"mt-1 list-disc pl-5 text-yellow-700 dark:text-yellow-300",children:[n.items.slice(0,5).map(t=>e.jsxs("li",{children:[t.title," (",t.collection,")"]},`${t.contentId}-${t.fieldName}`)),n.items.length>5&&e.jsxs("li",{children:["and ",n.items.length-5," more..."]})]})]})}function Pa({deleteOpen:i,setDeleteOpen:s,onDelete:n,host:t,contentId:a}){const{data:l}=Ms(t,a,i);return e.jsxs(e.Fragment,{children:[e.jsx(Xt,{}),e.jsxs(ge,{open:i,onOpenChange:s,children:[e.jsx(Zt,{asChild:!0,children:e.jsxs(v,{variant:"destructive",className:"w-full",children:[e.jsx(Gs,{className:"mr-2 h-4 w-4"}),"Delete"]})}),e.jsxs(je,{children:[e.jsxs(ve,{children:[e.jsx(ye,{children:"Delete content?"}),e.jsx(be,{children:"This action cannot be undone. The content will be permanently deleted."})]}),l&&l.count>0&&e.jsxs("div",{className:"rounded-md border border-yellow-500/50 bg-yellow-50 p-3 text-sm dark:bg-yellow-950/30",children:[e.jsxs("p",{className:"font-medium text-yellow-800 dark:text-yellow-200",children:["This content is referenced by ",l.count," other"," ",l.count===1?"item":"items",":"]}),e.jsxs("ul",{className:"mt-1 list-disc pl-5 text-yellow-700 dark:text-yellow-300",children:[l.items.slice(0,5).map(r=>e.jsxs("li",{children:[r.title," (",r.collection,")"]},`${r.contentId}-${r.fieldName}`)),l.items.length>5&&e.jsxs("li",{children:["and ",l.items.length-5," more..."]})]})]}),e.jsxs(Oe,{children:[e.jsx(v,{variant:"outline",onClick:()=>s(!1),children:"Cancel"}),e.jsx(v,{variant:"destructive",onClick:n,children:"Delete"})]})]})]})]})}function Ia({host:i,contentId:s,onViewVersion:n}){const{data:t}=_s(i,s),[a,l]=x.useState(!1),r=t?.items??[],o=r.map(d=>d.createdBy).filter(Boolean),{resolve:u}=en(o);return r.length===0?null:e.jsx(B,{children:e.jsx(q,{className:"pt-4",children:e.jsxs(zs,{open:a,onOpenChange:l,children:[e.jsxs(Bs,{className:"flex w-full items-center gap-2 text-sm font-medium",children:[e.jsx(Ks,{className:X("h-4 w-4 transition",a&&"rotate-90")}),"Version History (",r.length,")"]}),e.jsx(Hs,{className:"mt-2",children:e.jsx("div",{className:"space-y-1",children:r.map((d,p)=>e.jsxs("button",{className:"py-1 text-sm hover:bg-muted rounded px-1 -mx-1 transition-colors w-full text-left",onClick:()=>n(d),children:[e.jsx("span",{children:W(d.createdAt)}),d.createdBy&&e.jsx("span",{className:"ml-2 text-muted-foreground",children:u(d.createdBy)}),d.title&&e.jsx("span",{className:"ml-2 text-muted-foreground",children:d.title})]},`${d.createdAt}-${p}`))})})]})})})}const Ya=Object.freeze(Object.defineProperty({__proto__:null,ContentEditPage:wa},Symbol.toStringTag,{value:"Module"}));export{Se as C,et as F,Xs as M,Un as P,Ya as a};
@@ -1 +0,0 @@
1
- import{j as e}from"./tanstack-BO6c-AOu.js";import{r as u,e as V}from"./react-vendor-DNVhVxD7.js";import{b as X,u as Z,d as ee,e as te,g as se,h as ae,H as M,D as G,i as J,B as $,U as ne,j as oe,k as le,l as ie,m as re,L as R,I as W,n as ce}from"./index-CwkwXbO-.js";import{C as de,a as me,b as he,d as ue}from"./card-DpNr7WTb.js";import{B as ge}from"./badge-ChZ2DZue.js";import{C}from"./checkbox-VtCfoGic.js";import{P as Y}from"./plus-2Ds_MoqB.js";import"./radix-n1vDIPi6.js";import"./check-BMpruHpO.js";const pe={name:"pages",label:"Pages",labelSingular:"Page",slug:"pages",singleton:!1,fields:[{name:"blocks",label:"Blocks",type:"blocks",options:{}}]},xe={name:"posts",label:"Posts",labelSingular:"Post",slug:"posts",singleton:!1,fields:[{name:"author",label:"Author",type:"text",options:{}},{name:"blocks",label:"Blocks",type:"blocks",options:{}}]},fe={name:"settings",label:"Settings",labelSingular:"Settings",slug:"settings",singleton:!0,fields:[{name:"site_title",label:"Site Title",type:"text",options:{}},{name:"site_logo",label:"Site Logo",type:"media",options:{allowedTypes:["image/*"]}},{name:"menu",label:"Menu",type:"array",options:{itemFields:[{name:"title",label:"Title",type:"text",options:{}},{name:"url",label:"URL",type:"url",options:{}}]}},{name:"footer",label:"Footer",type:"blocks",options:{}}]};function x(s,o){return{id:o,type:"paragraph",props:{textColor:"default",backgroundColor:"default",textAlignment:"left"},content:[{type:"text",text:s}],children:[]}}function v(s,o,d){return{id:d,type:"heading",props:{textColor:"default",backgroundColor:"default",textAlignment:"left",level:o},content:[{type:"text",text:s}],children:[]}}const z=[{title:"Home",slug:"home",body:{blocks:[v("Welcome to Headroom",1,"home-h1"),x("This is your new site powered by Headroom CMS. Edit this page to add your own content.","home-p1"),v("Getting Started",2,"home-h2"),x("Head over to the admin panel to manage your content, collections, and media.","home-p2")]}},{title:"About",slug:"about",body:{blocks:[v("About Us",1,"about-h1"),x("Tell your visitors about your company, team, or project. This is a great place to share your story.","about-p1")]}},{title:"Contact",slug:"contact",body:{blocks:[v("Contact",1,"contact-h1"),x("Get in touch with us. Replace this with your contact information or a contact form.","contact-p1")]}}],K=[{title:"Welcome to Headroom",slug:"welcome-to-headroom",body:{author:"Admin",blocks:[v("Welcome to Your New Blog",1,"post-h1"),x("This is your first blog post. You can edit or delete it and start writing your own content.","post-p1"),x("Headroom makes it easy to create and manage your content with a powerful block editor, media library, and flexible collections.","post-p2")]}}],be={site_title:"Headroom Site",site_logo:null,menu:[{title:"Home",url:"/"},{title:"About",url:"/about"},{title:"Blog",url:"/blog"},{title:"Contact",url:"/contact"}],footer:[x("© 2026 Headroom Site. Built with Headroom CMS.","footer-p1")]};function Q(s){const d=[s.createPages,s.createPosts,s.createSettings].filter(Boolean).length;if(!s.addSampleContent)return d;let g=0;return s.createPages&&(g+=z.length*2),s.createPosts&&(g+=K.length*2),s.createSettings&&(g+=3),d+g}async function Se(s,o,d,g){const r={collectionsCreated:[],contentCreated:[],errors:[]},f=Q(d);let a=0;const m=t=>{g?.({completed:a,total:f,label:t})},y=[{key:"pages",enabled:d.createPages,schema:pe},{key:"posts",enabled:d.createPosts,schema:xe},{key:"settings",enabled:d.createSettings,schema:fe}],p=new Set;for(const{key:t,enabled:n,schema:b}of y)if(n){m(`Creating ${t} collection...`);try{await s.apiFetch(`/v1/admin/sites/${o}/collections`,{method:"POST",body:JSON.stringify(b)}),r.collectionsCreated.push(t),p.add(t)}catch(h){r.errors.push(`Failed to create ${t} collection: ${h instanceof Error?h.message:String(h)}`)}a++}if(!d.addSampleContent)return m("Done"),r;if(p.has("pages"))for(const t of z){m(`Creating page "${t.title}"...`);try{const n=await s.apiFetch(`/v1/admin/sites/${o}/content`,{method:"POST",body:JSON.stringify({collection:"pages",params:{title:t.title,slug:t.slug,body:t.body}})});a++,m(`Publishing page "${t.title}"...`),await s.apiFetch(`/v1/admin/sites/${o}/content/${n.contentId}/publish`,{method:"POST"}),a++,r.contentCreated.push(`pages/${t.slug}`)}catch(n){r.errors.push(`Failed to create page "${t.title}": ${n instanceof Error?n.message:String(n)}`),a+=2}}if(p.has("posts"))for(const t of K){m(`Creating post "${t.title}"...`);try{const n=await s.apiFetch(`/v1/admin/sites/${o}/content`,{method:"POST",body:JSON.stringify({collection:"posts",params:{title:t.title,slug:t.slug,body:t.body}})});a++,m(`Publishing post "${t.title}"...`),await s.apiFetch(`/v1/admin/sites/${o}/content/${n.contentId}/publish`,{method:"POST"}),a++,r.contentCreated.push(`posts/${t.slug}`)}catch(n){r.errors.push(`Failed to create post "${t.title}": ${n instanceof Error?n.message:String(n)}`),a+=2}}if(p.has("settings")){m("Configuring settings...");try{const t=await s.apiFetch(`/v1/admin/sites/${o}/collections/settings`);a++,t.singletonContentId?(m("Saving settings draft..."),await s.apiFetch(`/v1/admin/sites/${o}/content/${t.singletonContentId}/draft`,{method:"PUT",body:JSON.stringify({title:"Settings",slug:"settings",body:be})}),a++,m("Publishing settings..."),await s.apiFetch(`/v1/admin/sites/${o}/content/${t.singletonContentId}/publish`,{method:"POST"}),a++,r.contentCreated.push("settings")):a+=2}catch(t){r.errors.push(`Failed to populate settings: ${t instanceof Error?t.message:String(t)}`),a+=3}}return m("Done"),r}function Ae(){const[s,o]=u.useState(!1),{data:d,isLoading:g}=X(s),r=V(),f=u.useMemo(()=>[...d?.items??[]].sort((i,A)=>(i.name||i.host).localeCompare(A.name||A.host)),[d]),{user:a}=Z(),{data:m}=ee(),y=a?(m?.superAdminIds??[]).includes(a.sub):!1,p=te(),t=se(),[n,b]=u.useState(!1),[h,j]=u.useState(""),[S,c]=u.useState(""),[N,l]=u.useState(!0),[w,D]=u.useState(!0),[k,O]=u.useState(!0),[P,E]=u.useState(!0),[F,L]=u.useState(!1),[H,T]=u.useState(null),_=()=>{j(""),c(""),l(!0),D(!0),O(!0),E(!0),L(!1),T(null)},I=i=>{b(i),i||_()};if(g)return e.jsx(ae,{});const B=async()=>{if(h.trim())try{await t.mutateAsync({host:h.trim(),name:S.trim()||h.trim()});const i={createPages:w,createPosts:k,createSettings:P,addSampleContent:F};if(N&&(w||k||P)){const A=Q(i);T({completed:0,total:A,label:"Setting up collections..."});const U=await Se(p,h.trim(),i,T);U.errors.length>0&&console.warn("Scaffold warnings:",U.errors)}b(!1),_()}catch{T(null)}};return f.length===0?e.jsxs("div",{className:"flex h-dvh flex-col",children:[e.jsx(M,{}),e.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-4",children:[e.jsx("p",{className:"text-muted-foreground",children:"No sites available."}),e.jsxs(G,{open:n,onOpenChange:I,children:[e.jsx(J,{asChild:!0,children:e.jsxs($,{children:[e.jsx(Y,{className:"mr-2 h-4 w-4"}),"Create Site"]})}),e.jsx(q,{newHost:h,setNewHost:j,newName:S,setNewName:c,createDefaults:N,setCreateDefaults:l,createPages:w,setCreatePages:D,createPosts:k,setCreatePosts:O,createSettings:P,setCreateSettings:E,addSampleContent:F,setAddSampleContent:L,onSubmit:B,isPending:t.isPending,scaffoldProgress:H})]})]})]}):e.jsxs("div",{className:"flex h-dvh flex-col",children:[e.jsx(M,{}),e.jsxs("div",{className:"flex-1 p-4 sm:p-8",children:[e.jsxs("div",{className:"mb-6 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsx("h1",{className:"text-2xl font-semibold",children:"Select a site"}),y&&e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[e.jsx(C,{checked:s,onCheckedChange:i=>o(i===!0)}),"Show archived sites"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs($,{variant:"outline",onClick:()=>r("/users"),children:[e.jsx(ne,{className:"mr-2 h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"All Users"})]}),e.jsxs(G,{open:n,onOpenChange:I,children:[e.jsx(J,{asChild:!0,children:e.jsxs($,{children:[e.jsx(Y,{className:"mr-2 h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"Create Site"})]})}),e.jsx(q,{newHost:h,setNewHost:j,newName:S,setNewName:c,createDefaults:N,setCreateDefaults:l,createPages:w,setCreatePages:D,createPosts:k,setCreatePosts:O,createSettings:P,setCreateSettings:E,addSampleContent:F,setAddSampleContent:L,onSubmit:B,isPending:t.isPending,scaffoldProgress:H})]})]})]})]}),e.jsx("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-3",children:f.map(i=>e.jsx(de,{className:"cursor-pointer transition-shadow hover:shadow-md",onClick:()=>r(`/sites/${i.host}/content`),children:e.jsxs(me,{children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(he,{children:i.name||i.host}),i.status==="archived"&&e.jsx(ge,{variant:"outline",children:"Archived"})]}),e.jsx(ue,{children:i.host})]})},i.host))})]})]})}function q({newHost:s,setNewHost:o,newName:d,setNewName:g,createDefaults:r,setCreateDefaults:f,createPages:a,setCreatePages:m,createPosts:y,setCreatePosts:p,createSettings:t,setCreateSettings:n,addSampleContent:b,setAddSampleContent:h,onSubmit:j,isPending:S,scaffoldProgress:c}){const N=S||!!c;return e.jsxs(oe,{children:[e.jsxs(le,{children:[e.jsx(ie,{children:"Create Site"}),e.jsx(re,{className:"sr-only",children:"Enter details for the new site"})]}),e.jsxs("div",{className:"space-y-4 py-2",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(R,{htmlFor:"host",children:"Host"}),e.jsx(W,{id:"host",placeholder:"example.com",value:s,onChange:l=>o(l.target.value)})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(R,{htmlFor:"name",children:"Display Name"}),e.jsx(W,{id:"name",placeholder:"My Site",value:d,onChange:l=>g(l.target.value)})]}),e.jsxs("div",{className:"border-t pt-4",children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm font-medium",children:[e.jsx(C,{checked:r,onCheckedChange:l=>f(l===!0)}),"Create Default Collections"]}),r&&e.jsxs("div",{className:"ml-6 mt-3 space-y-2",children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[e.jsx(C,{checked:a,onCheckedChange:l=>m(l===!0)}),"Pages"]}),e.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[e.jsx(C,{checked:y,onCheckedChange:l=>p(l===!0)}),"Posts"]}),e.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[e.jsx(C,{checked:t,onCheckedChange:l=>n(l===!0)}),"Settings"]}),e.jsxs("label",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(C,{checked:b,onCheckedChange:l=>h(l===!0)}),"Add Sample Content"]})]})]})]}),c&&e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"h-2 w-full overflow-hidden rounded-full bg-muted",children:e.jsx("div",{className:"h-full rounded-full bg-primary transition-all duration-300",style:{width:`${c.total>0?c.completed/c.total*100:0}%`},role:"progressbar","aria-valuenow":c.completed,"aria-valuemin":0,"aria-valuemax":c.total})}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[c.label," ","(",c.completed,"/",c.total,")"]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Please wait while your site is being set up. Do not close this tab."})]}),e.jsx(ce,{children:e.jsx($,{onClick:j,disabled:!s.trim()||N,children:c?c.label:S?"Creating...":"Create"})})]})}export{Ae as SitesPage};
@@ -1 +0,0 @@
1
- import{o as c}from"./index-CwkwXbO-.js";const o=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],t=c("check",o);export{t as C};