@plank-cms/plank 0.29.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -220,4 +220,4 @@ ${n}`}}),s}var mq=new WeakMap;function hq(e,t){let n=mq.get(e);if(!n){let t={cal
|
|
|
220
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`,`
|
|
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`,"read-only":`secondary`},F4={"full-access":`Full access`,"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.`})]}),(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`})]})]})]}),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 frontend 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.29.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 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,{})]})}));
|