@plank-cms/plank 0.30.0 → 0.30.1
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.
|
@@ -217,7 +217,7 @@ ${n}`}}),s}var mq=new WeakMap;function hq(e,t){let n=mq.get(e);if(!n){let t={cal
|
|
|
217
217
|
`):``,markdownTokenizer:{name:`orderedList`,level:`block`,start:e=>{let t=e.match(/^(\s*)(\d+)\.\s+/)?.index;return t===void 0?-1:t},tokenize:(e,t,n)=>{let r=e.split(`
|
|
218
218
|
`),[i,a]=rQ(r);if(i.length===0)return;let o=iQ(i,0,n);if(o.length!==0)return{type:`list`,ordered:!0,start:i[0]?.number||1,items:o,raw:r.slice(0,a).join(`
|
|
219
219
|
`)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(oQ,this.editor.getAttributes(sQ)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let e=tq({find:cQ,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(e=tq({find:cQ,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(sQ)}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1],editor:this.editor})),[e]}}),uQ=/^\s*(\[([( |x])?\])\s$/,dQ=vq.create({name:`taskItem`,addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:`taskList`,a11y:void 0}},content(){return this.options.nested?`paragraph block*`:`paragraph+`},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:e=>{let t=e.getAttribute(`data-checked`);return t===``||t===`true`},renderHTML:e=>({"data-checked":e.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:e,HTMLAttributes:t}){return[`li`,pG(this.options.HTMLAttributes,t,{"data-type":this.name}),[`label`,[`input`,{type:`checkbox`,checked:e.attrs.checked?`checked`:null}],[`span`]],[`div`,0]]},parseMarkdown:(e,t)=>{let n=[];if(e.tokens&&e.tokens.length>0?n.push(t.createNode(`paragraph`,{},t.parseInline(e.tokens))):e.text?n.push(t.createNode(`paragraph`,{},[t.createNode(`text`,{text:e.text})])):n.push(t.createNode(`paragraph`,{},[])),e.nestedTokens&&e.nestedTokens.length>0){let r=t.parseChildren(e.nestedTokens);n.push(...r)}return t.createNode(`taskItem`,{checked:e.checked||!1},n)},renderMarkdown:(e,t)=>pq(e,t,`- [${e.attrs?.checked?`x`:` `}] `),addKeyboardShortcuts(){let e={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...e,Tab:()=>this.editor.commands.sinkListItem(this.name)}:e},addNodeView(){return({node:e,HTMLAttributes:t,getPos:n,editor:r})=>{let i=document.createElement(`li`),a=document.createElement(`label`),o=document.createElement(`span`),s=document.createElement(`input`),c=document.createElement(`div`),l=e=>{var t;s.ariaLabel=((t=this.options.a11y)?.checkboxLabel)?.call(t,e,s.checked)||`Task item checkbox for ${e.textContent||`empty task item`}`};l(e),a.contentEditable=`false`,s.type=`checkbox`,s.addEventListener(`mousedown`,e=>e.preventDefault()),s.addEventListener(`change`,t=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){s.checked=!s.checked;return}let{checked:i}=t.target;r.isEditable&&typeof n==`function`&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:e})=>{let t=n();if(typeof t!=`number`)return!1;let r=e.doc.nodeAt(t);return e.setNodeMarkup(t,void 0,{...r?.attrs,checked:i}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(e,i)||(s.checked=!s.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([e,t])=>{i.setAttribute(e,t)}),i.dataset.checked=e.attrs.checked,s.checked=e.attrs.checked,a.append(s,o),i.append(a,c),Object.entries(t).forEach(([e,t])=>{i.setAttribute(e,t)});let u=new Set(Object.keys(t));return{dom:i,contentDOM:c,update:e=>{if(e.type!==this.type)return!1;i.dataset.checked=e.attrs.checked,s.checked=e.attrs.checked,l(e);let t=r.extensionManager.attributes,n=mG(e,t),a=new Set(Object.keys(n)),o=this.options.HTMLAttributes;return u.forEach(e=>{a.has(e)||(e in o?i.setAttribute(e,o[e]):i.removeAttribute(e))}),Object.entries(n).forEach(([e,t])=>{t==null?e in o?i.setAttribute(e,o[e]):i.removeAttribute(e):i.setAttribute(e,t)}),u=a,!0}}}},addInputRules(){return[tq({find:uQ,type:this.type,getAttributes:e=>({checked:e[e.length-1]===`x`})})]}}),fQ=vq.create({name:`taskList`,addOptions(){return{itemTypeName:`taskItem`,HTMLAttributes:{}}},group:`block list`,content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:e}){return[`ul`,pG(this.options.HTMLAttributes,e,{"data-type":this.name}),0]},parseMarkdown:(e,t)=>t.createNode(`taskList`,{},t.parseChildren(e.items||[])),renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,`
|
|
220
|
-
`):``,markdownTokenizer:{name:`taskList`,level:`block`,start(e){let t=e.match(/^\s*[-+*]\s+\[([ xX])\]\s+/)?.index;return t===void 0?-1:t},tokenize(e,t,n){let r=e=>{let t=fq(e,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:e=>({indentLevel:e[1].length,mainContent:e[4],checked:e[3].toLowerCase()===`x`}),createToken:(e,t)=>({type:`taskItem`,raw:``,mainContent:e.mainContent,indentLevel:e.indentLevel,checked:e.checked,text:e.mainContent,tokens:n.inlineTokens(e.mainContent),nestedTokens:t}),customNestedParser:r},n);return t?[{type:`taskList`,raw:t.raw,items:t.items}]:n.blockTokens(e)},i=fq(e,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:e=>({indentLevel:e[1].length,mainContent:e[4],checked:e[3].toLowerCase()===`x`}),createToken:(e,t)=>({type:`taskItem`,raw:``,mainContent:e.mainContent,indentLevel:e.indentLevel,checked:e.checked,text:e.mainContent,tokens:n.inlineTokens(e.mainContent),nestedTokens:t}),customNestedParser:r},n);if(i)return{type:`taskList`,raw:i.raw,items:i.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:e})=>e.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});IK.create({name:`listKit`,addExtensions(){let e=[];return this.options.bulletList!==!1&&e.push(BZ.configure(this.options.bulletList)),this.options.listItem!==!1&&e.push(VZ.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(QZ.configure(this.options.listKeymap)),this.options.orderedList!==!1&&e.push(lQ.configure(this.options.orderedList)),this.options.taskItem!==!1&&e.push(dQ.configure(this.options.taskItem)),this.options.taskList!==!1&&e.push(fQ.configure(this.options.taskList)),e}});var pQ=` `,mQ=`\xA0`,hQ=vq.create({name:`paragraph`,priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:`block`,content:`inline*`,parseHTML(){return[{tag:`p`}]},renderHTML({HTMLAttributes:e}){return[`p`,pG(this.options.HTMLAttributes,e),0]},parseMarkdown:(e,t)=>{let n=e.tokens||[];if(n.length===1&&n[0].type===`image`)return t.parseChildren([n[0]]);let r=t.parseInline(n);return n.length===1&&n[0].type===`text`&&(n[0].raw===pQ||n[0].text===pQ||n[0].raw===mQ||n[0].text===mQ)&&r.length===1&&r[0].type===`text`&&(r[0].text===pQ||r[0].text===mQ)?t.createNode(`paragraph`,void 0,[]):t.createNode(`paragraph`,void 0,r)},renderMarkdown:(e,t,n)=>{if(!e)return``;let r=Array.isArray(e.content)?e.content:[];if(r.length===0){let e=Array.isArray(n?.previousNode?.content)?n.previousNode.content:[];return n?.previousNode?.type===`paragraph`&&e.length===0?pQ:``}return t.renderChildren(r)},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),gQ=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,_Q=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,vQ=DK.create({name:`strike`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`s`},{tag:`del`},{tag:`strike`},{style:`text-decoration`,consuming:!1,getAttrs:e=>e.includes(`line-through`)?{}:!1}]},renderHTML({HTMLAttributes:e}){return[`s`,pG(this.options.HTMLAttributes,e),0]},markdownTokenName:`del`,parseMarkdown:(e,t)=>t.applyMark(`strike`,t.parseInline(e.tokens||[])),renderMarkdown:(e,t)=>`~~${t.renderChildren(e)}~~`,addCommands(){return{setStrike:()=>({commands:e})=>e.setMark(this.name),toggleStrike:()=>({commands:e})=>e.toggleMark(this.name),unsetStrike:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[QK({find:gQ,type:this.type})]},addPasteRules(){return[bq({find:_Q,type:this.type})]}}),yQ=vq.create({name:`text`,group:`inline`,parseMarkdown:e=>({type:`text`,text:e.text||``}),renderMarkdown:e=>e.text||``}),bQ=DK.create({name:`underline`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`u`},{style:`text-decoration`,consuming:!1,getAttrs:e=>e.includes(`underline`)?{}:!1}]},renderHTML({HTMLAttributes:e}){return[`u`,pG(this.options.HTMLAttributes,e),0]},parseMarkdown(e,t){return t.applyMark(this.name||`underline`,t.parseInline(e.tokens||[]))},renderMarkdown(e,t){return`++${t.renderChildren(e)}++`},markdownTokenizer:{name:`underline`,level:`inline`,start(e){return e.indexOf(`++`)},tokenize(e,t,n){let r=/^(\+\+)([\s\S]+?)(\+\+)/.exec(e);if(!r)return;let i=r[2].trim();return{type:`underline`,raw:r[0],text:i,tokens:n.inlineTokens(i)}}},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}});function xQ(e={}){return new aR({view(t){return new SQ(t,e)}})}var SQ=class{constructor(e,t){this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=t.width??1,this.color=t.color===!1?void 0:t.color||`black`,this.class=t.class,this.handlers=[`dragover`,`dragend`,`drop`,`dragleave`].map(t=>{let n=e=>{this[t](e)};return e.dom.addEventListener(t,n),{name:t,handler:n}})}destroy(){this.handlers.forEach(({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t))}update(e,t){this.cursorPos!=null&&t.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),t=!e.parent.inlineContent,n,r=this.editorView.dom,i=r.getBoundingClientRect(),a=i.width/r.offsetWidth,o=i.height/r.offsetHeight;if(t){let t=e.nodeBefore,r=e.nodeAfter;if(t||r){let e=this.editorView.nodeDOM(this.cursorPos-(t?t.nodeSize:0));if(e){let i=e.getBoundingClientRect(),a=t?i.bottom:i.top;t&&r&&(a=(a+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let s=this.width/2*o;n={left:i.left,right:i.right,top:a-s,bottom:a+s}}}}if(!n){let e=this.editorView.coordsAtPos(this.cursorPos),t=this.width/2*a;n={left:e.left-t,right:e.left+t,top:e.top,bottom:e.bottom}}let s=this.editorView.dom.offsetParent;this.element||(this.element=s.appendChild(document.createElement(`div`)),this.class&&(this.element.className=this.class),this.element.style.cssText=`position: absolute; z-index: 50; pointer-events: none;`,this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle(`prosemirror-dropcursor-block`,t),this.element.classList.toggle(`prosemirror-dropcursor-inline`,!t);let c,l;if(!s||s==document.body&&getComputedStyle(s).position==`static`)c=-pageXOffset,l=-pageYOffset;else{let e=s.getBoundingClientRect(),t=e.width/s.offsetWidth,n=e.height/s.offsetHeight;c=e.left-s.scrollLeft*t,l=e.top-s.scrollTop*n}this.element.style.left=(n.left-c)/a+`px`,this.element.style.top=(n.top-l)/o+`px`,this.element.style.width=(n.right-n.left)/a+`px`,this.element.style.height=(n.bottom-n.top)/o+`px`}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),n=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),r=n&&n.type.spec.disableDropCursor,i=typeof r==`function`?r(this.editorView,t,e):r;if(t&&!i){let e=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let t=gL(this.editorView.state.doc,e,this.editorView.dragging.slice);t!=null&&(e=t)}this.setCursor(e),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}},CQ=class e extends LL{constructor(e){super(e,e)}map(t,n){let r=t.resolve(n.map(this.head));return e.valid(r)?new e(r):LL.near(r)}content(){return Q.empty}eq(t){return t instanceof e&&t.head==this.head}toJSON(){return{type:`gapcursor`,pos:this.head}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for GapCursor.fromJSON`);return new e(t.resolve(n.pos))}getBookmark(){return new wQ(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!EQ(e)||!DQ(e))return!1;let n=t.type.spec.allowGapCursor;if(n!=null)return n;let r=t.contentMatchAt(e.index()).defaultType;return r&&r.isTextblock}static findGapCursorFrom(t,n,r=!1){search:for(;;){if(!r&&e.valid(t))return t;let i=t.pos,a=null;for(let r=t.depth;;r--){let o=t.node(r);if(n>0?t.indexAfter(r)<o.childCount:t.index(r)>0){a=o.child(n>0?t.indexAfter(r):t.index(r)-1);break}else if(r==0)return null;i+=n;let s=t.doc.resolve(i);if(e.valid(s))return s}for(;;){let o=n>0?a.firstChild:a.lastChild;if(!o){if(a.isAtom&&!a.isText&&!UL.isSelectable(a)){t=t.doc.resolve(i+a.nodeSize*n),r=!1;continue search}break}a=o,i+=n;let s=t.doc.resolve(i);if(e.valid(s))return s}return null}}};CQ.prototype.visible=!1,CQ.findFrom=CQ.findGapCursorFrom,LL.jsonID(`gapcursor`,CQ);var wQ=class e{constructor(e){this.pos=e}map(t){return new e(t.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return CQ.valid(t)?new CQ(t):LL.near(t)}};function TQ(e){return e.isAtom||e.spec.isolating||e.spec.createGapCursor}function EQ(e){for(let t=e.depth;t>=0;t--){let n=e.index(t),r=e.node(t);if(n==0){if(r.type.spec.isolating)return!0;continue}for(let e=r.child(n-1);;e=e.lastChild){if(e.childCount==0&&!e.inlineContent||TQ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function DQ(e){for(let t=e.depth;t>=0;t--){let n=e.indexAfter(t),r=e.node(t);if(n==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let e=r.child(n);;e=e.firstChild){if(e.childCount==0&&!e.inlineContent||TQ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function OQ(){return new aR({props:{decorations:NQ,createSelectionBetween(e,t,n){return t.pos==n.pos&&CQ.valid(n)?new CQ(n):null},handleClick:jQ,handleKeyDown:kQ,handleDOMEvents:{beforeinput:MQ}}})}var kQ=FU({ArrowLeft:AQ(`horiz`,-1),ArrowRight:AQ(`horiz`,1),ArrowUp:AQ(`vert`,-1),ArrowDown:AQ(`vert`,1)});function AQ(e,t){let n=e==`vert`?t>0?`down`:`up`:t>0?`right`:`left`;return function(e,r,i){let a=e.selection,o=t>0?a.$to:a.$from,s=a.empty;if(a instanceof VL){if(!i.endOfTextblock(n)||o.depth==0)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let c=CQ.findGapCursorFrom(o,t,s);return c?(r&&r(e.tr.setSelection(new CQ(c))),!0):!1}}function jQ(e,t,n){if(!e||!e.editable)return!1;let r=e.state.doc.resolve(t);if(!CQ.valid(r))return!1;let i=e.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&UL.isSelectable(e.state.doc.nodeAt(i.inside))?!1:(e.dispatch(e.state.tr.setSelection(new CQ(r))),!0)}function MQ(e,t){if(t.inputType!=`insertCompositionText`||!(e.state.selection instanceof CQ))return!1;let{$from:n}=e.state.selection,r=n.parent.contentMatchAt(n.index()).findWrapping(e.state.schema.nodes.text);if(!r)return!1;let i=Z.empty;for(let e=r.length-1;e>=0;e--)i=Z.from(r[e].createAndFill(null,i));let a=e.state.tr.replace(n.pos,n.pos,new Q(i,0,0));return a.setSelection(VL.near(a.doc.resolve(n.pos+1))),e.dispatch(a),!1}function NQ(e){if(!(e.selection instanceof CQ))return null;let t=document.createElement(`div`);return t.className=`ProseMirror-gapcursor`,PH.create(e.doc,[jH.widget(e.selection.head,t,{key:`gapcursor`})])}var PQ=200,FQ=function(){};FQ.prototype.append=function(e){return e.length?(e=FQ.from(e),!this.length&&e||e.length<PQ&&this.leafAppend(e)||this.length<PQ&&e.leafPrepend(this)||this.appendInner(e)):this},FQ.prototype.prepend=function(e){return e.length?FQ.from(e).append(this):this},FQ.prototype.appendInner=function(e){return new LQ(this,e)},FQ.prototype.slice=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=this.length),e>=t?FQ.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},FQ.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},FQ.prototype.forEach=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length),t<=n?this.forEachInner(e,t,n,0):this.forEachInvertedInner(e,t,n,0)},FQ.prototype.map=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length);var r=[];return this.forEach(function(t,n){return r.push(e(t,n))},t,n),r},FQ.from=function(e){return e instanceof FQ?e:e&&e.length?new IQ(e):FQ.empty};var IQ=function(e){function t(t){e.call(this),this.values=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(e,n){return e==0&&n==this.length?this:new t(this.values.slice(e,n))},t.prototype.getInner=function(e){return this.values[e]},t.prototype.forEachInner=function(e,t,n,r){for(var i=t;i<n;i++)if(e(this.values[i],r+i)===!1)return!1},t.prototype.forEachInvertedInner=function(e,t,n,r){for(var i=t-1;i>=n;i--)if(e(this.values[i],r+i)===!1)return!1},t.prototype.leafAppend=function(e){if(this.length+e.length<=PQ)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=PQ)return new t(e.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(t.prototype,n),t}(FQ);FQ.empty=new IQ([]);var LQ=function(e){function t(t,n){e.call(this),this.left=t,this.right=n,this.length=t.length+n.length,this.depth=Math.max(t.depth,n.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(e){return e<this.left.length?this.left.get(e):this.right.get(e-this.left.length)},t.prototype.forEachInner=function(e,t,n,r){var i=this.left.length;if(t<i&&this.left.forEachInner(e,t,Math.min(n,i),r)===!1||n>i&&this.right.forEachInner(e,Math.max(t-i,0),Math.min(this.length,n)-i,r+i)===!1)return!1},t.prototype.forEachInvertedInner=function(e,t,n,r){var i=this.left.length;if(t>i&&this.right.forEachInvertedInner(e,t-i,Math.max(n,i)-i,r+i)===!1||n<i&&this.left.forEachInvertedInner(e,Math.min(t,i),n,r)===!1)return!1},t.prototype.sliceInner=function(e,t){if(e==0&&t==this.length)return this;var n=this.left.length;return t<=n?this.left.slice(e,t):e>=n?this.right.slice(e-n,t-n):this.left.slice(e,n).append(this.right.slice(0,t-n))},t.prototype.leafAppend=function(e){var n=this.right.leafAppend(e);if(n)return new t(this.left,n)},t.prototype.leafPrepend=function(e){var n=this.left.leafPrepend(e);if(n)return new t(n,this.right)},t.prototype.appendInner=function(e){return this.left.depth>=Math.max(this.right.depth,e.depth)+1?new t(this.left,new t(this.right,e)):new t(this,e)},t}(FQ),RQ=500,zQ=class e{constructor(e,t){this.items=e,this.eventCount=t}popEvent(t,n){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,a;n&&(i=this.remapping(r,this.items.length),a=i.maps.length);let o=t.tr,s,c,l=[],u=[];return this.items.forEach((t,n)=>{if(!t.step){i||(i=this.remapping(r,n+1),a=i.maps.length),a--,u.push(t);return}if(i){u.push(new VQ(t.map));let e=t.step.map(i.slice(a)),n;e&&o.maybeStep(e).doc&&(n=o.mapping.maps[o.mapping.maps.length-1],l.push(new VQ(n,void 0,void 0,l.length+u.length))),a--,n&&i.appendMap(n,a)}else o.maybeStep(t.step);if(t.selection)return s=i?t.selection.map(i.slice(a)):t.selection,c=new e(this.items.slice(0,r).append(u.reverse().concat(l)),this.eventCount-1),!1},this.items.length,0),{remaining:c,transform:o,selection:s}}addTransform(t,n,r,i){let a=[],o=this.eventCount,s=this.items,c=!i&&s.length?s.get(s.length-1):null;for(let e=0;e<t.steps.length;e++){let r=t.steps[e].invert(t.docs[e]),l=new VQ(t.mapping.maps[e],r,n),u;(u=c&&c.merge(l))&&(l=u,e?a.pop():s=s.slice(0,s.length-1)),a.push(l),n&&=(o++,void 0),i||(c=l)}let l=o-r.depth;return l>UQ&&(s=BQ(s,l),o-=l),new e(s.append(a),o)}remapping(e,t){let n=new PI;return this.items.forEach((t,r)=>{let i=t.mirrorOffset!=null&&r-t.mirrorOffset>=e?n.maps.length-t.mirrorOffset:void 0;n.appendMap(t.map,i)},e,t),n}addMaps(t){return this.eventCount==0?this:new e(this.items.append(t.map(e=>new VQ(e))),this.eventCount)}rebased(t,n){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-n),a=t.mapping,o=t.steps.length,s=this.eventCount;this.items.forEach(e=>{e.selection&&s--},i);let c=n;this.items.forEach(e=>{let n=a.getMirror(--c);if(n==null)return;o=Math.min(o,n);let i=a.maps[n];if(e.step){let o=t.steps[n].invert(t.docs[n]),l=e.selection&&e.selection.map(a.slice(c+1,n));l&&s++,r.push(new VQ(i,o,l))}else r.push(new VQ(i))},i);let l=[];for(let e=n;e<o;e++)l.push(new VQ(a.maps[e]));let u=new e(this.items.slice(0,i).append(l).append(r),s);return u.emptyItemCount()>RQ&&(u=u.compress(this.items.length-r.length)),u}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(t=this.items.length){let n=this.remapping(0,t),r=n.maps.length,i=[],a=0;return this.items.forEach((e,o)=>{if(o>=t)i.push(e),e.selection&&a++;else if(e.step){let t=e.step.map(n.slice(r)),o=t&&t.getMap();if(r--,o&&n.appendMap(o,r),t){let s=e.selection&&e.selection.map(n.slice(r));s&&a++;let c=new VQ(o.invert(),t,s),l,u=i.length-1;(l=i.length&&i[u].merge(c))?i[u]=l:i.push(c)}}else e.map&&r--},this.items.length,0),new e(FQ.from(i.reverse()),a)}};zQ.empty=new zQ(FQ.empty,0);function BQ(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&t--==0)return n=r,!1}),e.slice(n)}var VQ=class e{constructor(e,t,n,r){this.map=e,this.step=t,this.selection=n,this.mirrorOffset=r}merge(t){if(this.step&&t.step&&!t.selection){let n=t.step.merge(this.step);if(n)return new e(n.getMap().invert(),n,this.selection)}}},HQ=class{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}},UQ=20;function WQ(e,t,n,r){let i=n.getMeta(QQ),a;if(i)return i.historyState;n.getMeta($Q)&&(e=new HQ(e.done,e.undone,null,0,-1));let o=n.getMeta(`appendedTransaction`);if(n.steps.length==0)return e;if(o&&o.getMeta(QQ))return o.getMeta(QQ).redo?new HQ(e.done.addTransform(n,void 0,r,ZQ(t)),e.undone,KQ(n.mapping.maps),e.prevTime,e.prevComposition):new HQ(e.done,e.undone.addTransform(n,void 0,r,ZQ(t)),null,e.prevTime,e.prevComposition);if(n.getMeta(`addToHistory`)!==!1&&!(o&&o.getMeta(`addToHistory`)===!1)){let i=n.getMeta(`composition`),a=e.prevTime==0||!o&&e.prevComposition!=i&&(e.prevTime<(n.time||0)-r.newGroupDelay||!GQ(n,e.prevRanges)),s=o?qQ(e.prevRanges,n.mapping):KQ(n.mapping.maps);return new HQ(e.done.addTransform(n,a?t.selection.getBookmark():void 0,r,ZQ(t)),zQ.empty,s,n.time,i??e.prevComposition)}else if(a=n.getMeta(`rebased`))return new HQ(e.done.rebased(n,a),e.undone.rebased(n,a),qQ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);else return new HQ(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),qQ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function GQ(e,t){if(!t)return!1;if(!e.docChanged)return!0;let n=!1;return e.mapping.maps[0].forEach((e,r)=>{for(let i=0;i<t.length;i+=2)e<=t[i+1]&&r>=t[i]&&(n=!0)}),n}function KQ(e){let t=[];for(let n=e.length-1;n>=0&&t.length==0;n--)e[n].forEach((e,n,r,i)=>t.push(r,i));return t}function qQ(e,t){if(!e)return null;let n=[];for(let r=0;r<e.length;r+=2){let i=t.map(e[r],1),a=t.map(e[r+1],-1);i<=a&&n.push(i,a)}return n}function JQ(e,t,n){let r=ZQ(t),i=QQ.get(t).spec.config,a=(n?e.undone:e.done).popEvent(t,r);if(!a)return null;let o=a.selection.resolve(a.transform.doc),s=(n?e.done:e.undone).addTransform(a.transform,t.selection.getBookmark(),i,r),c=new HQ(n?s:a.remaining,n?a.remaining:s,null,0,-1);return a.transform.setSelection(o).setMeta(QQ,{redo:n,historyState:c})}var YQ=!1,XQ=null;function ZQ(e){let t=e.plugins;if(XQ!=t){YQ=!1,XQ=t;for(let e=0;e<t.length;e++)if(t[e].spec.historyPreserveItems){YQ=!0;break}}return YQ}var QQ=new cR(`history`),$Q=new cR(`closeHistory`);function e$(e={}){return e={depth:e.depth||100,newGroupDelay:e.newGroupDelay||500},new aR({key:QQ,state:{init(){return new HQ(zQ.empty,zQ.empty,null,0,-1)},apply(t,n,r){return WQ(n,r,t,e)}},config:e,props:{handleDOMEvents:{beforeinput(e,t){let n=t.inputType,r=n==`historyUndo`?n$:n==`historyRedo`?r$:null;return!r||!e.editable?!1:(t.preventDefault(),r(e.state,e.dispatch))}}}})}function t$(e,t){return(n,r)=>{let i=QQ.getState(n);if(!i||(e?i.undone:i.done).eventCount==0)return!1;if(r){let a=JQ(i,n,e);a&&r(t?a.scrollIntoView():a)}return!0}}var n$=t$(!1,!0),r$=t$(!0,!0);IK.create({name:`characterCount`,addOptions(){return{limit:null,mode:`textSize`,textCounter:e=>e.length,wordCounter:e=>e.split(` `).filter(e=>e!==``).length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=e=>{let t=e?.node||this.editor.state.doc;if((e?.mode||this.options.mode)===`textSize`){let e=t.textBetween(0,t.content.size,void 0,` `);return this.options.textCounter(e)}return t.nodeSize},this.storage.words=e=>{let t=e?.node||this.editor.state.doc,n=t.textBetween(0,t.content.size,` `,` `);return this.options.wordCounter(n)}},addProseMirrorPlugins(){let e=!1;return[new aR({key:new cR(`characterCount`),appendTransaction:(t,n,r)=>{if(e)return;let i=this.options.limit;if(i==null||i===0){e=!0;return}let a=this.storage.characters({node:r.doc});if(a>i){let t=a-i;console.warn(`[CharacterCount] Initial content exceeded limit of ${i} characters. Content was automatically trimmed.`);let n=r.tr.deleteRange(0,t);return e=!0,n}e=!0},filterTransaction:(e,t)=>{let n=this.options.limit;if(!e.docChanged||n===0||n==null)return!0;let r=this.storage.characters({node:t.doc}),i=this.storage.characters({node:e.doc});if(i<=n||r>n&&i>n&&i<=r)return!0;if(r>n&&i>n&&i>r||!e.getMeta(`paste`))return!1;let a=e.selection.$head.pos,o=a-(i-n),s=a;return e.deleteRange(o,s),!(this.storage.characters({node:e.doc})>n)}})]}});var i$=IK.create({name:`dropCursor`,addOptions(){return{color:`currentColor`,width:1,class:void 0}},addProseMirrorPlugins(){return[xQ(this.options)]}});IK.create({name:`focus`,addOptions(){return{className:`has-focus`,mode:`all`}},addProseMirrorPlugins(){return[new aR({key:new cR(`focus`),props:{decorations:({doc:e,selection:t})=>{let{isEditable:n,isFocused:r}=this.editor,{anchor:i}=t,a=[];if(!n||!r)return PH.create(e,[]);let o=0;this.options.mode===`deepest`&&e.descendants((e,t)=>{if(!e.isText){if(!(i>=t&&i<=t+e.nodeSize-1))return!1;o+=1}});let s=0;return e.descendants((e,t)=>{if(e.isText||!(i>=t&&i<=t+e.nodeSize-1))return!1;if(s+=1,this.options.mode===`deepest`&&o-s>0||this.options.mode===`shallowest`&&s>1)return this.options.mode===`deepest`;a.push(jH.node(t,t+e.nodeSize,{class:this.options.className}))}),PH.create(e,a)}}})]}});var a$=IK.create({name:`gapCursor`,addProseMirrorPlugins(){return[OQ()]},extendNodeSchema(e){return{allowGapCursor:sG(rG(e,`allowGapCursor`,{name:e.name,options:e.options,storage:e.storage}))??null}}}),o$=`placeholder`;function s$(e){return e.replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9-]/g,``).replace(/^[0-9-]+/,``).replace(/^-+/,``).toLowerCase()}IK.create({name:`placeholder`,addOptions(){return{emptyEditorClass:`is-editor-empty`,emptyNodeClass:`is-empty`,dataAttribute:o$,placeholder:`Write something …`,showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){let e=this.options.dataAttribute?`data-${s$(this.options.dataAttribute)}`:`data-${o$}`;return[new aR({key:new cR(`placeholder`),props:{decorations:({doc:t,selection:n})=>{let r=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:i}=n,a=[];if(!r)return null;let o=this.editor.isEmpty;return t.descendants((t,n)=>{let r=i>=n&&i<=n+t.nodeSize,s=!t.isLeaf&&HG(t);if(!t.type.isTextblock)return this.options.includeChildren;if((r||!this.options.showOnlyCurrent)&&s){let i=[this.options.emptyNodeClass];o&&i.push(this.options.emptyEditorClass);let s=jH.node(n,n+t.nodeSize,{class:i.join(` `),[e]:typeof this.options.placeholder==`function`?this.options.placeholder({editor:this.editor,node:t,pos:n,hasAnchor:r}):this.options.placeholder});a.push(s)}return this.options.includeChildren}),PH.create(t,a)}}})]}}),IK.create({name:`selection`,addOptions(){return{className:`selection`}},addProseMirrorPlugins(){let{editor:e,options:t}=this;return[new aR({key:new cR(`selection`),props:{decorations(n){return n.selection.empty||e.isFocused||!e.isEditable||UG(n.selection)||e.view.dragging?null:PH.create(n.doc,[jH.inline(n.selection.from,n.selection.to,{class:t.className})])}}})]}});function c$({types:e,node:t}){return t&&Array.isArray(e)&&e.includes(t.type)||t?.type===e}var l$=IK.create({name:`trailingNode`,addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){let e=new cR(this.name),t=this.options.node||this.editor.schema.topNodeType.contentMatch.defaultType?.name||`paragraph`,n=Object.entries(this.editor.schema.nodes).map(([,e])=>e).filter(e=>(this.options.notAfter||[]).concat(t).includes(e.name));return[new aR({key:e,appendTransaction:(n,r,i)=>{let{doc:a,tr:o,schema:s}=i,c=e.getState(i),l=a.content.size,u=s.nodes[t];if(!n.some(e=>e.getMeta(`skipTrailingNode`))&&c)return o.insert(l,u.create())},state:{init:(e,t)=>{let r=t.tr.doc.lastChild;return!c$({node:r,types:n})},apply:(e,t)=>{if(!e.docChanged||e.getMeta(`__uniqueIDTransaction`))return t;let r=e.doc.lastChild;return!c$({node:r,types:n})}}})]}}),u$=IK.create({name:`undoRedo`,addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:e,dispatch:t})=>n$(e,t),redo:()=>({state:e,dispatch:t})=>r$(e,t)}},addProseMirrorPlugins(){return[e$(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),d$=IK.create({name:`starterKit`,addExtensions(){let e=[];return this.options.bold!==!1&&e.push(rY.configure(this.options.bold)),this.options.blockquote!==!1&&e.push(QJ.configure(this.options.blockquote)),this.options.bulletList!==!1&&e.push(BZ.configure(this.options.bulletList)),this.options.code!==!1&&e.push(oY.configure(this.options.code)),this.options.codeBlock!==!1&&e.push(uY.configure(this.options.codeBlock)),this.options.document!==!1&&e.push(dY.configure(this.options.document)),this.options.dropcursor!==!1&&e.push(i$.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&e.push(a$.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&e.push(fY.configure(this.options.hardBreak)),this.options.heading!==!1&&e.push(pY.configure(this.options.heading)),this.options.undoRedo!==!1&&e.push(u$.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&e.push(mY.configure(this.options.horizontalRule)),this.options.italic!==!1&&e.push(yY.configure(this.options.italic)),this.options.listItem!==!1&&e.push(VZ.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(QZ.configure(this.options?.listKeymap)),this.options.link!==!1&&e.push(PZ.configure(this.options?.link)),this.options.orderedList!==!1&&e.push(lQ.configure(this.options.orderedList)),this.options.paragraph!==!1&&e.push(hQ.configure(this.options.paragraph)),this.options.strike!==!1&&e.push(vQ.configure(this.options.strike)),this.options.text!==!1&&e.push(yQ.configure(this.options.text)),this.options.underline!==!1&&e.push(bQ.configure(this.options?.underline)),this.options.trailingNode!==!1&&e.push(l$.configure(this.options?.trailingNode)),e}}),f$=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,p$=vq.create({name:`image`,addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?`inline`:`block`},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?`img[src]`:`img[src]:not([src^="data:"])`}]},renderHTML({HTMLAttributes:e}){return[`img`,pG(this.options.HTMLAttributes,e)]},parseMarkdown:(e,t)=>t.createNode(`image`,{src:e.href,title:e.title,alt:e.text}),renderMarkdown:e=>{let t=e.attrs?.src??``,n=e.attrs?.alt??``,r=e.attrs?.title??``;return r?``:``},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>`u`)return null;let{directions:e,minWidth:t,minHeight:n,alwaysPreserveAspectRatio:r}=this.options.resize;return({node:i,getPos:a,HTMLAttributes:o,editor:s})=>{let c=document.createElement(`img`);Object.entries(o).forEach(([e,t])=>{if(t!=null)switch(e){case`width`:case`height`:break;default:c.setAttribute(e,t);break}}),c.src=o.src;let l=new rq({element:c,editor:s,node:i,getPos:a,onResize:(e,t)=>{c.style.width=`${e}px`,c.style.height=`${t}px`},onCommit:(e,t)=>{let n=a();n!==void 0&&this.editor.chain().setNodeSelection(n).updateAttributes(this.name,{width:e,height:t}).run()},onUpdate:(e,t,n)=>e.type===i.type,options:{directions:e,min:{width:t,height:n},preserveAspectRatio:r===!0}}),u=l.dom;return u.style.visibility=`hidden`,u.style.pointerEvents=`none`,c.onload=()=>{u.style.visibility=``,u.style.pointerEvents=``},l}},addCommands(){return{setImage:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[$K({find:f$,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}});function m$({onClick:e,active:t,disabled:n,title:r,children:i}){return(0,H.jsx)(`button`,{type:`button`,title:r,disabled:n,onMouseDown:t=>{t.preventDefault(),e()},className:K(`flex size-7 items-center justify-center rounded transition-colors`,t?`bg-foreground text-background`:`text-muted-foreground hover:bg-accent hover:text-accent-foreground`,n&&`pointer-events-none opacity-40`),children:i})}function h$(){return(0,H.jsx)(`div`,{className:`mx-0.5 h-4 w-px bg-border`})}function g$(e,t){return!e||!t?null:`${e} × ${t}`}function _$(e){try{let t=new URL(e).pathname.split(`/`).filter(Boolean);return t[t.length-1]||`Image`}catch{let t=e.split(`?`)[0].split(`/`).filter(Boolean);return t[t.length-1]||`Image`}}async function v$(e,t){if(!(await fetch(`/cms/admin/media/${e}`,{method:`PATCH`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({caption:t})})).ok)throw Error(`Could not update media caption.`)}function y$({node:e,deleteNode:t,selected:n,updateAttributes:r,editor:i}){let a=String(e.attrs.src??``),o=typeof e.attrs.mediaId==`string`?e.attrs.mediaId:null,s=typeof e.attrs.filename==`string`?e.attrs.filename:null,c=typeof e.attrs.alt==`string`?e.attrs.alt:null,l=typeof e.attrs.title==`string`?e.attrs.title:null,u=typeof e.attrs.width==`number`?e.attrs.width:null,d=typeof e.attrs.height==`number`?e.attrs.height:null,f=s||_$(a),p=g$(u,d),[m,h]=(0,v.useState)(l??``),[g,_]=(0,v.useState)(null),[y,b]=(0,v.useState)(!1),x=i.isEditable;(0,v.useEffect)(()=>{h(l??``)},[l]);async function S(){let e=m.trim()||null;if(e===(l?.trim()||null)){_(null);return}if(r({title:e}),_(null),o){b(!0);try{await v$(o,e)}catch(e){_(e instanceof Error?e.message:`Could not update media caption.`)}finally{b(!1)}}}return(0,H.jsx)(LJ,{className:K(`my-3`,`rounded-xl border bg-card shadow-xs transition-colors`,n?`border-primary ring-2 ring-primary/20`:`border-border`),contentEditable:!1,"data-drag-handle":!0,children:(0,H.jsxs)(`div`,{className:`flex items-start gap-3 p-3`,children:[(0,H.jsx)(`div`,{className:`size-18 shrink-0 overflow-hidden rounded-lg border bg-muted`,children:(0,H.jsx)(`img`,{src:a,alt:c??f,className:`h-full w-full object-cover`})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,H.jsx)(`p`,{className:`truncate text-sm font-medium text-foreground`,title:f,children:f}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground`,children:[p&&(0,H.jsx)(`span`,{children:p}),c&&(0,H.jsxs)(`span`,{className:`truncate`,title:c,children:[`Alt: `,c]})]}),(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(lE,{value:m,onChange:e=>h(e.target.value),onBlur:S,placeholder:`Figcaption...`,disabled:!x,className:`min-h-8 resize-none border-0 bg-muted/60 px-2.5 py-1.5 text-xs text-muted-foreground shadow-none focus-visible:ring-1`}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-muted-foreground`,children:[(0,H.jsx)(`span`,{children:o?`Synced with Media Library`:`Local to this entry`}),y&&(0,H.jsx)(`span`,{children:`Saving…`})]}),g&&(0,H.jsx)(`p`,{className:`text-[11px] text-destructive`,children:g})]})]}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>t(),className:`flex size-8 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove image`,children:(0,H.jsx)(Zo,{className:`size-4`})})]})})}function b$({value:e,onChange:t,placeholder:n,onInsertImage:r}){let[i,a]=(0,v.useState)(!e),o=NJ({extensions:[d$.configure({link:{openOnClick:!1,HTMLAttributes:{class:`text-primary underline`}}}),p$.extend({addAttributes(){return{...this.parent?.(),mediaId:{default:null},filename:{default:null},width:{default:null},height:{default:null}}},addNodeView(){return GJ(y$)}}).configure({inline:!1})],content:(()=>{if(!e)return``;try{return JSON.parse(e)}catch{return e}})(),editorProps:{attributes:{class:`h-128 px-3 py-2.5 focus:outline-none`}},onUpdate({editor:e}){a(e.isEmpty),t(JSON.stringify(e.getJSON()))}});(0,v.useEffect)(()=>{if(!o)return;let t=e?(()=>{try{return JSON.parse(e)}catch{return e}})():``;JSON.stringify(o.getJSON())!==e&&o.commands.setContent(t,{emitUpdate:!1}),a(o.isEmpty)},[e]);async function s(){if(!o||!r)return;let e=await r();if(!e||e.length===0)return;let t=e.map(e=>({type:`image`,attrs:{mediaId:e.id??void 0,src:e.src,filename:e.filename??void 0,alt:e.alt??void 0,title:e.title??void 0,width:e.width??void 0,height:e.height??void 0}}));o.chain().focus().insertContent(t).run()}function c(){if(!o)return;let e=o.getAttributes(`link`).href,t=window.prompt(`URL`,e??`https://`);if(t!==null){if(!t){o.chain().focus().unsetLink().run();return}o.chain().focus().setLink({href:t}).run()}}return o?(0,H.jsxs)(`div`,{className:`overflow-hidden rounded-md border border-input bg-background focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50`,children:[(0,H.jsxs)(`div`,{className:`sticky top-0 z-10 flex flex-wrap items-center gap-0.5 border-b border-border bg-background px-2 py-1.5`,children:[(0,H.jsx)(m$,{title:`Bold`,active:o.isActive(`bold`),onClick:()=>o.chain().focus().toggleBold().run(),children:(0,H.jsx)(Fa,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Italic`,active:o.isActive(`italic`),onClick:()=>o.chain().focus().toggleItalic().run(),children:(0,H.jsx)(bo,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Underline`,active:o.isActive(`underline`),onClick:()=>o.chain().focus().toggleUnderline().run(),children:(0,H.jsx)(es,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Strikethrough`,active:o.isActive(`strike`),onClick:()=>o.chain().focus().toggleStrike().run(),children:(0,H.jsx)(qo,{className:`size-3.5`})}),(0,H.jsx)(h$,{}),(0,H.jsx)(m$,{title:`Heading 1`,active:o.isActive(`heading`,{level:1}),onClick:()=>o.chain().focus().toggleHeading({level:1}).run(),children:(0,H.jsx)(mo,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Heading 2`,active:o.isActive(`heading`,{level:2}),onClick:()=>o.chain().focus().toggleHeading({level:2}).run(),children:(0,H.jsx)(ho,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Heading 3`,active:o.isActive(`heading`,{level:3}),onClick:()=>o.chain().focus().toggleHeading({level:3}).run(),children:(0,H.jsx)(go,{className:`size-3.5`})}),(0,H.jsx)(h$,{}),(0,H.jsx)(m$,{title:`Bullet list`,active:o.isActive(`bulletList`),onClick:()=>o.chain().focus().toggleBulletList().run(),children:(0,H.jsx)(ko,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Ordered list`,active:o.isActive(`orderedList`),onClick:()=>o.chain().focus().toggleOrderedList().run(),children:(0,H.jsx)(Do,{className:`size-3.5`})}),(0,H.jsx)(h$,{}),(0,H.jsx)(m$,{title:`Blockquote`,active:o.isActive(`blockquote`),onClick:()=>o.chain().focus().toggleBlockquote().run(),children:(0,H.jsx)(zo,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Inline code`,active:o.isActive(`code`),onClick:()=>o.chain().focus().toggleCode().run(),children:(0,H.jsx)(Xa,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Code block`,active:o.isActive(`codeBlock`),onClick:()=>o.chain().focus().toggleCodeBlock().run(),children:(0,H.jsx)(Go,{className:`size-3.5`})}),(0,H.jsx)(h$,{}),(0,H.jsx)(m$,{title:`Add link`,active:o.isActive(`link`),onClick:c,children:(0,H.jsx)(Eo,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Remove link`,disabled:!o.isActive(`link`),onClick:()=>o.chain().focus().unsetLink().run(),children:(0,H.jsx)(ts,{className:`size-3.5`})}),(0,H.jsx)(h$,{}),r&&(0,H.jsx)(m$,{title:`Insert image`,onClick:s,children:(0,H.jsx)(vo,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Hard break (Shift + Enter)`,onClick:()=>o.chain().focus().setHardBreak().run(),children:(0,H.jsx)(Yo,{className:`size-3.5`})})]}),(0,H.jsxs)(`div`,{className:`relative overflow-y-auto`,children:[i&&n&&(0,H.jsx)(`p`,{className:`pointer-events-none absolute left-3 top-2.5 text-muted-foreground select-none`,children:n}),(0,H.jsx)(TJ,{editor:o})]})]}):null}var x$=1,S$=.9,C$=.8,w$=.17,T$=.1,E$=.999,D$=.9999,O$=.99,k$=/[\\\/_+.#"@\[\(\{&]/,A$=/[\\\/_+.#"@\[\(\{&]/g,j$=/[\s-]/,M$=/[\s-]/g;function N$(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?x$:O$;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,d,f,p,m;l>=0;)d=N$(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=x$:k$.test(e.charAt(l-1))?(d*=C$,p=e.slice(i,l-1).match(A$),p&&i>0&&(d*=E$**+p.length)):j$.test(e.charAt(l-1))?(d*=S$,m=e.slice(i,l-1).match(M$),m&&i>0&&(d*=E$**+m.length)):(d*=w$,i>0&&(d*=E$**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=D$)),(d<T$&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=N$(e,t,n,r,l+1,a+2,o),f*T$>d&&(d=f*T$)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function P$(e){return e.toLowerCase().replace(M$,` `)}function F$(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,N$(e,t,P$(e),P$(t),0,0,{})}var I$=`[cmdk-group=""]`,L$=`[cmdk-group-items=""]`,R$=`[cmdk-group-heading=""]`,z$=`[cmdk-item=""]`,B$=`${z$}:not([aria-disabled="true"])`,V$=`cmdk-item-select`,H$=`data-value`,U$=(e,t,n)=>F$(e,t,n),W$=v.createContext(void 0),G$=()=>v.useContext(W$),K$=v.createContext(void 0),q$=()=>v.useContext(K$),J$=v.createContext(void 0),Y$=v.forwardRef((e,t)=>{let n=l1(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=l1(()=>new Set),i=l1(()=>new Map),a=l1(()=>new Map),o=l1(()=>new Set),s=s1(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:p,loop:m,disablePointerSelection:h=!1,vimBindings:g=!0,..._}=e,y=Pl(),b=Pl(),x=Pl(),S=v.useRef(null),C=f1();c1(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,w.emit()}},[u]),c1(()=>{C(6,A)},[]);let w=v.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)k(),D(),C(1,O);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(x);e?e.focus():(i=document.getElementById(y))==null||i.focus()}if(C(7,()=>{n.current.selectedItemId=j()?.id,w.emit()}),r||C(5,A),s.current?.value!==void 0){let e=t??``;(o=(a=s.current).onValueChange)==null||o.call(a,e);return}}w.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),T=v.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,E(t,r)),C(2,()=>{D(),w.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),C(3,()=>{k(),D(),n.current.value||O(),w.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=j();C(4,()=>{k(),t?.getAttribute(`id`)===e&&O(),w.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>s.current.shouldFilter,label:c||e[`aria-label`],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:y,inputId:x,labelId:b,listInnerRef:S}),[]);function E(e,t){let r=s.current?.filter??U$;return e?r(e,n.current.search,t):0}function D(){if(!n.current.search||s.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=S.current;M().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(L$);t?t.appendChild(e.parentElement===t?e:e.closest(`${L$} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${L$} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${I$}[${H$}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(H$);w.setState(`value`,e||void 0)}function k(){if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=E(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function A(){var e;let t=j();t&&(t.parentElement?.firstChild===t&&((e=t.closest(I$)?.querySelector(R$))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${z$}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(B$)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(H$))}function P(e){var t;let n=j(),r=M(),i=r.findIndex(e=>e===n),a=r[i+e];(t=s.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&w.setState(`value`,a.getAttribute(H$))}function F(e){let t=j()?.closest(I$),n;for(;t&&!n;)t=e>0?a1(t,I$):o1(t,I$),n=t?.querySelector(B$);n?w.setState(`value`,n.getAttribute(H$)):P(e)}let I=()=>N(M().length-1),L=e=>{e.preventDefault(),e.metaKey?I():e.altKey?F(1):P(1)},R=e=>{e.preventDefault(),e.metaKey?N(0):e.altKey?F(-1):P(-1)};return v.createElement(rg.div,{ref:t,tabIndex:-1,..._,"cmdk-root":``,onKeyDown:e=>{var t;(t=_.onKeyDown)==null||t.call(_,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:g&&e.ctrlKey&&L(e);break;case`ArrowDown`:L(e);break;case`p`:case`k`:g&&e.ctrlKey&&R(e);break;case`ArrowUp`:R(e);break;case`Home`:e.preventDefault(),N(0);break;case`End`:e.preventDefault(),I();break;case`Enter`:{e.preventDefault();let t=j();if(t){let e=new Event(V$);t.dispatchEvent(e)}}}}},v.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:h1},c),m1(e,e=>v.createElement(K$.Provider,{value:w},v.createElement(W$.Provider,{value:T},e))))}),X$=v.forwardRef((e,t)=>{let n=Pl(),r=v.useRef(null),i=v.useContext(J$),a=G$(),o=s1(e),s=o.current?.forceMount??i?.forceMount;c1(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=d1(n,r,[e.value,e.children,r],e.keywords),l=q$(),u=u1(e=>e.value&&e.value===c.current),d=u1(e=>s||a.filter()===!1?!0:e.search?e.filtered.items.get(n)>0:!0);v.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(V$,f),()=>t.removeEventListener(V$,f)},[d,e.onSelect,e.disabled]);function f(){var e,t;p(),(t=(e=o.current).onSelect)==null||t.call(e,c.current)}function p(){l.setState(`value`,c.current,!0)}if(!d)return null;let{disabled:m,value:h,onSelect:g,forceMount:_,keywords:y,...b}=e;return v.createElement(rg.div,{ref:ms(r,t),...b,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!m,"aria-selected":!!u,"data-disabled":!!m,"data-selected":!!u,onPointerMove:m||a.getDisablePointerSelection()?void 0:p,onClick:m?void 0:f},e.children)}),Z$=v.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=Pl(),s=v.useRef(null),c=v.useRef(null),l=Pl(),u=G$(),d=u1(e=>i||u.filter()===!1?!0:e.search?e.filtered.groups.has(o):!0);c1(()=>u.group(o),[]),d1(o,s,[e.value,e.heading,c]);let f=v.useMemo(()=>({id:o,forceMount:i}),[i]);return v.createElement(rg.div,{ref:ms(s,t),...a,"cmdk-group":``,role:`presentation`,hidden:d?void 0:!0},n&&v.createElement(`div`,{ref:c,"cmdk-group-heading":``,"aria-hidden":!0,id:l},n),m1(e,e=>v.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},v.createElement(J$.Provider,{value:f},e))))}),Q$=v.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=v.useRef(null),a=u1(e=>!e.search);return!n&&!a?null:v.createElement(rg.div,{ref:ms(i,t),...r,"cmdk-separator":``,role:`separator`})}),$$=v.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=q$(),o=u1(e=>e.search),s=u1(e=>e.selectedItemId),c=G$();return v.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),v.createElement(rg.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":s,id:c.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),e1=v.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=v.useRef(null),o=v.useRef(null),s=u1(e=>e.selectedItemId),c=G$();return v.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),v.createElement(rg.div,{ref:ms(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},m1(e,e=>v.createElement(`div`,{ref:ms(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),t1=v.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return v.createElement(Vh,{open:n,onOpenChange:r},v.createElement(Hh,{container:o},v.createElement(Uh,{"cmdk-overlay":``,className:i}),v.createElement(Wh,{"aria-label":e.label,"cmdk-dialog":``,className:a},v.createElement(Y$,{ref:t,...s}))))}),n1=v.forwardRef((e,t)=>u1(e=>e.filtered.count===0)?v.createElement(rg.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),r1=v.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return v.createElement(rg.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},m1(e,e=>v.createElement(`div`,{"aria-hidden":!0},e)))}),i1=Object.assign(Y$,{List:e1,Item:X$,Input:$$,Group:Z$,Separator:Q$,Dialog:t1,Empty:n1,Loading:r1});function a1(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function o1(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function s1(e){let t=v.useRef(e);return c1(()=>{t.current=e}),t}var c1=typeof window>`u`?v.useEffect:v.useLayoutEffect;function l1(e){let t=v.useRef();return t.current===void 0&&(t.current=e()),t}function u1(e){let t=q$(),n=()=>e(t.snapshot());return v.useSyncExternalStore(t.subscribe,n,n)}function d1(e,t,n,r=[]){let i=v.useRef(),a=G$();return c1(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(H$,s),i.current=s}),i}var f1=()=>{let[e,t]=v.useState(),n=l1(()=>new Map);return c1(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function p1(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function m1({asChild:e,children:t},n){return e&&v.isValidElement(t)?v.cloneElement(p1(t),{ref:t.ref},n(t.props.children)):n(t)}var h1={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`},g1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(i1,{ref:n,className:K(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,e),...t}));g1.displayName=i1.displayName;var _1=v.forwardRef(({className:e,...t},n)=>(0,H.jsxs)(`div`,{className:`flex items-center border-b px-3`,"data-cmdk-input-wrapper":``,children:[(0,H.jsx)(Ho,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),(0,H.jsx)(i1.Input,{ref:n,className:K(`flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,e),...t})]}));_1.displayName=i1.Input.displayName;var v1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(i1.List,{ref:n,className:K(`max-h-[300px] overflow-y-auto overflow-x-hidden`,e),...t}));v1.displayName=i1.List.displayName;var y1=v.forwardRef((e,t)=>(0,H.jsx)(i1.Empty,{ref:t,className:`py-6 text-center text-sm`,...e}));y1.displayName=i1.Empty.displayName;var b1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(i1.Group,{ref:n,className:K(`overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground`,e),...t}));b1.displayName=i1.Group.displayName;var x1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(i1.Separator,{ref:n,className:K(`-mx-1 h-px bg-border`,e),...t}));x1.displayName=i1.Separator.displayName;var S1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(i1.Item,{ref:n,className:K(`relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,e),...t}));S1.displayName=i1.Item.displayName;var C1=({className:e,...t})=>(0,H.jsx)(`span`,{className:K(`ml-auto text-xs tracking-widest text-muted-foreground`,e),...t});C1.displayName=`CommandShortcut`;var w1={image:`image/*`,video:`video/*`,audio:`audio/*`,document:`.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv`};function T1(e){return!e||e.length===0?`*/*`:e.map(e=>w1[e]).join(`,`)}function E1(e){let t=e.replace(/_/g,` `).trim();return t?t.charAt(0).toUpperCase()+t.slice(1):`Value`}function D1(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:`—`}function O1(e){return e?.startsWith(`image/`)??!1}async function k1(e,t){return MT(e,{folderId:t})}function A1(e,t){if(!t||t.length===0)return!0;let n=e??``;return t.some(e=>e===`image`?n.startsWith(`image/`):e===`video`?n.startsWith(`video/`):e===`audio`?n.startsWith(`audio/`):e===`document`?n.startsWith(`application/`)||n.startsWith(`text/`):!1)}var j1=30;function M1({open:e,onOpenChange:t,allowedTypes:n,selectionMode:r=`single`,onSelect:i}){let[a,o]=(0,v.useState)([{id:null,name:`Media`}]),s=a[a.length-1].id,[c,l]=(0,v.useState)([]),[u,d]=(0,v.useState)([]),[f,p]=(0,v.useState)(1),[m,h]=(0,v.useState)(!1),[g,_]=(0,v.useState)(1),[y,b]=(0,v.useState)(``),[x,S]=(0,v.useState)(``),[C,w]=(0,v.useState)([]);(0,v.useEffect)(()=>{let e=setTimeout(()=>{S(y),_(1)},300);return()=>clearTimeout(e)},[y]),(0,v.useEffect)(()=>{_(1),b(``),S(``)},[s]),(0,v.useEffect)(()=>{if(!e)return;h(!0);let t=s??``,n=x?`&search=${encodeURIComponent(x)}`:``;Promise.all([x?Promise.resolve([]):fetch(`/cms/admin/folders?parent_id=${t}`,{credentials:`include`}).then(e=>e.ok?e.json():{folders:[]}).then(e=>e.folders),fetch(`/cms/admin/media?folder_id=${t}&page=${g}&limit=${j1}${n}`,{credentials:`include`}).then(e=>e.ok?e.json():{items:[],pages:1})]).then(([e,t])=>{l(e),d(t.items),p(t.pages??1)}).catch(()=>{l([]),d([]),p(1)}).finally(()=>h(!1))},[e,s,g,x]),(0,v.useEffect)(()=>{e||(o([{id:null,name:`Media`}]),_(1),b(``),S(``),w([]))},[e]);function T(e){o(t=>[...t,{id:e.id,name:e.name}])}function E(e){o(t=>t.slice(0,e+1))}function D(e){if(r===`single`){i([e]),t(!1);return}w(t=>t.some(t=>t.id===e.id)?t.filter(t=>t.id!==e.id):[...t,e])}function O(e){let t=C.findIndex(t=>t.id===e);return t===-1?null:t+1}let k=u.filter(e=>A1(e.mime_type,n)),A=c.length===0&&k.length===0;return(0,H.jsx)(Jh,{open:e,onOpenChange:t,children:(0,H.jsxs)(Qh,{className:`max-w-3xl max-h-[90vh] flex flex-col overflow-hidden`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Media Library`})}),(0,H.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,H.jsx)(Ho,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,H.jsx)(Sw,{className:`pl-9 h-8`,placeholder:`Search media…`,value:y,onChange:e=>b(e.target.value)})]}),!x&&a.length>1&&(0,H.jsx)(`div`,{className:`flex items-center gap-1 text-sm shrink-0`,children:a.map((e,t)=>(0,H.jsxs)(`span`,{className:`flex items-center gap-1 text-muted-foreground`,children:[t>0&&(0,H.jsx)(`span`,{children:`/`}),t===a.length-1?(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:t===0?(0,H.jsx)(_o,{className:`size-3.5`}):e.name}):(0,H.jsx)(`button`,{onClick:()=>E(t),className:`hover:text-foreground transition-colors`,children:t===0?(0,H.jsx)(_o,{className:`size-3.5`}):e.name})]},`${e.id??`root`}:${e.name}`))}),m?(0,H.jsx)(`div`,{className:`flex flex-1 items-center justify-center py-16`,children:(0,H.jsx)(zC,{className:`size-5`})}):A?(0,H.jsx)(`p`,{className:`flex-1 py-16 text-center text-sm text-muted-foreground`,children:x?`No matching files.`:u.length===0&&c.length===0?`No media found.`:`No matching files in this folder.`}):(0,H.jsxs)(`div`,{className:`flex flex-col gap-4 flex-1 min-h-0 overflow-y-auto pr-1`,children:[c.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-1 gap-1.5 sm:grid-cols-2`,children:c.map(e=>(0,H.jsxs)(`button`,{type:`button`,onClick:()=>T(e),className:`flex items-center gap-2.5 rounded-md border bg-card px-2.5 py-2 text-left transition-colors hover:bg-muted/50 hover:border-primary`,children:[(0,H.jsx)(uo,{className:`size-7 shrink-0 text-muted-foreground`}),(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsx)(`p`,{className:`truncate text-xs font-bold leading-tight`,title:e.name,children:e.name}),(0,H.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[e.item_count,` `,e.item_count===1?`item`:`items`]})]})]},e.id))}),k.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-3 gap-2 sm:grid-cols-4 md:grid-cols-5`,children:k.map(e=>(0,H.jsxs)(`button`,{type:`button`,onClick:()=>D(e),className:K(`group relative overflow-hidden rounded-md border bg-card text-left transition-colors hover:border-primary`,O(e.id)!=null&&`border-primary ring-2 ring-primary/20`),children:[(0,H.jsx)(`div`,{className:`aspect-square bg-muted`,children:O1(e.mime_type)?(0,H.jsx)(`img`,{src:e.url,alt:e.filename,className:`h-full w-full object-cover`}):(0,H.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,H.jsx)(oo,{className:`size-6 text-muted-foreground`})})}),(0,H.jsxs)(`div`,{className:`p-1.5`,children:[(0,H.jsx)(`p`,{className:`truncate text-[11px] font-medium leading-tight`,title:e.filename,children:e.filename}),(0,H.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:D1(e.size)})]}),(0,H.jsx)(`div`,{className:K(`absolute inset-0 rounded-md ring-2 ring-primary ring-offset-1 transition-opacity pointer-events-none`,O(e.id)==null?`opacity-0 group-hover:opacity-100`:`opacity-100`)}),r===`multiple`&&O(e.id)!=null&&(0,H.jsx)(`div`,{className:`absolute right-1.5 top-1.5 flex size-6 items-center justify-center rounded-full bg-primary text-[11px] font-semibold text-primary-foreground shadow-sm`,children:O(e.id)})]},e.id))})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t pt-2 shrink-0`,children:[(0,H.jsx)(`div`,{className:`flex items-center gap-2`,children:r===`multiple`&&C.length>0&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[C.length,` selected`]}),(0,H.jsx)(q,{type:`button`,variant:`ghost`,size:`sm`,className:`h-8 px-2 text-xs`,onClick:()=>w([]),children:`Clear`})]})}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[f>1&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`button`,{type:`button`,onClick:()=>_(e=>Math.max(1,e-1)),disabled:g===1,className:`text-sm text-muted-foreground hover:text-foreground disabled:opacity-40 disabled:pointer-events-none transition-colors`,children:`Previous`}),(0,H.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[g,` / `,f]}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>_(e=>Math.min(f,e+1)),disabled:g===f,className:`text-sm text-muted-foreground hover:text-foreground disabled:opacity-40 disabled:pointer-events-none transition-colors`,children:`Next`})]}),r===`multiple`&&(0,H.jsx)(q,{type:`button`,size:`sm`,disabled:C.length===0,onClick:()=>{i(C),t(!1)},children:`Insert selected`})]})]})]})})}function N1({value:e,onChange:t,allowedTypes:n,disabled:r=!1}){let i=(0,v.useRef)(null),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(null),[d,f]=(0,v.useState)(!1),p=typeof e==`string`&&e.startsWith(`http`);(0,v.useEffect)(()=>{if(!e){u(null);return}if(p){u(e);return}fetch(`/cms/admin/media/${e}/url`,{credentials:`include`}).then(e=>e.ok?e.json():null).then(e=>u(e?.url??null)).catch(()=>u(null))},[e,p]);async function m(e){o(!0),c(null);try{let n=await k1(e);u(n.url),t(n.id)}catch(e){c(e instanceof Error?e.message:`Upload failed.`),X.error(`Upload failed`)}finally{o(!1),i.current&&(i.current.value=``)}}let h=l&&/\.(jpe?g|png|gif|webp|avif|svg)(\?|$)/i.test(l);return e?(0,H.jsxs)(`div`,{className:`relative w-full rounded-md border bg-muted/30 overflow-hidden`,children:[l?h?(0,H.jsx)(`img`,{src:l,alt:`Media`,className:`max-h-72 w-full object-contain`}):(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,H.jsx)(vo,{className:`size-4 text-muted-foreground shrink-0`}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground truncate`,children:l})]}):(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-muted-foreground`,children:[(0,H.jsx)(vo,{className:`size-4 shrink-0`}),(0,H.jsx)(`span`,{className:`text-xs`,children:`Loading…`})]}),(0,H.jsx)(q,{type:`button`,size:`icon`,variant:`secondary`,className:`absolute top-1.5 right-1.5 size-6`,onClick:()=>{t(null),u(null)},disabled:r,children:(0,H.jsx)(ss,{className:`size-3.5`})})]}):(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`input`,{ref:i,type:`file`,accept:T1(n),className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&m(t)}}),(0,H.jsxs)(`div`,{onDragOver:e=>e.preventDefault(),onDrop:e=>{if(r)return;e.preventDefault();let t=e.dataTransfer.files[0];t&&m(t)},className:`flex w-full gap-2 rounded-md border border-dashed p-3`,children:[(0,H.jsxs)(`button`,{type:`button`,disabled:a||r,onClick:()=>i.current?.click(),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(ns,{className:`size-4`}),a?`Uploading…`:`Upload`]}),(0,H.jsx)(`div`,{className:`w-px bg-border`}),(0,H.jsxs)(`button`,{type:`button`,disabled:a||r,onClick:()=>f(!0),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(co,{className:`size-4`}),`Library`]})]}),s&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:s}),(0,H.jsx)(M1,{open:d,onOpenChange:f,allowedTypes:n,selectionMode:`single`,onSelect:e=>{let n=e[0];n&&(u(n.url),t(n.id))}})]})}function P1({id:e,previewUrl:t,filename:n,onRemove:r,disabled:i=!1}){let{attributes:a,listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=fM({id:e});return(0,H.jsxs)(`div`,{ref:s,style:{transform:Tk.Transform.toString(c),transition:l,opacity:u?.4:1},className:`relative aspect-square overflow-hidden rounded-md border bg-muted`,children:[t?(0,H.jsx)(`img`,{src:t,alt:n,className:`h-full w-full object-cover`}):(0,H.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,H.jsx)(vo,{className:`size-5 text-muted-foreground`})}),n&&(0,H.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-background/75 backdrop-blur-sm px-1.5 py-1 pointer-events-none`,children:(0,H.jsx)(`p`,{className:`truncate text-[10px] leading-none text-foreground`,children:n})}),(0,H.jsx)(`button`,{type:`button`,onClick:r,disabled:i,className:`absolute right-1 top-1 flex size-5 items-center justify-center rounded-full bg-background/80 text-foreground shadow-sm hover:bg-background`,children:(0,H.jsx)(ss,{className:`size-3`})}),!i&&(0,H.jsx)(`button`,{type:`button`,className:`absolute bottom-6 left-1 flex size-5 cursor-grab items-center justify-center rounded-full bg-background/80 text-foreground shadow-sm active:cursor-grabbing`,...o,...a,children:(0,H.jsx)(fo,{className:`size-3`})})]})}function F1({value:e,onChange:t,disabled:n=!1}){let r=Array.isArray(e)?e:[],[,i]=(0,v.useState)(0),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),d=(0,v.useRef)(null),f=(0,v.useRef)({}),p=(0,v.useRef)({}),m=r.join(`,`),h=Vk(Bk(VA,{activationConstraint:{distance:5}}));(0,v.useEffect)(()=>{let e=r.filter(e=>!e.startsWith(`http`)&&!(e in f.current));e.length!==0&&Promise.all(e.map(e=>fetch(`/cms/admin/media/${e}/url`,{credentials:`include`}).then(e=>e.ok?e.json():null).then(t=>t?[e,t.url]:null).catch(()=>null))).then(e=>{let t=!1;for(let n of e)n&&(f.current[n[0]]=n[1],t=!0);t&&i(e=>e+1)})},[m]),(0,v.useEffect)(()=>{let e=r.filter(e=>!e.startsWith(`http`)&&!(e in p.current));e.length!==0&&fetch(`/cms/admin/media`,{credentials:`include`}).then(e=>e.ok?e.json():{items:[]}).then(t=>{let n=!1;for(let r of t.items)e.includes(r.id)&&(p.current[r.id]=r.filename,n=!0);n&&i(e=>e+1)}).catch(()=>{})},[m]);function g(e){return e.startsWith(`http`)?e:f.current[e]??null}function _(e){return p.current[e]??``}function y(e){if(n)return;let{active:i,over:a}=e;!a||i.id===a.id||t(qj(r,r.indexOf(i.id),r.indexOf(a.id)))}async function b(e){if(e.length===0)return;o(!0),c(null);let n=r;try{for(let r of e){let e=await k1(r);f.current[e.id]=e.url,p.current[e.id]=r.name,i(e=>e+1),n=[...n,e.id],t(n)}}catch(e){c(e instanceof Error?e.message:`Upload failed.`),X.error(`Upload failed`)}finally{o(!1),d.current&&(d.current.value=``)}}return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(`input`,{ref:d,type:`file`,accept:`image/*`,multiple:!0,className:`hidden`,onChange:e=>{b(Array.from(e.target.files??[]))}}),r.length>0&&(0,H.jsx)(Rj,{sensors:h,collisionDetection:Jk,onDragEnd:y,children:(0,H.jsx)(iM,{items:r,strategy:Qj,children:(0,H.jsx)(`div`,{className:`grid grid-cols-3 gap-2 sm:grid-cols-4`,children:r.map(e=>(0,H.jsx)(P1,{id:e,previewUrl:g(e),filename:_(e),onRemove:()=>t(r.filter(t=>t!==e)),disabled:n},e))})})}),(0,H.jsxs)(`div`,{className:`flex w-full gap-2 rounded-md border border-dashed p-3`,children:[(0,H.jsxs)(`button`,{type:`button`,disabled:a||n,onClick:()=>d.current?.click(),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(ns,{className:`size-4`}),a?`Uploading…`:`Upload`]}),(0,H.jsx)(`div`,{className:`w-px bg-border`}),(0,H.jsxs)(`button`,{type:`button`,disabled:a||n,onClick:()=>u(!0),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(co,{className:`size-4`}),`Library`]})]}),s&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:s}),(0,H.jsx)(M1,{open:l,onOpenChange:u,allowedTypes:[`image`],selectionMode:`multiple`,onSelect:e=>{if(e.length===0)return;let n=new Set(r),i=[...r],a={},o={};for(let t of e)n.has(t.id)||(n.add(t.id),i.push(t.id),a[t.id]=t.url,o[t.id]=t.filename);Object.keys(a).length>0&&setUrlCache(e=>({...e,...a})),Object.keys(o).length>0&&setNameCache(e=>({...e,...o})),i.length!==r.length&&t(i)}})]})}function I1({value:e,onChange:t,disabled:n=!1}){let[r,i]=(0,v.useState)(()=>e!=null&&e!==``?String(e):``);(0,v.useEffect)(()=>{if(e==null||e===``){i(``);return}let t=typeof e==`number`?e:parseFloat(String(e));!isNaN(t)&&t!==parseFloat(r)&&i(String(t))},[e]);function a(e){let n=e.target.value.replace(`,`,`.`);if(i(n),n===``||n===`-`){t(null);return}let r=parseFloat(n);isNaN(r)||t(r)}return(0,H.jsx)(Sw,{type:`text`,inputMode:`decimal`,className:K(`w-full`,`text-base!`),value:r,placeholder:`0.00`,onChange:a,disabled:n})}function L1(e){if(typeof e==`object`&&e){let t=e;if(t.kind===`string`&&typeof t.value==`string`)return{kind:`string`,value:t.value};if(t.kind===`number`&&typeof t.value==`number`&&!isNaN(t.value))return{kind:`number`,value:t.value};if(t.kind===`boolean`&&typeof t.value==`boolean`)return{kind:`boolean`,value:t.value}}return typeof e==`number`&&!isNaN(e)?{kind:`number`,value:e}:typeof e==`boolean`?{kind:`boolean`,value:e}:{kind:`string`,value:typeof e==`string`?e:``}}function R1({value:e,onChange:t,inputId:n,disabled:r=!1}){let i=L1(e);function a(e){e===`string`&&t({kind:e,value:``}),e===`number`&&t({kind:e,value:0}),e===`boolean`&&t({kind:e,value:!1})}return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(`div`,{className:`inline-flex items-center gap-1 rounded-md border border-border p-1`,children:[`string`,`number`,`boolean`].map(e=>(0,H.jsx)(`button`,{type:`button`,disabled:r,onClick:()=>a(e),className:K(`rounded px-2 py-1 text-xs transition-colors`,i.kind===e?`bg-accent text-accent-foreground`:`text-muted-foreground hover:bg-accent/60`),children:e===`string`?`Text`:e===`number`?`Number`:`Boolean`},e))}),i.kind===`string`&&(0,H.jsx)(Sw,{className:K(`w-full`,`text-base md:text-base`),value:String(i.value),placeholder:`Value`,onChange:e=>t({kind:`string`,value:e.target.value}),disabled:r}),i.kind===`number`&&(0,H.jsx)(I1,{value:i.value,onChange:e=>t({kind:`number`,value:typeof e==`number`&&!isNaN(e)?e:0}),disabled:r}),i.kind===`boolean`&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,H.jsx)(PT,{id:n,checked:!!i.value,onCheckedChange:e=>t({kind:`boolean`,value:!!e}),disabled:r}),(0,H.jsx)(Y,{htmlFor:n,className:`cursor-pointer font-normal text-base`,children:i.value?`True`:`False`})]})]})}function z1({value:e,onChange:t,timezone:n,disabled:r=!1}){let[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(),[c,l]=(0,v.useState)(`00:00`);(0,v.useEffect)(()=>{if(!e){s(void 0),l(`00:00`);return}let t=new Date(e);isNaN(t.getTime())||(s(t),l(cv(e,n)))},[e,n]);function u(e){s(e),a(!1),e&&t(lv(e,c,n))}function d(e){l(e),o&&t(lv(o,e,n))}return(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(QP,{open:i&&!r,onOpenChange:a,children:[(0,H.jsx)($P,{asChild:!0,children:(0,H.jsxs)(q,{variant:`outline`,className:`w-40 justify-between font-normal text-base`,disabled:r,children:[o?UO(o,`MMM d, yyyy`):`Select date`,(0,H.jsx)(Va,{className:`size-4 opacity-50`})]})}),(0,H.jsx)(eF,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,H.jsx)(XP,{mode:`single`,selected:o,captionLayout:`dropdown`,defaultMonth:o,onSelect:u})})]}),(0,H.jsx)(Sw,{type:`time`,className:`w-32 appearance-none bg-background [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none text-base!`,value:c,onChange:e=>d(e.target.value),disabled:r}),e&&(0,H.jsx)(q,{type:`button`,variant:`ghost`,size:`icon`,className:`size-8 text-muted-foreground hover:text-foreground`,onClick:()=>{s(void 0),l(`00:00`),t(null)},disabled:r,children:(0,H.jsx)(ss,{className:`size-3.5`})})]})}function B1(e){return e.find(e=>e.name===`title`)?.name??e.find(e=>e.name===`name`)?.name??e.find(e=>e.type===`uid`)?.name??e.find(e=>e.type===`string`)?.name??e.find(e=>e.type===`text`)?.name??null}var V1={data:null,promise:null};function H1(){return V1.data?Promise.resolve(V1.data):(V1.promise||=fetch(`/cms/admin/content-types`,{credentials:`include`}).then(e=>e.ok?e.json():[]).then(e=>(V1.data=e,e)).catch(()=>[]),V1.promise)}function U1(e,t){return e.find(e=>e.tableName===t)??null}function W1(e,t,n){return fetch(`/cms/admin/content-types/${e}/entries?page=${t}&limit=${n}`,{credentials:`include`}).then(e=>e.ok?e.json():{data:[],total:0,page:t,limit:n}).catch(()=>({data:[],total:0,page:t,limit:n}))}async function G1(e){let t=await W1(e,1,100),n=Math.max(1,Math.ceil(t.total/100));return n===1?{data:t.data}:{data:[t,...await Promise.all(Array.from({length:n-1},(t,n)=>W1(e,n+2,100)))].flatMap(e=>e.data)}}function K1(e){let[t,n]=(0,v.useState)([]),[r,i]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{e&&(i(!0),H1().then(t=>{let n=U1(t,e);return n?G1(n.slug).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:t})=>{let r=e?B1(e.fields??[]):null;n(t.data.map(e=>({id:String(e.id),label:String((r&&e[r])??e.title??e.name??e.id)})))}).catch(()=>n([])).finally(()=>i(!1)))},[e]),{entries:t,loading:r}}function q1(e,t,n){let[r,i]=(0,v.useState)([]),[a,o]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{if(!e||!n){i([]);return}o(!0),H1().then(t=>{let n=U1(t,e);return n?G1(n.slug).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:r})=>{let a=e?B1(e.fields??[]):null;i(r.data.filter(e=>String(e[t]??``)===n).map(e=>({id:String(e.id),label:String((a&&e[a])??e.title??e.name??e.id)})))}).catch(()=>i([])).finally(()=>o(!1))},[e,t,n]),{entries:r,loading:a}}function J1({relatedTable:e,relatedField:t,currentId:n}){let{entries:r,loading:i}=q1(e,t,n);return n?i?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-1`,children:[(0,H.jsx)(zC,{className:`size-3.5`}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Loading…`})]}):r.length===0?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No linked entries.`}):(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:r.map(e=>(0,H.jsx)(`span`,{className:`inline-flex items-center rounded-md border bg-muted px-2 py-0.5 text-xs`,children:e.label},e.id))}):(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Save this entry first to see linked items.`})}function Y1({relationType:e,relatedTable:t,relatedField:n,currentEntryId:r,value:i,onChange:a,disabled:o=!1}){let s=e===`many-to-many`,[c,l]=(0,v.useState)(!1),u=(0,v.useId)(),{entries:d,loading:f}=K1(t);if(e===`one-to-many`)return(0,H.jsx)(J1,{relatedTable:t,relatedField:n,currentId:r});let p=s?Array.isArray(i)?i:[]:i&&!Array.isArray(i)?[i]:[];function m(e){return d.find(t=>t.id===e)?.label??e}function h(e){if(s){let t=p.includes(e)?p.filter(t=>t!==e):[...p,e];a(t.length>0?t:null)}else a(p[0]===e?null:e),l(!1)}function g(e){if(s){let t=p.filter(t=>t!==e);a(t.length>0?t:null)}else a(null)}let _=s?p.length>0?`${p.length} selected`:`Select entries…`:p.length>0?m(p[0]):`Select entry…`;return(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsxs)(QP,{open:c&&!o,onOpenChange:l,children:[(0,H.jsx)($P,{asChild:!0,children:(0,H.jsxs)(q,{variant:`outline`,role:`combobox`,"aria-expanded":c,"aria-controls":u,className:`w-full justify-between font-normal text-base`,disabled:o,children:[(0,H.jsx)(`span`,{className:`truncate text-left`,children:_}),(0,H.jsx)(Ga,{className:`ml-2 size-4 shrink-0 opacity-50`})]})}),(0,H.jsx)(eF,{className:`w-(--radix-popover-trigger-width) p-0`,align:`start`,children:(0,H.jsxs)(g1,{children:[(0,H.jsx)(_1,{placeholder:`Search…`}),(0,H.jsx)(v1,{id:u,children:f?(0,H.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,H.jsx)(zC,{className:`size-4`})}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(y1,{children:`No entries found.`}),(0,H.jsx)(b1,{children:d.map(e=>{let t=p.includes(e.id);return(0,H.jsxs)(S1,{value:e.label,onSelect:()=>{o||h(e.id)},children:[(0,H.jsx)(Ba,{className:`mr-2 size-4 ${t?`opacity-100`:`opacity-0`}`}),(0,H.jsx)(`span`,{className:`truncate`,children:e.label}),(0,H.jsx)(`span`,{className:`ml-auto text-xs text-muted-foreground opacity-60 shrink-0`,children:e.id.slice(0,8)})]},e.id)})})]})})]})})]}),p.length>0&&(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:p.map(e=>(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border bg-muted px-2 py-0.5 text-xs`,children:[m(e),(0,H.jsx)(`button`,{type:`button`,onClick:()=>g(e),disabled:o,className:`text-muted-foreground hover:text-foreground`,children:(0,H.jsx)(ss,{className:`size-3`})})]},e))})]})}var X1={full:`col-span-6`,"two-thirds":`col-span-4`,half:`col-span-3`,third:`col-span-2`};function Z1({field:e,value:t,onChange:n,disabled:r=!1}){let i=Array.isArray(t)?t:[],a=e.arrayFields??[];function o(){return Object.fromEntries(a.map(e=>[e.name,e.type===`boolean`?!1:null]))}function s(){n([...i,o()])}function c(e){n(i.filter((t,n)=>n!==e))}function l(e,t){let r=e+t;if(r<0||r>=i.length)return;let a=[...i];[a[e],a[r]]=[a[r],a[e]],n(a)}function u(e,t,r){n(i.map((n,i)=>i===e?{...n,[t]:r}:n))}return a.length===0?(0,H.jsx)(`div`,{className:`flex w-full items-center justify-center rounded-md border border-dashed p-4 text-xs text-muted-foreground`,children:`No sub-fields defined for this array.`}):(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(mM,{type:`single`,collapsible:!0,className:`w-full`,children:i.map((e,t)=>(0,H.jsxs)(hM,{value:`item-${t}`,className:`mb-2 rounded-md border border-dashed last:border-b transition-colors hover:bg-accent/50`,children:[(0,H.jsxs)(`div`,{className:`relative data-[state=open]:border-b data-[state=open]:border-border/50`,children:[(0,H.jsxs)(gM,{className:`w-full py-2 pl-3 pr-24 text-muted-foreground [&>svg]:hidden`,children:[`Item `,t+1]}),(0,H.jsxs)(`div`,{className:`absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5`,children:[(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:r||t===0,onMouseDown:e=>e.stopPropagation(),onClick:()=>l(t,-1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Wa,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:r||t===i.length-1,onMouseDown:e=>e.stopPropagation(),onClick:()=>l(t,1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Va,{className:`size-3.5`})}),(0,H.jsx)(`button`,{type:`button`,onMouseDown:e=>e.stopPropagation(),onClick:()=>c(t),disabled:r,className:`flex size-6 items-center justify-center rounded text-destructive transition-colors hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(Zo,{className:`size-3.5`})})]})]}),(0,H.jsx)(_M,{className:`px-3 pt-3`,children:(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-3`,children:a.map(n=>(0,H.jsxs)(`div`,{className:X1[n.width??`full`]??`col-span-6`,children:[(0,H.jsx)(`div`,{className:`mb-1 flex items-center gap-1`,children:(0,H.jsxs)(Y,{className:`text-xs font-medium`,children:[n.name,n.required&&(0,H.jsx)(`span`,{className:`ml-0.5 text-destructive`,children:`*`})]})}),(0,H.jsx)(r0,{field:{...n,type:n.type},value:e[n.name]??null,onChange:e=>u(t,n.name,e),allValues:e,disabled:r})]},n.name))})})]},t))}),(0,H.jsxs)(`button`,{type:`button`,onClick:s,disabled:r,className:`flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed py-2 text-xs text-muted-foreground transition-colors hover:bg-accent/50`,children:[(0,H.jsx)(Lo,{className:`size-3.5`}),`Add item`]})]})}var Q1=3,$1=20;function e0({value:e,onChange:t,disabled:n=!1,depth:r=0}){let i=Array.isArray(e)?e:[],a=r+1<Q1,o=i.length<$1;function s(){return{label:``,href:``}}function c(e,n){let r=(t,i)=>{let a=e[i];return t.map((t,o)=>{if(o!==a)return t;if(i===e.length-1)return n(t);let s=Array.isArray(t.items)?t.items:[];return{...t,items:r(s,i+1)}})};t(r(i,0))}function l(e,n){let r=(t,i)=>{if(i===e.length-1){let r=e[i],a=r+n;if(a<0||a>=t.length)return t;let o=[...t];return[o[r],o[a]]=[o[a],o[r]],o}let a=e[i];return t.map((e,t)=>{if(t!==a)return e;let n=Array.isArray(e.items)?e.items:[];return{...e,items:r(n,i+1)}})};t(r(i,0))}function u(e){let n=(t,r)=>{let i=e[r];return r===e.length-1?t.filter((e,t)=>t!==i):t.map((e,t)=>{if(t!==i)return e;let a=Array.isArray(e.items)?e.items:[];return{...e,items:n(a,r+1)}})};t(n(i,0))}function d(){o&&t([...i,s()])}return i.length===0?(0,H.jsxs)(`button`,{type:`button`,onClick:d,disabled:n||!o,className:`flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed py-2 text-xs text-muted-foreground transition-colors hover:bg-accent/20`,children:[(0,H.jsx)(Lo,{className:`size-3.5`}),`Add item`]}):(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(mM,{type:`single`,collapsible:!0,className:`w-full`,children:i.map((e,t)=>{let o=[t],s=e.label?.trim()?e.label:`Item ${t+1}`;return(0,H.jsxs)(hM,{value:`navigation-item-${r}-${t}`,className:`mb-2 rounded-md border border-dashed last:border-b transition-colors hover:bg-accent/50`,children:[(0,H.jsxs)(`div`,{className:`relative data-[state=open]:border-b data-[state=open]:border-border/50`,children:[(0,H.jsx)(gM,{className:`w-full py-2 pl-3 pr-24 text-muted-foreground [&>svg]:hidden`,children:s}),(0,H.jsxs)(`div`,{className:`absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5`,children:[(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:n||t===0,onMouseDown:e=>e.stopPropagation(),onClick:()=>l(o,-1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Wa,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:n||t===i.length-1,onMouseDown:e=>e.stopPropagation(),onClick:()=>l(o,1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Va,{className:`size-3.5`})}),(0,H.jsx)(`button`,{type:`button`,onMouseDown:e=>e.stopPropagation(),onClick:()=>u(o),disabled:n,className:`flex size-6 items-center justify-center rounded text-destructive transition-colors hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(Zo,{className:`size-3.5`})})]})]}),(0,H.jsxs)(_M,{className:`px-3 pt-3`,children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-6 gap-3`,children:[(0,H.jsxs)(`div`,{className:`col-span-3`,children:[(0,H.jsx)(Y,{className:`mb-1 block text-xs font-medium`,children:`label`}),(0,H.jsx)(Sw,{className:`text-base`,value:e.label??``,onChange:e=>c(o,t=>({...t,label:e.target.value})),disabled:n})]}),(0,H.jsxs)(`div`,{className:`col-span-3`,children:[(0,H.jsx)(Y,{className:`mb-1 block text-xs font-medium`,children:`href`}),(0,H.jsx)(Sw,{className:`text-base`,value:e.href??``,onChange:e=>c(o,t=>({...t,href:e.target.value})),disabled:n})]})]}),a?(0,H.jsxs)(`div`,{className:`mt-3 border-l border-border pl-3`,children:[(0,H.jsx)(`p`,{className:`mb-2 text-[11px] uppercase tracking-wide text-muted-foreground`,children:`Child items`}),(0,H.jsx)(e0,{value:e.items??[],onChange:e=>c(o,t=>({...t,items:Array.isArray(e)&&e.length>0?e:void 0})),disabled:n,depth:r+1})]}):(0,H.jsxs)(`p`,{className:`mt-3 text-[11px] text-muted-foreground`,children:[`Maximum depth reached (`,Q1,` levels).`]})]})]},t)})}),(0,H.jsxs)(`button`,{type:`button`,onClick:d,disabled:n,className:`flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed py-2 text-xs text-muted-foreground transition-colors hover:bg-accent/50`,children:[(0,H.jsx)(Lo,{className:`size-3.5`}),`Add item`]}),!o&&(0,H.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[`Maximum `,$1,` items allowed per level.`]})]})}function t0(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/^-+|-+$/g,``)}function n0({value:e,onChange:t,disabled:n=!1}){let r=(0,v.useRef)(null),i=(0,v.useRef)(null),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null);function p(){return o(!0),new Promise(e=>{i.current=e})}function m(e){i.current?.(e),i.current=null}function h(e){e||m(null),o(e)}async function g(e){u(!0),f(null);try{let t=await MT(e);m([{id:t.id,src:t.url,filename:t.filename,alt:t.alt,title:t.caption,width:t.width,height:t.height}]),o(!1)}catch(e){f(e instanceof Error?e.message:`Upload failed.`)}finally{u(!1),r.current&&(r.current.value=``)}}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:n?`pointer-events-none opacity-70`:``,children:(0,H.jsx)(b$,{value:String(e??``),onChange:t,placeholder:`Type or add your content here...`,onInsertImage:p})}),(0,H.jsx)(Jh,{open:a,onOpenChange:h,children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Insert Image`})}),(0,H.jsx)(`input`,{ref:r,type:`file`,accept:`image/*`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&g(t)}}),(0,H.jsxs)(`div`,{onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault();let t=e.dataTransfer.files[0];t&&g(t)},className:`flex w-full gap-2 rounded-md border border-dashed p-3`,children:[(0,H.jsxs)(`button`,{type:`button`,disabled:l,onClick:()=>r.current?.click(),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(ns,{className:`size-4`}),l?`Uploading…`:`Upload`]}),(0,H.jsx)(`div`,{className:`w-px bg-border`}),(0,H.jsxs)(`button`,{type:`button`,disabled:l,onClick:()=>c(!0),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(co,{className:`size-4`}),`Library`]})]}),d&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:d})]})}),(0,H.jsx)(M1,{open:s,onOpenChange:e=>{!e&&!a&&m(null),c(e)},allowedTypes:[`image`],selectionMode:`multiple`,onSelect:e=>{m(e.map(e=>({id:e.id,src:e.url,filename:e.filename,alt:e.alt,title:e.caption,width:e.width,height:e.height}))),c(!1),o(!1)}})]})}function r0({field:e,value:t,onChange:n,allValues:r,disabled:i,errorMessage:a}){let o=(0,v.useRef)(null),{timezone:s}=Sa();(0,v.useEffect)(()=>{if(e.type!==`uid`||!e.targetField)return;let i=String(t??``).trim(),a=i===``||i===o.current,s=r,c=e.targetField,l=!!s.__localizationEnabled,u=s[c];if(u!=null&&String(u).trim()!==``){if(!a)return;let e=t0(String(u));e!==i&&(o.current=e,n(e));return}let d=s.localized&&typeof s.localized==`object`?s.localized:{};if(l){let e=typeof s.__defaultLocale==`string`?s.__defaultLocale:void 0,t=e&&d[e]&&typeof d[e]==`object`?d[e]:null;if(t&&t[c]!==void 0&&String(t[c]).trim()!==``){if(!a)return;let e=t0(String(t[c]));e!==i&&(o.current=e,n(e))}return}let f=Object.keys(d).filter(e=>!e.startsWith(`_`));for(let e of f){let t=d[e]&&typeof d[e]==`object`?d[e]:null;if(t&&t[c]!==void 0&&String(t[c]).trim()!==``){if(!a)return;let e=t0(String(t[c]));e!==i&&(o.current=e,n(e));return}}},[t,e.type,e.targetField,r[e.targetField??``],JSON.stringify(r.localized??{}),r.__localizationEnabled]);let c=`w-full`;return e.type===`boolean`?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,H.jsx)(PT,{id:`field-${e.name}`,checked:!!t,onCheckedChange:e=>n(!!e),disabled:!!i}),(0,H.jsx)(Y,{htmlFor:`field-${e.name}`,className:`cursor-pointer font-normal text-base`,children:t?`Yes`:`No`})]}):e.type===`richtext`?(0,H.jsx)(n0,{value:t,onChange:n,disabled:!!i}):e.type===`text`?(0,H.jsx)(lE,{className:K(c,`text-base`),value:String(t??``),placeholder:E1(e.name),onChange:e=>n(e.target.value),disabled:!!i}):e.type===`number`?e.subtype===`float`?(0,H.jsx)(I1,{value:t,onChange:n,disabled:!!i}):(0,H.jsx)(Sw,{type:`number`,className:K(c,`text-base!`),value:t==null?``:String(t),step:`1`,placeholder:`0`,onChange:e=>{let t=e.target.value;if(t===``){n(null);return}n(parseInt(t,10))},disabled:!!i}):e.type===`datetime`?(0,H.jsx)(z1,{value:t,onChange:n,timezone:s,disabled:!!i}):e.type===`uid`?(0,H.jsxs)(`div`,{children:[(0,H.jsx)(Sw,{className:K(c,`text-base md:text-base`,a?`border-destructive focus-visible:ring-destructive/20`:``),value:String(t??``),placeholder:`auto-generated`,onChange:e=>{n(e.target.value)},disabled:!!i}),a&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:a})]}):e.type===`media`?(0,H.jsx)(N1,{value:t,onChange:n,allowedTypes:e.allowedTypes,disabled:!!i}):e.type===`media-gallery`?(0,H.jsx)(F1,{value:t,onChange:n,disabled:!!i}):e.type===`relation`?(0,H.jsx)(Y1,{relationType:e.relationType??`many-to-one`,relatedTable:e.relatedTable??``,relatedField:e.relatedField??``,currentEntryId:String(r.id??``),value:t,onChange:n,disabled:!!i}):e.type===`array`?(0,H.jsx)(Z1,{field:e,value:t,onChange:n,disabled:!!i}):e.type===`mixed`?(0,H.jsx)(R1,{value:t,onChange:n,inputId:`field-${e.name}-mixed-boolean`,disabled:!!i}):e.type===`navigation`?(0,H.jsx)(e0,{value:t,onChange:n,disabled:!!i}):(0,H.jsx)(Sw,{className:K(c,`text-base md:text-base`),value:String(t??``),placeholder:E1(e.name),onChange:e=>n(e.target.value),disabled:!!i})}function i0(e,t){switch(e){case`string`:return{icon:$o,label:`Text (string)`,color:`text-blue-600`,bg:`bg-blue-50`};case`text`:return{icon:Jo,label:`Long text (string)`,color:`text-sky-600`,bg:`bg-sky-50`};case`richtext`:return{icon:ao,label:`Rich text (blocks)`,color:`text-violet-600`,bg:`bg-violet-50`};case`number`:return{icon:po,label:t===`float`?`Decimal (number)`:`Integer (number)`,color:`text-orange-600`,bg:`bg-orange-50`};case`boolean`:return{icon:Xo,label:`Boolean`,color:`text-emerald-600`,bg:`bg-emerald-50`};case`datetime`:return{icon:Ra,label:`Date & time`,color:`text-amber-600`,bg:`bg-amber-50`};case`media`:return{icon:vo,label:`Media`,color:`text-rose-600`,bg:`bg-rose-50`};case`mixed`:return{icon:To,label:`Mixed value`,color:`text-fuchsia-600`,bg:`bg-fuchsia-50`};case`media-gallery`:return{icon:wo,label:`Media Gallery`,color:`text-pink-600`,bg:`bg-pink-50`};case`relation`:return{icon:Eo,label:`Relation`,color:`text-indigo-600`,bg:`bg-indigo-50`};case`uid`:return{icon:so,label:`UID`,color:`text-teal-600`,bg:`bg-teal-50`};case`array`:return{icon:To,label:`Array`,color:`text-cyan-600`,bg:`bg-cyan-50`};case`navigation`:return{icon:Oo,label:`Navigation`,color:`text-cyan-600`,bg:`bg-cyan-50`}}}var a0={full:`col-span-6`,"two-thirds":`col-span-4`,half:`col-span-3`,third:`col-span-2`},o0={string:`half`,text:`full`,richtext:`full`,number:`third`,boolean:`third`,datetime:`half`,media:`half`,"media-gallery":`full`,relation:`half`,uid:`half`,array:`full`,navigation:`full`};function s0({width:e}){let t=`rounded-sm bg-current`;return e===`full`?(0,H.jsx)(`div`,{className:`flex w-4 gap-px`,children:(0,H.jsx)(`div`,{className:`${t} h-2 w-full`})}):e===`two-thirds`?(0,H.jsxs)(`div`,{className:`flex w-4 gap-px`,children:[(0,H.jsx)(`div`,{className:`${t} h-2 flex-1`}),(0,H.jsx)(`div`,{className:`${t} h-2 flex-1`}),(0,H.jsx)(`div`,{className:`h-2 flex-1 rounded-sm bg-current opacity-25`})]}):e===`half`?(0,H.jsxs)(`div`,{className:`flex w-4 gap-px`,children:[(0,H.jsx)(`div`,{className:`${t} h-2 flex-1`}),(0,H.jsx)(`div`,{className:`${t} h-2 flex-1`})]}):(0,H.jsxs)(`div`,{className:`flex w-4 gap-px`,children:[(0,H.jsx)(`div`,{className:`${t} h-2 flex-1`}),(0,H.jsx)(`div`,{className:`h-2 flex-1 rounded-sm bg-current opacity-25`}),(0,H.jsx)(`div`,{className:`h-2 flex-1 rounded-sm bg-current opacity-25`})]})}var c0=[{value:`full`,label:`Full width`},{value:`half`,label:`Half`},{value:`third`,label:`1/3`},{value:`two-thirds`,label:`2/3`}];function l0({field:e,onWidthChange:t,onArraySubFieldWidthChange:n,onEdit:r,onDelete:i,dragListeners:a,dragAttributes:o}){let{icon:s,label:c,color:l,bg:u}=i0(e.type,e.subtype),d=e.width??`full`,f=!!a,p=e.type===`array`;return(0,H.jsxs)(`div`,{className:`rounded-lg border border-border bg-card shadow-xs`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-3`,children:[f&&(0,H.jsx)(`button`,{type:`button`,className:`flex shrink-0 cursor-grab items-center text-muted-foreground/40 hover:text-muted-foreground active:cursor-grabbing`,...a,...o,children:(0,H.jsx)(fo,{className:`size-4`})}),(0,H.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-md ${u}`,children:(0,H.jsx)(s,{className:`size-4 ${l}`})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,H.jsxs)(`p`,{className:`truncate text-sm font-medium leading-tight`,children:[e.name,e.required&&(0,H.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`})]}),e.relationType===`one-to-many`&&(0,H.jsx)(`span`,{className:`shrink-0 rounded border border-indigo-200 bg-indigo-50 px-1 py-px text-[10px] font-medium text-indigo-600`,children:`Auto`})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.relationType===`one-to-many`?`Inverse relation · read-only`:c})]}),t&&!p&&(0,H.jsx)(`div`,{className:`flex shrink-0 items-center gap-px rounded-md border border-border p-0.5`,children:c0.map(({value:e,label:n})=>(0,H.jsx)(`button`,{type:`button`,title:n,onClick:()=>t(e),className:[`flex items-center justify-center rounded px-1.5 py-1 transition-colors`,d===e?`bg-foreground text-background`:`text-muted-foreground hover:text-foreground`].join(` `),children:(0,H.jsx)(s0,{width:e})},e))}),(r||i)&&(0,H.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[r&&(0,H.jsx)(`button`,{type:`button`,title:`Edit field`,onClick:r,className:`flex size-7 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(Io,{className:`size-3.5`})}),i&&(0,H.jsx)(`button`,{type:`button`,title:`Delete field`,onClick:i,className:`flex size-7 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(Zo,{className:`size-3.5`})})]})]}),p&&e.arrayFields&&e.arrayFields.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-2 px-3 pb-3`,children:e.arrayFields.map(e=>{let t=i0(e.type,e.subtype),r=t.icon;return(0,H.jsxs)(`div`,{className:`${a0[e.width??`full`]} rounded-md border border-dashed border-border p-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(`div`,{className:`flex size-5 shrink-0 items-center justify-center rounded ${t.bg}`,children:(0,H.jsx)(r,{className:`size-3 ${t.color}`})}),(0,H.jsxs)(`span`,{className:`truncate text-xs font-medium`,children:[e.name,e.required&&(0,H.jsx)(`span`,{className:`ml-0.5 text-destructive`,children:`*`})]})]}),(0,H.jsx)(`p`,{className:`mt-0.5 truncate pl-6 text-[10px] text-muted-foreground`,children:t.label}),n&&(0,H.jsx)(`div`,{className:`mt-1 flex items-center gap-px rounded-md border border-border p-0.5`,children:c0.map(({value:t,label:r})=>(0,H.jsx)(`button`,{type:`button`,title:r,onClick:()=>n(e.name,t),className:[`flex items-center justify-center rounded px-1.5 py-1 transition-colors`,(e.width??`full`)===t?`bg-foreground text-background`:`text-muted-foreground hover:text-foreground`].join(` `),children:(0,H.jsx)(s0,{width:t})},t))})]},e.name)})})]})}function u0({ct:e,values:t,id:n,activeLocale:r,localizationEnabled:i,defaultLocale:a,readOnly:o,uidErrorField:s,setUidErrorField:c,handleLocalizedChange:l,handleChange:u}){return(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-4`,children:e.fields.map(d=>{let f=[`string`,`text`,`richtext`].includes(d.type),p=t.localized&&t.localized[r]?t.localized[r][d.name]:void 0,m=f&&i?p:t[d.name],h=d.type===`uid`&&d.targetField&&i&&[`string`,`text`,`richtext`].includes(e.fields.find(e=>e.name===d.targetField)?.type??``);return(0,H.jsx)(`div`,{className:a0[d.width??`full`],children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsxs)(Y,{htmlFor:`entry-${d.name}`,className:`capitalize`,children:[d.name.replace(/_/g,` `),d.required&&(0,H.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`})]}),(0,H.jsx)(r0,{field:d,value:m,onChange:e=>{d.type===`uid`&&s===d.name&&c(null),f&&i?l(r,d.name,e):u(d.name,e)},allValues:{...t,id:n,__activeLocale:r,__localizationEnabled:i,__defaultLocale:a},disabled:!!h||o,errorMessage:d.type===`uid`&&s===d.name?`${d.name} already exists.`:void 0})]})},d.name)})})}function d0({isNew:e,canDeleteCurrentEntry:t,isReadOnlySingle:n,deleting:r,onDeleteClick:i,status:a,readOnly:o,onRevertToDraft:s,busy:c,patching:l,showReviewerControl:u,assignedEditorId:d,assignedEditorAvatarUrl:f,assignedEditorFirstName:p,assignedEditorLastName:m,reviewerLabel:h,handleAssignEditor:g,canManageReviewer:_,isEditorRole:v,reviewerCandidates:y,showReviewerInfo:b,showReviewEditButton:x,onToggleReviewLock:S,showRejectButton:C,onReject:w,supportsPreviewUI:T,previewEnabled:E,canOpenPreview:D,onOpenPreview:O,previewSetupError:k,previewHint:A,onSaveDraft:j,editorialMode:M,saveDraftEnabled:N,onOpenScheduler:P,isContributorRole:F,canPublish:I,onPublish:L,publishLabel:R,isPublishedStale:ee}){return(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!e&&t&&!n&&(0,H.jsx)(q,{variant:`ghost`,size:`icon`,className:`text-muted-foreground hover:text-destructive`,onClick:i,disabled:r,children:(0,H.jsx)(Zo,{className:`size-4`})}),!e&&a===`published`&&!o&&(0,H.jsxs)(q,{variant:`outline`,onClick:s,disabled:c,children:[l?(0,H.jsx)(zC,{className:`size-4`}):null,`Revert to draft`]}),!e&&a===`scheduled`&&!o&&(0,H.jsxs)(q,{variant:`outline`,onClick:s,disabled:c,children:[l?(0,H.jsx)(zC,{className:`size-4`}):null,`Cancel schedule`]}),u&&(0,H.jsxs)(V_,{value:d??`none`,onValueChange:g,disabled:!_||c,children:[(0,H.jsx)(W_,{className:`h-10 min-h-10 max-h-10 w-42 py-0`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(mw,{avatarUrl:f??null,firstName:p??null,lastName:m??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,H.jsx)(U_,{placeholder:h||`Assign editor`})]})}),(0,H.jsxs)(q_,{children:[!v&&(0,H.jsx)(Y_,{value:`none`,children:`Unassign`}),y.map(e=>(0,H.jsx)(Y_,{value:e.id,children:e.first_name||e.last_name||e.id},e.id))]})]}),!_&&b&&(0,H.jsxs)(`div`,{className:`inline-flex h-10 items-center gap-2 rounded-md border border-input px-3 text-sm`,children:[(0,H.jsx)(mw,{avatarUrl:f??null,firstName:p??null,lastName:m??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,H.jsx)(`span`,{children:h||`Assigned editor`})]}),x&&(0,H.jsx)(q,{variant:`outline`,size:`icon`,onClick:S,disabled:c,children:(0,H.jsx)(Io,{className:`size-4`})}),C&&(0,H.jsx)(q,{variant:`outline`,size:`icon`,onClick:w,disabled:c,children:(0,H.jsx)(ss,{className:`size-4`})}),T&&E&&D&&(0,H.jsx)(q,{variant:`outline`,onClick:O,disabled:o||c||!!k,title:A??void 0,children:`Open preview`}),(0,H.jsxs)(q,{variant:`outline`,onClick:j,size:M?`icon`:`default`,disabled:!N,children:[c?(0,H.jsx)(zC,{className:`size-4`}):M?(0,H.jsx)(Vo,{className:`size-4`}):null,!M&&(a===`scheduled`?`Save draft (cancel schedule)`:`Save draft`)]}),a!==`scheduled`&&!(M&&F)&&(0,H.jsxs)(q,{variant:`outline`,onClick:P,size:M?`icon`:`default`,disabled:o||c,children:[(0,H.jsx)(La,{className:`size-4`}),!M&&`Schedule`]}),(0,H.jsxs)(q,{onClick:L,disabled:o||!I||c,children:[l?(0,H.jsx)(zC,{className:`size-4`}):null,a===`scheduled`?M&&F?`Review`:`Publish now`:a===`published`&&!ee?`Republish`:R]})]})}function f0({status:e,scheduledFor:t,timezone:n,reviewRejected:r,isPublishedStale:i}){return e===`scheduled`?(0,H.jsxs)(RC,{variant:`outline`,className:`border-blue-500 text-blue-600`,children:[(0,H.jsx)(La,{className:`mr-1 size-3`}),t?`Scheduled · ${sv(t,n)}`:`Scheduled`]}):e===`pending`?r?(0,H.jsx)(RC,{variant:`destructive`,children:`Pending`}):(0,H.jsx)(RC,{className:`bg-amber-500 text-black hover:bg-amber-500`,children:`Pending`}):e===`in_review`?(0,H.jsx)(RC,{variant:`outline`,children:`In Review`}):e===`published`?(0,H.jsx)(RC,{variant:i?`secondary`:`default`,children:i?`Published (pending changes)`:`Published`}):(0,H.jsx)(RC,{variant:`secondary`,children:`Draft`})}function p0({localizationEnabled:e,onToggleLocalization:t,readOnly:n,activeLocale:r,onActiveLocaleChange:i,locales:a}){return(0,H.jsxs)(`div`,{className:`mb-4 flex items-center justify-between`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(lD,{checked:e,onCheckedChange:t,disabled:n}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-sm font-medium`,children:`Localization`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Enable per-entry localization`})]})]}),(0,H.jsx)(`div`,{})]}),(0,H.jsx)(`div`,{children:e&&(0,H.jsx)(_E,{value:r,onValueChange:i,children:(0,H.jsx)(vE,{children:a.map(e=>(0,H.jsx)(yE,{value:e,disabled:n,children:e.toUpperCase()},e))})})})]})}function m0({visible:e,readOnly:t,calOpen:n,onCalOpenChange:r,schedDate:i,onSchedDateChange:a,schedTime:o,onSchedTimeChange:s,onConfirm:c,onCancel:l,canSchedule:u,busy:d}){return!e||t?null:(0,H.jsxs)(`div`,{className:`mb-6 flex items-end gap-2 rounded-lg border bg-muted/30 p-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Date`}),(0,H.jsxs)(QP,{open:n,onOpenChange:r,children:[(0,H.jsx)($P,{asChild:!0,children:(0,H.jsxs)(q,{variant:`outline`,className:`w-40 justify-between font-normal`,children:[i?UO(i,`MMM d, yyyy`):`Select date`,(0,H.jsx)(Va,{className:`size-4 opacity-50`})]})}),(0,H.jsx)(eF,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,H.jsx)(XP,{mode:`single`,selected:i,captionLayout:`dropdown`,defaultMonth:i??new Date,disabled:{before:new Date},onSelect:e=>{a(e),r(!1)}})})]})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsxs)(Y,{children:[`Time `,(0,H.jsx)(`span`,{className:`font-normal text-muted-foreground`,children:`(24h)`})]}),(0,H.jsx)(Sw,{type:`time`,className:`w-32 appearance-none bg-background [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`,value:o,onChange:e=>s(e.target.value)})]}),(0,H.jsxs)(q,{onClick:c,disabled:!u||d,children:[d?(0,H.jsx)(zC,{className:`size-4`}):null,`Confirm`]}),(0,H.jsx)(q,{variant:`ghost`,onClick:l,children:`Cancel`})]})}function h0(e){return Array.isArray(e)?e.map(h0):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,h0(t)])):e}function g0(e){return JSON.stringify(h0(e))}function _0(e){let t=e.match(/Field "([^"]+)" already exists\.?/);return t?t[1]??null:null}var v0=null;function y0(){let{slug:e,id:t}=gr(),n=fr(),r=!t,{timezone:i,locales:a,defaultLocale:o,editorialMode:s}=Sa(),{user:c,status:l}=_a(),u=c?.role?.toLowerCase()??``,{data:d,loading:f}=fs(e?`/cms/admin/content-types/${e}`:null),{data:p}=fs(`/cms/admin/client-settings`),{data:m,loading:h}=fs(e&&t?`/cms/admin/entries/${e}/${t}`:null),{data:g}=fs(s&&[`editor`,`admin`,`super admin`].includes(c?.role?.toLowerCase()??``)?`/cms/admin/users`:null),{loading:_,request:y}=xw(),{loading:b,request:x}=xw(),{loading:S,request:C}=xw(),[w,T]=(0,v.useState)({}),[E,D]=(0,v.useState)([]),[O,k]=(0,v.useState)(``),[A,j]=(0,v.useState)(!1),[M,N]=(0,v.useState)(`draft`),[P,F]=(0,v.useState)(``),[I,L]=(0,v.useState)(!1),[R,ee]=(0,v.useState)(!1),[te,ne]=(0,v.useState)(!1),[z,B]=(0,v.useState)(null),[re,V]=(0,v.useState)(null),[ie,ae]=(0,v.useState)(null),[oe,se]=(0,v.useState)(null),[ce,le]=(0,v.useState)(!1),[ue,de]=(0,v.useState)(null),[fe,pe]=(0,v.useState)(!1),[me,he]=(0,v.useState)(!1),[ge,_e]=(0,v.useState)(),[ve,ye]=(0,v.useState)(`09:00`),be=(0,v.useRef)(`{}`),xe=(0,v.useRef)(!1),Se=vD(p),Ce=d?.kind===`collection`&&d.previewEnabled!==!1,we=d?yD(Se,d.fields.map(e=>e.name)):null,Te=Ce&&Se.enabled&&!we,Ee=Ce&&Se.enabled&&we?we:Ce&&Se.enabled?null:`Preview is disabled. Configure Settings > Overview > Preview to enable it.`;(0,v.useEffect)(()=>{if(r){let e={};d?.fields.forEach(t=>{e[t.name]=t.type===`boolean`?!1:``}),e.localized={};let t=a&&a.length>0?a:[`en`];D(t),k(o??t[0]),j(!1),T(e),N(`draft`),F(``),L(!1),ne(!1),B(null),V(null),ae(null),se(null),le(!1),de(null),be.current=g0(e);return}if(!m||!d)return;let e={};d.fields.forEach(t=>{e[t.name]=m[t.name]??(t.type===`boolean`?!1:``)});let t=m.localized,n=t&&typeof t==`object`?t:{};e.localized=n;let s=Object.keys(n).filter(e=>!e.startsWith(`_`)),c=(n._meta||{}).enabled??s.length>0;if(s.length>0)D(s),k(s[0]);else{let e=a&&a.length>0?a:[`en`];D(e),k(o??e[0])}if(j(!!c),T(e),N(m.status??`draft`),ne(!!m.review_rejected),B(m.editor_id??null),V(m._editor_first_name??null),ae(m._editor_last_name??null),se(m._editor_avatar_url??null),le(!1),de(null),be.current=g0(e),m.scheduled_for?(F(m.scheduled_for),_e(new Date(m.scheduled_for)),ye(cv(m.scheduled_for,i))):F(``),m.status===`published`&&m.published_data){let t=(e,t)=>{if(t===`datetime`&&e&&typeof e==`string`){let t=/Z|[+-]\d{2}:\d{2}$/.test(e)?e:e+`Z`,n=new Date(t);return isNaN(n.getTime())?e:n.toISOString()}return e},n={},r={};d.fields.forEach(i=>{i.name in m.published_data&&(n[i.name]=t(m.published_data[i.name]??(i.type===`boolean`?!1:``),i.type),r[i.name]=t(e[i.name],i.type))}),L(g0(r)!==g0(n))}else L(!1)},[m,d,r]);let De=g0(w)!==be.current,Oe=Ir((0,v.useCallback)(()=>xe.current?!1:De,[De]));function ke(e,t){T(n=>({...n,[e]:t}))}function Ae(e,t,n){T(r=>{let i={...r},a=i.localized&&typeof i.localized==`object`?i.localized:{},o=a[e]&&typeof a[e]==`object`?a[e]:{};return o[t]=n,a[e]=o,i.localized=a,i})}function je(e){j(e),T(t=>{let n={...t},r=n.localized&&typeof n.localized==`object`?n.localized:{};if(r._meta||={},e&&o){if(!(r[o]&&typeof r[o]==`object`&&r[o])&&(r[o]={},d&&d.fields)){let e=r[o];d.fields.forEach(t=>{if([`string`,`text`,`richtext`].includes(t.type)){let r=n[t.name];r!=null&&r!==``&&(e[t.name]=r)}})}r._meta.primary=o}else if(!e&&o){let e=r[o]&&typeof r[o]==`object`?r[o]:null;e&&d&&d.fields&&d.fields.forEach(t=>{if([`string`,`text`,`richtext`,`uid`].includes(t.type)){let r=e[t.name];r!==void 0&&(n[t.name]=r)}})}return r._meta.enabled=e,n.localized=r,n})}function Me(){if(P)_e(new Date(P)),ye(cv(P,i));else{let e=new Date;e.setDate(e.getDate()+1),_e(e),ye(`09:00`)}pe(!0)}async function Ne(){if(!e||!d)return null;de(null);let n={},i=A&&w.localized&&typeof w.localized==`object`&&w.localized[o]&&typeof w.localized[o]==`object`?w.localized[o]:null;if(d.fields.forEach(e=>{let t=w[e.name];(t==null||t===``)&&i&&i[e.name]!==void 0&&(t=i[e.name]),e.type===`media`&&t===null?n[e.name]=null:t!==``&&t!=null&&(n[e.name]=t)}),w.localized&&Object.keys(w.localized).length>0){let e=w.localized;e._meta||={},e._meta.enabled=A,e._meta.primary=o,n.localized=e}try{let i=await y(r?`/cms/admin/content-types/${e}/entries`:`/cms/admin/entries/${e}/${t}`,r?`POST`:`PUT`,n);return be.current=g0(w),i}catch(e){let t=_0(e instanceof Error?e.message:``);return t&&d.fields.some(e=>e.type===`uid`&&e.name===t)&&de(t),X.error(`Could not save draft`),null}}function Pe(e){!v0||v0.closed||(v0.location.href=e,v0.focus())}async function Fe(i){let a=await Ne();if(!a)return null;let o=a,s=M;if(M===`scheduled`){let n=r?a.id:t;try{o=await x(`/cms/admin/entries/${e}/${n}/status`,`PATCH`,{status:`draft`}),s=`draft`,N(`draft`),F(``),pe(!1)}catch{return X.error(`Could not save draft`),null}}else M===`published`&&(s=`published`,L(!0));if(i&&e&&Te&&!Se.syncUrl){let t=bD({config:Se,contentType:e,entry:o,status:s});t&&Pe(t)}return X.success(`Draft saved`),r&&(xe.current=!0,n(`/content/${e}/${o.id}`,{replace:!0})),{entry:o,status:s}}async function Ie(){await Fe(!0)}async function Le(){if(!e||!d||!Se.enabled||!ft)return;if(we){X.error(we);return}let n=m??null,i=M;if(r||De){let e=await Fe(!1);if(!e)return;n=e.entry,i=e.status}let a=bD({config:Se,contentType:e,entry:n??{...w,id:t,status:M},status:i});if(!a){X.error(`Preview URL could not be resolved for this entry.`);return}if(v0=window.open(a,hD),!v0){X.error(`Preview window was blocked by the browser.`);return}v0.focus()}async function Re(){if(!e)return;let i=t;if(De||r){let e=await Ne();if(!e)return;i=r?e.id:t,r&&(xe.current=!0)}let a=s&&(u===`contributor`||u===``||l!==`authenticated`);try{let t=await x(`/cms/admin/entries/${e}/${i}/status`,`PATCH`,{status:a?`pending`:`published`,review_rejected:!1});N(t?.status??(a?`pending`:`published`)),ne(!!t?.review_rejected),B(t?.editor_id??z),V(t?._editor_first_name??re),ae(t?._editor_last_name??ie),se(t?._editor_avatar_url??oe),F(``),L(!1),pe(!1),le(!1),X.success(`Entry published`),r&&n(`/content/${e}/${i}`,{replace:!0})}catch{X.error(`Could not publish entry`),r&&i&&n(`/content/${e}/${i}`,{replace:!0})}}async function ze(){if(!e||!ge||!ve)return;let a=lv(ge,ve,i);if(new Date(a)<=new Date)return;let o=t;if(De||r){let e=await Ne();if(!e)return;o=r?e.id:t,r&&(xe.current=!0)}try{await x(`/cms/admin/entries/${e}/${o}/status`,`PATCH`,{status:`scheduled`,scheduled_for:a}),N(`scheduled`),F(a),pe(!1),X.success(`Entry scheduled`),r&&n(`/content/${e}/${o}`,{replace:!0})}catch{X.error(`Could not schedule entry`),r&&o&&n(`/content/${e}/${o}`,{replace:!0})}}async function Be(){if(!(!e||!t))try{await x(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`draft`}),N(`draft`),F(``),L(!1),X.success(`Reverted to draft`)}catch{X.error(`Could not revert entry`)}}async function Ve(){if(!(!e||!t))try{await C(`/cms/admin/entries/${e}/${t}`,`DELETE`),X.success(`Entry deleted`),xe.current=!0,n(`/content/${e}`,{replace:!0})}catch{X.error(`Could not delete entry`)}}async function He(n){if(!e||!t)return;let r=n===`none`?null:n;try{let n=await x(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`in_review`,editor_id:r,review_locked_by_editor:m?.review_locked_by_editor??!1});N(n?.status??`in_review`),ne(!!n?.review_rejected),B(n?.editor_id??r),V(n?._editor_first_name??null),ae(n?._editor_last_name??null),se(n?._editor_avatar_url??null),le(!1),X.success(`Editor assigned`)}catch{X.error(`Could not assign editor`)}}async function Ue(){le(e=>!e)}async function We(){if(!(!e||!t))try{let n=await x(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`pending`,review_rejected:!0});N(n?.status??`pending`),ne(!!n?.review_rejected),le(!1),X.success(`Entry rejected`)}catch{X.error(`Could not reject entry`)}}let Ge=f||!r&&h,Ke=_||b,qe=c?.permissions??[],Je=qe.includes(`*`)||qe.includes(`entries:write`),Ye=qe.includes(`*`)||qe.includes(`entries:delete`),Xe=u===`contributor`,Ze=u===`editor`,Qe=[`admin`,`super admin`].includes(u),$e=u===`viewer`,et=Xe||Ze,tt=Xe&&d?.kind===`single`,nt=r||String(m?.created_by??``)===String(c?.id??``),rt=s&&Xe&&M===`in_review`,it=s&&(Ze||Qe)&&!!z&&z===c?.id,at=it&&(M===`pending`||M===`in_review`)&&!te,ot=$e||!Je||tt||Xe&&!nt||s&&Xe&&M===`pending`&&!te||rt||s&&(Ze||Qe)&&(M===`pending`||M===`in_review`)&&(!it||!ce),st=Ye&&(!et||nt),ct=s&&Xe&&M===`pending`&&(te?!0:De)||De||M===`draft`||M===`scheduled`||!s&&M===`pending`||s&&M===`pending`&&!Xe||s&&M===`in_review`&&!Xe||I,lt=!!(ge&&ve),ut=s&&Xe?`Review`:`Publish`,dt=Ce,ft=M===`draft`||M===`scheduled`||M===`pending`||M===`in_review`||M===`published`&&I,pt=!ot&&!Ke&&(M===`scheduled`?!0:De);if(mD(`mod+s`,Ie,{enabled:pt,label:`Save draft`}),mD(`mod+shift+p`,Re,{enabled:ct&&!Ke&&!ot,label:`Publish`}),Ge)return(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]});if(!d)return null;let mt=(g??[]).filter(e=>Ze?e.id===c?.id:Qe?e.id===c?.id||(e.role_name??``).toLowerCase()===`editor`:!1),ht=!r&&s&&(Ze||Qe)&&(M===`pending`||M===`in_review`),gt=s&&!r&&ht,_t=s&&!r&&!!z,vt=at,yt=at,bt=re||ie;return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:r?`New entry`:`Edit entry`}),(0,H.jsx)(f0,{status:M,scheduledFor:P,timezone:i,reviewRejected:te,isPublishedStale:I})]}),(0,H.jsx)(`p`,{className:`text-muted-foreground text-xs mt-1`,children:d.name}),dt&&Se.enabled&&we&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-amber-600`,children:we})]}),(0,H.jsx)(d0,{isNew:r,canDeleteCurrentEntry:st,isReadOnlySingle:tt,deleting:S,onDeleteClick:()=>ee(!0),status:M,readOnly:ot,onRevertToDraft:Be,busy:Ke,patching:b,showReviewerControl:gt,assignedEditorId:z,assignedEditorAvatarUrl:oe,assignedEditorFirstName:re,assignedEditorLastName:ie,reviewerLabel:bt,handleAssignEditor:He,canManageReviewer:ht,isEditorRole:Ze,reviewerCandidates:mt,showReviewerInfo:_t,showReviewEditButton:vt,onToggleReviewLock:Ue,showRejectButton:yt,onReject:We,supportsPreviewUI:dt,previewEnabled:Se.enabled,canOpenPreview:ft,onOpenPreview:Le,previewSetupError:we,previewHint:Ee,onSaveDraft:Ie,editorialMode:s,saveDraftEnabled:pt,onOpenScheduler:Me,isContributorRole:Xe,canPublish:ct,onPublish:Re,publishLabel:ut,isPublishedStale:I})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsx)(m0,{visible:fe,readOnly:ot,calOpen:me,onCalOpenChange:he,schedDate:ge,onSchedDateChange:_e,schedTime:ve,onSchedTimeChange:ye,onConfirm:ze,onCancel:()=>pe(!1),canSchedule:lt,busy:Ke}),(0,H.jsx)(p0,{localizationEnabled:A,onToggleLocalization:je,readOnly:ot,activeLocale:O,onActiveLocaleChange:k,locales:E}),(0,H.jsx)(u0,{ct:d,values:w,id:t,activeLocale:O,localizationEnabled:A,defaultLocale:o,readOnly:ot,uidErrorField:ue,setUidErrorField:de,handleLocalizedChange:Ae,handleChange:ke}),(0,H.jsx)(Jh,{open:R,onOpenChange:ee,children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Delete this entry?`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone.`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>ee(!1),children:`Cancel`}),(0,H.jsxs)(q,{variant:`destructive`,onClick:Ve,disabled:S,children:[S?(0,H.jsx)(zC,{className:`size-4`}):null,`Delete`]})]})]})}),(0,H.jsx)(Jh,{open:Oe.state===`blocked`,onOpenChange:()=>Oe.reset?.(),children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Unsaved changes`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Leave without saving?`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>Oe.reset?.(),children:`Stay`}),(0,H.jsx)(q,{variant:`destructive`,onClick:()=>Oe.proceed?.(),children:`Leave`})]})]})})]})]})}function b0({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return(0,H.jsx)(iC,{"data-slot":`separator`,decorative:n,orientation:t,className:K(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,e),...r})}var x0=js(`group/field flex w-full gap-3 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:[`flex-col [&>*]:w-full [&>.sr-only]:w-auto`],horizontal:[`flex-row items-center`,`[&>[data-slot=field-label]]:flex-auto`,`has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`],responsive:[`flex-col @md/field-group:flex-row @md/field-group:items-center [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto`,`@md/field-group:[&>[data-slot=field-label]]:flex-auto`,`@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`]}},defaultVariants:{orientation:`vertical`}});function S0({className:e,orientation:t=`vertical`,...n}){return(0,H.jsx)(`div`,{role:`group`,"data-slot":`field`,"data-orientation":t,className:K(x0({orientation:t}),e),...n})}function C0({className:e,...t}){return(0,H.jsx)(Y,{"data-slot":`field-label`,className:K(`group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50`,`has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4`,`has-data-[state=checked]:border-primary has-data-[state=checked]:bg-primary/5 dark:has-data-[state=checked]:bg-primary/10`,e),...t})}function w0({page:e,totalPages:t,limit:n,onPageChange:r,onLimitChange:i}){return(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,H.jsxs)(S0,{orientation:`horizontal`,className:`w-fit`,children:[(0,H.jsx)(C0,{htmlFor:`select-rows-per-page`,children:`Rows per page`}),(0,H.jsxs)(V_,{value:String(n),onValueChange:e=>i(Number(e)),children:[(0,H.jsx)(W_,{className:`w-20`,id:`select-rows-per-page`,children:(0,H.jsx)(U_,{})}),(0,H.jsx)(q_,{align:`start`,children:(0,H.jsxs)(H_,{children:[(0,H.jsx)(Y_,{value:`10`,children:`10`}),(0,H.jsx)(Y_,{value:`30`,children:`30`}),(0,H.jsx)(Y_,{value:`50`,children:`50`}),(0,H.jsx)(Y_,{value:`70`,children:`70`}),(0,H.jsx)(Y_,{value:`100`,children:`100`})]})})]})]}),(0,H.jsx)(FT,{className:`mx-0 w-auto`,children:(0,H.jsxs)(IT,{children:[(0,H.jsx)(LT,{children:(0,H.jsx)(zT,{href:`#`,onClick:t=>{t.preventDefault(),e>1&&r(e-1)},"aria-disabled":e===1,className:e===1?`pointer-events-none opacity-50`:``})}),(0,H.jsx)(LT,{children:(0,H.jsx)(BT,{href:`#`,onClick:n=>{n.preventDefault(),e<t&&r(e+1)},"aria-disabled":e===t,className:e===t?`pointer-events-none opacity-50`:``})})]})})]})}var T0={field:`created_at`,dir:`desc`},E0=[{name:`created_at`,label:`Created`},{name:`updated_at`,label:`Updated`},{name:`published_at`,label:`Published`}],D0=[{name:`created_at`,label:`Created`},{name:`updated_at`,label:`Updated`},{name:`pub_sch`,label:`Published`}],O0={draft:`Draft`,scheduled:`Scheduled`,published:`Published`,pending:`Pending`,in_review:`In Review`},k0=[`draft`,`pending`,`in_review`,`scheduled`,`published`];function A0(e){return e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function j0(e){if(!e)return null;let t=Number.parseInt(e.staleDraftDays??`30`,10);return{contentTypes:(()=>{try{let t=JSON.parse(e.contentTypes??`[]`);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e).map(e=>({slug:typeof e.slug==`string`?e.slug:``,enabled:e.enabled!==!1,checkStaleDrafts:e.checkStaleDrafts!==!1,requiredTextFields:Array.isArray(e.requiredTextFields)?e.requiredTextFields.filter(e=>typeof e==`string`):[],requiredMediaFields:Array.isArray(e.requiredMediaFields)?e.requiredMediaFields.filter(e=>typeof e==`string`):[]})).filter(e=>e.slug.length>0):[]}catch{return[]}})(),staleDraftDays:Number.isFinite(t)?t:30}}function M0(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return 0;let n=Date.now()-t.getTime();return Math.max(0,Math.floor(n/864e5))}function N0(e){return e==null?!0:typeof e==`string`?e.trim().length===0:Array.isArray(e)?e.length===0:!1}function P0(e){return e==null?!0:typeof e==`string`?e.trim().length===0:Array.isArray(e)?e.filter(e=>String(e??``).trim().length>0).length===0:!1}function F0(e){return e.find(e=>e.name===`title`)?.name??e.find(e=>e.name===`name`)?.name??e.find(e=>e.type===`uid`)?.name??e.find(e=>e.type===`string`)?.name??null}function I0(e){if(Array.isArray(e))return e.map(e=>String(e??``).trim()).filter(Boolean);let t=String(e??``).trim();return t?[t]:[]}function L0(e){return{visibleFields:e.slice(0,4).map(e=>e.name),visibleSystemCols:D0.map(e=>e.name),sort:T0}}function R0(e,t){if(!e)return L0(t);let n=(e.visibleFields??[]).filter(e=>{let n=String(e).split(`.`)[0];return t.some(e=>e.name===n)}),r=Array.isArray(e.visibleSystemCols)?e.visibleSystemCols.filter(e=>D0.some(t=>t.name===e)):D0.map(e=>e.name);return{visibleFields:n.length>0?n:t.slice(0,4).map(e=>e.name),visibleSystemCols:r,sort:e.sort??T0}}async function z0(e){let t=await fetch(`/cms/admin/users/me/prefs/view_${e}`,{credentials:`include`});if(!t.ok)return null;let{value:n}=await t.json();return n}async function B0(e,t){await fetch(`/cms/admin/users/me/prefs/view_${e}`,{method:`PUT`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({value:t})})}function V0({entry:e}){let t=e._author_first_name,n=e._author_last_name,r=t||n?[t,n].filter(Boolean).join(` `):null,i=(0,H.jsx)(mw,{avatarUrl:e._author_avatar_url,firstName:t,lastName:n,className:`size-7`,fallbackClassName:`text-[10px]`});return r?(0,H.jsxs)(xp,{children:[(0,H.jsx)(Sp,{asChild:!0,children:i}),(0,H.jsx)(Cp,{children:r})]}):i}function H0({allFields:e,fieldName:t,visible:n,setVisible:r}){let i=t.split(`.`)[0],a=e.find(e=>e.name===i)?.relatedSlug,{data:o}=fs(a?`/cms/admin/content-types/${a}`:null),s=n.find(e=>e.split(`.`)[0]===i),c=s&&s.includes(`.`)?s.split(`.`)[1]:void 0;function l(e,t){r(n=>n.map(n=>n.split(`.`)[0]===e?t?`${e}.${t}`:e:n))}return(0,v.useEffect)(()=>{if(!o?.fields||c)return;let e=F0(o.fields);e&&l(i,e)},[o,c,i]),o?.fields?(0,H.jsxs)(V_,{value:c,onValueChange:e=>l(i,e),children:[(0,H.jsx)(W_,{className:`h-8 w-32 text-sm`,children:(0,H.jsx)(U_,{})}),(0,H.jsx)(q_,{children:o.fields.map(e=>(0,H.jsx)(Y_,{value:e.name,children:e.name},e.name))})]}):null}function U0({open:e,onOpenChange:t,allFields:n,config:r,onApply:i}){let[a,o]=(0,v.useState)(r.visibleFields),[s,c]=(0,v.useState)(r.visibleSystemCols),[l,u]=(0,v.useState)(r.sort);(0,v.useEffect)(()=>{e&&(o(r.visibleFields),c(r.visibleSystemCols),u(r.sort))},[e,r]);let d=n.filter(e=>!a.some(t=>t.split(`.`)[0]===e.name));function f(e,t){o(n=>{let r=n.indexOf(e);if(r===-1)return n;let i=[...n],a=r+t;return a<0||a>=i.length?n:([i[r],i[a]]=[i[a],i[r]],i)})}function p(e){o(t=>[...t,e])}function m(e){o(t=>t.filter(t=>t!==e))}let h=[...E0,...n.filter(e=>![`media`,`text`,`richtext`,`relation`].includes(e.type)).map(e=>({name:e.name,label:A0(e.name)}))];return(0,H.jsx)(Jh,{open:e,onOpenChange:t,children:(0,H.jsxs)(Qh,{className:`max-h-[90vh] max-w-md flex flex-col`,children:[(0,H.jsx)($h,{className:`flex-none`,children:(0,H.jsx)(tg,{children:`Configure the view`})}),(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-5 py-1`,children:[(0,H.jsxs)(`div`,{className:d.length>0||s.length<D0.length?`flex-1 min-h-0 grid gap-5 [grid-template-rows:minmax(7rem,1fr)_minmax(7rem,1fr)]`:`flex min-h-0 flex-1 flex-col`,children:[(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col`,children:[(0,H.jsx)(`p`,{className:`mb-2 flex-none text-xs font-medium uppercase tracking-wide text-muted-foreground`,children:`Displayed fields`}),a.length===0&&s.length===0?(0,H.jsx)(`p`,{className:`py-2 text-sm text-muted-foreground`,children:`No fields selected.`}):(0,H.jsxs)(`ul`,{className:`flex-1 min-h-0 space-y-1 overflow-y-auto`,children:[a.map((e,t)=>{let r=String(e).split(`.`)[0],i=n.find(e=>e.name===r);return(0,H.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md border px-3 py-2 text-sm`,children:[(0,H.jsx)(`span`,{className:`flex-1 font-medium`,children:A0(r)}),i&&(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:i.type}),i&&i.type===`relation`&&(0,H.jsx)(`div`,{className:`ml-2`,children:(0,H.jsx)(H0,{allFields:n,fieldName:e,visible:a,setVisible:o})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:t===0,onClick:()=>f(e,-1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Wa,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:t===a.length-1,onClick:()=>f(e,1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Va,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,onClick:()=>m(e),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(qa,{className:`size-3.5`})})]},e)}),s.map(e=>{let t=D0.find(t=>t.name===e);return t?(0,H.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md border px-3 py-2 text-sm`,children:[(0,H.jsx)(`span`,{className:`flex-1 font-medium`,children:t.label}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`system`}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:!0,className:`flex size-6 items-center justify-center rounded text-muted-foreground disabled:opacity-30`,children:(0,H.jsx)(Wa,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:!0,className:`flex size-6 items-center justify-center rounded text-muted-foreground disabled:opacity-30`,children:(0,H.jsx)(Va,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,onClick:()=>c(t=>t.filter(t=>t!==e)),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(qa,{className:`size-3.5`})})]},e):null})]})]}),(d.length>0||s.length<D0.length)&&(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col`,children:[(0,H.jsx)(`p`,{className:`mb-2 flex-none text-xs font-medium uppercase tracking-wide text-muted-foreground`,children:`Available fields`}),(0,H.jsxs)(`ul`,{className:`flex-1 min-h-0 space-y-1 overflow-y-auto`,children:[d.map(e=>(0,H.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md border border-dashed px-3 py-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(`span`,{className:`flex-1`,children:A0(e.name)}),(0,H.jsx)(`span`,{className:`text-xs`,children:e.type}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>p(e.name),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(Ja,{className:`size-3.5`})})]},e.name)),D0.filter(e=>!s.includes(e.name)).map(e=>(0,H.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md border border-dashed px-3 py-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(`span`,{className:`flex-1`,children:e.label}),(0,H.jsx)(`span`,{className:`text-xs`,children:`system`}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>c(t=>[...t,e.name]),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(Ja,{className:`size-3.5`})})]},e.name))]})]})]}),(0,H.jsxs)(`div`,{className:`flex-none`,children:[(0,H.jsx)(`p`,{className:`mb-2 text-xs font-medium uppercase tracking-wide text-muted-foreground`,children:`Sort entries`}),(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,H.jsxs)(V_,{value:l.field,onValueChange:e=>u(t=>({...t,field:e})),children:[(0,H.jsx)(W_,{className:`h-8 text-sm`,children:(0,H.jsx)(U_,{})}),(0,H.jsx)(q_,{children:h.map(e=>(0,H.jsx)(Y_,{value:e.name,children:e.label},e.name))})]}),(0,H.jsxs)(V_,{value:l.dir,onValueChange:e=>u(t=>({...t,dir:e})),children:[(0,H.jsx)(W_,{className:`h-8 text-sm`,children:(0,H.jsx)(U_,{})}),(0,H.jsxs)(q_,{children:[(0,H.jsx)(Y_,{value:`asc`,children:`Ascending`}),(0,H.jsx)(Y_,{value:`desc`,children:`Descending`})]})]})]})]})]}),(0,H.jsxs)(eg,{className:`flex-none`,children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,H.jsx)(q,{onClick:()=>{i({visibleFields:a,visibleSystemCols:s,sort:l}),t(!1)},children:`Apply`})]})]})})}function W0({hasIssues:e,title:t}){let n=e?{border:`border-amber-500/40`,dots:[`bg-amber-400`,`bg-amber-400`]}:{border:`border-emerald-500/40`,dots:[`bg-emerald-500`,`bg-emerald-500`]};return(0,H.jsxs)(xp,{children:[(0,H.jsx)(Sp,{asChild:!0,children:(0,H.jsx)(`span`,{className:`inline-flex h-6 w-4 shrink-0 flex-col items-center justify-center gap-0.5 rounded-full border ${n.border}`,children:n.dots.map((e,t)=>(0,H.jsx)(`span`,{className:`block size-1.5 rounded-full ${e}`},t))})}),(0,H.jsx)(Cp,{children:t})]})}function G0({value:e}){let[t,n]=(0,v.useState)(null);return(0,v.useEffect)(()=>{if(e.startsWith(`http`)){n(e);return}fetch(`/cms/admin/media/${e}/url`,{credentials:`include`}).then(e=>e.ok?e.json():null).then(e=>n(e?.url??null)).catch(()=>{})},[e]),t?/\.(jpe?g|png|gif|webp|avif|svg)(\?|$)/i.test(t)?(0,H.jsx)(`img`,{src:t,alt:``,className:`size-8 object-cover`}):(0,H.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,H.jsx)(oo,{className:`size-3.5 shrink-0`}),(0,H.jsx)(`span`,{className:`max-w-30 truncate`,children:`File`})]}):(0,H.jsx)(vo,{className:`size-4 text-muted-foreground`})}function K0({relatedSlug:e,value:t,displayField:n}){let[r,i]=(0,v.useState)([]),[a,o]=(0,v.useState)(!1),s=I0(t);return(0,v.useEffect)(()=>{let r=I0(t);if(!e||r.length===0){i([]);return}let a=!1;return o(!0),(n?Promise.resolve(n):fetch(`/cms/admin/content-types/${e}`,{credentials:`include`}).then(e=>e.ok?e.json():null).then(e=>F0(e?.fields??[])).catch(()=>null)).then(t=>Promise.all(r.map(n=>fetch(`/cms/admin/entries/${e}/${n}`,{credentials:`include`}).then(e=>e.ok?e.json():null).then(e=>e?String((t&&e[t])??e.title??e.name??n):n).catch(()=>n)))).then(e=>{a||i(e.filter(Boolean))}).catch(()=>{a||i(r)}).finally(()=>{a||o(!1)}),()=>{a=!0}},[e,n,t]),s.length===0?(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}):a&&r.length===0?(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`…`}):(0,H.jsx)(`span`,{className:`block max-w-50 truncate font-medium`,children:r.join(`, `)})}function q0({field:e,value:t,displayField:n}){let{timezone:r}=Sa();if(t==null||t===``)return(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`});if(e.type===`boolean`)return t?(0,H.jsx)(Ba,{className:`size-4 text-primary`}):(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`});if(e.type===`datetime`)return(0,H.jsx)(`span`,{children:sv(String(t),r)});if(e.type===`number`)return(0,H.jsx)(`span`,{children:String(t)});if(e.type===`media`)return(0,H.jsx)(G0,{value:String(t)});if(e.type===`relation`)return(0,H.jsx)(K0,{relatedSlug:e.relatedSlug,value:t,displayField:n});if(e.type===`text`||e.type===`richtext`){let e=String(t);return(0,H.jsx)(`span`,{className:`block max-w-50 truncate text-muted-foreground`,children:e.length>60?e.slice(0,60)+`…`:e})}let i=String(t);return(0,H.jsx)(`span`,{className:e.type===`uid`?`block max-w-40 truncate font-mono text-xs text-muted-foreground`:`block max-w-50 truncate font-medium`,children:i.length>60?i.slice(0,60)+`…`:i})}function J0({entry:e,fields:t,isStaleDraft:n=!1}){let{timezone:r}=Sa();if(e.status===`scheduled`)return(0,H.jsxs)(RC,{variant:`outline`,className:`border-blue-500 text-blue-600`,children:[(0,H.jsx)(La,{className:`mr-1 size-3`}),e.scheduled_for?ov(e.scheduled_for,r):`Scheduled`]});if(e.status===`draft`)return n?(0,H.jsx)(RC,{variant:`outline`,className:`border-amber-500 text-amber-500`,children:`Stale Draft`}):(0,H.jsx)(RC,{variant:`outline`,children:`Draft`});if(e.status===`pending`)return e.review_rejected?(0,H.jsx)(RC,{variant:`destructive`,children:`Pending`}):(0,H.jsx)(RC,{className:`bg-amber-500 text-black hover:bg-amber-500`,children:`Pending`});if(e.status===`in_review`)return(0,H.jsx)(RC,{variant:`outline`,children:`In Review`});let i=(e,t)=>{if(t===`datetime`&&e&&typeof e==`string`){let t=/Z|[+-]\d{2}:\d{2}$/.test(e)?e:e+`Z`,n=new Date(t);return isNaN(n.getTime())?e:n.toISOString()}return e};return e.published_data!=null&&t.some(t=>t.name in e.published_data&&JSON.stringify(i(e[t.name],t.type))!==JSON.stringify(i(e.published_data[t.name],t.type)))?(0,H.jsx)(RC,{variant:`secondary`,children:`Published*`}):(0,H.jsx)(RC,{variant:`default`,children:`Published`})}function Y0(){let{slug:e}=gr(),t=fr(),{timezone:n}=Sa(),{user:r}=_a(),[i,a]=ta(),o=Math.max(1,Number(i.get(`page`)??1)),s=i.get(`status`),c=s&&[`draft`,`scheduled`,`published`,`pending`,`in_review`].includes(s)?s:``,l=[10,30,50,70,100].includes(Number(i.get(`limit`)))?Number(i.get(`limit`)):10;function u(e){a(t=>(t.set(`page`,String(e)),t),{replace:!0})}function d(e){a(t=>(t.set(`limit`,String(e)),t.set(`page`,`1`),t),{replace:!0})}function f(e){a(t=>(e?t.set(`status`,e):t.delete(`status`),t.set(`page`,`1`),t),{replace:!0})}let[p,m]=(0,v.useState)(null),[h,g]=(0,v.useState)(!1),[_,y]=(0,v.useState)(null),[b,x]=(0,v.useState)(new Set),[S,C]=(0,v.useState)(!1),[w,T]=(0,v.useState)(!1),[E,D]=(0,v.useState)(``),[O,k]=(0,v.useState)(``),{loading:A,request:j}=xw();(0,v.useEffect)(()=>{let e=setTimeout(()=>{k(E),u(1)},300);return()=>clearTimeout(e)},[E]);let{data:M,loading:N}=fs(e?`/cms/admin/content-types/${e}`:null),{data:P}=fs(`/cms/admin/addons/registry`),F=P?.addons.find(e=>e.id===`content-health`)??null,I=!!(F?.installed&&F.enabled&&F.compatible),{data:L}=fs(I?`/cms/admin/addons/content-health/settings`:null);(0,v.useEffect)(()=>{!M||!e||z0(e).then(e=>y(R0(e,M.fields))).catch(()=>y(defaultViewConfig(M.fields)))},[M?.slug]),(0,v.useEffect)(()=>{x(new Set)},[o,l]);let R=_??{visibleFields:M?.fields.slice(0,4).map(e=>e.name)??[],visibleSystemCols:D0.map(e=>e.name),sort:T0},{sort:ee}=R,te=j0(L),ne=e?te?.contentTypes.find(t=>t.slug===e&&t.enabled)??null:null,z=(R.visibleFields??[]).map(e=>{let t=String(e).split(`.`),n=t[0],r=t[1],i=M?.fields.find(e=>e.name===n);return i?{field:i,displayField:r}:null}).filter(Boolean),B=(M?.fields??[]).filter(e=>[`string`,`uid`,`text`,`richtext`].includes(e.type)).map(e=>e.name),{data:re,loading:V,refetch:ie}=fs(e&&_?`/cms/admin/content-types/${e}/entries?page=${o}&limit=${l}&sort=${ee.field}&order=${ee.dir}${c?`&status=${c}`:``}${O?`&search=${encodeURIComponent(O)}&searchFields=${B.join(`,`)}`:``}`:null),ae=[...new Set([...re?.available_statuses??[],...c?[c]:[]])].filter(e=>[`draft`,`scheduled`,`published`,`pending`,`in_review`].includes(e)).sort((e,t)=>k0.indexOf(e)-k0.indexOf(t));async function oe(){if(!(!p||!e)){try{await j(`/cms/admin/entries/${e}/${p}`,`DELETE`),X.success(`Entry deleted`)}catch{X.error(`Could not delete entry`)}m(null),ie()}}let se=r?.permissions??[],ce=se.includes(`*`)||se.includes(`entries:write`),le=se.includes(`*`)||se.includes(`entries:delete`),ue=r?.role?.toLowerCase()===`viewer`,de=r?.role?.toLowerCase()===`contributor`,fe=r?.role?.toLowerCase()===`editor`,pe=de||fe,me=e=>String(e.created_by??``)===String(r?.id??``),he=e=>!1,ge=e=>ce&&(!de||me(e))&&!he(e),_e=e=>le&&(!pe||me(e)),ve=[...b].filter(e=>{let t=(re?.data??[]).find(t=>t.id===e);return t?ge(t):!1}),ye=[...b].filter(e=>{let t=(re?.data??[]).find(t=>t.id===e);return t?_e(t):!1}),be=(re?.data??[]).map(e=>e.id),xe=be.length>0&&be.every(e=>b.has(e)),Se=!xe&&be.some(e=>b.has(e));function Ce(){x(e=>{let t=new Set(e);return xe?be.forEach(e=>t.delete(e)):be.forEach(e=>t.add(e)),t})}function we(e){x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}async function Te(){if(!(!e||S)){C(!0);try{let t={"Content-Type":`application/json`};await Promise.all(ve.map(n=>fetch(`/cms/admin/entries/${e}/${n}/status`,{method:`PATCH`,credentials:`include`,headers:t,body:JSON.stringify({status:`draft`})}))),X.success(`Entries unpublished`),x(new Set),ie()}catch{X.error(`Could not unpublish entries`)}finally{C(!1)}}}async function Ee(){if(!(!e||S)){C(!0);try{await Promise.all(ye.map(t=>fetch(`/cms/admin/entries/${e}/${t}`,{method:`DELETE`,credentials:`include`}))),X.success(`Entries deleted`),T(!1),x(new Set),ie()}catch{X.error(`Could not delete entries`)}finally{C(!1)}}}function De(t){y(t),e&&B0(e,t).catch(()=>{}),u(1)}if(N||!_)return(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]});if(!M)return null;let Oe=Math.ceil((re?.total??0)/(re?.limit??20));return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`mb-6 flex items-center justify-between gap-4`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-6`,children:M.name}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(q,{variant:`outline`,onClick:()=>g(!0),className:`gap-1.5`,children:[(0,H.jsx)(Uo,{className:`size-3.5`}),`View config`]}),ce&&(0,H.jsxs)(q,{onClick:()=>t(`/content/${e}/new`),className:`gap-2`,children:[(0,H.jsx)(Lo,{className:`size-4`}),`New entry`]})]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsxs)(`div`,{className:`mb-3 flex items-center gap-3`,children:[(0,H.jsxs)(V_,{value:c||`all`,onValueChange:e=>f(e===`all`?``:e),children:[(0,H.jsx)(W_,{className:`h-10 min-h-10 max-h-10 w-38`,children:(0,H.jsx)(U_,{placeholder:`All statuses`})}),(0,H.jsxs)(q_,{children:[(0,H.jsx)(Y_,{value:`all`,children:`All statuses`}),ae.map(e=>(0,H.jsx)(Y_,{value:e,children:O0[e]},e))]})]}),(0,H.jsxs)(`div`,{className:`relative w-52`,children:[(0,H.jsx)(Ho,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,H.jsx)(Sw,{className:`pl-9`,placeholder:`Search entries…`,value:E,onChange:e=>D(e.target.value)})]}),!V&&re!=null&&(0,H.jsxs)(`span`,{className:`text-muted-foreground text-sm`,children:[(re?.data??[]).length,` / `,re.total,` `,re.total===1?`entry`:`entries`]})]}),V&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading entries…`})]}),!V&&(re?.data??[]).length===0&&!O&&!c&&(0,H.jsxs)(XE,{className:`border`,children:[(0,H.jsxs)(ZE,{children:[(0,H.jsx)($E,{variant:`icon`,children:(0,H.jsx)(ao,{})}),(0,H.jsx)(eD,{children:`No entries yet`}),(0,H.jsxs)(tD,{children:[`Create your first entry for `,M.name,`.`]})]}),(0,H.jsx)(nD,{children:ce&&(0,H.jsx)(q,{onClick:()=>t(`/content/${e}/new`),children:`New entry`})})]}),!V&&(re?.data??[]).length===0&&(O||c)&&(0,H.jsx)(XE,{className:`border`,children:(0,H.jsxs)(ZE,{children:[(0,H.jsx)($E,{variant:`icon`,children:(0,H.jsx)(Ho,{})}),(0,H.jsx)(eD,{children:`No results`}),(0,H.jsx)(tD,{children:O&&c?`No entries match "${O}" with status "${O0[c]}".`:O?`No entries match "${O}".`:`No entries with status "${O0[c]}".`})]})}),!V&&(re?.data??[]).length>0&&(0,H.jsxs)(bp,{children:[!ue&&b.size>0&&(0,H.jsxs)(`div`,{className:`mb-3 flex items-center gap-3 rounded-lg border border-border bg-muted/50 px-4 py-2.5`,children:[(0,H.jsxs)(`span`,{className:`text-sm font-medium`,children:[b.size,` selected`]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2 ml-auto`,children:[(0,H.jsxs)(q,{variant:`outline`,size:`sm`,disabled:S||ve.length===0,onClick:Te,children:[S?(0,H.jsx)(zC,{className:`size-3.5`}):null,`Unpublish`]}),le&&(0,H.jsxs)(q,{variant:`destructive`,size:`sm`,disabled:S||ye.length===0,onClick:()=>T(!0),children:[(0,H.jsx)(Zo,{className:`size-3.5`}),`Delete`]})]})]}),(0,H.jsx)(`div`,{className:`overflow-hidden rounded-lg border border-border`,children:(0,H.jsxs)(BC,{className:`w-full`,children:[(0,H.jsx)(VC,{className:`border-b border-border font-bold uppercase`,children:(0,H.jsxs)(UC,{className:`hover:bg-transparent`,children:[(0,H.jsx)(WC,{className:`w-10 px-4 py-3`,children:!ue&&(0,H.jsx)(PT,{checked:xe?!0:Se?`indeterminate`:!1,onCheckedChange:Ce,"aria-label":`Select all`})}),z.map(e=>(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:A0(e.field.name)},e.field.name)),R.visibleSystemCols.includes(`created_at`)&&(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:`Created`}),R.visibleSystemCols.includes(`updated_at`)&&(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:`Updated`}),R.visibleSystemCols.includes(`pub_sch`)&&(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:`Published`}),(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:`Status`}),(0,H.jsx)(WC,{className:`w-10 px-4 py-3`}),(0,H.jsx)(WC,{className:`w-28 px-4 py-3`})]})}),(0,H.jsx)(HC,{className:`divide-y divide-border`,children:(re?.data??[]).map(r=>(0,H.jsxs)(UC,{className:`group transition-colors ${b.has(r.id)?`bg-muted/40`:`hover:bg-muted/30`} ${de&&!me(r)?`opacity-60`:``} ${he(r)?`opacity-60`:``}`,children:[(0,H.jsx)(GC,{className:`w-10 px-4 py-3`,children:!ue&&(0,H.jsx)(PT,{checked:b.has(r.id),onCheckedChange:()=>we(r.id),"aria-label":`Select row`})}),z.map(e=>{let t=r[e.field.name],n=t;return e.field.type===`relation`?n=t:e.displayField&&(n=t&&typeof t==`object`?t[e.displayField]:t&&typeof t==`object`?t.title:t),(0,H.jsx)(GC,{className:`px-4 py-3`,children:(0,H.jsx)(q0,{field:e.field,value:n,displayField:e.displayField})},e.field.name)}),R.visibleSystemCols.includes(`created_at`)&&(0,H.jsx)(GC,{className:`px-4 py-3 text-muted-foreground whitespace-nowrap`,children:ov(r.created_at,n)}),R.visibleSystemCols.includes(`updated_at`)&&(0,H.jsx)(GC,{className:`px-4 py-3 text-muted-foreground whitespace-nowrap`,children:ov(r.updated_at,n)}),R.visibleSystemCols.includes(`pub_sch`)&&(0,H.jsx)(GC,{className:`px-4 py-3 text-muted-foreground whitespace-nowrap`,children:r.status===`scheduled`&&r.scheduled_for?ov(r.scheduled_for,n):r.published_at?ov(r.published_at,n):`—`}),(0,H.jsx)(GC,{className:`px-4 py-3`,children:(()=>{let e=I&&ne?.checkStaleDrafts&&r.status===`draft`?M0(r.updated_at):0,t=!!ne?.checkStaleDrafts&&r.status===`draft`&&e>=(te?.staleDraftDays??30);return(0,H.jsx)(J0,{entry:r,fields:M.fields,isStaleDraft:t})})()}),(0,H.jsx)(GC,{className:`px-4 py-3`,children:(()=>{let e=ne?.requiredTextFields?.filter(e=>N0(r[e]))??[],t=ne?.requiredMediaFields?.filter(e=>P0(r[e]))??[],n=[...e.length>0?[`Missing text: ${e.map(A0).join(`, `)}`]:[],...t.length>0?[`Missing media: ${t.map(A0).join(`, `)}`]:[]],i=n.length>0;return!I||!ne?null:(0,H.jsx)(W0,{hasIssues:i,title:n.length>0?`Content health indicator · ${n.join(` · `)}`:`Content health indicator · All configured text and media checks passed`})})()}),(0,H.jsx)(GC,{className:`px-4 py-3`,children:(0,H.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,H.jsx)(V0,{entry:r}),ue?(0,H.jsx)(q,{size:`icon`,variant:`ghost`,onClick:()=>t(`/content/${e}/${r.id}`),className:`flex size-8 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(no,{className:`size-3.5`})}):(0,H.jsxs)(H.Fragment,{children:[ge(r)&&(0,H.jsx)(q,{size:`icon`,variant:`ghost`,onClick:()=>t(`/content/${e}/${r.id}`),className:`flex size-8 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(Io,{className:`size-3.5`})}),_e(r)&&(0,H.jsx)(q,{size:`icon`,variant:`ghost`,onClick:()=>m(r.id),className:`flex size-8 items-center justify-center rounded text-destructive hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(Zo,{className:`size-3.5`})})]})]})})]},r.id))})]})}),(0,H.jsx)(`div`,{className:`mt-4`,children:(0,H.jsx)(w0,{page:o,totalPages:Oe,limit:l,onPageChange:u,onLimitChange:d})})]}),_&&(0,H.jsx)(U0,{open:h,onOpenChange:g,allFields:M.fields,config:_,onApply:De}),(0,H.jsx)(Jh,{open:!!p,onOpenChange:e=>{e||m(null)},children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Delete entry?`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone.`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>m(null),children:`Cancel`}),(0,H.jsxs)(q,{variant:`destructive`,onClick:oe,disabled:A,children:[A?(0,H.jsx)(zC,{className:`size-4`}):null,`Delete`]})]})]})}),(0,H.jsx)(Jh,{open:w,onOpenChange:e=>{e||T(!1)},children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsxs)(tg,{children:[`Delete `,b.size,` `,b.size===1?`entry`:`entries`,`?`]})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone.`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>T(!1),children:`Cancel`}),(0,H.jsxs)(q,{variant:`destructive`,onClick:Ee,disabled:S,children:[S?(0,H.jsx)(zC,{className:`size-4`}):null,`Delete`]})]})]})})]})]})}function X0(){let{slug:e}=gr(),t=fr(),{user:n}=_a(),{data:r,loading:i}=fs(e?`/cms/admin/content-types/${e}`:null),a=r?.kind===`single`,{data:o,loading:s,error:c}=fs(a&&e?`/cms/admin/content-types/${e}/single`:null);return(0,v.useEffect)(()=>{if(!a||s)return;let r=n?.permissions??[],i=r.includes(`*`)||r.includes(`entries:write`);o?t(`/content/${e}/${o.id}`,{replace:!0}):c&&i&&t(`/content/${e}/new`,{replace:!0})},[a,s,o,c,e,t,n?.permissions]),i||a&&s?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]}):a?o?null:(0,H.jsx)(`div`,{className:`py-12 text-sm text-muted-foreground`,children:`No entry is available for this Single Type.`}):(0,H.jsx)(Y0,{})}function Z0(){let e=fr(),{data:t,loading:n}=fs(`/cms/admin/content-types`);return(0,v.useEffect)(()=>{t&&t.length>0&&e(`/content-types/${t[0].slug}`,{replace:!0})},[t,e]),n||t&&t.length>0?null:(0,H.jsxs)(XE,{className:`border`,children:[(0,H.jsxs)(ZE,{children:[(0,H.jsx)($E,{variant:`icon`,children:(0,H.jsx)(So,{})}),(0,H.jsx)(eD,{children:`No content types yet`}),(0,H.jsx)(tD,{children:`Content types define the structure of your data. Create your first one to start managing content.`})]}),(0,H.jsx)(nD,{children:(0,H.jsx)(q,{onClick:()=>e(`/content-types/new`),children:`Create content type`})})]})}var Q0=[{type:`string`,icon:$o,label:`Text`,color:`text-blue-600`,bg:`bg-blue-50`},{type:`text`,icon:Jo,label:`Long Text`,color:`text-sky-600`,bg:`bg-sky-50`},{type:`richtext`,icon:ao,label:`Rich Text`,color:`text-violet-600`,bg:`bg-violet-50`},{type:`number`,subtype:`integer`,icon:po,label:`Integer`,color:`text-orange-600`,bg:`bg-orange-50`},{type:`number`,subtype:`float`,icon:po,label:`Decimal`,color:`text-orange-600`,bg:`bg-orange-50`},{type:`boolean`,icon:Xo,label:`Boolean`,color:`text-emerald-600`,bg:`bg-emerald-50`},{type:`datetime`,icon:Ra,label:`Date & Time`,color:`text-amber-600`,bg:`bg-amber-50`},{type:`media`,icon:vo,label:`Media`,color:`text-rose-600`,bg:`bg-rose-50`},{type:`mixed`,icon:To,label:`Mixed Value`,color:`text-fuchsia-600`,bg:`bg-fuchsia-50`}],$0={string:`half`,text:`full`,richtext:`full`,number:`third`,boolean:`third`,datetime:`half`,media:`half`,mixed:`half`},e2={type:`string`,subtype:void 0,name:``,required:!1,allowedTypes:[],width:`half`},t2=[{type:`string`,icon:$o,label:`Text (string)`,description:`Titles, names, labels`,color:`text-blue-600`,bg:`bg-blue-50`},{type:`text`,icon:Jo,label:`Long text (string)`,description:`Plain text, paragraphs`,color:`text-sky-600`,bg:`bg-sky-50`},{type:`richtext`,icon:ao,label:`Rich text (blocks)`,description:`Formatted HTML content`,color:`text-violet-600`,bg:`bg-violet-50`},{type:`uid`,icon:so,label:`UID`,description:`Unique slug from a field`,color:`text-teal-600`,bg:`bg-teal-50`},{type:`boolean`,icon:Xo,label:`Boolean`,description:`True or false`,color:`text-emerald-600`,bg:`bg-emerald-50`},{type:`datetime`,icon:Ra,label:`Date & time`,description:`Timestamps and dates`,color:`text-amber-600`,bg:`bg-amber-50`},{type:`media`,icon:vo,label:`Media`,description:`Images, videos or files`,color:`text-rose-600`,bg:`bg-rose-50`},{type:`media-gallery`,icon:wo,label:`Media Gallery`,description:`Multiple images for galleries`,color:`text-pink-600`,bg:`bg-pink-50`},{type:`array`,icon:To,label:`Array`,description:`Repeatable list of items`,color:`text-cyan-600`,bg:`bg-cyan-50`},{type:`navigation`,icon:Oo,label:`Navigation`,description:`Nested navigation items`,color:`text-cyan-600`,bg:`bg-cyan-50`},{type:`number`,subtype:`integer`,icon:po,label:`Integer (number)`,description:`Whole numbers`,color:`text-orange-600`,bg:`bg-orange-50`},{type:`number`,subtype:`float`,icon:po,label:`Decimal (number)`,description:`Numbers with decimals`,color:`text-orange-600`,bg:`bg-orange-50`},{type:`relation`,icon:Eo,label:`Relation`,description:`Link to another content type`,color:`text-indigo-600`,bg:`bg-indigo-50`}],n2=[{value:`image`,label:`Images`},{value:`video`,label:`Videos`},{value:`audio`,label:`Audio`},{value:`document`,label:`Documents`}],r2=[{value:`many-to-one`,label:`Many-to-One`,description:`Many of these → one of the other`},{value:`one-to-one`,label:`One-to-One`,description:`One of these ↔ one of the other`},{value:`many-to-many`,label:`Many-to-Many`,description:`Many of these ↔ many of the other`}],i2=new Set(`all.analyse.analyze.and.any.array.as.asc.asymmetric.authorization.between.binary.both.case.cast.check.collate.column.constraint.create.cross.current_catalog.current_date.current_role.current_schema.current_time.current_timestamp.current_user.default.deferrable.desc.distinct.do.else.end.except.false.fetch.for.foreign.from.grant.group.having.in.initially.intersect.into.lateral.leading.limit.localtime.localtimestamp.not.null.offset.on.only.or.order.placing.primary.references.returning.select.session_user.some.symmetric.table.then.to.trailing.true.union.unique.user.using.variadic.when.where.window.with`.split(`.`));function a2(e){return i2.has(e.toLowerCase())}var o2={name:``,required:!1,relationType:`many-to-one`,relatedTable:``,relatedSlug:``,targetField:``,allowedTypes:[],arrayFields:[]};function s2({open:e,onOpenChange:t,existingNames:n,availableContentTypes:r,stringFields:i,initialField:a,onConfirm:o}){let[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(o2),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(null),[h,g]=(0,v.useState)(null),[_,y]=(0,v.useState)(``),[b,x]=(0,v.useState)(``),S=!!a;(0,v.useEffect)(()=>{e?a&&(c(t2.find(e=>e.type===a.type&&(e.subtype??void 0)===(a.subtype??void 0))??null),u({name:a.name,required:a.required??!1,relationType:a.relationType??`many-to-one`,relatedTable:a.relatedTable??``,relatedSlug:a.relatedSlug??``,targetField:a.targetField??``,allowedTypes:a.allowedTypes??[],arrayFields:a.arrayFields??[]})):(c(null),u(o2),f(``),m(null),g(null),y(``),x(``))},[e,a]);function C(e){t(e)}function w(e){c(e),u(o2),f(``),m(null),y(``),x(``)}function T(){S||(c(null),u(o2),f(``),m(null),g(null),y(``),x(``))}function E(){m({...e2}),g(null),y(``)}function D(e){m(t=>t?{...t,type:e.type,subtype:e.subtype,width:$0[e.type]}:{...e2,type:e.type,subtype:e.subtype,width:$0[e.type]})}function O(){if(!p)return;let e=p.name.trim();if(!e){y(`Name is required`);return}if(!/^[a-z][a-z0-9_]*$/.test(e)){y(`Lowercase letters, digits and underscores only`);return}if(a2(e)){y(`This name is reserved by SQL. Choose another one.`);return}if(l.arrayFields.some((t,n)=>t.name===e&&n!==h)){y(`A sub-field with this name already exists`);return}let t={name:e,type:p.type,subtype:p.subtype,required:p.required||void 0,allowedTypes:p.type===`media`&&p.allowedTypes.length>0?p.allowedTypes:void 0,width:p.width};u(e=>({...e,arrayFields:h===null?[...e.arrayFields,t]:e.arrayFields.map((e,n)=>n===h?t:e)})),m(null),g(null),y(``)}function k(e){p||u(t=>({...t,arrayFields:t.arrayFields.filter(t=>t.name!==e)}))}function A(e){if(p)return;let t=l.arrayFields[e];t&&(m({type:t.type,subtype:t.subtype,name:t.name,required:!!t.required,allowedTypes:t.allowedTypes??[],width:t.width??$0[t.type]}),g(e),y(``))}function j(e,t){if(p)return;let n=e+t;n<0||n>=l.arrayFields.length||(u(t=>{let r=[...t.arrayFields];return[r[e],r[n]]=[r[n],r[e]],{...t,arrayFields:r}}),x(``))}function M(){let e=l.arrayFields.map(e=>e.name.trim());return e.some(e=>!e)?(x(`All sub-fields must have a name.`),!1):e.some(e=>!/^[a-z][a-z0-9_]*$/.test(e))?(x(`Sub-field names must use lowercase letters, digits and underscores.`),!1):e.some(e=>a2(e))?(x(`One or more sub-field names are reserved by SQL.`),!1):new Set(e).size===e.length?!0:(x(`Sub-field names must be unique.`),!1)}function N(){let e=l.name.trim();return e?/^[a-z][a-z0-9_]*$/.test(e)?a2(e)?(f(`This name is reserved by SQL. Choose another one.`),!1):n.includes(e)&&e!==a?.name?(f(`A field with this name already exists`),!1):!0:(f(`Lowercase letters, digits and underscores only`),!1):(f(`Name is required`),!1)}function P(){!s||!N()||s.type===`array`&&!M()||(o({name:l.name.trim(),type:s.type,subtype:s.subtype,required:l.required||void 0,relationType:s.type===`relation`?l.relationType:void 0,relatedTable:s.type===`relation`?l.relatedTable:void 0,relatedSlug:s.type===`relation`?l.relatedSlug:void 0,targetField:s.type===`uid`?l.targetField:void 0,allowedTypes:s.type===`media`&&l.allowedTypes.length>0?l.allowedTypes:s.type===`media-gallery`?[`image`]:void 0,arrayFields:s.type===`array`?l.arrayFields.map(e=>({...e,name:e.name.trim()})):void 0,width:a?.width??o0[s.type]}),C(!1))}let F=!!s,I=s?.label.replace(/\s*\(.*?\)/,``)??``,L=S?`Edit field`:F?`${I} field`:`Add a field`;return(0,H.jsx)(Jh,{open:e,onOpenChange:C,children:(0,H.jsxs)(Qh,{className:F?s?.type===`array`?`max-w-lg`:`max-w-md`:`max-w-3xl`,children:[(0,H.jsx)($h,{children:(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[F&&!S&&(0,H.jsx)(`button`,{type:`button`,onClick:T,className:`flex size-7 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(Ma,{className:`size-4`})}),(0,H.jsx)(tg,{children:L})]})}),!F&&(0,H.jsx)(`div`,{className:`grid grid-cols-3 gap-2 pt-1`,children:t2.map(e=>{let t=e.icon,n=`${e.type}${e.subtype??``}`;return(0,H.jsxs)(`button`,{type:`button`,disabled:e.disabled,onClick:()=>!e.disabled&&w(e),className:`flex flex-col items-start gap-2 rounded-lg border border-border p-3 text-left transition-colors hover:border-primary hover:bg-accent disabled:cursor-not-allowed disabled:opacity-40`,children:[(0,H.jsx)(`div`,{className:`flex size-8 items-center justify-center rounded-md ${e.bg}`,children:(0,H.jsx)(t,{className:`size-4 ${e.color}`})}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-sm font-medium`,children:e.label}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.disabled?`Coming soon`:e.description})]})]},n)})}),F&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-4 pt-1`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`field-name`,children:`Field name`}),(0,H.jsx)(Sw,{id:`field-name`,placeholder:`e.g. article_title`,value:l.name,onChange:e=>{u(t=>({...t,name:e.target.value})),f(``)},onKeyDown:e=>{e.key===`Enter`&&P()}}),d&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:d}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Lowercase letters, digits and underscores. Must start with a letter.`})]}),s?.type===`media`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(Y,{children:`Allowed file types`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground -mt-1`,children:`Leave all unchecked to allow any file type.`}),(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:n2.map(({value:e,label:t})=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(PT,{id:`media-type-${e}`,checked:l.allowedTypes.includes(e),onCheckedChange:t=>u(n=>({...n,allowedTypes:t?[...n.allowedTypes,e]:n.allowedTypes.filter(t=>t!==e)}))}),(0,H.jsx)(Y,{htmlFor:`media-type-${e}`,className:`cursor-pointer font-normal`,children:t})]},e))})]}),s?.type===`array`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(Y,{children:`Sub-fields`}),!p&&(0,H.jsxs)(`button`,{type:`button`,onClick:E,className:`flex items-center gap-1 rounded px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground`,children:[(0,H.jsx)(Lo,{className:`size-3`}),`Add sub-field`]})]}),l.arrayFields.length===0&&!p&&(0,H.jsx)(`p`,{className:`rounded-md border border-dashed border-border px-3 py-4 text-center text-xs text-muted-foreground`,children:`No sub-fields yet. Add at least one to make this field useful.`}),l.arrayFields.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-1.5`,children:l.arrayFields.map((e,t)=>{let n=Q0.find(t=>t.type===e.type&&(t.subtype??void 0)===(e.subtype??void 0)),r=n?.icon??$o;return(0,H.jsxs)(`div`,{className:`${a0[e.width??`full`]} rounded-md border border-dashed border-border p-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,H.jsx)(`div`,{className:`mt-0.5 flex size-5 shrink-0 items-center justify-center rounded ${n?.bg??`bg-muted`}`,children:(0,H.jsx)(r,{className:`size-3 ${n?.color??`text-muted-foreground`}`})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsxs)(`p`,{className:`truncate text-xs font-medium`,children:[e.name,e.required&&(0,H.jsx)(`span`,{className:`ml-0.5 text-destructive`,children:`*`})]}),(0,H.jsx)(`p`,{className:`truncate text-[10px] text-muted-foreground`,children:n?.label})]})]}),(0,H.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1`,children:[(0,H.jsx)(`button`,{type:`button`,title:`Move up`,onClick:()=>j(t,-1),disabled:!!p||t===0,className:`flex size-6 items-center justify-center rounded border border-border text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Wa,{className:`size-3`})}),(0,H.jsx)(`button`,{type:`button`,title:`Move down`,onClick:()=>j(t,1),disabled:!!p||t===l.arrayFields.length-1,className:`flex size-6 items-center justify-center rounded border border-border text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Va,{className:`size-3`})}),(0,H.jsx)(`button`,{type:`button`,title:`Edit sub-field`,onClick:()=>A(t),disabled:!!p,className:`flex size-6 items-center justify-center rounded border border-border text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Io,{className:`size-3`})}),(0,H.jsx)(`button`,{type:`button`,title:`Delete sub-field`,onClick:()=>k(e.name),disabled:!!p,className:`flex size-6 items-center justify-center rounded border border-border text-muted-foreground hover:text-destructive disabled:opacity-30`,children:(0,H.jsx)(Zo,{className:`size-3`})})]})]},e.name)})}),b&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:b}),p&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-lg border border-border bg-muted/30 p-3`,children:[(0,H.jsx)(`div`,{className:`grid grid-cols-4 gap-1.5`,children:Q0.map(e=>{let t=e.icon,n=`${e.type}${e.subtype??``}`;return(0,H.jsxs)(`button`,{type:`button`,onClick:()=>D(e),className:[`flex items-center gap-1.5 rounded-md border px-2 py-1.5 text-left transition-colors`,p.type===e.type&&(p.subtype??void 0)===(e.subtype??void 0)?`border-primary bg-accent`:`border-border hover:border-primary hover:bg-accent`].join(` `),children:[(0,H.jsx)(`div`,{className:`flex size-5 shrink-0 items-center justify-center rounded ${e.bg}`,children:(0,H.jsx)(t,{className:`size-3 ${e.color}`})}),(0,H.jsx)(`span`,{className:`truncate text-xs font-medium`,children:e.label})]},n)})}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,H.jsx)(Sw,{placeholder:`sub_field_name`,value:p.name,onChange:e=>{m(t=>t&&{...t,name:e.target.value}),y(``)},onKeyDown:e=>{e.key===`Enter`&&O()}}),_&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:_})]}),p.type===`media`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(Y,{children:`Allowed file types`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground -mt-1`,children:`Leave all unchecked to allow any file type.`}),(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:n2.map(({value:e,label:t})=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(PT,{id:`array-media-type-${e}`,checked:p.allowedTypes.includes(e),onCheckedChange:t=>m(n=>n&&{...n,allowedTypes:t?[...n.allowedTypes,e]:n.allowedTypes.filter(t=>t!==e)})}),(0,H.jsx)(Y,{htmlFor:`array-media-type-${e}`,className:`cursor-pointer font-normal`,children:t})]},e))})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(PT,{id:`subfield-required`,checked:p.required,onCheckedChange:e=>m(t=>t&&{...t,required:!!e})}),(0,H.jsx)(Y,{htmlFor:`subfield-required`,className:`cursor-pointer font-normal text-sm`,children:`Required`})]}),(0,H.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,H.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>{m(null),g(null),y(``)},children:`Cancel`}),(0,H.jsx)(q,{size:`sm`,onClick:O,children:h===null?`Add`:`Save`})]})]})]})]}),s?.type===`uid`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Source field`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`The slug will be auto-generated from this field's value.`}),i.length>0?(0,H.jsxs)(V_,{value:l.targetField,onValueChange:e=>u(t=>({...t,targetField:e})),children:[(0,H.jsx)(W_,{children:(0,H.jsx)(U_,{placeholder:`Select a text field`})}),(0,H.jsx)(q_,{children:i.map(e=>(0,H.jsx)(Y_,{value:e.name,children:e.name},e.name))})]}):(0,H.jsx)(`p`,{className:`rounded-md border border-border bg-muted px-3 py-2 text-xs text-muted-foreground`,children:`No short text fields available. Add a string field first.`})]}),s?.type===`relation`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Relation type`}),(0,H.jsx)(`div`,{className:`grid grid-cols-1 gap-1.5`,children:r2.map(e=>(0,H.jsx)(`button`,{type:`button`,onClick:()=>u(t=>({...t,relationType:e.value})),className:`flex items-start gap-3 rounded-md border px-3 py-2 text-left transition-colors hover:border-primary ${l.relationType===e.value?`border-primary bg-accent`:`border-border`}`,children:(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-sm font-medium leading-none`,children:e.label}),(0,H.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:e.description})]})},e.value))})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Related content type`}),r.length>0?(0,H.jsxs)(V_,{value:l.relatedTable,onValueChange:e=>{let t=r.find(t=>t.tableName===e);u(n=>({...n,relatedTable:e,relatedSlug:t?.slug??``}))},children:[(0,H.jsx)(W_,{children:(0,H.jsx)(U_,{placeholder:`Select a content type`})}),(0,H.jsx)(q_,{children:r.map(e=>(0,H.jsx)(Y_,{value:e.tableName,children:e.name},e.tableName))})]}):(0,H.jsx)(Sw,{placeholder:`table_name`,value:l.relatedTable,onChange:e=>u(t=>({...t,relatedTable:e.target.value}))})]})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(PT,{id:`field-required`,checked:l.required,onCheckedChange:e=>u(t=>({...t,required:!!e}))}),(0,H.jsx)(Y,{htmlFor:`field-required`,className:`cursor-pointer font-normal`,children:`Required field`})]}),(0,H.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-border pt-3`,children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>C(!1),children:`Cancel`}),(0,H.jsx)(q,{onClick:P,children:S?`Save changes`:`Add field`})]})]})]})})}function c2(e){return e.toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/^-+|-+$/g,``)}function l2(e){return e.replace(/-/g,`_`)}function u2({field:e,onWidthChange:t,onArraySubFieldWidthChange:n,onEdit:r,onDelete:i}){let{attributes:a,listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=fM({id:e.name});return(0,H.jsx)(`div`,{ref:s,style:{transform:Tk.Transform.toString(c),transition:l,opacity:u?.5:1},className:a0[e.width??`full`],children:(0,H.jsx)(l0,{field:e,dragListeners:o,dragAttributes:a,onWidthChange:t,onArraySubFieldWidthChange:n,onEdit:r,onDelete:i})})}function d2(){let{slug:e}=gr(),t=fr(),n=!e,{user:r}=_a(),i=r?.permissions??[],a=i.includes(`*`)||i.includes(`content-types:delete`),{data:o,loading:s}=fs(n?``:`/cms/admin/content-types/${e}`),{data:c,refetch:l}=fs(`/cms/admin/content-types`),{data:u}=fs(`/cms/admin/client-settings`),{loading:d,request:f}=xw(),{loading:p,request:m}=xw(),[h,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(``),[b,x]=(0,v.useState)(`collection`),[S,C]=(0,v.useState)(!0),[w,T]=(0,v.useState)([]),[E,D]=(0,v.useState)(!1),[O,k]=(0,v.useState)(null),[A,j]=(0,v.useState)(!1),M=(0,v.useRef)({name:``,slug:``,previewEnabled:!0,fields:`[]`});(0,v.useEffect)(()=>(window.addEventListener(`plank:content-types-changed`,l),()=>window.removeEventListener(`plank:content-types-changed`,l)),[l]),(0,v.useEffect)(()=>{if(n){g(``),y(``),x(`collection`),C(!0),T([]),M.current={name:``,slug:``,previewEnabled:!0,fields:`[]`};return}o&&(g(o.name),y(o.slug),x(o.kind??`collection`),C(o.previewEnabled??!0),T(o.fields),M.current={name:o.name,slug:o.slug,previewEnabled:o.previewEnabled??!0,fields:JSON.stringify(o.fields)})},[o,n]),(0,v.useEffect)(()=>{n&&h&&y(c2(h))},[n,h]);let N=h!==M.current.name||S!==M.current.previewEnabled||JSON.stringify(w)!==M.current.fields,P=String(u?.preview_enabled??`false`).toLowerCase()===`true`&&b===`collection`,F=(0,v.useRef)(!1),I=Ir((0,v.useCallback)(()=>F.current?!1:N,[N])),L=Vk(Bk(VA,{activationConstraint:{distance:5}}));function R(e){let{active:t,over:n}=e;!n||t.id===n.id||T(e=>qj(e,e.findIndex(e=>e.name===t.id),e.findIndex(e=>e.name===n.id)))}function ee(e){T(t=>[...t,e])}function te(e){T(t=>t.map(t=>t.name===O?.name?e:t)),k(null)}function ne(e){T(t=>t.filter(t=>t.name!==e))}function z(e,t){T(n=>n.map(n=>n.name===e?{...n,width:t}:n))}function B(e,t,n){T(r=>r.map(r=>r.name!==e||r.type!==`array`||!r.arrayFields?r:{...r,arrayFields:r.arrayFields.map(e=>e.name===t?{...e,width:n}:e)}))}async function re(){if(!h.trim()||!_.trim())return;let r=n?{name:h.trim(),slug:_,kind:b,previewEnabled:S,tableName:l2(_),fields:w}:{name:h.trim(),slug:_,previewEnabled:S,tableName:l2(_),fields:w};try{let i=await f(n?`/cms/admin/content-types`:`/cms/admin/content-types/${e}`,n?`POST`:`PUT`,r);g(i.name),y(i.slug),C(i.previewEnabled??!0),T(i.fields),M.current={name:i.name,slug:i.slug,previewEnabled:i.previewEnabled??!0,fields:JSON.stringify(i.fields)},window.dispatchEvent(new CustomEvent(`plank:content-types-changed`)),X.success(`Content type saved`),(n||i.slug!==e)&&(F.current=!0,t(`/content-types/${i.slug}`,{replace:!0}))}catch{X.error(`Could not save content type`)}}async function V(){if(a)try{await m(`/cms/admin/content-types/${e}`,`DELETE`),X.success(`Content type deleted`),window.dispatchEvent(new CustomEvent(`plank:content-types-changed`)),t(`/content-types`,{replace:!0})}catch{X.error(`Could not delete content type`)}}let ie=(c??[]).filter(t=>t.slug!==e).map(e=>({tableName:e.tableName,slug:e.slug,name:e.name})),ae=w.filter(e=>e.type===`string`),oe=w.map(e=>e.name);return mD(`mod+s`,re,{enabled:N&&!d&&!!h.trim(),label:`Save content type`}),mD(`mod+k`,()=>D(!0),{label:`Add field`}),!n&&s?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,H.jsx)(`input`,{value:h,onChange:e=>g(e.target.value),placeholder:`Content type name`,className:`bg-transparent text-2xl font-bold outline-none placeholder:text-muted-foreground/40 -mt-2`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`API ID:`}),(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:_||`—`})]}),n?(0,H.jsxs)(`div`,{className:`flex items-center gap-1 rounded-md border p-0.5`,children:[(0,H.jsxs)(`button`,{type:`button`,onClick:()=>x(`collection`),className:`flex items-center gap-1.5 rounded px-2 py-0.5 text-xs font-medium transition-colors ${b===`collection`?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`}`,children:[(0,H.jsx)(ko,{className:`size-3`}),`Collection`]}),(0,H.jsxs)(`button`,{type:`button`,onClick:()=>x(`single`),className:`flex items-center gap-1.5 rounded px-2 py-0.5 text-xs font-medium transition-colors ${b===`single`?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`}`,children:[(0,H.jsx)(oo,{className:`size-3`}),`Single`]})]}):(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium text-muted-foreground ${b===`single`?`border-violet-500/30 bg-violet-500/10 text-violet-600 dark:text-violet-400`:``}`,children:[b===`single`?(0,H.jsx)(oo,{className:`size-3`}):(0,H.jsx)(ko,{className:`size-3`}),b===`single`?`Single`:`Collection`]}),P&&(0,H.jsxs)(`div`,{className:`ml-2 inline-flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,H.jsx)(lD,{id:`content-type-preview`,checked:S,onCheckedChange:C}),(0,H.jsx)(Y,{htmlFor:`content-type-preview`,className:`text-xs text-muted-foreground`,children:`Preview`})]})]})]}),(0,H.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[!n&&a&&(0,H.jsx)(q,{variant:`ghost`,size:`icon`,className:`text-muted-foreground hover:text-destructive`,onClick:()=>j(!0),disabled:p,children:(0,H.jsx)(Zo,{className:`size-4`})}),(0,H.jsxs)(q,{onClick:re,disabled:!N||d||!h.trim(),children:[d?(0,H.jsx)(zC,{className:`size-4`}):null,`Save`]})]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[w.length>0?(()=>{let e=w.filter(e=>e.relationType!==`one-to-many`),t=w.filter(e=>e.relationType===`one-to-many`);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[e.length>0&&(0,H.jsx)(Rj,{sensors:L,collisionDetection:Jk,onDragEnd:R,children:(0,H.jsx)(iM,{items:e.map(e=>e.name),strategy:eM,children:(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-3`,children:e.map(e=>(0,H.jsx)(u2,{field:e,onWidthChange:t=>z(e.name,t),onArraySubFieldWidthChange:(t,n)=>B(e.name,t,n),onEdit:()=>k(e),onDelete:()=>ne(e.name)},e.name))})})}),t.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-3`,children:t.map(e=>(0,H.jsx)(`div`,{className:`col-span-6`,children:(0,H.jsx)(l0,{field:e})},e.name))})]})})():(0,H.jsx)(XE,{className:`border`,children:(0,H.jsxs)(ZE,{children:[(0,H.jsx)($E,{variant:`icon`,children:(0,H.jsx)(So,{})}),(0,H.jsx)(eD,{children:`No fields yet`}),(0,H.jsx)(tD,{children:`Add your first field to define this content type's structure.`})]})}),(0,H.jsx)(`div`,{className:`mt-4`,children:(0,H.jsxs)(q,{variant:`outline`,onClick:()=>D(!0),className:`gap-2`,children:[(0,H.jsx)(Lo,{className:`size-4`}),`Add field`]})}),(0,H.jsx)(s2,{open:E,onOpenChange:D,existingNames:oe,availableContentTypes:ie,stringFields:ae,onConfirm:ee}),(0,H.jsx)(s2,{open:!!O,onOpenChange:e=>{e||k(null)},existingNames:oe,availableContentTypes:ie,stringFields:ae,initialField:O??void 0,onConfirm:te}),(0,H.jsx)(Jh,{open:A,onOpenChange:j,children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsxs)(tg,{children:[`Delete "`,h,`"?`]})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This will permanently delete the content type and all its entries. This action cannot be undone.`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>j(!1),children:`Cancel`}),(0,H.jsxs)(q,{variant:`destructive`,onClick:V,disabled:p,children:[p?(0,H.jsx)(zC,{className:`size-4`}):null,`Delete`]})]})]})}),(0,H.jsx)(Jh,{open:I.state===`blocked`,onOpenChange:()=>I.reset?.(),children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Unsaved changes`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`You have unsaved changes. Leave without saving?`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>I.reset?.(),children:`Stay`}),(0,H.jsx)(q,{variant:`destructive`,onClick:()=>I.proceed?.(),children:`Leave`})]})]})})]})]})}function f2(e,t){return typeof e==`function`?e(t):e}function p2(e,t){return n=>{t.setState(t=>({...t,[e]:f2(n,t[e])}))}}function m2(e){return e instanceof Function}function h2(e){return Array.isArray(e)&&e.every(e=>typeof e==`number`)}function g2(e,t){let n=[],r=e=>{e.forEach(e=>{n.push(e);let i=t(e);i!=null&&i.length&&r(i)})};return r(e),n}function _2(e,t,n){let r=[],i;return a=>{let o;n.key&&n.debug&&(o=Date.now());let s=e(a);if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug&&(c=Date.now()),i=t(...s),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=` `+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
|
|
220
|
+
`):``,markdownTokenizer:{name:`taskList`,level:`block`,start(e){let t=e.match(/^\s*[-+*]\s+\[([ xX])\]\s+/)?.index;return t===void 0?-1:t},tokenize(e,t,n){let r=e=>{let t=fq(e,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:e=>({indentLevel:e[1].length,mainContent:e[4],checked:e[3].toLowerCase()===`x`}),createToken:(e,t)=>({type:`taskItem`,raw:``,mainContent:e.mainContent,indentLevel:e.indentLevel,checked:e.checked,text:e.mainContent,tokens:n.inlineTokens(e.mainContent),nestedTokens:t}),customNestedParser:r},n);return t?[{type:`taskList`,raw:t.raw,items:t.items}]:n.blockTokens(e)},i=fq(e,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:e=>({indentLevel:e[1].length,mainContent:e[4],checked:e[3].toLowerCase()===`x`}),createToken:(e,t)=>({type:`taskItem`,raw:``,mainContent:e.mainContent,indentLevel:e.indentLevel,checked:e.checked,text:e.mainContent,tokens:n.inlineTokens(e.mainContent),nestedTokens:t}),customNestedParser:r},n);if(i)return{type:`taskList`,raw:i.raw,items:i.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:e})=>e.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});IK.create({name:`listKit`,addExtensions(){let e=[];return this.options.bulletList!==!1&&e.push(BZ.configure(this.options.bulletList)),this.options.listItem!==!1&&e.push(VZ.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(QZ.configure(this.options.listKeymap)),this.options.orderedList!==!1&&e.push(lQ.configure(this.options.orderedList)),this.options.taskItem!==!1&&e.push(dQ.configure(this.options.taskItem)),this.options.taskList!==!1&&e.push(fQ.configure(this.options.taskList)),e}});var pQ=` `,mQ=`\xA0`,hQ=vq.create({name:`paragraph`,priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:`block`,content:`inline*`,parseHTML(){return[{tag:`p`}]},renderHTML({HTMLAttributes:e}){return[`p`,pG(this.options.HTMLAttributes,e),0]},parseMarkdown:(e,t)=>{let n=e.tokens||[];if(n.length===1&&n[0].type===`image`)return t.parseChildren([n[0]]);let r=t.parseInline(n);return n.length===1&&n[0].type===`text`&&(n[0].raw===pQ||n[0].text===pQ||n[0].raw===mQ||n[0].text===mQ)&&r.length===1&&r[0].type===`text`&&(r[0].text===pQ||r[0].text===mQ)?t.createNode(`paragraph`,void 0,[]):t.createNode(`paragraph`,void 0,r)},renderMarkdown:(e,t,n)=>{if(!e)return``;let r=Array.isArray(e.content)?e.content:[];if(r.length===0){let e=Array.isArray(n?.previousNode?.content)?n.previousNode.content:[];return n?.previousNode?.type===`paragraph`&&e.length===0?pQ:``}return t.renderChildren(r)},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),gQ=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,_Q=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,vQ=DK.create({name:`strike`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`s`},{tag:`del`},{tag:`strike`},{style:`text-decoration`,consuming:!1,getAttrs:e=>e.includes(`line-through`)?{}:!1}]},renderHTML({HTMLAttributes:e}){return[`s`,pG(this.options.HTMLAttributes,e),0]},markdownTokenName:`del`,parseMarkdown:(e,t)=>t.applyMark(`strike`,t.parseInline(e.tokens||[])),renderMarkdown:(e,t)=>`~~${t.renderChildren(e)}~~`,addCommands(){return{setStrike:()=>({commands:e})=>e.setMark(this.name),toggleStrike:()=>({commands:e})=>e.toggleMark(this.name),unsetStrike:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[QK({find:gQ,type:this.type})]},addPasteRules(){return[bq({find:_Q,type:this.type})]}}),yQ=vq.create({name:`text`,group:`inline`,parseMarkdown:e=>({type:`text`,text:e.text||``}),renderMarkdown:e=>e.text||``}),bQ=DK.create({name:`underline`,addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:`u`},{style:`text-decoration`,consuming:!1,getAttrs:e=>e.includes(`underline`)?{}:!1}]},renderHTML({HTMLAttributes:e}){return[`u`,pG(this.options.HTMLAttributes,e),0]},parseMarkdown(e,t){return t.applyMark(this.name||`underline`,t.parseInline(e.tokens||[]))},renderMarkdown(e,t){return`++${t.renderChildren(e)}++`},markdownTokenizer:{name:`underline`,level:`inline`,start(e){return e.indexOf(`++`)},tokenize(e,t,n){let r=/^(\+\+)([\s\S]+?)(\+\+)/.exec(e);if(!r)return;let i=r[2].trim();return{type:`underline`,raw:r[0],text:i,tokens:n.inlineTokens(i)}}},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}});function xQ(e={}){return new aR({view(t){return new SQ(t,e)}})}var SQ=class{constructor(e,t){this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=t.width??1,this.color=t.color===!1?void 0:t.color||`black`,this.class=t.class,this.handlers=[`dragover`,`dragend`,`drop`,`dragleave`].map(t=>{let n=e=>{this[t](e)};return e.dom.addEventListener(t,n),{name:t,handler:n}})}destroy(){this.handlers.forEach(({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t))}update(e,t){this.cursorPos!=null&&t.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),t=!e.parent.inlineContent,n,r=this.editorView.dom,i=r.getBoundingClientRect(),a=i.width/r.offsetWidth,o=i.height/r.offsetHeight;if(t){let t=e.nodeBefore,r=e.nodeAfter;if(t||r){let e=this.editorView.nodeDOM(this.cursorPos-(t?t.nodeSize:0));if(e){let i=e.getBoundingClientRect(),a=t?i.bottom:i.top;t&&r&&(a=(a+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let s=this.width/2*o;n={left:i.left,right:i.right,top:a-s,bottom:a+s}}}}if(!n){let e=this.editorView.coordsAtPos(this.cursorPos),t=this.width/2*a;n={left:e.left-t,right:e.left+t,top:e.top,bottom:e.bottom}}let s=this.editorView.dom.offsetParent;this.element||(this.element=s.appendChild(document.createElement(`div`)),this.class&&(this.element.className=this.class),this.element.style.cssText=`position: absolute; z-index: 50; pointer-events: none;`,this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle(`prosemirror-dropcursor-block`,t),this.element.classList.toggle(`prosemirror-dropcursor-inline`,!t);let c,l;if(!s||s==document.body&&getComputedStyle(s).position==`static`)c=-pageXOffset,l=-pageYOffset;else{let e=s.getBoundingClientRect(),t=e.width/s.offsetWidth,n=e.height/s.offsetHeight;c=e.left-s.scrollLeft*t,l=e.top-s.scrollTop*n}this.element.style.left=(n.left-c)/a+`px`,this.element.style.top=(n.top-l)/o+`px`,this.element.style.width=(n.right-n.left)/a+`px`,this.element.style.height=(n.bottom-n.top)/o+`px`}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),n=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),r=n&&n.type.spec.disableDropCursor,i=typeof r==`function`?r(this.editorView,t,e):r;if(t&&!i){let e=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let t=gL(this.editorView.state.doc,e,this.editorView.dragging.slice);t!=null&&(e=t)}this.setCursor(e),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}},CQ=class e extends LL{constructor(e){super(e,e)}map(t,n){let r=t.resolve(n.map(this.head));return e.valid(r)?new e(r):LL.near(r)}content(){return Q.empty}eq(t){return t instanceof e&&t.head==this.head}toJSON(){return{type:`gapcursor`,pos:this.head}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for GapCursor.fromJSON`);return new e(t.resolve(n.pos))}getBookmark(){return new wQ(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!EQ(e)||!DQ(e))return!1;let n=t.type.spec.allowGapCursor;if(n!=null)return n;let r=t.contentMatchAt(e.index()).defaultType;return r&&r.isTextblock}static findGapCursorFrom(t,n,r=!1){search:for(;;){if(!r&&e.valid(t))return t;let i=t.pos,a=null;for(let r=t.depth;;r--){let o=t.node(r);if(n>0?t.indexAfter(r)<o.childCount:t.index(r)>0){a=o.child(n>0?t.indexAfter(r):t.index(r)-1);break}else if(r==0)return null;i+=n;let s=t.doc.resolve(i);if(e.valid(s))return s}for(;;){let o=n>0?a.firstChild:a.lastChild;if(!o){if(a.isAtom&&!a.isText&&!UL.isSelectable(a)){t=t.doc.resolve(i+a.nodeSize*n),r=!1;continue search}break}a=o,i+=n;let s=t.doc.resolve(i);if(e.valid(s))return s}return null}}};CQ.prototype.visible=!1,CQ.findFrom=CQ.findGapCursorFrom,LL.jsonID(`gapcursor`,CQ);var wQ=class e{constructor(e){this.pos=e}map(t){return new e(t.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return CQ.valid(t)?new CQ(t):LL.near(t)}};function TQ(e){return e.isAtom||e.spec.isolating||e.spec.createGapCursor}function EQ(e){for(let t=e.depth;t>=0;t--){let n=e.index(t),r=e.node(t);if(n==0){if(r.type.spec.isolating)return!0;continue}for(let e=r.child(n-1);;e=e.lastChild){if(e.childCount==0&&!e.inlineContent||TQ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function DQ(e){for(let t=e.depth;t>=0;t--){let n=e.indexAfter(t),r=e.node(t);if(n==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let e=r.child(n);;e=e.firstChild){if(e.childCount==0&&!e.inlineContent||TQ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function OQ(){return new aR({props:{decorations:NQ,createSelectionBetween(e,t,n){return t.pos==n.pos&&CQ.valid(n)?new CQ(n):null},handleClick:jQ,handleKeyDown:kQ,handleDOMEvents:{beforeinput:MQ}}})}var kQ=FU({ArrowLeft:AQ(`horiz`,-1),ArrowRight:AQ(`horiz`,1),ArrowUp:AQ(`vert`,-1),ArrowDown:AQ(`vert`,1)});function AQ(e,t){let n=e==`vert`?t>0?`down`:`up`:t>0?`right`:`left`;return function(e,r,i){let a=e.selection,o=t>0?a.$to:a.$from,s=a.empty;if(a instanceof VL){if(!i.endOfTextblock(n)||o.depth==0)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let c=CQ.findGapCursorFrom(o,t,s);return c?(r&&r(e.tr.setSelection(new CQ(c))),!0):!1}}function jQ(e,t,n){if(!e||!e.editable)return!1;let r=e.state.doc.resolve(t);if(!CQ.valid(r))return!1;let i=e.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&UL.isSelectable(e.state.doc.nodeAt(i.inside))?!1:(e.dispatch(e.state.tr.setSelection(new CQ(r))),!0)}function MQ(e,t){if(t.inputType!=`insertCompositionText`||!(e.state.selection instanceof CQ))return!1;let{$from:n}=e.state.selection,r=n.parent.contentMatchAt(n.index()).findWrapping(e.state.schema.nodes.text);if(!r)return!1;let i=Z.empty;for(let e=r.length-1;e>=0;e--)i=Z.from(r[e].createAndFill(null,i));let a=e.state.tr.replace(n.pos,n.pos,new Q(i,0,0));return a.setSelection(VL.near(a.doc.resolve(n.pos+1))),e.dispatch(a),!1}function NQ(e){if(!(e.selection instanceof CQ))return null;let t=document.createElement(`div`);return t.className=`ProseMirror-gapcursor`,PH.create(e.doc,[jH.widget(e.selection.head,t,{key:`gapcursor`})])}var PQ=200,FQ=function(){};FQ.prototype.append=function(e){return e.length?(e=FQ.from(e),!this.length&&e||e.length<PQ&&this.leafAppend(e)||this.length<PQ&&e.leafPrepend(this)||this.appendInner(e)):this},FQ.prototype.prepend=function(e){return e.length?FQ.from(e).append(this):this},FQ.prototype.appendInner=function(e){return new LQ(this,e)},FQ.prototype.slice=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=this.length),e>=t?FQ.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},FQ.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},FQ.prototype.forEach=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length),t<=n?this.forEachInner(e,t,n,0):this.forEachInvertedInner(e,t,n,0)},FQ.prototype.map=function(e,t,n){t===void 0&&(t=0),n===void 0&&(n=this.length);var r=[];return this.forEach(function(t,n){return r.push(e(t,n))},t,n),r},FQ.from=function(e){return e instanceof FQ?e:e&&e.length?new IQ(e):FQ.empty};var IQ=function(e){function t(t){e.call(this),this.values=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(e,n){return e==0&&n==this.length?this:new t(this.values.slice(e,n))},t.prototype.getInner=function(e){return this.values[e]},t.prototype.forEachInner=function(e,t,n,r){for(var i=t;i<n;i++)if(e(this.values[i],r+i)===!1)return!1},t.prototype.forEachInvertedInner=function(e,t,n,r){for(var i=t-1;i>=n;i--)if(e(this.values[i],r+i)===!1)return!1},t.prototype.leafAppend=function(e){if(this.length+e.length<=PQ)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=PQ)return new t(e.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(t.prototype,n),t}(FQ);FQ.empty=new IQ([]);var LQ=function(e){function t(t,n){e.call(this),this.left=t,this.right=n,this.length=t.length+n.length,this.depth=Math.max(t.depth,n.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(e){return e<this.left.length?this.left.get(e):this.right.get(e-this.left.length)},t.prototype.forEachInner=function(e,t,n,r){var i=this.left.length;if(t<i&&this.left.forEachInner(e,t,Math.min(n,i),r)===!1||n>i&&this.right.forEachInner(e,Math.max(t-i,0),Math.min(this.length,n)-i,r+i)===!1)return!1},t.prototype.forEachInvertedInner=function(e,t,n,r){var i=this.left.length;if(t>i&&this.right.forEachInvertedInner(e,t-i,Math.max(n,i)-i,r+i)===!1||n<i&&this.left.forEachInvertedInner(e,Math.min(t,i),n,r)===!1)return!1},t.prototype.sliceInner=function(e,t){if(e==0&&t==this.length)return this;var n=this.left.length;return t<=n?this.left.slice(e,t):e>=n?this.right.slice(e-n,t-n):this.left.slice(e,n).append(this.right.slice(0,t-n))},t.prototype.leafAppend=function(e){var n=this.right.leafAppend(e);if(n)return new t(this.left,n)},t.prototype.leafPrepend=function(e){var n=this.left.leafPrepend(e);if(n)return new t(n,this.right)},t.prototype.appendInner=function(e){return this.left.depth>=Math.max(this.right.depth,e.depth)+1?new t(this.left,new t(this.right,e)):new t(this,e)},t}(FQ),RQ=500,zQ=class e{constructor(e,t){this.items=e,this.eventCount=t}popEvent(t,n){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,a;n&&(i=this.remapping(r,this.items.length),a=i.maps.length);let o=t.tr,s,c,l=[],u=[];return this.items.forEach((t,n)=>{if(!t.step){i||(i=this.remapping(r,n+1),a=i.maps.length),a--,u.push(t);return}if(i){u.push(new VQ(t.map));let e=t.step.map(i.slice(a)),n;e&&o.maybeStep(e).doc&&(n=o.mapping.maps[o.mapping.maps.length-1],l.push(new VQ(n,void 0,void 0,l.length+u.length))),a--,n&&i.appendMap(n,a)}else o.maybeStep(t.step);if(t.selection)return s=i?t.selection.map(i.slice(a)):t.selection,c=new e(this.items.slice(0,r).append(u.reverse().concat(l)),this.eventCount-1),!1},this.items.length,0),{remaining:c,transform:o,selection:s}}addTransform(t,n,r,i){let a=[],o=this.eventCount,s=this.items,c=!i&&s.length?s.get(s.length-1):null;for(let e=0;e<t.steps.length;e++){let r=t.steps[e].invert(t.docs[e]),l=new VQ(t.mapping.maps[e],r,n),u;(u=c&&c.merge(l))&&(l=u,e?a.pop():s=s.slice(0,s.length-1)),a.push(l),n&&=(o++,void 0),i||(c=l)}let l=o-r.depth;return l>UQ&&(s=BQ(s,l),o-=l),new e(s.append(a),o)}remapping(e,t){let n=new PI;return this.items.forEach((t,r)=>{let i=t.mirrorOffset!=null&&r-t.mirrorOffset>=e?n.maps.length-t.mirrorOffset:void 0;n.appendMap(t.map,i)},e,t),n}addMaps(t){return this.eventCount==0?this:new e(this.items.append(t.map(e=>new VQ(e))),this.eventCount)}rebased(t,n){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-n),a=t.mapping,o=t.steps.length,s=this.eventCount;this.items.forEach(e=>{e.selection&&s--},i);let c=n;this.items.forEach(e=>{let n=a.getMirror(--c);if(n==null)return;o=Math.min(o,n);let i=a.maps[n];if(e.step){let o=t.steps[n].invert(t.docs[n]),l=e.selection&&e.selection.map(a.slice(c+1,n));l&&s++,r.push(new VQ(i,o,l))}else r.push(new VQ(i))},i);let l=[];for(let e=n;e<o;e++)l.push(new VQ(a.maps[e]));let u=new e(this.items.slice(0,i).append(l).append(r),s);return u.emptyItemCount()>RQ&&(u=u.compress(this.items.length-r.length)),u}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(t=this.items.length){let n=this.remapping(0,t),r=n.maps.length,i=[],a=0;return this.items.forEach((e,o)=>{if(o>=t)i.push(e),e.selection&&a++;else if(e.step){let t=e.step.map(n.slice(r)),o=t&&t.getMap();if(r--,o&&n.appendMap(o,r),t){let s=e.selection&&e.selection.map(n.slice(r));s&&a++;let c=new VQ(o.invert(),t,s),l,u=i.length-1;(l=i.length&&i[u].merge(c))?i[u]=l:i.push(c)}}else e.map&&r--},this.items.length,0),new e(FQ.from(i.reverse()),a)}};zQ.empty=new zQ(FQ.empty,0);function BQ(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&t--==0)return n=r,!1}),e.slice(n)}var VQ=class e{constructor(e,t,n,r){this.map=e,this.step=t,this.selection=n,this.mirrorOffset=r}merge(t){if(this.step&&t.step&&!t.selection){let n=t.step.merge(this.step);if(n)return new e(n.getMap().invert(),n,this.selection)}}},HQ=class{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}},UQ=20;function WQ(e,t,n,r){let i=n.getMeta(QQ),a;if(i)return i.historyState;n.getMeta($Q)&&(e=new HQ(e.done,e.undone,null,0,-1));let o=n.getMeta(`appendedTransaction`);if(n.steps.length==0)return e;if(o&&o.getMeta(QQ))return o.getMeta(QQ).redo?new HQ(e.done.addTransform(n,void 0,r,ZQ(t)),e.undone,KQ(n.mapping.maps),e.prevTime,e.prevComposition):new HQ(e.done,e.undone.addTransform(n,void 0,r,ZQ(t)),null,e.prevTime,e.prevComposition);if(n.getMeta(`addToHistory`)!==!1&&!(o&&o.getMeta(`addToHistory`)===!1)){let i=n.getMeta(`composition`),a=e.prevTime==0||!o&&e.prevComposition!=i&&(e.prevTime<(n.time||0)-r.newGroupDelay||!GQ(n,e.prevRanges)),s=o?qQ(e.prevRanges,n.mapping):KQ(n.mapping.maps);return new HQ(e.done.addTransform(n,a?t.selection.getBookmark():void 0,r,ZQ(t)),zQ.empty,s,n.time,i??e.prevComposition)}else if(a=n.getMeta(`rebased`))return new HQ(e.done.rebased(n,a),e.undone.rebased(n,a),qQ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);else return new HQ(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),qQ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function GQ(e,t){if(!t)return!1;if(!e.docChanged)return!0;let n=!1;return e.mapping.maps[0].forEach((e,r)=>{for(let i=0;i<t.length;i+=2)e<=t[i+1]&&r>=t[i]&&(n=!0)}),n}function KQ(e){let t=[];for(let n=e.length-1;n>=0&&t.length==0;n--)e[n].forEach((e,n,r,i)=>t.push(r,i));return t}function qQ(e,t){if(!e)return null;let n=[];for(let r=0;r<e.length;r+=2){let i=t.map(e[r],1),a=t.map(e[r+1],-1);i<=a&&n.push(i,a)}return n}function JQ(e,t,n){let r=ZQ(t),i=QQ.get(t).spec.config,a=(n?e.undone:e.done).popEvent(t,r);if(!a)return null;let o=a.selection.resolve(a.transform.doc),s=(n?e.done:e.undone).addTransform(a.transform,t.selection.getBookmark(),i,r),c=new HQ(n?s:a.remaining,n?a.remaining:s,null,0,-1);return a.transform.setSelection(o).setMeta(QQ,{redo:n,historyState:c})}var YQ=!1,XQ=null;function ZQ(e){let t=e.plugins;if(XQ!=t){YQ=!1,XQ=t;for(let e=0;e<t.length;e++)if(t[e].spec.historyPreserveItems){YQ=!0;break}}return YQ}var QQ=new cR(`history`),$Q=new cR(`closeHistory`);function e$(e={}){return e={depth:e.depth||100,newGroupDelay:e.newGroupDelay||500},new aR({key:QQ,state:{init(){return new HQ(zQ.empty,zQ.empty,null,0,-1)},apply(t,n,r){return WQ(n,r,t,e)}},config:e,props:{handleDOMEvents:{beforeinput(e,t){let n=t.inputType,r=n==`historyUndo`?n$:n==`historyRedo`?r$:null;return!r||!e.editable?!1:(t.preventDefault(),r(e.state,e.dispatch))}}}})}function t$(e,t){return(n,r)=>{let i=QQ.getState(n);if(!i||(e?i.undone:i.done).eventCount==0)return!1;if(r){let a=JQ(i,n,e);a&&r(t?a.scrollIntoView():a)}return!0}}var n$=t$(!1,!0),r$=t$(!0,!0);IK.create({name:`characterCount`,addOptions(){return{limit:null,mode:`textSize`,textCounter:e=>e.length,wordCounter:e=>e.split(` `).filter(e=>e!==``).length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=e=>{let t=e?.node||this.editor.state.doc;if((e?.mode||this.options.mode)===`textSize`){let e=t.textBetween(0,t.content.size,void 0,` `);return this.options.textCounter(e)}return t.nodeSize},this.storage.words=e=>{let t=e?.node||this.editor.state.doc,n=t.textBetween(0,t.content.size,` `,` `);return this.options.wordCounter(n)}},addProseMirrorPlugins(){let e=!1;return[new aR({key:new cR(`characterCount`),appendTransaction:(t,n,r)=>{if(e)return;let i=this.options.limit;if(i==null||i===0){e=!0;return}let a=this.storage.characters({node:r.doc});if(a>i){let t=a-i;console.warn(`[CharacterCount] Initial content exceeded limit of ${i} characters. Content was automatically trimmed.`);let n=r.tr.deleteRange(0,t);return e=!0,n}e=!0},filterTransaction:(e,t)=>{let n=this.options.limit;if(!e.docChanged||n===0||n==null)return!0;let r=this.storage.characters({node:t.doc}),i=this.storage.characters({node:e.doc});if(i<=n||r>n&&i>n&&i<=r)return!0;if(r>n&&i>n&&i>r||!e.getMeta(`paste`))return!1;let a=e.selection.$head.pos,o=a-(i-n),s=a;return e.deleteRange(o,s),!(this.storage.characters({node:e.doc})>n)}})]}});var i$=IK.create({name:`dropCursor`,addOptions(){return{color:`currentColor`,width:1,class:void 0}},addProseMirrorPlugins(){return[xQ(this.options)]}});IK.create({name:`focus`,addOptions(){return{className:`has-focus`,mode:`all`}},addProseMirrorPlugins(){return[new aR({key:new cR(`focus`),props:{decorations:({doc:e,selection:t})=>{let{isEditable:n,isFocused:r}=this.editor,{anchor:i}=t,a=[];if(!n||!r)return PH.create(e,[]);let o=0;this.options.mode===`deepest`&&e.descendants((e,t)=>{if(!e.isText){if(!(i>=t&&i<=t+e.nodeSize-1))return!1;o+=1}});let s=0;return e.descendants((e,t)=>{if(e.isText||!(i>=t&&i<=t+e.nodeSize-1))return!1;if(s+=1,this.options.mode===`deepest`&&o-s>0||this.options.mode===`shallowest`&&s>1)return this.options.mode===`deepest`;a.push(jH.node(t,t+e.nodeSize,{class:this.options.className}))}),PH.create(e,a)}}})]}});var a$=IK.create({name:`gapCursor`,addProseMirrorPlugins(){return[OQ()]},extendNodeSchema(e){return{allowGapCursor:sG(rG(e,`allowGapCursor`,{name:e.name,options:e.options,storage:e.storage}))??null}}}),o$=`placeholder`;function s$(e){return e.replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9-]/g,``).replace(/^[0-9-]+/,``).replace(/^-+/,``).toLowerCase()}IK.create({name:`placeholder`,addOptions(){return{emptyEditorClass:`is-editor-empty`,emptyNodeClass:`is-empty`,dataAttribute:o$,placeholder:`Write something …`,showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){let e=this.options.dataAttribute?`data-${s$(this.options.dataAttribute)}`:`data-${o$}`;return[new aR({key:new cR(`placeholder`),props:{decorations:({doc:t,selection:n})=>{let r=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:i}=n,a=[];if(!r)return null;let o=this.editor.isEmpty;return t.descendants((t,n)=>{let r=i>=n&&i<=n+t.nodeSize,s=!t.isLeaf&&HG(t);if(!t.type.isTextblock)return this.options.includeChildren;if((r||!this.options.showOnlyCurrent)&&s){let i=[this.options.emptyNodeClass];o&&i.push(this.options.emptyEditorClass);let s=jH.node(n,n+t.nodeSize,{class:i.join(` `),[e]:typeof this.options.placeholder==`function`?this.options.placeholder({editor:this.editor,node:t,pos:n,hasAnchor:r}):this.options.placeholder});a.push(s)}return this.options.includeChildren}),PH.create(t,a)}}})]}}),IK.create({name:`selection`,addOptions(){return{className:`selection`}},addProseMirrorPlugins(){let{editor:e,options:t}=this;return[new aR({key:new cR(`selection`),props:{decorations(n){return n.selection.empty||e.isFocused||!e.isEditable||UG(n.selection)||e.view.dragging?null:PH.create(n.doc,[jH.inline(n.selection.from,n.selection.to,{class:t.className})])}}})]}});function c$({types:e,node:t}){return t&&Array.isArray(e)&&e.includes(t.type)||t?.type===e}var l$=IK.create({name:`trailingNode`,addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){let e=new cR(this.name),t=this.options.node||this.editor.schema.topNodeType.contentMatch.defaultType?.name||`paragraph`,n=Object.entries(this.editor.schema.nodes).map(([,e])=>e).filter(e=>(this.options.notAfter||[]).concat(t).includes(e.name));return[new aR({key:e,appendTransaction:(n,r,i)=>{let{doc:a,tr:o,schema:s}=i,c=e.getState(i),l=a.content.size,u=s.nodes[t];if(!n.some(e=>e.getMeta(`skipTrailingNode`))&&c)return o.insert(l,u.create())},state:{init:(e,t)=>{let r=t.tr.doc.lastChild;return!c$({node:r,types:n})},apply:(e,t)=>{if(!e.docChanged||e.getMeta(`__uniqueIDTransaction`))return t;let r=e.doc.lastChild;return!c$({node:r,types:n})}}})]}}),u$=IK.create({name:`undoRedo`,addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:e,dispatch:t})=>n$(e,t),redo:()=>({state:e,dispatch:t})=>r$(e,t)}},addProseMirrorPlugins(){return[e$(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),d$=IK.create({name:`starterKit`,addExtensions(){let e=[];return this.options.bold!==!1&&e.push(rY.configure(this.options.bold)),this.options.blockquote!==!1&&e.push(QJ.configure(this.options.blockquote)),this.options.bulletList!==!1&&e.push(BZ.configure(this.options.bulletList)),this.options.code!==!1&&e.push(oY.configure(this.options.code)),this.options.codeBlock!==!1&&e.push(uY.configure(this.options.codeBlock)),this.options.document!==!1&&e.push(dY.configure(this.options.document)),this.options.dropcursor!==!1&&e.push(i$.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&e.push(a$.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&e.push(fY.configure(this.options.hardBreak)),this.options.heading!==!1&&e.push(pY.configure(this.options.heading)),this.options.undoRedo!==!1&&e.push(u$.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&e.push(mY.configure(this.options.horizontalRule)),this.options.italic!==!1&&e.push(yY.configure(this.options.italic)),this.options.listItem!==!1&&e.push(VZ.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(QZ.configure(this.options?.listKeymap)),this.options.link!==!1&&e.push(PZ.configure(this.options?.link)),this.options.orderedList!==!1&&e.push(lQ.configure(this.options.orderedList)),this.options.paragraph!==!1&&e.push(hQ.configure(this.options.paragraph)),this.options.strike!==!1&&e.push(vQ.configure(this.options.strike)),this.options.text!==!1&&e.push(yQ.configure(this.options.text)),this.options.underline!==!1&&e.push(bQ.configure(this.options?.underline)),this.options.trailingNode!==!1&&e.push(l$.configure(this.options?.trailingNode)),e}}),f$=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,p$=vq.create({name:`image`,addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?`inline`:`block`},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?`img[src]`:`img[src]:not([src^="data:"])`}]},renderHTML({HTMLAttributes:e}){return[`img`,pG(this.options.HTMLAttributes,e)]},parseMarkdown:(e,t)=>t.createNode(`image`,{src:e.href,title:e.title,alt:e.text}),renderMarkdown:e=>{let t=e.attrs?.src??``,n=e.attrs?.alt??``,r=e.attrs?.title??``;return r?``:``},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>`u`)return null;let{directions:e,minWidth:t,minHeight:n,alwaysPreserveAspectRatio:r}=this.options.resize;return({node:i,getPos:a,HTMLAttributes:o,editor:s})=>{let c=document.createElement(`img`);Object.entries(o).forEach(([e,t])=>{if(t!=null)switch(e){case`width`:case`height`:break;default:c.setAttribute(e,t);break}}),c.src=o.src;let l=new rq({element:c,editor:s,node:i,getPos:a,onResize:(e,t)=>{c.style.width=`${e}px`,c.style.height=`${t}px`},onCommit:(e,t)=>{let n=a();n!==void 0&&this.editor.chain().setNodeSelection(n).updateAttributes(this.name,{width:e,height:t}).run()},onUpdate:(e,t,n)=>e.type===i.type,options:{directions:e,min:{width:t,height:n},preserveAspectRatio:r===!0}}),u=l.dom;return u.style.visibility=`hidden`,u.style.pointerEvents=`none`,c.onload=()=>{u.style.visibility=``,u.style.pointerEvents=``},l}},addCommands(){return{setImage:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[$K({find:f$,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}});function m$({onClick:e,active:t,disabled:n,title:r,children:i}){return(0,H.jsx)(`button`,{type:`button`,title:r,disabled:n,onMouseDown:t=>{t.preventDefault(),e()},className:K(`flex size-7 items-center justify-center rounded transition-colors`,t?`bg-foreground text-background`:`text-muted-foreground hover:bg-accent hover:text-accent-foreground`,n&&`pointer-events-none opacity-40`),children:i})}function h$(){return(0,H.jsx)(`div`,{className:`mx-0.5 h-4 w-px bg-border`})}function g$(e,t){return!e||!t?null:`${e} × ${t}`}function _$(e){try{let t=new URL(e).pathname.split(`/`).filter(Boolean);return t[t.length-1]||`Image`}catch{let t=e.split(`?`)[0].split(`/`).filter(Boolean);return t[t.length-1]||`Image`}}async function v$(e,t){if(!(await fetch(`/cms/admin/media/${e}`,{method:`PATCH`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({caption:t})})).ok)throw Error(`Could not update media caption.`)}function y$({node:e,deleteNode:t,selected:n,updateAttributes:r,editor:i}){let a=String(e.attrs.src??``),o=typeof e.attrs.mediaId==`string`?e.attrs.mediaId:null,s=typeof e.attrs.filename==`string`?e.attrs.filename:null,c=typeof e.attrs.alt==`string`?e.attrs.alt:null,l=typeof e.attrs.title==`string`?e.attrs.title:null,u=typeof e.attrs.width==`number`?e.attrs.width:null,d=typeof e.attrs.height==`number`?e.attrs.height:null,f=s||_$(a),p=g$(u,d),[m,h]=(0,v.useState)(l??``),[g,_]=(0,v.useState)(null),[y,b]=(0,v.useState)(!1),x=i.isEditable;(0,v.useEffect)(()=>{h(l??``)},[l]);async function S(){let e=m.trim()||null;if(e===(l?.trim()||null)){_(null);return}if(r({title:e}),_(null),o){b(!0);try{await v$(o,e)}catch(e){_(e instanceof Error?e.message:`Could not update media caption.`)}finally{b(!1)}}}return(0,H.jsx)(LJ,{className:K(`my-3`,`rounded-xl border bg-card shadow-xs transition-colors`,n?`border-primary ring-2 ring-primary/20`:`border-border`),contentEditable:!1,"data-drag-handle":!0,children:(0,H.jsxs)(`div`,{className:`flex items-start gap-3 p-3`,children:[(0,H.jsx)(`div`,{className:`size-18 shrink-0 overflow-hidden rounded-lg border bg-muted`,children:(0,H.jsx)(`img`,{src:a,alt:c??f,className:`h-full w-full object-cover`})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,H.jsx)(`p`,{className:`truncate text-sm font-medium text-foreground`,title:f,children:f}),(0,H.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground`,children:[p&&(0,H.jsx)(`span`,{children:p}),c&&(0,H.jsxs)(`span`,{className:`truncate`,title:c,children:[`Alt: `,c]})]}),(0,H.jsxs)(`div`,{className:`space-y-1`,children:[(0,H.jsx)(lE,{value:m,onChange:e=>h(e.target.value),onBlur:S,placeholder:`Figcaption...`,disabled:!x,className:`min-h-8 resize-none border-0 bg-muted/60 px-2.5 py-1.5 text-xs text-muted-foreground shadow-none focus-visible:ring-1`}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-muted-foreground`,children:[(0,H.jsx)(`span`,{children:o?`Synced with Media Library`:`Local to this entry`}),y&&(0,H.jsx)(`span`,{children:`Saving…`})]}),g&&(0,H.jsx)(`p`,{className:`text-[11px] text-destructive`,children:g})]})]}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>t(),className:`flex size-8 shrink-0 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,"aria-label":`Remove image`,children:(0,H.jsx)(Zo,{className:`size-4`})})]})})}function b$({value:e,onChange:t,placeholder:n,onInsertImage:r}){let[i,a]=(0,v.useState)(!e),o=NJ({extensions:[d$.configure({link:{openOnClick:!1,HTMLAttributes:{class:`text-primary underline`}}}),p$.extend({addAttributes(){return{...this.parent?.(),mediaId:{default:null},filename:{default:null},width:{default:null},height:{default:null}}},addNodeView(){return GJ(y$)}}).configure({inline:!1})],content:(()=>{if(!e)return``;try{return JSON.parse(e)}catch{return e}})(),editorProps:{attributes:{class:`h-128 px-3 py-2.5 focus:outline-none`}},onUpdate({editor:e}){a(e.isEmpty),t(JSON.stringify(e.getJSON()))}});(0,v.useEffect)(()=>{if(!o)return;let t=e?(()=>{try{return JSON.parse(e)}catch{return e}})():``;JSON.stringify(o.getJSON())!==e&&o.commands.setContent(t,{emitUpdate:!1}),a(o.isEmpty)},[e]);async function s(){if(!o||!r)return;let e=await r();if(!e||e.length===0)return;let t=e.map(e=>({type:`image`,attrs:{mediaId:e.id??void 0,src:e.src,filename:e.filename??void 0,alt:e.alt??void 0,title:e.title??void 0,width:e.width??void 0,height:e.height??void 0}}));o.chain().focus().insertContent(t).run()}function c(){if(!o)return;let e=o.getAttributes(`link`).href,t=window.prompt(`URL`,e??`https://`);if(t!==null){if(!t){o.chain().focus().unsetLink().run();return}o.chain().focus().setLink({href:t}).run()}}return o?(0,H.jsxs)(`div`,{className:`overflow-hidden rounded-md border border-input bg-background focus-within:border-ring focus-within:ring-[3px] focus-within:ring-ring/50`,children:[(0,H.jsxs)(`div`,{className:`sticky top-0 z-10 flex flex-wrap items-center gap-0.5 border-b border-border bg-background px-2 py-1.5`,children:[(0,H.jsx)(m$,{title:`Bold`,active:o.isActive(`bold`),onClick:()=>o.chain().focus().toggleBold().run(),children:(0,H.jsx)(Fa,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Italic`,active:o.isActive(`italic`),onClick:()=>o.chain().focus().toggleItalic().run(),children:(0,H.jsx)(bo,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Underline`,active:o.isActive(`underline`),onClick:()=>o.chain().focus().toggleUnderline().run(),children:(0,H.jsx)(es,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Strikethrough`,active:o.isActive(`strike`),onClick:()=>o.chain().focus().toggleStrike().run(),children:(0,H.jsx)(qo,{className:`size-3.5`})}),(0,H.jsx)(h$,{}),(0,H.jsx)(m$,{title:`Heading 1`,active:o.isActive(`heading`,{level:1}),onClick:()=>o.chain().focus().toggleHeading({level:1}).run(),children:(0,H.jsx)(mo,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Heading 2`,active:o.isActive(`heading`,{level:2}),onClick:()=>o.chain().focus().toggleHeading({level:2}).run(),children:(0,H.jsx)(ho,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Heading 3`,active:o.isActive(`heading`,{level:3}),onClick:()=>o.chain().focus().toggleHeading({level:3}).run(),children:(0,H.jsx)(go,{className:`size-3.5`})}),(0,H.jsx)(h$,{}),(0,H.jsx)(m$,{title:`Bullet list`,active:o.isActive(`bulletList`),onClick:()=>o.chain().focus().toggleBulletList().run(),children:(0,H.jsx)(ko,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Ordered list`,active:o.isActive(`orderedList`),onClick:()=>o.chain().focus().toggleOrderedList().run(),children:(0,H.jsx)(Do,{className:`size-3.5`})}),(0,H.jsx)(h$,{}),(0,H.jsx)(m$,{title:`Blockquote`,active:o.isActive(`blockquote`),onClick:()=>o.chain().focus().toggleBlockquote().run(),children:(0,H.jsx)(zo,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Inline code`,active:o.isActive(`code`),onClick:()=>o.chain().focus().toggleCode().run(),children:(0,H.jsx)(Xa,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Code block`,active:o.isActive(`codeBlock`),onClick:()=>o.chain().focus().toggleCodeBlock().run(),children:(0,H.jsx)(Go,{className:`size-3.5`})}),(0,H.jsx)(h$,{}),(0,H.jsx)(m$,{title:`Add link`,active:o.isActive(`link`),onClick:c,children:(0,H.jsx)(Eo,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Remove link`,disabled:!o.isActive(`link`),onClick:()=>o.chain().focus().unsetLink().run(),children:(0,H.jsx)(ts,{className:`size-3.5`})}),(0,H.jsx)(h$,{}),r&&(0,H.jsx)(m$,{title:`Insert image`,onClick:s,children:(0,H.jsx)(vo,{className:`size-3.5`})}),(0,H.jsx)(m$,{title:`Hard break (Shift + Enter)`,onClick:()=>o.chain().focus().setHardBreak().run(),children:(0,H.jsx)(Yo,{className:`size-3.5`})})]}),(0,H.jsxs)(`div`,{className:`relative overflow-y-auto`,children:[i&&n&&(0,H.jsx)(`p`,{className:`pointer-events-none absolute left-3 top-2.5 text-muted-foreground select-none`,children:n}),(0,H.jsx)(TJ,{editor:o})]})]}):null}var x$=1,S$=.9,C$=.8,w$=.17,T$=.1,E$=.999,D$=.9999,O$=.99,k$=/[\\\/_+.#"@\[\(\{&]/,A$=/[\\\/_+.#"@\[\(\{&]/g,j$=/[\s-]/,M$=/[\s-]/g;function N$(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?x$:O$;var s=`${i},${a}`;if(o[s]!==void 0)return o[s];for(var c=r.charAt(a),l=n.indexOf(c,i),u=0,d,f,p,m;l>=0;)d=N$(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=x$:k$.test(e.charAt(l-1))?(d*=C$,p=e.slice(i,l-1).match(A$),p&&i>0&&(d*=E$**+p.length)):j$.test(e.charAt(l-1))?(d*=S$,m=e.slice(i,l-1).match(M$),m&&i>0&&(d*=E$**+m.length)):(d*=w$,i>0&&(d*=E$**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=D$)),(d<T$&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=N$(e,t,n,r,l+1,a+2,o),f*T$>d&&(d=f*T$)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function P$(e){return e.toLowerCase().replace(M$,` `)}function F$(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,N$(e,t,P$(e),P$(t),0,0,{})}var I$=`[cmdk-group=""]`,L$=`[cmdk-group-items=""]`,R$=`[cmdk-group-heading=""]`,z$=`[cmdk-item=""]`,B$=`${z$}:not([aria-disabled="true"])`,V$=`cmdk-item-select`,H$=`data-value`,U$=(e,t,n)=>F$(e,t,n),W$=v.createContext(void 0),G$=()=>v.useContext(W$),K$=v.createContext(void 0),q$=()=>v.useContext(K$),J$=v.createContext(void 0),Y$=v.forwardRef((e,t)=>{let n=l1(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=l1(()=>new Set),i=l1(()=>new Map),a=l1(()=>new Map),o=l1(()=>new Set),s=s1(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:p,loop:m,disablePointerSelection:h=!1,vimBindings:g=!0,..._}=e,y=Pl(),b=Pl(),x=Pl(),S=v.useRef(null),C=f1();c1(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,w.emit()}},[u]),c1(()=>{C(6,A)},[]);let w=v.useMemo(()=>({subscribe:e=>(o.current.add(e),()=>o.current.delete(e)),snapshot:()=>n.current,setState:(e,t,r)=>{var i,a,o;if(!Object.is(n.current[e],t)){if(n.current[e]=t,e===`search`)k(),D(),C(1,O);else if(e===`value`){if(document.activeElement.hasAttribute(`cmdk-input`)||document.activeElement.hasAttribute(`cmdk-root`)){let e=document.getElementById(x);e?e.focus():(i=document.getElementById(y))==null||i.focus()}if(C(7,()=>{n.current.selectedItemId=j()?.id,w.emit()}),r||C(5,A),s.current?.value!==void 0){let e=t??``;(o=(a=s.current).onValueChange)==null||o.call(a,e);return}}w.emit()}},emit:()=>{o.current.forEach(e=>e())}}),[]),T=v.useMemo(()=>({value:(e,t,r)=>{t!==a.current.get(e)?.value&&(a.current.set(e,{value:t,keywords:r}),n.current.filtered.items.set(e,E(t,r)),C(2,()=>{D(),w.emit()}))},item:(e,t)=>(r.current.add(e),t&&(i.current.has(t)?i.current.get(t).add(e):i.current.set(t,new Set([e]))),C(3,()=>{k(),D(),n.current.value||O(),w.emit()}),()=>{a.current.delete(e),r.current.delete(e),n.current.filtered.items.delete(e);let t=j();C(4,()=>{k(),t?.getAttribute(`id`)===e&&O(),w.emit()})}),group:e=>(i.current.has(e)||i.current.set(e,new Set),()=>{a.current.delete(e),i.current.delete(e)}),filter:()=>s.current.shouldFilter,label:c||e[`aria-label`],getDisablePointerSelection:()=>s.current.disablePointerSelection,listId:y,inputId:x,labelId:b,listInnerRef:S}),[]);function E(e,t){let r=s.current?.filter??U$;return e?r(e,n.current.search,t):0}function D(){if(!n.current.search||s.current.shouldFilter===!1)return;let e=n.current.filtered.items,t=[];n.current.filtered.groups.forEach(n=>{let r=i.current.get(n),a=0;r.forEach(t=>{let n=e.get(t);a=Math.max(n,a)}),t.push([n,a])});let r=S.current;M().sort((t,n)=>{let r=t.getAttribute(`id`),i=n.getAttribute(`id`);return(e.get(i)??0)-(e.get(r)??0)}).forEach(e=>{let t=e.closest(L$);t?t.appendChild(e.parentElement===t?e:e.closest(`${L$} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${L$} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${I$}[${H$}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(H$);w.setState(`value`,e||void 0)}function k(){if(!n.current.search||s.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let e=0;for(let t of r.current){let r=E(a.current.get(t)?.value??``,a.current.get(t)?.keywords??[]);n.current.filtered.items.set(t,r),r>0&&e++}for(let[e,t]of i.current)for(let r of t)if(n.current.filtered.items.get(r)>0){n.current.filtered.groups.add(e);break}n.current.filtered.count=e}function A(){var e;let t=j();t&&(t.parentElement?.firstChild===t&&((e=t.closest(I$)?.querySelector(R$))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${z$}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(B$)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(H$))}function P(e){var t;let n=j(),r=M(),i=r.findIndex(e=>e===n),a=r[i+e];(t=s.current)!=null&&t.loop&&(a=i+e<0?r[r.length-1]:i+e===r.length?r[0]:r[i+e]),a&&w.setState(`value`,a.getAttribute(H$))}function F(e){let t=j()?.closest(I$),n;for(;t&&!n;)t=e>0?a1(t,I$):o1(t,I$),n=t?.querySelector(B$);n?w.setState(`value`,n.getAttribute(H$)):P(e)}let I=()=>N(M().length-1),L=e=>{e.preventDefault(),e.metaKey?I():e.altKey?F(1):P(1)},R=e=>{e.preventDefault(),e.metaKey?N(0):e.altKey?F(-1):P(-1)};return v.createElement(rg.div,{ref:t,tabIndex:-1,..._,"cmdk-root":``,onKeyDown:e=>{var t;(t=_.onKeyDown)==null||t.call(_,e);let n=e.nativeEvent.isComposing||e.keyCode===229;if(!(e.defaultPrevented||n))switch(e.key){case`n`:case`j`:g&&e.ctrlKey&&L(e);break;case`ArrowDown`:L(e);break;case`p`:case`k`:g&&e.ctrlKey&&R(e);break;case`ArrowUp`:R(e);break;case`Home`:e.preventDefault(),N(0);break;case`End`:e.preventDefault(),I();break;case`Enter`:{e.preventDefault();let t=j();if(t){let e=new Event(V$);t.dispatchEvent(e)}}}}},v.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:h1},c),m1(e,e=>v.createElement(K$.Provider,{value:w},v.createElement(W$.Provider,{value:T},e))))}),X$=v.forwardRef((e,t)=>{let n=Pl(),r=v.useRef(null),i=v.useContext(J$),a=G$(),o=s1(e),s=o.current?.forceMount??i?.forceMount;c1(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=d1(n,r,[e.value,e.children,r],e.keywords),l=q$(),u=u1(e=>e.value&&e.value===c.current),d=u1(e=>s||a.filter()===!1?!0:e.search?e.filtered.items.get(n)>0:!0);v.useEffect(()=>{let t=r.current;if(!(!t||e.disabled))return t.addEventListener(V$,f),()=>t.removeEventListener(V$,f)},[d,e.onSelect,e.disabled]);function f(){var e,t;p(),(t=(e=o.current).onSelect)==null||t.call(e,c.current)}function p(){l.setState(`value`,c.current,!0)}if(!d)return null;let{disabled:m,value:h,onSelect:g,forceMount:_,keywords:y,...b}=e;return v.createElement(rg.div,{ref:ms(r,t),...b,id:n,"cmdk-item":``,role:`option`,"aria-disabled":!!m,"aria-selected":!!u,"data-disabled":!!m,"data-selected":!!u,onPointerMove:m||a.getDisablePointerSelection()?void 0:p,onClick:m?void 0:f},e.children)}),Z$=v.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=Pl(),s=v.useRef(null),c=v.useRef(null),l=Pl(),u=G$(),d=u1(e=>i||u.filter()===!1?!0:e.search?e.filtered.groups.has(o):!0);c1(()=>u.group(o),[]),d1(o,s,[e.value,e.heading,c]);let f=v.useMemo(()=>({id:o,forceMount:i}),[i]);return v.createElement(rg.div,{ref:ms(s,t),...a,"cmdk-group":``,role:`presentation`,hidden:d?void 0:!0},n&&v.createElement(`div`,{ref:c,"cmdk-group-heading":``,"aria-hidden":!0,id:l},n),m1(e,e=>v.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},v.createElement(J$.Provider,{value:f},e))))}),Q$=v.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=v.useRef(null),a=u1(e=>!e.search);return!n&&!a?null:v.createElement(rg.div,{ref:ms(i,t),...r,"cmdk-separator":``,role:`separator`})}),$$=v.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=q$(),o=u1(e=>e.search),s=u1(e=>e.selectedItemId),c=G$();return v.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),v.createElement(rg.input,{ref:t,...r,"cmdk-input":``,autoComplete:`off`,autoCorrect:`off`,spellCheck:!1,"aria-autocomplete":`list`,role:`combobox`,"aria-expanded":!0,"aria-controls":c.listId,"aria-labelledby":c.labelId,"aria-activedescendant":s,id:c.inputId,type:`text`,value:i?e.value:o,onChange:e=>{i||a.setState(`search`,e.target.value),n?.(e.target.value)}})}),e1=v.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=v.useRef(null),o=v.useRef(null),s=u1(e=>e.selectedItemId),c=G$();return v.useEffect(()=>{if(o.current&&a.current){let e=o.current,t=a.current,n,r=new ResizeObserver(()=>{n=requestAnimationFrame(()=>{let n=e.offsetHeight;t.style.setProperty(`--cmdk-list-height`,n.toFixed(1)+`px`)})});return r.observe(e),()=>{cancelAnimationFrame(n),r.unobserve(e)}}},[]),v.createElement(rg.div,{ref:ms(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},m1(e,e=>v.createElement(`div`,{ref:ms(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),t1=v.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return v.createElement(Vh,{open:n,onOpenChange:r},v.createElement(Hh,{container:o},v.createElement(Uh,{"cmdk-overlay":``,className:i}),v.createElement(Wh,{"aria-label":e.label,"cmdk-dialog":``,className:a},v.createElement(Y$,{ref:t,...s}))))}),n1=v.forwardRef((e,t)=>u1(e=>e.filtered.count===0)?v.createElement(rg.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),r1=v.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return v.createElement(rg.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},m1(e,e=>v.createElement(`div`,{"aria-hidden":!0},e)))}),i1=Object.assign(Y$,{List:e1,Item:X$,Input:$$,Group:Z$,Separator:Q$,Dialog:t1,Empty:n1,Loading:r1});function a1(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function o1(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function s1(e){let t=v.useRef(e);return c1(()=>{t.current=e}),t}var c1=typeof window>`u`?v.useEffect:v.useLayoutEffect;function l1(e){let t=v.useRef();return t.current===void 0&&(t.current=e()),t}function u1(e){let t=q$(),n=()=>e(t.snapshot());return v.useSyncExternalStore(t.subscribe,n,n)}function d1(e,t,n,r=[]){let i=v.useRef(),a=G$();return c1(()=>{var o;let s=(()=>{for(let e of n){if(typeof e==`string`)return e.trim();if(typeof e==`object`&&`current`in e)return e.current?e.current.textContent?.trim():i.current}})(),c=r.map(e=>e.trim());a.value(e,s,c),(o=t.current)==null||o.setAttribute(H$,s),i.current=s}),i}var f1=()=>{let[e,t]=v.useState(),n=l1(()=>new Map);return c1(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function p1(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function m1({asChild:e,children:t},n){return e&&v.isValidElement(t)?v.cloneElement(p1(t),{ref:t.ref},n(t.props.children)):n(t)}var h1={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`},g1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(i1,{ref:n,className:K(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,e),...t}));g1.displayName=i1.displayName;var _1=v.forwardRef(({className:e,...t},n)=>(0,H.jsxs)(`div`,{className:`flex items-center border-b px-3`,"data-cmdk-input-wrapper":``,children:[(0,H.jsx)(Ho,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),(0,H.jsx)(i1.Input,{ref:n,className:K(`flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,e),...t})]}));_1.displayName=i1.Input.displayName;var v1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(i1.List,{ref:n,className:K(`max-h-[300px] overflow-y-auto overflow-x-hidden`,e),...t}));v1.displayName=i1.List.displayName;var y1=v.forwardRef((e,t)=>(0,H.jsx)(i1.Empty,{ref:t,className:`py-6 text-center text-sm`,...e}));y1.displayName=i1.Empty.displayName;var b1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(i1.Group,{ref:n,className:K(`overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground`,e),...t}));b1.displayName=i1.Group.displayName;var x1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(i1.Separator,{ref:n,className:K(`-mx-1 h-px bg-border`,e),...t}));x1.displayName=i1.Separator.displayName;var S1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(i1.Item,{ref:n,className:K(`relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,e),...t}));S1.displayName=i1.Item.displayName;var C1=({className:e,...t})=>(0,H.jsx)(`span`,{className:K(`ml-auto text-xs tracking-widest text-muted-foreground`,e),...t});C1.displayName=`CommandShortcut`;var w1={image:`image/*`,video:`video/*`,audio:`audio/*`,document:`.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv`};function T1(e){return!e||e.length===0?`*/*`:e.map(e=>w1[e]).join(`,`)}function E1(e){let t=e.replace(/_/g,` `).trim();return t?t.charAt(0).toUpperCase()+t.slice(1):`Value`}function D1(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:`—`}function O1(e){return e?.startsWith(`image/`)??!1}async function k1(e,t){return MT(e,{folderId:t})}function A1(e,t){if(!t||t.length===0)return!0;let n=e??``;return t.some(e=>e===`image`?n.startsWith(`image/`):e===`video`?n.startsWith(`video/`):e===`audio`?n.startsWith(`audio/`):e===`document`?n.startsWith(`application/`)||n.startsWith(`text/`):!1)}var j1=30;function M1({open:e,onOpenChange:t,allowedTypes:n,selectionMode:r=`single`,onSelect:i}){let[a,o]=(0,v.useState)([{id:null,name:`Media`}]),s=a[a.length-1].id,[c,l]=(0,v.useState)([]),[u,d]=(0,v.useState)([]),[f,p]=(0,v.useState)(1),[m,h]=(0,v.useState)(!1),[g,_]=(0,v.useState)(1),[y,b]=(0,v.useState)(``),[x,S]=(0,v.useState)(``),[C,w]=(0,v.useState)([]);(0,v.useEffect)(()=>{let e=setTimeout(()=>{S(y),_(1)},300);return()=>clearTimeout(e)},[y]),(0,v.useEffect)(()=>{_(1),b(``),S(``)},[s]),(0,v.useEffect)(()=>{if(!e)return;h(!0);let t=s??``,n=x?`&search=${encodeURIComponent(x)}`:``;Promise.all([x?Promise.resolve([]):fetch(`/cms/admin/folders?parent_id=${t}`,{credentials:`include`}).then(e=>e.ok?e.json():{folders:[]}).then(e=>e.folders),fetch(`/cms/admin/media?folder_id=${t}&page=${g}&limit=${j1}${n}`,{credentials:`include`}).then(e=>e.ok?e.json():{items:[],pages:1})]).then(([e,t])=>{l(e),d(t.items),p(t.pages??1)}).catch(()=>{l([]),d([]),p(1)}).finally(()=>h(!1))},[e,s,g,x]),(0,v.useEffect)(()=>{e||(o([{id:null,name:`Media`}]),_(1),b(``),S(``),w([]))},[e]);function T(e){o(t=>[...t,{id:e.id,name:e.name}])}function E(e){o(t=>t.slice(0,e+1))}function D(e){if(r===`single`){i([e]),t(!1);return}w(t=>t.some(t=>t.id===e.id)?t.filter(t=>t.id!==e.id):[...t,e])}function O(e){let t=C.findIndex(t=>t.id===e);return t===-1?null:t+1}let k=u.filter(e=>A1(e.mime_type,n)),A=c.length===0&&k.length===0;return(0,H.jsx)(Jh,{open:e,onOpenChange:t,children:(0,H.jsxs)(Qh,{className:`max-w-3xl max-h-[90vh] flex flex-col overflow-hidden`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Media Library`})}),(0,H.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,H.jsx)(Ho,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,H.jsx)(Sw,{className:`pl-9 h-8`,placeholder:`Search media…`,value:y,onChange:e=>b(e.target.value)})]}),!x&&a.length>1&&(0,H.jsx)(`div`,{className:`flex items-center gap-1 text-sm shrink-0`,children:a.map((e,t)=>(0,H.jsxs)(`span`,{className:`flex items-center gap-1 text-muted-foreground`,children:[t>0&&(0,H.jsx)(`span`,{children:`/`}),t===a.length-1?(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:t===0?(0,H.jsx)(_o,{className:`size-3.5`}):e.name}):(0,H.jsx)(`button`,{onClick:()=>E(t),className:`hover:text-foreground transition-colors`,children:t===0?(0,H.jsx)(_o,{className:`size-3.5`}):e.name})]},`${e.id??`root`}:${e.name}`))}),m?(0,H.jsx)(`div`,{className:`flex flex-1 items-center justify-center py-16`,children:(0,H.jsx)(zC,{className:`size-5`})}):A?(0,H.jsx)(`p`,{className:`flex-1 py-16 text-center text-sm text-muted-foreground`,children:x?`No matching files.`:u.length===0&&c.length===0?`No media found.`:`No matching files in this folder.`}):(0,H.jsxs)(`div`,{className:`flex flex-col gap-4 flex-1 min-h-0 overflow-y-auto pr-1`,children:[c.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-1 gap-1.5 sm:grid-cols-2`,children:c.map(e=>(0,H.jsxs)(`button`,{type:`button`,onClick:()=>T(e),className:`flex items-center gap-2.5 rounded-md border bg-card px-2.5 py-2 text-left transition-colors hover:bg-muted/50 hover:border-primary`,children:[(0,H.jsx)(uo,{className:`size-7 shrink-0 text-muted-foreground`}),(0,H.jsxs)(`div`,{className:`min-w-0`,children:[(0,H.jsx)(`p`,{className:`truncate text-xs font-bold leading-tight`,title:e.name,children:e.name}),(0,H.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[e.item_count,` `,e.item_count===1?`item`:`items`]})]})]},e.id))}),k.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-3 gap-2 sm:grid-cols-4 md:grid-cols-5`,children:k.map(e=>(0,H.jsxs)(`button`,{type:`button`,onClick:()=>D(e),className:K(`group relative overflow-hidden rounded-md border bg-card text-left transition-colors hover:border-primary`,O(e.id)!=null&&`border-primary ring-2 ring-primary/20`),children:[(0,H.jsx)(`div`,{className:`aspect-square bg-muted`,children:O1(e.mime_type)?(0,H.jsx)(`img`,{src:e.url,alt:e.filename,className:`h-full w-full object-cover`}):(0,H.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,H.jsx)(oo,{className:`size-6 text-muted-foreground`})})}),(0,H.jsxs)(`div`,{className:`p-1.5`,children:[(0,H.jsx)(`p`,{className:`truncate text-[11px] font-medium leading-tight`,title:e.filename,children:e.filename}),(0,H.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:D1(e.size)})]}),(0,H.jsx)(`div`,{className:K(`absolute inset-0 rounded-md ring-2 ring-primary ring-offset-1 transition-opacity pointer-events-none`,O(e.id)==null?`opacity-0 group-hover:opacity-100`:`opacity-100`)}),r===`multiple`&&O(e.id)!=null&&(0,H.jsx)(`div`,{className:`absolute right-1.5 top-1.5 flex size-6 items-center justify-center rounded-full bg-primary text-[11px] font-semibold text-primary-foreground shadow-sm`,children:O(e.id)})]},e.id))})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-t pt-2 shrink-0`,children:[(0,H.jsx)(`div`,{className:`flex items-center gap-2`,children:r===`multiple`&&C.length>0&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[C.length,` selected`]}),(0,H.jsx)(q,{type:`button`,variant:`ghost`,size:`sm`,className:`h-8 px-2 text-xs`,onClick:()=>w([]),children:`Clear`})]})}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[f>1&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`button`,{type:`button`,onClick:()=>_(e=>Math.max(1,e-1)),disabled:g===1,className:`text-sm text-muted-foreground hover:text-foreground disabled:opacity-40 disabled:pointer-events-none transition-colors`,children:`Previous`}),(0,H.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[g,` / `,f]}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>_(e=>Math.min(f,e+1)),disabled:g===f,className:`text-sm text-muted-foreground hover:text-foreground disabled:opacity-40 disabled:pointer-events-none transition-colors`,children:`Next`})]}),r===`multiple`&&(0,H.jsx)(q,{type:`button`,size:`sm`,disabled:C.length===0,onClick:()=>{i(C),t(!1)},children:`Insert selected`})]})]})]})})}function N1({value:e,onChange:t,allowedTypes:n,disabled:r=!1}){let i=(0,v.useRef)(null),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(null),[d,f]=(0,v.useState)(!1),p=typeof e==`string`&&e.startsWith(`http`);(0,v.useEffect)(()=>{if(!e){u(null);return}if(p){u(e);return}fetch(`/cms/admin/media/${e}/url`,{credentials:`include`}).then(e=>e.ok?e.json():null).then(e=>u(e?.url??null)).catch(()=>u(null))},[e,p]);async function m(e){o(!0),c(null);try{let n=await k1(e);u(n.url),t(n.id)}catch(e){c(e instanceof Error?e.message:`Upload failed.`),X.error(`Upload failed`)}finally{o(!1),i.current&&(i.current.value=``)}}let h=l&&/\.(jpe?g|png|gif|webp|avif|svg)(\?|$)/i.test(l);return e?(0,H.jsxs)(`div`,{className:`relative w-full rounded-md border bg-muted/30 overflow-hidden`,children:[l?h?(0,H.jsx)(`img`,{src:l,alt:`Media`,className:`max-h-72 w-full object-contain`}):(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,H.jsx)(vo,{className:`size-4 text-muted-foreground shrink-0`}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground truncate`,children:l})]}):(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-muted-foreground`,children:[(0,H.jsx)(vo,{className:`size-4 shrink-0`}),(0,H.jsx)(`span`,{className:`text-xs`,children:`Loading…`})]}),(0,H.jsx)(q,{type:`button`,size:`icon`,variant:`secondary`,className:`absolute top-1.5 right-1.5 size-6`,onClick:()=>{t(null),u(null)},disabled:r,children:(0,H.jsx)(ss,{className:`size-3.5`})})]}):(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`input`,{ref:i,type:`file`,accept:T1(n),className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&m(t)}}),(0,H.jsxs)(`div`,{onDragOver:e=>e.preventDefault(),onDrop:e=>{if(r)return;e.preventDefault();let t=e.dataTransfer.files[0];t&&m(t)},className:`flex w-full gap-2 rounded-md border border-dashed p-3`,children:[(0,H.jsxs)(`button`,{type:`button`,disabled:a||r,onClick:()=>i.current?.click(),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(ns,{className:`size-4`}),a?`Uploading…`:`Upload`]}),(0,H.jsx)(`div`,{className:`w-px bg-border`}),(0,H.jsxs)(`button`,{type:`button`,disabled:a||r,onClick:()=>f(!0),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(co,{className:`size-4`}),`Library`]})]}),s&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:s}),(0,H.jsx)(M1,{open:d,onOpenChange:f,allowedTypes:n,selectionMode:`single`,onSelect:e=>{let n=e[0];n&&(u(n.url),t(n.id))}})]})}function P1({id:e,previewUrl:t,filename:n,onRemove:r,disabled:i=!1}){let{attributes:a,listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=fM({id:e});return(0,H.jsxs)(`div`,{ref:s,style:{transform:Tk.Transform.toString(c),transition:l,opacity:u?.4:1},className:`relative aspect-square overflow-hidden rounded-md border bg-muted`,children:[t?(0,H.jsx)(`img`,{src:t,alt:n,className:`h-full w-full object-cover`}):(0,H.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,H.jsx)(vo,{className:`size-5 text-muted-foreground`})}),n&&(0,H.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-background/75 backdrop-blur-sm px-1.5 py-1 pointer-events-none`,children:(0,H.jsx)(`p`,{className:`truncate text-[10px] leading-none text-foreground`,children:n})}),(0,H.jsx)(`button`,{type:`button`,onClick:r,disabled:i,className:`absolute right-1 top-1 flex size-5 items-center justify-center rounded-full bg-background/80 text-foreground shadow-sm hover:bg-background`,children:(0,H.jsx)(ss,{className:`size-3`})}),!i&&(0,H.jsx)(`button`,{type:`button`,className:`absolute bottom-6 left-1 flex size-5 cursor-grab items-center justify-center rounded-full bg-background/80 text-foreground shadow-sm active:cursor-grabbing`,...o,...a,children:(0,H.jsx)(fo,{className:`size-3`})})]})}function F1({value:e,onChange:t,disabled:n=!1}){let r=Array.isArray(e)?e:[],[,i]=(0,v.useState)(0),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),d=(0,v.useRef)(null),f=(0,v.useRef)({}),p=(0,v.useRef)({}),m=r.join(`,`),h=Vk(Bk(VA,{activationConstraint:{distance:5}}));(0,v.useEffect)(()=>{let e=r.filter(e=>!e.startsWith(`http`)&&!(e in f.current));e.length!==0&&Promise.all(e.map(e=>fetch(`/cms/admin/media/${e}/url`,{credentials:`include`}).then(e=>e.ok?e.json():null).then(t=>t?[e,t.url]:null).catch(()=>null))).then(e=>{let t=!1;for(let n of e)n&&(f.current[n[0]]=n[1],t=!0);t&&i(e=>e+1)})},[m]),(0,v.useEffect)(()=>{let e=r.filter(e=>!e.startsWith(`http`)&&!(e in p.current));e.length!==0&&fetch(`/cms/admin/media`,{credentials:`include`}).then(e=>e.ok?e.json():{items:[]}).then(t=>{let n=!1;for(let r of t.items)e.includes(r.id)&&(p.current[r.id]=r.filename,n=!0);n&&i(e=>e+1)}).catch(()=>{})},[m]);function g(e){return e.startsWith(`http`)?e:f.current[e]??null}function _(e){return p.current[e]??``}function y(e){if(n)return;let{active:i,over:a}=e;!a||i.id===a.id||t(qj(r,r.indexOf(i.id),r.indexOf(a.id)))}async function b(e){if(e.length===0)return;o(!0),c(null);let n=r;try{for(let r of e){let e=await k1(r);f.current[e.id]=e.url,p.current[e.id]=r.name,i(e=>e+1),n=[...n,e.id],t(n)}}catch(e){c(e instanceof Error?e.message:`Upload failed.`),X.error(`Upload failed`)}finally{o(!1),d.current&&(d.current.value=``)}}return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(`input`,{ref:d,type:`file`,accept:`image/*`,multiple:!0,className:`hidden`,onChange:e=>{b(Array.from(e.target.files??[]))}}),r.length>0&&(0,H.jsx)(Rj,{sensors:h,collisionDetection:Jk,onDragEnd:y,children:(0,H.jsx)(iM,{items:r,strategy:Qj,children:(0,H.jsx)(`div`,{className:`grid grid-cols-3 gap-2 sm:grid-cols-4`,children:r.map(e=>(0,H.jsx)(P1,{id:e,previewUrl:g(e),filename:_(e),onRemove:()=>t(r.filter(t=>t!==e)),disabled:n},e))})})}),(0,H.jsxs)(`div`,{className:`flex w-full gap-2 rounded-md border border-dashed p-3`,children:[(0,H.jsxs)(`button`,{type:`button`,disabled:a||n,onClick:()=>d.current?.click(),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(ns,{className:`size-4`}),a?`Uploading…`:`Upload`]}),(0,H.jsx)(`div`,{className:`w-px bg-border`}),(0,H.jsxs)(`button`,{type:`button`,disabled:a||n,onClick:()=>u(!0),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(co,{className:`size-4`}),`Library`]})]}),s&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:s}),(0,H.jsx)(M1,{open:l,onOpenChange:u,allowedTypes:[`image`],selectionMode:`multiple`,onSelect:e=>{if(e.length===0)return;let n=new Set(r),i=[...r],a={},o={};for(let t of e)n.has(t.id)||(n.add(t.id),i.push(t.id),a[t.id]=t.url,o[t.id]=t.filename);Object.keys(a).length>0&&setUrlCache(e=>({...e,...a})),Object.keys(o).length>0&&setNameCache(e=>({...e,...o})),i.length!==r.length&&t(i)}})]})}function I1({value:e,onChange:t,disabled:n=!1}){let[r,i]=(0,v.useState)(()=>e!=null&&e!==``?String(e):``);(0,v.useEffect)(()=>{if(e==null||e===``){i(``);return}let t=typeof e==`number`?e:parseFloat(String(e));!isNaN(t)&&t!==parseFloat(r)&&i(String(t))},[e]);function a(e){let n=e.target.value.replace(`,`,`.`);if(i(n),n===``||n===`-`){t(null);return}let r=parseFloat(n);isNaN(r)||t(r)}return(0,H.jsx)(Sw,{type:`text`,inputMode:`decimal`,className:K(`w-full`,`text-base!`),value:r,placeholder:`0.00`,onChange:a,disabled:n})}function L1(e){if(typeof e==`object`&&e){let t=e;if(t.kind===`string`&&typeof t.value==`string`)return{kind:`string`,value:t.value};if(t.kind===`number`&&typeof t.value==`number`&&!isNaN(t.value))return{kind:`number`,value:t.value};if(t.kind===`boolean`&&typeof t.value==`boolean`)return{kind:`boolean`,value:t.value}}return typeof e==`number`&&!isNaN(e)?{kind:`number`,value:e}:typeof e==`boolean`?{kind:`boolean`,value:e}:{kind:`string`,value:typeof e==`string`?e:``}}function R1({value:e,onChange:t,inputId:n,disabled:r=!1}){let i=L1(e);function a(e){e===`string`&&t({kind:e,value:``}),e===`number`&&t({kind:e,value:0}),e===`boolean`&&t({kind:e,value:!1})}return(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(`div`,{className:`inline-flex items-center gap-1 rounded-md border border-border p-1`,children:[`string`,`number`,`boolean`].map(e=>(0,H.jsx)(`button`,{type:`button`,disabled:r,onClick:()=>a(e),className:K(`rounded px-2 py-1 text-xs transition-colors`,i.kind===e?`bg-accent text-accent-foreground`:`text-muted-foreground hover:bg-accent/60`),children:e===`string`?`Text`:e===`number`?`Number`:`Boolean`},e))}),i.kind===`string`&&(0,H.jsx)(Sw,{className:K(`w-full`,`text-base md:text-base`),value:String(i.value),placeholder:`Value`,onChange:e=>t({kind:`string`,value:e.target.value}),disabled:r}),i.kind===`number`&&(0,H.jsx)(I1,{value:i.value,onChange:e=>t({kind:`number`,value:typeof e==`number`&&!isNaN(e)?e:0}),disabled:r}),i.kind===`boolean`&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,H.jsx)(PT,{id:n,checked:!!i.value,onCheckedChange:e=>t({kind:`boolean`,value:!!e}),disabled:r}),(0,H.jsx)(Y,{htmlFor:n,className:`cursor-pointer font-normal text-base`,children:i.value?`True`:`False`})]})]})}function z1({value:e,onChange:t,timezone:n,disabled:r=!1}){let[i,a]=(0,v.useState)(!1),[o,s]=(0,v.useState)(),[c,l]=(0,v.useState)(`00:00`);(0,v.useEffect)(()=>{if(!e){s(void 0),l(`00:00`);return}let t=new Date(e);isNaN(t.getTime())||(s(t),l(cv(e,n)))},[e,n]);function u(e){s(e),a(!1),e&&t(lv(e,c,n))}function d(e){l(e),o&&t(lv(o,e,n))}return(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(QP,{open:i&&!r,onOpenChange:a,children:[(0,H.jsx)($P,{asChild:!0,children:(0,H.jsxs)(q,{variant:`outline`,className:`w-40 justify-between font-normal text-base`,disabled:r,children:[o?UO(o,`MMM d, yyyy`):`Select date`,(0,H.jsx)(Va,{className:`size-4 opacity-50`})]})}),(0,H.jsx)(eF,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,H.jsx)(XP,{mode:`single`,selected:o,captionLayout:`dropdown`,defaultMonth:o,onSelect:u})})]}),(0,H.jsx)(Sw,{type:`time`,className:`w-32 appearance-none bg-background [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none text-base!`,value:c,onChange:e=>d(e.target.value),disabled:r}),e&&(0,H.jsx)(q,{type:`button`,variant:`ghost`,size:`icon`,className:`size-8 text-muted-foreground hover:text-foreground`,onClick:()=>{s(void 0),l(`00:00`),t(null)},disabled:r,children:(0,H.jsx)(ss,{className:`size-3.5`})})]})}function B1(e){return e.find(e=>e.name===`title`)?.name??e.find(e=>e.name===`name`)?.name??e.find(e=>e.type===`uid`)?.name??e.find(e=>e.type===`string`)?.name??e.find(e=>e.type===`text`)?.name??null}var V1={data:null,promise:null};function H1(){return V1.data?Promise.resolve(V1.data):(V1.promise||=fetch(`/cms/admin/content-types`,{credentials:`include`}).then(e=>e.ok?e.json():[]).then(e=>(V1.data=e,e)).catch(()=>[]),V1.promise)}function U1(e,t){return e.find(e=>e.tableName===t)??null}function W1(e,t,n){return fetch(`/cms/admin/content-types/${e}/entries?page=${t}&limit=${n}`,{credentials:`include`}).then(e=>e.ok?e.json():{data:[],total:0,page:t,limit:n}).catch(()=>({data:[],total:0,page:t,limit:n}))}async function G1(e){let t=await W1(e,1,100),n=Math.max(1,Math.ceil(t.total/100));return n===1?{data:t.data}:{data:[t,...await Promise.all(Array.from({length:n-1},(t,n)=>W1(e,n+2,100)))].flatMap(e=>e.data)}}function K1(e){let[t,n]=(0,v.useState)([]),[r,i]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{e&&(i(!0),H1().then(t=>{let n=U1(t,e);return n?G1(n.slug).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:t})=>{let r=e?B1(e.fields??[]):null;n(t.data.map(e=>({id:String(e.id),label:String((r&&e[r])??e.title??e.name??e.id)})))}).catch(()=>n([])).finally(()=>i(!1)))},[e]),{entries:t,loading:r}}function q1(e,t,n){let[r,i]=(0,v.useState)([]),[a,o]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{if(!e||!n){i([]);return}o(!0),H1().then(t=>{let n=U1(t,e);return n?G1(n.slug).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:r})=>{let a=e?B1(e.fields??[]):null;i(r.data.filter(e=>String(e[t]??``)===n).map(e=>({id:String(e.id),label:String((a&&e[a])??e.title??e.name??e.id)})))}).catch(()=>i([])).finally(()=>o(!1))},[e,t,n]),{entries:r,loading:a}}function J1({relatedTable:e,relatedField:t,currentId:n}){let{entries:r,loading:i}=q1(e,t,n);return n?i?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-1`,children:[(0,H.jsx)(zC,{className:`size-3.5`}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Loading…`})]}):r.length===0?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No linked entries.`}):(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:r.map(e=>(0,H.jsx)(`span`,{className:`inline-flex items-center rounded-md border bg-muted px-2 py-0.5 text-xs`,children:e.label},e.id))}):(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Save this entry first to see linked items.`})}function Y1({relationType:e,relatedTable:t,relatedField:n,currentEntryId:r,value:i,onChange:a,disabled:o=!1}){let s=e===`many-to-many`,[c,l]=(0,v.useState)(!1),u=(0,v.useId)(),{entries:d,loading:f}=K1(t);if(e===`one-to-many`)return(0,H.jsx)(J1,{relatedTable:t,relatedField:n,currentId:r});let p=s?Array.isArray(i)?i:[]:i&&!Array.isArray(i)?[i]:[];function m(e){return d.find(t=>t.id===e)?.label??e}function h(e){if(s){let t=p.includes(e)?p.filter(t=>t!==e):[...p,e];a(t.length>0?t:null)}else a(p[0]===e?null:e),l(!1)}function g(e){if(s){let t=p.filter(t=>t!==e);a(t.length>0?t:null)}else a(null)}let _=s?p.length>0?`${p.length} selected`:`Select entries…`:p.length>0?m(p[0]):`Select entry…`;return(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsxs)(QP,{open:c&&!o,onOpenChange:l,children:[(0,H.jsx)($P,{asChild:!0,children:(0,H.jsxs)(q,{variant:`outline`,role:`combobox`,"aria-expanded":c,"aria-controls":u,className:`w-full justify-between font-normal text-base`,disabled:o,children:[(0,H.jsx)(`span`,{className:`truncate text-left`,children:_}),(0,H.jsx)(Ga,{className:`ml-2 size-4 shrink-0 opacity-50`})]})}),(0,H.jsx)(eF,{className:`w-(--radix-popover-trigger-width) p-0`,align:`start`,children:(0,H.jsxs)(g1,{children:[(0,H.jsx)(_1,{placeholder:`Search…`}),(0,H.jsx)(v1,{id:u,children:f?(0,H.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,H.jsx)(zC,{className:`size-4`})}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(y1,{children:`No entries found.`}),(0,H.jsx)(b1,{children:d.map(e=>{let t=p.includes(e.id);return(0,H.jsxs)(S1,{value:e.label,onSelect:()=>{o||h(e.id)},children:[(0,H.jsx)(Ba,{className:`mr-2 size-4 ${t?`opacity-100`:`opacity-0`}`}),(0,H.jsx)(`span`,{className:`truncate`,children:e.label}),(0,H.jsx)(`span`,{className:`ml-auto text-xs text-muted-foreground opacity-60 shrink-0`,children:e.id.slice(0,8)})]},e.id)})})]})})]})})]}),p.length>0&&(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:p.map(e=>(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border bg-muted px-2 py-0.5 text-xs`,children:[m(e),(0,H.jsx)(`button`,{type:`button`,onClick:()=>g(e),disabled:o,className:`text-muted-foreground hover:text-foreground`,children:(0,H.jsx)(ss,{className:`size-3`})})]},e))})]})}var X1={full:`col-span-6`,"two-thirds":`col-span-4`,half:`col-span-3`,third:`col-span-2`};function Z1({field:e,value:t,onChange:n,disabled:r=!1}){let i=Array.isArray(t)?t:[],a=e.arrayFields??[];function o(){return Object.fromEntries(a.map(e=>[e.name,e.type===`boolean`?!1:null]))}function s(){n([...i,o()])}function c(e){n(i.filter((t,n)=>n!==e))}function l(e,t){let r=e+t;if(r<0||r>=i.length)return;let a=[...i];[a[e],a[r]]=[a[r],a[e]],n(a)}function u(e,t,r){n(i.map((n,i)=>i===e?{...n,[t]:r}:n))}return a.length===0?(0,H.jsx)(`div`,{className:`flex w-full items-center justify-center rounded-md border border-dashed p-4 text-xs text-muted-foreground`,children:`No sub-fields defined for this array.`}):(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(mM,{type:`single`,collapsible:!0,className:`w-full`,children:i.map((e,t)=>(0,H.jsxs)(hM,{value:`item-${t}`,className:`mb-2 rounded-md border border-dashed last:border-b transition-colors hover:bg-accent/50`,children:[(0,H.jsxs)(`div`,{className:`relative data-[state=open]:border-b data-[state=open]:border-border/50`,children:[(0,H.jsxs)(gM,{className:`w-full py-2 pl-3 pr-24 text-muted-foreground [&>svg]:hidden`,children:[`Item `,t+1]}),(0,H.jsxs)(`div`,{className:`absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5`,children:[(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:r||t===0,onMouseDown:e=>e.stopPropagation(),onClick:()=>l(t,-1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Wa,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:r||t===i.length-1,onMouseDown:e=>e.stopPropagation(),onClick:()=>l(t,1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Va,{className:`size-3.5`})}),(0,H.jsx)(`button`,{type:`button`,onMouseDown:e=>e.stopPropagation(),onClick:()=>c(t),disabled:r,className:`flex size-6 items-center justify-center rounded text-destructive transition-colors hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(Zo,{className:`size-3.5`})})]})]}),(0,H.jsx)(_M,{className:`px-3 pt-3`,children:(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-3`,children:a.map(n=>(0,H.jsxs)(`div`,{className:X1[n.width??`full`]??`col-span-6`,children:[(0,H.jsx)(`div`,{className:`mb-1 flex items-center gap-1`,children:(0,H.jsxs)(Y,{className:`text-xs font-medium`,children:[n.name,n.required&&(0,H.jsx)(`span`,{className:`ml-0.5 text-destructive`,children:`*`})]})}),(0,H.jsx)(r0,{field:{...n,type:n.type},value:e[n.name]??null,onChange:e=>u(t,n.name,e),allValues:e,disabled:r})]},n.name))})})]},t))}),(0,H.jsxs)(`button`,{type:`button`,onClick:s,disabled:r,className:`flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed py-2 text-xs text-muted-foreground transition-colors hover:bg-accent/50`,children:[(0,H.jsx)(Lo,{className:`size-3.5`}),`Add item`]})]})}var Q1=3,$1=20;function e0({value:e,onChange:t,disabled:n=!1,depth:r=0}){let i=Array.isArray(e)?e:[],a=r+1<Q1,o=i.length<$1;function s(){return{label:``,href:``}}function c(e,n){let r=(t,i)=>{let a=e[i];return t.map((t,o)=>{if(o!==a)return t;if(i===e.length-1)return n(t);let s=Array.isArray(t.items)?t.items:[];return{...t,items:r(s,i+1)}})};t(r(i,0))}function l(e,n){let r=(t,i)=>{if(i===e.length-1){let r=e[i],a=r+n;if(a<0||a>=t.length)return t;let o=[...t];return[o[r],o[a]]=[o[a],o[r]],o}let a=e[i];return t.map((e,t)=>{if(t!==a)return e;let n=Array.isArray(e.items)?e.items:[];return{...e,items:r(n,i+1)}})};t(r(i,0))}function u(e){let n=(t,r)=>{let i=e[r];return r===e.length-1?t.filter((e,t)=>t!==i):t.map((e,t)=>{if(t!==i)return e;let a=Array.isArray(e.items)?e.items:[];return{...e,items:n(a,r+1)}})};t(n(i,0))}function d(){o&&t([...i,s()])}return i.length===0?(0,H.jsxs)(`button`,{type:`button`,onClick:d,disabled:n||!o,className:`flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed py-2 text-xs text-muted-foreground transition-colors hover:bg-accent/20`,children:[(0,H.jsx)(Lo,{className:`size-3.5`}),`Add item`]}):(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(mM,{type:`single`,collapsible:!0,className:`w-full`,children:i.map((e,t)=>{let o=[t],s=e.label?.trim()?e.label:`Item ${t+1}`;return(0,H.jsxs)(hM,{value:`navigation-item-${r}-${t}`,className:`mb-2 rounded-md border border-dashed last:border-b transition-colors hover:bg-accent/50`,children:[(0,H.jsxs)(`div`,{className:`relative data-[state=open]:border-b data-[state=open]:border-border/50`,children:[(0,H.jsx)(gM,{className:`w-full py-2 pl-3 pr-24 text-muted-foreground [&>svg]:hidden`,children:s}),(0,H.jsxs)(`div`,{className:`absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5`,children:[(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:n||t===0,onMouseDown:e=>e.stopPropagation(),onClick:()=>l(o,-1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Wa,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:n||t===i.length-1,onMouseDown:e=>e.stopPropagation(),onClick:()=>l(o,1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Va,{className:`size-3.5`})}),(0,H.jsx)(`button`,{type:`button`,onMouseDown:e=>e.stopPropagation(),onClick:()=>u(o),disabled:n,className:`flex size-6 items-center justify-center rounded text-destructive transition-colors hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(Zo,{className:`size-3.5`})})]})]}),(0,H.jsxs)(_M,{className:`px-3 pt-3`,children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-6 gap-3`,children:[(0,H.jsxs)(`div`,{className:`col-span-3`,children:[(0,H.jsx)(Y,{className:`mb-1 block text-xs font-medium`,children:`label`}),(0,H.jsx)(Sw,{className:`text-base`,value:e.label??``,onChange:e=>c(o,t=>({...t,label:e.target.value})),disabled:n})]}),(0,H.jsxs)(`div`,{className:`col-span-3`,children:[(0,H.jsx)(Y,{className:`mb-1 block text-xs font-medium`,children:`href`}),(0,H.jsx)(Sw,{className:`text-base`,value:e.href??``,onChange:e=>c(o,t=>({...t,href:e.target.value})),disabled:n})]})]}),a?(0,H.jsxs)(`div`,{className:`mt-3 border-l border-border pl-3`,children:[(0,H.jsx)(`p`,{className:`mb-2 text-[11px] uppercase tracking-wide text-muted-foreground`,children:`Child items`}),(0,H.jsx)(e0,{value:e.items??[],onChange:e=>c(o,t=>({...t,items:Array.isArray(e)&&e.length>0?e:void 0})),disabled:n,depth:r+1})]}):(0,H.jsxs)(`p`,{className:`mt-3 text-[11px] text-muted-foreground`,children:[`Maximum depth reached (`,Q1,` levels).`]})]})]},t)})}),(0,H.jsxs)(`button`,{type:`button`,onClick:d,disabled:n,className:`flex w-full items-center justify-center gap-1.5 rounded-md border border-dashed py-2 text-xs text-muted-foreground transition-colors hover:bg-accent/50`,children:[(0,H.jsx)(Lo,{className:`size-3.5`}),`Add item`]}),!o&&(0,H.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[`Maximum `,$1,` items allowed per level.`]})]})}function t0(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/^-+|-+$/g,``)}function n0({value:e,onChange:t,disabled:n=!1}){let r=(0,v.useRef)(null),i=(0,v.useRef)(null),[a,o]=(0,v.useState)(!1),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null);function p(){return o(!0),new Promise(e=>{i.current=e})}function m(e){i.current?.(e),i.current=null}function h(e){e||m(null),o(e)}async function g(e){u(!0),f(null);try{let t=await MT(e);m([{id:t.id,src:t.url,filename:t.filename,alt:t.alt,title:t.caption,width:t.width,height:t.height}]),o(!1)}catch(e){f(e instanceof Error?e.message:`Upload failed.`)}finally{u(!1),r.current&&(r.current.value=``)}}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`div`,{className:n?`pointer-events-none opacity-70`:``,children:(0,H.jsx)(b$,{value:String(e??``),onChange:t,placeholder:`Type or add your content here...`,onInsertImage:p})}),(0,H.jsx)(Jh,{open:a,onOpenChange:h,children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Insert Image`})}),(0,H.jsx)(`input`,{ref:r,type:`file`,accept:`image/*`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&g(t)}}),(0,H.jsxs)(`div`,{onDragOver:e=>e.preventDefault(),onDrop:e=>{e.preventDefault();let t=e.dataTransfer.files[0];t&&g(t)},className:`flex w-full gap-2 rounded-md border border-dashed p-3`,children:[(0,H.jsxs)(`button`,{type:`button`,disabled:l,onClick:()=>r.current?.click(),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(ns,{className:`size-4`}),l?`Uploading…`:`Upload`]}),(0,H.jsx)(`div`,{className:`w-px bg-border`}),(0,H.jsxs)(`button`,{type:`button`,disabled:l,onClick:()=>c(!0),className:`flex flex-1 items-center justify-center gap-2 rounded-md py-2 text-sm text-muted-foreground transition-colors hover:bg-muted/50 disabled:opacity-50`,children:[(0,H.jsx)(co,{className:`size-4`}),`Library`]})]}),d&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:d})]})}),(0,H.jsx)(M1,{open:s,onOpenChange:e=>{!e&&!a&&m(null),c(e)},allowedTypes:[`image`],selectionMode:`multiple`,onSelect:e=>{m(e.map(e=>({id:e.id,src:e.url,filename:e.filename,alt:e.alt,title:e.caption,width:e.width,height:e.height}))),c(!1),o(!1)}})]})}function r0({field:e,value:t,onChange:n,allValues:r,disabled:i,errorMessage:a}){let o=(0,v.useRef)(null),{timezone:s}=Sa();(0,v.useEffect)(()=>{if(e.type!==`uid`||!e.targetField)return;let i=String(t??``).trim(),a=i===``||i===o.current,s=r,c=e.targetField,l=!!s.__localizationEnabled,u=s[c];if(u!=null&&String(u).trim()!==``){if(!a)return;let e=t0(String(u));e!==i&&(o.current=e,n(e));return}let d=s.localized&&typeof s.localized==`object`?s.localized:{};if(l){let e=typeof s.__defaultLocale==`string`?s.__defaultLocale:void 0,t=e&&d[e]&&typeof d[e]==`object`?d[e]:null;if(t&&t[c]!==void 0&&String(t[c]).trim()!==``){if(!a)return;let e=t0(String(t[c]));e!==i&&(o.current=e,n(e))}return}let f=Object.keys(d).filter(e=>!e.startsWith(`_`));for(let e of f){let t=d[e]&&typeof d[e]==`object`?d[e]:null;if(t&&t[c]!==void 0&&String(t[c]).trim()!==``){if(!a)return;let e=t0(String(t[c]));e!==i&&(o.current=e,n(e));return}}},[t,e.type,e.targetField,r[e.targetField??``],JSON.stringify(r.localized??{}),r.__localizationEnabled]);let c=`w-full`;return e.type===`boolean`?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,H.jsx)(PT,{id:`field-${e.name}`,checked:!!t,onCheckedChange:e=>n(!!e),disabled:!!i}),(0,H.jsx)(Y,{htmlFor:`field-${e.name}`,className:`cursor-pointer font-normal text-base`,children:t?`Yes`:`No`})]}):e.type===`richtext`?(0,H.jsx)(n0,{value:t,onChange:n,disabled:!!i}):e.type===`text`?(0,H.jsx)(lE,{className:K(c,`text-base`),value:String(t??``),placeholder:E1(e.name),onChange:e=>n(e.target.value),disabled:!!i}):e.type===`number`?e.subtype===`float`?(0,H.jsx)(I1,{value:t,onChange:n,disabled:!!i}):(0,H.jsx)(Sw,{type:`number`,className:K(c,`text-base!`),value:t==null?``:String(t),step:`1`,placeholder:`0`,onChange:e=>{let t=e.target.value;if(t===``){n(null);return}n(parseInt(t,10))},disabled:!!i}):e.type===`datetime`?(0,H.jsx)(z1,{value:t,onChange:n,timezone:s,disabled:!!i}):e.type===`uid`?(0,H.jsxs)(`div`,{children:[(0,H.jsx)(Sw,{className:K(c,`text-base md:text-base`,a?`border-destructive focus-visible:ring-destructive/20`:``),value:String(t??``),placeholder:`auto-generated`,onChange:e=>{n(e.target.value)},disabled:!!i}),a&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:a})]}):e.type===`media`?(0,H.jsx)(N1,{value:t,onChange:n,allowedTypes:e.allowedTypes,disabled:!!i}):e.type===`media-gallery`?(0,H.jsx)(F1,{value:t,onChange:n,disabled:!!i}):e.type===`relation`?(0,H.jsx)(Y1,{relationType:e.relationType??`many-to-one`,relatedTable:e.relatedTable??``,relatedField:e.relatedField??``,currentEntryId:String(r.id??``),value:t,onChange:n,disabled:!!i}):e.type===`array`?(0,H.jsx)(Z1,{field:e,value:t,onChange:n,disabled:!!i}):e.type===`mixed`?(0,H.jsx)(R1,{value:t,onChange:n,inputId:`field-${e.name}-mixed-boolean`,disabled:!!i}):e.type===`navigation`?(0,H.jsx)(e0,{value:t,onChange:n,disabled:!!i}):(0,H.jsx)(Sw,{className:K(c,`text-base md:text-base`),value:String(t??``),placeholder:E1(e.name),onChange:e=>n(e.target.value),disabled:!!i})}function i0(e,t){switch(e){case`string`:return{icon:$o,label:`Text (string)`,color:`text-blue-600`,bg:`bg-blue-50`};case`text`:return{icon:Jo,label:`Long text (string)`,color:`text-sky-600`,bg:`bg-sky-50`};case`richtext`:return{icon:ao,label:`Rich text (blocks)`,color:`text-violet-600`,bg:`bg-violet-50`};case`number`:return{icon:po,label:t===`float`?`Decimal (number)`:`Integer (number)`,color:`text-orange-600`,bg:`bg-orange-50`};case`boolean`:return{icon:Xo,label:`Boolean`,color:`text-emerald-600`,bg:`bg-emerald-50`};case`datetime`:return{icon:Ra,label:`Date & time`,color:`text-amber-600`,bg:`bg-amber-50`};case`media`:return{icon:vo,label:`Media`,color:`text-rose-600`,bg:`bg-rose-50`};case`mixed`:return{icon:To,label:`Mixed value`,color:`text-fuchsia-600`,bg:`bg-fuchsia-50`};case`media-gallery`:return{icon:wo,label:`Media Gallery`,color:`text-pink-600`,bg:`bg-pink-50`};case`relation`:return{icon:Eo,label:`Relation`,color:`text-indigo-600`,bg:`bg-indigo-50`};case`uid`:return{icon:so,label:`UID`,color:`text-teal-600`,bg:`bg-teal-50`};case`array`:return{icon:To,label:`Array`,color:`text-cyan-600`,bg:`bg-cyan-50`};case`navigation`:return{icon:Oo,label:`Navigation`,color:`text-cyan-600`,bg:`bg-cyan-50`}}}var a0={full:`col-span-6`,"two-thirds":`col-span-4`,half:`col-span-3`,third:`col-span-2`},o0={string:`half`,text:`full`,richtext:`full`,number:`third`,boolean:`third`,datetime:`half`,media:`half`,"media-gallery":`full`,relation:`half`,uid:`half`,array:`full`,navigation:`full`};function s0({width:e}){let t=`rounded-sm bg-current`;return e===`full`?(0,H.jsx)(`div`,{className:`flex w-4 gap-px`,children:(0,H.jsx)(`div`,{className:`${t} h-2 w-full`})}):e===`two-thirds`?(0,H.jsxs)(`div`,{className:`flex w-4 gap-px`,children:[(0,H.jsx)(`div`,{className:`${t} h-2 flex-1`}),(0,H.jsx)(`div`,{className:`${t} h-2 flex-1`}),(0,H.jsx)(`div`,{className:`h-2 flex-1 rounded-sm bg-current opacity-25`})]}):e===`half`?(0,H.jsxs)(`div`,{className:`flex w-4 gap-px`,children:[(0,H.jsx)(`div`,{className:`${t} h-2 flex-1`}),(0,H.jsx)(`div`,{className:`${t} h-2 flex-1`})]}):(0,H.jsxs)(`div`,{className:`flex w-4 gap-px`,children:[(0,H.jsx)(`div`,{className:`${t} h-2 flex-1`}),(0,H.jsx)(`div`,{className:`h-2 flex-1 rounded-sm bg-current opacity-25`}),(0,H.jsx)(`div`,{className:`h-2 flex-1 rounded-sm bg-current opacity-25`})]})}var c0=[{value:`full`,label:`Full width`},{value:`half`,label:`Half`},{value:`third`,label:`1/3`},{value:`two-thirds`,label:`2/3`}];function l0({field:e,onWidthChange:t,onArraySubFieldWidthChange:n,onEdit:r,onDelete:i,dragListeners:a,dragAttributes:o}){let{icon:s,label:c,color:l,bg:u}=i0(e.type,e.subtype),d=e.width??`full`,f=!!a,p=e.type===`array`;return(0,H.jsxs)(`div`,{className:`rounded-lg border border-border bg-card shadow-xs`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-3`,children:[f&&(0,H.jsx)(`button`,{type:`button`,className:`flex shrink-0 cursor-grab items-center text-muted-foreground/40 hover:text-muted-foreground active:cursor-grabbing`,...a,...o,children:(0,H.jsx)(fo,{className:`size-4`})}),(0,H.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-md ${u}`,children:(0,H.jsx)(s,{className:`size-4 ${l}`})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,H.jsxs)(`p`,{className:`truncate text-sm font-medium leading-tight`,children:[e.name,e.required&&(0,H.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`})]}),e.relationType===`one-to-many`&&(0,H.jsx)(`span`,{className:`shrink-0 rounded border border-indigo-200 bg-indigo-50 px-1 py-px text-[10px] font-medium text-indigo-600`,children:`Auto`})]}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.relationType===`one-to-many`?`Inverse relation · read-only`:c})]}),t&&!p&&(0,H.jsx)(`div`,{className:`flex shrink-0 items-center gap-px rounded-md border border-border p-0.5`,children:c0.map(({value:e,label:n})=>(0,H.jsx)(`button`,{type:`button`,title:n,onClick:()=>t(e),className:[`flex items-center justify-center rounded px-1.5 py-1 transition-colors`,d===e?`bg-foreground text-background`:`text-muted-foreground hover:text-foreground`].join(` `),children:(0,H.jsx)(s0,{width:e})},e))}),(r||i)&&(0,H.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[r&&(0,H.jsx)(`button`,{type:`button`,title:`Edit field`,onClick:r,className:`flex size-7 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(Io,{className:`size-3.5`})}),i&&(0,H.jsx)(`button`,{type:`button`,title:`Delete field`,onClick:i,className:`flex size-7 items-center justify-center rounded text-muted-foreground transition-colors hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(Zo,{className:`size-3.5`})})]})]}),p&&e.arrayFields&&e.arrayFields.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-2 px-3 pb-3`,children:e.arrayFields.map(e=>{let t=i0(e.type,e.subtype),r=t.icon;return(0,H.jsxs)(`div`,{className:`${a0[e.width??`full`]} rounded-md border border-dashed border-border p-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(`div`,{className:`flex size-5 shrink-0 items-center justify-center rounded ${t.bg}`,children:(0,H.jsx)(r,{className:`size-3 ${t.color}`})}),(0,H.jsxs)(`span`,{className:`truncate text-xs font-medium`,children:[e.name,e.required&&(0,H.jsx)(`span`,{className:`ml-0.5 text-destructive`,children:`*`})]})]}),(0,H.jsx)(`p`,{className:`mt-0.5 truncate pl-6 text-[10px] text-muted-foreground`,children:t.label}),n&&(0,H.jsx)(`div`,{className:`mt-1 flex items-center gap-px rounded-md border border-border p-0.5`,children:c0.map(({value:t,label:r})=>(0,H.jsx)(`button`,{type:`button`,title:r,onClick:()=>n(e.name,t),className:[`flex items-center justify-center rounded px-1.5 py-1 transition-colors`,(e.width??`full`)===t?`bg-foreground text-background`:`text-muted-foreground hover:text-foreground`].join(` `),children:(0,H.jsx)(s0,{width:t})},t))})]},e.name)})})]})}function u0({ct:e,values:t,id:n,activeLocale:r,localizationEnabled:i,defaultLocale:a,readOnly:o,uidErrorField:s,setUidErrorField:c,handleLocalizedChange:l,handleChange:u}){return(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-4`,children:e.fields.map(d=>{let f=[`string`,`text`,`richtext`].includes(d.type),p=t.localized&&t.localized[r]?t.localized[r][d.name]:void 0,m=f&&i?p:t[d.name],h=d.type===`uid`&&d.targetField&&i&&[`string`,`text`,`richtext`].includes(e.fields.find(e=>e.name===d.targetField)?.type??``);return(0,H.jsx)(`div`,{className:a0[d.width??`full`],children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsxs)(Y,{htmlFor:`entry-${d.name}`,className:`capitalize`,children:[d.name.replace(/_/g,` `),d.required&&(0,H.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`})]}),(0,H.jsx)(r0,{field:d,value:m,onChange:e=>{d.type===`uid`&&s===d.name&&c(null),f&&i?l(r,d.name,e):u(d.name,e)},allValues:{...t,id:n,__activeLocale:r,__localizationEnabled:i,__defaultLocale:a},disabled:!!h||o,errorMessage:d.type===`uid`&&s===d.name?`${d.name} already exists.`:void 0})]})},d.name)})})}function d0({isNew:e,canDeleteCurrentEntry:t,isReadOnlySingle:n,deleting:r,onDeleteClick:i,status:a,readOnly:o,onRevertToDraft:s,busy:c,patching:l,showReviewerControl:u,assignedEditorId:d,assignedEditorAvatarUrl:f,assignedEditorFirstName:p,assignedEditorLastName:m,reviewerLabel:h,handleAssignEditor:g,canManageReviewer:_,isEditorRole:v,reviewerCandidates:y,showReviewerInfo:b,showReviewEditButton:x,onToggleReviewLock:S,showRejectButton:C,onReject:w,supportsPreviewUI:T,previewEnabled:E,canOpenPreview:D,onOpenPreview:O,previewSetupError:k,previewHint:A,onSaveDraft:j,editorialMode:M,saveDraftEnabled:N,onOpenScheduler:P,isContributorRole:F,canPublish:I,onPublish:L,publishLabel:R,isPublishedStale:ee}){return(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!e&&t&&!n&&(0,H.jsx)(q,{variant:`ghost`,size:`icon`,className:`text-muted-foreground hover:text-destructive`,onClick:i,disabled:r,children:(0,H.jsx)(Zo,{className:`size-4`})}),!e&&a===`published`&&!o&&(0,H.jsxs)(q,{variant:`outline`,onClick:s,disabled:c,children:[l?(0,H.jsx)(zC,{className:`size-4`}):null,`Revert to draft`]}),!e&&a===`scheduled`&&!o&&(0,H.jsxs)(q,{variant:`outline`,onClick:s,disabled:c,children:[l?(0,H.jsx)(zC,{className:`size-4`}):null,`Cancel schedule`]}),u&&(0,H.jsxs)(V_,{value:d??`none`,onValueChange:g,disabled:!_||c,children:[(0,H.jsx)(W_,{className:`h-10 min-h-10 max-h-10 w-42 py-0`,children:(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(mw,{avatarUrl:f??null,firstName:p??null,lastName:m??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,H.jsx)(U_,{placeholder:h||`Assign editor`})]})}),(0,H.jsxs)(q_,{children:[!v&&(0,H.jsx)(Y_,{value:`none`,children:`Unassign`}),y.map(e=>(0,H.jsx)(Y_,{value:e.id,children:e.first_name||e.last_name||e.id},e.id))]})]}),!_&&b&&(0,H.jsxs)(`div`,{className:`inline-flex h-10 items-center gap-2 rounded-md border border-input px-3 text-sm`,children:[(0,H.jsx)(mw,{avatarUrl:f??null,firstName:p??null,lastName:m??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,H.jsx)(`span`,{children:h||`Assigned editor`})]}),x&&(0,H.jsx)(q,{variant:`outline`,size:`icon`,onClick:S,disabled:c,children:(0,H.jsx)(Io,{className:`size-4`})}),C&&(0,H.jsx)(q,{variant:`outline`,size:`icon`,onClick:w,disabled:c,children:(0,H.jsx)(ss,{className:`size-4`})}),T&&E&&D&&(0,H.jsx)(q,{variant:`outline`,onClick:O,disabled:o||c||!!k,title:A??void 0,children:`Open preview`}),(0,H.jsxs)(q,{variant:`outline`,onClick:j,size:M?`icon`:`default`,disabled:!N,children:[c?(0,H.jsx)(zC,{className:`size-4`}):M?(0,H.jsx)(Vo,{className:`size-4`}):null,!M&&(a===`scheduled`?`Save draft (cancel schedule)`:`Save draft`)]}),a!==`scheduled`&&!(M&&F)&&(0,H.jsxs)(q,{variant:`outline`,onClick:P,size:M?`icon`:`default`,disabled:o||c,children:[(0,H.jsx)(La,{className:`size-4`}),!M&&`Schedule`]}),(0,H.jsxs)(q,{onClick:L,disabled:o||!I||c,children:[l?(0,H.jsx)(zC,{className:`size-4`}):null,a===`scheduled`?M&&F?`Review`:`Publish now`:a===`published`&&!ee?`Republish`:R]})]})}function f0({status:e,scheduledFor:t,timezone:n,reviewRejected:r,isPublishedStale:i}){return e===`scheduled`?(0,H.jsxs)(RC,{variant:`outline`,className:`border-blue-500 text-blue-600`,children:[(0,H.jsx)(La,{className:`mr-1 size-3`}),t?`Scheduled · ${sv(t,n)}`:`Scheduled`]}):e===`pending`?r?(0,H.jsx)(RC,{variant:`destructive`,children:`Pending`}):(0,H.jsx)(RC,{className:`bg-amber-500 text-black hover:bg-amber-500`,children:`Pending`}):e===`in_review`?(0,H.jsx)(RC,{variant:`outline`,children:`In Review`}):e===`published`?(0,H.jsx)(RC,{variant:i?`secondary`:`default`,children:i?`Published (pending changes)`:`Published`}):(0,H.jsx)(RC,{variant:`secondary`,children:`Draft`})}function p0({localizationEnabled:e,onToggleLocalization:t,readOnly:n,activeLocale:r,onActiveLocaleChange:i,locales:a}){return(0,H.jsxs)(`div`,{className:`mb-4 flex items-center justify-between`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(lD,{checked:e,onCheckedChange:t,disabled:n}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-sm font-medium`,children:`Localization`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Enable per-entry localization`})]})]}),(0,H.jsx)(`div`,{})]}),(0,H.jsx)(`div`,{children:e&&(0,H.jsx)(_E,{value:r,onValueChange:i,children:(0,H.jsx)(vE,{children:a.map(e=>(0,H.jsx)(yE,{value:e,disabled:n,children:e.toUpperCase()},e))})})})]})}function m0({visible:e,readOnly:t,calOpen:n,onCalOpenChange:r,schedDate:i,onSchedDateChange:a,schedTime:o,onSchedTimeChange:s,onConfirm:c,onCancel:l,canSchedule:u,busy:d}){return!e||t?null:(0,H.jsxs)(`div`,{className:`mb-6 flex items-end gap-2 rounded-lg border bg-muted/30 p-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Date`}),(0,H.jsxs)(QP,{open:n,onOpenChange:r,children:[(0,H.jsx)($P,{asChild:!0,children:(0,H.jsxs)(q,{variant:`outline`,className:`w-40 justify-between font-normal`,children:[i?UO(i,`MMM d, yyyy`):`Select date`,(0,H.jsx)(Va,{className:`size-4 opacity-50`})]})}),(0,H.jsx)(eF,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,H.jsx)(XP,{mode:`single`,selected:i,captionLayout:`dropdown`,defaultMonth:i??new Date,disabled:{before:new Date},onSelect:e=>{a(e),r(!1)}})})]})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsxs)(Y,{children:[`Time `,(0,H.jsx)(`span`,{className:`font-normal text-muted-foreground`,children:`(24h)`})]}),(0,H.jsx)(Sw,{type:`time`,className:`w-32 appearance-none bg-background [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`,value:o,onChange:e=>s(e.target.value)})]}),(0,H.jsxs)(q,{onClick:c,disabled:!u||d,children:[d?(0,H.jsx)(zC,{className:`size-4`}):null,`Confirm`]}),(0,H.jsx)(q,{variant:`ghost`,onClick:l,children:`Cancel`})]})}function h0(e){return Array.isArray(e)?e.map(h0):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,h0(t)])):e}function g0(e){return JSON.stringify(h0(e))}function _0(e){let t=e.match(/Field "([^"]+)" already exists\.?/);return t?t[1]??null:null}var v0=null,y0=new Set([`string`,`text`,`richtext`]);function b0(){let{slug:e,id:t}=gr(),n=fr(),r=!t,{timezone:i,locales:a,defaultLocale:o,editorialMode:s}=Sa(),{user:c,status:l}=_a(),u=c?.role?.toLowerCase()??``,{data:d,loading:f}=fs(e?`/cms/admin/content-types/${e}`:null),{data:p}=fs(`/cms/admin/client-settings`),{data:m,loading:h}=fs(e&&t?`/cms/admin/entries/${e}/${t}`:null),{data:g}=fs(s&&[`editor`,`admin`,`super admin`].includes(c?.role?.toLowerCase()??``)?`/cms/admin/users`:null),{loading:_,request:y}=xw(),{loading:b,request:x}=xw(),{loading:S,request:C}=xw(),[w,T]=(0,v.useState)({}),[E,D]=(0,v.useState)([]),[O,k]=(0,v.useState)(``),[A,j]=(0,v.useState)(!1),[M,N]=(0,v.useState)(`draft`),[P,F]=(0,v.useState)(``),[I,L]=(0,v.useState)(!1),[R,ee]=(0,v.useState)(!1),[te,ne]=(0,v.useState)(!1),[z,B]=(0,v.useState)(null),[re,V]=(0,v.useState)(null),[ie,ae]=(0,v.useState)(null),[oe,se]=(0,v.useState)(null),[ce,le]=(0,v.useState)(!1),[ue,de]=(0,v.useState)(null),[fe,pe]=(0,v.useState)(!1),[me,he]=(0,v.useState)(!1),[ge,_e]=(0,v.useState)(),[ve,ye]=(0,v.useState)(`09:00`),be=(0,v.useRef)(`{}`),xe=(0,v.useRef)(!1),Se=vD(p),Ce=d?.kind===`collection`&&d.previewEnabled!==!1,we=d?yD(Se,d.fields.map(e=>e.name)):null,Te=Ce&&Se.enabled&&!we,Ee=Ce&&Se.enabled&&we?we:Ce&&Se.enabled?null:`Preview is disabled. Configure Settings > Overview > Preview to enable it.`;(0,v.useEffect)(()=>{if(r){let e={};d?.fields.forEach(t=>{e[t.name]=t.type===`boolean`?!1:``}),e.localized={};let t=a&&a.length>0?a:[`en`];D(t),k(o??t[0]),j(!1),T(e),N(`draft`),F(``),L(!1),ne(!1),B(null),V(null),ae(null),se(null),le(!1),de(null),be.current=g0(e);return}if(!m||!d)return;let e={};d.fields.forEach(t=>{e[t.name]=m[t.name]??(t.type===`boolean`?!1:``)});let t=m.localized,n=t&&typeof t==`object`?t:{};e.localized=n;let s=Object.keys(n).filter(e=>!e.startsWith(`_`)),c=(n._meta||{}).enabled??s.length>0;if(s.length>0)D(s),k(s[0]);else{let e=a&&a.length>0?a:[`en`];D(e),k(o??e[0])}if(j(!!c),T(e),N(m.status??`draft`),ne(!!m.review_rejected),B(m.editor_id??null),V(m._editor_first_name??null),ae(m._editor_last_name??null),se(m._editor_avatar_url??null),le(!1),de(null),be.current=g0(e),m.scheduled_for?(F(m.scheduled_for),_e(new Date(m.scheduled_for)),ye(cv(m.scheduled_for,i))):F(``),m.status===`published`&&m.published_data){let t=(e,t)=>{if(t===`datetime`&&e&&typeof e==`string`){let t=/Z|[+-]\d{2}:\d{2}$/.test(e)?e:e+`Z`,n=new Date(t);return isNaN(n.getTime())?e:n.toISOString()}return e},n={},r={};d.fields.forEach(i=>{i.name in m.published_data&&(n[i.name]=t(m.published_data[i.name]??(i.type===`boolean`?!1:``),i.type),r[i.name]=t(e[i.name],i.type))}),L(g0(r)!==g0(n))}else L(!1)},[m,d,r]);let De=g0(w)!==be.current,Oe=Ir((0,v.useCallback)(()=>xe.current?!1:De,[De]));function ke(e,t){T(n=>({...n,[e]:t}))}function Ae(e,t,n){T(r=>{let i={...r},a=i.localized&&typeof i.localized==`object`?i.localized:{},o=a[e]&&typeof a[e]==`object`?a[e]:{};return o[t]=n,a[e]=o,i.localized=a,i})}function je(e){j(e),T(t=>{let n={...t},r=n.localized&&typeof n.localized==`object`?n.localized:{};if(r._meta||={},e&&o){if(!(r[o]&&typeof r[o]==`object`&&r[o])&&(r[o]={},d&&d.fields)){let e=r[o];d.fields.forEach(t=>{if([`string`,`text`,`richtext`].includes(t.type)){let r=n[t.name];r!=null&&r!==``&&(e[t.name]=r)}})}r._meta.primary=o}else if(!e&&o){let e=r[o]&&typeof r[o]==`object`?r[o]:null;e&&d&&d.fields&&d.fields.forEach(t=>{if([`string`,`text`,`richtext`,`uid`].includes(t.type)){let r=e[t.name];r!==void 0&&(n[t.name]=r)}})}return r._meta.enabled=e,n.localized=r,n})}function Me(){if(P)_e(new Date(P)),ye(cv(P,i));else{let e=new Date;e.setDate(e.getDate()+1),_e(e),ye(`09:00`)}pe(!0)}async function Ne(){if(!e||!d)return null;de(null);let n={},i=A&&w.localized&&typeof w.localized==`object`&&w.localized[o]&&typeof w.localized[o]==`object`?w.localized[o]:null;if(d.fields.forEach(e=>{let t=w[e.name];(t==null||t===``)&&i&&i[e.name]!==void 0&&(t=i[e.name]),e.type===`media`&&t===null?n[e.name]=null:(t===``&&y0.has(e.type)||t!==``&&t!=null)&&(n[e.name]=t)}),w.localized&&Object.keys(w.localized).length>0){let e=w.localized;e._meta||={},e._meta.enabled=A,e._meta.primary=o,n.localized=e}try{let i=await y(r?`/cms/admin/content-types/${e}/entries`:`/cms/admin/entries/${e}/${t}`,r?`POST`:`PUT`,n);return be.current=g0(w),i}catch(e){let t=_0(e instanceof Error?e.message:``);return t&&d.fields.some(e=>e.type===`uid`&&e.name===t)&&de(t),X.error(`Could not save draft`),null}}function Pe(e){!v0||v0.closed||(v0.location.href=e,v0.focus())}async function Fe(i){let a=await Ne();if(!a)return null;let o=a,s=M;if(M===`scheduled`){let n=r?a.id:t;try{o=await x(`/cms/admin/entries/${e}/${n}/status`,`PATCH`,{status:`draft`}),s=`draft`,N(`draft`),F(``),pe(!1)}catch{return X.error(`Could not save draft`),null}}else M===`published`&&(s=`published`,L(!0));if(i&&e&&Te&&!Se.syncUrl){let t=bD({config:Se,contentType:e,entry:o,status:s});t&&Pe(t)}return X.success(`Draft saved`),r&&(xe.current=!0,n(`/content/${e}/${o.id}`,{replace:!0})),{entry:o,status:s}}async function Ie(){await Fe(!0)}async function Le(){if(!e||!d||!Se.enabled||!ft)return;if(we){X.error(we);return}let n=m??null,i=M;if(r||De){let e=await Fe(!1);if(!e)return;n=e.entry,i=e.status}let a=bD({config:Se,contentType:e,entry:n??{...w,id:t,status:M},status:i});if(!a){X.error(`Preview URL could not be resolved for this entry.`);return}if(v0=window.open(a,hD),!v0){X.error(`Preview window was blocked by the browser.`);return}v0.focus()}async function Re(){if(!e)return;let i=t;if(De||r){let e=await Ne();if(!e)return;i=r?e.id:t,r&&(xe.current=!0)}let a=s&&(u===`contributor`||u===``||l!==`authenticated`);try{let t=await x(`/cms/admin/entries/${e}/${i}/status`,`PATCH`,{status:a?`pending`:`published`,review_rejected:!1});N(t?.status??(a?`pending`:`published`)),ne(!!t?.review_rejected),B(t?.editor_id??z),V(t?._editor_first_name??re),ae(t?._editor_last_name??ie),se(t?._editor_avatar_url??oe),F(``),L(!1),pe(!1),le(!1),X.success(`Entry published`),r&&n(`/content/${e}/${i}`,{replace:!0})}catch{X.error(`Could not publish entry`),r&&i&&n(`/content/${e}/${i}`,{replace:!0})}}async function ze(){if(!e||!ge||!ve)return;let a=lv(ge,ve,i);if(new Date(a)<=new Date)return;let o=t;if(De||r){let e=await Ne();if(!e)return;o=r?e.id:t,r&&(xe.current=!0)}try{await x(`/cms/admin/entries/${e}/${o}/status`,`PATCH`,{status:`scheduled`,scheduled_for:a}),N(`scheduled`),F(a),pe(!1),X.success(`Entry scheduled`),r&&n(`/content/${e}/${o}`,{replace:!0})}catch{X.error(`Could not schedule entry`),r&&o&&n(`/content/${e}/${o}`,{replace:!0})}}async function Be(){if(!(!e||!t))try{await x(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`draft`}),N(`draft`),F(``),L(!1),X.success(`Reverted to draft`)}catch{X.error(`Could not revert entry`)}}async function Ve(){if(!(!e||!t))try{await C(`/cms/admin/entries/${e}/${t}`,`DELETE`),X.success(`Entry deleted`),xe.current=!0,n(`/content/${e}`,{replace:!0})}catch{X.error(`Could not delete entry`)}}async function He(n){if(!e||!t)return;let r=n===`none`?null:n;try{let n=await x(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`in_review`,editor_id:r,review_locked_by_editor:m?.review_locked_by_editor??!1});N(n?.status??`in_review`),ne(!!n?.review_rejected),B(n?.editor_id??r),V(n?._editor_first_name??null),ae(n?._editor_last_name??null),se(n?._editor_avatar_url??null),le(!1),X.success(`Editor assigned`)}catch{X.error(`Could not assign editor`)}}async function Ue(){le(e=>!e)}async function We(){if(!(!e||!t))try{let n=await x(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`pending`,review_rejected:!0});N(n?.status??`pending`),ne(!!n?.review_rejected),le(!1),X.success(`Entry rejected`)}catch{X.error(`Could not reject entry`)}}let Ge=f||!r&&h,Ke=_||b,qe=c?.permissions??[],Je=qe.includes(`*`)||qe.includes(`entries:write`),Ye=qe.includes(`*`)||qe.includes(`entries:delete`),Xe=u===`contributor`,Ze=u===`editor`,Qe=[`admin`,`super admin`].includes(u),$e=u===`viewer`,et=Xe||Ze,tt=Xe&&d?.kind===`single`,nt=r||String(m?.created_by??``)===String(c?.id??``),rt=s&&Xe&&M===`in_review`,it=s&&(Ze||Qe)&&!!z&&z===c?.id,at=it&&(M===`pending`||M===`in_review`)&&!te,ot=$e||!Je||tt||Xe&&!nt||s&&Xe&&M===`pending`&&!te||rt||s&&(Ze||Qe)&&(M===`pending`||M===`in_review`)&&(!it||!ce),st=Ye&&(!et||nt),ct=s&&Xe&&M===`pending`&&(te?!0:De)||De||M===`draft`||M===`scheduled`||!s&&M===`pending`||s&&M===`pending`&&!Xe||s&&M===`in_review`&&!Xe||I,lt=!!(ge&&ve),ut=s&&Xe?`Review`:`Publish`,dt=Ce,ft=M===`draft`||M===`scheduled`||M===`pending`||M===`in_review`||M===`published`&&I,pt=!ot&&!Ke&&(M===`scheduled`?!0:De);if(mD(`mod+s`,Ie,{enabled:pt,label:`Save draft`}),mD(`mod+shift+p`,Re,{enabled:ct&&!Ke&&!ot,label:`Publish`}),Ge)return(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]});if(!d)return null;let mt=(g??[]).filter(e=>Ze?e.id===c?.id:Qe?e.id===c?.id||(e.role_name??``).toLowerCase()===`editor`:!1),ht=!r&&s&&(Ze||Qe)&&(M===`pending`||M===`in_review`),gt=s&&!r&&ht,_t=s&&!r&&!!z,vt=at,yt=at,bt=re||ie;return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:r?`New entry`:`Edit entry`}),(0,H.jsx)(f0,{status:M,scheduledFor:P,timezone:i,reviewRejected:te,isPublishedStale:I})]}),(0,H.jsx)(`p`,{className:`text-muted-foreground text-xs mt-1`,children:d.name}),dt&&Se.enabled&&we&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-amber-600`,children:we})]}),(0,H.jsx)(d0,{isNew:r,canDeleteCurrentEntry:st,isReadOnlySingle:tt,deleting:S,onDeleteClick:()=>ee(!0),status:M,readOnly:ot,onRevertToDraft:Be,busy:Ke,patching:b,showReviewerControl:gt,assignedEditorId:z,assignedEditorAvatarUrl:oe,assignedEditorFirstName:re,assignedEditorLastName:ie,reviewerLabel:bt,handleAssignEditor:He,canManageReviewer:ht,isEditorRole:Ze,reviewerCandidates:mt,showReviewerInfo:_t,showReviewEditButton:vt,onToggleReviewLock:Ue,showRejectButton:yt,onReject:We,supportsPreviewUI:dt,previewEnabled:Se.enabled,canOpenPreview:ft,onOpenPreview:Le,previewSetupError:we,previewHint:Ee,onSaveDraft:Ie,editorialMode:s,saveDraftEnabled:pt,onOpenScheduler:Me,isContributorRole:Xe,canPublish:ct,onPublish:Re,publishLabel:ut,isPublishedStale:I})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsx)(m0,{visible:fe,readOnly:ot,calOpen:me,onCalOpenChange:he,schedDate:ge,onSchedDateChange:_e,schedTime:ve,onSchedTimeChange:ye,onConfirm:ze,onCancel:()=>pe(!1),canSchedule:lt,busy:Ke}),(0,H.jsx)(p0,{localizationEnabled:A,onToggleLocalization:je,readOnly:ot,activeLocale:O,onActiveLocaleChange:k,locales:E}),(0,H.jsx)(u0,{ct:d,values:w,id:t,activeLocale:O,localizationEnabled:A,defaultLocale:o,readOnly:ot,uidErrorField:ue,setUidErrorField:de,handleLocalizedChange:Ae,handleChange:ke}),(0,H.jsx)(Jh,{open:R,onOpenChange:ee,children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Delete this entry?`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone.`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>ee(!1),children:`Cancel`}),(0,H.jsxs)(q,{variant:`destructive`,onClick:Ve,disabled:S,children:[S?(0,H.jsx)(zC,{className:`size-4`}):null,`Delete`]})]})]})}),(0,H.jsx)(Jh,{open:Oe.state===`blocked`,onOpenChange:()=>Oe.reset?.(),children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Unsaved changes`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Leave without saving?`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>Oe.reset?.(),children:`Stay`}),(0,H.jsx)(q,{variant:`destructive`,onClick:()=>Oe.proceed?.(),children:`Leave`})]})]})})]})]})}function x0({className:e,orientation:t=`horizontal`,decorative:n=!0,...r}){return(0,H.jsx)(iC,{"data-slot":`separator`,decorative:n,orientation:t,className:K(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px`,e),...r})}var S0=js(`group/field flex w-full gap-3 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:[`flex-col [&>*]:w-full [&>.sr-only]:w-auto`],horizontal:[`flex-row items-center`,`[&>[data-slot=field-label]]:flex-auto`,`has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`],responsive:[`flex-col @md/field-group:flex-row @md/field-group:items-center [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto`,`@md/field-group:[&>[data-slot=field-label]]:flex-auto`,`@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`]}},defaultVariants:{orientation:`vertical`}});function C0({className:e,orientation:t=`vertical`,...n}){return(0,H.jsx)(`div`,{role:`group`,"data-slot":`field`,"data-orientation":t,className:K(S0({orientation:t}),e),...n})}function w0({className:e,...t}){return(0,H.jsx)(Y,{"data-slot":`field-label`,className:K(`group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50`,`has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4`,`has-data-[state=checked]:border-primary has-data-[state=checked]:bg-primary/5 dark:has-data-[state=checked]:bg-primary/10`,e),...t})}function T0({page:e,totalPages:t,limit:n,onPageChange:r,onLimitChange:i}){return(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,H.jsxs)(C0,{orientation:`horizontal`,className:`w-fit`,children:[(0,H.jsx)(w0,{htmlFor:`select-rows-per-page`,children:`Rows per page`}),(0,H.jsxs)(V_,{value:String(n),onValueChange:e=>i(Number(e)),children:[(0,H.jsx)(W_,{className:`w-20`,id:`select-rows-per-page`,children:(0,H.jsx)(U_,{})}),(0,H.jsx)(q_,{align:`start`,children:(0,H.jsxs)(H_,{children:[(0,H.jsx)(Y_,{value:`10`,children:`10`}),(0,H.jsx)(Y_,{value:`30`,children:`30`}),(0,H.jsx)(Y_,{value:`50`,children:`50`}),(0,H.jsx)(Y_,{value:`70`,children:`70`}),(0,H.jsx)(Y_,{value:`100`,children:`100`})]})})]})]}),(0,H.jsx)(FT,{className:`mx-0 w-auto`,children:(0,H.jsxs)(IT,{children:[(0,H.jsx)(LT,{children:(0,H.jsx)(zT,{href:`#`,onClick:t=>{t.preventDefault(),e>1&&r(e-1)},"aria-disabled":e===1,className:e===1?`pointer-events-none opacity-50`:``})}),(0,H.jsx)(LT,{children:(0,H.jsx)(BT,{href:`#`,onClick:n=>{n.preventDefault(),e<t&&r(e+1)},"aria-disabled":e===t,className:e===t?`pointer-events-none opacity-50`:``})})]})})]})}var E0={field:`created_at`,dir:`desc`},D0=[{name:`created_at`,label:`Created`},{name:`updated_at`,label:`Updated`},{name:`published_at`,label:`Published`}],O0=[{name:`created_at`,label:`Created`},{name:`updated_at`,label:`Updated`},{name:`pub_sch`,label:`Published`}],k0={draft:`Draft`,scheduled:`Scheduled`,published:`Published`,pending:`Pending`,in_review:`In Review`},A0=[`draft`,`pending`,`in_review`,`scheduled`,`published`];function j0(e){return e.replace(/_/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function M0(e){if(!e)return null;let t=Number.parseInt(e.staleDraftDays??`30`,10);return{contentTypes:(()=>{try{let t=JSON.parse(e.contentTypes??`[]`);return Array.isArray(t)?t.filter(e=>typeof e==`object`&&!!e).map(e=>({slug:typeof e.slug==`string`?e.slug:``,enabled:e.enabled!==!1,checkStaleDrafts:e.checkStaleDrafts!==!1,requiredTextFields:Array.isArray(e.requiredTextFields)?e.requiredTextFields.filter(e=>typeof e==`string`):[],requiredMediaFields:Array.isArray(e.requiredMediaFields)?e.requiredMediaFields.filter(e=>typeof e==`string`):[]})).filter(e=>e.slug.length>0):[]}catch{return[]}})(),staleDraftDays:Number.isFinite(t)?t:30}}function N0(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return 0;let n=Date.now()-t.getTime();return Math.max(0,Math.floor(n/864e5))}function P0(e){return e==null?!0:typeof e==`string`?e.trim().length===0:Array.isArray(e)?e.length===0:!1}function F0(e){return e==null?!0:typeof e==`string`?e.trim().length===0:Array.isArray(e)?e.filter(e=>String(e??``).trim().length>0).length===0:!1}function I0(e){return e.find(e=>e.name===`title`)?.name??e.find(e=>e.name===`name`)?.name??e.find(e=>e.type===`uid`)?.name??e.find(e=>e.type===`string`)?.name??null}function L0(e){if(Array.isArray(e))return e.map(e=>String(e??``).trim()).filter(Boolean);let t=String(e??``).trim();return t?[t]:[]}function R0(e){return{visibleFields:e.slice(0,4).map(e=>e.name),visibleSystemCols:O0.map(e=>e.name),sort:E0}}function z0(e,t){if(!e)return R0(t);let n=(e.visibleFields??[]).filter(e=>{let n=String(e).split(`.`)[0];return t.some(e=>e.name===n)}),r=Array.isArray(e.visibleSystemCols)?e.visibleSystemCols.filter(e=>O0.some(t=>t.name===e)):O0.map(e=>e.name);return{visibleFields:n.length>0?n:t.slice(0,4).map(e=>e.name),visibleSystemCols:r,sort:e.sort??E0}}async function B0(e){let t=await fetch(`/cms/admin/users/me/prefs/view_${e}`,{credentials:`include`});if(!t.ok)return null;let{value:n}=await t.json();return n}async function V0(e,t){await fetch(`/cms/admin/users/me/prefs/view_${e}`,{method:`PUT`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({value:t})})}function H0({entry:e}){let t=e._author_first_name,n=e._author_last_name,r=t||n?[t,n].filter(Boolean).join(` `):null,i=(0,H.jsx)(mw,{avatarUrl:e._author_avatar_url,firstName:t,lastName:n,className:`size-7`,fallbackClassName:`text-[10px]`});return r?(0,H.jsxs)(xp,{children:[(0,H.jsx)(Sp,{asChild:!0,children:i}),(0,H.jsx)(Cp,{children:r})]}):i}function U0({allFields:e,fieldName:t,visible:n,setVisible:r}){let i=t.split(`.`)[0],a=e.find(e=>e.name===i)?.relatedSlug,{data:o}=fs(a?`/cms/admin/content-types/${a}`:null),s=n.find(e=>e.split(`.`)[0]===i),c=s&&s.includes(`.`)?s.split(`.`)[1]:void 0;function l(e,t){r(n=>n.map(n=>n.split(`.`)[0]===e?t?`${e}.${t}`:e:n))}return(0,v.useEffect)(()=>{if(!o?.fields||c)return;let e=I0(o.fields);e&&l(i,e)},[o,c,i]),o?.fields?(0,H.jsxs)(V_,{value:c,onValueChange:e=>l(i,e),children:[(0,H.jsx)(W_,{className:`h-8 w-32 text-sm`,children:(0,H.jsx)(U_,{})}),(0,H.jsx)(q_,{children:o.fields.map(e=>(0,H.jsx)(Y_,{value:e.name,children:e.name},e.name))})]}):null}function W0({open:e,onOpenChange:t,allFields:n,config:r,onApply:i}){let[a,o]=(0,v.useState)(r.visibleFields),[s,c]=(0,v.useState)(r.visibleSystemCols),[l,u]=(0,v.useState)(r.sort);(0,v.useEffect)(()=>{e&&(o(r.visibleFields),c(r.visibleSystemCols),u(r.sort))},[e,r]);let d=n.filter(e=>!a.some(t=>t.split(`.`)[0]===e.name));function f(e,t){o(n=>{let r=n.indexOf(e);if(r===-1)return n;let i=[...n],a=r+t;return a<0||a>=i.length?n:([i[r],i[a]]=[i[a],i[r]],i)})}function p(e){o(t=>[...t,e])}function m(e){o(t=>t.filter(t=>t!==e))}let h=[...D0,...n.filter(e=>![`media`,`text`,`richtext`,`relation`].includes(e.type)).map(e=>({name:e.name,label:j0(e.name)}))];return(0,H.jsx)(Jh,{open:e,onOpenChange:t,children:(0,H.jsxs)(Qh,{className:`max-h-[90vh] max-w-md flex flex-col`,children:[(0,H.jsx)($h,{className:`flex-none`,children:(0,H.jsx)(tg,{children:`Configure the view`})}),(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-5 py-1`,children:[(0,H.jsxs)(`div`,{className:d.length>0||s.length<O0.length?`flex-1 min-h-0 grid gap-5 [grid-template-rows:minmax(7rem,1fr)_minmax(7rem,1fr)]`:`flex min-h-0 flex-1 flex-col`,children:[(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col`,children:[(0,H.jsx)(`p`,{className:`mb-2 flex-none text-xs font-medium uppercase tracking-wide text-muted-foreground`,children:`Displayed fields`}),a.length===0&&s.length===0?(0,H.jsx)(`p`,{className:`py-2 text-sm text-muted-foreground`,children:`No fields selected.`}):(0,H.jsxs)(`ul`,{className:`flex-1 min-h-0 space-y-1 overflow-y-auto`,children:[a.map((e,t)=>{let r=String(e).split(`.`)[0],i=n.find(e=>e.name===r);return(0,H.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md border px-3 py-2 text-sm`,children:[(0,H.jsx)(`span`,{className:`flex-1 font-medium`,children:j0(r)}),i&&(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:i.type}),i&&i.type===`relation`&&(0,H.jsx)(`div`,{className:`ml-2`,children:(0,H.jsx)(U0,{allFields:n,fieldName:e,visible:a,setVisible:o})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:t===0,onClick:()=>f(e,-1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Wa,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:t===a.length-1,onClick:()=>f(e,1),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Va,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,onClick:()=>m(e),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(qa,{className:`size-3.5`})})]},e)}),s.map(e=>{let t=O0.find(t=>t.name===e);return t?(0,H.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md border px-3 py-2 text-sm`,children:[(0,H.jsx)(`span`,{className:`flex-1 font-medium`,children:t.label}),(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`system`}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:!0,className:`flex size-6 items-center justify-center rounded text-muted-foreground disabled:opacity-30`,children:(0,H.jsx)(Wa,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,disabled:!0,className:`flex size-6 items-center justify-center rounded text-muted-foreground disabled:opacity-30`,children:(0,H.jsx)(Va,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,onClick:()=>c(t=>t.filter(t=>t!==e)),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(qa,{className:`size-3.5`})})]},e):null})]})]}),(d.length>0||s.length<O0.length)&&(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col`,children:[(0,H.jsx)(`p`,{className:`mb-2 flex-none text-xs font-medium uppercase tracking-wide text-muted-foreground`,children:`Available fields`}),(0,H.jsxs)(`ul`,{className:`flex-1 min-h-0 space-y-1 overflow-y-auto`,children:[d.map(e=>(0,H.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md border border-dashed px-3 py-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(`span`,{className:`flex-1`,children:j0(e.name)}),(0,H.jsx)(`span`,{className:`text-xs`,children:e.type}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>p(e.name),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(Ja,{className:`size-3.5`})})]},e.name)),O0.filter(e=>!s.includes(e.name)).map(e=>(0,H.jsxs)(`li`,{className:`flex items-center gap-2 rounded-md border border-dashed px-3 py-2 text-sm text-muted-foreground`,children:[(0,H.jsx)(`span`,{className:`flex-1`,children:e.label}),(0,H.jsx)(`span`,{className:`text-xs`,children:`system`}),(0,H.jsx)(`button`,{type:`button`,onClick:()=>c(t=>[...t,e.name]),className:`flex size-6 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(Ja,{className:`size-3.5`})})]},e.name))]})]})]}),(0,H.jsxs)(`div`,{className:`flex-none`,children:[(0,H.jsx)(`p`,{className:`mb-2 text-xs font-medium uppercase tracking-wide text-muted-foreground`,children:`Sort entries`}),(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,H.jsxs)(V_,{value:l.field,onValueChange:e=>u(t=>({...t,field:e})),children:[(0,H.jsx)(W_,{className:`h-8 text-sm`,children:(0,H.jsx)(U_,{})}),(0,H.jsx)(q_,{children:h.map(e=>(0,H.jsx)(Y_,{value:e.name,children:e.label},e.name))})]}),(0,H.jsxs)(V_,{value:l.dir,onValueChange:e=>u(t=>({...t,dir:e})),children:[(0,H.jsx)(W_,{className:`h-8 text-sm`,children:(0,H.jsx)(U_,{})}),(0,H.jsxs)(q_,{children:[(0,H.jsx)(Y_,{value:`asc`,children:`Ascending`}),(0,H.jsx)(Y_,{value:`desc`,children:`Descending`})]})]})]})]})]}),(0,H.jsxs)(eg,{className:`flex-none`,children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,H.jsx)(q,{onClick:()=>{i({visibleFields:a,visibleSystemCols:s,sort:l}),t(!1)},children:`Apply`})]})]})})}function G0({hasIssues:e,title:t}){let n=e?{border:`border-amber-500/40`,dots:[`bg-amber-400`,`bg-amber-400`]}:{border:`border-emerald-500/40`,dots:[`bg-emerald-500`,`bg-emerald-500`]};return(0,H.jsxs)(xp,{children:[(0,H.jsx)(Sp,{asChild:!0,children:(0,H.jsx)(`span`,{className:`inline-flex h-6 w-4 shrink-0 flex-col items-center justify-center gap-0.5 rounded-full border ${n.border}`,children:n.dots.map((e,t)=>(0,H.jsx)(`span`,{className:`block size-1.5 rounded-full ${e}`},t))})}),(0,H.jsx)(Cp,{children:t})]})}function K0({value:e}){let[t,n]=(0,v.useState)(null);return(0,v.useEffect)(()=>{if(e.startsWith(`http`)){n(e);return}fetch(`/cms/admin/media/${e}/url`,{credentials:`include`}).then(e=>e.ok?e.json():null).then(e=>n(e?.url??null)).catch(()=>{})},[e]),t?/\.(jpe?g|png|gif|webp|avif|svg)(\?|$)/i.test(t)?(0,H.jsx)(`img`,{src:t,alt:``,className:`size-8 object-cover`}):(0,H.jsxs)(`span`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,H.jsx)(oo,{className:`size-3.5 shrink-0`}),(0,H.jsx)(`span`,{className:`max-w-30 truncate`,children:`File`})]}):(0,H.jsx)(vo,{className:`size-4 text-muted-foreground`})}function q0({relatedSlug:e,value:t,displayField:n}){let[r,i]=(0,v.useState)([]),[a,o]=(0,v.useState)(!1),s=L0(t);return(0,v.useEffect)(()=>{let r=L0(t);if(!e||r.length===0){i([]);return}let a=!1;return o(!0),(n?Promise.resolve(n):fetch(`/cms/admin/content-types/${e}`,{credentials:`include`}).then(e=>e.ok?e.json():null).then(e=>I0(e?.fields??[])).catch(()=>null)).then(t=>Promise.all(r.map(n=>fetch(`/cms/admin/entries/${e}/${n}`,{credentials:`include`}).then(e=>e.ok?e.json():null).then(e=>e?String((t&&e[t])??e.title??e.name??n):n).catch(()=>n)))).then(e=>{a||i(e.filter(Boolean))}).catch(()=>{a||i(r)}).finally(()=>{a||o(!1)}),()=>{a=!0}},[e,n,t]),s.length===0?(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}):a&&r.length===0?(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`…`}):(0,H.jsx)(`span`,{className:`block max-w-50 truncate font-medium`,children:r.join(`, `)})}function J0({field:e,value:t,displayField:n}){let{timezone:r}=Sa();if(t==null||t===``)return(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`});if(e.type===`boolean`)return t?(0,H.jsx)(Ba,{className:`size-4 text-primary`}):(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`});if(e.type===`datetime`)return(0,H.jsx)(`span`,{children:sv(String(t),r)});if(e.type===`number`)return(0,H.jsx)(`span`,{children:String(t)});if(e.type===`media`)return(0,H.jsx)(K0,{value:String(t)});if(e.type===`relation`)return(0,H.jsx)(q0,{relatedSlug:e.relatedSlug,value:t,displayField:n});if(e.type===`text`||e.type===`richtext`){let e=String(t);return(0,H.jsx)(`span`,{className:`block max-w-50 truncate text-muted-foreground`,children:e.length>60?e.slice(0,60)+`…`:e})}let i=String(t);return(0,H.jsx)(`span`,{className:e.type===`uid`?`block max-w-40 truncate font-mono text-xs text-muted-foreground`:`block max-w-50 truncate font-medium`,children:i.length>60?i.slice(0,60)+`…`:i})}function Y0({entry:e,fields:t,isStaleDraft:n=!1}){let{timezone:r}=Sa();if(e.status===`scheduled`)return(0,H.jsxs)(RC,{variant:`outline`,className:`border-blue-500 text-blue-600`,children:[(0,H.jsx)(La,{className:`mr-1 size-3`}),e.scheduled_for?ov(e.scheduled_for,r):`Scheduled`]});if(e.status===`draft`)return n?(0,H.jsx)(RC,{variant:`outline`,className:`border-amber-500 text-amber-500`,children:`Stale Draft`}):(0,H.jsx)(RC,{variant:`outline`,children:`Draft`});if(e.status===`pending`)return e.review_rejected?(0,H.jsx)(RC,{variant:`destructive`,children:`Pending`}):(0,H.jsx)(RC,{className:`bg-amber-500 text-black hover:bg-amber-500`,children:`Pending`});if(e.status===`in_review`)return(0,H.jsx)(RC,{variant:`outline`,children:`In Review`});let i=(e,t)=>{if(t===`datetime`&&e&&typeof e==`string`){let t=/Z|[+-]\d{2}:\d{2}$/.test(e)?e:e+`Z`,n=new Date(t);return isNaN(n.getTime())?e:n.toISOString()}return e};return e.published_data!=null&&t.some(t=>t.name in e.published_data&&JSON.stringify(i(e[t.name],t.type))!==JSON.stringify(i(e.published_data[t.name],t.type)))?(0,H.jsx)(RC,{variant:`secondary`,children:`Published*`}):(0,H.jsx)(RC,{variant:`default`,children:`Published`})}function X0(){let{slug:e}=gr(),t=fr(),{timezone:n}=Sa(),{user:r}=_a(),[i,a]=ta(),o=Math.max(1,Number(i.get(`page`)??1)),s=i.get(`status`),c=s&&[`draft`,`scheduled`,`published`,`pending`,`in_review`].includes(s)?s:``,l=[10,30,50,70,100].includes(Number(i.get(`limit`)))?Number(i.get(`limit`)):10;function u(e){a(t=>(t.set(`page`,String(e)),t),{replace:!0})}function d(e){a(t=>(t.set(`limit`,String(e)),t.set(`page`,`1`),t),{replace:!0})}function f(e){a(t=>(e?t.set(`status`,e):t.delete(`status`),t.set(`page`,`1`),t),{replace:!0})}let[p,m]=(0,v.useState)(null),[h,g]=(0,v.useState)(!1),[_,y]=(0,v.useState)(null),[b,x]=(0,v.useState)(new Set),[S,C]=(0,v.useState)(!1),[w,T]=(0,v.useState)(!1),[E,D]=(0,v.useState)(``),[O,k]=(0,v.useState)(``),{loading:A,request:j}=xw();(0,v.useEffect)(()=>{let e=setTimeout(()=>{k(E),u(1)},300);return()=>clearTimeout(e)},[E]);let{data:M,loading:N}=fs(e?`/cms/admin/content-types/${e}`:null),{data:P}=fs(`/cms/admin/addons/registry`),F=P?.addons.find(e=>e.id===`content-health`)??null,I=!!(F?.installed&&F.enabled&&F.compatible),{data:L}=fs(I?`/cms/admin/addons/content-health/settings`:null);(0,v.useEffect)(()=>{!M||!e||B0(e).then(e=>y(z0(e,M.fields))).catch(()=>y(defaultViewConfig(M.fields)))},[M?.slug]),(0,v.useEffect)(()=>{x(new Set)},[o,l]);let R=_??{visibleFields:M?.fields.slice(0,4).map(e=>e.name)??[],visibleSystemCols:O0.map(e=>e.name),sort:E0},{sort:ee}=R,te=M0(L),ne=e?te?.contentTypes.find(t=>t.slug===e&&t.enabled)??null:null,z=(R.visibleFields??[]).map(e=>{let t=String(e).split(`.`),n=t[0],r=t[1],i=M?.fields.find(e=>e.name===n);return i?{field:i,displayField:r}:null}).filter(Boolean),B=(M?.fields??[]).filter(e=>[`string`,`uid`,`text`,`richtext`].includes(e.type)).map(e=>e.name),{data:re,loading:V,refetch:ie}=fs(e&&_?`/cms/admin/content-types/${e}/entries?page=${o}&limit=${l}&sort=${ee.field}&order=${ee.dir}${c?`&status=${c}`:``}${O?`&search=${encodeURIComponent(O)}&searchFields=${B.join(`,`)}`:``}`:null),ae=[...new Set([...re?.available_statuses??[],...c?[c]:[]])].filter(e=>[`draft`,`scheduled`,`published`,`pending`,`in_review`].includes(e)).sort((e,t)=>A0.indexOf(e)-A0.indexOf(t));async function oe(){if(!(!p||!e)){try{await j(`/cms/admin/entries/${e}/${p}`,`DELETE`),X.success(`Entry deleted`)}catch{X.error(`Could not delete entry`)}m(null),ie()}}let se=r?.permissions??[],ce=se.includes(`*`)||se.includes(`entries:write`),le=se.includes(`*`)||se.includes(`entries:delete`),ue=r?.role?.toLowerCase()===`viewer`,de=r?.role?.toLowerCase()===`contributor`,fe=r?.role?.toLowerCase()===`editor`,pe=de||fe,me=e=>String(e.created_by??``)===String(r?.id??``),he=e=>!1,ge=e=>ce&&(!de||me(e))&&!he(e),_e=e=>le&&(!pe||me(e)),ve=[...b].filter(e=>{let t=(re?.data??[]).find(t=>t.id===e);return t?ge(t):!1}),ye=[...b].filter(e=>{let t=(re?.data??[]).find(t=>t.id===e);return t?_e(t):!1}),be=(re?.data??[]).map(e=>e.id),xe=be.length>0&&be.every(e=>b.has(e)),Se=!xe&&be.some(e=>b.has(e));function Ce(){x(e=>{let t=new Set(e);return xe?be.forEach(e=>t.delete(e)):be.forEach(e=>t.add(e)),t})}function we(e){x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}async function Te(){if(!(!e||S)){C(!0);try{let t={"Content-Type":`application/json`};await Promise.all(ve.map(n=>fetch(`/cms/admin/entries/${e}/${n}/status`,{method:`PATCH`,credentials:`include`,headers:t,body:JSON.stringify({status:`draft`})}))),X.success(`Entries unpublished`),x(new Set),ie()}catch{X.error(`Could not unpublish entries`)}finally{C(!1)}}}async function Ee(){if(!(!e||S)){C(!0);try{await Promise.all(ye.map(t=>fetch(`/cms/admin/entries/${e}/${t}`,{method:`DELETE`,credentials:`include`}))),X.success(`Entries deleted`),T(!1),x(new Set),ie()}catch{X.error(`Could not delete entries`)}finally{C(!1)}}}function De(t){y(t),e&&V0(e,t).catch(()=>{}),u(1)}if(N||!_)return(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]});if(!M)return null;let Oe=Math.ceil((re?.total??0)/(re?.limit??20));return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`mb-6 flex items-center justify-between gap-4`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-6`,children:M.name}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(q,{variant:`outline`,onClick:()=>g(!0),className:`gap-1.5`,children:[(0,H.jsx)(Uo,{className:`size-3.5`}),`View config`]}),ce&&(0,H.jsxs)(q,{onClick:()=>t(`/content/${e}/new`),className:`gap-2`,children:[(0,H.jsx)(Lo,{className:`size-4`}),`New entry`]})]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsxs)(`div`,{className:`mb-3 flex items-center gap-3`,children:[(0,H.jsxs)(V_,{value:c||`all`,onValueChange:e=>f(e===`all`?``:e),children:[(0,H.jsx)(W_,{className:`h-10 min-h-10 max-h-10 w-38`,children:(0,H.jsx)(U_,{placeholder:`All statuses`})}),(0,H.jsxs)(q_,{children:[(0,H.jsx)(Y_,{value:`all`,children:`All statuses`}),ae.map(e=>(0,H.jsx)(Y_,{value:e,children:k0[e]},e))]})]}),(0,H.jsxs)(`div`,{className:`relative w-52`,children:[(0,H.jsx)(Ho,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,H.jsx)(Sw,{className:`pl-9`,placeholder:`Search entries…`,value:E,onChange:e=>D(e.target.value)})]}),!V&&re!=null&&(0,H.jsxs)(`span`,{className:`text-muted-foreground text-sm`,children:[(re?.data??[]).length,` / `,re.total,` `,re.total===1?`entry`:`entries`]})]}),V&&(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading entries…`})]}),!V&&(re?.data??[]).length===0&&!O&&!c&&(0,H.jsxs)(XE,{className:`border`,children:[(0,H.jsxs)(ZE,{children:[(0,H.jsx)($E,{variant:`icon`,children:(0,H.jsx)(ao,{})}),(0,H.jsx)(eD,{children:`No entries yet`}),(0,H.jsxs)(tD,{children:[`Create your first entry for `,M.name,`.`]})]}),(0,H.jsx)(nD,{children:ce&&(0,H.jsx)(q,{onClick:()=>t(`/content/${e}/new`),children:`New entry`})})]}),!V&&(re?.data??[]).length===0&&(O||c)&&(0,H.jsx)(XE,{className:`border`,children:(0,H.jsxs)(ZE,{children:[(0,H.jsx)($E,{variant:`icon`,children:(0,H.jsx)(Ho,{})}),(0,H.jsx)(eD,{children:`No results`}),(0,H.jsx)(tD,{children:O&&c?`No entries match "${O}" with status "${k0[c]}".`:O?`No entries match "${O}".`:`No entries with status "${k0[c]}".`})]})}),!V&&(re?.data??[]).length>0&&(0,H.jsxs)(bp,{children:[!ue&&b.size>0&&(0,H.jsxs)(`div`,{className:`mb-3 flex items-center gap-3 rounded-lg border border-border bg-muted/50 px-4 py-2.5`,children:[(0,H.jsxs)(`span`,{className:`text-sm font-medium`,children:[b.size,` selected`]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2 ml-auto`,children:[(0,H.jsxs)(q,{variant:`outline`,size:`sm`,disabled:S||ve.length===0,onClick:Te,children:[S?(0,H.jsx)(zC,{className:`size-3.5`}):null,`Unpublish`]}),le&&(0,H.jsxs)(q,{variant:`destructive`,size:`sm`,disabled:S||ye.length===0,onClick:()=>T(!0),children:[(0,H.jsx)(Zo,{className:`size-3.5`}),`Delete`]})]})]}),(0,H.jsx)(`div`,{className:`overflow-hidden rounded-lg border border-border`,children:(0,H.jsxs)(BC,{className:`w-full`,children:[(0,H.jsx)(VC,{className:`border-b border-border font-bold uppercase`,children:(0,H.jsxs)(UC,{className:`hover:bg-transparent`,children:[(0,H.jsx)(WC,{className:`w-10 px-4 py-3`,children:!ue&&(0,H.jsx)(PT,{checked:xe?!0:Se?`indeterminate`:!1,onCheckedChange:Ce,"aria-label":`Select all`})}),z.map(e=>(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:j0(e.field.name)},e.field.name)),R.visibleSystemCols.includes(`created_at`)&&(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:`Created`}),R.visibleSystemCols.includes(`updated_at`)&&(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:`Updated`}),R.visibleSystemCols.includes(`pub_sch`)&&(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:`Published`}),(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:`Status`}),(0,H.jsx)(WC,{className:`w-10 px-4 py-3`}),(0,H.jsx)(WC,{className:`w-28 px-4 py-3`})]})}),(0,H.jsx)(HC,{className:`divide-y divide-border`,children:(re?.data??[]).map(r=>(0,H.jsxs)(UC,{className:`group transition-colors ${b.has(r.id)?`bg-muted/40`:`hover:bg-muted/30`} ${de&&!me(r)?`opacity-60`:``} ${he(r)?`opacity-60`:``}`,children:[(0,H.jsx)(GC,{className:`w-10 px-4 py-3`,children:!ue&&(0,H.jsx)(PT,{checked:b.has(r.id),onCheckedChange:()=>we(r.id),"aria-label":`Select row`})}),z.map(e=>{let t=r[e.field.name],n=t;return e.field.type===`relation`?n=t:e.displayField&&(n=t&&typeof t==`object`?t[e.displayField]:t&&typeof t==`object`?t.title:t),(0,H.jsx)(GC,{className:`px-4 py-3`,children:(0,H.jsx)(J0,{field:e.field,value:n,displayField:e.displayField})},e.field.name)}),R.visibleSystemCols.includes(`created_at`)&&(0,H.jsx)(GC,{className:`px-4 py-3 text-muted-foreground whitespace-nowrap`,children:ov(r.created_at,n)}),R.visibleSystemCols.includes(`updated_at`)&&(0,H.jsx)(GC,{className:`px-4 py-3 text-muted-foreground whitespace-nowrap`,children:ov(r.updated_at,n)}),R.visibleSystemCols.includes(`pub_sch`)&&(0,H.jsx)(GC,{className:`px-4 py-3 text-muted-foreground whitespace-nowrap`,children:r.status===`scheduled`&&r.scheduled_for?ov(r.scheduled_for,n):r.published_at?ov(r.published_at,n):`—`}),(0,H.jsx)(GC,{className:`px-4 py-3`,children:(()=>{let e=I&&ne?.checkStaleDrafts&&r.status===`draft`?N0(r.updated_at):0,t=!!ne?.checkStaleDrafts&&r.status===`draft`&&e>=(te?.staleDraftDays??30);return(0,H.jsx)(Y0,{entry:r,fields:M.fields,isStaleDraft:t})})()}),(0,H.jsx)(GC,{className:`px-4 py-3`,children:(()=>{let e=ne?.requiredTextFields?.filter(e=>P0(r[e]))??[],t=ne?.requiredMediaFields?.filter(e=>F0(r[e]))??[],n=[...e.length>0?[`Missing text: ${e.map(j0).join(`, `)}`]:[],...t.length>0?[`Missing media: ${t.map(j0).join(`, `)}`]:[]],i=n.length>0;return!I||!ne?null:(0,H.jsx)(G0,{hasIssues:i,title:n.length>0?`Content health indicator · ${n.join(` · `)}`:`Content health indicator · All configured text and media checks passed`})})()}),(0,H.jsx)(GC,{className:`px-4 py-3`,children:(0,H.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[(0,H.jsx)(H0,{entry:r}),ue?(0,H.jsx)(q,{size:`icon`,variant:`ghost`,onClick:()=>t(`/content/${e}/${r.id}`),className:`flex size-8 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(no,{className:`size-3.5`})}):(0,H.jsxs)(H.Fragment,{children:[ge(r)&&(0,H.jsx)(q,{size:`icon`,variant:`ghost`,onClick:()=>t(`/content/${e}/${r.id}`),className:`flex size-8 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(Io,{className:`size-3.5`})}),_e(r)&&(0,H.jsx)(q,{size:`icon`,variant:`ghost`,onClick:()=>m(r.id),className:`flex size-8 items-center justify-center rounded text-destructive hover:bg-destructive/10 hover:text-destructive`,children:(0,H.jsx)(Zo,{className:`size-3.5`})})]})]})})]},r.id))})]})}),(0,H.jsx)(`div`,{className:`mt-4`,children:(0,H.jsx)(T0,{page:o,totalPages:Oe,limit:l,onPageChange:u,onLimitChange:d})})]}),_&&(0,H.jsx)(W0,{open:h,onOpenChange:g,allFields:M.fields,config:_,onApply:De}),(0,H.jsx)(Jh,{open:!!p,onOpenChange:e=>{e||m(null)},children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Delete entry?`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone.`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>m(null),children:`Cancel`}),(0,H.jsxs)(q,{variant:`destructive`,onClick:oe,disabled:A,children:[A?(0,H.jsx)(zC,{className:`size-4`}):null,`Delete`]})]})]})}),(0,H.jsx)(Jh,{open:w,onOpenChange:e=>{e||T(!1)},children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsxs)(tg,{children:[`Delete `,b.size,` `,b.size===1?`entry`:`entries`,`?`]})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone.`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>T(!1),children:`Cancel`}),(0,H.jsxs)(q,{variant:`destructive`,onClick:Ee,disabled:S,children:[S?(0,H.jsx)(zC,{className:`size-4`}):null,`Delete`]})]})]})})]})]})}function Z0(){let{slug:e}=gr(),t=fr(),{user:n}=_a(),{data:r,loading:i}=fs(e?`/cms/admin/content-types/${e}`:null),a=r?.kind===`single`,{data:o,loading:s,error:c}=fs(a&&e?`/cms/admin/content-types/${e}/single`:null);return(0,v.useEffect)(()=>{if(!a||s)return;let r=n?.permissions??[],i=r.includes(`*`)||r.includes(`entries:write`);o?t(`/content/${e}/${o.id}`,{replace:!0}):c&&i&&t(`/content/${e}/new`,{replace:!0})},[a,s,o,c,e,t,n?.permissions]),i||a&&s?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]}):a?o?null:(0,H.jsx)(`div`,{className:`py-12 text-sm text-muted-foreground`,children:`No entry is available for this Single Type.`}):(0,H.jsx)(X0,{})}function Q0(){let e=fr(),{data:t,loading:n}=fs(`/cms/admin/content-types`);return(0,v.useEffect)(()=>{t&&t.length>0&&e(`/content-types/${t[0].slug}`,{replace:!0})},[t,e]),n||t&&t.length>0?null:(0,H.jsxs)(XE,{className:`border`,children:[(0,H.jsxs)(ZE,{children:[(0,H.jsx)($E,{variant:`icon`,children:(0,H.jsx)(So,{})}),(0,H.jsx)(eD,{children:`No content types yet`}),(0,H.jsx)(tD,{children:`Content types define the structure of your data. Create your first one to start managing content.`})]}),(0,H.jsx)(nD,{children:(0,H.jsx)(q,{onClick:()=>e(`/content-types/new`),children:`Create content type`})})]})}var $0=[{type:`string`,icon:$o,label:`Text`,color:`text-blue-600`,bg:`bg-blue-50`},{type:`text`,icon:Jo,label:`Long Text`,color:`text-sky-600`,bg:`bg-sky-50`},{type:`richtext`,icon:ao,label:`Rich Text`,color:`text-violet-600`,bg:`bg-violet-50`},{type:`number`,subtype:`integer`,icon:po,label:`Integer`,color:`text-orange-600`,bg:`bg-orange-50`},{type:`number`,subtype:`float`,icon:po,label:`Decimal`,color:`text-orange-600`,bg:`bg-orange-50`},{type:`boolean`,icon:Xo,label:`Boolean`,color:`text-emerald-600`,bg:`bg-emerald-50`},{type:`datetime`,icon:Ra,label:`Date & Time`,color:`text-amber-600`,bg:`bg-amber-50`},{type:`media`,icon:vo,label:`Media`,color:`text-rose-600`,bg:`bg-rose-50`},{type:`mixed`,icon:To,label:`Mixed Value`,color:`text-fuchsia-600`,bg:`bg-fuchsia-50`}],e2={string:`half`,text:`full`,richtext:`full`,number:`third`,boolean:`third`,datetime:`half`,media:`half`,mixed:`half`},t2={type:`string`,subtype:void 0,name:``,required:!1,allowedTypes:[],width:`half`},n2=[{type:`string`,icon:$o,label:`Text (string)`,description:`Titles, names, labels`,color:`text-blue-600`,bg:`bg-blue-50`},{type:`text`,icon:Jo,label:`Long text (string)`,description:`Plain text, paragraphs`,color:`text-sky-600`,bg:`bg-sky-50`},{type:`richtext`,icon:ao,label:`Rich text (blocks)`,description:`Formatted HTML content`,color:`text-violet-600`,bg:`bg-violet-50`},{type:`uid`,icon:so,label:`UID`,description:`Unique slug from a field`,color:`text-teal-600`,bg:`bg-teal-50`},{type:`boolean`,icon:Xo,label:`Boolean`,description:`True or false`,color:`text-emerald-600`,bg:`bg-emerald-50`},{type:`datetime`,icon:Ra,label:`Date & time`,description:`Timestamps and dates`,color:`text-amber-600`,bg:`bg-amber-50`},{type:`media`,icon:vo,label:`Media`,description:`Images, videos or files`,color:`text-rose-600`,bg:`bg-rose-50`},{type:`media-gallery`,icon:wo,label:`Media Gallery`,description:`Multiple images for galleries`,color:`text-pink-600`,bg:`bg-pink-50`},{type:`array`,icon:To,label:`Array`,description:`Repeatable list of items`,color:`text-cyan-600`,bg:`bg-cyan-50`},{type:`navigation`,icon:Oo,label:`Navigation`,description:`Nested navigation items`,color:`text-cyan-600`,bg:`bg-cyan-50`},{type:`number`,subtype:`integer`,icon:po,label:`Integer (number)`,description:`Whole numbers`,color:`text-orange-600`,bg:`bg-orange-50`},{type:`number`,subtype:`float`,icon:po,label:`Decimal (number)`,description:`Numbers with decimals`,color:`text-orange-600`,bg:`bg-orange-50`},{type:`relation`,icon:Eo,label:`Relation`,description:`Link to another content type`,color:`text-indigo-600`,bg:`bg-indigo-50`}],r2=[{value:`image`,label:`Images`},{value:`video`,label:`Videos`},{value:`audio`,label:`Audio`},{value:`document`,label:`Documents`}],i2=[{value:`many-to-one`,label:`Many-to-One`,description:`Many of these → one of the other`},{value:`one-to-one`,label:`One-to-One`,description:`One of these ↔ one of the other`},{value:`many-to-many`,label:`Many-to-Many`,description:`Many of these ↔ many of the other`}],a2=new Set(`all.analyse.analyze.and.any.array.as.asc.asymmetric.authorization.between.binary.both.case.cast.check.collate.column.constraint.create.cross.current_catalog.current_date.current_role.current_schema.current_time.current_timestamp.current_user.default.deferrable.desc.distinct.do.else.end.except.false.fetch.for.foreign.from.grant.group.having.in.initially.intersect.into.lateral.leading.limit.localtime.localtimestamp.not.null.offset.on.only.or.order.placing.primary.references.returning.select.session_user.some.symmetric.table.then.to.trailing.true.union.unique.user.using.variadic.when.where.window.with`.split(`.`));function o2(e){return a2.has(e.toLowerCase())}var s2={name:``,required:!1,relationType:`many-to-one`,relatedTable:``,relatedSlug:``,targetField:``,allowedTypes:[],arrayFields:[]};function c2({open:e,onOpenChange:t,existingNames:n,availableContentTypes:r,stringFields:i,initialField:a,onConfirm:o}){let[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(s2),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(null),[h,g]=(0,v.useState)(null),[_,y]=(0,v.useState)(``),[b,x]=(0,v.useState)(``),S=!!a;(0,v.useEffect)(()=>{e?a&&(c(n2.find(e=>e.type===a.type&&(e.subtype??void 0)===(a.subtype??void 0))??null),u({name:a.name,required:a.required??!1,relationType:a.relationType??`many-to-one`,relatedTable:a.relatedTable??``,relatedSlug:a.relatedSlug??``,targetField:a.targetField??``,allowedTypes:a.allowedTypes??[],arrayFields:a.arrayFields??[]})):(c(null),u(s2),f(``),m(null),g(null),y(``),x(``))},[e,a]);function C(e){t(e)}function w(e){c(e),u(s2),f(``),m(null),y(``),x(``)}function T(){S||(c(null),u(s2),f(``),m(null),g(null),y(``),x(``))}function E(){m({...t2}),g(null),y(``)}function D(e){m(t=>t?{...t,type:e.type,subtype:e.subtype,width:e2[e.type]}:{...t2,type:e.type,subtype:e.subtype,width:e2[e.type]})}function O(){if(!p)return;let e=p.name.trim();if(!e){y(`Name is required`);return}if(!/^[a-z][a-z0-9_]*$/.test(e)){y(`Lowercase letters, digits and underscores only`);return}if(o2(e)){y(`This name is reserved by SQL. Choose another one.`);return}if(l.arrayFields.some((t,n)=>t.name===e&&n!==h)){y(`A sub-field with this name already exists`);return}let t={name:e,type:p.type,subtype:p.subtype,required:p.required||void 0,allowedTypes:p.type===`media`&&p.allowedTypes.length>0?p.allowedTypes:void 0,width:p.width};u(e=>({...e,arrayFields:h===null?[...e.arrayFields,t]:e.arrayFields.map((e,n)=>n===h?t:e)})),m(null),g(null),y(``)}function k(e){p||u(t=>({...t,arrayFields:t.arrayFields.filter(t=>t.name!==e)}))}function A(e){if(p)return;let t=l.arrayFields[e];t&&(m({type:t.type,subtype:t.subtype,name:t.name,required:!!t.required,allowedTypes:t.allowedTypes??[],width:t.width??e2[t.type]}),g(e),y(``))}function j(e,t){if(p)return;let n=e+t;n<0||n>=l.arrayFields.length||(u(t=>{let r=[...t.arrayFields];return[r[e],r[n]]=[r[n],r[e]],{...t,arrayFields:r}}),x(``))}function M(){let e=l.arrayFields.map(e=>e.name.trim());return e.some(e=>!e)?(x(`All sub-fields must have a name.`),!1):e.some(e=>!/^[a-z][a-z0-9_]*$/.test(e))?(x(`Sub-field names must use lowercase letters, digits and underscores.`),!1):e.some(e=>o2(e))?(x(`One or more sub-field names are reserved by SQL.`),!1):new Set(e).size===e.length?!0:(x(`Sub-field names must be unique.`),!1)}function N(){let e=l.name.trim();return e?/^[a-z][a-z0-9_]*$/.test(e)?o2(e)?(f(`This name is reserved by SQL. Choose another one.`),!1):n.includes(e)&&e!==a?.name?(f(`A field with this name already exists`),!1):!0:(f(`Lowercase letters, digits and underscores only`),!1):(f(`Name is required`),!1)}function P(){!s||!N()||s.type===`array`&&!M()||(o({name:l.name.trim(),type:s.type,subtype:s.subtype,required:l.required||void 0,relationType:s.type===`relation`?l.relationType:void 0,relatedTable:s.type===`relation`?l.relatedTable:void 0,relatedSlug:s.type===`relation`?l.relatedSlug:void 0,targetField:s.type===`uid`?l.targetField:void 0,allowedTypes:s.type===`media`&&l.allowedTypes.length>0?l.allowedTypes:s.type===`media-gallery`?[`image`]:void 0,arrayFields:s.type===`array`?l.arrayFields.map(e=>({...e,name:e.name.trim()})):void 0,width:a?.width??o0[s.type]}),C(!1))}let F=!!s,I=s?.label.replace(/\s*\(.*?\)/,``)??``,L=S?`Edit field`:F?`${I} field`:`Add a field`;return(0,H.jsx)(Jh,{open:e,onOpenChange:C,children:(0,H.jsxs)(Qh,{className:F?s?.type===`array`?`max-w-lg`:`max-w-md`:`max-w-3xl`,children:[(0,H.jsx)($h,{children:(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[F&&!S&&(0,H.jsx)(`button`,{type:`button`,onClick:T,className:`flex size-7 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,children:(0,H.jsx)(Ma,{className:`size-4`})}),(0,H.jsx)(tg,{children:L})]})}),!F&&(0,H.jsx)(`div`,{className:`grid grid-cols-3 gap-2 pt-1`,children:n2.map(e=>{let t=e.icon,n=`${e.type}${e.subtype??``}`;return(0,H.jsxs)(`button`,{type:`button`,disabled:e.disabled,onClick:()=>!e.disabled&&w(e),className:`flex flex-col items-start gap-2 rounded-lg border border-border p-3 text-left transition-colors hover:border-primary hover:bg-accent disabled:cursor-not-allowed disabled:opacity-40`,children:[(0,H.jsx)(`div`,{className:`flex size-8 items-center justify-center rounded-md ${e.bg}`,children:(0,H.jsx)(t,{className:`size-4 ${e.color}`})}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-sm font-medium`,children:e.label}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.disabled?`Coming soon`:e.description})]})]},n)})}),F&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-4 pt-1`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`field-name`,children:`Field name`}),(0,H.jsx)(Sw,{id:`field-name`,placeholder:`e.g. article_title`,value:l.name,onChange:e=>{u(t=>({...t,name:e.target.value})),f(``)},onKeyDown:e=>{e.key===`Enter`&&P()}}),d&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:d}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Lowercase letters, digits and underscores. Must start with a letter.`})]}),s?.type===`media`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(Y,{children:`Allowed file types`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground -mt-1`,children:`Leave all unchecked to allow any file type.`}),(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:r2.map(({value:e,label:t})=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(PT,{id:`media-type-${e}`,checked:l.allowedTypes.includes(e),onCheckedChange:t=>u(n=>({...n,allowedTypes:t?[...n.allowedTypes,e]:n.allowedTypes.filter(t=>t!==e)}))}),(0,H.jsx)(Y,{htmlFor:`media-type-${e}`,className:`cursor-pointer font-normal`,children:t})]},e))})]}),s?.type===`array`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(Y,{children:`Sub-fields`}),!p&&(0,H.jsxs)(`button`,{type:`button`,onClick:E,className:`flex items-center gap-1 rounded px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground`,children:[(0,H.jsx)(Lo,{className:`size-3`}),`Add sub-field`]})]}),l.arrayFields.length===0&&!p&&(0,H.jsx)(`p`,{className:`rounded-md border border-dashed border-border px-3 py-4 text-center text-xs text-muted-foreground`,children:`No sub-fields yet. Add at least one to make this field useful.`}),l.arrayFields.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-1.5`,children:l.arrayFields.map((e,t)=>{let n=$0.find(t=>t.type===e.type&&(t.subtype??void 0)===(e.subtype??void 0)),r=n?.icon??$o;return(0,H.jsxs)(`div`,{className:`${a0[e.width??`full`]} rounded-md border border-dashed border-border p-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,H.jsx)(`div`,{className:`mt-0.5 flex size-5 shrink-0 items-center justify-center rounded ${n?.bg??`bg-muted`}`,children:(0,H.jsx)(r,{className:`size-3 ${n?.color??`text-muted-foreground`}`})}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsxs)(`p`,{className:`truncate text-xs font-medium`,children:[e.name,e.required&&(0,H.jsx)(`span`,{className:`ml-0.5 text-destructive`,children:`*`})]}),(0,H.jsx)(`p`,{className:`truncate text-[10px] text-muted-foreground`,children:n?.label})]})]}),(0,H.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1`,children:[(0,H.jsx)(`button`,{type:`button`,title:`Move up`,onClick:()=>j(t,-1),disabled:!!p||t===0,className:`flex size-6 items-center justify-center rounded border border-border text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Wa,{className:`size-3`})}),(0,H.jsx)(`button`,{type:`button`,title:`Move down`,onClick:()=>j(t,1),disabled:!!p||t===l.arrayFields.length-1,className:`flex size-6 items-center justify-center rounded border border-border text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Va,{className:`size-3`})}),(0,H.jsx)(`button`,{type:`button`,title:`Edit sub-field`,onClick:()=>A(t),disabled:!!p,className:`flex size-6 items-center justify-center rounded border border-border text-muted-foreground hover:bg-accent disabled:opacity-30`,children:(0,H.jsx)(Io,{className:`size-3`})}),(0,H.jsx)(`button`,{type:`button`,title:`Delete sub-field`,onClick:()=>k(e.name),disabled:!!p,className:`flex size-6 items-center justify-center rounded border border-border text-muted-foreground hover:text-destructive disabled:opacity-30`,children:(0,H.jsx)(Zo,{className:`size-3`})})]})]},e.name)})}),b&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:b}),p&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-lg border border-border bg-muted/30 p-3`,children:[(0,H.jsx)(`div`,{className:`grid grid-cols-4 gap-1.5`,children:$0.map(e=>{let t=e.icon,n=`${e.type}${e.subtype??``}`;return(0,H.jsxs)(`button`,{type:`button`,onClick:()=>D(e),className:[`flex items-center gap-1.5 rounded-md border px-2 py-1.5 text-left transition-colors`,p.type===e.type&&(p.subtype??void 0)===(e.subtype??void 0)?`border-primary bg-accent`:`border-border hover:border-primary hover:bg-accent`].join(` `),children:[(0,H.jsx)(`div`,{className:`flex size-5 shrink-0 items-center justify-center rounded ${e.bg}`,children:(0,H.jsx)(t,{className:`size-3 ${e.color}`})}),(0,H.jsx)(`span`,{className:`truncate text-xs font-medium`,children:e.label})]},n)})}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,H.jsx)(Sw,{placeholder:`sub_field_name`,value:p.name,onChange:e=>{m(t=>t&&{...t,name:e.target.value}),y(``)},onKeyDown:e=>{e.key===`Enter`&&O()}}),_&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:_})]}),p.type===`media`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(Y,{children:`Allowed file types`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground -mt-1`,children:`Leave all unchecked to allow any file type.`}),(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:r2.map(({value:e,label:t})=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(PT,{id:`array-media-type-${e}`,checked:p.allowedTypes.includes(e),onCheckedChange:t=>m(n=>n&&{...n,allowedTypes:t?[...n.allowedTypes,e]:n.allowedTypes.filter(t=>t!==e)})}),(0,H.jsx)(Y,{htmlFor:`array-media-type-${e}`,className:`cursor-pointer font-normal`,children:t})]},e))})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(PT,{id:`subfield-required`,checked:p.required,onCheckedChange:e=>m(t=>t&&{...t,required:!!e})}),(0,H.jsx)(Y,{htmlFor:`subfield-required`,className:`cursor-pointer font-normal text-sm`,children:`Required`})]}),(0,H.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,H.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>{m(null),g(null),y(``)},children:`Cancel`}),(0,H.jsx)(q,{size:`sm`,onClick:O,children:h===null?`Add`:`Save`})]})]})]})]}),s?.type===`uid`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Source field`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`The slug will be auto-generated from this field's value.`}),i.length>0?(0,H.jsxs)(V_,{value:l.targetField,onValueChange:e=>u(t=>({...t,targetField:e})),children:[(0,H.jsx)(W_,{children:(0,H.jsx)(U_,{placeholder:`Select a text field`})}),(0,H.jsx)(q_,{children:i.map(e=>(0,H.jsx)(Y_,{value:e.name,children:e.name},e.name))})]}):(0,H.jsx)(`p`,{className:`rounded-md border border-border bg-muted px-3 py-2 text-xs text-muted-foreground`,children:`No short text fields available. Add a string field first.`})]}),s?.type===`relation`&&(0,H.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Relation type`}),(0,H.jsx)(`div`,{className:`grid grid-cols-1 gap-1.5`,children:i2.map(e=>(0,H.jsx)(`button`,{type:`button`,onClick:()=>u(t=>({...t,relationType:e.value})),className:`flex items-start gap-3 rounded-md border px-3 py-2 text-left transition-colors hover:border-primary ${l.relationType===e.value?`border-primary bg-accent`:`border-border`}`,children:(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-sm font-medium leading-none`,children:e.label}),(0,H.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:e.description})]})},e.value))})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Related content type`}),r.length>0?(0,H.jsxs)(V_,{value:l.relatedTable,onValueChange:e=>{let t=r.find(t=>t.tableName===e);u(n=>({...n,relatedTable:e,relatedSlug:t?.slug??``}))},children:[(0,H.jsx)(W_,{children:(0,H.jsx)(U_,{placeholder:`Select a content type`})}),(0,H.jsx)(q_,{children:r.map(e=>(0,H.jsx)(Y_,{value:e.tableName,children:e.name},e.tableName))})]}):(0,H.jsx)(Sw,{placeholder:`table_name`,value:l.relatedTable,onChange:e=>u(t=>({...t,relatedTable:e.target.value}))})]})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(PT,{id:`field-required`,checked:l.required,onCheckedChange:e=>u(t=>({...t,required:!!e}))}),(0,H.jsx)(Y,{htmlFor:`field-required`,className:`cursor-pointer font-normal`,children:`Required field`})]}),(0,H.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-border pt-3`,children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>C(!1),children:`Cancel`}),(0,H.jsx)(q,{onClick:P,children:S?`Save changes`:`Add field`})]})]})]})})}function l2(e){return e.toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/^-+|-+$/g,``)}function u2(e){return e.replace(/-/g,`_`)}function d2({field:e,onWidthChange:t,onArraySubFieldWidthChange:n,onEdit:r,onDelete:i}){let{attributes:a,listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=fM({id:e.name});return(0,H.jsx)(`div`,{ref:s,style:{transform:Tk.Transform.toString(c),transition:l,opacity:u?.5:1},className:a0[e.width??`full`],children:(0,H.jsx)(l0,{field:e,dragListeners:o,dragAttributes:a,onWidthChange:t,onArraySubFieldWidthChange:n,onEdit:r,onDelete:i})})}function f2(){let{slug:e}=gr(),t=fr(),n=!e,{user:r}=_a(),i=r?.permissions??[],a=i.includes(`*`)||i.includes(`content-types:delete`),{data:o,loading:s}=fs(n?``:`/cms/admin/content-types/${e}`),{data:c,refetch:l}=fs(`/cms/admin/content-types`),{data:u}=fs(`/cms/admin/client-settings`),{loading:d,request:f}=xw(),{loading:p,request:m}=xw(),[h,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(``),[b,x]=(0,v.useState)(`collection`),[S,C]=(0,v.useState)(!0),[w,T]=(0,v.useState)([]),[E,D]=(0,v.useState)(!1),[O,k]=(0,v.useState)(null),[A,j]=(0,v.useState)(!1),M=(0,v.useRef)({name:``,slug:``,previewEnabled:!0,fields:`[]`});(0,v.useEffect)(()=>(window.addEventListener(`plank:content-types-changed`,l),()=>window.removeEventListener(`plank:content-types-changed`,l)),[l]),(0,v.useEffect)(()=>{if(n){g(``),y(``),x(`collection`),C(!0),T([]),M.current={name:``,slug:``,previewEnabled:!0,fields:`[]`};return}o&&(g(o.name),y(o.slug),x(o.kind??`collection`),C(o.previewEnabled??!0),T(o.fields),M.current={name:o.name,slug:o.slug,previewEnabled:o.previewEnabled??!0,fields:JSON.stringify(o.fields)})},[o,n]),(0,v.useEffect)(()=>{n&&h&&y(l2(h))},[n,h]);let N=h!==M.current.name||S!==M.current.previewEnabled||JSON.stringify(w)!==M.current.fields,P=String(u?.preview_enabled??`false`).toLowerCase()===`true`&&b===`collection`,F=(0,v.useRef)(!1),I=Ir((0,v.useCallback)(()=>F.current?!1:N,[N])),L=Vk(Bk(VA,{activationConstraint:{distance:5}}));function R(e){let{active:t,over:n}=e;!n||t.id===n.id||T(e=>qj(e,e.findIndex(e=>e.name===t.id),e.findIndex(e=>e.name===n.id)))}function ee(e){T(t=>[...t,e])}function te(e){T(t=>t.map(t=>t.name===O?.name?e:t)),k(null)}function ne(e){T(t=>t.filter(t=>t.name!==e))}function z(e,t){T(n=>n.map(n=>n.name===e?{...n,width:t}:n))}function B(e,t,n){T(r=>r.map(r=>r.name!==e||r.type!==`array`||!r.arrayFields?r:{...r,arrayFields:r.arrayFields.map(e=>e.name===t?{...e,width:n}:e)}))}async function re(){if(!h.trim()||!_.trim())return;let r=n?{name:h.trim(),slug:_,kind:b,previewEnabled:S,tableName:u2(_),fields:w}:{name:h.trim(),slug:_,previewEnabled:S,tableName:u2(_),fields:w};try{let i=await f(n?`/cms/admin/content-types`:`/cms/admin/content-types/${e}`,n?`POST`:`PUT`,r);g(i.name),y(i.slug),C(i.previewEnabled??!0),T(i.fields),M.current={name:i.name,slug:i.slug,previewEnabled:i.previewEnabled??!0,fields:JSON.stringify(i.fields)},window.dispatchEvent(new CustomEvent(`plank:content-types-changed`)),X.success(`Content type saved`),(n||i.slug!==e)&&(F.current=!0,t(`/content-types/${i.slug}`,{replace:!0}))}catch{X.error(`Could not save content type`)}}async function V(){if(a)try{await m(`/cms/admin/content-types/${e}`,`DELETE`),X.success(`Content type deleted`),window.dispatchEvent(new CustomEvent(`plank:content-types-changed`)),t(`/content-types`,{replace:!0})}catch{X.error(`Could not delete content type`)}}let ie=(c??[]).filter(t=>t.slug!==e).map(e=>({tableName:e.tableName,slug:e.slug,name:e.name})),ae=w.filter(e=>e.type===`string`),oe=w.map(e=>e.name);return mD(`mod+s`,re,{enabled:N&&!d&&!!h.trim(),label:`Save content type`}),mD(`mod+k`,()=>D(!0),{label:`Add field`}),!n&&s?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,H.jsx)(`input`,{value:h,onChange:e=>g(e.target.value),placeholder:`Content type name`,className:`bg-transparent text-2xl font-bold outline-none placeholder:text-muted-foreground/40 -mt-2`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`API ID:`}),(0,H.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:_||`—`})]}),n?(0,H.jsxs)(`div`,{className:`flex items-center gap-1 rounded-md border p-0.5`,children:[(0,H.jsxs)(`button`,{type:`button`,onClick:()=>x(`collection`),className:`flex items-center gap-1.5 rounded px-2 py-0.5 text-xs font-medium transition-colors ${b===`collection`?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`}`,children:[(0,H.jsx)(ko,{className:`size-3`}),`Collection`]}),(0,H.jsxs)(`button`,{type:`button`,onClick:()=>x(`single`),className:`flex items-center gap-1.5 rounded px-2 py-0.5 text-xs font-medium transition-colors ${b===`single`?`bg-muted text-foreground`:`text-muted-foreground hover:text-foreground`}`,children:[(0,H.jsx)(oo,{className:`size-3`}),`Single`]})]}):(0,H.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium text-muted-foreground ${b===`single`?`border-violet-500/30 bg-violet-500/10 text-violet-600 dark:text-violet-400`:``}`,children:[b===`single`?(0,H.jsx)(oo,{className:`size-3`}):(0,H.jsx)(ko,{className:`size-3`}),b===`single`?`Single`:`Collection`]}),P&&(0,H.jsxs)(`div`,{className:`ml-2 inline-flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,H.jsx)(lD,{id:`content-type-preview`,checked:S,onCheckedChange:C}),(0,H.jsx)(Y,{htmlFor:`content-type-preview`,className:`text-xs text-muted-foreground`,children:`Preview`})]})]})]}),(0,H.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[!n&&a&&(0,H.jsx)(q,{variant:`ghost`,size:`icon`,className:`text-muted-foreground hover:text-destructive`,onClick:()=>j(!0),disabled:p,children:(0,H.jsx)(Zo,{className:`size-4`})}),(0,H.jsxs)(q,{onClick:re,disabled:!N||d||!h.trim(),children:[d?(0,H.jsx)(zC,{className:`size-4`}):null,`Save`]})]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[w.length>0?(()=>{let e=w.filter(e=>e.relationType!==`one-to-many`),t=w.filter(e=>e.relationType===`one-to-many`);return(0,H.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[e.length>0&&(0,H.jsx)(Rj,{sensors:L,collisionDetection:Jk,onDragEnd:R,children:(0,H.jsx)(iM,{items:e.map(e=>e.name),strategy:eM,children:(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-3`,children:e.map(e=>(0,H.jsx)(d2,{field:e,onWidthChange:t=>z(e.name,t),onArraySubFieldWidthChange:(t,n)=>B(e.name,t,n),onEdit:()=>k(e),onDelete:()=>ne(e.name)},e.name))})})}),t.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-3`,children:t.map(e=>(0,H.jsx)(`div`,{className:`col-span-6`,children:(0,H.jsx)(l0,{field:e})},e.name))})]})})():(0,H.jsx)(XE,{className:`border`,children:(0,H.jsxs)(ZE,{children:[(0,H.jsx)($E,{variant:`icon`,children:(0,H.jsx)(So,{})}),(0,H.jsx)(eD,{children:`No fields yet`}),(0,H.jsx)(tD,{children:`Add your first field to define this content type's structure.`})]})}),(0,H.jsx)(`div`,{className:`mt-4`,children:(0,H.jsxs)(q,{variant:`outline`,onClick:()=>D(!0),className:`gap-2`,children:[(0,H.jsx)(Lo,{className:`size-4`}),`Add field`]})}),(0,H.jsx)(c2,{open:E,onOpenChange:D,existingNames:oe,availableContentTypes:ie,stringFields:ae,onConfirm:ee}),(0,H.jsx)(c2,{open:!!O,onOpenChange:e=>{e||k(null)},existingNames:oe,availableContentTypes:ie,stringFields:ae,initialField:O??void 0,onConfirm:te}),(0,H.jsx)(Jh,{open:A,onOpenChange:j,children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsxs)(tg,{children:[`Delete "`,h,`"?`]})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This will permanently delete the content type and all its entries. This action cannot be undone.`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>j(!1),children:`Cancel`}),(0,H.jsxs)(q,{variant:`destructive`,onClick:V,disabled:p,children:[p?(0,H.jsx)(zC,{className:`size-4`}):null,`Delete`]})]})]})}),(0,H.jsx)(Jh,{open:I.state===`blocked`,onOpenChange:()=>I.reset?.(),children:(0,H.jsxs)(Qh,{className:`max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Unsaved changes`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`You have unsaved changes. Leave without saving?`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>I.reset?.(),children:`Stay`}),(0,H.jsx)(q,{variant:`destructive`,onClick:()=>I.proceed?.(),children:`Leave`})]})]})})]})]})}function p2(e,t){return typeof e==`function`?e(t):e}function m2(e,t){return n=>{t.setState(t=>({...t,[e]:p2(n,t[e])}))}}function h2(e){return e instanceof Function}function g2(e){return Array.isArray(e)&&e.every(e=>typeof e==`number`)}function _2(e,t){let n=[],r=e=>{e.forEach(e=>{n.push(e);let i=t(e);i!=null&&i.length&&r(i)})};return r(e),n}function v2(e,t,n){let r=[],i;return a=>{let o;n.key&&n.debug&&(o=Date.now());let s=e(a);if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug&&(c=Date.now()),i=t(...s),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=` `+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
|
|
221
221
|
font-size: .6rem;
|
|
222
222
|
font-weight: bold;
|
|
223
|
-
color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return i}}function v2(e,t,n,r){return{debug:()=>e?.debugAll??e[t],key:!1,onChange:r}}function y2(e,t,n,r){let i={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:()=>i.getValue()??e.options.renderFallbackValue,getContext:_2(()=>[e,n,t,i],(e,t,n,r)=>({table:e,column:t,row:n,cell:r,getValue:r.getValue,renderValue:r.renderValue}),v2(e.options,`debugCells`,`cell.getContext`))};return e._features.forEach(r=>{r.createCell==null||r.createCell(i,n,t,e)},{}),i}function b2(e,t,n,r){let i={...e._getDefaultColumnDef(),...t},a=i.accessorKey,o=i.id??(a?typeof String.prototype.replaceAll==`function`?a.replaceAll(`.`,`_`):a.replace(/\./g,`_`):void 0)??(typeof i.header==`string`?i.header:void 0),s;if(i.accessorFn?s=i.accessorFn:a&&(s=a.includes(`.`)?e=>{let t=e;for(let e of a.split(`.`))t=t?.[e];return t}:e=>e[i.accessorKey]),!o)throw Error();let c={id:`${String(o)}`,accessorFn:s,parent:r,depth:n,columnDef:i,columns:[],getFlatColumns:_2(()=>[!0],()=>[c,...c.columns?.flatMap(e=>e.getFlatColumns())],v2(e.options,`debugColumns`,`column.getFlatColumns`)),getLeafColumns:_2(()=>[e._getOrderColumnsFn()],e=>{var t;return(t=c.columns)!=null&&t.length?e(c.columns.flatMap(e=>e.getLeafColumns())):[c]},v2(e.options,`debugColumns`,`column.getLeafColumns`))};for(let t of e._features)t.createColumn==null||t.createColumn(c,e);return c}var x2=`debugHeaders`;function S2(e,t,n){let r={id:n.id??t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{let e=[],t=n=>{n.subHeaders&&n.subHeaders.length&&n.subHeaders.map(t),e.push(n)};return t(r),e},getContext:()=>({table:e,header:r,column:t})};return e._features.forEach(t=>{t.createHeader==null||t.createHeader(r,e)}),r}var C2={createTable:e=>{e.getHeaderGroups=_2(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{let a=r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],o=i?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],s=n.filter(e=>!(r!=null&&r.includes(e.id))&&!(i!=null&&i.includes(e.id)));return w2(t,[...a,...s,...o],e)},v2(e.options,x2,`getHeaderGroups`)),e.getCenterHeaderGroups=_2(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(e=>!(r!=null&&r.includes(e.id))&&!(i!=null&&i.includes(e.id))),w2(t,n,e,`center`)),v2(e.options,x2,`getCenterHeaderGroups`)),e.getLeftHeaderGroups=_2(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>w2(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`left`),v2(e.options,x2,`getLeftHeaderGroups`)),e.getRightHeaderGroups=_2(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>w2(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`right`),v2(e.options,x2,`getRightHeaderGroups`)),e.getFooterGroups=_2(()=>[e.getHeaderGroups()],e=>[...e].reverse(),v2(e.options,x2,`getFooterGroups`)),e.getLeftFooterGroups=_2(()=>[e.getLeftHeaderGroups()],e=>[...e].reverse(),v2(e.options,x2,`getLeftFooterGroups`)),e.getCenterFooterGroups=_2(()=>[e.getCenterHeaderGroups()],e=>[...e].reverse(),v2(e.options,x2,`getCenterFooterGroups`)),e.getRightFooterGroups=_2(()=>[e.getRightHeaderGroups()],e=>[...e].reverse(),v2(e.options,x2,`getRightFooterGroups`)),e.getFlatHeaders=_2(()=>[e.getHeaderGroups()],e=>e.map(e=>e.headers).flat(),v2(e.options,x2,`getFlatHeaders`)),e.getLeftFlatHeaders=_2(()=>[e.getLeftHeaderGroups()],e=>e.map(e=>e.headers).flat(),v2(e.options,x2,`getLeftFlatHeaders`)),e.getCenterFlatHeaders=_2(()=>[e.getCenterHeaderGroups()],e=>e.map(e=>e.headers).flat(),v2(e.options,x2,`getCenterFlatHeaders`)),e.getRightFlatHeaders=_2(()=>[e.getRightHeaderGroups()],e=>e.map(e=>e.headers).flat(),v2(e.options,x2,`getRightFlatHeaders`)),e.getCenterLeafHeaders=_2(()=>[e.getCenterFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),v2(e.options,x2,`getCenterLeafHeaders`)),e.getLeftLeafHeaders=_2(()=>[e.getLeftFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),v2(e.options,x2,`getLeftLeafHeaders`)),e.getRightLeafHeaders=_2(()=>[e.getRightFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),v2(e.options,x2,`getRightLeafHeaders`)),e.getLeafHeaders=_2(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(e,t,n)=>[...e[0]?.headers??[],...t[0]?.headers??[],...n[0]?.headers??[]].map(e=>e.getLeafHeaders()).flat(),v2(e.options,x2,`getLeafHeaders`))}};function w2(e,t,n,r){let i=0,a=function(e,t){t===void 0&&(t=1),i=Math.max(i,t),e.filter(e=>e.getIsVisible()).forEach(e=>{var n;(n=e.columns)!=null&&n.length&&a(e.columns,t+1)},0)};a(e);let o=[],s=(e,t)=>{let i={depth:t,id:[r,`${t}`].filter(Boolean).join(`_`),headers:[]},a=[];e.forEach(e=>{let o=[...a].reverse()[0],s=e.column.depth===i.depth,c,l=!1;if(s&&e.column.parent?c=e.column.parent:(c=e.column,l=!0),o&&o?.column===c)o.subHeaders.push(e);else{let i=S2(n,c,{id:[r,t,c.id,e?.id].filter(Boolean).join(`_`),isPlaceholder:l,placeholderId:l?`${a.filter(e=>e.column===c).length}`:void 0,depth:t,index:a.length});i.subHeaders.push(e),a.push(i)}i.headers.push(e),e.headerGroup=i}),o.push(i),t>0&&s(a,t-1)};s(t.map((e,t)=>S2(n,e,{depth:i,index:t})),i-1),o.reverse();let c=e=>e.filter(e=>e.column.getIsVisible()).map(e=>{let t=0,n=0,r=[0];e.subHeaders&&e.subHeaders.length?(r=[],c(e.subHeaders).forEach(e=>{let{colSpan:n,rowSpan:i}=e;t+=n,r.push(i)})):t=1;let i=Math.min(...r);return n+=i,e.colSpan=t,e.rowSpan=n,{colSpan:t,rowSpan:n}});return c(o[0]?.headers??[]),o}var T2=(e,t,n,r,i,a,o)=>{let s={id:t,index:r,original:n,depth:i,parentId:o,_valuesCache:{},_uniqueValuesCache:{},getValue:t=>{if(s._valuesCache.hasOwnProperty(t))return s._valuesCache[t];let n=e.getColumn(t);if(n!=null&&n.accessorFn)return s._valuesCache[t]=n.accessorFn(s.original,r),s._valuesCache[t]},getUniqueValues:t=>{if(s._uniqueValuesCache.hasOwnProperty(t))return s._uniqueValuesCache[t];let n=e.getColumn(t);if(n!=null&&n.accessorFn)return n.columnDef.getUniqueValues?(s._uniqueValuesCache[t]=n.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[t]):(s._uniqueValuesCache[t]=[s.getValue(t)],s._uniqueValuesCache[t])},renderValue:t=>s.getValue(t)??e.options.renderFallbackValue,subRows:a??[],getLeafRows:()=>g2(s.subRows,e=>e.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let e=[],t=s;for(;;){let n=t.getParentRow();if(!n)break;e.push(n),t=n}return e.reverse()},getAllCells:_2(()=>[e.getAllLeafColumns()],t=>t.map(t=>y2(e,s,t,t.id)),v2(e.options,`debugRows`,`getAllCells`)),_getAllCellsByColumnId:_2(()=>[s.getAllCells()],e=>e.reduce((e,t)=>(e[t.column.id]=t,e),{}),v2(e.options,`debugRows`,`getAllCellsByColumnId`))};for(let t=0;t<e._features.length;t++){let n=e._features[t];n==null||n.createRow==null||n.createRow(s,e)}return s},E2={createColumn:(e,t)=>{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},D2=(e,t,n)=>{var r,i;let a=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((i=e.getValue(t))==null||(i=i.toString())==null||(i=i.toLowerCase())==null)&&i.includes(a))};D2.autoRemove=e=>L2(e);var O2=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};O2.autoRemove=e=>L2(e);var k2=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===n?.toLowerCase()};k2.autoRemove=e=>L2(e);var A2=(e,t,n)=>e.getValue(t)?.includes(n);A2.autoRemove=e=>L2(e);var j2=(e,t,n)=>!n.some(n=>{var r;return!((r=e.getValue(t))!=null&&r.includes(n))});j2.autoRemove=e=>L2(e)||!(e!=null&&e.length);var M2=(e,t,n)=>n.some(n=>e.getValue(t)?.includes(n));M2.autoRemove=e=>L2(e)||!(e!=null&&e.length);var N2=(e,t,n)=>e.getValue(t)===n;N2.autoRemove=e=>L2(e);var P2=(e,t,n)=>e.getValue(t)==n;P2.autoRemove=e=>L2(e);var F2=(e,t,n)=>{let[r,i]=n,a=e.getValue(t);return a>=r&&a<=i};F2.resolveFilterValue=e=>{let[t,n]=e,r=typeof t==`number`?t:parseFloat(t),i=typeof n==`number`?n:parseFloat(n),a=t===null||Number.isNaN(r)?-1/0:r,o=n===null||Number.isNaN(i)?1/0:i;if(a>o){let e=a;a=o,o=e}return[a,o]},F2.autoRemove=e=>L2(e)||L2(e[0])&&L2(e[1]);var I2={includesString:D2,includesStringSensitive:O2,equalsString:k2,arrIncludes:A2,arrIncludesAll:j2,arrIncludesSome:M2,equals:N2,weakEquals:P2,inNumberRange:F2};function L2(e){return e==null||e===``}var R2={getDefaultColumnDef:()=>({filterFn:`auto`}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:p2(`columnFilters`,e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{let n=t.getCoreRowModel().flatRows[0]?.getValue(e.id);return typeof n==`string`?I2.includesString:typeof n==`number`?I2.inNumberRange:typeof n==`boolean`||typeof n==`object`&&n?I2.equals:Array.isArray(n)?I2.arrIncludes:I2.weakEquals},e.getFilterFn=()=>m2(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn===`auto`?e.getAutoFilterFn():t.options.filterFns?.[e.columnDef.filterFn]??I2[e.columnDef.filterFn],e.getCanFilter=()=>(e.columnDef.enableColumnFilter??!0)&&(t.options.enableColumnFilters??!0)&&(t.options.enableFilters??!0)&&!!e.accessorFn,e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(t=>t.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>t.getState().columnFilters?.findIndex(t=>t.id===e.id)??-1,e.setFilterValue=n=>{t.setColumnFilters(t=>{let r=e.getFilterFn(),i=t?.find(t=>t.id===e.id),a=f2(n,i?i.value:void 0);if(z2(r,a,e))return t?.filter(t=>t.id!==e.id)??[];let o={id:e.id,value:a};return i?t?.map(t=>t.id===e.id?o:t)??[]:t!=null&&t.length?[...t,o]:[o]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{let n=e.getAllLeafColumns();e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(e=>f2(t,e)?.filter(e=>{let t=n.find(t=>t.id===e.id);return!(t&&z2(t.getFilterFn(),e.value,t))}))},e.resetColumnFilters=t=>{e.setColumnFilters(t?[]:e.initialState?.columnFilters??[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function z2(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||t===void 0||typeof t==`string`&&!t}var B2={sum:(e,t,n)=>n.reduce((t,n)=>{let r=n.getValue(e);return t+(typeof r==`number`?r:0)},0),min:(e,t,n)=>{let r;return n.forEach(t=>{let n=t.getValue(e);n!=null&&(r>n||r===void 0&&n>=n)&&(r=n)}),r},max:(e,t,n)=>{let r;return n.forEach(t=>{let n=t.getValue(e);n!=null&&(r<n||r===void 0&&n>=n)&&(r=n)}),r},extent:(e,t,n)=>{let r,i;return n.forEach(t=>{let n=t.getValue(e);n!=null&&(r===void 0?n>=n&&(r=i=n):(r>n&&(r=n),i<n&&(i=n)))}),[r,i]},mean:(e,t)=>{let n=0,r=0;if(t.forEach(t=>{let i=t.getValue(e);i!=null&&(i=+i)>=i&&(++n,r+=i)}),n)return r/n},median:(e,t)=>{if(!t.length)return;let n=t.map(t=>t.getValue(e));if(!h2(n))return;if(n.length===1)return n[0];let r=Math.floor(n.length/2),i=n.sort((e,t)=>e-t);return n.length%2==0?(i[r-1]+i[r])/2:i[r]},unique:(e,t)=>Array.from(new Set(t.map(t=>t.getValue(e))).values()),uniqueCount:(e,t)=>new Set(t.map(t=>t.getValue(e))).size,count:(e,t)=>t.length},V2={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t;return((t=e.getValue())==null||t.toString==null?void 0:t.toString())??null},aggregationFn:`auto`}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:p2(`grouping`,e),groupedColumnMode:`reorder`}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(t=>t!=null&&t.includes(e.id)?t.filter(t=>t!==e.id):[...t??[],e.id])},e.getCanGroup=()=>(e.columnDef.enableGrouping??!0)&&(t.options.enableGrouping??!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue),e.getIsGrouped=()=>t.getState().grouping?.includes(e.id),e.getGroupedIndex=()=>t.getState().grouping?.indexOf(e.id),e.getToggleGroupingHandler=()=>{let t=e.getCanGroup();return()=>{t&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{let n=t.getCoreRowModel().flatRows[0]?.getValue(e.id);if(typeof n==`number`)return B2.sum;if(Object.prototype.toString.call(n)===`[object Date]`)return B2.extent},e.getAggregationFn=()=>{if(!e)throw Error();return m2(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn===`auto`?e.getAutoAggregationFn():t.options.aggregationFns?.[e.columnDef.aggregationFn]??B2[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{e.setGrouping(t?[]:e.initialState?.grouping??[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];let r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var t;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((t=n.subRows)!=null&&t.length)}}};function H2(e,t,n){if(!(t!=null&&t.length)||!n)return e;let r=e.filter(e=>!t.includes(e.id));return n===`remove`?r:[...t.map(t=>e.find(e=>e.id===t)).filter(Boolean),...r]}var U2={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:p2(`columnOrder`,e)}),createColumn:(e,t)=>{e.getIndex=_2(e=>[e4(t,e)],t=>t.findIndex(t=>t.id===e.id),v2(t.options,`debugColumns`,`getIndex`)),e.getIsFirstColumn=n=>e4(t,n)[0]?.id===e.id,e.getIsLastColumn=n=>{let r=e4(t,n);return r[r.length-1]?.id===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{e.setColumnOrder(t?[]:e.initialState.columnOrder??[])},e._getOrderColumnsFn=_2(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(e,t,n)=>r=>{let i=[];if(!(e!=null&&e.length))i=r;else{let t=[...e],n=[...r];for(;n.length&&t.length;){let e=t.shift(),r=n.findIndex(t=>t.id===e);r>-1&&i.push(n.splice(r,1)[0])}i=[...i,...n]}return H2(i,t,n)},v2(e.options,`debugTable`,`_getOrderColumnsFn`))}},W2=()=>({left:[],right:[]}),G2={getInitialState:e=>({columnPinning:W2(),...e}),getDefaultOptions:e=>({onColumnPinningChange:p2(`columnPinning`,e)}),createColumn:(e,t)=>{e.pin=n=>{let r=e.getLeafColumns().map(e=>e.id).filter(Boolean);t.setColumnPinning(e=>n===`right`?{left:(e?.left??[]).filter(e=>!(r!=null&&r.includes(e))),right:[...(e?.right??[]).filter(e=>!(r!=null&&r.includes(e))),...r]}:n===`left`?{left:[...(e?.left??[]).filter(e=>!(r!=null&&r.includes(e))),...r],right:(e?.right??[]).filter(e=>!(r!=null&&r.includes(e)))}:{left:(e?.left??[]).filter(e=>!(r!=null&&r.includes(e))),right:(e?.right??[]).filter(e=>!(r!=null&&r.includes(e)))})},e.getCanPin=()=>e.getLeafColumns().some(e=>(e.columnDef.enablePinning??!0)&&(t.options.enableColumnPinning??t.options.enablePinning??!0)),e.getIsPinned=()=>{let n=e.getLeafColumns().map(e=>e.id),{left:r,right:i}=t.getState().columnPinning,a=n.some(e=>r?.includes(e)),o=n.some(e=>i?.includes(e));return a?`left`:o?`right`:!1},e.getPinnedIndex=()=>{var n;let r=e.getIsPinned();return r?((n=t.getState().columnPinning)==null||(n=n[r])==null?void 0:n.indexOf(e.id))??-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=_2(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(e,t,n)=>{let r=[...t??[],...n??[]];return e.filter(e=>!r.includes(e.column.id))},v2(t.options,`debugRows`,`getCenterVisibleCells`)),e.getLeftVisibleCells=_2(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(e,t)=>(t??[]).map(t=>e.find(e=>e.column.id===t)).filter(Boolean).map(e=>({...e,position:`left`})),v2(t.options,`debugRows`,`getLeftVisibleCells`)),e.getRightVisibleCells=_2(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(e,t)=>(t??[]).map(t=>e.find(e=>e.column.id===t)).filter(Boolean).map(e=>({...e,position:`right`})),v2(t.options,`debugRows`,`getRightVisibleCells`))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>e.setColumnPinning(t?W2():e.initialState?.columnPinning??W2()),e.getIsSomeColumnsPinned=t=>{let n=e.getState().columnPinning;return t?!!n[t]?.length:!!(n.left?.length||n.right?.length)},e.getLeftLeafColumns=_2(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(e,t)=>(t??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),v2(e.options,`debugColumns`,`getLeftLeafColumns`)),e.getRightLeafColumns=_2(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(e,t)=>(t??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),v2(e.options,`debugColumns`,`getRightLeafColumns`)),e.getCenterLeafColumns=_2(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(e,t,n)=>{let r=[...t??[],...n??[]];return e.filter(e=>!r.includes(e.id))},v2(e.options,`debugColumns`,`getCenterLeafColumns`))}};function K2(e){return e||(typeof document<`u`?document:null)}var q2={size:150,minSize:20,maxSize:2**53-1},J2=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),Y2={getDefaultColumnDef:()=>q2,getInitialState:e=>({columnSizing:{},columnSizingInfo:J2(),...e}),getDefaultOptions:e=>({columnResizeMode:`onEnd`,columnResizeDirection:`ltr`,onColumnSizingChange:p2(`columnSizing`,e),onColumnSizingInfoChange:p2(`columnSizingInfo`,e)}),createColumn:(e,t)=>{e.getSize=()=>{let n=t.getState().columnSizing[e.id];return Math.min(Math.max(e.columnDef.minSize??q2.minSize,n??e.columnDef.size??q2.size),e.columnDef.maxSize??q2.maxSize)},e.getStart=_2(e=>[e,e4(t,e),t.getState().columnSizing],(t,n)=>n.slice(0,e.getIndex(t)).reduce((e,t)=>e+t.getSize(),0),v2(t.options,`debugColumns`,`getStart`)),e.getAfter=_2(e=>[e,e4(t,e),t.getState().columnSizing],(t,n)=>n.slice(e.getIndex(t)+1).reduce((e,t)=>e+t.getSize(),0),v2(t.options,`debugColumns`,`getAfter`)),e.resetSize=()=>{t.setColumnSizing(t=>{let{[e.id]:n,...r}=t;return r})},e.getCanResize=()=>(e.columnDef.enableResizing??!0)&&(t.options.enableColumnResizing??!0),e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let t=0,n=e=>{e.subHeaders.length?e.subHeaders.forEach(n):t+=e.column.getSize()??0};return n(e),t},e.getStart=()=>{if(e.index>0){let t=e.headerGroup.headers[e.index-1];return t.getStart()+t.getSize()}return 0},e.getResizeHandler=n=>{let r=t.getColumn(e.column.id),i=r?.getCanResize();return a=>{if(!r||!i||(a.persist==null||a.persist(),Q2(a)&&a.touches&&a.touches.length>1))return;let o=e.getSize(),s=e?e.getLeafHeaders().map(e=>[e.column.id,e.column.getSize()]):[[r.id,r.getSize()]],c=Q2(a)?Math.round(a.touches[0].clientX):a.clientX,l={},u=(e,n)=>{typeof n==`number`&&(t.setColumnSizingInfo(e=>{let r=t.options.columnResizeDirection===`rtl`?-1:1,i=(n-(e?.startOffset??0))*r,a=Math.max(i/(e?.startSize??0),-.999999);return e.columnSizingStart.forEach(e=>{let[t,n]=e;l[t]=Math.round(Math.max(n+n*a,0)*100)/100}),{...e,deltaOffset:i,deltaPercentage:a}}),(t.options.columnResizeMode===`onChange`||e===`end`)&&t.setColumnSizing(e=>({...e,...l})))},d=e=>u(`move`,e),f=e=>{u(`end`,e),t.setColumnSizingInfo(e=>({...e,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=K2(n),m={moveHandler:e=>d(e.clientX),upHandler:e=>{p?.removeEventListener(`mousemove`,m.moveHandler),p?.removeEventListener(`mouseup`,m.upHandler),f(e.clientX)}},h={moveHandler:e=>(e.cancelable&&(e.preventDefault(),e.stopPropagation()),d(e.touches[0].clientX),!1),upHandler:e=>{p?.removeEventListener(`touchmove`,h.moveHandler),p?.removeEventListener(`touchend`,h.upHandler),e.cancelable&&(e.preventDefault(),e.stopPropagation()),f(e.touches[0]?.clientX)}},g=Z2()?{passive:!1}:!1;Q2(a)?(p?.addEventListener(`touchmove`,h.moveHandler,g),p?.addEventListener(`touchend`,h.upHandler,g)):(p?.addEventListener(`mousemove`,m.moveHandler,g),p?.addEventListener(`mouseup`,m.upHandler,g)),t.setColumnSizingInfo(e=>({...e,startOffset:c,startSize:o,deltaOffset:0,deltaPercentage:0,columnSizingStart:s,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{e.setColumnSizing(t?{}:e.initialState.columnSizing??{})},e.resetHeaderSizeInfo=t=>{e.setColumnSizingInfo(t?J2():e.initialState.columnSizingInfo??J2())},e.getTotalSize=()=>e.getHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0,e.getLeftTotalSize=()=>e.getLeftHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0,e.getCenterTotalSize=()=>e.getCenterHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0,e.getRightTotalSize=()=>e.getRightHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0}},X2=null;function Z2(){if(typeof X2==`boolean`)return X2;let e=!1;try{let t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener(`test`,n,t),window.removeEventListener(`test`,n)}catch{e=!1}return X2=e,X2}function Q2(e){return e.type===`touchstart`}var $2={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:p2(`columnVisibility`,e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(t=>({...t,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{let n=e.columns;return(n.length?n.some(e=>e.getIsVisible()):t.getState().columnVisibility?.[e.id])??!0},e.getCanHide=()=>(e.columnDef.enableHiding??!0)&&(t.options.enableHiding??!0),e.getToggleVisibilityHandler=()=>t=>{e.toggleVisibility==null||e.toggleVisibility(t.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=_2(()=>[e.getAllCells(),t.getState().columnVisibility],e=>e.filter(e=>e.column.getIsVisible()),v2(t.options,`debugRows`,`_getAllVisibleCells`)),e.getVisibleCells=_2(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(e,t,n)=>[...e,...t,...n],v2(t.options,`debugRows`,`getVisibleCells`))},createTable:e=>{let t=(t,n)=>_2(()=>[n(),n().filter(e=>e.getIsVisible()).map(e=>e.id).join(`_`)],e=>e.filter(e=>e.getIsVisible==null?void 0:e.getIsVisible()),v2(e.options,`debugColumns`,t));e.getVisibleFlatColumns=t(`getVisibleFlatColumns`,()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t(`getVisibleLeafColumns`,()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t(`getLeftVisibleLeafColumns`,()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t(`getRightVisibleLeafColumns`,()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t(`getCenterVisibleLeafColumns`,()=>e.getCenterLeafColumns()),e.setColumnVisibility=t=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(t),e.resetColumnVisibility=t=>{e.setColumnVisibility(t?{}:e.initialState.columnVisibility??{})},e.toggleAllColumnsVisible=t=>{t??=!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((e,n)=>({...e,[n.id]:t||!(n.getCanHide!=null&&n.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(e=>!(e.getIsVisible!=null&&e.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(e=>e.getIsVisible==null?void 0:e.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>t=>{e.toggleAllColumnsVisible(t.target?.checked)}}};function e4(e,t){return t?t===`center`?e.getCenterVisibleLeafColumns():t===`left`?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}var t4={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,`__global__`),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,`__global__`),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,`__global__`),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},n4={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:p2(`globalFilter`,e),globalFilterFn:`auto`,getColumnCanGlobalFilter:t=>{var n;let r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r==`string`||typeof r==`number`}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>(e.columnDef.enableGlobalFilter??!0)&&(t.options.enableGlobalFilter??!0)&&(t.options.enableFilters??!0)&&((t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))??!0)&&!!e.accessorFn},createTable:e=>{e.getGlobalAutoFilterFn=()=>I2.includesString,e.getGlobalFilterFn=()=>{let{globalFilterFn:t}=e.options;return m2(t)?t:t===`auto`?e.getGlobalAutoFilterFn():e.options.filterFns?.[t]??I2[t]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},r4={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:p2(`expanded`,e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{if(!t){e._queue(()=>{t=!0});return}if(e.options.autoResetAll??e.options.autoResetExpanded??!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=t=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(t),e.toggleAllRowsExpanded=t=>{t??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=t=>{e.setExpanded(t?{}:e.initialState?.expanded??{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(e=>e.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>t=>{t.persist==null||t.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{let t=e.getState().expanded;return t===!0||Object.values(t).some(Boolean)},e.getIsAllRowsExpanded=()=>{let t=e.getState().expanded;return typeof t==`boolean`?t===!0:!(!Object.keys(t).length||e.getRowModel().flatRows.some(e=>!e.getIsExpanded()))},e.getExpandedDepth=()=>{let t=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(e=>{let n=e.split(`.`);t=Math.max(t,n.length)}),t},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{let i=r===!0?!0:!!(r!=null&&r[e.id]),a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(e=>{a[e]=!0}):a=r,n??=!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){let{[e.id]:t,...n}=a;return n}return r})},e.getIsExpanded=()=>{let n=t.getState().expanded;return!!((t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))??(n===!0||n?.[e.id]))},e.getCanExpand=()=>{var n;return(t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))??((t.options.enableExpanding??!0)&&!!((n=e.subRows)!=null&&n.length))},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{let t=e.getCanExpand();return()=>{t&&e.toggleExpanded()}}}},i4=0,a4=10,o4=()=>({pageIndex:i4,pageSize:a4}),s4={getInitialState:e=>({...e,pagination:{...o4(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:p2(`pagination`,e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{if(!t){e._queue(()=>{t=!0});return}if(e.options.autoResetAll??e.options.autoResetPageIndex??!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=t=>e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(e=>f2(t,e)),e.resetPagination=t=>{e.setPagination(t?o4():e.initialState.pagination??o4())},e.setPageIndex=t=>{e.setPagination(n=>{let r=f2(t,n.pageIndex),i=e.options.pageCount===void 0||e.options.pageCount===-1?2**53-1:e.options.pageCount-1;return r=Math.max(0,Math.min(r,i)),{...n,pageIndex:r}})},e.resetPageIndex=t=>{var n;e.setPageIndex(t?i4:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageIndex)??i4)},e.resetPageSize=t=>{var n;e.setPageSize(t?a4:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageSize)??a4)},e.setPageSize=t=>{e.setPagination(e=>{let n=Math.max(1,f2(t,e.pageSize)),r=e.pageSize*e.pageIndex,i=Math.floor(r/n);return{...e,pageIndex:i,pageSize:n}})},e.setPageCount=t=>e.setPagination(n=>{let r=f2(t,e.options.pageCount??-1);return typeof r==`number`&&(r=Math.max(-1,r)),{...n,pageCount:r}}),e.getPageOptions=_2(()=>[e.getPageCount()],e=>{let t=[];return e&&e>0&&(t=[...Array(e)].fill(null).map((e,t)=>t)),t},v2(e.options,`debugTable`,`getPageOptions`)),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{let{pageIndex:t}=e.getState().pagination,n=e.getPageCount();return n===-1?!0:n===0?!1:t<n-1},e.previousPage=()=>e.setPageIndex(e=>e-1),e.nextPage=()=>e.setPageIndex(e=>e+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>e.options.pageCount??Math.ceil(e.getRowCount()/e.getState().pagination.pageSize),e.getRowCount=()=>e.options.rowCount??e.getPrePaginationRowModel().rows.length}},c4=()=>({top:[],bottom:[]}),l4={getInitialState:e=>({rowPinning:c4(),...e}),getDefaultOptions:e=>({onRowPinningChange:p2(`rowPinning`,e)}),createRow:(e,t)=>{e.pin=(n,r,i)=>{let a=r?e.getLeafRows().map(e=>{let{id:t}=e;return t}):[],o=i?e.getParentRows().map(e=>{let{id:t}=e;return t}):[],s=new Set([...o,e.id,...a]);t.setRowPinning(e=>n===`bottom`?{top:(e?.top??[]).filter(e=>!(s!=null&&s.has(e))),bottom:[...(e?.bottom??[]).filter(e=>!(s!=null&&s.has(e))),...Array.from(s)]}:n===`top`?{top:[...(e?.top??[]).filter(e=>!(s!=null&&s.has(e))),...Array.from(s)],bottom:(e?.bottom??[]).filter(e=>!(s!=null&&s.has(e)))}:{top:(e?.top??[]).filter(e=>!(s!=null&&s.has(e))),bottom:(e?.bottom??[]).filter(e=>!(s!=null&&s.has(e)))})},e.getCanPin=()=>{let{enableRowPinning:n,enablePinning:r}=t.options;return typeof n==`function`?n(e):n??r??!0},e.getIsPinned=()=>{let n=[e.id],{top:r,bottom:i}=t.getState().rowPinning,a=n.some(e=>r?.includes(e)),o=n.some(e=>i?.includes(e));return a?`top`:o?`bottom`:!1},e.getPinnedIndex=()=>{let n=e.getIsPinned();return n?((n===`top`?t.getTopRows():t.getBottomRows())?.map(e=>{let{id:t}=e;return t}))?.indexOf(e.id)??-1:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>e.setRowPinning(t?c4():e.initialState?.rowPinning??c4()),e.getIsSomeRowsPinned=t=>{let n=e.getState().rowPinning;return t?!!n[t]?.length:!!(n.top?.length||n.bottom?.length)},e._getPinnedRows=(t,n,r)=>(e.options.keepPinnedRows??!0?(n??[]).map(t=>{let n=e.getRow(t,!0);return n.getIsAllParentsExpanded()?n:null}):(n??[]).map(e=>t.find(t=>t.id===e))).filter(Boolean).map(e=>({...e,position:r})),e.getTopRows=_2(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,`top`),v2(e.options,`debugRows`,`getTopRows`)),e.getBottomRows=_2(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,`bottom`),v2(e.options,`debugRows`,`getBottomRows`)),e.getCenterRows=_2(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(e,t,n)=>{let r=new Set([...t??[],...n??[]]);return e.filter(e=>!r.has(e.id))},v2(e.options,`debugRows`,`getCenterRows`))}},u4={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:p2(`rowSelection`,e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>e.setRowSelection(t?{}:e.initialState.rowSelection??{}),e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=t===void 0?!e.getIsAllRowsSelected():t;let r={...n},i=e.getPreGroupedRowModel().flatRows;return t?i.forEach(e=>{e.getCanSelect()&&(r[e.id]=!0)}):i.forEach(e=>{delete r[e.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{let r=t===void 0?!e.getIsAllPageRowsSelected():t,i={...n};return e.getRowModel().rows.forEach(t=>{d4(i,t.id,r,!0,e)}),i}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=_2(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?f4(e,n):{rows:[],flatRows:[],rowsById:{}},v2(e.options,`debugTable`,`getSelectedRowModel`)),e.getFilteredSelectedRowModel=_2(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?f4(e,n):{rows:[],flatRows:[],rowsById:{}},v2(e.options,`debugTable`,`getFilteredSelectedRowModel`)),e.getGroupedSelectedRowModel=_2(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?f4(e,n):{rows:[],flatRows:[],rowsById:{}},v2(e.options,`debugTable`,`getGroupedSelectedRowModel`)),e.getIsAllRowsSelected=()=>{let t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState(),r=!!(t.length&&Object.keys(n).length);return r&&t.some(e=>e.getCanSelect()&&!n[e.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{let t=e.getPaginationRowModel().flatRows.filter(e=>e.getCanSelect()),{rowSelection:n}=e.getState(),r=!!t.length;return r&&t.some(e=>!n[e.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{let t=Object.keys(e.getState().rowSelection??{}).length;return t>0&&t<e.getFilteredRowModel().flatRows.length},e.getIsSomePageRowsSelected=()=>{let t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(e=>e.getCanSelect()).some(e=>e.getIsSelected()||e.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{let i=e.getIsSelected();t.setRowSelection(a=>{if(n=n===void 0?!i:n,e.getCanSelect()&&i===n)return a;let o={...a};return d4(o,e.id,n,r?.selectChildren??!0,t),o})},e.getIsSelected=()=>{let{rowSelection:n}=t.getState();return p4(e,n)},e.getIsSomeSelected=()=>{let{rowSelection:n}=t.getState();return m4(e,n)===`some`},e.getIsAllSubRowsSelected=()=>{let{rowSelection:n}=t.getState();return m4(e,n)===`all`},e.getCanSelect=()=>typeof t.options.enableRowSelection==`function`?t.options.enableRowSelection(e):t.options.enableRowSelection??!0,e.getCanSelectSubRows=()=>typeof t.options.enableSubRowSelection==`function`?t.options.enableSubRowSelection(e):t.options.enableSubRowSelection??!0,e.getCanMultiSelect=()=>typeof t.options.enableMultiRowSelection==`function`?t.options.enableMultiRowSelection(e):t.options.enableMultiRowSelection??!0,e.getToggleSelectedHandler=()=>{let t=e.getCanSelect();return n=>{t&&e.toggleSelected(n.target?.checked)}}}},d4=(e,t,n,r,i)=>{var a;let o=i.getRow(t,!0);n?(o.getCanMultiSelect()||Object.keys(e).forEach(t=>delete e[t]),o.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(a=o.subRows)!=null&&a.length&&o.getCanSelectSubRows()&&o.subRows.forEach(t=>d4(e,t.id,n,r,i))};function f4(e,t){let n=e.getState().rowSelection,r=[],i={},a=function(e,t){return e.map(e=>{var t;let o=p4(e,n);if(o&&(r.push(e),i[e.id]=e),(t=e.subRows)!=null&&t.length&&(e={...e,subRows:a(e.subRows)}),o)return e}).filter(Boolean)};return{rows:a(t.rows),flatRows:r,rowsById:i}}function p4(e,t){return t[e.id]??!1}function m4(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let i=!0,a=!1;return e.subRows.forEach(e=>{if(!(a&&!i)&&(e.getCanSelect()&&(p4(e,t)?a=!0:i=!1),e.subRows&&e.subRows.length)){let n=m4(e,t);n===`all`?a=!0:(n===`some`&&(a=!0),i=!1)}}),i?`all`:a?`some`:!1}var h4=/([0-9]+)/gm,g4=(e,t,n)=>w4(C4(e.getValue(n)).toLowerCase(),C4(t.getValue(n)).toLowerCase()),_4=(e,t,n)=>w4(C4(e.getValue(n)),C4(t.getValue(n))),v4=(e,t,n)=>S4(C4(e.getValue(n)).toLowerCase(),C4(t.getValue(n)).toLowerCase()),y4=(e,t,n)=>S4(C4(e.getValue(n)),C4(t.getValue(n))),b4=(e,t,n)=>{let r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},x4=(e,t,n)=>S4(e.getValue(n),t.getValue(n));function S4(e,t){return e===t?0:e>t?1:-1}function C4(e){return typeof e==`number`?isNaN(e)||e===1/0||e===-1/0?``:String(e):typeof e==`string`?e:``}function w4(e,t){let n=e.split(h4).filter(Boolean),r=t.split(h4).filter(Boolean);for(;n.length&&r.length;){let e=n.shift(),t=r.shift(),i=parseInt(e,10),a=parseInt(t,10),o=[i,a].sort();if(isNaN(o[0])){if(e>t)return 1;if(t>e)return-1;continue}if(isNaN(o[1]))return isNaN(i)?-1:1;if(i>a)return 1;if(a>i)return-1}return n.length-r.length}var T4={alphanumeric:g4,alphanumericCaseSensitive:_4,text:v4,textCaseSensitive:y4,datetime:b4,basic:x4},E4=[C2,$2,U2,G2,E2,R2,t4,n4,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:`auto`,sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:p2(`sorting`,e),isMultiSortEvent:e=>e.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{let n=t.getFilteredRowModel().flatRows.slice(10),r=!1;for(let t of n){let n=t?.getValue(e.id);if(Object.prototype.toString.call(n)===`[object Date]`)return T4.datetime;if(typeof n==`string`&&(r=!0,n.split(h4).length>1))return T4.alphanumeric}return r?T4.text:T4.basic},e.getAutoSortDir=()=>typeof t.getFilteredRowModel().flatRows[0]?.getValue(e.id)==`string`?`asc`:`desc`,e.getSortingFn=()=>{if(!e)throw Error();return m2(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn===`auto`?e.getAutoSortingFn():t.options.sortingFns?.[e.columnDef.sortingFn]??T4[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{let i=e.getNextSortingOrder(),a=n!=null;t.setSorting(o=>{let s=o?.find(t=>t.id===e.id),c=o?.findIndex(t=>t.id===e.id),l=[],u,d=a?n:i===`desc`;return u=o!=null&&o.length&&e.getCanMultiSort()&&r?s?`toggle`:`add`:o!=null&&o.length&&c!==o.length-1?`replace`:s?`toggle`:`replace`,u===`toggle`&&(a||i||(u=`remove`)),u===`add`?(l=[...o,{id:e.id,desc:d}],l.splice(0,l.length-(t.options.maxMultiSortColCount??2**53-1))):l=u===`toggle`?o.map(t=>t.id===e.id?{...t,desc:d}:t):u===`remove`?o.filter(t=>t.id!==e.id):[{id:e.id,desc:d}],l})},e.getFirstSortDir=()=>e.columnDef.sortDescFirst??t.options.sortDescFirst??e.getAutoSortDir()===`desc`?`desc`:`asc`,e.getNextSortingOrder=n=>{let r=e.getFirstSortDir(),i=e.getIsSorted();return i?i!==r&&(t.options.enableSortingRemoval??!0)&&(!n||(t.options.enableMultiRemove??!0))?!1:i===`desc`?`asc`:`desc`:r},e.getCanSort=()=>(e.columnDef.enableSorting??!0)&&(t.options.enableSorting??!0)&&!!e.accessorFn,e.getCanMultiSort=()=>e.columnDef.enableMultiSort??t.options.enableMultiSort??!!e.accessorFn,e.getIsSorted=()=>{let n=t.getState().sorting?.find(t=>t.id===e.id);return n?n.desc?`desc`:`asc`:!1},e.getSortIndex=()=>t.getState().sorting?.findIndex(t=>t.id===e.id)??-1,e.clearSorting=()=>{t.setSorting(t=>t!=null&&t.length?t.filter(t=>t.id!==e.id):[])},e.getToggleSortingHandler=()=>{let n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{e.setSorting(t?[]:e.initialState?.sorting??[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},V2,r4,s4,l4,u4,Y2];function D4(e){let t=[...E4,...e._features??[]],n={_features:t},r=n._features.reduce((e,t)=>Object.assign(e,t.getDefaultOptions==null?void 0:t.getDefaultOptions(n)),{}),i=e=>n.options.mergeOptions?n.options.mergeOptions(r,e):{...r,...e},a={...e.initialState??{}};n._features.forEach(e=>{a=(e.getInitialState==null?void 0:e.getInitialState(a))??a});let o=[],s=!1,c={_features:t,options:{...r,...e},initialState:a,_queue:e=>{o.push(e),s||(s=!0,Promise.resolve().then(()=>{for(;o.length;)o.shift()();s=!1}).catch(e=>setTimeout(()=>{throw e})))},reset:()=>{n.setState(n.initialState)},setOptions:e=>{n.options=i(f2(e,n.options))},getState:()=>n.options.state,setState:e=>{n.options.onStateChange==null||n.options.onStateChange(e)},_getRowId:(e,t,r)=>(n.options.getRowId==null?void 0:n.options.getRowId(e,t,r))??`${r?[r.id,t].join(`.`):t}`,getCoreRowModel:()=>(n._getCoreRowModel||=n.options.getCoreRowModel(n),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:(e,t)=>{let r=(t?n.getPrePaginationRowModel():n.getRowModel()).rowsById[e];if(!r&&(r=n.getCoreRowModel().rowsById[e],!r))throw Error();return r},_getDefaultColumnDef:_2(()=>[n.options.defaultColumn],e=>(e??={},{header:e=>{let t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>{var t;return((t=e.renderValue())==null||t.toString==null?void 0:t.toString())??null},...n._features.reduce((e,t)=>Object.assign(e,t.getDefaultColumnDef==null?void 0:t.getDefaultColumnDef()),{}),...e}),v2(e,`debugColumns`,`_getDefaultColumnDef`)),_getColumnDefs:()=>n.options.columns,getAllColumns:_2(()=>[n._getColumnDefs()],e=>{let t=function(e,r,i){return i===void 0&&(i=0),e.map(e=>{let a=b2(n,e,i,r),o=e;return a.columns=o.columns?t(o.columns,a,i+1):[],a})};return t(e)},v2(e,`debugColumns`,`getAllColumns`)),getAllFlatColumns:_2(()=>[n.getAllColumns()],e=>e.flatMap(e=>e.getFlatColumns()),v2(e,`debugColumns`,`getAllFlatColumns`)),_getAllFlatColumnsById:_2(()=>[n.getAllFlatColumns()],e=>e.reduce((e,t)=>(e[t.id]=t,e),{}),v2(e,`debugColumns`,`getAllFlatColumnsById`)),getAllLeafColumns:_2(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(e,t)=>t(e.flatMap(e=>e.getLeafColumns())),v2(e,`debugColumns`,`getAllLeafColumns`)),getColumn:e=>n._getAllFlatColumnsById()[e]};Object.assign(n,c);for(let e=0;e<n._features.length;e++){let t=n._features[e];t==null||t.createTable==null||t.createTable(n)}return n}function O4(){return e=>_2(()=>[e.options.data],t=>{let n={rows:[],flatRows:[],rowsById:{}},r=function(t,i,a){i===void 0&&(i=0);let o=[];for(let c=0;c<t.length;c++){let l=T2(e,e._getRowId(t[c],c,a),t[c],c,i,void 0,a?.id);if(n.flatRows.push(l),n.rowsById[l.id]=l,o.push(l),e.options.getSubRows){var s;l.originalSubRows=e.options.getSubRows(t[c],c),(s=l.originalSubRows)!=null&&s.length&&(l.subRows=r(l.originalSubRows,i+1,l))}}return o};return n.rows=r(t),n},v2(e.options,`debugTable`,`getRowModel`,()=>e._autoResetPageIndex()))}function k4(e,t){return e?A4(e)?v.createElement(e,t):e:null}function A4(e){return j4(e)||typeof e==`function`||M4(e)}function j4(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function M4(e){return typeof e==`object`&&typeof e.$$typeof==`symbol`&&[`react.memo`,`react.forward_ref`].includes(e.$$typeof.description)}function N4(e){let t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=v.useState(()=>({current:D4(t)})),[r,i]=v.useState(()=>n.current.initialState);return n.current.setOptions(t=>({...t,...e,state:{...r,...e.state},onStateChange:t=>{i(t),e.onStateChange==null||e.onStateChange(t)}})),n.current}var P4={"full-access":`default`,"mcp-server":`outline`,"read-only":`secondary`},F4={"full-access":`Full access`,"mcp-server":`MCP Server`,"read-only":`Read only`};function I4({value:e}){let[t,n]=(0,v.useState)(!1);function r(){navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),2e3)}return(0,H.jsx)(q,{type:`button`,size:`icon`,variant:`outline`,className:`shrink-0`,onClick:r,children:t?(0,H.jsx)(Ba,{className:`size-4 text-green-500`}):(0,H.jsx)(Qa,{className:`size-4`})})}var L4={name:``,accessType:``};function R4(){let{user:e}=_a(),{data:t,loading:n,refetch:r}=fs(`/cms/admin/api-tokens`),{request:i,loading:a,error:o}=xw(),s=e?.permissions??[],c=s.includes(`*`)||s.includes(`settings:api-tokens:write`),l=s.includes(`*`)||s.includes(`settings:api-tokens:delete`),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(L4),[m,h]=(0,v.useState)(null),[g,_]=(0,v.useState)(null),y=[{accessorKey:`name`,header:`Name`},{accessorKey:`access_type`,header:`Access`,cell:({getValue:e})=>{let t=e();return(0,H.jsx)(RC,{variant:P4[t]??`secondary`,children:F4[t]??t})}},{accessorKey:`created_at`,header:`Created`,cell:({getValue:e})=>new Date(e()).toLocaleDateString(`en-US`,{year:`numeric`,month:`short`,day:`numeric`})},{id:`actions`,header:``,cell:({row:e})=>l?(0,H.jsx)(q,{size:`icon`,variant:`ghost`,className:`flex size-8 items-center justify-center rounded text-destructive hover:bg-destructive/10 hover:text-destructive`,onClick:()=>_(e.original),children:(0,H.jsx)(Zo,{className:`size-3.5`})}):null}],b=N4({data:t??[],columns:y,getCoreRowModel:O4()});async function x(e){e.preventDefault();try{h(await i(`/cms/admin/api-tokens`,`POST`,{name:f.name,accessType:f.accessType})),r(),X.success(`API token created`)}catch{X.error(`Could not create token`)}}function S(){d(!1),h(null),p(L4)}async function C(){try{await i(`/cms/admin/api-tokens/${g.id}`,`DELETE`),_(null),r(),X.success(`Token revoked`)}catch{X.error(`Could not revoke token`)}}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`API Tokens`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Manage tokens for consuming the public API and the instance MCP endpoint.`})]}),(0,H.jsxs)(q,{onClick:()=>d(!0),disabled:!c,children:[(0,H.jsx)(Lo,{className:`size-4`}),`New token`]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsx)(`div`,{className:`rounded-md border`,children:(0,H.jsxs)(BC,{children:[(0,H.jsx)(VC,{className:`font-bold uppercase`,children:b.getHeaderGroups().map(e=>(0,H.jsx)(UC,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:k4(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(HC,{children:n?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:y.length,className:`h-24`,children:(0,H.jsx)(zC,{className:`mx-auto size-5`})})}):b.getRowModel().rows.length===0?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:y.length,className:`h-24 text-center text-muted-foreground`,children:`No tokens yet.`})}):b.getRowModel().rows.map(e=>(0,H.jsx)(UC,{children:e.getVisibleCells().map(e=>(0,H.jsx)(GC,{className:`px-4 py-3`,children:k4(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(Jh,{open:u,onOpenChange:e=>{e||S()},children:(0,H.jsx)(Qh,{className:`sm:max-w-md`,children:m?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Token generated`})}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,H.jsx)(`div`,{className:`rounded-md border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800 dark:border-amber-900 dark:bg-amber-950 dark:text-amber-200`,children:`Make sure to copy your token now. You won't be able to see it again.`}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Token`}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(Sw,{readOnly:!0,value:m.token,className:`font-mono text-xs`}),(0,H.jsx)(I4,{value:m.token})]})]})]}),(0,H.jsx)(eg,{children:(0,H.jsx)(q,{onClick:S,children:`Done`})})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`New API token`})}),(0,H.jsxs)(`form`,{id:`create-token-form`,onSubmit:x,className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`token-name`,children:`Name`}),(0,H.jsx)(Sw,{id:`token-name`,placeholder:`e.g. Production frontend`,value:f.name,onChange:e=>p(t=>({...t,name:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`token-access`,children:`Access type`}),(0,H.jsxs)(V_,{value:f.accessType,onValueChange:e=>p(t=>({...t,accessType:e})),children:[(0,H.jsx)(W_,{id:`token-access`,children:(0,H.jsx)(U_,{placeholder:`Select access type`})}),(0,H.jsxs)(q_,{children:[(0,H.jsx)(Y_,{value:`read-only`,children:`Read only`}),(0,H.jsx)(Y_,{value:`full-access`,children:`Full access`}),(0,H.jsx)(Y_,{value:`mcp-server`,children:`MCP Server`})]})]})]}),o&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:o})]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,type:`button`,onClick:S,children:`Cancel`}),(0,H.jsx)(q,{type:`submit`,form:`create-token-form`,disabled:a||!f.accessType||!c,children:a?`Generating…`:`Generate token`})]})]})})}),(0,H.jsx)(Jh,{open:!!g,onOpenChange:e=>{e||_(null)},children:(0,H.jsxs)(Qh,{className:`sm:max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Revoke token`})}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to revoke`,` `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:g?.name}),`? Any client using it will immediately lose access.`]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>_(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:C,disabled:a||!l,children:a?`Revoking…`:`Revoke`})]})]})})]})]})}var z4=`••••••••`;function B4({values:e,onChange:t,disabled:n=!1}){return(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`local-uploads-dir`,children:`Upload directory`}),(0,H.jsx)(Sw,{id:`local-uploads-dir`,placeholder:`public/uploads`,value:e[`local.uploads_dir`]??``,onChange:e=>t(`local.uploads_dir`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Path on disk where files are stored. Relative to the server working directory.`})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`local-public-url`,children:`Public URL`}),(0,H.jsx)(Sw,{id:`local-public-url`,placeholder:`http://localhost:1337`,value:e[`local.public_url`]??``,onChange:e=>t(`local.public_url`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Base URL used to build file URLs. Should match the server's public address.`})]})]})}function V4({id:e,label:t,fieldKey:n,values:r,onChange:i,placeholder:a,disabled:o=!1}){let[s,c]=(0,v.useState)(!1),l=r[n]===z4,u=r[n]??``;return(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:e,children:t}),(0,H.jsxs)(`div`,{className:`relative`,children:[(0,H.jsx)(Sw,{id:e,type:s?`text`:`password`,placeholder:l?`Leave blank to keep current value`:a,value:l?``:u,onChange:e=>i(n,e.target.value),className:`pr-9`,disabled:o}),(0,H.jsx)(`button`,{type:`button`,className:`absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:()=>c(e=>!e),tabIndex:-1,disabled:o,children:s?(0,H.jsx)(to,{className:`size-4`}):(0,H.jsx)(no,{className:`size-4`})})]}),l&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`A value is already saved. Enter a new one to replace it.`})]})}function H4({values:e,onChange:t,disabled:n=!1}){return(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`s3-access-key`,children:`Access key ID`}),(0,H.jsx)(Sw,{id:`s3-access-key`,placeholder:`AKIAIOSFODNN7EXAMPLE`,value:e[`s3.access_key_id`]??``,onChange:e=>t(`s3.access_key_id`,e.target.value),disabled:n})]}),(0,H.jsx)(V4,{id:`s3-secret-key`,label:`Secret access key`,fieldKey:`s3.secret_access_key`,values:e,onChange:t,disabled:n})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`s3-region`,children:`Region`}),(0,H.jsx)(Sw,{id:`s3-region`,placeholder:`us-east-1`,value:e[`s3.region`]??``,onChange:e=>t(`s3.region`,e.target.value),disabled:n})]}),(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`s3-bucket`,children:`Bucket`}),(0,H.jsx)(Sw,{id:`s3-bucket`,placeholder:`my-bucket`,value:e[`s3.bucket`]??``,onChange:e=>t(`s3.bucket`,e.target.value),disabled:n})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`s3-path-prefix`,children:`Path prefix`}),(0,H.jsx)(Sw,{id:`s3-path-prefix`,placeholder:`cms/media`,value:e[`s3.path_prefix`]??``,onChange:e=>t(`s3.path_prefix`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Shared bucket subfolder.`})]})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`s3-public-url`,children:`Public URL`}),(0,H.jsx)(Sw,{id:`s3-public-url`,placeholder:`https://cdn.example.com`,value:e[`s3.public_url`]??``,onChange:e=>t(`s3.public_url`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Leave blank to use the default S3 URL.`})]})]})}function U4({values:e,onChange:t,disabled:n=!1}){return(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`r2-access-key`,children:`Access key ID`}),(0,H.jsx)(Sw,{id:`r2-access-key`,placeholder:`R2 access key ID`,value:e[`r2.access_key_id`]??``,onChange:e=>t(`r2.access_key_id`,e.target.value),disabled:n})]}),(0,H.jsx)(V4,{id:`r2-secret-key`,label:`Secret access key`,fieldKey:`r2.secret_access_key`,values:e,onChange:t,disabled:n})]}),(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`r2-bucket`,children:`Bucket`}),(0,H.jsx)(Sw,{id:`r2-bucket`,placeholder:`my-bucket`,value:e[`r2.bucket`]??``,onChange:e=>t(`r2.bucket`,e.target.value),disabled:n})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`r2-path-prefix`,children:`Path prefix`}),(0,H.jsx)(Sw,{id:`r2-path-prefix`,placeholder:`cms/media`,value:e[`r2.path_prefix`]??``,onChange:e=>t(`r2.path_prefix`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Shared bucket subfolder.`})]})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsxs)(Y,{htmlFor:`r2-public-url`,children:[`Public URL `,(0,H.jsx)(`span`,{className:`text-destructive`,children:`*`})]}),(0,H.jsx)(Sw,{id:`r2-public-url`,placeholder:`https://assets.example.com`,value:e[`r2.public_url`]??``,onChange:e=>t(`r2.public_url`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Required. R2 does not generate public URLs automatically.`})]})]})}function W4(){let{user:e}=_a(),{data:t,loading:n}=fs(`/cms/admin/settings/media`),{loading:r,error:i,request:a}=xw(),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),u=o??t??{provider:`local`},d=u.provider||`local`,f=e?.permissions??[],p=f.includes(`*`)||f.includes(`settings:overview:write`);function m(e,t){s({...u,[e]:t})}function h(e){s({...u,provider:e})}async function g(e){e.preventDefault();try{await a(`/cms/admin/settings/media`,`PUT`,u),l(!0),setTimeout(()=>l(!1),2500),X.success(`Media settings saved`)}catch{X.error(`Could not save media settings`)}}return n?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-8 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading settings…`})]}):(0,H.jsxs)(`form`,{onSubmit:g,className:`space-y-8`,children:[(0,H.jsxs)(`div`,{className:`border-b pb-4`,children:[(0,H.jsx)(`h2`,{className:`text-2xl font-semibold`,children:`Storage`}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure where uploaded files are stored.`})]}),(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`provider`,children:`Storage provider`}),(0,H.jsxs)(V_,{value:d,onValueChange:e=>h(e),children:[(0,H.jsx)(W_,{id:`provider`,disabled:!p,children:(0,H.jsx)(U_,{})}),(0,H.jsxs)(q_,{children:[(0,H.jsx)(Y_,{value:`local`,children:`Local`}),(0,H.jsx)(Y_,{value:`s3`,children:`Amazon S3`}),(0,H.jsx)(Y_,{value:`r2`,children:`Cloudflare R2`})]})]})]}),d===`r2`&&(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`r2-account-id`,children:`Account ID`}),(0,H.jsx)(Sw,{id:`r2-account-id`,placeholder:`023e105f4ecef8ad9ca31a8372d0c353`,value:u[`r2.account_id`]??``,onChange:e=>m(`r2.account_id`,e.target.value),disabled:!p}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Found in the Cloudflare dashboard under R2 > Overview.`})]})]}),(0,H.jsxs)(`div`,{className:`border-t pt-6`,children:[d===`local`&&(0,H.jsx)(B4,{values:u,onChange:m,disabled:!p}),d===`s3`&&(0,H.jsx)(H4,{values:u,onChange:m,disabled:!p}),d===`r2`&&(0,H.jsx)(U4,{values:u,onChange:m,disabled:!p})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(q,{type:`submit`,disabled:r||!p,children:r?`Saving…`:`Save`}),c&&(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Changes saved.`}),i&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:i})]})]})}var G4={name:`@plank-cms/admin`,version:`0.30.0`,type:`module`,scripts:{build:`vite build`,dev:`vite`,lint:`eslint src/`},dependencies:{"@dnd-kit/core":`6.3.1`,"@dnd-kit/sortable":`10.0.0`,"@dnd-kit/utilities":`3.2.2`,"@radix-ui/react-avatar":`1.1.11`,"@radix-ui/react-checkbox":`1.3.3`,"@radix-ui/react-dialog":`1.1.15`,"@radix-ui/react-dropdown-menu":`2.1.16`,"@radix-ui/react-label":`2.1.8`,"@radix-ui/react-popover":`1.1.15`,"@radix-ui/react-select":`2.2.6`,"@radix-ui/react-separator":`1.1.8`,"@radix-ui/react-slot":`1.2.4`,"@radix-ui/react-switch":`1.2.6`,"@radix-ui/react-tabs":`1.1.13`,"@radix-ui/react-tooltip":`1.2.8`,"@tanstack/react-table":`8.21.3`,"@tiptap/extension-image":`3.22.4`,"@tiptap/pm":`3.22.4`,"@tiptap/react":`3.22.4`,"@tiptap/starter-kit":`3.22.4`,"class-variance-authority":`0.7.1`,clsx:`2.1.1`,cmdk:`1.1.1`,"date-fns":`4.1.0`,"hls.js":`1.6.16`,"input-otp":`1.4.2`,"lucide-react":`1.8.0`,"next-themes":`0.4.6`,"qrcode.react":`4.2.0`,"radix-ui":`1.4.3`,react:`19.2.5`,"react-day-picker":`9.14.0`,"react-dom":`19.2.5`,"react-router-dom":`7.14.1`,sonner:`2.0.7`,"tailwind-merge":`3.5.0`},devDependencies:{"@tailwindcss/vite":`4.2.3`,"@types/react":`19.2.14`,"@types/react-dom":`19.2.3`,"@types/react-router-dom":`5.3.3`,"@vitejs/plugin-react":`6.0.1`,tailwindcss:`4.2.3`,vite:`8.0.9`}},K4=[{value:`UTC`,label:`UTC — Coordinated Universal Time`},{value:`America/New_York`,label:`America/New_York — Eastern Time (UTC-5/4)`},{value:`America/Chicago`,label:`America/Chicago — Central Time (UTC-6/5)`},{value:`America/Denver`,label:`America/Denver — Mountain Time (UTC-7/6)`},{value:`America/Los_Angeles`,label:`America/Los_Angeles — Pacific Time (UTC-8/7)`},{value:`America/Anchorage`,label:`America/Anchorage — Alaska Time (UTC-9/8)`},{value:`America/Honolulu`,label:`America/Honolulu — Hawaii Time (UTC-10)`},{value:`America/Mexico_City`,label:`America/Mexico_City — Mexico City (UTC-6/5)`},{value:`America/El_Salvador`,label:`America/El_Salvador — El Salvador (UTC-6)`},{value:`America/Bogota`,label:`America/Bogota — Colombia Time (UTC-5)`},{value:`America/Lima`,label:`America/Lima — Peru Time (UTC-5)`},{value:`America/Santiago`,label:`America/Santiago — Chile Time (UTC-4/3)`},{value:`America/Argentina/Buenos_Aires`,label:`America/Buenos_Aires — Argentina (UTC-3)`},{value:`America/Sao_Paulo`,label:`America/Sao_Paulo — Brasília Time (UTC-3/2)`},{value:`Atlantic/Reykjavik`,label:`Atlantic/Reykjavik — Iceland (UTC+0)`},{value:`Europe/London`,label:`Europe/London — GMT/BST (UTC+0/1)`},{value:`Europe/Paris`,label:`Europe/Paris — Central European Time (UTC+1/2)`},{value:`Europe/Berlin`,label:`Europe/Berlin — Central European Time (UTC+1/2)`},{value:`Europe/Madrid`,label:`Europe/Madrid — Central European Time (UTC+1/2)`},{value:`Europe/Rome`,label:`Europe/Rome — Central European Time (UTC+1/2)`},{value:`Europe/Helsinki`,label:`Europe/Helsinki — Eastern European Time (UTC+2/3)`},{value:`Europe/Istanbul`,label:`Europe/Istanbul — Turkey Time (UTC+3)`},{value:`Europe/Moscow`,label:`Europe/Moscow — Moscow Standard Time (UTC+3)`},{value:`Asia/Dubai`,label:`Asia/Dubai — Gulf Standard Time (UTC+4)`},{value:`Asia/Karachi`,label:`Asia/Karachi — Pakistan Standard Time (UTC+5)`},{value:`Asia/Kolkata`,label:`Asia/Kolkata — India Standard Time (UTC+5:30)`},{value:`Asia/Dhaka`,label:`Asia/Dhaka — Bangladesh Standard Time (UTC+6)`},{value:`Asia/Bangkok`,label:`Asia/Bangkok — Indochina Time (UTC+7)`},{value:`Asia/Singapore`,label:`Asia/Singapore — Singapore Time (UTC+8)`},{value:`Asia/Shanghai`,label:`Asia/Shanghai — China Standard Time (UTC+8)`},{value:`Asia/Tokyo`,label:`Asia/Tokyo — Japan Standard Time (UTC+9)`},{value:`Asia/Seoul`,label:`Asia/Seoul — Korea Standard Time (UTC+9)`},{value:`Australia/Sydney`,label:`Australia/Sydney — AEST/AEDT (UTC+10/11)`},{value:`Australia/Melbourne`,label:`Australia/Melbourne — AEST/AEDT (UTC+10/11)`},{value:`Pacific/Auckland`,label:`Pacific/Auckland — New Zealand (UTC+12/13)`}];function q4(){let{user:e}=_a(),{data:t,loading:n}=fs(`/cms/admin/settings/general`),{request:r,loading:i}=xw(),{request:a,loading:o}=xw(),{request:s,loading:c}=xw(),{refreshSettings:l}=Sa(),[u,d]=(0,v.useState)(`UTC`),[f,p]=(0,v.useState)([]),[m,h]=(0,v.useState)(`en`),[g,_]=(0,v.useState)(``),[y,b]=(0,v.useState)(!1),x=e?.permissions??[],S=x.includes(`*`)||x.includes(`settings:overview:write`);(0,v.useEffect)(()=>{if(t?.timezone&&d(t.timezone),t?.locales)try{let e=JSON.parse(t.locales);Array.isArray(e)&&p(e)}catch{p((t.locales||``).split(`,`).map(e=>e.trim()).filter(Boolean))}t?.default_locale&&h(t.default_locale),b(String(t?.editorial_mode??`false`).toLowerCase()===`true`)},[t]);async function C(){try{await a(`/cms/admin/settings/general`,`PUT`,{locales:JSON.stringify(f),default_locale:m}),l(),X.success(`Locales saved`)}catch{X.error(`Could not save locales`)}}return n?(0,H.jsx)(zC,{}):(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(Q_,{children:(0,H.jsxs)(nv,{className:`flex items-center gap-4 py-2`,children:[(0,H.jsx)(`img`,{src:`/admin/plank-logo-w.svg`,alt:`Plank CMS`,className:`h-10 w-auto`}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`font-bold`,children:`Plank CMS by AM25`}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Version `,G4.version]})]})]})}),(0,H.jsxs)(`div`,{className:`border-b pb-4`,children:[(0,H.jsx)(`h2`,{className:`text-2xl font-semibold`,children:`Commons`}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`General settings that apply across the CMS.`})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Y,{htmlFor:`timezone`,children:`Timezone`}),(0,H.jsxs)(V_,{value:u,onValueChange:e=>{d(e),(async()=>{try{await r(`/cms/admin/settings/general`,`PUT`,{timezone:e}),l(),X.success(`Timezone saved`)}catch{X.error(`Could not save timezone`)}})()},children:[(0,H.jsx)(W_,{id:`timezone`,className:`w-full`,disabled:!S,children:(0,H.jsx)(U_,{})}),(0,H.jsx)(q_,{className:`max-h-72`,children:K4.map(e=>(0,H.jsx)(Y_,{value:e.value,children:e.label},e.value))})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Used to display dates and times across the admin panel.`}),i&&(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Saving…`})]})]}),(0,H.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 md:grid-cols-2`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{children:`Locales`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(Sw,{placeholder:`E.g. "en"`,value:g,onChange:e=>_(e.target.value),className:`h-9 w-full`,disabled:!S}),(0,H.jsx)(q,{variant:`outline`,className:`h-9`,disabled:!S,onClick:()=>{let e=g.trim().toLowerCase();e&&(f.includes(e)||p(t=>[...t,e]),_(``))},children:`Add`})]}),(0,H.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:f.map(e=>(0,H.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>p(t=>t.filter(t=>t!==e)),disabled:!S,children:e.toUpperCase()},e))})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`default-locale`,children:`Default locale`}),(0,H.jsxs)(V_,{value:m,onValueChange:h,children:[(0,H.jsx)(W_,{id:`default-locale`,className:`w-full`,disabled:!S,children:(0,H.jsx)(U_,{})}),(0,H.jsx)(q_,{className:`max-h-72`,children:f.length===0?(0,H.jsx)(Y_,{value:m,children:m}):f.map(e=>(0,H.jsx)(Y_,{value:e,children:e.toUpperCase()},e))})]}),(0,H.jsx)(`div`,{className:`pt-2 flex justify-end`,children:(0,H.jsx)(q,{variant:`outline`,onClick:C,disabled:o||!S,children:o?`Saving…`:`Save`})})]})]}),(0,H.jsx)(b0,{}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(Y,{htmlFor:`editorial-mode`,children:`Editorial Mode`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Enables Editor and Viewer workflows for editorial review.`})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(lD,{id:`editorial-mode`,checked:y,onCheckedChange:e=>{b(e),(async()=>{try{await s(`/cms/admin/settings/general`,`PUT`,{editorial_mode:String(e)}),l(),X.success(`Editorial Mode saved`)}catch{X.error(`Could not save Editorial Mode`)}})()},disabled:!S}),c&&(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Saving…`})]})]})]})}function J4(){let{user:e}=_a(),{data:t,loading:n}=fs(`/cms/admin/settings/preview`),{request:r,loading:i}=xw(),a=e?.permissions??[],o=a.includes(`*`)||a.includes(`settings:overview:write`),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(`slug`);(0,v.useEffect)(()=>{let e=_D(t);c(e.enabled),u(e.syncUrl),f(e.urlTemplate),m(e.slugField)},[t]);async function h(e){e.preventDefault();try{await r(`/cms/admin/settings/preview`,`PUT`,{enabled:String(s),sync_url:l.trim(),url_template:d.trim(),slug_field:p.trim()||`slug`}),X.success(`Preview settings saved`)}catch{X.error(`Could not save preview settings`)}}return n?(0,H.jsx)(zC,{}):(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsxs)(`div`,{className:`border-b pb-4`,children:[(0,H.jsx)(`h2`,{className:`text-2xl font-semibold`,children:`Live Preview`}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure a single frontend preview target that Plank can open and sync after saves.`})]}),(0,H.jsxs)(`form`,{onSubmit:h,className:`space-y-6`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(Y,{htmlFor:`preview-enabled`,children:`Enable preview integration`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Shows the preview action in the entry editor and syncs a connected frontend tab.`})]}),(0,H.jsx)(lD,{id:`preview-enabled`,checked:s,onCheckedChange:c,disabled:!o})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`preview-sync-url`,children:`Preview sync webhook URL`}),(0,H.jsx)(Sw,{id:`preview-sync-url`,value:l,onChange:e=>u(e.target.value),placeholder:`https://frontend.example.com/api/plank/preview-sync`,disabled:!o}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. When set, Plank will POST a preview sync payload to this endpoint on each entry save while preview is enabled.`})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`preview-url-template`,children:`Preview URL template`}),(0,H.jsx)(Sw,{id:`preview-url-template`,value:d,onChange:e=>f(e.target.value),placeholder:`https://frontend.example.com/draft/{contentType}/{slug}`,disabled:!o}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Supported placeholders: `,`{contentType}`,`, `,`{entryId}`,`, `,`{slug}`,`, `,`{status}`,`. The final result must be an absolute URL.`]})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`preview-slug-field`,children:`Slug field`}),(0,H.jsx)(Sw,{id:`preview-slug-field`,value:p,onChange:e=>m(e.target.value),placeholder:`slug`,disabled:!o}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Used when the template contains `,`{slug}`,`. Defaults to `,(0,H.jsx)(`code`,{children:`slug`}),`.`]})]}),(0,H.jsxs)(`div`,{className:`rounded-md border border-dashed p-4 text-sm text-muted-foreground`,children:[`Example: `,(0,H.jsxs)(`code`,{children:[`https://frontend.example.com/draft/`,`{contentType}`,`/`,`{slug}`]})]}),(0,H.jsx)(`div`,{className:`flex justify-end`,children:(0,H.jsx)(q,{type:`submit`,variant:`outline`,disabled:i||!o,children:i?`Saving…`:`Save`})})]})]})}function Y4(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(ds,{children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Overview`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`General configuration for your CMS instance.`})]}),(0,H.jsxs)(_E,{defaultValue:`general`,className:`mt-24`,children:[(0,H.jsxs)(vE,{className:`mb-6`,children:[(0,H.jsx)(yE,{value:`general`,children:`General`}),(0,H.jsx)(yE,{value:`preview`,children:`Preview`}),(0,H.jsx)(yE,{value:`media`,children:`Media Library`})]}),(0,H.jsx)(bE,{value:`general`,children:(0,H.jsx)(q4,{})}),(0,H.jsx)(bE,{value:`preview`,children:(0,H.jsx)(J4,{})}),(0,H.jsx)(bE,{value:`media`,children:(0,H.jsx)(W4,{})})]})]})}var X4=[{key:`content-types`,label:`Content Types`,actions:[`read`,`write`,`delete`]},{key:`entries`,label:`Entries`,actions:[`read`,`write`,`delete`]},{key:`media`,label:`Media`,actions:[`read`,`write`,`delete`]},{key:`addons`,label:`Add-ons`,actions:[`read`,`write`]},{key:`settings:overview`,label:`Settings / Overview`,actions:[`read`,`write`]},{key:`settings:users`,label:`Settings / Users`,actions:[`read`,`write`,`delete`]},{key:`settings:roles`,label:`Settings / Roles`,actions:[`read`,`write`]},{key:`settings:api-tokens`,label:`Settings / API Tokens`,actions:[`read`,`write`,`delete`]},{key:`settings:webhooks`,label:`Settings / Webhooks`,actions:[`read`,`write`,`delete`]}],Z4=[{key:`read`,label:`R`},{key:`write`,label:`W`},{key:`delete`,label:`D`}],Q4=[`Super Admin`,`Admin`,`Editor`,`Contributor`],$4=`w-44 min-w-44 max-w-44`;function e3(e){return Object.fromEntries(e.map(e=>[e.id,new Set(e.permissions)]))}function t3(e,t){return e.includes(t)}function n3(){let{user:e}=_a(),{editorialMode:t}=Sa(),{data:n,loading:r,refetch:i}=fs(`/cms/admin/roles`),{request:a,loading:o}=xw(),[s,c]=(0,v.useState)({}),[l,u]=(0,v.useState)(new Set),[d,f]=(0,v.useState)(!1);(0,v.useEffect)(()=>{n&&c(e3(n))},[n]);function p(e,t){c(n=>{let r=new Set(n[e]);return r.has(t)?r.delete(t):r.add(t),{...n,[e]:r}}),u(t=>new Set(t).add(e))}async function m(e){try{await a(`/cms/admin/roles/${e.id}`,`PUT`,{permissions:Array.from(s[e.id]??[])}),u(t=>{let n=new Set(t);return n.delete(e.id),n}),X.success(`Permissions saved`)}catch{X.error(`Could not save permissions`)}}async function h(){try{await a(`/cms/admin/roles/reset`,`POST`),f(!1),u(new Set),i(),X.success(`Permissions reset to defaults`)}catch{X.error(`Could not reset permissions`)}}let g=e?.role===`Super Admin`,_=(n??[]).filter(e=>e.name!==`Super Admin`).filter(e=>e.name!==`Viewer`).filter(e=>t||![`Editor`,`Viewer`].includes(e.name)).sort((e,t)=>{let n=Q4.indexOf(e.name),r=Q4.indexOf(t.name),i=n===-1?2**53-1:n,a=r===-1?2**53-1:r;return i===a?e.name.localeCompare(t.name):i-a}),y=(n??[]).find(e=>e.name===`Super Admin`);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Roles`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Configure what each role can do across the CMS.`})]}),g&&(0,H.jsxs)(q,{variant:`outline`,onClick:()=>f(!0),children:[(0,H.jsx)(Bo,{className:`size-4`}),`Reset defaults`]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsx)(`div`,{className:`rounded-md border`,children:(0,H.jsxs)(BC,{children:[(0,H.jsxs)(VC,{children:[(0,H.jsxs)(UC,{className:`hover:bg-transparent`,children:[(0,H.jsx)(WC,{className:`w-40`,rowSpan:2}),y&&(0,H.jsx)(WC,{colSpan:3,className:`border-l text-center ${$4}`,children:y.name}),_.map(e=>(0,H.jsx)(WC,{colSpan:3,className:`border-l ${$4}`,children:(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,H.jsx)(`span`,{children:e.name}),(0,H.jsxs)(q,{size:`sm`,variant:l.has(e.id)?`default`:`ghost`,className:`h-6 px-2 text-xs`,disabled:!l.has(e.id)||o,onClick:()=>m(e),children:[(0,H.jsx)(Vo,{className:`size-3`}),`Save`]})]})},e.id))]}),(0,H.jsxs)(UC,{className:`hover:bg-transparent`,children:[y&&Z4.map((e,t)=>(0,H.jsx)(WC,{className:`w-12 text-center font-normal ${t===0?`border-l`:``}`,children:e.label},e.key)),_.map(e=>Z4.map((t,n)=>(0,H.jsx)(WC,{className:`w-12 text-center font-normal ${n===0?`border-l`:``}`,children:t.label},`${e.id}-${t.key}`)))]})]}),(0,H.jsx)(HC,{children:r?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:99,className:`h-24`,children:(0,H.jsx)(zC,{className:`mx-auto size-5`})})}):X4.map(({key:e,label:t,actions:n})=>(0,H.jsxs)(UC,{children:[(0,H.jsx)(GC,{className:`font-medium`,children:t}),y&&Z4.map((e,t)=>(0,H.jsx)(GC,{className:`text-center ${t===0?`border-l`:``}`,children:t3(n,e.key)?(0,H.jsx)(PT,{checked:!0,disabled:!0}):(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},e.key)),_.map(t=>Z4.map((r,i)=>{let a=t3(n,r.key),o=`${e}:${r.key}`;return(0,H.jsx)(GC,{className:`text-center ${i===0?`border-l`:``}`,children:a?(0,H.jsx)(PT,{checked:s[t.id]?.has(o)??!1,onCheckedChange:()=>p(t.id,o)}):(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},`${t.id}-${r.key}`)}))]},e))})]})}),t&&(0,H.jsxs)(`div`,{className:`mt-3 rounded-md border bg-muted/30 p-3`,children:[(0,H.jsx)(`p`,{className:`text-sm font-medium`,children:`Viewer`}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Read-only role intended for external reviewers (for example, clients validating content before approval).`})]}),t&&(0,H.jsx)(`p`,{className:`mt-3 text-sm text-muted-foreground`,children:`Note: Editor and Contributor can share the same base permissions, but their effective scope is different in the content layer. Contributors are restricted to their own entries for certain actions, while Editors can operate on entries more broadly depending on the configured rules.`}),(0,H.jsx)(Jh,{open:d,onOpenChange:f,children:(0,H.jsxs)(Qh,{className:`sm:max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Reset to defaults`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This will restore all role permissions to their original configuration. Any custom changes will be lost.`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>f(!1),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:h,disabled:o,children:o?`Resetting…`:`Reset`})]})]})})]})]})}var r3={"super admin":`default`,admin:`secondary`,contributor:`outline`,editor:`secondary`,viewer:`outline`};function i3({roleId:e,roleName:t,roles:n}){let r=n.find(t=>t.id===e),i=t??r?.name??e;return(0,H.jsx)(RC,{variant:r3[i.toLowerCase()]??`secondary`,children:i})}function a3({user:e,currentUserId:t,currentUserRole:n,onEdit:r,onDelete:i}){let a=e.id===t,o=(e.role_name??``).toLowerCase()===`super admin`,s=n.toLowerCase()===`super admin`;return(0,H.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,H.jsx)(q,{size:`icon`,variant:`ghost`,className:`flex size-7 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,disabled:o&&!a&&!s,onClick:()=>r(e),children:(0,H.jsx)(Io,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,className:`flex size-8 items-center justify-center rounded text-destructive hover:bg-destructive/10 hover:text-destructive`,disabled:a||o,onClick:()=>i(e),children:(0,H.jsx)(Zo,{className:`size-3.5`})})]})}var o3={email:``,password:``,firstName:``,lastName:``,roleId:``,enabled:!0};function s3(){let{user:e,updateUser:t}=_a(),{editorialMode:n}=Sa(),{data:r,loading:i,refetch:a}=fs(`/cms/admin/users`),{data:o,loading:s}=fs(`/cms/admin/roles`),c=i||s,{request:l,loading:u,error:d}=xw(),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(o3),[g,_]=(0,v.useState)(null),[y,b]=(0,v.useState)({email:``,roleId:``,firstName:``,lastName:``,enabled:!0}),[x,S]=(0,v.useState)(null),C=o??[],w=e?.role?.toLowerCase()===`super admin`,T=C.filter(e=>n||![`Editor`,`Viewer`].includes(e.name)),E=w?T:T.filter(e=>e.name.toLowerCase()!==`super admin`),D=(0,v.useMemo)(()=>[{id:`name`,header:`Name`,cell:({row:e})=>{let{first_name:t,last_name:n}=e.original;return!t&&!n?(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}):(0,H.jsx)(`span`,{className:`font-bold`,children:[t,n].filter(Boolean).join(` `)})}},{accessorKey:`email`,header:`Email`},{accessorKey:`role_id`,header:`Role`,cell:({row:e,getValue:t})=>(0,H.jsx)(i3,{roleId:t(),roleName:e.original.role_name,roles:C})},{accessorKey:`enabled`,header:`Enabled`,cell:({row:t,getValue:n})=>(0,H.jsx)(lD,{checked:!!(n()??!0),onCheckedChange:async e=>{try{await l(`/cms/admin/users/${t.original.id}`,`PUT`,{enabled:e}),a(),X.success(`User updated`)}catch{X.error(`Could not update user`)}},disabled:t.original.id===e?.id||u})},{id:`actions`,header:``,cell:({row:t})=>(0,H.jsx)(a3,{user:t.original,currentUserId:e?.id??``,currentUserRole:e?.role??``,onEdit:e=>{_(e),b({email:e.email,roleId:e.role_id,firstName:e.first_name??``,lastName:e.last_name??``,enabled:e.enabled??!0})},onDelete:S})}],[C,e?.id,e?.role,l,a,u]),O=N4({data:(0,v.useMemo)(()=>[...r??[]].sort((e,t)=>{let n=[e.first_name,e.last_name].filter(Boolean).join(` `)||e.email,r=[t.first_name,t.last_name].filter(Boolean).join(` `)||t.email;return n.localeCompare(r)}),[r]),columns:D,getCoreRowModel:O4()});async function k(e){e.preventDefault();try{await l(`/cms/admin/users`,`POST`,m),p(!1),h(o3),a(),X.success(`User created`)}catch{X.error(`Could not create user`)}}async function A(n){n.preventDefault();try{await l(`/cms/admin/users/${g.id}`,`PUT`,y),g.id===e?.id&&t({email:y.email,firstName:y.firstName||null,lastName:y.lastName||null}),_(null),a(),X.success(`User updated`)}catch{X.error(`Could not update user`)}}async function j(){try{await l(`/cms/admin/users/${x.id}`,`DELETE`),S(null),a(),X.success(`User deleted`)}catch{X.error(`Could not delete user`)}}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Users`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Manage who has access to the admin panel.`})]}),(0,H.jsxs)(q,{onClick:()=>p(!0),children:[(0,H.jsx)(Lo,{className:`size-4`}),`New user`]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsx)(`div`,{className:`rounded-md border`,children:(0,H.jsxs)(BC,{children:[(0,H.jsx)(VC,{className:`font-bold uppercase`,children:O.getHeaderGroups().map(e=>(0,H.jsx)(UC,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:k4(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(HC,{children:c?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:D.length,className:`h-24`,children:(0,H.jsx)(zC,{className:`mx-auto size-5`})})}):O.getRowModel().rows.length===0?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:D.length,className:`h-24 text-center text-muted-foreground`,children:`No users found.`})}):O.getRowModel().rows.map(e=>(0,H.jsx)(UC,{children:e.getVisibleCells().map(e=>(0,H.jsx)(GC,{className:`px-4 py-3`,children:k4(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(Jh,{open:f,onOpenChange:p,children:(0,H.jsxs)(Qh,{className:`sm:max-w-md`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`New user`})}),(0,H.jsxs)(`form`,{id:`create-user-form`,onSubmit:k,className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`c-email`,children:`Email`}),(0,H.jsx)(Sw,{id:`c-email`,type:`email`,placeholder:`user@example.com`,value:m.email,onChange:e=>h(t=>({...t,email:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`c-password`,children:`Password`}),(0,H.jsx)(Sw,{id:`c-password`,type:`password`,placeholder:`Min. 8 characters`,value:m.password,onChange:e=>h(t=>({...t,password:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`c-fname`,children:`First name`}),(0,H.jsx)(Sw,{id:`c-fname`,value:m.firstName,onChange:e=>h(t=>({...t,firstName:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`c-lname`,children:`Last name`}),(0,H.jsx)(Sw,{id:`c-lname`,value:m.lastName,onChange:e=>h(t=>({...t,lastName:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`c-role`,children:`Role`}),(0,H.jsxs)(V_,{value:m.roleId,onValueChange:e=>h(t=>({...t,roleId:e})),children:[(0,H.jsx)(W_,{id:`c-role`,children:(0,H.jsx)(U_,{placeholder:`Select a role`})}),(0,H.jsx)(q_,{children:E.map(e=>(0,H.jsx)(Y_,{value:e.id,children:e.name.charAt(0).toUpperCase()+e.name.slice(1)},e.id))})]})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,H.jsx)(Y,{htmlFor:`c-enabled`,children:`Enabled`}),(0,H.jsx)(lD,{id:`c-enabled`,checked:m.enabled,onCheckedChange:e=>h(t=>({...t,enabled:e}))})]}),d&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:d})]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,type:`button`,onClick:()=>p(!1),children:`Cancel`}),(0,H.jsx)(q,{type:`submit`,form:`create-user-form`,disabled:u,children:u?`Creating…`:`Create user`})]})]})}),(0,H.jsx)(Jh,{open:!!g,onOpenChange:e=>{e||_(null)},children:(0,H.jsxs)(Qh,{className:`sm:max-w-md`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Edit user`})}),(0,H.jsxs)(`form`,{id:`edit-user-form`,onSubmit:A,className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`e-email`,children:`Email`}),(0,H.jsx)(Sw,{id:`e-email`,type:`email`,value:y.email,onChange:e=>b(t=>({...t,email:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`e-fname`,children:`First name`}),(0,H.jsx)(Sw,{id:`e-fname`,value:y.firstName,onChange:e=>b(t=>({...t,firstName:e.target.value}))})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`e-lname`,children:`Last name`}),(0,H.jsx)(Sw,{id:`e-lname`,value:y.lastName,onChange:e=>b(t=>({...t,lastName:e.target.value}))})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`e-role`,children:`Role`}),(0,H.jsxs)(V_,{value:y.roleId,onValueChange:e=>b(t=>({...t,roleId:e})),children:[(0,H.jsx)(W_,{id:`e-role`,children:(0,H.jsx)(U_,{placeholder:`Select a role`})}),(0,H.jsx)(q_,{children:E.map(e=>(0,H.jsx)(Y_,{value:e.id,children:e.name.charAt(0).toUpperCase()+e.name.slice(1)},e.id))})]})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,H.jsx)(Y,{htmlFor:`e-enabled`,children:`Enabled`}),(0,H.jsx)(lD,{id:`e-enabled`,checked:y.enabled,onCheckedChange:e=>b(t=>({...t,enabled:e}))})]}),d&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:d})]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,type:`button`,onClick:()=>_(null),children:`Cancel`}),(0,H.jsx)(q,{type:`submit`,form:`edit-user-form`,disabled:u,children:u?`Saving…`:`Save changes`})]})]})}),(0,H.jsx)(Jh,{open:!!x,onOpenChange:e=>{e||S(null)},children:(0,H.jsxs)(Qh,{className:`sm:max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Delete user`})}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:x?.email}),`? This action cannot be undone.`]}),d&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:d}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>S(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:j,disabled:u,children:u?`Deleting…`:`Delete`})]})]})})]})]})}var c3=[{value:`entry.published`,label:`Entry published`},{value:`entry.unpublished`,label:`Entry unpublished`},{value:`entry.created`,label:`Entry created`},{value:`entry.updated`,label:`Entry updated`},{value:`entry.deleted`,label:`Entry deleted`}],l3={name:``,url:``,events:[]};function u3(){let{user:e}=_a(),{data:t,loading:n,refetch:r}=fs(`/cms/admin/webhooks`),{request:i,loading:a,error:o}=xw(),s=e?.permissions??[],c=s.includes(`*`)||s.includes(`settings:webhooks:write`),l=s.includes(`*`)||s.includes(`settings:webhooks:delete`),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(l3),[m,h]=(0,v.useState)(null),g=[{accessorKey:`name`,header:`Name`},{accessorKey:`url`,header:`URL`,cell:({getValue:e})=>(0,H.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground truncate max-w-xs block`,children:e()})},{accessorKey:`events`,header:`Events`,cell:({getValue:e})=>(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e().map(e=>(0,H.jsx)(RC,{variant:`secondary`,className:`text-xs font-mono`,children:e},e))})},{accessorKey:`created_at`,header:`Created`,cell:({getValue:e})=>new Date(e()).toLocaleDateString(`en-US`,{year:`numeric`,month:`short`,day:`numeric`})},{id:`actions`,header:``,cell:({row:e})=>l?(0,H.jsx)(q,{size:`icon`,variant:`ghost`,className:`size-8 text-destructive hover:text-destructive`,onClick:()=>h(e.original),children:(0,H.jsx)(Zo,{className:`size-3.5`})}):null}],_=N4({data:t??[],columns:g,getCoreRowModel:O4()});function y(e){p(t=>({...t,events:t.events.includes(e)?t.events.filter(t=>t!==e):[...t.events,e]}))}async function b(e){e.preventDefault();try{await i(`/cms/admin/webhooks`,`POST`,f),d(!1),p(l3),r(),X.success(`Webhook saved`)}catch{X.error(`Could not save webhook`)}}async function x(){try{await i(`/cms/admin/webhooks/${m.id}`,`DELETE`),h(null),r(),X.success(`Webhook deleted`)}catch{X.error(`Could not delete webhook`)}}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Webhooks`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Notify external services when content events occur.`})]}),(0,H.jsxs)(q,{onClick:()=>d(!0),disabled:!c,children:[(0,H.jsx)(Lo,{className:`size-4`}),`New webhook`]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsx)(`div`,{className:`rounded-md border`,children:(0,H.jsxs)(BC,{children:[(0,H.jsx)(VC,{className:`font-bold uppercase`,children:_.getHeaderGroups().map(e=>(0,H.jsx)(UC,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:k4(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(HC,{children:n?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:g.length,className:`h-24`,children:(0,H.jsx)(zC,{className:`mx-auto size-5`})})}):_.getRowModel().rows.length===0?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:g.length,className:`h-24 text-center text-muted-foreground`,children:`No webhooks yet.`})}):_.getRowModel().rows.map(e=>(0,H.jsx)(UC,{children:e.getVisibleCells().map(e=>(0,H.jsx)(GC,{className:`px-4 py-3`,children:k4(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(Jh,{open:u,onOpenChange:e=>{e||(d(!1),p(l3))},children:(0,H.jsxs)(Qh,{className:`sm:max-w-md`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`New webhook`})}),(0,H.jsxs)(`form`,{id:`create-webhook-form`,onSubmit:b,className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`webhook-name`,children:`Name`}),(0,H.jsx)(Sw,{id:`webhook-name`,placeholder:`e.g. Dokploy deploy`,value:f.name,onChange:e=>p(t=>({...t,name:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`webhook-url`,children:`URL`}),(0,H.jsx)(Sw,{id:`webhook-url`,type:`url`,placeholder:`https://...`,value:f.url,onChange:e=>p(t=>({...t,url:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(Y,{children:`Events`}),c3.map(({value:e,label:t})=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(PT,{id:`event-${e}`,checked:f.events.includes(e),onCheckedChange:()=>y(e)}),(0,H.jsxs)(`label`,{htmlFor:`event-${e}`,className:`text-sm cursor-pointer`,children:[t,(0,H.jsx)(`span`,{className:`ml-2 font-mono text-xs text-muted-foreground`,children:e})]})]},e))]}),o&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:o})]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,type:`button`,onClick:()=>{d(!1),p(l3)},children:`Cancel`}),(0,H.jsx)(q,{type:`submit`,form:`create-webhook-form`,disabled:a||f.events.length===0||!c,children:a?`Creating…`:`Create webhook`})]})]})}),(0,H.jsx)(Jh,{open:!!m,onOpenChange:e=>{e||h(null)},children:(0,H.jsxs)(Qh,{className:`sm:max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Delete webhook`})}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:m?.name}),`? It will stop receiving events immediately.`]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>h(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:x,disabled:a||!l,children:a?`Deleting…`:`Delete`})]})]})})]})]})}function d3({items:e}){let{pathname:t}=lr();function n(e){return t===e||t.startsWith(e+`/`)}return(0,H.jsx)(`nav`,{className:`flex flex-col gap-0.5 p-2`,children:e.map(({label:e,to:t,icon:r})=>(0,H.jsxs)(Ji,{to:t,className:[`flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-sm transition-colors`,n(t)?`bg-sidebar-accent text-sidebar-accent-foreground font-medium`:`text-sidebar-foreground hover:bg-sidebar-accent/50 hover:text-sidebar-accent-foreground`].join(` `),children:[r&&(0,H.jsx)(r,{className:`size-3.5 shrink-0`}),(0,H.jsx)(`span`,{className:`truncate`,children:e})]},t))})}function f3(){let{data:e,refetch:t}=fs(`/cms/admin/addons/registry`);(0,v.useEffect)(()=>{function e(){t()}return window.addEventListener(rD,e),()=>window.removeEventListener(rD,e)},[t]);let n=(e?.addons??[]).filter(aD),r=new Map((e?.slots.addonsSections??[]).map(e=>[e.addonId,e.title])),i=[{label:`Overview`,to:`/add-ons/overview`,icon:Ia},...n.map(e=>({label:r.get(e.id)??e.name,to:`/add-ons/${e.id}`,icon:Fo}))];return(0,H.jsxs)(`div`,{className:`flex flex-col`,children:[(0,H.jsx)(`div`,{className:`border-b border-sidebar-border px-4 py-3`,children:(0,H.jsx)(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wider`,children:`Add-ons`})}),(0,H.jsx)(d3,{items:i})]})}function p3(e){let{setContent:t}=us();(0,v.useEffect)(()=>(t(e),()=>t(null)),[])}function m3(){return p3((0,H.jsx)(f3,{})),(0,H.jsx)($r,{})}var h3=[{to:`/`,icon:Co,label:`Dashboard`,permission:null},{to:`/content`,icon:ao,label:`Content`,permission:null},{to:`/media`,icon:vo,label:`Media`,permission:null},{to:`/content-types`,icon:So,label:`Content Types`,permission:`content-types:write`},{to:`/add-ons`,icon:Ro,label:`Add-ons`,permission:`addons:read`},{to:`/settings`,icon:Uo,label:`Settings`,permission:`settings:overview:read`}];function g3(e){let[t=0,n=0,r=0]=e.trim().replace(/^v/i,``).split(`-`)[0].split(`.`).map(e=>Number.parseInt(e,10)||0);return[t,n,r]}function _3(e,t){if(!t)return 0;let[n,r,i]=g3(e),[a,o,s]=g3(t);return a===n?Math.abs(o===r?s-i:o-r):Math.abs(a-n)*100+Math.abs(o-r)}function v3(e){return e>=5?{panel:`border-rose-600/20 bg-[#370815] text-rose-600`,label:`text-rose-600/80`,button:`border-rose-600/20 bg-[#370815] text-rose-600 hover:bg-[#45101b] hover:text-rose-500`}:e>=3?{panel:`border-amber-400/20 bg-[#3b2d08] text-amber-400`,label:`text-amber-400/80`,button:`border-amber-400/20 bg-[#3b2d08] text-amber-400 hover:bg-[#4a3809] hover:text-amber-300`}:{panel:`border-emerald-500/20 bg-[#082019] text-emerald-500`,label:`text-emerald-500/80`,button:`border-emerald-500/20 bg-[#082019] text-emerald-500 hover:bg-[#0d2c23] hover:text-emerald-400`}}function y3(){let{user:e,logout:t}=_a(),{pathname:n}=lr(),r=fr(),{content:i}=us(),{data:a}=fs(`/cms/admin/content-types`),{data:o}=fs(`/cms/admin/version`),s=(a??[]).filter(e=>e.kind===`collection`),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(!1),f=v3(o?_3(o.currentVersion,o.latestVersion):0);function p(e){return e===`/`?n===`/`:n===e||n.startsWith(e+`/`)}let m=e?.permissions??[],h=e?.role?.toLowerCase()===`viewer`,g=h3.filter(({to:e,permission:t})=>h?e===`/content`:!t||m.includes(`*`)||m.includes(t));async function _(){if(o?.updateCommand)try{await navigator.clipboard.writeText(o.updateCommand),d(!0),X.success(`Update command copied`)}catch{X.error(`Could not copy the update command`)}}function y(e){l(e),e||d(!1)}return(0,H.jsx)(bp,{delayDuration:300,children:(0,H.jsxs)(`div`,{className:`flex h-svh overflow-hidden bg-background`,children:[(0,H.jsxs)(`aside`,{className:`flex h-full w-14 shrink-0 flex-col items-center gap-4 border-r border-sidebar-border bg-sidebar py-4`,children:[(0,H.jsx)(Ji,{to:`/`,children:(0,H.jsx)(`img`,{src:`/admin/plank-logo-w.svg`,alt:`Plank CMS`,className:`px-3 pb-4`})}),(e?.permissions?.includes(`*`)||e?.permissions?.includes(`entries:write`))&&s.length>0&&(0,H.jsx)(`div`,{className:`mt-4 px-3`,children:(0,H.jsx)(q,{size:`icon`,onClick:()=>{let e=s.find(e=>e.isDefault)??s[0];e&&r(`/content/${e.slug}/new`)},children:(0,H.jsx)(Lo,{className:`size-4`})})}),(0,H.jsx)(`nav`,{className:`flex flex-1 flex-col items-center gap-1 pt-2`,children:g.map(({to:e,icon:t,label:n})=>(0,H.jsxs)(xp,{children:[(0,H.jsx)(Sp,{asChild:!0,children:(0,H.jsx)(q,{asChild:!0,size:`icon`,variant:p(e)?`secondary`:`ghost`,children:(0,H.jsx)(Ji,{to:e,end:e===`/`,children:(0,H.jsx)(t,{className:`size-4`})})})}),(0,H.jsx)(Cp,{side:`right`,children:n})]},e))}),o?.updateAvailable&&(0,H.jsx)(`div`,{className:`px-3`,children:(0,H.jsxs)(Jh,{open:c,onOpenChange:y,children:[(0,H.jsxs)(xp,{children:[(0,H.jsx)(Sp,{asChild:!0,children:(0,H.jsx)(q,{size:`icon`,variant:`outline`,className:f.button,onClick:()=>l(!0),children:(0,H.jsx)(Pa,{className:`size-4`})})}),(0,H.jsxs)(Cp,{side:`right`,children:[`Update to `,o.latestVersion]})]}),(0,H.jsxs)(Qh,{className:`max-w-xl`,children:[(0,H.jsxs)($h,{children:[(0,H.jsx)(tg,{children:`Update available`}),(0,H.jsxs)(ng,{children:[`Plank `,o.latestVersion,` is ready. Run the command below in your project terminal to update your installation.`]})]}),(0,H.jsxs)(`div`,{className:`space-y-5`,children:[(0,H.jsxs)(`div`,{className:`grid gap-3 rounded-lg border p-4 sm:grid-cols-2 ${f.panel}`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-xs font-medium uppercase ${f.label}`,children:`Current version`}),(0,H.jsx)(`p`,{className:`mt-1 text-base font-semibold`,children:o.currentVersion})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-xs font-medium uppercase ${f.label}`,children:`Latest version`}),(0,H.jsx)(`p`,{className:`mt-1 text-base font-semibold`,children:o.latestVersion})]})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Y,{htmlFor:`plank-update-command`,children:`Update command`}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(Sw,{id:`plank-update-command`,value:o.updateCommand,readOnly:!0,className:`font-mono text-sm`}),(0,H.jsxs)(q,{type:`button`,variant:`outline`,onClick:_,children:[u?(0,H.jsx)(Ba,{className:`size-4`}):(0,H.jsx)(Qa,{className:`size-4`}),u?`Copied`:`Copy`]})]})]}),(0,H.jsx)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:(0,H.jsx)(q,{asChild:!0,variant:`outline`,children:(0,H.jsxs)(`a`,{href:o.changelogUrl,target:`_blank`,rel:`noreferrer`,children:[`View changelog`,(0,H.jsx)(Na,{className:`size-4`})]})})})]})]})]})}),(0,H.jsxs)(VT,{children:[(0,H.jsx)(HT,{asChild:!0,children:(0,H.jsx)(q,{variant:`ghost`,size:`icon`,className:`rounded-full`,children:(0,H.jsx)(mw,{avatarUrl:e?.avatarUrl,firstName:e?.firstName,lastName:e?.lastName,email:e?.email})})}),(0,H.jsxs)(GT,{side:`right`,align:`end`,className:`w-52`,children:[(0,H.jsxs)(JT,{className:`font-normal`,children:[(0,H.jsx)(`p`,{className:`truncate text-sm font-medium`,children:e?.email}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground capitalize`,children:e?.role})]}),(0,H.jsx)(qT,{}),(0,H.jsxs)(KT,{onClick:()=>r(`/profile`),children:[(0,H.jsx)(rs,{}),`Profile`]}),(0,H.jsx)(qT,{}),(0,H.jsxs)(KT,{onClick:t,className:`text-destructive focus:text-destructive`,children:[(0,H.jsx)(jo,{}),`Log out`]})]})]})]}),(0,H.jsx)(`main`,{className:`flex-1 overflow-y-auto`,children:(0,H.jsx)(`div`,{className:`w-full mx-auto px-4 mb-16 ${i?`max-w-7xl`:`max-w-9xl`}`,children:(0,H.jsx)($r,{})})}),i&&(0,H.jsx)(`aside`,{className:`flex h-full w-64 shrink-0 flex-col border-l border-sidebar-border bg-background`,children:i})]})})}function b3(){return(0,H.jsx)(ls,{children:(0,H.jsx)(y3,{})})}function x3(){let{pathname:e}=lr(),{user:t}=_a(),{data:n,loading:r,error:i,refetch:a}=fs(`/cms/admin/content-types`),{request:o}=xw(),s=t?.permissions??[],c=s.includes(`*`)||s.includes(`content-types:write`);async function l(e,t){e.preventDefault(),e.stopPropagation();try{await o(`/cms/admin/content-types/${t}/default`,`PUT`),a(),X.success(`Default content type updated`)}catch{X.error(`Could not update default`)}}function u(t){return e===`/content/${t}`||e.startsWith(`/content/${t}/`)}let d=(n??[]).filter(e=>e.kind===`collection`),f=(n??[]).filter(e=>e.kind===`single`);return(0,H.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,H.jsx)(`div`,{className:`shrink-0 border-b border-sidebar-border px-4 py-3`,children:(0,H.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:`Content`})}),r&&(0,H.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,H.jsx)(zC,{className:`size-4`})}),i&&(0,H.jsx)(`p`,{className:`px-4 py-3 text-xs text-destructive`,children:i}),!r&&!i&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,H.jsx)(`div`,{className:`shrink-0 px-4 py-2`,children:(0,H.jsx)(`p`,{className:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground/60`,children:`Collection Types`})}),(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:d.length===0?(0,H.jsx)(`p`,{className:`px-4 pb-3 text-xs text-muted-foreground`,children:`No collection types yet.`}):(0,H.jsx)(`nav`,{className:`flex flex-col gap-0.5 px-2 pb-2`,children:d.map(e=>(0,H.jsxs)(Ji,{to:`/content/${e.slug}`,className:[`group flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-sm transition-colors`,u(e.slug)?`bg-sidebar-accent text-sidebar-accent-foreground font-medium`:`text-sidebar-foreground hover:bg-sidebar-accent/50 hover:text-sidebar-accent-foreground`].join(` `),children:[(0,H.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),c&&(0,H.jsx)(`button`,{type:`button`,title:e.isDefault?`Default content type`:`Set as default`,onClick:t=>l(t,e.slug),className:[`shrink-0 rounded transition-colors`,e.isDefault?`text-amber-400`:`text-transparent group-hover:text-muted-foreground/40 hover:!text-amber-400`].join(` `),children:(0,H.jsx)(Ko,{className:`size-3.5 ${e.isDefault?`fill-amber-400`:``}`})})]},e.slug))})})]}),(0,H.jsx)(`div`,{className:`shrink-0 border-t border-sidebar-border`}),(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,H.jsx)(`div`,{className:`shrink-0 px-4 py-2`,children:(0,H.jsx)(`p`,{className:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground/60`,children:`Single Types`})}),(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:f.length===0?(0,H.jsx)(`p`,{className:`px-4 pb-3 text-xs text-muted-foreground`,children:`No single types yet.`}):(0,H.jsx)(`nav`,{className:`flex flex-col gap-0.5 px-2 pb-2`,children:f.map(e=>(0,H.jsx)(Ji,{to:`/content/${e.slug}`,className:[`group flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-sm transition-colors`,u(e.slug)?`bg-sidebar-accent text-sidebar-accent-foreground font-medium`:`text-sidebar-foreground hover:bg-sidebar-accent/50 hover:text-sidebar-accent-foreground`].join(` `),children:(0,H.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name})},e.slug))})})]})]})]})}function S3(){return p3((0,H.jsx)(x3,{})),(0,H.jsx)($r,{})}function C3(){let e=fr(),{pathname:t}=lr(),{data:n,loading:r,error:i,refetch:a}=fs(`/cms/admin/content-types`);(0,v.useEffect)(()=>(window.addEventListener(`plank:content-types-changed`,a),()=>window.removeEventListener(`plank:content-types-changed`,a)),[a]);function o(e){let n=`/content-types/${e}`;return t===n||t.startsWith(n+`/`)}return(0,H.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,H.jsx)(`div`,{className:`border-b border-sidebar-border px-4 py-3`,children:(0,H.jsx)(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wider`,children:`Content Types`})}),(0,H.jsxs)(`div`,{className:`flex-1 overflow-y-auto`,children:[r&&(0,H.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,H.jsx)(zC,{className:`size-4`})}),i&&(0,H.jsx)(`p`,{className:`px-4 py-3 text-xs text-destructive`,children:i}),!r&&!i&&(n??[]).length===0&&(0,H.jsx)(`p`,{className:`px-4 py-3 text-xs text-muted-foreground`,children:`No content types yet.`}),!r&&!i&&(n??[]).length>0&&(0,H.jsx)(`nav`,{className:`flex flex-col gap-0.5 p-2`,children:(n??[]).map(e=>(0,H.jsxs)(Ji,{to:`/content-types/${e.slug}`,className:[`flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-sm transition-colors`,o(e.slug)?`bg-sidebar-accent text-sidebar-accent-foreground font-medium`:`text-sidebar-foreground hover:bg-sidebar-accent/50 hover:text-sidebar-accent-foreground`].join(` `),children:[(0,H.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),e.kind===`single`&&(0,H.jsx)(oo,{className:`size-3.5 shrink-0 text-violet-500 dark:text-violet-400`})]},e.slug))})]}),(0,H.jsx)(`div`,{className:`border-t border-sidebar-border p-3`,children:(0,H.jsxs)(q,{variant:`outline`,className:`w-full justify-start gap-2`,onClick:()=>e(`/content-types/new`),children:[(0,H.jsx)(Lo,{className:`size-3.5`}),`New Content Type`]})})]})}function w3(){return p3((0,H.jsx)(C3,{})),(0,H.jsx)($r,{})}function T3(e,t){return e.includes(`*`)||e.includes(t)}function E3({children:e,roles:t,permission:n,redirectTo:r=`/`}){let{status:i,user:a}=_a();return i===`idle`?null:i===`unauthenticated`?(0,H.jsx)(Qr,{to:`/login`,replace:!0}):t&&a&&!t.map(e=>e.toLowerCase()).includes(a.role.toLowerCase())||n&&a&&!T3(a.permissions,n)?(0,H.jsx)(Qr,{to:r,replace:!0}):(0,H.jsx)(H.Fragment,{children:e})}function D3(e,t){return e?.permissions.includes(`*`)||e?.permissions.includes(t)||!1}function O3(){let{user:e}=_a(),t=[{label:`Overview`,to:`/settings/overview`,icon:Uo,permission:`settings:overview:read`},{label:`Users`,to:`/settings/users`,icon:is,permission:`settings:users:read`},{label:`Roles`,to:`/settings/roles`,icon:Wo,permission:`settings:roles:read`},{label:`API Tokens`,to:`/settings/api-tokens`,icon:xo,permission:`settings:api-tokens:read`},{label:`Webhooks`,to:`/settings/webhooks`,icon:as,permission:`settings:webhooks:read`}].filter(({permission:t})=>D3(e,t));return(0,H.jsxs)(`div`,{className:`flex flex-col`,children:[(0,H.jsx)(`div`,{className:`border-b border-sidebar-border px-4 py-3`,children:(0,H.jsx)(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wider`,children:`Settings`})}),(0,H.jsx)(d3,{items:t})]})}function k3(){return p3((0,H.jsx)(O3,{})),(0,H.jsx)($r,{})}var A3=[`Super Admin`,`Admin`,`Editor`,`Contributor`],j3=Hi([{path:`/login`,element:(0,H.jsx)(Jw,{})},{element:(0,H.jsx)(E3,{children:(0,H.jsx)(b3,{})}),children:[{index:!0,element:(0,H.jsx)(E3,{roles:A3,redirectTo:`/content`,children:(0,H.jsx)(bw,{})})},{path:`content`,element:(0,H.jsx)(S3,{}),children:[{index:!0,element:(0,H.jsx)(fD,{})},{path:`:slug`,element:(0,H.jsx)(X0,{})},{path:`:slug/new`,element:(0,H.jsx)(E3,{permission:`entries:write`,redirectTo:`/content`,children:(0,H.jsx)(y0,{})})},{path:`:slug/:id`,element:(0,H.jsx)(y0,{})}]},{path:`media`,element:(0,H.jsx)(E3,{roles:A3,redirectTo:`/content`,children:(0,H.jsx)(pE,{})})},{path:`content-types`,element:(0,H.jsx)(E3,{permission:`content-types:write`,roles:A3,redirectTo:`/content`,children:(0,H.jsx)(w3,{})}),children:[{index:!0,element:(0,H.jsx)(Z0,{})},{path:`new`,element:(0,H.jsx)(d2,{})},{path:`:slug`,element:(0,H.jsx)(d2,{})}]},{path:`add-ons`,element:(0,H.jsx)(E3,{permission:`addons:read`,roles:A3,redirectTo:`/content`,children:(0,H.jsx)(m3,{})}),children:[{index:!0,element:(0,H.jsx)(Qr,{to:`overview`,replace:!0})},{path:`overview`,element:(0,H.jsx)(E3,{permission:`addons:read`,children:(0,H.jsx)(dD,{})})},{path:`:addonId`,element:(0,H.jsx)(E3,{permission:`addons:read`,children:(0,H.jsx)(cD,{})})}]},{path:`settings`,element:(0,H.jsx)(E3,{permission:`settings:overview:read`,roles:A3,redirectTo:`/content`,children:(0,H.jsx)(k3,{})}),children:[{index:!0,element:(0,H.jsx)(Qr,{to:`overview`,replace:!0})},{path:`overview`,element:(0,H.jsx)(E3,{permission:`settings:overview:read`,children:(0,H.jsx)(Y4,{})})},{path:`users`,element:(0,H.jsx)(E3,{permission:`settings:users:read`,children:(0,H.jsx)(s3,{})})},{path:`roles`,element:(0,H.jsx)(E3,{permission:`settings:roles:read`,children:(0,H.jsx)(n3,{})})},{path:`api-tokens`,element:(0,H.jsx)(E3,{permission:`settings:api-tokens:read`,children:(0,H.jsx)(R4,{})})},{path:`webhooks`,element:(0,H.jsx)(E3,{permission:`settings:webhooks:read`,children:(0,H.jsx)(u3,{})})}]},{path:`profile`,element:(0,H.jsx)(YE,{})}]},{path:`*`,element:(0,H.jsx)(Qr,{to:`/`,replace:!0})}],{basename:`/admin/`.replace(/\/$/,``)||`/`});function M3(){return(0,H.jsx)(ga,{children:(0,H.jsx)(xa,{children:(0,H.jsx)(ya,{children:(0,H.jsx)(fa,{router:j3})})})})}var N3=({...e})=>{let{theme:t=`system`}=T();return(0,H.jsx)(CT,{theme:t,className:`toaster group`,icons:{success:(0,H.jsx)(Ka,{className:`size-4`}),info:(0,H.jsx)(yo,{className:`size-4`}),warning:(0,H.jsx)(Qo,{className:`size-4`}),error:(0,H.jsx)(No,{className:`size-4`}),loading:(0,H.jsx)(Ao,{className:`size-4 animate-spin`})},style:{"--normal-bg":`var(--popover)`,"--normal-text":`var(--popover-foreground)`,"--normal-border":`var(--border)`,"--border-radius":`var(--radius)`},...e})};function P3({...e}){return(0,H.jsx)(N3,{toastOptions:{classNames:{toast:`border ![font-family:var(--font-sans)]`,success:`bg-[#082019]! text-emerald-500! border-emerald-500/20!`,error:`bg-[#370815]! text-rose-600! border-rose-600/20!`,warning:`bg-[#3b2d08]! text-amber-400! border-amber-400/20!`,info:`bg-[#0c1b3a]! text-blue-500! border-blue-500/20!`,title:`font-bold!`,description:`opacity-80!`}},...e})}window.React=v,window.PlankAddonAdminModules=window.PlankAddonAdminModules??{},(0,_.createRoot)(document.getElementById(`root`)).render((0,H.jsx)(v.StrictMode,{children:(0,H.jsxs)(E,{attribute:`class`,defaultTheme:`dark`,enableSystem:!0,disableTransitionOnChange:!0,children:[(0,H.jsx)(M3,{}),(0,H.jsx)(P3,{})]})}));
|
|
223
|
+
color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return i}}function y2(e,t,n,r){return{debug:()=>e?.debugAll??e[t],key:!1,onChange:r}}function b2(e,t,n,r){let i={id:`${t.id}_${n.id}`,row:t,column:n,getValue:()=>t.getValue(r),renderValue:()=>i.getValue()??e.options.renderFallbackValue,getContext:v2(()=>[e,n,t,i],(e,t,n,r)=>({table:e,column:t,row:n,cell:r,getValue:r.getValue,renderValue:r.renderValue}),y2(e.options,`debugCells`,`cell.getContext`))};return e._features.forEach(r=>{r.createCell==null||r.createCell(i,n,t,e)},{}),i}function x2(e,t,n,r){let i={...e._getDefaultColumnDef(),...t},a=i.accessorKey,o=i.id??(a?typeof String.prototype.replaceAll==`function`?a.replaceAll(`.`,`_`):a.replace(/\./g,`_`):void 0)??(typeof i.header==`string`?i.header:void 0),s;if(i.accessorFn?s=i.accessorFn:a&&(s=a.includes(`.`)?e=>{let t=e;for(let e of a.split(`.`))t=t?.[e];return t}:e=>e[i.accessorKey]),!o)throw Error();let c={id:`${String(o)}`,accessorFn:s,parent:r,depth:n,columnDef:i,columns:[],getFlatColumns:v2(()=>[!0],()=>[c,...c.columns?.flatMap(e=>e.getFlatColumns())],y2(e.options,`debugColumns`,`column.getFlatColumns`)),getLeafColumns:v2(()=>[e._getOrderColumnsFn()],e=>{var t;return(t=c.columns)!=null&&t.length?e(c.columns.flatMap(e=>e.getLeafColumns())):[c]},y2(e.options,`debugColumns`,`column.getLeafColumns`))};for(let t of e._features)t.createColumn==null||t.createColumn(c,e);return c}var S2=`debugHeaders`;function C2(e,t,n){let r={id:n.id??t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{let e=[],t=n=>{n.subHeaders&&n.subHeaders.length&&n.subHeaders.map(t),e.push(n)};return t(r),e},getContext:()=>({table:e,header:r,column:t})};return e._features.forEach(t=>{t.createHeader==null||t.createHeader(r,e)}),r}var w2={createTable:e=>{e.getHeaderGroups=v2(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{let a=r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],o=i?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],s=n.filter(e=>!(r!=null&&r.includes(e.id))&&!(i!=null&&i.includes(e.id)));return T2(t,[...a,...s,...o],e)},y2(e.options,S2,`getHeaderGroups`)),e.getCenterHeaderGroups=v2(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(e=>!(r!=null&&r.includes(e.id))&&!(i!=null&&i.includes(e.id))),T2(t,n,e,`center`)),y2(e.options,S2,`getCenterHeaderGroups`)),e.getLeftHeaderGroups=v2(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>T2(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`left`),y2(e.options,S2,`getLeftHeaderGroups`)),e.getRightHeaderGroups=v2(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>T2(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`right`),y2(e.options,S2,`getRightHeaderGroups`)),e.getFooterGroups=v2(()=>[e.getHeaderGroups()],e=>[...e].reverse(),y2(e.options,S2,`getFooterGroups`)),e.getLeftFooterGroups=v2(()=>[e.getLeftHeaderGroups()],e=>[...e].reverse(),y2(e.options,S2,`getLeftFooterGroups`)),e.getCenterFooterGroups=v2(()=>[e.getCenterHeaderGroups()],e=>[...e].reverse(),y2(e.options,S2,`getCenterFooterGroups`)),e.getRightFooterGroups=v2(()=>[e.getRightHeaderGroups()],e=>[...e].reverse(),y2(e.options,S2,`getRightFooterGroups`)),e.getFlatHeaders=v2(()=>[e.getHeaderGroups()],e=>e.map(e=>e.headers).flat(),y2(e.options,S2,`getFlatHeaders`)),e.getLeftFlatHeaders=v2(()=>[e.getLeftHeaderGroups()],e=>e.map(e=>e.headers).flat(),y2(e.options,S2,`getLeftFlatHeaders`)),e.getCenterFlatHeaders=v2(()=>[e.getCenterHeaderGroups()],e=>e.map(e=>e.headers).flat(),y2(e.options,S2,`getCenterFlatHeaders`)),e.getRightFlatHeaders=v2(()=>[e.getRightHeaderGroups()],e=>e.map(e=>e.headers).flat(),y2(e.options,S2,`getRightFlatHeaders`)),e.getCenterLeafHeaders=v2(()=>[e.getCenterFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),y2(e.options,S2,`getCenterLeafHeaders`)),e.getLeftLeafHeaders=v2(()=>[e.getLeftFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),y2(e.options,S2,`getLeftLeafHeaders`)),e.getRightLeafHeaders=v2(()=>[e.getRightFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),y2(e.options,S2,`getRightLeafHeaders`)),e.getLeafHeaders=v2(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(e,t,n)=>[...e[0]?.headers??[],...t[0]?.headers??[],...n[0]?.headers??[]].map(e=>e.getLeafHeaders()).flat(),y2(e.options,S2,`getLeafHeaders`))}};function T2(e,t,n,r){let i=0,a=function(e,t){t===void 0&&(t=1),i=Math.max(i,t),e.filter(e=>e.getIsVisible()).forEach(e=>{var n;(n=e.columns)!=null&&n.length&&a(e.columns,t+1)},0)};a(e);let o=[],s=(e,t)=>{let i={depth:t,id:[r,`${t}`].filter(Boolean).join(`_`),headers:[]},a=[];e.forEach(e=>{let o=[...a].reverse()[0],s=e.column.depth===i.depth,c,l=!1;if(s&&e.column.parent?c=e.column.parent:(c=e.column,l=!0),o&&o?.column===c)o.subHeaders.push(e);else{let i=C2(n,c,{id:[r,t,c.id,e?.id].filter(Boolean).join(`_`),isPlaceholder:l,placeholderId:l?`${a.filter(e=>e.column===c).length}`:void 0,depth:t,index:a.length});i.subHeaders.push(e),a.push(i)}i.headers.push(e),e.headerGroup=i}),o.push(i),t>0&&s(a,t-1)};s(t.map((e,t)=>C2(n,e,{depth:i,index:t})),i-1),o.reverse();let c=e=>e.filter(e=>e.column.getIsVisible()).map(e=>{let t=0,n=0,r=[0];e.subHeaders&&e.subHeaders.length?(r=[],c(e.subHeaders).forEach(e=>{let{colSpan:n,rowSpan:i}=e;t+=n,r.push(i)})):t=1;let i=Math.min(...r);return n+=i,e.colSpan=t,e.rowSpan=n,{colSpan:t,rowSpan:n}});return c(o[0]?.headers??[]),o}var E2=(e,t,n,r,i,a,o)=>{let s={id:t,index:r,original:n,depth:i,parentId:o,_valuesCache:{},_uniqueValuesCache:{},getValue:t=>{if(s._valuesCache.hasOwnProperty(t))return s._valuesCache[t];let n=e.getColumn(t);if(n!=null&&n.accessorFn)return s._valuesCache[t]=n.accessorFn(s.original,r),s._valuesCache[t]},getUniqueValues:t=>{if(s._uniqueValuesCache.hasOwnProperty(t))return s._uniqueValuesCache[t];let n=e.getColumn(t);if(n!=null&&n.accessorFn)return n.columnDef.getUniqueValues?(s._uniqueValuesCache[t]=n.columnDef.getUniqueValues(s.original,r),s._uniqueValuesCache[t]):(s._uniqueValuesCache[t]=[s.getValue(t)],s._uniqueValuesCache[t])},renderValue:t=>s.getValue(t)??e.options.renderFallbackValue,subRows:a??[],getLeafRows:()=>_2(s.subRows,e=>e.subRows),getParentRow:()=>s.parentId?e.getRow(s.parentId,!0):void 0,getParentRows:()=>{let e=[],t=s;for(;;){let n=t.getParentRow();if(!n)break;e.push(n),t=n}return e.reverse()},getAllCells:v2(()=>[e.getAllLeafColumns()],t=>t.map(t=>b2(e,s,t,t.id)),y2(e.options,`debugRows`,`getAllCells`)),_getAllCellsByColumnId:v2(()=>[s.getAllCells()],e=>e.reduce((e,t)=>(e[t.column.id]=t,e),{}),y2(e.options,`debugRows`,`getAllCellsByColumnId`))};for(let t=0;t<e._features.length;t++){let n=e._features[t];n==null||n.createRow==null||n.createRow(s,e)}return s},D2={createColumn:(e,t)=>{e._getFacetedRowModel=t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),e.getFacetedRowModel=()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),e._getFacetedUniqueValues=t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),e.getFacetedUniqueValues=()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,e._getFacetedMinMaxValues=t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),e.getFacetedMinMaxValues=()=>{if(e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}},O2=(e,t,n)=>{var r,i;let a=n==null||(r=n.toString())==null?void 0:r.toLowerCase();return!!(!((i=e.getValue(t))==null||(i=i.toString())==null||(i=i.toLowerCase())==null)&&i.includes(a))};O2.autoRemove=e=>R2(e);var k2=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};k2.autoRemove=e=>R2(e);var A2=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===n?.toLowerCase()};A2.autoRemove=e=>R2(e);var j2=(e,t,n)=>e.getValue(t)?.includes(n);j2.autoRemove=e=>R2(e);var M2=(e,t,n)=>!n.some(n=>{var r;return!((r=e.getValue(t))!=null&&r.includes(n))});M2.autoRemove=e=>R2(e)||!(e!=null&&e.length);var N2=(e,t,n)=>n.some(n=>e.getValue(t)?.includes(n));N2.autoRemove=e=>R2(e)||!(e!=null&&e.length);var P2=(e,t,n)=>e.getValue(t)===n;P2.autoRemove=e=>R2(e);var F2=(e,t,n)=>e.getValue(t)==n;F2.autoRemove=e=>R2(e);var I2=(e,t,n)=>{let[r,i]=n,a=e.getValue(t);return a>=r&&a<=i};I2.resolveFilterValue=e=>{let[t,n]=e,r=typeof t==`number`?t:parseFloat(t),i=typeof n==`number`?n:parseFloat(n),a=t===null||Number.isNaN(r)?-1/0:r,o=n===null||Number.isNaN(i)?1/0:i;if(a>o){let e=a;a=o,o=e}return[a,o]},I2.autoRemove=e=>R2(e)||R2(e[0])&&R2(e[1]);var L2={includesString:O2,includesStringSensitive:k2,equalsString:A2,arrIncludes:j2,arrIncludesAll:M2,arrIncludesSome:N2,equals:P2,weakEquals:F2,inNumberRange:I2};function R2(e){return e==null||e===``}var z2={getDefaultColumnDef:()=>({filterFn:`auto`}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:m2(`columnFilters`,e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{let n=t.getCoreRowModel().flatRows[0]?.getValue(e.id);return typeof n==`string`?L2.includesString:typeof n==`number`?L2.inNumberRange:typeof n==`boolean`||typeof n==`object`&&n?L2.equals:Array.isArray(n)?L2.arrIncludes:L2.weakEquals},e.getFilterFn=()=>h2(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn===`auto`?e.getAutoFilterFn():t.options.filterFns?.[e.columnDef.filterFn]??L2[e.columnDef.filterFn],e.getCanFilter=()=>(e.columnDef.enableColumnFilter??!0)&&(t.options.enableColumnFilters??!0)&&(t.options.enableFilters??!0)&&!!e.accessorFn,e.getIsFiltered=()=>e.getFilterIndex()>-1,e.getFilterValue=()=>{var n;return(n=t.getState().columnFilters)==null||(n=n.find(t=>t.id===e.id))==null?void 0:n.value},e.getFilterIndex=()=>t.getState().columnFilters?.findIndex(t=>t.id===e.id)??-1,e.setFilterValue=n=>{t.setColumnFilters(t=>{let r=e.getFilterFn(),i=t?.find(t=>t.id===e.id),a=p2(n,i?i.value:void 0);if(B2(r,a,e))return t?.filter(t=>t.id!==e.id)??[];let o={id:e.id,value:a};return i?t?.map(t=>t.id===e.id?o:t)??[]:t!=null&&t.length?[...t,o]:[o]})}},createRow:(e,t)=>{e.columnFilters={},e.columnFiltersMeta={}},createTable:e=>{e.setColumnFilters=t=>{let n=e.getAllLeafColumns();e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(e=>p2(t,e)?.filter(e=>{let t=n.find(t=>t.id===e.id);return!(t&&B2(t.getFilterFn(),e.value,t))}))},e.resetColumnFilters=t=>{e.setColumnFilters(t?[]:e.initialState?.columnFilters??[])},e.getPreFilteredRowModel=()=>e.getCoreRowModel(),e.getFilteredRowModel=()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel())}};function B2(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||t===void 0||typeof t==`string`&&!t}var V2={sum:(e,t,n)=>n.reduce((t,n)=>{let r=n.getValue(e);return t+(typeof r==`number`?r:0)},0),min:(e,t,n)=>{let r;return n.forEach(t=>{let n=t.getValue(e);n!=null&&(r>n||r===void 0&&n>=n)&&(r=n)}),r},max:(e,t,n)=>{let r;return n.forEach(t=>{let n=t.getValue(e);n!=null&&(r<n||r===void 0&&n>=n)&&(r=n)}),r},extent:(e,t,n)=>{let r,i;return n.forEach(t=>{let n=t.getValue(e);n!=null&&(r===void 0?n>=n&&(r=i=n):(r>n&&(r=n),i<n&&(i=n)))}),[r,i]},mean:(e,t)=>{let n=0,r=0;if(t.forEach(t=>{let i=t.getValue(e);i!=null&&(i=+i)>=i&&(++n,r+=i)}),n)return r/n},median:(e,t)=>{if(!t.length)return;let n=t.map(t=>t.getValue(e));if(!g2(n))return;if(n.length===1)return n[0];let r=Math.floor(n.length/2),i=n.sort((e,t)=>e-t);return n.length%2==0?(i[r-1]+i[r])/2:i[r]},unique:(e,t)=>Array.from(new Set(t.map(t=>t.getValue(e))).values()),uniqueCount:(e,t)=>new Set(t.map(t=>t.getValue(e))).size,count:(e,t)=>t.length},H2={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t;return((t=e.getValue())==null||t.toString==null?void 0:t.toString())??null},aggregationFn:`auto`}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:m2(`grouping`,e),groupedColumnMode:`reorder`}),createColumn:(e,t)=>{e.toggleGrouping=()=>{t.setGrouping(t=>t!=null&&t.includes(e.id)?t.filter(t=>t!==e.id):[...t??[],e.id])},e.getCanGroup=()=>(e.columnDef.enableGrouping??!0)&&(t.options.enableGrouping??!0)&&(!!e.accessorFn||!!e.columnDef.getGroupingValue),e.getIsGrouped=()=>t.getState().grouping?.includes(e.id),e.getGroupedIndex=()=>t.getState().grouping?.indexOf(e.id),e.getToggleGroupingHandler=()=>{let t=e.getCanGroup();return()=>{t&&e.toggleGrouping()}},e.getAutoAggregationFn=()=>{let n=t.getCoreRowModel().flatRows[0]?.getValue(e.id);if(typeof n==`number`)return V2.sum;if(Object.prototype.toString.call(n)===`[object Date]`)return V2.extent},e.getAggregationFn=()=>{if(!e)throw Error();return h2(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn===`auto`?e.getAutoAggregationFn():t.options.aggregationFns?.[e.columnDef.aggregationFn]??V2[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{e.setGrouping(t?[]:e.initialState?.grouping??[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];let r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var t;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((t=n.subRows)!=null&&t.length)}}};function U2(e,t,n){if(!(t!=null&&t.length)||!n)return e;let r=e.filter(e=>!t.includes(e.id));return n===`remove`?r:[...t.map(t=>e.find(e=>e.id===t)).filter(Boolean),...r]}var W2={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:m2(`columnOrder`,e)}),createColumn:(e,t)=>{e.getIndex=v2(e=>[t4(t,e)],t=>t.findIndex(t=>t.id===e.id),y2(t.options,`debugColumns`,`getIndex`)),e.getIsFirstColumn=n=>t4(t,n)[0]?.id===e.id,e.getIsLastColumn=n=>{let r=t4(t,n);return r[r.length-1]?.id===e.id}},createTable:e=>{e.setColumnOrder=t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),e.resetColumnOrder=t=>{e.setColumnOrder(t?[]:e.initialState.columnOrder??[])},e._getOrderColumnsFn=v2(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(e,t,n)=>r=>{let i=[];if(!(e!=null&&e.length))i=r;else{let t=[...e],n=[...r];for(;n.length&&t.length;){let e=t.shift(),r=n.findIndex(t=>t.id===e);r>-1&&i.push(n.splice(r,1)[0])}i=[...i,...n]}return U2(i,t,n)},y2(e.options,`debugTable`,`_getOrderColumnsFn`))}},G2=()=>({left:[],right:[]}),K2={getInitialState:e=>({columnPinning:G2(),...e}),getDefaultOptions:e=>({onColumnPinningChange:m2(`columnPinning`,e)}),createColumn:(e,t)=>{e.pin=n=>{let r=e.getLeafColumns().map(e=>e.id).filter(Boolean);t.setColumnPinning(e=>n===`right`?{left:(e?.left??[]).filter(e=>!(r!=null&&r.includes(e))),right:[...(e?.right??[]).filter(e=>!(r!=null&&r.includes(e))),...r]}:n===`left`?{left:[...(e?.left??[]).filter(e=>!(r!=null&&r.includes(e))),...r],right:(e?.right??[]).filter(e=>!(r!=null&&r.includes(e)))}:{left:(e?.left??[]).filter(e=>!(r!=null&&r.includes(e))),right:(e?.right??[]).filter(e=>!(r!=null&&r.includes(e)))})},e.getCanPin=()=>e.getLeafColumns().some(e=>(e.columnDef.enablePinning??!0)&&(t.options.enableColumnPinning??t.options.enablePinning??!0)),e.getIsPinned=()=>{let n=e.getLeafColumns().map(e=>e.id),{left:r,right:i}=t.getState().columnPinning,a=n.some(e=>r?.includes(e)),o=n.some(e=>i?.includes(e));return a?`left`:o?`right`:!1},e.getPinnedIndex=()=>{var n;let r=e.getIsPinned();return r?((n=t.getState().columnPinning)==null||(n=n[r])==null?void 0:n.indexOf(e.id))??-1:0}},createRow:(e,t)=>{e.getCenterVisibleCells=v2(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(e,t,n)=>{let r=[...t??[],...n??[]];return e.filter(e=>!r.includes(e.column.id))},y2(t.options,`debugRows`,`getCenterVisibleCells`)),e.getLeftVisibleCells=v2(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left],(e,t)=>(t??[]).map(t=>e.find(e=>e.column.id===t)).filter(Boolean).map(e=>({...e,position:`left`})),y2(t.options,`debugRows`,`getLeftVisibleCells`)),e.getRightVisibleCells=v2(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(e,t)=>(t??[]).map(t=>e.find(e=>e.column.id===t)).filter(Boolean).map(e=>({...e,position:`right`})),y2(t.options,`debugRows`,`getRightVisibleCells`))},createTable:e=>{e.setColumnPinning=t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),e.resetColumnPinning=t=>e.setColumnPinning(t?G2():e.initialState?.columnPinning??G2()),e.getIsSomeColumnsPinned=t=>{let n=e.getState().columnPinning;return t?!!n[t]?.length:!!(n.left?.length||n.right?.length)},e.getLeftLeafColumns=v2(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(e,t)=>(t??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),y2(e.options,`debugColumns`,`getLeftLeafColumns`)),e.getRightLeafColumns=v2(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(e,t)=>(t??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),y2(e.options,`debugColumns`,`getRightLeafColumns`)),e.getCenterLeafColumns=v2(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(e,t,n)=>{let r=[...t??[],...n??[]];return e.filter(e=>!r.includes(e.id))},y2(e.options,`debugColumns`,`getCenterLeafColumns`))}};function q2(e){return e||(typeof document<`u`?document:null)}var J2={size:150,minSize:20,maxSize:2**53-1},Y2=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),X2={getDefaultColumnDef:()=>J2,getInitialState:e=>({columnSizing:{},columnSizingInfo:Y2(),...e}),getDefaultOptions:e=>({columnResizeMode:`onEnd`,columnResizeDirection:`ltr`,onColumnSizingChange:m2(`columnSizing`,e),onColumnSizingInfoChange:m2(`columnSizingInfo`,e)}),createColumn:(e,t)=>{e.getSize=()=>{let n=t.getState().columnSizing[e.id];return Math.min(Math.max(e.columnDef.minSize??J2.minSize,n??e.columnDef.size??J2.size),e.columnDef.maxSize??J2.maxSize)},e.getStart=v2(e=>[e,t4(t,e),t.getState().columnSizing],(t,n)=>n.slice(0,e.getIndex(t)).reduce((e,t)=>e+t.getSize(),0),y2(t.options,`debugColumns`,`getStart`)),e.getAfter=v2(e=>[e,t4(t,e),t.getState().columnSizing],(t,n)=>n.slice(e.getIndex(t)+1).reduce((e,t)=>e+t.getSize(),0),y2(t.options,`debugColumns`,`getAfter`)),e.resetSize=()=>{t.setColumnSizing(t=>{let{[e.id]:n,...r}=t;return r})},e.getCanResize=()=>(e.columnDef.enableResizing??!0)&&(t.options.enableColumnResizing??!0),e.getIsResizing=()=>t.getState().columnSizingInfo.isResizingColumn===e.id},createHeader:(e,t)=>{e.getSize=()=>{let t=0,n=e=>{e.subHeaders.length?e.subHeaders.forEach(n):t+=e.column.getSize()??0};return n(e),t},e.getStart=()=>{if(e.index>0){let t=e.headerGroup.headers[e.index-1];return t.getStart()+t.getSize()}return 0},e.getResizeHandler=n=>{let r=t.getColumn(e.column.id),i=r?.getCanResize();return a=>{if(!r||!i||(a.persist==null||a.persist(),$2(a)&&a.touches&&a.touches.length>1))return;let o=e.getSize(),s=e?e.getLeafHeaders().map(e=>[e.column.id,e.column.getSize()]):[[r.id,r.getSize()]],c=$2(a)?Math.round(a.touches[0].clientX):a.clientX,l={},u=(e,n)=>{typeof n==`number`&&(t.setColumnSizingInfo(e=>{let r=t.options.columnResizeDirection===`rtl`?-1:1,i=(n-(e?.startOffset??0))*r,a=Math.max(i/(e?.startSize??0),-.999999);return e.columnSizingStart.forEach(e=>{let[t,n]=e;l[t]=Math.round(Math.max(n+n*a,0)*100)/100}),{...e,deltaOffset:i,deltaPercentage:a}}),(t.options.columnResizeMode===`onChange`||e===`end`)&&t.setColumnSizing(e=>({...e,...l})))},d=e=>u(`move`,e),f=e=>{u(`end`,e),t.setColumnSizingInfo(e=>({...e,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p=q2(n),m={moveHandler:e=>d(e.clientX),upHandler:e=>{p?.removeEventListener(`mousemove`,m.moveHandler),p?.removeEventListener(`mouseup`,m.upHandler),f(e.clientX)}},h={moveHandler:e=>(e.cancelable&&(e.preventDefault(),e.stopPropagation()),d(e.touches[0].clientX),!1),upHandler:e=>{p?.removeEventListener(`touchmove`,h.moveHandler),p?.removeEventListener(`touchend`,h.upHandler),e.cancelable&&(e.preventDefault(),e.stopPropagation()),f(e.touches[0]?.clientX)}},g=Q2()?{passive:!1}:!1;$2(a)?(p?.addEventListener(`touchmove`,h.moveHandler,g),p?.addEventListener(`touchend`,h.upHandler,g)):(p?.addEventListener(`mousemove`,m.moveHandler,g),p?.addEventListener(`mouseup`,m.upHandler,g)),t.setColumnSizingInfo(e=>({...e,startOffset:c,startSize:o,deltaOffset:0,deltaPercentage:0,columnSizingStart:s,isResizingColumn:r.id}))}}},createTable:e=>{e.setColumnSizing=t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),e.setColumnSizingInfo=t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),e.resetColumnSizing=t=>{e.setColumnSizing(t?{}:e.initialState.columnSizing??{})},e.resetHeaderSizeInfo=t=>{e.setColumnSizingInfo(t?Y2():e.initialState.columnSizingInfo??Y2())},e.getTotalSize=()=>e.getHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0,e.getLeftTotalSize=()=>e.getLeftHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0,e.getCenterTotalSize=()=>e.getCenterHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0,e.getRightTotalSize=()=>e.getRightHeaderGroups()[0]?.headers.reduce((e,t)=>e+t.getSize(),0)??0}},Z2=null;function Q2(){if(typeof Z2==`boolean`)return Z2;let e=!1;try{let t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener(`test`,n,t),window.removeEventListener(`test`,n)}catch{e=!1}return Z2=e,Z2}function $2(e){return e.type===`touchstart`}var e4={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:m2(`columnVisibility`,e)}),createColumn:(e,t)=>{e.toggleVisibility=n=>{e.getCanHide()&&t.setColumnVisibility(t=>({...t,[e.id]:n??!e.getIsVisible()}))},e.getIsVisible=()=>{let n=e.columns;return(n.length?n.some(e=>e.getIsVisible()):t.getState().columnVisibility?.[e.id])??!0},e.getCanHide=()=>(e.columnDef.enableHiding??!0)&&(t.options.enableHiding??!0),e.getToggleVisibilityHandler=()=>t=>{e.toggleVisibility==null||e.toggleVisibility(t.target.checked)}},createRow:(e,t)=>{e._getAllVisibleCells=v2(()=>[e.getAllCells(),t.getState().columnVisibility],e=>e.filter(e=>e.column.getIsVisible()),y2(t.options,`debugRows`,`_getAllVisibleCells`)),e.getVisibleCells=v2(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(e,t,n)=>[...e,...t,...n],y2(t.options,`debugRows`,`getVisibleCells`))},createTable:e=>{let t=(t,n)=>v2(()=>[n(),n().filter(e=>e.getIsVisible()).map(e=>e.id).join(`_`)],e=>e.filter(e=>e.getIsVisible==null?void 0:e.getIsVisible()),y2(e.options,`debugColumns`,t));e.getVisibleFlatColumns=t(`getVisibleFlatColumns`,()=>e.getAllFlatColumns()),e.getVisibleLeafColumns=t(`getVisibleLeafColumns`,()=>e.getAllLeafColumns()),e.getLeftVisibleLeafColumns=t(`getLeftVisibleLeafColumns`,()=>e.getLeftLeafColumns()),e.getRightVisibleLeafColumns=t(`getRightVisibleLeafColumns`,()=>e.getRightLeafColumns()),e.getCenterVisibleLeafColumns=t(`getCenterVisibleLeafColumns`,()=>e.getCenterLeafColumns()),e.setColumnVisibility=t=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(t),e.resetColumnVisibility=t=>{e.setColumnVisibility(t?{}:e.initialState.columnVisibility??{})},e.toggleAllColumnsVisible=t=>{t??=!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((e,n)=>({...e,[n.id]:t||!(n.getCanHide!=null&&n.getCanHide())}),{}))},e.getIsAllColumnsVisible=()=>!e.getAllLeafColumns().some(e=>!(e.getIsVisible!=null&&e.getIsVisible())),e.getIsSomeColumnsVisible=()=>e.getAllLeafColumns().some(e=>e.getIsVisible==null?void 0:e.getIsVisible()),e.getToggleAllColumnsVisibilityHandler=()=>t=>{e.toggleAllColumnsVisible(t.target?.checked)}}};function t4(e,t){return t?t===`center`?e.getCenterVisibleLeafColumns():t===`left`?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}var n4={createTable:e=>{e._getGlobalFacetedRowModel=e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,`__global__`),e.getGlobalFacetedRowModel=()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),e._getGlobalFacetedUniqueValues=e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,`__global__`),e.getGlobalFacetedUniqueValues=()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,e._getGlobalFacetedMinMaxValues=e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,`__global__`),e.getGlobalFacetedMinMaxValues=()=>{if(e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}}},r4={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:m2(`globalFilter`,e),globalFilterFn:`auto`,getColumnCanGlobalFilter:t=>{var n;let r=(n=e.getCoreRowModel().flatRows[0])==null||(n=n._getAllCellsByColumnId()[t.id])==null?void 0:n.getValue();return typeof r==`string`||typeof r==`number`}}),createColumn:(e,t)=>{e.getCanGlobalFilter=()=>(e.columnDef.enableGlobalFilter??!0)&&(t.options.enableGlobalFilter??!0)&&(t.options.enableFilters??!0)&&((t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))??!0)&&!!e.accessorFn},createTable:e=>{e.getGlobalAutoFilterFn=()=>L2.includesString,e.getGlobalFilterFn=()=>{let{globalFilterFn:t}=e.options;return h2(t)?t:t===`auto`?e.getGlobalAutoFilterFn():e.options.filterFns?.[t]??L2[t]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},i4={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:m2(`expanded`,e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;e._autoResetExpanded=()=>{if(!t){e._queue(()=>{t=!0});return}if(e.options.autoResetAll??e.options.autoResetExpanded??!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},e.setExpanded=t=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(t),e.toggleAllRowsExpanded=t=>{t??!e.getIsAllRowsExpanded()?e.setExpanded(!0):e.setExpanded({})},e.resetExpanded=t=>{e.setExpanded(t?{}:e.initialState?.expanded??{})},e.getCanSomeRowsExpand=()=>e.getPrePaginationRowModel().flatRows.some(e=>e.getCanExpand()),e.getToggleAllRowsExpandedHandler=()=>t=>{t.persist==null||t.persist(),e.toggleAllRowsExpanded()},e.getIsSomeRowsExpanded=()=>{let t=e.getState().expanded;return t===!0||Object.values(t).some(Boolean)},e.getIsAllRowsExpanded=()=>{let t=e.getState().expanded;return typeof t==`boolean`?t===!0:!(!Object.keys(t).length||e.getRowModel().flatRows.some(e=>!e.getIsExpanded()))},e.getExpandedDepth=()=>{let t=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(e=>{let n=e.split(`.`);t=Math.max(t,n.length)}),t},e.getPreExpandedRowModel=()=>e.getSortedRowModel(),e.getExpandedRowModel=()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())},createRow:(e,t)=>{e.toggleExpanded=n=>{t.setExpanded(r=>{let i=r===!0?!0:!!(r!=null&&r[e.id]),a={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(e=>{a[e]=!0}):a=r,n??=!i,!i&&n)return{...a,[e.id]:!0};if(i&&!n){let{[e.id]:t,...n}=a;return n}return r})},e.getIsExpanded=()=>{let n=t.getState().expanded;return!!((t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))??(n===!0||n?.[e.id]))},e.getCanExpand=()=>{var n;return(t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))??((t.options.enableExpanding??!0)&&!!((n=e.subRows)!=null&&n.length))},e.getIsAllParentsExpanded=()=>{let n=!0,r=e;for(;n&&r.parentId;)r=t.getRow(r.parentId,!0),n=r.getIsExpanded();return n},e.getToggleExpandedHandler=()=>{let t=e.getCanExpand();return()=>{t&&e.toggleExpanded()}}}},a4=0,o4=10,s4=()=>({pageIndex:a4,pageSize:o4}),c4={getInitialState:e=>({...e,pagination:{...s4(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:m2(`pagination`,e)}),createTable:e=>{let t=!1,n=!1;e._autoResetPageIndex=()=>{if(!t){e._queue(()=>{t=!0});return}if(e.options.autoResetAll??e.options.autoResetPageIndex??!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},e.setPagination=t=>e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(e=>p2(t,e)),e.resetPagination=t=>{e.setPagination(t?s4():e.initialState.pagination??s4())},e.setPageIndex=t=>{e.setPagination(n=>{let r=p2(t,n.pageIndex),i=e.options.pageCount===void 0||e.options.pageCount===-1?2**53-1:e.options.pageCount-1;return r=Math.max(0,Math.min(r,i)),{...n,pageIndex:r}})},e.resetPageIndex=t=>{var n;e.setPageIndex(t?a4:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageIndex)??a4)},e.resetPageSize=t=>{var n;e.setPageSize(t?o4:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageSize)??o4)},e.setPageSize=t=>{e.setPagination(e=>{let n=Math.max(1,p2(t,e.pageSize)),r=e.pageSize*e.pageIndex,i=Math.floor(r/n);return{...e,pageIndex:i,pageSize:n}})},e.setPageCount=t=>e.setPagination(n=>{let r=p2(t,e.options.pageCount??-1);return typeof r==`number`&&(r=Math.max(-1,r)),{...n,pageCount:r}}),e.getPageOptions=v2(()=>[e.getPageCount()],e=>{let t=[];return e&&e>0&&(t=[...Array(e)].fill(null).map((e,t)=>t)),t},y2(e.options,`debugTable`,`getPageOptions`)),e.getCanPreviousPage=()=>e.getState().pagination.pageIndex>0,e.getCanNextPage=()=>{let{pageIndex:t}=e.getState().pagination,n=e.getPageCount();return n===-1?!0:n===0?!1:t<n-1},e.previousPage=()=>e.setPageIndex(e=>e-1),e.nextPage=()=>e.setPageIndex(e=>e+1),e.firstPage=()=>e.setPageIndex(0),e.lastPage=()=>e.setPageIndex(e.getPageCount()-1),e.getPrePaginationRowModel=()=>e.getExpandedRowModel(),e.getPaginationRowModel=()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),e.getPageCount=()=>e.options.pageCount??Math.ceil(e.getRowCount()/e.getState().pagination.pageSize),e.getRowCount=()=>e.options.rowCount??e.getPrePaginationRowModel().rows.length}},l4=()=>({top:[],bottom:[]}),u4={getInitialState:e=>({rowPinning:l4(),...e}),getDefaultOptions:e=>({onRowPinningChange:m2(`rowPinning`,e)}),createRow:(e,t)=>{e.pin=(n,r,i)=>{let a=r?e.getLeafRows().map(e=>{let{id:t}=e;return t}):[],o=i?e.getParentRows().map(e=>{let{id:t}=e;return t}):[],s=new Set([...o,e.id,...a]);t.setRowPinning(e=>n===`bottom`?{top:(e?.top??[]).filter(e=>!(s!=null&&s.has(e))),bottom:[...(e?.bottom??[]).filter(e=>!(s!=null&&s.has(e))),...Array.from(s)]}:n===`top`?{top:[...(e?.top??[]).filter(e=>!(s!=null&&s.has(e))),...Array.from(s)],bottom:(e?.bottom??[]).filter(e=>!(s!=null&&s.has(e)))}:{top:(e?.top??[]).filter(e=>!(s!=null&&s.has(e))),bottom:(e?.bottom??[]).filter(e=>!(s!=null&&s.has(e)))})},e.getCanPin=()=>{let{enableRowPinning:n,enablePinning:r}=t.options;return typeof n==`function`?n(e):n??r??!0},e.getIsPinned=()=>{let n=[e.id],{top:r,bottom:i}=t.getState().rowPinning,a=n.some(e=>r?.includes(e)),o=n.some(e=>i?.includes(e));return a?`top`:o?`bottom`:!1},e.getPinnedIndex=()=>{let n=e.getIsPinned();return n?((n===`top`?t.getTopRows():t.getBottomRows())?.map(e=>{let{id:t}=e;return t}))?.indexOf(e.id)??-1:-1}},createTable:e=>{e.setRowPinning=t=>e.options.onRowPinningChange==null?void 0:e.options.onRowPinningChange(t),e.resetRowPinning=t=>e.setRowPinning(t?l4():e.initialState?.rowPinning??l4()),e.getIsSomeRowsPinned=t=>{let n=e.getState().rowPinning;return t?!!n[t]?.length:!!(n.top?.length||n.bottom?.length)},e._getPinnedRows=(t,n,r)=>(e.options.keepPinnedRows??!0?(n??[]).map(t=>{let n=e.getRow(t,!0);return n.getIsAllParentsExpanded()?n:null}):(n??[]).map(e=>t.find(t=>t.id===e))).filter(Boolean).map(e=>({...e,position:r})),e.getTopRows=v2(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,`top`),y2(e.options,`debugRows`,`getTopRows`)),e.getBottomRows=v2(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,`bottom`),y2(e.options,`debugRows`,`getBottomRows`)),e.getCenterRows=v2(()=>[e.getRowModel().rows,e.getState().rowPinning.top,e.getState().rowPinning.bottom],(e,t,n)=>{let r=new Set([...t??[],...n??[]]);return e.filter(e=>!r.has(e.id))},y2(e.options,`debugRows`,`getCenterRows`))}},d4={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:m2(`rowSelection`,e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>{e.setRowSelection=t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),e.resetRowSelection=t=>e.setRowSelection(t?{}:e.initialState.rowSelection??{}),e.toggleAllRowsSelected=t=>{e.setRowSelection(n=>{t=t===void 0?!e.getIsAllRowsSelected():t;let r={...n},i=e.getPreGroupedRowModel().flatRows;return t?i.forEach(e=>{e.getCanSelect()&&(r[e.id]=!0)}):i.forEach(e=>{delete r[e.id]}),r})},e.toggleAllPageRowsSelected=t=>e.setRowSelection(n=>{let r=t===void 0?!e.getIsAllPageRowsSelected():t,i={...n};return e.getRowModel().rows.forEach(t=>{f4(i,t.id,r,!0,e)}),i}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=v2(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?p4(e,n):{rows:[],flatRows:[],rowsById:{}},y2(e.options,`debugTable`,`getSelectedRowModel`)),e.getFilteredSelectedRowModel=v2(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?p4(e,n):{rows:[],flatRows:[],rowsById:{}},y2(e.options,`debugTable`,`getFilteredSelectedRowModel`)),e.getGroupedSelectedRowModel=v2(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?p4(e,n):{rows:[],flatRows:[],rowsById:{}},y2(e.options,`debugTable`,`getGroupedSelectedRowModel`)),e.getIsAllRowsSelected=()=>{let t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState(),r=!!(t.length&&Object.keys(n).length);return r&&t.some(e=>e.getCanSelect()&&!n[e.id])&&(r=!1),r},e.getIsAllPageRowsSelected=()=>{let t=e.getPaginationRowModel().flatRows.filter(e=>e.getCanSelect()),{rowSelection:n}=e.getState(),r=!!t.length;return r&&t.some(e=>!n[e.id])&&(r=!1),r},e.getIsSomeRowsSelected=()=>{let t=Object.keys(e.getState().rowSelection??{}).length;return t>0&&t<e.getFilteredRowModel().flatRows.length},e.getIsSomePageRowsSelected=()=>{let t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.filter(e=>e.getCanSelect()).some(e=>e.getIsSelected()||e.getIsSomeSelected())},e.getToggleAllRowsSelectedHandler=()=>t=>{e.toggleAllRowsSelected(t.target.checked)},e.getToggleAllPageRowsSelectedHandler=()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}},createRow:(e,t)=>{e.toggleSelected=(n,r)=>{let i=e.getIsSelected();t.setRowSelection(a=>{if(n=n===void 0?!i:n,e.getCanSelect()&&i===n)return a;let o={...a};return f4(o,e.id,n,r?.selectChildren??!0,t),o})},e.getIsSelected=()=>{let{rowSelection:n}=t.getState();return m4(e,n)},e.getIsSomeSelected=()=>{let{rowSelection:n}=t.getState();return h4(e,n)===`some`},e.getIsAllSubRowsSelected=()=>{let{rowSelection:n}=t.getState();return h4(e,n)===`all`},e.getCanSelect=()=>typeof t.options.enableRowSelection==`function`?t.options.enableRowSelection(e):t.options.enableRowSelection??!0,e.getCanSelectSubRows=()=>typeof t.options.enableSubRowSelection==`function`?t.options.enableSubRowSelection(e):t.options.enableSubRowSelection??!0,e.getCanMultiSelect=()=>typeof t.options.enableMultiRowSelection==`function`?t.options.enableMultiRowSelection(e):t.options.enableMultiRowSelection??!0,e.getToggleSelectedHandler=()=>{let t=e.getCanSelect();return n=>{t&&e.toggleSelected(n.target?.checked)}}}},f4=(e,t,n,r,i)=>{var a;let o=i.getRow(t,!0);n?(o.getCanMultiSelect()||Object.keys(e).forEach(t=>delete e[t]),o.getCanSelect()&&(e[t]=!0)):delete e[t],r&&(a=o.subRows)!=null&&a.length&&o.getCanSelectSubRows()&&o.subRows.forEach(t=>f4(e,t.id,n,r,i))};function p4(e,t){let n=e.getState().rowSelection,r=[],i={},a=function(e,t){return e.map(e=>{var t;let o=m4(e,n);if(o&&(r.push(e),i[e.id]=e),(t=e.subRows)!=null&&t.length&&(e={...e,subRows:a(e.subRows)}),o)return e}).filter(Boolean)};return{rows:a(t.rows),flatRows:r,rowsById:i}}function m4(e,t){return t[e.id]??!1}function h4(e,t,n){var r;if(!((r=e.subRows)!=null&&r.length))return!1;let i=!0,a=!1;return e.subRows.forEach(e=>{if(!(a&&!i)&&(e.getCanSelect()&&(m4(e,t)?a=!0:i=!1),e.subRows&&e.subRows.length)){let n=h4(e,t);n===`all`?a=!0:(n===`some`&&(a=!0),i=!1)}}),i?`all`:a?`some`:!1}var g4=/([0-9]+)/gm,_4=(e,t,n)=>T4(w4(e.getValue(n)).toLowerCase(),w4(t.getValue(n)).toLowerCase()),v4=(e,t,n)=>T4(w4(e.getValue(n)),w4(t.getValue(n))),y4=(e,t,n)=>C4(w4(e.getValue(n)).toLowerCase(),w4(t.getValue(n)).toLowerCase()),b4=(e,t,n)=>C4(w4(e.getValue(n)),w4(t.getValue(n))),x4=(e,t,n)=>{let r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},S4=(e,t,n)=>C4(e.getValue(n),t.getValue(n));function C4(e,t){return e===t?0:e>t?1:-1}function w4(e){return typeof e==`number`?isNaN(e)||e===1/0||e===-1/0?``:String(e):typeof e==`string`?e:``}function T4(e,t){let n=e.split(g4).filter(Boolean),r=t.split(g4).filter(Boolean);for(;n.length&&r.length;){let e=n.shift(),t=r.shift(),i=parseInt(e,10),a=parseInt(t,10),o=[i,a].sort();if(isNaN(o[0])){if(e>t)return 1;if(t>e)return-1;continue}if(isNaN(o[1]))return isNaN(i)?-1:1;if(i>a)return 1;if(a>i)return-1}return n.length-r.length}var E4={alphanumeric:_4,alphanumericCaseSensitive:v4,text:y4,textCaseSensitive:b4,datetime:x4,basic:S4},D4=[w2,e4,W2,K2,D2,z2,n4,r4,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:`auto`,sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:m2(`sorting`,e),isMultiSortEvent:e=>e.shiftKey}),createColumn:(e,t)=>{e.getAutoSortingFn=()=>{let n=t.getFilteredRowModel().flatRows.slice(10),r=!1;for(let t of n){let n=t?.getValue(e.id);if(Object.prototype.toString.call(n)===`[object Date]`)return E4.datetime;if(typeof n==`string`&&(r=!0,n.split(g4).length>1))return E4.alphanumeric}return r?E4.text:E4.basic},e.getAutoSortDir=()=>typeof t.getFilteredRowModel().flatRows[0]?.getValue(e.id)==`string`?`asc`:`desc`,e.getSortingFn=()=>{if(!e)throw Error();return h2(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn===`auto`?e.getAutoSortingFn():t.options.sortingFns?.[e.columnDef.sortingFn]??E4[e.columnDef.sortingFn]},e.toggleSorting=(n,r)=>{let i=e.getNextSortingOrder(),a=n!=null;t.setSorting(o=>{let s=o?.find(t=>t.id===e.id),c=o?.findIndex(t=>t.id===e.id),l=[],u,d=a?n:i===`desc`;return u=o!=null&&o.length&&e.getCanMultiSort()&&r?s?`toggle`:`add`:o!=null&&o.length&&c!==o.length-1?`replace`:s?`toggle`:`replace`,u===`toggle`&&(a||i||(u=`remove`)),u===`add`?(l=[...o,{id:e.id,desc:d}],l.splice(0,l.length-(t.options.maxMultiSortColCount??2**53-1))):l=u===`toggle`?o.map(t=>t.id===e.id?{...t,desc:d}:t):u===`remove`?o.filter(t=>t.id!==e.id):[{id:e.id,desc:d}],l})},e.getFirstSortDir=()=>e.columnDef.sortDescFirst??t.options.sortDescFirst??e.getAutoSortDir()===`desc`?`desc`:`asc`,e.getNextSortingOrder=n=>{let r=e.getFirstSortDir(),i=e.getIsSorted();return i?i!==r&&(t.options.enableSortingRemoval??!0)&&(!n||(t.options.enableMultiRemove??!0))?!1:i===`desc`?`asc`:`desc`:r},e.getCanSort=()=>(e.columnDef.enableSorting??!0)&&(t.options.enableSorting??!0)&&!!e.accessorFn,e.getCanMultiSort=()=>e.columnDef.enableMultiSort??t.options.enableMultiSort??!!e.accessorFn,e.getIsSorted=()=>{let n=t.getState().sorting?.find(t=>t.id===e.id);return n?n.desc?`desc`:`asc`:!1},e.getSortIndex=()=>t.getState().sorting?.findIndex(t=>t.id===e.id)??-1,e.clearSorting=()=>{t.setSorting(t=>t!=null&&t.length?t.filter(t=>t.id!==e.id):[])},e.getToggleSortingHandler=()=>{let n=e.getCanSort();return r=>{n&&(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}},createTable:e=>{e.setSorting=t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),e.resetSorting=t=>{e.setSorting(t?[]:e.initialState?.sorting??[])},e.getPreSortedRowModel=()=>e.getGroupedRowModel(),e.getSortedRowModel=()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())}},H2,i4,c4,u4,d4,X2];function O4(e){let t=[...D4,...e._features??[]],n={_features:t},r=n._features.reduce((e,t)=>Object.assign(e,t.getDefaultOptions==null?void 0:t.getDefaultOptions(n)),{}),i=e=>n.options.mergeOptions?n.options.mergeOptions(r,e):{...r,...e},a={...e.initialState??{}};n._features.forEach(e=>{a=(e.getInitialState==null?void 0:e.getInitialState(a))??a});let o=[],s=!1,c={_features:t,options:{...r,...e},initialState:a,_queue:e=>{o.push(e),s||(s=!0,Promise.resolve().then(()=>{for(;o.length;)o.shift()();s=!1}).catch(e=>setTimeout(()=>{throw e})))},reset:()=>{n.setState(n.initialState)},setOptions:e=>{n.options=i(p2(e,n.options))},getState:()=>n.options.state,setState:e=>{n.options.onStateChange==null||n.options.onStateChange(e)},_getRowId:(e,t,r)=>(n.options.getRowId==null?void 0:n.options.getRowId(e,t,r))??`${r?[r.id,t].join(`.`):t}`,getCoreRowModel:()=>(n._getCoreRowModel||=n.options.getCoreRowModel(n),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:(e,t)=>{let r=(t?n.getPrePaginationRowModel():n.getRowModel()).rowsById[e];if(!r&&(r=n.getCoreRowModel().rowsById[e],!r))throw Error();return r},_getDefaultColumnDef:v2(()=>[n.options.defaultColumn],e=>(e??={},{header:e=>{let t=e.header.column.columnDef;return t.accessorKey?t.accessorKey:t.accessorFn?t.id:null},cell:e=>{var t;return((t=e.renderValue())==null||t.toString==null?void 0:t.toString())??null},...n._features.reduce((e,t)=>Object.assign(e,t.getDefaultColumnDef==null?void 0:t.getDefaultColumnDef()),{}),...e}),y2(e,`debugColumns`,`_getDefaultColumnDef`)),_getColumnDefs:()=>n.options.columns,getAllColumns:v2(()=>[n._getColumnDefs()],e=>{let t=function(e,r,i){return i===void 0&&(i=0),e.map(e=>{let a=x2(n,e,i,r),o=e;return a.columns=o.columns?t(o.columns,a,i+1):[],a})};return t(e)},y2(e,`debugColumns`,`getAllColumns`)),getAllFlatColumns:v2(()=>[n.getAllColumns()],e=>e.flatMap(e=>e.getFlatColumns()),y2(e,`debugColumns`,`getAllFlatColumns`)),_getAllFlatColumnsById:v2(()=>[n.getAllFlatColumns()],e=>e.reduce((e,t)=>(e[t.id]=t,e),{}),y2(e,`debugColumns`,`getAllFlatColumnsById`)),getAllLeafColumns:v2(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(e,t)=>t(e.flatMap(e=>e.getLeafColumns())),y2(e,`debugColumns`,`getAllLeafColumns`)),getColumn:e=>n._getAllFlatColumnsById()[e]};Object.assign(n,c);for(let e=0;e<n._features.length;e++){let t=n._features[e];t==null||t.createTable==null||t.createTable(n)}return n}function k4(){return e=>v2(()=>[e.options.data],t=>{let n={rows:[],flatRows:[],rowsById:{}},r=function(t,i,a){i===void 0&&(i=0);let o=[];for(let c=0;c<t.length;c++){let l=E2(e,e._getRowId(t[c],c,a),t[c],c,i,void 0,a?.id);if(n.flatRows.push(l),n.rowsById[l.id]=l,o.push(l),e.options.getSubRows){var s;l.originalSubRows=e.options.getSubRows(t[c],c),(s=l.originalSubRows)!=null&&s.length&&(l.subRows=r(l.originalSubRows,i+1,l))}}return o};return n.rows=r(t),n},y2(e.options,`debugTable`,`getRowModel`,()=>e._autoResetPageIndex()))}function A4(e,t){return e?j4(e)?v.createElement(e,t):e:null}function j4(e){return M4(e)||typeof e==`function`||N4(e)}function M4(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function N4(e){return typeof e==`object`&&typeof e.$$typeof==`symbol`&&[`react.memo`,`react.forward_ref`].includes(e.$$typeof.description)}function P4(e){let t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=v.useState(()=>({current:O4(t)})),[r,i]=v.useState(()=>n.current.initialState);return n.current.setOptions(t=>({...t,...e,state:{...r,...e.state},onStateChange:t=>{i(t),e.onStateChange==null||e.onStateChange(t)}})),n.current}var F4={"full-access":`default`,"mcp-server":`outline`,"read-only":`secondary`},I4={"full-access":`Full access`,"mcp-server":`MCP Server`,"read-only":`Read only`};function L4({value:e}){let[t,n]=(0,v.useState)(!1);function r(){navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),2e3)}return(0,H.jsx)(q,{type:`button`,size:`icon`,variant:`outline`,className:`shrink-0`,onClick:r,children:t?(0,H.jsx)(Ba,{className:`size-4 text-green-500`}):(0,H.jsx)(Qa,{className:`size-4`})})}var R4={name:``,accessType:``};function z4(){let{user:e}=_a(),{data:t,loading:n,refetch:r}=fs(`/cms/admin/api-tokens`),{request:i,loading:a,error:o}=xw(),s=e?.permissions??[],c=s.includes(`*`)||s.includes(`settings:api-tokens:write`),l=s.includes(`*`)||s.includes(`settings:api-tokens:delete`),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(R4),[m,h]=(0,v.useState)(null),[g,_]=(0,v.useState)(null),y=[{accessorKey:`name`,header:`Name`},{accessorKey:`access_type`,header:`Access`,cell:({getValue:e})=>{let t=e();return(0,H.jsx)(RC,{variant:F4[t]??`secondary`,children:I4[t]??t})}},{accessorKey:`created_at`,header:`Created`,cell:({getValue:e})=>new Date(e()).toLocaleDateString(`en-US`,{year:`numeric`,month:`short`,day:`numeric`})},{id:`actions`,header:``,cell:({row:e})=>l?(0,H.jsx)(q,{size:`icon`,variant:`ghost`,className:`flex size-8 items-center justify-center rounded text-destructive hover:bg-destructive/10 hover:text-destructive`,onClick:()=>_(e.original),children:(0,H.jsx)(Zo,{className:`size-3.5`})}):null}],b=P4({data:t??[],columns:y,getCoreRowModel:k4()});async function x(e){e.preventDefault();try{h(await i(`/cms/admin/api-tokens`,`POST`,{name:f.name,accessType:f.accessType})),r(),X.success(`API token created`)}catch{X.error(`Could not create token`)}}function S(){d(!1),h(null),p(R4)}async function C(){try{await i(`/cms/admin/api-tokens/${g.id}`,`DELETE`),_(null),r(),X.success(`Token revoked`)}catch{X.error(`Could not revoke token`)}}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`API Tokens`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Manage tokens for consuming the public API and the instance MCP endpoint.`})]}),(0,H.jsxs)(q,{onClick:()=>d(!0),disabled:!c,children:[(0,H.jsx)(Lo,{className:`size-4`}),`New token`]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsx)(`div`,{className:`rounded-md border`,children:(0,H.jsxs)(BC,{children:[(0,H.jsx)(VC,{className:`font-bold uppercase`,children:b.getHeaderGroups().map(e=>(0,H.jsx)(UC,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:A4(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(HC,{children:n?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:y.length,className:`h-24`,children:(0,H.jsx)(zC,{className:`mx-auto size-5`})})}):b.getRowModel().rows.length===0?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:y.length,className:`h-24 text-center text-muted-foreground`,children:`No tokens yet.`})}):b.getRowModel().rows.map(e=>(0,H.jsx)(UC,{children:e.getVisibleCells().map(e=>(0,H.jsx)(GC,{className:`px-4 py-3`,children:A4(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(Jh,{open:u,onOpenChange:e=>{e||S()},children:(0,H.jsx)(Qh,{className:`sm:max-w-md`,children:m?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Token generated`})}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,H.jsx)(`div`,{className:`rounded-md border border-amber-200 bg-amber-50 px-4 py-3 text-sm text-amber-800 dark:border-amber-900 dark:bg-amber-950 dark:text-amber-200`,children:`Make sure to copy your token now. You won't be able to see it again.`}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Token`}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(Sw,{readOnly:!0,value:m.token,className:`font-mono text-xs`}),(0,H.jsx)(L4,{value:m.token})]})]})]}),(0,H.jsx)(eg,{children:(0,H.jsx)(q,{onClick:S,children:`Done`})})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`New API token`})}),(0,H.jsxs)(`form`,{id:`create-token-form`,onSubmit:x,className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`token-name`,children:`Name`}),(0,H.jsx)(Sw,{id:`token-name`,placeholder:`e.g. Production frontend`,value:f.name,onChange:e=>p(t=>({...t,name:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`token-access`,children:`Access type`}),(0,H.jsxs)(V_,{value:f.accessType,onValueChange:e=>p(t=>({...t,accessType:e})),children:[(0,H.jsx)(W_,{id:`token-access`,children:(0,H.jsx)(U_,{placeholder:`Select access type`})}),(0,H.jsxs)(q_,{children:[(0,H.jsx)(Y_,{value:`read-only`,children:`Read only`}),(0,H.jsx)(Y_,{value:`full-access`,children:`Full access`}),(0,H.jsx)(Y_,{value:`mcp-server`,children:`MCP Server`})]})]})]}),o&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:o})]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,type:`button`,onClick:S,children:`Cancel`}),(0,H.jsx)(q,{type:`submit`,form:`create-token-form`,disabled:a||!f.accessType||!c,children:a?`Generating…`:`Generate token`})]})]})})}),(0,H.jsx)(Jh,{open:!!g,onOpenChange:e=>{e||_(null)},children:(0,H.jsxs)(Qh,{className:`sm:max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Revoke token`})}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to revoke`,` `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:g?.name}),`? Any client using it will immediately lose access.`]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>_(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:C,disabled:a||!l,children:a?`Revoking…`:`Revoke`})]})]})})]})]})}var B4=`••••••••`;function V4({values:e,onChange:t,disabled:n=!1}){return(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`local-uploads-dir`,children:`Upload directory`}),(0,H.jsx)(Sw,{id:`local-uploads-dir`,placeholder:`public/uploads`,value:e[`local.uploads_dir`]??``,onChange:e=>t(`local.uploads_dir`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Path on disk where files are stored. Relative to the server working directory.`})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`local-public-url`,children:`Public URL`}),(0,H.jsx)(Sw,{id:`local-public-url`,placeholder:`http://localhost:1337`,value:e[`local.public_url`]??``,onChange:e=>t(`local.public_url`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Base URL used to build file URLs. Should match the server's public address.`})]})]})}function H4({id:e,label:t,fieldKey:n,values:r,onChange:i,placeholder:a,disabled:o=!1}){let[s,c]=(0,v.useState)(!1),l=r[n]===B4,u=r[n]??``;return(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:e,children:t}),(0,H.jsxs)(`div`,{className:`relative`,children:[(0,H.jsx)(Sw,{id:e,type:s?`text`:`password`,placeholder:l?`Leave blank to keep current value`:a,value:l?``:u,onChange:e=>i(n,e.target.value),className:`pr-9`,disabled:o}),(0,H.jsx)(`button`,{type:`button`,className:`absolute right-2.5 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:()=>c(e=>!e),tabIndex:-1,disabled:o,children:s?(0,H.jsx)(to,{className:`size-4`}):(0,H.jsx)(no,{className:`size-4`})})]}),l&&(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`A value is already saved. Enter a new one to replace it.`})]})}function U4({values:e,onChange:t,disabled:n=!1}){return(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`s3-access-key`,children:`Access key ID`}),(0,H.jsx)(Sw,{id:`s3-access-key`,placeholder:`AKIAIOSFODNN7EXAMPLE`,value:e[`s3.access_key_id`]??``,onChange:e=>t(`s3.access_key_id`,e.target.value),disabled:n})]}),(0,H.jsx)(H4,{id:`s3-secret-key`,label:`Secret access key`,fieldKey:`s3.secret_access_key`,values:e,onChange:t,disabled:n})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`s3-region`,children:`Region`}),(0,H.jsx)(Sw,{id:`s3-region`,placeholder:`us-east-1`,value:e[`s3.region`]??``,onChange:e=>t(`s3.region`,e.target.value),disabled:n})]}),(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`s3-bucket`,children:`Bucket`}),(0,H.jsx)(Sw,{id:`s3-bucket`,placeholder:`my-bucket`,value:e[`s3.bucket`]??``,onChange:e=>t(`s3.bucket`,e.target.value),disabled:n})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`s3-path-prefix`,children:`Path prefix`}),(0,H.jsx)(Sw,{id:`s3-path-prefix`,placeholder:`cms/media`,value:e[`s3.path_prefix`]??``,onChange:e=>t(`s3.path_prefix`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Shared bucket subfolder.`})]})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`s3-public-url`,children:`Public URL`}),(0,H.jsx)(Sw,{id:`s3-public-url`,placeholder:`https://cdn.example.com`,value:e[`s3.public_url`]??``,onChange:e=>t(`s3.public_url`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Leave blank to use the default S3 URL.`})]})]})}function W4({values:e,onChange:t,disabled:n=!1}){return(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`r2-access-key`,children:`Access key ID`}),(0,H.jsx)(Sw,{id:`r2-access-key`,placeholder:`R2 access key ID`,value:e[`r2.access_key_id`]??``,onChange:e=>t(`r2.access_key_id`,e.target.value),disabled:n})]}),(0,H.jsx)(H4,{id:`r2-secret-key`,label:`Secret access key`,fieldKey:`r2.secret_access_key`,values:e,onChange:t,disabled:n})]}),(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`r2-bucket`,children:`Bucket`}),(0,H.jsx)(Sw,{id:`r2-bucket`,placeholder:`my-bucket`,value:e[`r2.bucket`]??``,onChange:e=>t(`r2.bucket`,e.target.value),disabled:n})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`r2-path-prefix`,children:`Path prefix`}),(0,H.jsx)(Sw,{id:`r2-path-prefix`,placeholder:`cms/media`,value:e[`r2.path_prefix`]??``,onChange:e=>t(`r2.path_prefix`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Shared bucket subfolder.`})]})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsxs)(Y,{htmlFor:`r2-public-url`,children:[`Public URL `,(0,H.jsx)(`span`,{className:`text-destructive`,children:`*`})]}),(0,H.jsx)(Sw,{id:`r2-public-url`,placeholder:`https://assets.example.com`,value:e[`r2.public_url`]??``,onChange:e=>t(`r2.public_url`,e.target.value),disabled:n}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Required. R2 does not generate public URLs automatically.`})]})]})}function G4(){let{user:e}=_a(),{data:t,loading:n}=fs(`/cms/admin/settings/media`),{loading:r,error:i,request:a}=xw(),[o,s]=(0,v.useState)(null),[c,l]=(0,v.useState)(!1),u=o??t??{provider:`local`},d=u.provider||`local`,f=e?.permissions??[],p=f.includes(`*`)||f.includes(`settings:overview:write`);function m(e,t){s({...u,[e]:t})}function h(e){s({...u,provider:e})}async function g(e){e.preventDefault();try{await a(`/cms/admin/settings/media`,`PUT`,u),l(!0),setTimeout(()=>l(!1),2500),X.success(`Media settings saved`)}catch{X.error(`Could not save media settings`)}}return n?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-8 text-muted-foreground`,children:[(0,H.jsx)(zC,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading settings…`})]}):(0,H.jsxs)(`form`,{onSubmit:g,className:`space-y-8`,children:[(0,H.jsxs)(`div`,{className:`border-b pb-4`,children:[(0,H.jsx)(`h2`,{className:`text-2xl font-semibold`,children:`Storage`}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure where uploaded files are stored.`})]}),(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`provider`,children:`Storage provider`}),(0,H.jsxs)(V_,{value:d,onValueChange:e=>h(e),children:[(0,H.jsx)(W_,{id:`provider`,disabled:!p,children:(0,H.jsx)(U_,{})}),(0,H.jsxs)(q_,{children:[(0,H.jsx)(Y_,{value:`local`,children:`Local`}),(0,H.jsx)(Y_,{value:`s3`,children:`Amazon S3`}),(0,H.jsx)(Y_,{value:`r2`,children:`Cloudflare R2`})]})]})]}),d===`r2`&&(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`r2-account-id`,children:`Account ID`}),(0,H.jsx)(Sw,{id:`r2-account-id`,placeholder:`023e105f4ecef8ad9ca31a8372d0c353`,value:u[`r2.account_id`]??``,onChange:e=>m(`r2.account_id`,e.target.value),disabled:!p}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Found in the Cloudflare dashboard under R2 > Overview.`})]})]}),(0,H.jsxs)(`div`,{className:`border-t pt-6`,children:[d===`local`&&(0,H.jsx)(V4,{values:u,onChange:m,disabled:!p}),d===`s3`&&(0,H.jsx)(U4,{values:u,onChange:m,disabled:!p}),d===`r2`&&(0,H.jsx)(W4,{values:u,onChange:m,disabled:!p})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(q,{type:`submit`,disabled:r||!p,children:r?`Saving…`:`Save`}),c&&(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Changes saved.`}),i&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:i})]})]})}var K4={name:`@plank-cms/admin`,version:`0.30.1`,type:`module`,scripts:{build:`vite build`,dev:`vite`,lint:`eslint src/`},dependencies:{"@dnd-kit/core":`6.3.1`,"@dnd-kit/sortable":`10.0.0`,"@dnd-kit/utilities":`3.2.2`,"@radix-ui/react-avatar":`1.1.11`,"@radix-ui/react-checkbox":`1.3.3`,"@radix-ui/react-dialog":`1.1.15`,"@radix-ui/react-dropdown-menu":`2.1.16`,"@radix-ui/react-label":`2.1.8`,"@radix-ui/react-popover":`1.1.15`,"@radix-ui/react-select":`2.2.6`,"@radix-ui/react-separator":`1.1.8`,"@radix-ui/react-slot":`1.2.4`,"@radix-ui/react-switch":`1.2.6`,"@radix-ui/react-tabs":`1.1.13`,"@radix-ui/react-tooltip":`1.2.8`,"@tanstack/react-table":`8.21.3`,"@tiptap/extension-image":`3.22.4`,"@tiptap/pm":`3.22.4`,"@tiptap/react":`3.22.4`,"@tiptap/starter-kit":`3.22.4`,"class-variance-authority":`0.7.1`,clsx:`2.1.1`,cmdk:`1.1.1`,"date-fns":`4.1.0`,"hls.js":`1.6.16`,"input-otp":`1.4.2`,"lucide-react":`1.8.0`,"next-themes":`0.4.6`,"qrcode.react":`4.2.0`,"radix-ui":`1.4.3`,react:`19.2.5`,"react-day-picker":`9.14.0`,"react-dom":`19.2.5`,"react-router-dom":`7.14.1`,sonner:`2.0.7`,"tailwind-merge":`3.5.0`},devDependencies:{"@tailwindcss/vite":`4.2.3`,"@types/react":`19.2.14`,"@types/react-dom":`19.2.3`,"@types/react-router-dom":`5.3.3`,"@vitejs/plugin-react":`6.0.1`,tailwindcss:`4.2.3`,vite:`8.0.9`}},q4=[{value:`UTC`,label:`UTC — Coordinated Universal Time`},{value:`America/New_York`,label:`America/New_York — Eastern Time (UTC-5/4)`},{value:`America/Chicago`,label:`America/Chicago — Central Time (UTC-6/5)`},{value:`America/Denver`,label:`America/Denver — Mountain Time (UTC-7/6)`},{value:`America/Los_Angeles`,label:`America/Los_Angeles — Pacific Time (UTC-8/7)`},{value:`America/Anchorage`,label:`America/Anchorage — Alaska Time (UTC-9/8)`},{value:`America/Honolulu`,label:`America/Honolulu — Hawaii Time (UTC-10)`},{value:`America/Mexico_City`,label:`America/Mexico_City — Mexico City (UTC-6/5)`},{value:`America/El_Salvador`,label:`America/El_Salvador — El Salvador (UTC-6)`},{value:`America/Bogota`,label:`America/Bogota — Colombia Time (UTC-5)`},{value:`America/Lima`,label:`America/Lima — Peru Time (UTC-5)`},{value:`America/Santiago`,label:`America/Santiago — Chile Time (UTC-4/3)`},{value:`America/Argentina/Buenos_Aires`,label:`America/Buenos_Aires — Argentina (UTC-3)`},{value:`America/Sao_Paulo`,label:`America/Sao_Paulo — Brasília Time (UTC-3/2)`},{value:`Atlantic/Reykjavik`,label:`Atlantic/Reykjavik — Iceland (UTC+0)`},{value:`Europe/London`,label:`Europe/London — GMT/BST (UTC+0/1)`},{value:`Europe/Paris`,label:`Europe/Paris — Central European Time (UTC+1/2)`},{value:`Europe/Berlin`,label:`Europe/Berlin — Central European Time (UTC+1/2)`},{value:`Europe/Madrid`,label:`Europe/Madrid — Central European Time (UTC+1/2)`},{value:`Europe/Rome`,label:`Europe/Rome — Central European Time (UTC+1/2)`},{value:`Europe/Helsinki`,label:`Europe/Helsinki — Eastern European Time (UTC+2/3)`},{value:`Europe/Istanbul`,label:`Europe/Istanbul — Turkey Time (UTC+3)`},{value:`Europe/Moscow`,label:`Europe/Moscow — Moscow Standard Time (UTC+3)`},{value:`Asia/Dubai`,label:`Asia/Dubai — Gulf Standard Time (UTC+4)`},{value:`Asia/Karachi`,label:`Asia/Karachi — Pakistan Standard Time (UTC+5)`},{value:`Asia/Kolkata`,label:`Asia/Kolkata — India Standard Time (UTC+5:30)`},{value:`Asia/Dhaka`,label:`Asia/Dhaka — Bangladesh Standard Time (UTC+6)`},{value:`Asia/Bangkok`,label:`Asia/Bangkok — Indochina Time (UTC+7)`},{value:`Asia/Singapore`,label:`Asia/Singapore — Singapore Time (UTC+8)`},{value:`Asia/Shanghai`,label:`Asia/Shanghai — China Standard Time (UTC+8)`},{value:`Asia/Tokyo`,label:`Asia/Tokyo — Japan Standard Time (UTC+9)`},{value:`Asia/Seoul`,label:`Asia/Seoul — Korea Standard Time (UTC+9)`},{value:`Australia/Sydney`,label:`Australia/Sydney — AEST/AEDT (UTC+10/11)`},{value:`Australia/Melbourne`,label:`Australia/Melbourne — AEST/AEDT (UTC+10/11)`},{value:`Pacific/Auckland`,label:`Pacific/Auckland — New Zealand (UTC+12/13)`}];function J4(){let{user:e}=_a(),{data:t,loading:n}=fs(`/cms/admin/settings/general`),{request:r,loading:i}=xw(),{request:a,loading:o}=xw(),{request:s,loading:c}=xw(),{refreshSettings:l}=Sa(),[u,d]=(0,v.useState)(`UTC`),[f,p]=(0,v.useState)([]),[m,h]=(0,v.useState)(`en`),[g,_]=(0,v.useState)(``),[y,b]=(0,v.useState)(!1),x=e?.permissions??[],S=x.includes(`*`)||x.includes(`settings:overview:write`);(0,v.useEffect)(()=>{if(t?.timezone&&d(t.timezone),t?.locales)try{let e=JSON.parse(t.locales);Array.isArray(e)&&p(e)}catch{p((t.locales||``).split(`,`).map(e=>e.trim()).filter(Boolean))}t?.default_locale&&h(t.default_locale),b(String(t?.editorial_mode??`false`).toLowerCase()===`true`)},[t]);async function C(){try{await a(`/cms/admin/settings/general`,`PUT`,{locales:JSON.stringify(f),default_locale:m}),l(),X.success(`Locales saved`)}catch{X.error(`Could not save locales`)}}return n?(0,H.jsx)(zC,{}):(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(Q_,{children:(0,H.jsxs)(nv,{className:`flex items-center gap-4 py-2`,children:[(0,H.jsx)(`img`,{src:`/admin/plank-logo-w.svg`,alt:`Plank CMS`,className:`h-10 w-auto`}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`font-bold`,children:`Plank CMS by AM25`}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Version `,K4.version]})]})]})}),(0,H.jsxs)(`div`,{className:`border-b pb-4`,children:[(0,H.jsx)(`h2`,{className:`text-2xl font-semibold`,children:`Commons`}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`General settings that apply across the CMS.`})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Y,{htmlFor:`timezone`,children:`Timezone`}),(0,H.jsxs)(V_,{value:u,onValueChange:e=>{d(e),(async()=>{try{await r(`/cms/admin/settings/general`,`PUT`,{timezone:e}),l(),X.success(`Timezone saved`)}catch{X.error(`Could not save timezone`)}})()},children:[(0,H.jsx)(W_,{id:`timezone`,className:`w-full`,disabled:!S,children:(0,H.jsx)(U_,{})}),(0,H.jsx)(q_,{className:`max-h-72`,children:q4.map(e=>(0,H.jsx)(Y_,{value:e.value,children:e.label},e.value))})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Used to display dates and times across the admin panel.`}),i&&(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Saving…`})]})]}),(0,H.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 md:grid-cols-2`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{children:`Locales`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(Sw,{placeholder:`E.g. "en"`,value:g,onChange:e=>_(e.target.value),className:`h-9 w-full`,disabled:!S}),(0,H.jsx)(q,{variant:`outline`,className:`h-9`,disabled:!S,onClick:()=>{let e=g.trim().toLowerCase();e&&(f.includes(e)||p(t=>[...t,e]),_(``))},children:`Add`})]}),(0,H.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:f.map(e=>(0,H.jsx)(q,{variant:`ghost`,size:`sm`,onClick:()=>p(t=>t.filter(t=>t!==e)),disabled:!S,children:e.toUpperCase()},e))})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`default-locale`,children:`Default locale`}),(0,H.jsxs)(V_,{value:m,onValueChange:h,children:[(0,H.jsx)(W_,{id:`default-locale`,className:`w-full`,disabled:!S,children:(0,H.jsx)(U_,{})}),(0,H.jsx)(q_,{className:`max-h-72`,children:f.length===0?(0,H.jsx)(Y_,{value:m,children:m}):f.map(e=>(0,H.jsx)(Y_,{value:e,children:e.toUpperCase()},e))})]}),(0,H.jsx)(`div`,{className:`pt-2 flex justify-end`,children:(0,H.jsx)(q,{variant:`outline`,onClick:C,disabled:o||!S,children:o?`Saving…`:`Save`})})]})]}),(0,H.jsx)(x0,{}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(Y,{htmlFor:`editorial-mode`,children:`Editorial Mode`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Enables Editor and Viewer workflows for editorial review.`})]}),(0,H.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,H.jsx)(lD,{id:`editorial-mode`,checked:y,onCheckedChange:e=>{b(e),(async()=>{try{await s(`/cms/admin/settings/general`,`PUT`,{editorial_mode:String(e)}),l(),X.success(`Editorial Mode saved`)}catch{X.error(`Could not save Editorial Mode`)}})()},disabled:!S}),c&&(0,H.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Saving…`})]})]})]})}function Y4(){let{user:e}=_a(),{data:t,loading:n}=fs(`/cms/admin/settings/preview`),{request:r,loading:i}=xw(),a=e?.permissions??[],o=a.includes(`*`)||a.includes(`settings:overview:write`),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(`slug`);(0,v.useEffect)(()=>{let e=_D(t);c(e.enabled),u(e.syncUrl),f(e.urlTemplate),m(e.slugField)},[t]);async function h(e){e.preventDefault();try{await r(`/cms/admin/settings/preview`,`PUT`,{enabled:String(s),sync_url:l.trim(),url_template:d.trim(),slug_field:p.trim()||`slug`}),X.success(`Preview settings saved`)}catch{X.error(`Could not save preview settings`)}}return n?(0,H.jsx)(zC,{}):(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsxs)(`div`,{className:`border-b pb-4`,children:[(0,H.jsx)(`h2`,{className:`text-2xl font-semibold`,children:`Live Preview`}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure a single frontend preview target that Plank can open and sync after saves.`})]}),(0,H.jsxs)(`form`,{onSubmit:h,className:`space-y-6`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(Y,{htmlFor:`preview-enabled`,children:`Enable preview integration`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Shows the preview action in the entry editor and syncs a connected frontend tab.`})]}),(0,H.jsx)(lD,{id:`preview-enabled`,checked:s,onCheckedChange:c,disabled:!o})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`preview-sync-url`,children:`Preview sync webhook URL`}),(0,H.jsx)(Sw,{id:`preview-sync-url`,value:l,onChange:e=>u(e.target.value),placeholder:`https://frontend.example.com/api/plank/preview-sync`,disabled:!o}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. When set, Plank will POST a preview sync payload to this endpoint on each entry save while preview is enabled.`})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`preview-url-template`,children:`Preview URL template`}),(0,H.jsx)(Sw,{id:`preview-url-template`,value:d,onChange:e=>f(e.target.value),placeholder:`https://frontend.example.com/draft/{contentType}/{slug}`,disabled:!o}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Supported placeholders: `,`{contentType}`,`, `,`{entryId}`,`, `,`{slug}`,`, `,`{status}`,`. The final result must be an absolute URL.`]})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`preview-slug-field`,children:`Slug field`}),(0,H.jsx)(Sw,{id:`preview-slug-field`,value:p,onChange:e=>m(e.target.value),placeholder:`slug`,disabled:!o}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Used when the template contains `,`{slug}`,`. Defaults to `,(0,H.jsx)(`code`,{children:`slug`}),`.`]})]}),(0,H.jsxs)(`div`,{className:`rounded-md border border-dashed p-4 text-sm text-muted-foreground`,children:[`Example: `,(0,H.jsxs)(`code`,{children:[`https://frontend.example.com/draft/`,`{contentType}`,`/`,`{slug}`]})]}),(0,H.jsx)(`div`,{className:`flex justify-end`,children:(0,H.jsx)(q,{type:`submit`,variant:`outline`,disabled:i||!o,children:i?`Saving…`:`Save`})})]})]})}function X4(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(ds,{children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Overview`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`General configuration for your CMS instance.`})]}),(0,H.jsxs)(_E,{defaultValue:`general`,className:`mt-24`,children:[(0,H.jsxs)(vE,{className:`mb-6`,children:[(0,H.jsx)(yE,{value:`general`,children:`General`}),(0,H.jsx)(yE,{value:`preview`,children:`Preview`}),(0,H.jsx)(yE,{value:`media`,children:`Media Library`})]}),(0,H.jsx)(bE,{value:`general`,children:(0,H.jsx)(J4,{})}),(0,H.jsx)(bE,{value:`preview`,children:(0,H.jsx)(Y4,{})}),(0,H.jsx)(bE,{value:`media`,children:(0,H.jsx)(G4,{})})]})]})}var Z4=[{key:`content-types`,label:`Content Types`,actions:[`read`,`write`,`delete`]},{key:`entries`,label:`Entries`,actions:[`read`,`write`,`delete`]},{key:`media`,label:`Media`,actions:[`read`,`write`,`delete`]},{key:`addons`,label:`Add-ons`,actions:[`read`,`write`]},{key:`settings:overview`,label:`Settings / Overview`,actions:[`read`,`write`]},{key:`settings:users`,label:`Settings / Users`,actions:[`read`,`write`,`delete`]},{key:`settings:roles`,label:`Settings / Roles`,actions:[`read`,`write`]},{key:`settings:api-tokens`,label:`Settings / API Tokens`,actions:[`read`,`write`,`delete`]},{key:`settings:webhooks`,label:`Settings / Webhooks`,actions:[`read`,`write`,`delete`]}],Q4=[{key:`read`,label:`R`},{key:`write`,label:`W`},{key:`delete`,label:`D`}],$4=[`Super Admin`,`Admin`,`Editor`,`Contributor`],e3=`w-44 min-w-44 max-w-44`;function t3(e){return Object.fromEntries(e.map(e=>[e.id,new Set(e.permissions)]))}function n3(e,t){return e.includes(t)}function r3(){let{user:e}=_a(),{editorialMode:t}=Sa(),{data:n,loading:r,refetch:i}=fs(`/cms/admin/roles`),{request:a,loading:o}=xw(),[s,c]=(0,v.useState)({}),[l,u]=(0,v.useState)(new Set),[d,f]=(0,v.useState)(!1);(0,v.useEffect)(()=>{n&&c(t3(n))},[n]);function p(e,t){c(n=>{let r=new Set(n[e]);return r.has(t)?r.delete(t):r.add(t),{...n,[e]:r}}),u(t=>new Set(t).add(e))}async function m(e){try{await a(`/cms/admin/roles/${e.id}`,`PUT`,{permissions:Array.from(s[e.id]??[])}),u(t=>{let n=new Set(t);return n.delete(e.id),n}),X.success(`Permissions saved`)}catch{X.error(`Could not save permissions`)}}async function h(){try{await a(`/cms/admin/roles/reset`,`POST`),f(!1),u(new Set),i(),X.success(`Permissions reset to defaults`)}catch{X.error(`Could not reset permissions`)}}let g=e?.role===`Super Admin`,_=(n??[]).filter(e=>e.name!==`Super Admin`).filter(e=>e.name!==`Viewer`).filter(e=>t||![`Editor`,`Viewer`].includes(e.name)).sort((e,t)=>{let n=$4.indexOf(e.name),r=$4.indexOf(t.name),i=n===-1?2**53-1:n,a=r===-1?2**53-1:r;return i===a?e.name.localeCompare(t.name):i-a}),y=(n??[]).find(e=>e.name===`Super Admin`);return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Roles`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Configure what each role can do across the CMS.`})]}),g&&(0,H.jsxs)(q,{variant:`outline`,onClick:()=>f(!0),children:[(0,H.jsx)(Bo,{className:`size-4`}),`Reset defaults`]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsx)(`div`,{className:`rounded-md border`,children:(0,H.jsxs)(BC,{children:[(0,H.jsxs)(VC,{children:[(0,H.jsxs)(UC,{className:`hover:bg-transparent`,children:[(0,H.jsx)(WC,{className:`w-40`,rowSpan:2}),y&&(0,H.jsx)(WC,{colSpan:3,className:`border-l text-center ${e3}`,children:y.name}),_.map(e=>(0,H.jsx)(WC,{colSpan:3,className:`border-l ${e3}`,children:(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,H.jsx)(`span`,{children:e.name}),(0,H.jsxs)(q,{size:`sm`,variant:l.has(e.id)?`default`:`ghost`,className:`h-6 px-2 text-xs`,disabled:!l.has(e.id)||o,onClick:()=>m(e),children:[(0,H.jsx)(Vo,{className:`size-3`}),`Save`]})]})},e.id))]}),(0,H.jsxs)(UC,{className:`hover:bg-transparent`,children:[y&&Q4.map((e,t)=>(0,H.jsx)(WC,{className:`w-12 text-center font-normal ${t===0?`border-l`:``}`,children:e.label},e.key)),_.map(e=>Q4.map((t,n)=>(0,H.jsx)(WC,{className:`w-12 text-center font-normal ${n===0?`border-l`:``}`,children:t.label},`${e.id}-${t.key}`)))]})]}),(0,H.jsx)(HC,{children:r?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:99,className:`h-24`,children:(0,H.jsx)(zC,{className:`mx-auto size-5`})})}):Z4.map(({key:e,label:t,actions:n})=>(0,H.jsxs)(UC,{children:[(0,H.jsx)(GC,{className:`font-medium`,children:t}),y&&Q4.map((e,t)=>(0,H.jsx)(GC,{className:`text-center ${t===0?`border-l`:``}`,children:n3(n,e.key)?(0,H.jsx)(PT,{checked:!0,disabled:!0}):(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},e.key)),_.map(t=>Q4.map((r,i)=>{let a=n3(n,r.key),o=`${e}:${r.key}`;return(0,H.jsx)(GC,{className:`text-center ${i===0?`border-l`:``}`,children:a?(0,H.jsx)(PT,{checked:s[t.id]?.has(o)??!1,onCheckedChange:()=>p(t.id,o)}):(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},`${t.id}-${r.key}`)}))]},e))})]})}),t&&(0,H.jsxs)(`div`,{className:`mt-3 rounded-md border bg-muted/30 p-3`,children:[(0,H.jsx)(`p`,{className:`text-sm font-medium`,children:`Viewer`}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Read-only role intended for external reviewers (for example, clients validating content before approval).`})]}),t&&(0,H.jsx)(`p`,{className:`mt-3 text-sm text-muted-foreground`,children:`Note: Editor and Contributor can share the same base permissions, but their effective scope is different in the content layer. Contributors are restricted to their own entries for certain actions, while Editors can operate on entries more broadly depending on the configured rules.`}),(0,H.jsx)(Jh,{open:d,onOpenChange:f,children:(0,H.jsxs)(Qh,{className:`sm:max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Reset to defaults`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This will restore all role permissions to their original configuration. Any custom changes will be lost.`}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>f(!1),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:h,disabled:o,children:o?`Resetting…`:`Reset`})]})]})})]})]})}var i3={"super admin":`default`,admin:`secondary`,contributor:`outline`,editor:`secondary`,viewer:`outline`};function a3({roleId:e,roleName:t,roles:n}){let r=n.find(t=>t.id===e),i=t??r?.name??e;return(0,H.jsx)(RC,{variant:i3[i.toLowerCase()]??`secondary`,children:i})}function o3({user:e,currentUserId:t,currentUserRole:n,onEdit:r,onDelete:i}){let a=e.id===t,o=(e.role_name??``).toLowerCase()===`super admin`,s=n.toLowerCase()===`super admin`;return(0,H.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,H.jsx)(q,{size:`icon`,variant:`ghost`,className:`flex size-7 items-center justify-center rounded text-muted-foreground hover:bg-accent hover:text-accent-foreground`,disabled:o&&!a&&!s,onClick:()=>r(e),children:(0,H.jsx)(Io,{className:`size-3.5`})}),(0,H.jsx)(q,{size:`icon`,variant:`ghost`,className:`flex size-8 items-center justify-center rounded text-destructive hover:bg-destructive/10 hover:text-destructive`,disabled:a||o,onClick:()=>i(e),children:(0,H.jsx)(Zo,{className:`size-3.5`})})]})}var s3={email:``,password:``,firstName:``,lastName:``,roleId:``,enabled:!0};function c3(){let{user:e,updateUser:t}=_a(),{editorialMode:n}=Sa(),{data:r,loading:i,refetch:a}=fs(`/cms/admin/users`),{data:o,loading:s}=fs(`/cms/admin/roles`),c=i||s,{request:l,loading:u,error:d}=xw(),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(s3),[g,_]=(0,v.useState)(null),[y,b]=(0,v.useState)({email:``,roleId:``,firstName:``,lastName:``,enabled:!0}),[x,S]=(0,v.useState)(null),C=o??[],w=e?.role?.toLowerCase()===`super admin`,T=C.filter(e=>n||![`Editor`,`Viewer`].includes(e.name)),E=w?T:T.filter(e=>e.name.toLowerCase()!==`super admin`),D=(0,v.useMemo)(()=>[{id:`name`,header:`Name`,cell:({row:e})=>{let{first_name:t,last_name:n}=e.original;return!t&&!n?(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}):(0,H.jsx)(`span`,{className:`font-bold`,children:[t,n].filter(Boolean).join(` `)})}},{accessorKey:`email`,header:`Email`},{accessorKey:`role_id`,header:`Role`,cell:({row:e,getValue:t})=>(0,H.jsx)(a3,{roleId:t(),roleName:e.original.role_name,roles:C})},{accessorKey:`enabled`,header:`Enabled`,cell:({row:t,getValue:n})=>(0,H.jsx)(lD,{checked:!!(n()??!0),onCheckedChange:async e=>{try{await l(`/cms/admin/users/${t.original.id}`,`PUT`,{enabled:e}),a(),X.success(`User updated`)}catch{X.error(`Could not update user`)}},disabled:t.original.id===e?.id||u})},{id:`actions`,header:``,cell:({row:t})=>(0,H.jsx)(o3,{user:t.original,currentUserId:e?.id??``,currentUserRole:e?.role??``,onEdit:e=>{_(e),b({email:e.email,roleId:e.role_id,firstName:e.first_name??``,lastName:e.last_name??``,enabled:e.enabled??!0})},onDelete:S})}],[C,e?.id,e?.role,l,a,u]),O=P4({data:(0,v.useMemo)(()=>[...r??[]].sort((e,t)=>{let n=[e.first_name,e.last_name].filter(Boolean).join(` `)||e.email,r=[t.first_name,t.last_name].filter(Boolean).join(` `)||t.email;return n.localeCompare(r)}),[r]),columns:D,getCoreRowModel:k4()});async function k(e){e.preventDefault();try{await l(`/cms/admin/users`,`POST`,m),p(!1),h(s3),a(),X.success(`User created`)}catch{X.error(`Could not create user`)}}async function A(n){n.preventDefault();try{await l(`/cms/admin/users/${g.id}`,`PUT`,y),g.id===e?.id&&t({email:y.email,firstName:y.firstName||null,lastName:y.lastName||null}),_(null),a(),X.success(`User updated`)}catch{X.error(`Could not update user`)}}async function j(){try{await l(`/cms/admin/users/${x.id}`,`DELETE`),S(null),a(),X.success(`User deleted`)}catch{X.error(`Could not delete user`)}}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Users`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Manage who has access to the admin panel.`})]}),(0,H.jsxs)(q,{onClick:()=>p(!0),children:[(0,H.jsx)(Lo,{className:`size-4`}),`New user`]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsx)(`div`,{className:`rounded-md border`,children:(0,H.jsxs)(BC,{children:[(0,H.jsx)(VC,{className:`font-bold uppercase`,children:O.getHeaderGroups().map(e=>(0,H.jsx)(UC,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:A4(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(HC,{children:c?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:D.length,className:`h-24`,children:(0,H.jsx)(zC,{className:`mx-auto size-5`})})}):O.getRowModel().rows.length===0?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:D.length,className:`h-24 text-center text-muted-foreground`,children:`No users found.`})}):O.getRowModel().rows.map(e=>(0,H.jsx)(UC,{children:e.getVisibleCells().map(e=>(0,H.jsx)(GC,{className:`px-4 py-3`,children:A4(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(Jh,{open:f,onOpenChange:p,children:(0,H.jsxs)(Qh,{className:`sm:max-w-md`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`New user`})}),(0,H.jsxs)(`form`,{id:`create-user-form`,onSubmit:k,className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`c-email`,children:`Email`}),(0,H.jsx)(Sw,{id:`c-email`,type:`email`,placeholder:`user@example.com`,value:m.email,onChange:e=>h(t=>({...t,email:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`c-password`,children:`Password`}),(0,H.jsx)(Sw,{id:`c-password`,type:`password`,placeholder:`Min. 8 characters`,value:m.password,onChange:e=>h(t=>({...t,password:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`c-fname`,children:`First name`}),(0,H.jsx)(Sw,{id:`c-fname`,value:m.firstName,onChange:e=>h(t=>({...t,firstName:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`c-lname`,children:`Last name`}),(0,H.jsx)(Sw,{id:`c-lname`,value:m.lastName,onChange:e=>h(t=>({...t,lastName:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`c-role`,children:`Role`}),(0,H.jsxs)(V_,{value:m.roleId,onValueChange:e=>h(t=>({...t,roleId:e})),children:[(0,H.jsx)(W_,{id:`c-role`,children:(0,H.jsx)(U_,{placeholder:`Select a role`})}),(0,H.jsx)(q_,{children:E.map(e=>(0,H.jsx)(Y_,{value:e.id,children:e.name.charAt(0).toUpperCase()+e.name.slice(1)},e.id))})]})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,H.jsx)(Y,{htmlFor:`c-enabled`,children:`Enabled`}),(0,H.jsx)(lD,{id:`c-enabled`,checked:m.enabled,onCheckedChange:e=>h(t=>({...t,enabled:e}))})]}),d&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:d})]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,type:`button`,onClick:()=>p(!1),children:`Cancel`}),(0,H.jsx)(q,{type:`submit`,form:`create-user-form`,disabled:u,children:u?`Creating…`:`Create user`})]})]})}),(0,H.jsx)(Jh,{open:!!g,onOpenChange:e=>{e||_(null)},children:(0,H.jsxs)(Qh,{className:`sm:max-w-md`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Edit user`})}),(0,H.jsxs)(`form`,{id:`edit-user-form`,onSubmit:A,className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`e-email`,children:`Email`}),(0,H.jsx)(Sw,{id:`e-email`,type:`email`,value:y.email,onChange:e=>b(t=>({...t,email:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`e-fname`,children:`First name`}),(0,H.jsx)(Sw,{id:`e-fname`,value:y.firstName,onChange:e=>b(t=>({...t,firstName:e.target.value}))})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`e-lname`,children:`Last name`}),(0,H.jsx)(Sw,{id:`e-lname`,value:y.lastName,onChange:e=>b(t=>({...t,lastName:e.target.value}))})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`e-role`,children:`Role`}),(0,H.jsxs)(V_,{value:y.roleId,onValueChange:e=>b(t=>({...t,roleId:e})),children:[(0,H.jsx)(W_,{id:`e-role`,children:(0,H.jsx)(U_,{placeholder:`Select a role`})}),(0,H.jsx)(q_,{children:E.map(e=>(0,H.jsx)(Y_,{value:e.id,children:e.name.charAt(0).toUpperCase()+e.name.slice(1)},e.id))})]})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,H.jsx)(Y,{htmlFor:`e-enabled`,children:`Enabled`}),(0,H.jsx)(lD,{id:`e-enabled`,checked:y.enabled,onCheckedChange:e=>b(t=>({...t,enabled:e}))})]}),d&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:d})]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,type:`button`,onClick:()=>_(null),children:`Cancel`}),(0,H.jsx)(q,{type:`submit`,form:`edit-user-form`,disabled:u,children:u?`Saving…`:`Save changes`})]})]})}),(0,H.jsx)(Jh,{open:!!x,onOpenChange:e=>{e||S(null)},children:(0,H.jsxs)(Qh,{className:`sm:max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Delete user`})}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:x?.email}),`? This action cannot be undone.`]}),d&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:d}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>S(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:j,disabled:u,children:u?`Deleting…`:`Delete`})]})]})})]})]})}var l3=[{value:`entry.published`,label:`Entry published`},{value:`entry.unpublished`,label:`Entry unpublished`},{value:`entry.created`,label:`Entry created`},{value:`entry.updated`,label:`Entry updated`},{value:`entry.deleted`,label:`Entry deleted`}],u3={name:``,url:``,events:[]};function d3(){let{user:e}=_a(),{data:t,loading:n,refetch:r}=fs(`/cms/admin/webhooks`),{request:i,loading:a,error:o}=xw(),s=e?.permissions??[],c=s.includes(`*`)||s.includes(`settings:webhooks:write`),l=s.includes(`*`)||s.includes(`settings:webhooks:delete`),[u,d]=(0,v.useState)(!1),[f,p]=(0,v.useState)(u3),[m,h]=(0,v.useState)(null),g=[{accessorKey:`name`,header:`Name`},{accessorKey:`url`,header:`URL`,cell:({getValue:e})=>(0,H.jsx)(`span`,{className:`font-mono text-xs text-muted-foreground truncate max-w-xs block`,children:e()})},{accessorKey:`events`,header:`Events`,cell:({getValue:e})=>(0,H.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e().map(e=>(0,H.jsx)(RC,{variant:`secondary`,className:`text-xs font-mono`,children:e},e))})},{accessorKey:`created_at`,header:`Created`,cell:({getValue:e})=>new Date(e()).toLocaleDateString(`en-US`,{year:`numeric`,month:`short`,day:`numeric`})},{id:`actions`,header:``,cell:({row:e})=>l?(0,H.jsx)(q,{size:`icon`,variant:`ghost`,className:`size-8 text-destructive hover:text-destructive`,onClick:()=>h(e.original),children:(0,H.jsx)(Zo,{className:`size-3.5`})}):null}],_=P4({data:t??[],columns:g,getCoreRowModel:k4()});function y(e){p(t=>({...t,events:t.events.includes(e)?t.events.filter(t=>t!==e):[...t.events,e]}))}async function b(e){e.preventDefault();try{await i(`/cms/admin/webhooks`,`POST`,f),d(!1),p(u3),r(),X.success(`Webhook saved`)}catch{X.error(`Could not save webhook`)}}async function x(){try{await i(`/cms/admin/webhooks/${m.id}`,`DELETE`),h(null),r(),X.success(`Webhook deleted`)}catch{X.error(`Could not delete webhook`)}}return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(ds,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Webhooks`}),(0,H.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Notify external services when content events occur.`})]}),(0,H.jsxs)(q,{onClick:()=>d(!0),disabled:!c,children:[(0,H.jsx)(Lo,{className:`size-4`}),`New webhook`]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[(0,H.jsx)(`div`,{className:`rounded-md border`,children:(0,H.jsxs)(BC,{children:[(0,H.jsx)(VC,{className:`font-bold uppercase`,children:_.getHeaderGroups().map(e=>(0,H.jsx)(UC,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(WC,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:A4(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(HC,{children:n?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:g.length,className:`h-24`,children:(0,H.jsx)(zC,{className:`mx-auto size-5`})})}):_.getRowModel().rows.length===0?(0,H.jsx)(UC,{children:(0,H.jsx)(GC,{colSpan:g.length,className:`h-24 text-center text-muted-foreground`,children:`No webhooks yet.`})}):_.getRowModel().rows.map(e=>(0,H.jsx)(UC,{children:e.getVisibleCells().map(e=>(0,H.jsx)(GC,{className:`px-4 py-3`,children:A4(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(Jh,{open:u,onOpenChange:e=>{e||(d(!1),p(u3))},children:(0,H.jsxs)(Qh,{className:`sm:max-w-md`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`New webhook`})}),(0,H.jsxs)(`form`,{id:`create-webhook-form`,onSubmit:b,className:`flex flex-col gap-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`webhook-name`,children:`Name`}),(0,H.jsx)(Sw,{id:`webhook-name`,placeholder:`e.g. Dokploy deploy`,value:f.name,onChange:e=>p(t=>({...t,name:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`webhook-url`,children:`URL`}),(0,H.jsx)(Sw,{id:`webhook-url`,type:`url`,placeholder:`https://...`,value:f.url,onChange:e=>p(t=>({...t,url:e.target.value})),required:!0})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,H.jsx)(Y,{children:`Events`}),l3.map(({value:e,label:t})=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(PT,{id:`event-${e}`,checked:f.events.includes(e),onCheckedChange:()=>y(e)}),(0,H.jsxs)(`label`,{htmlFor:`event-${e}`,className:`text-sm cursor-pointer`,children:[t,(0,H.jsx)(`span`,{className:`ml-2 font-mono text-xs text-muted-foreground`,children:e})]})]},e))]}),o&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:o})]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,type:`button`,onClick:()=>{d(!1),p(u3)},children:`Cancel`}),(0,H.jsx)(q,{type:`submit`,form:`create-webhook-form`,disabled:a||f.events.length===0||!c,children:a?`Creating…`:`Create webhook`})]})]})}),(0,H.jsx)(Jh,{open:!!m,onOpenChange:e=>{e||h(null)},children:(0,H.jsxs)(Qh,{className:`sm:max-w-sm`,children:[(0,H.jsx)($h,{children:(0,H.jsx)(tg,{children:`Delete webhook`})}),(0,H.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,H.jsx)(`span`,{className:`font-medium text-foreground`,children:m?.name}),`? It will stop receiving events immediately.`]}),(0,H.jsxs)(eg,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>h(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:x,disabled:a||!l,children:a?`Deleting…`:`Delete`})]})]})})]})]})}function f3({items:e}){let{pathname:t}=lr();function n(e){return t===e||t.startsWith(e+`/`)}return(0,H.jsx)(`nav`,{className:`flex flex-col gap-0.5 p-2`,children:e.map(({label:e,to:t,icon:r})=>(0,H.jsxs)(Ji,{to:t,className:[`flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-sm transition-colors`,n(t)?`bg-sidebar-accent text-sidebar-accent-foreground font-medium`:`text-sidebar-foreground hover:bg-sidebar-accent/50 hover:text-sidebar-accent-foreground`].join(` `),children:[r&&(0,H.jsx)(r,{className:`size-3.5 shrink-0`}),(0,H.jsx)(`span`,{className:`truncate`,children:e})]},t))})}function p3(){let{data:e,refetch:t}=fs(`/cms/admin/addons/registry`);(0,v.useEffect)(()=>{function e(){t()}return window.addEventListener(rD,e),()=>window.removeEventListener(rD,e)},[t]);let n=(e?.addons??[]).filter(aD),r=new Map((e?.slots.addonsSections??[]).map(e=>[e.addonId,e.title])),i=[{label:`Overview`,to:`/add-ons/overview`,icon:Ia},...n.map(e=>({label:r.get(e.id)??e.name,to:`/add-ons/${e.id}`,icon:Fo}))];return(0,H.jsxs)(`div`,{className:`flex flex-col`,children:[(0,H.jsx)(`div`,{className:`border-b border-sidebar-border px-4 py-3`,children:(0,H.jsx)(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wider`,children:`Add-ons`})}),(0,H.jsx)(f3,{items:i})]})}function m3(e){let{setContent:t}=us();(0,v.useEffect)(()=>(t(e),()=>t(null)),[])}function h3(){return m3((0,H.jsx)(p3,{})),(0,H.jsx)($r,{})}var g3=[{to:`/`,icon:Co,label:`Dashboard`,permission:null},{to:`/content`,icon:ao,label:`Content`,permission:null},{to:`/media`,icon:vo,label:`Media`,permission:null},{to:`/content-types`,icon:So,label:`Content Types`,permission:`content-types:write`},{to:`/add-ons`,icon:Ro,label:`Add-ons`,permission:`addons:read`},{to:`/settings`,icon:Uo,label:`Settings`,permission:`settings:overview:read`}];function _3(e){let[t=0,n=0,r=0]=e.trim().replace(/^v/i,``).split(`-`)[0].split(`.`).map(e=>Number.parseInt(e,10)||0);return[t,n,r]}function v3(e,t){if(!t)return 0;let[n,r,i]=_3(e),[a,o,s]=_3(t);return a===n?Math.abs(o===r?s-i:o-r):Math.abs(a-n)*100+Math.abs(o-r)}function y3(e){return e>=5?{panel:`border-rose-600/20 bg-[#370815] text-rose-600`,label:`text-rose-600/80`,button:`border-rose-600/20 bg-[#370815] text-rose-600 hover:bg-[#45101b] hover:text-rose-500`}:e>=3?{panel:`border-amber-400/20 bg-[#3b2d08] text-amber-400`,label:`text-amber-400/80`,button:`border-amber-400/20 bg-[#3b2d08] text-amber-400 hover:bg-[#4a3809] hover:text-amber-300`}:{panel:`border-emerald-500/20 bg-[#082019] text-emerald-500`,label:`text-emerald-500/80`,button:`border-emerald-500/20 bg-[#082019] text-emerald-500 hover:bg-[#0d2c23] hover:text-emerald-400`}}function b3(){let{user:e,logout:t}=_a(),{pathname:n}=lr(),r=fr(),{content:i}=us(),{data:a}=fs(`/cms/admin/content-types`),{data:o}=fs(`/cms/admin/version`),s=(a??[]).filter(e=>e.kind===`collection`),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(!1),f=y3(o?v3(o.currentVersion,o.latestVersion):0);function p(e){return e===`/`?n===`/`:n===e||n.startsWith(e+`/`)}let m=e?.permissions??[],h=e?.role?.toLowerCase()===`viewer`,g=g3.filter(({to:e,permission:t})=>h?e===`/content`:!t||m.includes(`*`)||m.includes(t));async function _(){if(o?.updateCommand)try{await navigator.clipboard.writeText(o.updateCommand),d(!0),X.success(`Update command copied`)}catch{X.error(`Could not copy the update command`)}}function y(e){l(e),e||d(!1)}return(0,H.jsx)(bp,{delayDuration:300,children:(0,H.jsxs)(`div`,{className:`flex h-svh overflow-hidden bg-background`,children:[(0,H.jsxs)(`aside`,{className:`flex h-full w-14 shrink-0 flex-col items-center gap-4 border-r border-sidebar-border bg-sidebar py-4`,children:[(0,H.jsx)(Ji,{to:`/`,children:(0,H.jsx)(`img`,{src:`/admin/plank-logo-w.svg`,alt:`Plank CMS`,className:`px-3 pb-4`})}),(e?.permissions?.includes(`*`)||e?.permissions?.includes(`entries:write`))&&s.length>0&&(0,H.jsx)(`div`,{className:`mt-4 px-3`,children:(0,H.jsx)(q,{size:`icon`,onClick:()=>{let e=s.find(e=>e.isDefault)??s[0];e&&r(`/content/${e.slug}/new`)},children:(0,H.jsx)(Lo,{className:`size-4`})})}),(0,H.jsx)(`nav`,{className:`flex flex-1 flex-col items-center gap-1 pt-2`,children:g.map(({to:e,icon:t,label:n})=>(0,H.jsxs)(xp,{children:[(0,H.jsx)(Sp,{asChild:!0,children:(0,H.jsx)(q,{asChild:!0,size:`icon`,variant:p(e)?`secondary`:`ghost`,children:(0,H.jsx)(Ji,{to:e,end:e===`/`,children:(0,H.jsx)(t,{className:`size-4`})})})}),(0,H.jsx)(Cp,{side:`right`,children:n})]},e))}),o?.updateAvailable&&(0,H.jsx)(`div`,{className:`px-3`,children:(0,H.jsxs)(Jh,{open:c,onOpenChange:y,children:[(0,H.jsxs)(xp,{children:[(0,H.jsx)(Sp,{asChild:!0,children:(0,H.jsx)(q,{size:`icon`,variant:`outline`,className:f.button,onClick:()=>l(!0),children:(0,H.jsx)(Pa,{className:`size-4`})})}),(0,H.jsxs)(Cp,{side:`right`,children:[`Update to `,o.latestVersion]})]}),(0,H.jsxs)(Qh,{className:`max-w-xl`,children:[(0,H.jsxs)($h,{children:[(0,H.jsx)(tg,{children:`Update available`}),(0,H.jsxs)(ng,{children:[`Plank `,o.latestVersion,` is ready. Run the command below in your project terminal to update your installation.`]})]}),(0,H.jsxs)(`div`,{className:`space-y-5`,children:[(0,H.jsxs)(`div`,{className:`grid gap-3 rounded-lg border p-4 sm:grid-cols-2 ${f.panel}`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-xs font-medium uppercase ${f.label}`,children:`Current version`}),(0,H.jsx)(`p`,{className:`mt-1 text-base font-semibold`,children:o.currentVersion})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`text-xs font-medium uppercase ${f.label}`,children:`Latest version`}),(0,H.jsx)(`p`,{className:`mt-1 text-base font-semibold`,children:o.latestVersion})]})]}),(0,H.jsxs)(`div`,{className:`space-y-2`,children:[(0,H.jsx)(Y,{htmlFor:`plank-update-command`,children:`Update command`}),(0,H.jsxs)(`div`,{className:`flex gap-2`,children:[(0,H.jsx)(Sw,{id:`plank-update-command`,value:o.updateCommand,readOnly:!0,className:`font-mono text-sm`}),(0,H.jsxs)(q,{type:`button`,variant:`outline`,onClick:_,children:[u?(0,H.jsx)(Ba,{className:`size-4`}):(0,H.jsx)(Qa,{className:`size-4`}),u?`Copied`:`Copy`]})]})]}),(0,H.jsx)(`div`,{className:`flex flex-col gap-2 sm:flex-row`,children:(0,H.jsx)(q,{asChild:!0,variant:`outline`,children:(0,H.jsxs)(`a`,{href:o.changelogUrl,target:`_blank`,rel:`noreferrer`,children:[`View changelog`,(0,H.jsx)(Na,{className:`size-4`})]})})})]})]})]})}),(0,H.jsxs)(VT,{children:[(0,H.jsx)(HT,{asChild:!0,children:(0,H.jsx)(q,{variant:`ghost`,size:`icon`,className:`rounded-full`,children:(0,H.jsx)(mw,{avatarUrl:e?.avatarUrl,firstName:e?.firstName,lastName:e?.lastName,email:e?.email})})}),(0,H.jsxs)(GT,{side:`right`,align:`end`,className:`w-52`,children:[(0,H.jsxs)(JT,{className:`font-normal`,children:[(0,H.jsx)(`p`,{className:`truncate text-sm font-medium`,children:e?.email}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground capitalize`,children:e?.role})]}),(0,H.jsx)(qT,{}),(0,H.jsxs)(KT,{onClick:()=>r(`/profile`),children:[(0,H.jsx)(rs,{}),`Profile`]}),(0,H.jsx)(qT,{}),(0,H.jsxs)(KT,{onClick:t,className:`text-destructive focus:text-destructive`,children:[(0,H.jsx)(jo,{}),`Log out`]})]})]})]}),(0,H.jsx)(`main`,{className:`flex-1 overflow-y-auto`,children:(0,H.jsx)(`div`,{className:`w-full mx-auto px-4 mb-16 ${i?`max-w-7xl`:`max-w-9xl`}`,children:(0,H.jsx)($r,{})})}),i&&(0,H.jsx)(`aside`,{className:`flex h-full w-64 shrink-0 flex-col border-l border-sidebar-border bg-background`,children:i})]})})}function x3(){return(0,H.jsx)(ls,{children:(0,H.jsx)(b3,{})})}function S3(){let{pathname:e}=lr(),{user:t}=_a(),{data:n,loading:r,error:i,refetch:a}=fs(`/cms/admin/content-types`),{request:o}=xw(),s=t?.permissions??[],c=s.includes(`*`)||s.includes(`content-types:write`);async function l(e,t){e.preventDefault(),e.stopPropagation();try{await o(`/cms/admin/content-types/${t}/default`,`PUT`),a(),X.success(`Default content type updated`)}catch{X.error(`Could not update default`)}}function u(t){return e===`/content/${t}`||e.startsWith(`/content/${t}/`)}let d=(n??[]).filter(e=>e.kind===`collection`),f=(n??[]).filter(e=>e.kind===`single`);return(0,H.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,H.jsx)(`div`,{className:`shrink-0 border-b border-sidebar-border px-4 py-3`,children:(0,H.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:`Content`})}),r&&(0,H.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,H.jsx)(zC,{className:`size-4`})}),i&&(0,H.jsx)(`p`,{className:`px-4 py-3 text-xs text-destructive`,children:i}),!r&&!i&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,H.jsx)(`div`,{className:`shrink-0 px-4 py-2`,children:(0,H.jsx)(`p`,{className:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground/60`,children:`Collection Types`})}),(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:d.length===0?(0,H.jsx)(`p`,{className:`px-4 pb-3 text-xs text-muted-foreground`,children:`No collection types yet.`}):(0,H.jsx)(`nav`,{className:`flex flex-col gap-0.5 px-2 pb-2`,children:d.map(e=>(0,H.jsxs)(Ji,{to:`/content/${e.slug}`,className:[`group flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-sm transition-colors`,u(e.slug)?`bg-sidebar-accent text-sidebar-accent-foreground font-medium`:`text-sidebar-foreground hover:bg-sidebar-accent/50 hover:text-sidebar-accent-foreground`].join(` `),children:[(0,H.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),c&&(0,H.jsx)(`button`,{type:`button`,title:e.isDefault?`Default content type`:`Set as default`,onClick:t=>l(t,e.slug),className:[`shrink-0 rounded transition-colors`,e.isDefault?`text-amber-400`:`text-transparent group-hover:text-muted-foreground/40 hover:!text-amber-400`].join(` `),children:(0,H.jsx)(Ko,{className:`size-3.5 ${e.isDefault?`fill-amber-400`:``}`})})]},e.slug))})})]}),(0,H.jsx)(`div`,{className:`shrink-0 border-t border-sidebar-border`}),(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,H.jsx)(`div`,{className:`shrink-0 px-4 py-2`,children:(0,H.jsx)(`p`,{className:`text-[11px] font-medium uppercase tracking-wider text-muted-foreground/60`,children:`Single Types`})}),(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:f.length===0?(0,H.jsx)(`p`,{className:`px-4 pb-3 text-xs text-muted-foreground`,children:`No single types yet.`}):(0,H.jsx)(`nav`,{className:`flex flex-col gap-0.5 px-2 pb-2`,children:f.map(e=>(0,H.jsx)(Ji,{to:`/content/${e.slug}`,className:[`group flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-sm transition-colors`,u(e.slug)?`bg-sidebar-accent text-sidebar-accent-foreground font-medium`:`text-sidebar-foreground hover:bg-sidebar-accent/50 hover:text-sidebar-accent-foreground`].join(` `),children:(0,H.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name})},e.slug))})})]})]})]})}function C3(){return m3((0,H.jsx)(S3,{})),(0,H.jsx)($r,{})}function w3(){let e=fr(),{pathname:t}=lr(),{data:n,loading:r,error:i,refetch:a}=fs(`/cms/admin/content-types`);(0,v.useEffect)(()=>(window.addEventListener(`plank:content-types-changed`,a),()=>window.removeEventListener(`plank:content-types-changed`,a)),[a]);function o(e){let n=`/content-types/${e}`;return t===n||t.startsWith(n+`/`)}return(0,H.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,H.jsx)(`div`,{className:`border-b border-sidebar-border px-4 py-3`,children:(0,H.jsx)(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wider`,children:`Content Types`})}),(0,H.jsxs)(`div`,{className:`flex-1 overflow-y-auto`,children:[r&&(0,H.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,H.jsx)(zC,{className:`size-4`})}),i&&(0,H.jsx)(`p`,{className:`px-4 py-3 text-xs text-destructive`,children:i}),!r&&!i&&(n??[]).length===0&&(0,H.jsx)(`p`,{className:`px-4 py-3 text-xs text-muted-foreground`,children:`No content types yet.`}),!r&&!i&&(n??[]).length>0&&(0,H.jsx)(`nav`,{className:`flex flex-col gap-0.5 p-2`,children:(n??[]).map(e=>(0,H.jsxs)(Ji,{to:`/content-types/${e.slug}`,className:[`flex items-center gap-2.5 rounded-md px-2.5 py-1.5 text-sm transition-colors`,o(e.slug)?`bg-sidebar-accent text-sidebar-accent-foreground font-medium`:`text-sidebar-foreground hover:bg-sidebar-accent/50 hover:text-sidebar-accent-foreground`].join(` `),children:[(0,H.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.name}),e.kind===`single`&&(0,H.jsx)(oo,{className:`size-3.5 shrink-0 text-violet-500 dark:text-violet-400`})]},e.slug))})]}),(0,H.jsx)(`div`,{className:`border-t border-sidebar-border p-3`,children:(0,H.jsxs)(q,{variant:`outline`,className:`w-full justify-start gap-2`,onClick:()=>e(`/content-types/new`),children:[(0,H.jsx)(Lo,{className:`size-3.5`}),`New Content Type`]})})]})}function T3(){return m3((0,H.jsx)(w3,{})),(0,H.jsx)($r,{})}function E3(e,t){return e.includes(`*`)||e.includes(t)}function D3({children:e,roles:t,permission:n,redirectTo:r=`/`}){let{status:i,user:a}=_a();return i===`idle`?null:i===`unauthenticated`?(0,H.jsx)(Qr,{to:`/login`,replace:!0}):t&&a&&!t.map(e=>e.toLowerCase()).includes(a.role.toLowerCase())||n&&a&&!E3(a.permissions,n)?(0,H.jsx)(Qr,{to:r,replace:!0}):(0,H.jsx)(H.Fragment,{children:e})}function O3(e,t){return e?.permissions.includes(`*`)||e?.permissions.includes(t)||!1}function k3(){let{user:e}=_a(),t=[{label:`Overview`,to:`/settings/overview`,icon:Uo,permission:`settings:overview:read`},{label:`Users`,to:`/settings/users`,icon:is,permission:`settings:users:read`},{label:`Roles`,to:`/settings/roles`,icon:Wo,permission:`settings:roles:read`},{label:`API Tokens`,to:`/settings/api-tokens`,icon:xo,permission:`settings:api-tokens:read`},{label:`Webhooks`,to:`/settings/webhooks`,icon:as,permission:`settings:webhooks:read`}].filter(({permission:t})=>O3(e,t));return(0,H.jsxs)(`div`,{className:`flex flex-col`,children:[(0,H.jsx)(`div`,{className:`border-b border-sidebar-border px-4 py-3`,children:(0,H.jsx)(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wider`,children:`Settings`})}),(0,H.jsx)(f3,{items:t})]})}function A3(){return m3((0,H.jsx)(k3,{})),(0,H.jsx)($r,{})}var j3=[`Super Admin`,`Admin`,`Editor`,`Contributor`],M3=Hi([{path:`/login`,element:(0,H.jsx)(Jw,{})},{element:(0,H.jsx)(D3,{children:(0,H.jsx)(x3,{})}),children:[{index:!0,element:(0,H.jsx)(D3,{roles:j3,redirectTo:`/content`,children:(0,H.jsx)(bw,{})})},{path:`content`,element:(0,H.jsx)(C3,{}),children:[{index:!0,element:(0,H.jsx)(fD,{})},{path:`:slug`,element:(0,H.jsx)(Z0,{})},{path:`:slug/new`,element:(0,H.jsx)(D3,{permission:`entries:write`,redirectTo:`/content`,children:(0,H.jsx)(b0,{})})},{path:`:slug/:id`,element:(0,H.jsx)(b0,{})}]},{path:`media`,element:(0,H.jsx)(D3,{roles:j3,redirectTo:`/content`,children:(0,H.jsx)(pE,{})})},{path:`content-types`,element:(0,H.jsx)(D3,{permission:`content-types:write`,roles:j3,redirectTo:`/content`,children:(0,H.jsx)(T3,{})}),children:[{index:!0,element:(0,H.jsx)(Q0,{})},{path:`new`,element:(0,H.jsx)(f2,{})},{path:`:slug`,element:(0,H.jsx)(f2,{})}]},{path:`add-ons`,element:(0,H.jsx)(D3,{permission:`addons:read`,roles:j3,redirectTo:`/content`,children:(0,H.jsx)(h3,{})}),children:[{index:!0,element:(0,H.jsx)(Qr,{to:`overview`,replace:!0})},{path:`overview`,element:(0,H.jsx)(D3,{permission:`addons:read`,children:(0,H.jsx)(dD,{})})},{path:`:addonId`,element:(0,H.jsx)(D3,{permission:`addons:read`,children:(0,H.jsx)(cD,{})})}]},{path:`settings`,element:(0,H.jsx)(D3,{permission:`settings:overview:read`,roles:j3,redirectTo:`/content`,children:(0,H.jsx)(A3,{})}),children:[{index:!0,element:(0,H.jsx)(Qr,{to:`overview`,replace:!0})},{path:`overview`,element:(0,H.jsx)(D3,{permission:`settings:overview:read`,children:(0,H.jsx)(X4,{})})},{path:`users`,element:(0,H.jsx)(D3,{permission:`settings:users:read`,children:(0,H.jsx)(c3,{})})},{path:`roles`,element:(0,H.jsx)(D3,{permission:`settings:roles:read`,children:(0,H.jsx)(r3,{})})},{path:`api-tokens`,element:(0,H.jsx)(D3,{permission:`settings:api-tokens:read`,children:(0,H.jsx)(z4,{})})},{path:`webhooks`,element:(0,H.jsx)(D3,{permission:`settings:webhooks:read`,children:(0,H.jsx)(d3,{})})}]},{path:`profile`,element:(0,H.jsx)(YE,{})}]},{path:`*`,element:(0,H.jsx)(Qr,{to:`/`,replace:!0})}],{basename:`/admin/`.replace(/\/$/,``)||`/`});function N3(){return(0,H.jsx)(ga,{children:(0,H.jsx)(xa,{children:(0,H.jsx)(ya,{children:(0,H.jsx)(fa,{router:M3})})})})}var P3=({...e})=>{let{theme:t=`system`}=T();return(0,H.jsx)(CT,{theme:t,className:`toaster group`,icons:{success:(0,H.jsx)(Ka,{className:`size-4`}),info:(0,H.jsx)(yo,{className:`size-4`}),warning:(0,H.jsx)(Qo,{className:`size-4`}),error:(0,H.jsx)(No,{className:`size-4`}),loading:(0,H.jsx)(Ao,{className:`size-4 animate-spin`})},style:{"--normal-bg":`var(--popover)`,"--normal-text":`var(--popover-foreground)`,"--normal-border":`var(--border)`,"--border-radius":`var(--radius)`},...e})};function F3({...e}){return(0,H.jsx)(P3,{toastOptions:{classNames:{toast:`border ![font-family:var(--font-sans)]`,success:`bg-[#082019]! text-emerald-500! border-emerald-500/20!`,error:`bg-[#370815]! text-rose-600! border-rose-600/20!`,warning:`bg-[#3b2d08]! text-amber-400! border-amber-400/20!`,info:`bg-[#0c1b3a]! text-blue-500! border-blue-500/20!`,title:`font-bold!`,description:`opacity-80!`}},...e})}window.React=v,window.PlankAddonAdminModules=window.PlankAddonAdminModules??{},(0,_.createRoot)(document.getElementById(`root`)).render((0,H.jsx)(v.StrictMode,{children:(0,H.jsxs)(E,{attribute:`class`,defaultTheme:`dark`,enableSystem:!0,disableTransitionOnChange:!0,children:[(0,H.jsx)(N3,{}),(0,H.jsx)(F3,{})]})}));
|