@plank-cms/plank 0.27.1 → 0.27.3
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.
|
@@ -216,8 +216,8 @@ ${n}`}}),s}var YK=new WeakMap;function XK(e,t){let n=YK.get(e);if(!n){let t={cal
|
|
|
216
216
|
`):``,markdownTokenizer:{name:`orderedList`,level:`block`,start:e=>{let t=e.match(/^(\s*)(\d+)\.\s+/)?.index;return t===void 0?-1:t},tokenize:(e,t,n)=>{let r=e.split(`
|
|
217
217
|
`),[i,a]=RZ(r);if(i.length===0)return;let o=zZ(i,0,n);if(o.length!==0)return{type:`list`,ordered:!0,start:i[0]?.number||1,items:o,raw:r.slice(0,a).join(`
|
|
218
218
|
`)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:e,chain:t})=>this.options.keepAttributes?t().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(VZ,this.editor.getAttributes(HZ)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let e=IK({find:UZ,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(e=IK({find:UZ,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(HZ)}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1],editor:this.editor})),[e]}}),GZ=/^\s*(\[([( |x])?\])\s$/,KZ=$K.create({name:`taskItem`,addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:`taskList`,a11y:void 0}},content(){return this.options.nested?`paragraph block*`:`paragraph+`},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:e=>{let t=e.getAttribute(`data-checked`);return t===``||t===`true`},renderHTML:e=>({"data-checked":e.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:e,HTMLAttributes:t}){return[`li`,JW(this.options.HTMLAttributes,t,{"data-type":this.name}),[`label`,[`input`,{type:`checkbox`,checked:e.attrs.checked?`checked`:null}],[`span`]],[`div`,0]]},parseMarkdown:(e,t)=>{let n=[];if(e.tokens&&e.tokens.length>0?n.push(t.createNode(`paragraph`,{},t.parseInline(e.tokens))):e.text?n.push(t.createNode(`paragraph`,{},[t.createNode(`text`,{text:e.text})])):n.push(t.createNode(`paragraph`,{},[])),e.nestedTokens&&e.nestedTokens.length>0){let r=t.parseChildren(e.nestedTokens);n.push(...r)}return t.createNode(`taskItem`,{checked:e.checked||!1},n)},renderMarkdown:(e,t)=>JK(e,t,`- [${e.attrs?.checked?`x`:` `}] `),addKeyboardShortcuts(){let e={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...e,Tab:()=>this.editor.commands.sinkListItem(this.name)}:e},addNodeView(){return({node:e,HTMLAttributes:t,getPos:n,editor:r})=>{let i=document.createElement(`li`),a=document.createElement(`label`),o=document.createElement(`span`),s=document.createElement(`input`),c=document.createElement(`div`),l=e=>{var t;s.ariaLabel=((t=this.options.a11y)?.checkboxLabel)?.call(t,e,s.checked)||`Task item checkbox for ${e.textContent||`empty task item`}`};l(e),a.contentEditable=`false`,s.type=`checkbox`,s.addEventListener(`mousedown`,e=>e.preventDefault()),s.addEventListener(`change`,t=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){s.checked=!s.checked;return}let{checked:i}=t.target;r.isEditable&&typeof n==`function`&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:e})=>{let t=n();if(typeof t!=`number`)return!1;let r=e.doc.nodeAt(t);return e.setNodeMarkup(t,void 0,{...r?.attrs,checked:i}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(e,i)||(s.checked=!s.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([e,t])=>{i.setAttribute(e,t)}),i.dataset.checked=e.attrs.checked,s.checked=e.attrs.checked,a.append(s,o),i.append(a,c),Object.entries(t).forEach(([e,t])=>{i.setAttribute(e,t)});let u=new Set(Object.keys(t));return{dom:i,contentDOM:c,update:e=>{if(e.type!==this.type)return!1;i.dataset.checked=e.attrs.checked,s.checked=e.attrs.checked,l(e);let t=r.extensionManager.attributes,n=YW(e,t),a=new Set(Object.keys(n)),o=this.options.HTMLAttributes;return u.forEach(e=>{a.has(e)||(e in o?i.setAttribute(e,o[e]):i.removeAttribute(e))}),Object.entries(n).forEach(([e,t])=>{t==null?e in o?i.setAttribute(e,o[e]):i.removeAttribute(e):i.setAttribute(e,t)}),u=a,!0}}}},addInputRules(){return[IK({find:GZ,type:this.type,getAttributes:e=>({checked:e[e.length-1]===`x`})})]}}),qZ=$K.create({name:`taskList`,addOptions(){return{itemTypeName:`taskItem`,HTMLAttributes:{}}},group:`block list`,content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:e}){return[`ul`,JW(this.options.HTMLAttributes,e,{"data-type":this.name}),0]},parseMarkdown:(e,t)=>t.createNode(`taskList`,{},t.parseChildren(e.items||[])),renderMarkdown:(e,t)=>e.content?t.renderChildren(e.content,`
|
|
219
|
-
`):``,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=qK(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=qK(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()}}});_K.create({name:`listKit`,addExtensions(){let e=[];return this.options.bulletList!==!1&&e.push(xZ.configure(this.options.bulletList)),this.options.listItem!==!1&&e.push(SZ.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(NZ.configure(this.options.listKeymap)),this.options.orderedList!==!1&&e.push(WZ.configure(this.options.orderedList)),this.options.taskItem!==!1&&e.push(KZ.configure(this.options.taskItem)),this.options.taskList!==!1&&e.push(qZ.configure(this.options.taskList)),e}});var JZ=` `,YZ=`\xA0`,XZ=$K.create({name:`paragraph`,priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:`block`,content:`inline*`,parseHTML(){return[{tag:`p`}]},renderHTML({HTMLAttributes:e}){return[`p`,JW(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===JZ||n[0].text===JZ||n[0].raw===YZ||n[0].text===YZ)&&r.length===1&&r[0].type===`text`&&(r[0].text===JZ||r[0].text===YZ)?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?JZ:``}return t.renderChildren(r)},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),ZZ=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,QZ=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,$Z=cK.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`,JW(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[NK({find:ZZ,type:this.type})]},addPasteRules(){return[tq({find:QZ,type:this.type})]}}),eQ=$K.create({name:`text`,group:`inline`,parseMarkdown:e=>({type:`text`,text:e.text||``}),renderMarkdown:e=>e.text||``}),tQ=cK.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`,JW(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 nQ(e={}){return new BL({view(t){return new rQ(t,e)}})}var rQ=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=ZI(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)}},iQ=class e extends vL{constructor(e){super(e,e)}map(t,n){let r=t.resolve(n.map(this.head));return e.valid(r)?new e(r):vL.near(r)}content(){return UP.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 aQ(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!sQ(e)||!cQ(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&&!wL.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}}};iQ.prototype.visible=!1,iQ.findFrom=iQ.findGapCursorFrom,vL.jsonID(`gapcursor`,iQ);var aQ=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 iQ.valid(t)?new iQ(t):vL.near(t)}};function oQ(e){return e.isAtom||e.spec.isolating||e.spec.createGapCursor}function sQ(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||oQ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function cQ(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||oQ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function lQ(){return new BL({props:{decorations:mQ,createSelectionBetween(e,t,n){return t.pos==n.pos&&iQ.valid(n)?new iQ(n):null},handleClick:fQ,handleKeyDown:uQ,handleDOMEvents:{beforeinput:pQ}}})}var uQ=gU({ArrowLeft:dQ(`horiz`,-1),ArrowRight:dQ(`horiz`,1),ArrowUp:dQ(`vert`,-1),ArrowDown:dQ(`vert`,1)});function dQ(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 SL){if(!i.endOfTextblock(n)||o.depth==0)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let c=iQ.findGapCursorFrom(o,t,s);return c?(r&&r(e.tr.setSelection(new iQ(c))),!0):!1}}function fQ(e,t,n){if(!e||!e.editable)return!1;let r=e.state.doc.resolve(t);if(!iQ.valid(r))return!1;let i=e.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&wL.isSelectable(e.state.doc.nodeAt(i.inside))?!1:(e.dispatch(e.state.tr.setSelection(new iQ(r))),!0)}function pQ(e,t){if(t.inputType!=`insertCompositionText`||!(e.state.selection instanceof iQ))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=Q.empty;for(let e=r.length-1;e>=0;e--)i=Q.from(r[e].createAndFill(null,i));let a=e.state.tr.replace(n.pos,n.pos,new UP(i,0,0));return a.setSelection(SL.near(a.doc.resolve(n.pos+1))),e.dispatch(a),!1}function mQ(e){if(!(e.selection instanceof iQ))return null;let t=document.createElement(`div`);return t.className=`ProseMirror-gapcursor`,hH.create(e.doc,[fH.widget(e.selection.head,t,{key:`gapcursor`})])}var hQ=200,gQ=function(){};gQ.prototype.append=function(e){return e.length?(e=gQ.from(e),!this.length&&e||e.length<hQ&&this.leafAppend(e)||this.length<hQ&&e.leafPrepend(this)||this.appendInner(e)):this},gQ.prototype.prepend=function(e){return e.length?gQ.from(e).append(this):this},gQ.prototype.appendInner=function(e){return new vQ(this,e)},gQ.prototype.slice=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=this.length),e>=t?gQ.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},gQ.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},gQ.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)},gQ.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},gQ.from=function(e){return e instanceof gQ?e:e&&e.length?new _Q(e):gQ.empty};var _Q=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<=hQ)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=hQ)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}(gQ);gQ.empty=new _Q([]);var vQ=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}(gQ),yQ=500,bQ=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 SQ(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 SQ(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 SQ(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>wQ&&(s=xQ(s,l),o-=l),new e(s.append(a),o)}remapping(e,t){let n=new hI;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 SQ(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 SQ(i,o,l))}else r.push(new SQ(i))},i);let l=[];for(let e=n;e<o;e++)l.push(new SQ(a.maps[e]));let u=new e(this.items.slice(0,i).append(l).append(r),s);return u.emptyItemCount()>yQ&&(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 SQ(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(gQ.from(i.reverse()),a)}};bQ.empty=new bQ(gQ.empty,0);function xQ(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&t--==0)return n=r,!1}),e.slice(n)}var SQ=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)}}},CQ=class{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}},wQ=20;function TQ(e,t,n,r){let i=n.getMeta(NQ),a;if(i)return i.historyState;n.getMeta(PQ)&&(e=new CQ(e.done,e.undone,null,0,-1));let o=n.getMeta(`appendedTransaction`);if(n.steps.length==0)return e;if(o&&o.getMeta(NQ))return o.getMeta(NQ).redo?new CQ(e.done.addTransform(n,void 0,r,MQ(t)),e.undone,DQ(n.mapping.maps),e.prevTime,e.prevComposition):new CQ(e.done,e.undone.addTransform(n,void 0,r,MQ(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||!EQ(n,e.prevRanges)),s=o?OQ(e.prevRanges,n.mapping):DQ(n.mapping.maps);return new CQ(e.done.addTransform(n,a?t.selection.getBookmark():void 0,r,MQ(t)),bQ.empty,s,n.time,i??e.prevComposition)}else if(a=n.getMeta(`rebased`))return new CQ(e.done.rebased(n,a),e.undone.rebased(n,a),OQ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);else return new CQ(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),OQ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function EQ(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 DQ(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 OQ(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 kQ(e,t,n){let r=MQ(t),i=NQ.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 CQ(n?s:a.remaining,n?a.remaining:s,null,0,-1);return a.transform.setSelection(o).setMeta(NQ,{redo:n,historyState:c})}var AQ=!1,jQ=null;function MQ(e){let t=e.plugins;if(jQ!=t){AQ=!1,jQ=t;for(let e=0;e<t.length;e++)if(t[e].spec.historyPreserveItems){AQ=!0;break}}return AQ}var NQ=new UL(`history`),PQ=new UL(`closeHistory`);function FQ(e={}){return e={depth:e.depth||100,newGroupDelay:e.newGroupDelay||500},new BL({key:NQ,state:{init(){return new CQ(bQ.empty,bQ.empty,null,0,-1)},apply(t,n,r){return TQ(n,r,t,e)}},config:e,props:{handleDOMEvents:{beforeinput(e,t){let n=t.inputType,r=n==`historyUndo`?LQ:n==`historyRedo`?RQ:null;return!r||!e.editable?!1:(t.preventDefault(),r(e.state,e.dispatch))}}}})}function IQ(e,t){return(n,r)=>{let i=NQ.getState(n);if(!i||(e?i.undone:i.done).eventCount==0)return!1;if(r){let a=kQ(i,n,e);a&&r(t?a.scrollIntoView():a)}return!0}}var LQ=IQ(!1,!0),RQ=IQ(!0,!0);_K.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 BL({key:new UL(`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 zQ=_K.create({name:`dropCursor`,addOptions(){return{color:`currentColor`,width:1,class:void 0}},addProseMirrorPlugins(){return[nQ(this.options)]}});_K.create({name:`focus`,addOptions(){return{className:`has-focus`,mode:`all`}},addProseMirrorPlugins(){return[new BL({key:new UL(`focus`),props:{decorations:({doc:e,selection:t})=>{let{isEditable:n,isFocused:r}=this.editor,{anchor:i}=t,a=[];if(!n||!r)return hH.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(fH.node(t,t+e.nodeSize,{class:this.options.className}))}),hH.create(e,a)}}})]}});var BQ=_K.create({name:`gapCursor`,addProseMirrorPlugins(){return[lQ()]},extendNodeSchema(e){return{allowGapCursor:HW(RW(e,`allowGapCursor`,{name:e.name,options:e.options,storage:e.storage}))??null}}}),VQ=`placeholder`;function HQ(e){return e.replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9-]/g,``).replace(/^[0-9-]+/,``).replace(/^-+/,``).toLowerCase()}_K.create({name:`placeholder`,addOptions(){return{emptyEditorClass:`is-editor-empty`,emptyNodeClass:`is-empty`,dataAttribute:VQ,placeholder:`Write something …`,showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){let e=this.options.dataAttribute?`data-${HQ(this.options.dataAttribute)}`:`data-${VQ}`;return[new BL({key:new UL(`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&&CG(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=fH.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}),hH.create(t,a)}}})]}}),_K.create({name:`selection`,addOptions(){return{className:`selection`}},addProseMirrorPlugins(){let{editor:e,options:t}=this;return[new BL({key:new UL(`selection`),props:{decorations(n){return n.selection.empty||e.isFocused||!e.isEditable||wG(n.selection)||e.view.dragging?null:hH.create(n.doc,[fH.inline(n.selection.from,n.selection.to,{class:t.className})])}}})]}});function UQ({types:e,node:t}){return t&&Array.isArray(e)&&e.includes(t.type)||t?.type===e}var WQ=_K.create({name:`trailingNode`,addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){let e=new UL(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 BL({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!UQ({node:r,types:n})},apply:(e,t)=>{if(!e.docChanged||e.getMeta(`__uniqueIDTransaction`))return t;let r=e.doc.lastChild;return!UQ({node:r,types:n})}}})]}}),GQ=_K.create({name:`undoRedo`,addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:e,dispatch:t})=>LQ(e,t),redo:()=>({state:e,dispatch:t})=>RQ(e,t)}},addProseMirrorPlugins(){return[FQ(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()}}}),KQ=_K.create({name:`starterKit`,addExtensions(){let e=[];return this.options.bold!==!1&&e.push(RJ.configure(this.options.bold)),this.options.blockquote!==!1&&e.push(NJ.configure(this.options.blockquote)),this.options.bulletList!==!1&&e.push(xZ.configure(this.options.bulletList)),this.options.code!==!1&&e.push(VJ.configure(this.options.code)),this.options.codeBlock!==!1&&e.push(GJ.configure(this.options.codeBlock)),this.options.document!==!1&&e.push(KJ.configure(this.options.document)),this.options.dropcursor!==!1&&e.push(zQ.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&e.push(BQ.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&e.push(qJ.configure(this.options.hardBreak)),this.options.heading!==!1&&e.push(JJ.configure(this.options.heading)),this.options.undoRedo!==!1&&e.push(GQ.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&e.push(YJ.configure(this.options.horizontalRule)),this.options.italic!==!1&&e.push(eY.configure(this.options.italic)),this.options.listItem!==!1&&e.push(SZ.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(NZ.configure(this.options?.listKeymap)),this.options.link!==!1&&e.push(hZ.configure(this.options?.link)),this.options.orderedList!==!1&&e.push(WZ.configure(this.options.orderedList)),this.options.paragraph!==!1&&e.push(XZ.configure(this.options.paragraph)),this.options.strike!==!1&&e.push($Z.configure(this.options.strike)),this.options.text!==!1&&e.push(eQ.configure(this.options.text)),this.options.underline!==!1&&e.push(tQ.configure(this.options?.underline)),this.options.trailingNode!==!1&&e.push(WQ.configure(this.options?.trailingNode)),e}}),qQ=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,JQ=$K.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`,JW(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 RK({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[PK({find:qQ,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}});function YQ({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 XQ(){return(0,H.jsx)(`div`,{className:`mx-0.5 h-4 w-px bg-border`})}function ZQ(e,t){return!e||!t?null:`${e} × ${t}`}function QQ(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 $Q(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 e$({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||QQ(a),p=ZQ(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 $Q(o,e)}catch(e){_(e instanceof Error?e.message:`Could not update media caption.`)}finally{b(!1)}}}return(0,H.jsx)(vJ,{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)(AP,{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)(Xo,{className:`size-4`})})]})})}function t$({value:e,onChange:t,placeholder:n,onInsertImage:r}){let[i,a]=(0,v.useState)(!e),o=mJ({extensions:[KQ.configure({link:{openOnClick:!1,HTMLAttributes:{class:`text-primary underline`}}}),JQ.extend({addAttributes(){return{...this.parent?.(),mediaId:{default:null},filename:{default:null},width:{default:null},height:{default:null}}},addNodeView(){return EJ(e$)}}).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)(YQ,{title:`Bold`,active:o.isActive(`bold`),onClick:()=>o.chain().focus().toggleBold().run(),children:(0,H.jsx)(Ra,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Italic`,active:o.isActive(`italic`),onClick:()=>o.chain().focus().toggleItalic().run(),children:(0,H.jsx)(So,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Underline`,active:o.isActive(`underline`),onClick:()=>o.chain().focus().toggleUnderline().run(),children:(0,H.jsx)($o,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Strikethrough`,active:o.isActive(`strike`),onClick:()=>o.chain().focus().toggleStrike().run(),children:(0,H.jsx)(Ko,{className:`size-3.5`})}),(0,H.jsx)(XQ,{}),(0,H.jsx)(YQ,{title:`Heading 1`,active:o.isActive(`heading`,{level:1}),onClick:()=>o.chain().focus().toggleHeading({level:1}).run(),children:(0,H.jsx)(go,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Heading 2`,active:o.isActive(`heading`,{level:2}),onClick:()=>o.chain().focus().toggleHeading({level:2}).run(),children:(0,H.jsx)(_o,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Heading 3`,active:o.isActive(`heading`,{level:3}),onClick:()=>o.chain().focus().toggleHeading({level:3}).run(),children:(0,H.jsx)(vo,{className:`size-3.5`})}),(0,H.jsx)(XQ,{}),(0,H.jsx)(YQ,{title:`Bullet list`,active:o.isActive(`bulletList`),onClick:()=>o.chain().focus().toggleBulletList().run(),children:(0,H.jsx)(jo,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Ordered list`,active:o.isActive(`orderedList`),onClick:()=>o.chain().focus().toggleOrderedList().run(),children:(0,H.jsx)(ko,{className:`size-3.5`})}),(0,H.jsx)(XQ,{}),(0,H.jsx)(YQ,{title:`Blockquote`,active:o.isActive(`blockquote`),onClick:()=>o.chain().focus().toggleBlockquote().run(),children:(0,H.jsx)(Ro,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Inline code`,active:o.isActive(`code`),onClick:()=>o.chain().focus().toggleCode().run(),children:(0,H.jsx)(Qa,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Code block`,active:o.isActive(`codeBlock`),onClick:()=>o.chain().focus().toggleCodeBlock().run(),children:(0,H.jsx)(Wo,{className:`size-3.5`})}),(0,H.jsx)(XQ,{}),(0,H.jsx)(YQ,{title:`Add link`,active:o.isActive(`link`),onClick:c,children:(0,H.jsx)(Oo,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Remove link`,disabled:!o.isActive(`link`),onClick:()=>o.chain().focus().unsetLink().run(),children:(0,H.jsx)(es,{className:`size-3.5`})}),(0,H.jsx)(XQ,{}),r&&(0,H.jsx)(YQ,{title:`Insert image`,onClick:s,children:(0,H.jsx)(bo,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Hard break (Shift + Enter)`,onClick:()=>o.chain().focus().setHardBreak().run(),children:(0,H.jsx)(Jo,{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)(oJ,{editor:o})]})]}):null}function n$(e){return{...e}}function r$(e){return e.type.startsWith(`image/`)?new Promise(t=>{let n=new Image,r=URL.createObjectURL(e);n.onload=()=>{URL.revokeObjectURL(r),t({width:n.naturalWidth,height:n.naturalHeight})},n.onerror=()=>{URL.revokeObjectURL(r),t(null)},n.src=r}):Promise.resolve(null)}async function i$(e,t){let n=await r$(e),r=await fetch(`/cms/admin/media/presign`,{method:`POST`,credentials:`include`,headers:n$({"Content-Type":`application/json`}),body:JSON.stringify({filename:e.name,mimeType:e.type,folderId:t?.folderId??null})});if(!r.ok)throw Error(`Upload failed.`);let i=await r.json();if(i.mode===`presigned`){if(!(await fetch(i.uploadUrl,{method:`PUT`,body:e,headers:{"Content-Type":e.type}})).ok)throw Error(`Upload failed.`);let r=await fetch(`/cms/admin/media/confirm`,{method:`POST`,credentials:`include`,headers:n$({"Content-Type":`application/json`}),body:JSON.stringify({key:i.key,filename:e.name,mimeType:e.type,size:e.size,folderId:t?.folderId??null,width:n?.width??null,height:n?.height??null})});if(!r.ok)throw Error(`Upload failed.`);return r.json()}let a=new FormData;a.append(`files`,e,e.name),t?.folderId&&a.append(`folder_id`,t.folderId),n?.width&&a.append(`width`,String(n.width)),n?.height&&a.append(`height`,String(n.height));let o=await fetch(`/cms/admin/media`,{method:`POST`,credentials:`include`,headers:n$(),body:a});if(!o.ok)throw Error(`Upload failed.`);return o.json()}async function a$(e){let t=await fetch(`/cms/admin/users/me/avatar/presign`,{method:`POST`,credentials:`include`,headers:n$({"Content-Type":`application/json`}),body:JSON.stringify({filename:e.name,mimeType:e.type})});if(!t.ok)throw Error(`Upload failed.`);let n=await t.json();if(n.mode===`presigned`){if(!(await fetch(n.uploadUrl,{method:`PUT`,body:e,headers:{"Content-Type":e.type}})).ok)throw Error(`Upload failed.`);let t=await fetch(`/cms/admin/users/me/avatar/confirm`,{method:`POST`,credentials:`include`,headers:n$({"Content-Type":`application/json`}),body:JSON.stringify({key:n.key})});if(!t.ok)throw Error(`Upload failed.`);return(await t.json()).avatarUrl}let r=new FormData;r.append(`file`,e);let i=await fetch(`/cms/admin/users/me/avatar`,{method:`POST`,credentials:`include`,headers:n$(),body:r});if(!i.ok)throw Error(`Upload failed.`);return(await i.json()).avatarUrl}var o$=1,s$=.9,c$=.8,l$=.17,u$=.1,d$=.999,f$=.9999,p$=.99,m$=/[\\\/_+.#"@\[\(\{&]/,h$=/[\\\/_+.#"@\[\(\{&]/g,g$=/[\s-]/,_$=/[\s-]/g;function v$(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?o$:p$;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=v$(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=o$:m$.test(e.charAt(l-1))?(d*=c$,p=e.slice(i,l-1).match(h$),p&&i>0&&(d*=d$**+p.length)):g$.test(e.charAt(l-1))?(d*=s$,m=e.slice(i,l-1).match(_$),m&&i>0&&(d*=d$**+m.length)):(d*=l$,i>0&&(d*=d$**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=f$)),(d<u$&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=v$(e,t,n,r,l+1,a+2,o),f*u$>d&&(d=f*u$)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function y$(e){return e.toLowerCase().replace(_$,` `)}function b$(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,v$(e,t,y$(e),y$(t),0,0,{})}var x$=`[cmdk-group=""]`,S$=`[cmdk-group-items=""]`,C$=`[cmdk-group-heading=""]`,w$=`[cmdk-item=""]`,T$=`${w$}:not([aria-disabled="true"])`,E$=`cmdk-item-select`,D$=`data-value`,O$=(e,t,n)=>b$(e,t,n),k$=v.createContext(void 0),A$=()=>v.useContext(k$),j$=v.createContext(void 0),M$=()=>v.useContext(j$),N$=v.createContext(void 0),P$=v.forwardRef((e,t)=>{let n=J$(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=J$(()=>new Set),i=J$(()=>new Map),a=J$(()=>new Map),o=J$(()=>new Set),s=K$(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:p,loop:m,disablePointerSelection:h=!1,vimBindings:g=!0,..._}=e,y=ud(),b=ud(),x=ud(),S=v.useRef(null),C=Z$();q$(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,w.emit()}},[u]),q$(()=>{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??O$;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(S$);t?t.appendChild(e.parentElement===t?e:e.closest(`${S$} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${S$} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${x$}[${D$}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(D$);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(x$)?.querySelector(C$))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${w$}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(T$)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(D$))}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(D$))}function F(e){let t=j()?.closest(x$),n;for(;t&&!n;)t=e>0?W$(t,x$):G$(t,x$),n=t?.querySelector(T$);n?w.setState(`value`,n.getAttribute(D$)):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(il.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(E$);t.dispatchEvent(e)}}}}},v.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:e1},c),$$(e,e=>v.createElement(j$.Provider,{value:w},v.createElement(k$.Provider,{value:T},e))))}),F$=v.forwardRef((e,t)=>{let n=ud(),r=v.useRef(null),i=v.useContext(N$),a=A$(),o=K$(e),s=o.current?.forceMount??i?.forceMount;q$(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=X$(n,r,[e.value,e.children,r],e.keywords),l=M$(),u=Y$(e=>e.value&&e.value===c.current),d=Y$(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(E$,f),()=>t.removeEventListener(E$,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(il.div,{ref:ds(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)}),I$=v.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=ud(),s=v.useRef(null),c=v.useRef(null),l=ud(),u=A$(),d=Y$(e=>i||u.filter()===!1?!0:e.search?e.filtered.groups.has(o):!0);q$(()=>u.group(o),[]),X$(o,s,[e.value,e.heading,c]);let f=v.useMemo(()=>({id:o,forceMount:i}),[i]);return v.createElement(il.div,{ref:ds(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),$$(e,e=>v.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},v.createElement(N$.Provider,{value:f},e))))}),L$=v.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=v.useRef(null),a=Y$(e=>!e.search);return!n&&!a?null:v.createElement(il.div,{ref:ds(i,t),...r,"cmdk-separator":``,role:`separator`})}),R$=v.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=M$(),o=Y$(e=>e.search),s=Y$(e=>e.selectedItemId),c=A$();return v.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),v.createElement(il.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)}})}),z$=v.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=v.useRef(null),o=v.useRef(null),s=Y$(e=>e.selectedItemId),c=A$();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(il.div,{ref:ds(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},$$(e,e=>v.createElement(`div`,{ref:ds(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),B$=v.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return v.createElement(sy,{open:n,onOpenChange:r},v.createElement(cy,{container:o},v.createElement(ly,{"cmdk-overlay":``,className:i}),v.createElement(uy,{"aria-label":e.label,"cmdk-dialog":``,className:a},v.createElement(P$,{ref:t,...s}))))}),V$=v.forwardRef((e,t)=>Y$(e=>e.filtered.count===0)?v.createElement(il.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),H$=v.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return v.createElement(il.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},$$(e,e=>v.createElement(`div`,{"aria-hidden":!0},e)))}),U$=Object.assign(P$,{List:z$,Item:F$,Input:R$,Group:I$,Separator:L$,Dialog:B$,Empty:V$,Loading:H$});function W$(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function G$(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function K$(e){let t=v.useRef(e);return q$(()=>{t.current=e}),t}var q$=typeof window>`u`?v.useEffect:v.useLayoutEffect;function J$(e){let t=v.useRef();return t.current===void 0&&(t.current=e()),t}function Y$(e){let t=M$(),n=()=>e(t.snapshot());return v.useSyncExternalStore(t.subscribe,n,n)}function X$(e,t,n,r=[]){let i=v.useRef(),a=A$();return q$(()=>{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(D$,s),i.current=s}),i}var Z$=()=>{let[e,t]=v.useState(),n=J$(()=>new Map);return q$(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function Q$(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function $$({asChild:e,children:t},n){return e&&v.isValidElement(t)?v.cloneElement(Q$(t),{ref:t.ref},n(t.props.children)):n(t)}var e1={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`},t1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(U$,{ref:n,className:K(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,e),...t}));t1.displayName=U$.displayName;var n1=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)(Vo,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),(0,H.jsx)(U$.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})]}));n1.displayName=U$.Input.displayName;var r1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(U$.List,{ref:n,className:K(`max-h-[300px] overflow-y-auto overflow-x-hidden`,e),...t}));r1.displayName=U$.List.displayName;var i1=v.forwardRef((e,t)=>(0,H.jsx)(U$.Empty,{ref:t,className:`py-6 text-center text-sm`,...e}));i1.displayName=U$.Empty.displayName;var a1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(U$.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}));a1.displayName=U$.Group.displayName;var o1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(U$.Separator,{ref:n,className:K(`-mx-1 h-px bg-border`,e),...t}));o1.displayName=U$.Separator.displayName;var s1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(U$.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=U$.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 l1={image:`image/*`,video:`video/*`,audio:`audio/*`,document:`.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv`};function u1(e){return!e||e.length===0?`*/*`:e.map(e=>l1[e]).join(`,`)}function d1(e){let t=e.replace(/_/g,` `).trim();return t?t.charAt(0).toUpperCase()+t.slice(1):`Value`}function f1(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:`—`}function p1(e){return e?.startsWith(`image/`)??!1}async function m1(e,t){return i$(e,{folderId:t})}function h1(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 g1=30;function _1({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=${g1}${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=>h1(e.mime_type,n)),A=c.length===0&&k.length===0;return(0,H.jsx)(my,{open:e,onOpenChange:t,children:(0,H.jsxs)(vy,{className:`max-w-3xl max-h-[90vh] flex flex-col overflow-hidden`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Media Library`})}),(0,H.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,H.jsx)(Vo,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,H.jsx)(J,{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)(yo,{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)(yo,{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)(Xb,{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)(po,{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:p1(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)(co,{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:f1(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 v1({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 m1(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)(bo,{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)(bo,{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)(as,{className:`size-3.5`})})]}):(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`input`,{ref:i,type:`file`,accept:u1(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)(ts,{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)(uo,{className:`size-4`}),`Library`]})]}),s&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:s}),(0,H.jsx)(_1,{open:d,onOpenChange:f,allowedTypes:n,selectionMode:`single`,onSelect:e=>{let n=e[0];n&&(u(n.url),t(n.id))}})]})}function y1({id:e,previewUrl:t,filename:n,onRemove:r,disabled:i=!1}){let{attributes:a,listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=nk({id:e});return(0,H.jsxs)(`div`,{ref:s,style:{transform:hE.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)(bo,{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)(as,{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)(mo,{className:`size-3`})})]})}function b1({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=jE(AE(jD,{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(LO(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 m1(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)(OO,{sensors:h,collisionDetection:RE,onDragEnd:y,children:(0,H.jsx)(JO,{items:r,strategy:HO,children:(0,H.jsx)(`div`,{className:`grid grid-cols-3 gap-2 sm:grid-cols-4`,children:r.map(e=>(0,H.jsx)(y1,{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)(ts,{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)(uo,{className:`size-4`}),`Library`]})]}),s&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:s}),(0,H.jsx)(_1,{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 x1({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)(J,{type:`text`,inputMode:`decimal`,className:K(`w-full`,`text-base!`),value:r,placeholder:`0.00`,onChange:a,disabled:n})}function S1(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 C1({value:e,onChange:t,inputId:n,disabled:r=!1}){let i=S1(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)(J,{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)(x1,{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)(pk,{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 w1({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(tx(e,n)))},[e,n]);function u(e){s(e),a(!1),e&&t(nx(e,c,n))}function d(e){l(e),o&&t(nx(o,e,n))}return(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(DP,{open:i&&!r,onOpenChange:a,children:[(0,H.jsx)(OP,{asChild:!0,children:(0,H.jsxs)(q,{variant:`outline`,className:`w-40 justify-between font-normal text-base`,disabled:r,children:[o?Mj(o,`MMM d, yyyy`):`Select date`,(0,H.jsx)(Ua,{className:`size-4 opacity-50`})]})}),(0,H.jsx)(kP,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,H.jsx)(TP,{mode:`single`,selected:o,captionLayout:`dropdown`,defaultMonth:o,onSelect:u})})]}),(0,H.jsx)(J,{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)(as,{className:`size-3.5`})})]})}function T1(e){return e.find(e=>e.type===`uid`)?.name??e.find(e=>e.type===`string`)?.name??null}var E1={data:null,promise:null};function D1(){return E1.data?Promise.resolve(E1.data):(E1.promise||=fetch(`/cms/admin/content-types`,{credentials:`include`}).then(e=>e.ok?e.json():[]).then(e=>(E1.data=e,e)).catch(()=>[]),E1.promise)}function O1(e,t){return e.find(e=>e.tableName===t)??null}function k1(e){return fetch(`/cms/admin/content-types/${e}/entries?limit=200`,{credentials:`include`}).then(e=>e.ok?e.json():{data:[]}).catch(()=>({data:[]}))}function A1(e){let[t,n]=(0,v.useState)([]),[r,i]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{e&&(i(!0),D1().then(t=>{let n=O1(t,e);return n?k1(n.slug).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:t})=>{let r=e?T1(e.fields??[]):null;n(t.data.map(e=>({id:String(e.id),label:String(r?e[r]??e.id:e.id)})))}).catch(()=>n([])).finally(()=>i(!1)))},[e]),{entries:t,loading:r}}function j1(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),D1().then(t=>{let n=O1(t,e);return n?k1(n.slug).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:r})=>{let a=e?T1(e.fields??[]):null;i(r.data.filter(e=>String(e[t]??``)===n).map(e=>({id:String(e.id),label:String(a?e[a]??e.id:e.id)})))}).catch(()=>i([])).finally(()=>o(!1))},[e,t,n]),{entries:r,loading:a}}function M1({relatedTable:e,relatedField:t,currentId:n}){let{entries:r,loading:i}=j1(e,t,n);return n?i?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-1`,children:[(0,H.jsx)(Xb,{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 N1({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}=A1(t);if(e===`one-to-many`)return(0,H.jsx)(M1,{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)(DP,{open:c&&!o,onOpenChange:l,children:[(0,H.jsx)(OP,{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)(qa,{className:`ml-2 size-4 shrink-0 opacity-50`})]})}),(0,H.jsx)(kP,{className:`w-(--radix-popover-trigger-width) p-0`,align:`start`,children:(0,H.jsxs)(t1,{children:[(0,H.jsx)(n1,{placeholder:`Search…`}),(0,H.jsx)(r1,{id:u,children:f?(0,H.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,H.jsx)(Xb,{className:`size-4`})}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(i1,{children:`No entries found.`}),(0,H.jsx)(a1,{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)(Ha,{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)(as,{className:`size-3`})})]},e))})]})}var P1={full:`col-span-6`,"two-thirds":`col-span-4`,half:`col-span-3`,third:`col-span-2`};function F1({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)(jP,{type:`single`,collapsible:!0,className:`w-full`,children:i.map((e,t)=>(0,H.jsxs)(MP,{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)(NP,{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)(Ka,{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)(Ua,{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)(Xo,{className:`size-3.5`})})]})]}),(0,H.jsx)(PP,{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:P1[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)(V1,{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 I1=3,L1=20;function R1({value:e,onChange:t,disabled:n=!1,depth:r=0}){let i=Array.isArray(e)?e:[],a=r+1<I1,o=i.length<L1;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)(jP,{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)(MP,{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)(NP,{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)(Ka,{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)(Ua,{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)(Xo,{className:`size-3.5`})})]})]}),(0,H.jsxs)(PP,{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)(J,{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)(J,{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)(R1,{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 (`,I1,` 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 `,L1,` items allowed per level.`]})]})}function z1(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/^-+|-+$/g,``)}function B1({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 i$(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)(t$,{value:String(e??``),onChange:t,placeholder:`Type or add your content here...`,onInsertImage:p})}),(0,H.jsx)(my,{open:a,onOpenChange:h,children:(0,H.jsxs)(vy,{className:`max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(ts,{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)(uo,{className:`size-4`}),`Library`]})]}),d&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:d})]})}),(0,H.jsx)(_1,{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 V1({field:e,value:t,onChange:n,allValues:r,disabled:i,errorMessage:a}){let o=(0,v.useRef)(null),{timezone:s}=ba();(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=z1(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=z1(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=z1(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)(pk,{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)(B1,{value:t,onChange:n,disabled:!!i}):e.type===`text`?(0,H.jsx)(AP,{className:K(c,`text-base`),value:String(t??``),placeholder:d1(e.name),onChange:e=>n(e.target.value),disabled:!!i}):e.type===`number`?e.subtype===`float`?(0,H.jsx)(x1,{value:t,onChange:n,disabled:!!i}):(0,H.jsx)(J,{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)(w1,{value:t,onChange:n,timezone:s,disabled:!!i}):e.type===`uid`?(0,H.jsxs)(`div`,{children:[(0,H.jsx)(J,{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)(v1,{value:t,onChange:n,allowedTypes:e.allowedTypes,disabled:!!i}):e.type===`media-gallery`?(0,H.jsx)(b1,{value:t,onChange:n,disabled:!!i}):e.type===`relation`?(0,H.jsx)(N1,{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)(F1,{field:e,value:t,onChange:n,disabled:!!i}):e.type===`mixed`?(0,H.jsx)(C1,{value:t,onChange:n,inputId:`field-${e.name}-mixed-boolean`,disabled:!!i}):e.type===`navigation`?(0,H.jsx)(R1,{value:t,onChange:n,disabled:!!i}):(0,H.jsx)(J,{className:K(c,`text-base md:text-base`),value:String(t??``),placeholder:d1(e.name),onChange:e=>n(e.target.value),disabled:!!i})}var H1=`plank-preview`;function U1(e,t){let n=!1,r=e.replace(/\{(contentType|entryId|slug|status)\}/g,(e,r)=>{let i=t[r];return i==null||i===``?(n=!0,``):encodeURIComponent(i)});return n||/\{[^}]+\}/.test(r)?null:r}function W1(e){return{enabled:String(e?.enabled??`false`).toLowerCase()===`true`,syncUrl:e?.sync_url?.trim()??``,urlTemplate:e?.url_template?.trim()??``,slugField:e?.slug_field?.trim()||`slug`}}function G1(e){return{enabled:String(e?.preview_enabled??`false`).toLowerCase()===`true`,syncUrl:e?.preview_sync_url?.trim()??``,urlTemplate:e?.preview_url_template?.trim()??``,slugField:e?.preview_slug_field?.trim()||`slug`}}function K1(e,t){if(!e.enabled)return null;if(!e.urlTemplate)return`Set a preview URL template in Settings > Overview > Preview.`;if(e.syncUrl)try{new URL(e.syncUrl)}catch{return`Preview sync webhook URL must be an absolute URL.`}if(e.urlTemplate.includes(`{slug}`)&&!t.includes(e.slugField))return`Preview slug field "${e.slugField}" does not exist on this content type.`;let n=U1(e.urlTemplate,{contentType:`sample-content`,entryId:`sample-entry`,slug:`sample-slug`,status:`draft`});if(!n)return`Preview URL template contains unsupported or unresolved placeholders.`;try{return new URL(n),null}catch{return`Preview URL template must resolve to an absolute URL.`}}function q1(e){let{config:t,contentType:n,entry:r,status:i}=e;if(!t.enabled||!t.urlTemplate)return null;let a=r[t.slugField],o=U1(t.urlTemplate,{contentType:n,entryId:r.id?String(r.id):null,slug:typeof a==`string`&&a.trim()?a.trim():null,status:i??(typeof r.status==`string`?r.status:null)});if(!o)return null;try{return new URL(o).toString()}catch{return null}}var J1=null;function Y1(e){return Array.isArray(e)?e.map(Y1):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,Y1(t)])):e}function X1(e){return JSON.stringify(Y1(e))}function Z1(e){let t=e.match(/Field "([^"]+)" already exists\.?/);return t?t[1]??null:null}function Q1(){let{slug:e,id:t}=gr(),n=fr(),r=!t,{timezone:i,locales:a,defaultLocale:o,editorialMode:s}=ba(),{user:c,status:l}=_a(),u=c?.role?.toLowerCase()??``,{data:d,loading:f}=Ta(e?`/cms/admin/content-types/${e}`:null),{data:p}=Ta(`/cms/admin/client-settings`),{data:m,loading:h}=Ta(e&&t?`/cms/admin/entries/${e}/${t}`:null),{data:g}=Ta(s&&[`editor`,`admin`,`super admin`].includes(c?.role?.toLowerCase()??``)?`/cms/admin/users`:null),{loading:_,request:y}=Sb(),{loading:b,request:x}=Sb(),{loading:S,request:C}=Sb(),[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=G1(p),Ce=d?.kind===`collection`&&d.previewEnabled!==!1,we=d?K1(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=X1(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=X1(e),m.scheduled_for?(F(m.scheduled_for),_e(new Date(m.scheduled_for)),ye(tx(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(X1(r)!==X1(n))}else L(!1)},[m,d,r]);let De=X1(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(tx(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=X1(w),i}catch(e){let t=Z1(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){!J1||J1.closed||(J1.location.href=e,J1.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=q1({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=q1({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(J1=window.open(a,H1),!J1){X.error(`Preview window was blocked by the browser.`);return}J1.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=nx(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;if(ak(`mod+s`,Ie,{enabled:!ot&&!Ke&&(M===`scheduled`?!0:De),label:`Save draft`}),ak(`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)(Xb,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]});if(!d)return null;let pt;pt=M===`scheduled`?(0,H.jsxs)(sT,{variant:`outline`,className:`border-blue-500 text-blue-600`,children:[(0,H.jsx)(za,{className:`size-3 mr-1`}),P?`Scheduled · ${ex(P,i)}`:`Scheduled`]}):M===`pending`?te?(0,H.jsx)(sT,{variant:`destructive`,children:`Pending`}):(0,H.jsx)(sT,{className:`bg-amber-500 text-black hover:bg-amber-500`,children:`Pending`}):M===`in_review`?(0,H.jsx)(sT,{variant:`outline`,children:`In Review`}):M===`published`?(0,H.jsx)(sT,{variant:I?`secondary`:`default`,children:I?`Published (pending changes)`:`Published`}):(0,H.jsx)(sT,{variant:`secondary`,children:`Draft`});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)(Yb,{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`}),pt]}),(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.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!r&&st&&!tt&&(0,H.jsx)(q,{variant:`ghost`,size:`icon`,className:`text-muted-foreground hover:text-destructive`,onClick:()=>ee(!0),disabled:S,children:(0,H.jsx)(Xo,{className:`size-4`})}),!r&&M===`published`&&!ot&&(0,H.jsxs)(q,{variant:`outline`,onClick:Be,disabled:Ke,children:[b?(0,H.jsx)(Xb,{className:`size-4`}):null,`Revert to draft`]}),!r&&M===`scheduled`&&!ot&&(0,H.jsxs)(q,{variant:`outline`,onClick:Be,disabled:Ke,children:[b?(0,H.jsx)(Xb,{className:`size-4`}):null,`Cancel schedule`]}),gt&&(0,H.jsxs)(pT,{value:z??`none`,onValueChange:He,disabled:!ht||Ke,children:[(0,H.jsx)(gT,{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)(kl,{avatarUrl:oe??null,firstName:re??null,lastName:ie??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,H.jsx)(hT,{placeholder:bt||`Assign editor`})]})}),(0,H.jsxs)(yT,{children:[!Ze&&(0,H.jsx)(xT,{value:`none`,children:`Unassign`}),mt.map(e=>(0,H.jsx)(xT,{value:e.id,children:e.first_name||e.last_name||e.id},e.id))]})]}),!ht&&_t&&(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)(kl,{avatarUrl:oe??null,firstName:re??null,lastName:ie??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,H.jsx)(`span`,{children:bt||`Assigned editor`})]}),vt&&(0,H.jsx)(q,{variant:`outline`,size:`icon`,onClick:Ue,disabled:Ke,children:(0,H.jsx)(Io,{className:`size-4`})}),yt&&(0,H.jsx)(q,{variant:`outline`,size:`icon`,onClick:We,disabled:Ke,children:(0,H.jsx)(as,{className:`size-4`})}),dt&&Se.enabled&&ft&&(0,H.jsx)(q,{variant:`outline`,onClick:Le,disabled:ot||Ke||!!we,title:Ee??void 0,children:`Open preview`}),(0,H.jsxs)(q,{variant:`outline`,onClick:Ie,size:s?`icon`:`default`,disabled:ot||(M===`scheduled`?Ke:!De||Ke),children:[_?(0,H.jsx)(Xb,{className:`size-4`}):s?(0,H.jsx)(Bo,{className:`size-4`}):null,!s&&(M===`scheduled`?`Save draft (cancel schedule)`:`Save draft`)]}),M!==`scheduled`&&!(s&&Xe)&&(0,H.jsxs)(q,{variant:`outline`,onClick:Me,size:s?`icon`:`default`,disabled:ot||Ke,children:[(0,H.jsx)(za,{className:`size-4`}),!s&&`Schedule`]}),(0,H.jsxs)(q,{onClick:Re,disabled:ot||!ct||Ke,children:[b?(0,H.jsx)(Xb,{className:`size-4`}):null,M===`scheduled`?s&&Xe?`Review`:`Publish now`:M===`published`&&!I?`Republish`:ut]})]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[fe&&!ot&&(0,H.jsxs)(`div`,{className:`mb-6 flex items-end gap-2 rounded-lg border p-4 bg-muted/30`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Date`}),(0,H.jsxs)(DP,{open:me,onOpenChange:he,children:[(0,H.jsx)(OP,{asChild:!0,children:(0,H.jsxs)(q,{variant:`outline`,className:`w-40 justify-between font-normal`,children:[ge?Mj(ge,`MMM d, yyyy`):`Select date`,(0,H.jsx)(Ua,{className:`size-4 opacity-50`})]})}),(0,H.jsx)(kP,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,H.jsx)(TP,{mode:`single`,selected:ge,captionLayout:`dropdown`,defaultMonth:ge??new Date,disabled:{before:new Date},onSelect:e=>{_e(e),he(!1)}})})]})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsxs)(Y,{children:[`Time `,(0,H.jsx)(`span`,{className:`text-muted-foreground font-normal`,children:`(24h)`})]}),(0,H.jsx)(J,{type:`time`,className:`w-32 appearance-none bg-background [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`,value:ve,onChange:e=>ye(e.target.value)})]}),(0,H.jsxs)(q,{onClick:ze,disabled:!lt||Ke,children:[b?(0,H.jsx)(Xb,{className:`size-4`}):null,`Confirm`]}),(0,H.jsx)(q,{variant:`ghost`,onClick:()=>pe(!1),children:`Cancel`})]}),(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)(ok,{checked:A,onCheckedChange:je,disabled:ot}),(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:A&&(0,H.jsx)(Uj,{value:O,onValueChange:e=>k(e),children:(0,H.jsx)(Wj,{children:E.map(e=>(0,H.jsx)(Gj,{value:e,disabled:ot,children:e.toUpperCase()},e))})})})]}),(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-4`,children:d.fields.map(e=>{let n=[`string`,`text`,`richtext`].includes(e.type),r=w.localized&&w.localized[O]?w.localized[O][e.name]:void 0,i=n&&A?r:w[e.name],a=e.type===`uid`&&e.targetField&&A&&[`string`,`text`,`richtext`].includes(d.fields.find(t=>t.name===e.targetField)?.type??``);return(0,H.jsx)(`div`,{className:ck[e.width??`full`],children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsxs)(Y,{htmlFor:`entry-${e.name}`,className:`capitalize`,children:[e.name.replace(/_/g,` `),e.required&&(0,H.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`})]}),(0,H.jsx)(V1,{field:e,value:i,onChange:t=>{e.type===`uid`&&ue===e.name&&de(null),n&&A?Ae(O,e.name,t):ke(e.name,t)},allValues:{...w,id:t,__activeLocale:O,__localizationEnabled:A,__defaultLocale:o},disabled:!!a||ot,errorMessage:e.type===`uid`&&ue===e.name?`${e.name} already exists.`:void 0})]})},e.name)})}),(0,H.jsx)(my,{open:R,onOpenChange:ee,children:(0,H.jsxs)(vy,{className:`max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Delete this entry?`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone.`}),(0,H.jsxs)(by,{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)(Xb,{className:`size-4`}):null,`Delete`]})]})]})}),(0,H.jsx)(my,{open:Oe.state===`blocked`,onOpenChange:()=>Oe.reset?.(),children:(0,H.jsxs)(vy,{className:`max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Unsaved changes`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Leave without saving?`}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>Oe.reset?.(),children:`Stay`}),(0,H.jsx)(q,{variant:`destructive`,onClick:()=>Oe.proceed?.(),children:`Leave`})]})]})})]})]})}function $1({...e}){return(0,H.jsx)(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,...e})}function e0({className:e,...t}){return(0,H.jsx)(`ol`,{"data-slot":`breadcrumb-list`,className:K(`flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5`,e),...t})}function t0({className:e,...t}){return(0,H.jsx)(`li`,{"data-slot":`breadcrumb-item`,className:K(`inline-flex items-center gap-1.5`,e),...t})}function n0({asChild:e,className:t,...n}){return(0,H.jsx)(e?_u:`a`,{"data-slot":`breadcrumb-link`,className:K(`transition-colors hover:text-foreground`,t),...n})}function r0({className:e,...t}){return(0,H.jsx)(`span`,{"data-slot":`breadcrumb-page`,role:`link`,"aria-disabled":`true`,"aria-current":`page`,className:K(`font-normal text-foreground`,e),...t})}function i0({children:e,className:t,...n}){return(0,H.jsx)(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:K(`[&>svg]:size-3.5`,t),...n,children:e??(0,H.jsx)(Ga,{})})}function a0(e,t){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),t())}function o0(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:`—`}function s0(e){let t=e.split(`/`).pop()??e;return t.replace(/\.[^.]+$/,``).trim()||t.trim()}function c0(e){return!!e?.startsWith(`image/`)}function l0(e){return!!e?.startsWith(`video/`)}function u0(e){return!!e?.startsWith(`audio/`)}function d0(e){return e===`application/pdf`}function f0(e,t){return e.split(`?`)[0].endsWith(`.m3u8`)||t===`application/x-mpegurl`||t===`application/vnd.apple.mpegurl`}async function p0(e){if(e.isFile)return new Promise(t=>{e.file(n=>t([{file:n,relativePath:e.fullPath.replace(/^\//,``)}]))});if(e.isDirectory){let t=e.createReader(),n=[];return await new Promise(e=>{let r=()=>{t.readEntries(async t=>{if(t.length===0){e();return}let i=await Promise.all(t.map(p0));n.push(...i.flat()),r()})};r()}),n}return[]}function m0({url:e}){let t=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let n=t.current;if(!n)return;if(n.canPlayType(`application/vnd.apple.mpegurl`)){n.src=e;return}let r=null;return L(async()=>{let{default:e}=await import(`./hls-0EiSYoTw.js`);return{default:e}},[]).then(({default:t})=>{if(!t.isSupported())return;let i=new t;r=i,i.loadSource(e),i.attachMedia(n)}),()=>{r?.destroy()}},[e]),(0,H.jsx)(`video`,{ref:t,controls:!0,className:`max-h-[70vh] w-full rounded-md bg-zinc-950`})}function h0({item:e}){let t=e.mime_type?.toLowerCase()??null;return c0(t)?(0,H.jsx)(`img`,{src:e.url,alt:e.alt??e.filename,className:`max-h-full max-w-full rounded-md object-contain`}):f0(e.url,t)?(0,H.jsx)(m0,{url:e.url}):l0(t)?(0,H.jsx)(`video`,{src:e.url,controls:!0,preload:`none`,className:`max-h-[70vh] w-full rounded-md bg-zinc-950`}):u0(t)?(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-4 py-6`,children:[(0,H.jsx)(ao,{className:`size-14 text-muted-foreground`}),(0,H.jsx)(`audio`,{src:e.url,controls:!0,className:`w-full`})]}):d0(t)?(0,H.jsx)(`iframe`,{src:e.url,title:e.filename,className:`h-[70vh] w-full rounded-md border`}):(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-4 py-8 text-center`,children:[(0,H.jsx)(so,{className:`size-14 text-muted-foreground`}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.mime_type??`Unknown type`}),(0,H.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,download:e.filename,children:(0,H.jsxs)(q,{variant:`outline`,size:`sm`,children:[(0,H.jsx)(to,{className:`size-4`}),`Download`]})})]})}function g0({folder:e,onOpen:t,onDelete:n,onRename:r,canDelete:i,canRename:a,selected:o,onToggle:s}){return(0,H.jsxs)(`div`,{className:`group relative flex items-center gap-3 rounded-lg border bg-card px-3 py-2.5 transition-colors cursor-pointer hover:bg-muted/50 ${o?`ring-2 ring-primary`:``}`,role:`button`,tabIndex:0,"aria-pressed":o,onClick:()=>{o||t(e)},onKeyDown:n=>{a0(n,()=>{o||t(e)})},children:[(0,H.jsxs)(`div`,{className:`relative shrink-0 size-7 flex items-center justify-center`,children:[(0,H.jsx)(po,{className:`size-7 text-muted-foreground transition-opacity ${o?`opacity-0`:`group-hover:opacity-0`}`}),(0,H.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center transition-opacity ${o?`opacity-100`:`opacity-0 group-hover:opacity-100`}`,onPointerDown:e=>e.stopPropagation(),children:(0,H.jsx)(pk,{checked:o,onCheckedChange:()=>s(`folder:${e.id}`),"aria-label":`Select folder`})})]}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsx)(`p`,{className:`text-sm font-bold truncate`,title:e.name,children:e.name}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[e.item_count,` `,e.item_count===1?`item`:`items`]})]}),!o&&(a||i)&&(0,H.jsxs)(gv,{children:[(0,H.jsx)(_v,{asChild:!0,children:(0,H.jsx)(`button`,{type:`button`,className:`shrink-0 opacity-0 group-hover:opacity-100 transition-opacity flex size-6 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground`,onClick:e=>e.stopPropagation(),children:(0,H.jsx)(no,{className:`size-4`})})}),(0,H.jsxs)(bv,{align:`end`,onClick:e=>e.stopPropagation(),children:[a&&(0,H.jsxs)(xv,{onSelect:()=>r(e),children:[(0,H.jsx)(Io,{className:`size-4`}),`Rename`]}),i&&(0,H.jsxs)(xv,{onSelect:()=>n(e),className:`text-destructive focus:text-destructive`,children:[(0,H.jsx)(Xo,{className:`size-4`}),`Delete`]})]})]})]})}function _0({item:e,onDelete:t,onPreview:n,canDelete:r,selected:i,onToggle:a}){let o=e.mime_type?.toLowerCase()??null;return(0,H.jsxs)(`div`,{className:`group relative rounded-lg border bg-card overflow-hidden transition-colors ${i?`ring-2 ring-primary`:``}`,children:[(0,H.jsx)(`div`,{className:`aspect-square bg-muted flex items-center justify-center cursor-pointer`,role:`button`,tabIndex:0,"aria-pressed":i,onClick:()=>{i||n(e)},onKeyDown:t=>{a0(t,()=>{i||n(e)})},children:c0(o)?(0,H.jsx)(`img`,{src:e.url,alt:e.alt??e.filename,className:`h-full w-full object-cover`}):l0(o)||f0(e.url,o)?(0,H.jsx)(oo,{className:`size-10 text-muted-foreground`}):u0(o)?(0,H.jsx)(ao,{className:`size-10 text-muted-foreground`}):d0(o)?(0,H.jsx)(so,{className:`size-10 text-muted-foreground`}):(0,H.jsx)(co,{className:`size-10 text-muted-foreground`})}),(0,H.jsx)(`div`,{className:`absolute top-1.5 left-1.5 transition-opacity ${i?`opacity-100`:`opacity-0 group-hover:opacity-100`}`,children:(0,H.jsx)(pk,{checked:i,onCheckedChange:()=>a(e.id),"aria-label":`Select file`,className:`bg-background/80 backdrop-blur-sm`})}),!i&&r&&(0,H.jsx)(`button`,{type:`button`,onClick:()=>t(e),className:`absolute top-1.5 right-1.5 flex size-6 items-center justify-center rounded-md bg-background/80 text-muted-foreground opacity-0 backdrop-blur-sm transition-opacity hover:text-destructive group-hover:opacity-100`,children:(0,H.jsx)(Xo,{className:`size-3.5`})}),(0,H.jsxs)(`div`,{className:`p-2`,children:[(0,H.jsx)(`p`,{className:`text-xs font-medium truncate`,title:e.filename,children:e.filename}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o0(e.size)})]})]})}function v0(){let{timezone:e}=ba(),t=(0,v.useRef)(null),{user:n}=_a(),r=n?.permissions??[],i=r.includes(`*`)||r.includes(`media:write`),a=r.includes(`*`)||r.includes(`media:delete`),[o,s]=(0,v.useState)([{id:null,name:`Media`}]),c=o[o.length-1].id,[l,u]=(0,v.useState)(1),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(``);(0,v.useEffect)(()=>{let e=setTimeout(()=>{m(d),u(1)},300);return()=>clearTimeout(e)},[d]),(0,v.useEffect)(()=>{u(1),f(``),m(``)},[c]);let{data:h,loading:g,refetch:_}=Ta(`/cms/admin/folders?parent_id=${c??``}`),{data:y,loading:b,refetch:x}=Ta(`/cms/admin/media?folder_id=${c??``}&page=${l}&limit=48${p?`&search=${encodeURIComponent(p)}`:``}`),S=(0,v.useCallback)(()=>{_(),x()},[_,x]),[C,w]=(0,v.useState)(!1),[T,E]=(0,v.useState)(null),[D,O]=(0,v.useState)(new Set),[k,A]=(0,v.useState)(null),[j,M]=(0,v.useState)(``),[N,P]=(0,v.useState)(``),[F,I]=(0,v.useState)(``),[L,R]=(0,v.useState)(!1),[ee,te]=(0,v.useState)(null),[ne,z]=(0,v.useState)(null),[B,re]=(0,v.useState)(null),[V,ie]=(0,v.useState)(null),[ae,oe]=(0,v.useState)(``),[se,ce]=(0,v.useState)(!1),[le,ue]=(0,v.useState)(``),[de,fe]=(0,v.useState)(!1),[pe,me]=(0,v.useState)(!1),{loading:he,error:ge,request:_e}=Sb(),{loading:ve,error:ye,request:be}=Sb();async function xe(e){if(e.some(({relativePath:e})=>e.endsWith(`.m3u8`))){let t=new FormData;for(let{file:n,relativePath:r}of e)t.append(`files`,n,r);c&&t.append(`folder_id`,c),t.append(`bundle`,`true`);let n=await fetch(`/cms/admin/media`,{method:`POST`,credentials:`include`,body:t});if(!n.ok){let e=await n.text(),t=`Upload failed.`;try{t=JSON.parse(e).error??t}catch{}throw Error(t)}}else await Promise.all(e.map(({file:e})=>i$(e,{folderId:c})))}async function Se(e){if(i&&!(!e||e.length===0)){w(!0),E(null);try{await xe(Array.from(e).map(e=>({file:e,relativePath:e.webkitRelativePath||e.name}))),S(),X.success(`Upload complete`)}catch(e){E(e instanceof Error?e.message:`Upload failed.`),X.error(`Upload failed`)}finally{w(!1),t.current&&(t.current.value=``)}}}async function Ce(e){if(!i)return;e.preventDefault();let t=Array.from(e.dataTransfer.items);if(!t.some(e=>typeof e.webkitGetAsEntry==`function`)){Se(e.dataTransfer.files);return}w(!0),E(null);try{let e=t.map(e=>e.webkitGetAsEntry()).filter(e=>e!==null);await xe((await Promise.all(e.map(p0))).flat()),S(),X.success(`Upload complete`)}catch(e){E(e instanceof Error?e.message:`Upload failed.`),X.error(`Upload failed`)}finally{w(!1)}}function we(e){s(t=>[...t,{id:e.id,name:e.name}]),O(new Set)}function Te(e){s(t=>t.slice(0,e+1)),O(new Set)}async function Ee(){if(i&&le.trim())try{await be(`/cms/admin/folders`,`POST`,{name:le.trim(),parent_id:c}),ce(!1),ue(``),_(),X.success(`Folder created`)}catch{X.error(`Could not create folder`)}}async function De(){if(i&&!(!V||!ae.trim()))try{await be(`/cms/admin/folders/${V.id}`,`PATCH`,{name:ae.trim()}),ie(null),_(),X.success(`Folder renamed`)}catch{X.error(`Could not rename folder`)}}async function Oe(){if(a&&B)try{await _e(`/cms/admin/folders/${B.id}`,`DELETE`),re(null),_(),X.success(`Folder deleted`)}catch{X.error(`Could not delete folder`)}}async function ke(){if(a&&ne)try{await _e(`/cms/admin/media/${ne.id}`,`DELETE`),z(null),x(),X.success(`File deleted`)}catch{X.error(`Could not delete file`)}}function Ae(e){O(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function je(e){A(e),M(e.filename),P(e.alt??s0(e.filename)),I(e.caption??``),te(null)}function Me(e){if(!k)return;let t=Ie.findIndex(e=>e.id===k.id);if(t===-1)return;let n=Ie[t+e];n&&je(n)}async function Ne(){if(k){R(!0),te(null);try{let e=await fetch(`/cms/admin/media/${k.id}`,{method:`PATCH`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filename:j||k.filename,alt:N.trim()||null,caption:F.trim()||null})});if(!e.ok)throw Error(`Save failed.`);je(await e.json()),x(),X.success(`File updated`)}catch(e){te(e instanceof Error?e.message:`Save failed.`),X.error(`Could not update file`)}finally{R(!1)}}}function Pe(e){M(e);let t=s0(j),n=s0(e);(!N.trim()||N===t)&&P(n)}let Fe=h?.folders??[],Ie=y?.items??[],Le=k?Ie.findIndex(e=>e.id===k.id):-1,Re=Le>0,ze=Le!==-1&&Le<Ie.length-1,Be=[...Fe.map(e=>`folder:${e.id}`),...Ie.map(e=>e.id)];(0,v.useEffect)(()=>{if(!k)return;function e(e){e.key===`ArrowLeft`&&Re&&(e.preventDefault(),Me(-1)),e.key===`ArrowRight`&&ze&&(e.preventDefault(),Me(1))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[k,Re,ze,Ie]);async function Ve(){if(a&&!pe){me(!0);try{await Promise.all([...[...D].filter(e=>e.startsWith(`folder:`)).map(e=>fetch(`/cms/admin/folders/${e.slice(7)}`,{method:`DELETE`,credentials:`include`})),...[...D].filter(e=>!e.startsWith(`folder:`)).map(e=>fetch(`/cms/admin/media/${e}`,{method:`DELETE`,credentials:`include`}))]),X.success(`Files deleted`),fe(!1),O(new Set),S()}catch{X.error(`Could not delete files`)}finally{me(!1)}}}let He=g||b,Ue=Fe.length===0&&Ie.length===0;return(0,H.jsxs)(`div`,{children:[(0,H.jsx)(Yb,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-semibold -mt-2`,children:`Media Library`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(q,{variant:`outline`,onClick:()=>{ue(``),ce(!0)},disabled:!i,children:[(0,H.jsx)(fo,{className:`size-4`}),`New folder`]}),(0,H.jsxs)(q,{onClick:()=>t.current?.click(),disabled:C||!i,children:[C?(0,H.jsx)(Xb,{className:`size-4`}):(0,H.jsx)(ts,{className:`size-4`}),C?`Uploading…`:`Upload`]})]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[o.length>1&&(0,H.jsx)($1,{className:`mb-4`,children:(0,H.jsx)(e0,{children:o.map((e,t)=>(0,H.jsxs)(v.Fragment,{children:[t>0&&(0,H.jsx)(i0,{}),(0,H.jsx)(t0,{children:t===o.length-1?(0,H.jsx)(r0,{children:t===0?(0,H.jsx)(yo,{className:`size-3.5`}):e.name}):(0,H.jsx)(n0,{asChild:!0,children:(0,H.jsx)(`button`,{onClick:()=>Te(t),children:t===0?(0,H.jsx)(yo,{className:`size-3.5`}):e.name})})})]},`${e.id??`root`}:${e.name}`))})}),(0,H.jsxs)(`div`,{className:`mb-4 flex items-center gap-2 rounded-lg border border-border bg-muted/50 p-2`,children:[(0,H.jsxs)(`div`,{className:`relative max-w-72 w-full`,children:[(0,H.jsx)(Vo,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,H.jsx)(J,{className:`pl-9 h-8 bg-background`,placeholder:`Search media…`,value:d,onChange:e=>f(e.target.value)})]}),!b&&y!=null&&(0,H.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[Ie.length,` / `,y.total,` `,y.total===1?`file`:`files`]}),(0,H.jsx)(`div`,{className:`ml-auto flex h-8 items-center gap-2`,children:D.size>0?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`span`,{className:`text-sm font-medium`,children:[D.size,` selected`]}),(0,H.jsx)(q,{variant:`outline`,size:`sm`,onClick:()=>O(new Set),children:`Clear`}),a&&(0,H.jsxs)(q,{variant:`destructive`,size:`sm`,disabled:pe,onClick:()=>fe(!0),children:[(0,H.jsx)(Xo,{className:`size-3.5`}),`Delete`]})]}):!Ue&&!He?(0,H.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors`,onClick:()=>O(new Set(Be)),children:[(0,H.jsx)(pk,{checked:!1,"aria-hidden":!0,className:`pointer-events-none`}),`Select all`]}):null})]}),(0,H.jsx)(`input`,{ref:t,type:`file`,multiple:!0,className:`hidden`,onChange:e=>Se(e.target.files)}),T&&(0,H.jsx)(`p`,{className:`mb-4 text-sm text-destructive`,children:T}),He?(0,H.jsx)(`div`,{className:`flex items-center gap-2 py-16 justify-center text-muted-foreground`,children:(0,H.jsx)(Xb,{className:`size-5`})}):Ue?(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-lg border border-dashed py-20 text-center cursor-pointer hover:bg-muted/50 transition-colors`,onClick:()=>i&&t.current?.click(),onDragOver:e=>e.preventDefault(),onDrop:Ce,children:[(0,H.jsx)(ts,{className:`size-8 text-muted-foreground mb-3`}),(0,H.jsx)(`p`,{className:`text-sm font-medium`,children:`Drop files or folders here, or click to upload`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:`Images, videos, audio, documents and more`})]}):(0,H.jsxs)(`div`,{className:`flex flex-col gap-6`,onDragOver:e=>e.preventDefault(),onDrop:Ce,children:[Fe.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4`,children:Fe.map(e=>(0,H.jsx)(g0,{folder:e,onOpen:we,onDelete:re,onRename:e=>{ie(e),oe(e.name)},canDelete:a,canRename:i,selected:D.has(`folder:${e.id}`),onToggle:Ae},e.id))}),Ie.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6`,children:Ie.map(e=>(0,H.jsx)(_0,{item:e,onDelete:z,onPreview:je,canDelete:a,selected:D.has(e.id),onToggle:Ae},e.id))})]}),(y?.pages??0)>1&&(0,H.jsx)(`div`,{className:`mt-4`,children:(0,H.jsx)(Fk,{className:`mx-0 w-auto justify-end`,children:(0,H.jsxs)(Ik,{children:[(0,H.jsx)(Lk,{children:(0,H.jsx)(zk,{href:`#`,onClick:e=>{e.preventDefault(),l>1&&u(l-1)},"aria-disabled":l===1,className:l===1?`pointer-events-none opacity-50`:``})}),(0,H.jsx)(Lk,{children:(0,H.jsx)(Bk,{href:`#`,onClick:e=>{e.preventDefault(),l<(y?.pages??1)&&u(l+1)},"aria-disabled":l===(y?.pages??1),className:l===(y?.pages??1)?`pointer-events-none opacity-50`:``})})]})})}),(0,H.jsx)(my,{open:!!k,onOpenChange:e=>{e||(A(null),te(null),I(``))},children:(0,H.jsxs)(vy,{className:`sm:max-w-5xl max-h-[90vh] overflow-hidden p-0`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{className:`truncate px-6 pt-6 pr-12`,title:k?.filename,children:k?.filename})}),k&&(0,H.jsxs)(`div`,{className:`grid max-h-[calc(90vh-4rem)] min-h-0 gap-0 lg:grid-cols-[minmax(0,1fr)_320px]`,children:[(0,H.jsxs)(`div`,{className:`relative flex min-h-0 items-center justify-center overflow-hidden bg-muted/30 px-6 py-4`,children:[(0,H.jsx)(`div`,{className:`flex h-full w-full min-h-[280px] items-center justify-center overflow-hidden rounded-xl border bg-background/70 p-4`,children:(0,H.jsx)(h0,{item:k})}),(0,H.jsx)(q,{type:`button`,variant:`secondary`,size:`icon`,className:`absolute left-8 top-1/2 size-10 -translate-y-1/2 rounded-full shadow-sm`,onClick:()=>Me(-1),disabled:!Re,"aria-label":`Previous file`,children:(0,H.jsx)(Wa,{className:`size-4`})}),(0,H.jsx)(q,{type:`button`,variant:`secondary`,size:`icon`,className:`absolute right-8 top-1/2 size-10 -translate-y-1/2 rounded-full shadow-sm`,onClick:()=>Me(1),disabled:!ze,"aria-label":`Next file`,children:(0,H.jsx)(Ga,{className:`size-4`})})]}),(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col border-t lg:border-l lg:border-t-0`,children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 border-b px-6 py-4 text-xs text-muted-foreground`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Type`}),(0,H.jsx)(`p`,{className:`break-all`,children:k.mime_type??`—`})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Size`}),(0,H.jsx)(`p`,{children:o0(k.size??null)})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Dimensions`}),(0,H.jsx)(`p`,{children:k.width&&k.height?`${k.width} × ${k.height}`:`—`})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Created`}),(0,H.jsx)(`p`,{children:ex(k.created_at,e)})]})]}),(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 py-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{className:`text-xs`,children:`Filename`}),(0,H.jsx)(J,{value:j,onChange:e=>Pe(e.target.value),placeholder:k.filename,className:`text-sm`,disabled:!i})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{className:`text-xs`,children:`Alt text`}),(0,H.jsx)(J,{value:N,onChange:e=>P(e.target.value),placeholder:s0(j||k.filename),className:`text-sm`,disabled:!i}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Defaulted from the filename without extension. You can override it.`})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{className:`text-xs`,children:`Subtitle`}),(0,H.jsx)(AP,{value:F,onChange:e=>I(e.target.value),placeholder:`Used as figcaption in the frontend…`,className:`min-h-28 resize-none text-sm`,disabled:!i})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-3 pt-2`,children:[(0,H.jsx)(`a`,{href:k.url,target:`_blank`,rel:`noreferrer`,download:k.filename,children:(0,H.jsxs)(q,{variant:`outline`,size:`sm`,type:`button`,children:[(0,H.jsx)(to,{className:`size-3.5`}),`Download`]})}),(0,H.jsx)(q,{type:`button`,size:`sm`,onClick:Ne,disabled:L||!i,children:L?`Saving…`:`Save`})]}),ee&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:ee})]})]})]})]})}),(0,H.jsx)(my,{open:se,onOpenChange:e=>{e||ce(!1)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`New folder`})}),(0,H.jsx)(J,{placeholder:`Folder name`,value:le,onChange:e=>ue(e.target.value),onKeyDown:e=>{e.key===`Enter`&&Ee()}}),ye&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:ye}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>ce(!1),children:`Cancel`}),(0,H.jsx)(q,{onClick:Ee,disabled:ve||!le.trim()||!i,children:ve?`Creating…`:`Create`})]})]})}),(0,H.jsx)(my,{open:!!V,onOpenChange:e=>{e||ie(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Rename folder`})}),(0,H.jsx)(J,{value:ae,onChange:e=>oe(e.target.value),onKeyDown:e=>{e.key===`Enter`&&De()}}),ye&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:ye}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>ie(null),children:`Cancel`}),(0,H.jsx)(q,{onClick:De,disabled:ve||!ae.trim()||!i,children:ve?`Saving…`:`Save`})]})]})}),(0,H.jsx)(my,{open:!!ne,onOpenChange:e=>{e||z(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Delete file`})}),(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:ne?.filename}),`? This action cannot be undone.`]}),ge&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:ge}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>z(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:ke,disabled:he||!a,children:he?`Deleting…`:`Delete`})]})]})}),(0,H.jsx)(my,{open:!!B,onOpenChange:e=>{e||re(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Delete folder`})}),(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:B?.name}),`? The folder must be empty.`]}),ge&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:ge}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>re(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:Oe,disabled:he||!a,children:he?`Deleting…`:`Delete`})]})]})}),(0,H.jsx)(my,{open:de,onOpenChange:e=>{e||fe(!1)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsxs)(xy,{children:[`Delete `,D.size,` `,D.size===1?`item`:`items`,`?`]})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone. Non-empty folders will be skipped.`}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>fe(!1),children:`Cancel`}),(0,H.jsxs)(q,{variant:`destructive`,onClick:Ve,disabled:pe,children:[pe?(0,H.jsx)(Xb,{className:`size-4`}):null,`Delete`]})]})]})})]})]})}function y0({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 b0(e,t){return e?.permissions.includes(`*`)||e?.permissions.includes(t)||!1}function x0(){let{user:e}=_a(),t=[{label:`Overview`,to:`/settings/overview`,icon:Ho,permission:`settings:overview:read`},{label:`Users`,to:`/settings/users`,icon:rs,permission:`settings:users:read`},{label:`Roles`,to:`/settings/roles`,icon:Uo,permission:`settings:roles:read`},{label:`API Tokens`,to:`/settings/api-tokens`,icon:Co,permission:`settings:api-tokens:read`},{label:`Webhooks`,to:`/settings/webhooks`,icon:is,permission:`settings:webhooks:read`}].filter(({permission:t})=>b0(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)(y0,{items:t})]})}function S0(){return NT((0,H.jsx)(x0,{})),(0,H.jsx)($r,{})}var C0=`••••••••`;function w0({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)(J,{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)(J,{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 T0({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]===C0,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)(J,{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)(ro,{className:`size-4`}):(0,H.jsx)(io,{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 E0({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)(J,{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)(T0,{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)(J,{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)(J,{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)(J,{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)(J,{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 D0({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)(J,{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)(T0,{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)(J,{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)(J,{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)(J,{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 O0(){let{user:e}=_a(),{data:t,loading:n}=Ta(`/cms/admin/settings/media`),{loading:r,error:i,request:a}=Sb(),[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)(Xb,{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)(pT,{value:d,onValueChange:e=>h(e),children:[(0,H.jsx)(gT,{id:`provider`,disabled:!p,children:(0,H.jsx)(hT,{})}),(0,H.jsxs)(yT,{children:[(0,H.jsx)(xT,{value:`local`,children:`Local`}),(0,H.jsx)(xT,{value:`s3`,children:`Amazon S3`}),(0,H.jsx)(xT,{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)(J,{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)(w0,{values:u,onChange:m,disabled:!p}),d===`s3`&&(0,H.jsx)(E0,{values:u,onChange:m,disabled:!p}),d===`r2`&&(0,H.jsx)(D0,{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 k0={name:`@plank-cms/admin`,version:`0.27.1`,type:`module`,scripts:{build:`vite build`,dev:`vite`,lint:`eslint src/`},dependencies:{"@dnd-kit/core":`6.3.1`,"@dnd-kit/sortable":`10.0.0`,"@dnd-kit/utilities":`3.2.2`,"@radix-ui/react-avatar":`1.1.11`,"@radix-ui/react-checkbox":`1.3.3`,"@radix-ui/react-dialog":`1.1.15`,"@radix-ui/react-dropdown-menu":`2.1.16`,"@radix-ui/react-label":`2.1.8`,"@radix-ui/react-popover":`1.1.15`,"@radix-ui/react-select":`2.2.6`,"@radix-ui/react-separator":`1.1.8`,"@radix-ui/react-slot":`1.2.4`,"@radix-ui/react-switch":`1.2.6`,"@radix-ui/react-tabs":`1.1.13`,"@radix-ui/react-tooltip":`1.2.8`,"@tanstack/react-table":`8.21.3`,"@tiptap/extension-image":`3.22.4`,"@tiptap/pm":`3.22.4`,"@tiptap/react":`3.22.4`,"@tiptap/starter-kit":`3.22.4`,"class-variance-authority":`0.7.1`,clsx:`2.1.1`,cmdk:`1.1.1`,"date-fns":`4.1.0`,"hls.js":`1.6.16`,"input-otp":`1.4.2`,"lucide-react":`1.8.0`,"next-themes":`0.4.6`,"qrcode.react":`4.2.0`,"radix-ui":`1.4.3`,react:`19.2.5`,"react-day-picker":`9.14.0`,"react-dom":`19.2.5`,"react-router-dom":`7.14.1`,sonner:`2.0.7`,"tailwind-merge":`3.5.0`},devDependencies:{"@tailwindcss/vite":`4.2.3`,"@types/react":`19.2.14`,"@types/react-dom":`19.2.3`,"@types/react-router-dom":`5.3.3`,"@vitejs/plugin-react":`6.0.1`,tailwindcss:`4.2.3`,vite:`8.0.9`}},A0=[{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 j0(){let{user:e}=_a(),{data:t,loading:n}=Ta(`/cms/admin/settings/general`),{request:r,loading:i}=Sb(),{request:a,loading:o}=Sb(),{request:s,loading:c}=Sb(),{refreshSettings:l}=ba(),[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)(Xb,{}):(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(cT,{children:(0,H.jsxs)(fT,{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 `,k0.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)(pT,{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)(gT,{id:`timezone`,className:`w-full`,disabled:!S,children:(0,H.jsx)(hT,{})}),(0,H.jsx)(yT,{className:`max-h-72`,children:A0.map(e=>(0,H.jsx)(xT,{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)(J,{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)(pT,{value:m,onValueChange:h,children:[(0,H.jsx)(gT,{id:`default-locale`,className:`w-full`,disabled:!S,children:(0,H.jsx)(hT,{})}),(0,H.jsx)(yT,{className:`max-h-72`,children:f.length===0?(0,H.jsx)(xT,{value:m,children:m}):f.map(e=>(0,H.jsx)(xT,{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)(jk,{}),(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)(ok,{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 M0(){let{user:e}=_a(),{data:t,loading:n}=Ta(`/cms/admin/settings/preview`),{request:r,loading:i}=Sb(),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=W1(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)(Xb,{}):(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)(ok,{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)(J,{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)(J,{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)(J,{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 N0(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(Yb,{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)(Uj,{defaultValue:`general`,className:`mt-24`,children:[(0,H.jsxs)(Wj,{className:`mb-6`,children:[(0,H.jsx)(Gj,{value:`general`,children:`General`}),(0,H.jsx)(Gj,{value:`preview`,children:`Preview`}),(0,H.jsx)(Gj,{value:`media`,children:`Media Library`})]}),(0,H.jsx)(Kj,{value:`general`,children:(0,H.jsx)(j0,{})}),(0,H.jsx)(Kj,{value:`preview`,children:(0,H.jsx)(M0,{})}),(0,H.jsx)(Kj,{value:`media`,children:(0,H.jsx)(O0,{})})]})]})}function P0(e,t){return typeof e==`function`?e(t):e}function F0(e,t){return n=>{t.setState(t=>({...t,[e]:P0(n,t[e])}))}}function I0(e){return e instanceof Function}function L0(e){return Array.isArray(e)&&e.every(e=>typeof e==`number`)}function R0(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 z0(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`,`
|
|
219
|
+
`):``,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=qK(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=qK(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()}}});_K.create({name:`listKit`,addExtensions(){let e=[];return this.options.bulletList!==!1&&e.push(xZ.configure(this.options.bulletList)),this.options.listItem!==!1&&e.push(SZ.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(NZ.configure(this.options.listKeymap)),this.options.orderedList!==!1&&e.push(WZ.configure(this.options.orderedList)),this.options.taskItem!==!1&&e.push(KZ.configure(this.options.taskItem)),this.options.taskList!==!1&&e.push(qZ.configure(this.options.taskList)),e}});var JZ=` `,YZ=`\xA0`,XZ=$K.create({name:`paragraph`,priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:`block`,content:`inline*`,parseHTML(){return[{tag:`p`}]},renderHTML({HTMLAttributes:e}){return[`p`,JW(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===JZ||n[0].text===JZ||n[0].raw===YZ||n[0].text===YZ)&&r.length===1&&r[0].type===`text`&&(r[0].text===JZ||r[0].text===YZ)?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?JZ:``}return t.renderChildren(r)},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),ZZ=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,QZ=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,$Z=cK.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`,JW(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[NK({find:ZZ,type:this.type})]},addPasteRules(){return[tq({find:QZ,type:this.type})]}}),eQ=$K.create({name:`text`,group:`inline`,parseMarkdown:e=>({type:`text`,text:e.text||``}),renderMarkdown:e=>e.text||``}),tQ=cK.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`,JW(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 nQ(e={}){return new BL({view(t){return new rQ(t,e)}})}var rQ=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=ZI(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)}},iQ=class e extends vL{constructor(e){super(e,e)}map(t,n){let r=t.resolve(n.map(this.head));return e.valid(r)?new e(r):vL.near(r)}content(){return UP.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 aQ(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!sQ(e)||!cQ(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&&!wL.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}}};iQ.prototype.visible=!1,iQ.findFrom=iQ.findGapCursorFrom,vL.jsonID(`gapcursor`,iQ);var aQ=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 iQ.valid(t)?new iQ(t):vL.near(t)}};function oQ(e){return e.isAtom||e.spec.isolating||e.spec.createGapCursor}function sQ(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||oQ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function cQ(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||oQ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function lQ(){return new BL({props:{decorations:mQ,createSelectionBetween(e,t,n){return t.pos==n.pos&&iQ.valid(n)?new iQ(n):null},handleClick:fQ,handleKeyDown:uQ,handleDOMEvents:{beforeinput:pQ}}})}var uQ=gU({ArrowLeft:dQ(`horiz`,-1),ArrowRight:dQ(`horiz`,1),ArrowUp:dQ(`vert`,-1),ArrowDown:dQ(`vert`,1)});function dQ(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 SL){if(!i.endOfTextblock(n)||o.depth==0)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let c=iQ.findGapCursorFrom(o,t,s);return c?(r&&r(e.tr.setSelection(new iQ(c))),!0):!1}}function fQ(e,t,n){if(!e||!e.editable)return!1;let r=e.state.doc.resolve(t);if(!iQ.valid(r))return!1;let i=e.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&wL.isSelectable(e.state.doc.nodeAt(i.inside))?!1:(e.dispatch(e.state.tr.setSelection(new iQ(r))),!0)}function pQ(e,t){if(t.inputType!=`insertCompositionText`||!(e.state.selection instanceof iQ))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=Q.empty;for(let e=r.length-1;e>=0;e--)i=Q.from(r[e].createAndFill(null,i));let a=e.state.tr.replace(n.pos,n.pos,new UP(i,0,0));return a.setSelection(SL.near(a.doc.resolve(n.pos+1))),e.dispatch(a),!1}function mQ(e){if(!(e.selection instanceof iQ))return null;let t=document.createElement(`div`);return t.className=`ProseMirror-gapcursor`,hH.create(e.doc,[fH.widget(e.selection.head,t,{key:`gapcursor`})])}var hQ=200,gQ=function(){};gQ.prototype.append=function(e){return e.length?(e=gQ.from(e),!this.length&&e||e.length<hQ&&this.leafAppend(e)||this.length<hQ&&e.leafPrepend(this)||this.appendInner(e)):this},gQ.prototype.prepend=function(e){return e.length?gQ.from(e).append(this):this},gQ.prototype.appendInner=function(e){return new vQ(this,e)},gQ.prototype.slice=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=this.length),e>=t?gQ.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},gQ.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},gQ.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)},gQ.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},gQ.from=function(e){return e instanceof gQ?e:e&&e.length?new _Q(e):gQ.empty};var _Q=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<=hQ)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=hQ)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}(gQ);gQ.empty=new _Q([]);var vQ=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}(gQ),yQ=500,bQ=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 SQ(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 SQ(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 SQ(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>wQ&&(s=xQ(s,l),o-=l),new e(s.append(a),o)}remapping(e,t){let n=new hI;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 SQ(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 SQ(i,o,l))}else r.push(new SQ(i))},i);let l=[];for(let e=n;e<o;e++)l.push(new SQ(a.maps[e]));let u=new e(this.items.slice(0,i).append(l).append(r),s);return u.emptyItemCount()>yQ&&(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 SQ(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(gQ.from(i.reverse()),a)}};bQ.empty=new bQ(gQ.empty,0);function xQ(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&t--==0)return n=r,!1}),e.slice(n)}var SQ=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)}}},CQ=class{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}},wQ=20;function TQ(e,t,n,r){let i=n.getMeta(NQ),a;if(i)return i.historyState;n.getMeta(PQ)&&(e=new CQ(e.done,e.undone,null,0,-1));let o=n.getMeta(`appendedTransaction`);if(n.steps.length==0)return e;if(o&&o.getMeta(NQ))return o.getMeta(NQ).redo?new CQ(e.done.addTransform(n,void 0,r,MQ(t)),e.undone,DQ(n.mapping.maps),e.prevTime,e.prevComposition):new CQ(e.done,e.undone.addTransform(n,void 0,r,MQ(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||!EQ(n,e.prevRanges)),s=o?OQ(e.prevRanges,n.mapping):DQ(n.mapping.maps);return new CQ(e.done.addTransform(n,a?t.selection.getBookmark():void 0,r,MQ(t)),bQ.empty,s,n.time,i??e.prevComposition)}else if(a=n.getMeta(`rebased`))return new CQ(e.done.rebased(n,a),e.undone.rebased(n,a),OQ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);else return new CQ(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),OQ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function EQ(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 DQ(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 OQ(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 kQ(e,t,n){let r=MQ(t),i=NQ.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 CQ(n?s:a.remaining,n?a.remaining:s,null,0,-1);return a.transform.setSelection(o).setMeta(NQ,{redo:n,historyState:c})}var AQ=!1,jQ=null;function MQ(e){let t=e.plugins;if(jQ!=t){AQ=!1,jQ=t;for(let e=0;e<t.length;e++)if(t[e].spec.historyPreserveItems){AQ=!0;break}}return AQ}var NQ=new UL(`history`),PQ=new UL(`closeHistory`);function FQ(e={}){return e={depth:e.depth||100,newGroupDelay:e.newGroupDelay||500},new BL({key:NQ,state:{init(){return new CQ(bQ.empty,bQ.empty,null,0,-1)},apply(t,n,r){return TQ(n,r,t,e)}},config:e,props:{handleDOMEvents:{beforeinput(e,t){let n=t.inputType,r=n==`historyUndo`?LQ:n==`historyRedo`?RQ:null;return!r||!e.editable?!1:(t.preventDefault(),r(e.state,e.dispatch))}}}})}function IQ(e,t){return(n,r)=>{let i=NQ.getState(n);if(!i||(e?i.undone:i.done).eventCount==0)return!1;if(r){let a=kQ(i,n,e);a&&r(t?a.scrollIntoView():a)}return!0}}var LQ=IQ(!1,!0),RQ=IQ(!0,!0);_K.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 BL({key:new UL(`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 zQ=_K.create({name:`dropCursor`,addOptions(){return{color:`currentColor`,width:1,class:void 0}},addProseMirrorPlugins(){return[nQ(this.options)]}});_K.create({name:`focus`,addOptions(){return{className:`has-focus`,mode:`all`}},addProseMirrorPlugins(){return[new BL({key:new UL(`focus`),props:{decorations:({doc:e,selection:t})=>{let{isEditable:n,isFocused:r}=this.editor,{anchor:i}=t,a=[];if(!n||!r)return hH.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(fH.node(t,t+e.nodeSize,{class:this.options.className}))}),hH.create(e,a)}}})]}});var BQ=_K.create({name:`gapCursor`,addProseMirrorPlugins(){return[lQ()]},extendNodeSchema(e){return{allowGapCursor:HW(RW(e,`allowGapCursor`,{name:e.name,options:e.options,storage:e.storage}))??null}}}),VQ=`placeholder`;function HQ(e){return e.replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9-]/g,``).replace(/^[0-9-]+/,``).replace(/^-+/,``).toLowerCase()}_K.create({name:`placeholder`,addOptions(){return{emptyEditorClass:`is-editor-empty`,emptyNodeClass:`is-empty`,dataAttribute:VQ,placeholder:`Write something …`,showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){let e=this.options.dataAttribute?`data-${HQ(this.options.dataAttribute)}`:`data-${VQ}`;return[new BL({key:new UL(`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&&CG(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=fH.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}),hH.create(t,a)}}})]}}),_K.create({name:`selection`,addOptions(){return{className:`selection`}},addProseMirrorPlugins(){let{editor:e,options:t}=this;return[new BL({key:new UL(`selection`),props:{decorations(n){return n.selection.empty||e.isFocused||!e.isEditable||wG(n.selection)||e.view.dragging?null:hH.create(n.doc,[fH.inline(n.selection.from,n.selection.to,{class:t.className})])}}})]}});function UQ({types:e,node:t}){return t&&Array.isArray(e)&&e.includes(t.type)||t?.type===e}var WQ=_K.create({name:`trailingNode`,addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){let e=new UL(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 BL({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!UQ({node:r,types:n})},apply:(e,t)=>{if(!e.docChanged||e.getMeta(`__uniqueIDTransaction`))return t;let r=e.doc.lastChild;return!UQ({node:r,types:n})}}})]}}),GQ=_K.create({name:`undoRedo`,addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:e,dispatch:t})=>LQ(e,t),redo:()=>({state:e,dispatch:t})=>RQ(e,t)}},addProseMirrorPlugins(){return[FQ(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()}}}),KQ=_K.create({name:`starterKit`,addExtensions(){let e=[];return this.options.bold!==!1&&e.push(RJ.configure(this.options.bold)),this.options.blockquote!==!1&&e.push(NJ.configure(this.options.blockquote)),this.options.bulletList!==!1&&e.push(xZ.configure(this.options.bulletList)),this.options.code!==!1&&e.push(VJ.configure(this.options.code)),this.options.codeBlock!==!1&&e.push(GJ.configure(this.options.codeBlock)),this.options.document!==!1&&e.push(KJ.configure(this.options.document)),this.options.dropcursor!==!1&&e.push(zQ.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&e.push(BQ.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&e.push(qJ.configure(this.options.hardBreak)),this.options.heading!==!1&&e.push(JJ.configure(this.options.heading)),this.options.undoRedo!==!1&&e.push(GQ.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&e.push(YJ.configure(this.options.horizontalRule)),this.options.italic!==!1&&e.push(eY.configure(this.options.italic)),this.options.listItem!==!1&&e.push(SZ.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(NZ.configure(this.options?.listKeymap)),this.options.link!==!1&&e.push(hZ.configure(this.options?.link)),this.options.orderedList!==!1&&e.push(WZ.configure(this.options.orderedList)),this.options.paragraph!==!1&&e.push(XZ.configure(this.options.paragraph)),this.options.strike!==!1&&e.push($Z.configure(this.options.strike)),this.options.text!==!1&&e.push(eQ.configure(this.options.text)),this.options.underline!==!1&&e.push(tQ.configure(this.options?.underline)),this.options.trailingNode!==!1&&e.push(WQ.configure(this.options?.trailingNode)),e}}),qQ=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,JQ=$K.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`,JW(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 RK({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[PK({find:qQ,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}});function YQ({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 XQ(){return(0,H.jsx)(`div`,{className:`mx-0.5 h-4 w-px bg-border`})}function ZQ(e,t){return!e||!t?null:`${e} × ${t}`}function QQ(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 $Q(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 e$({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||QQ(a),p=ZQ(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 $Q(o,e)}catch(e){_(e instanceof Error?e.message:`Could not update media caption.`)}finally{b(!1)}}}return(0,H.jsx)(vJ,{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)(AP,{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)(Xo,{className:`size-4`})})]})})}function t$({value:e,onChange:t,placeholder:n,onInsertImage:r}){let[i,a]=(0,v.useState)(!e),o=mJ({extensions:[KQ.configure({link:{openOnClick:!1,HTMLAttributes:{class:`text-primary underline`}}}),JQ.extend({addAttributes(){return{...this.parent?.(),mediaId:{default:null},filename:{default:null},width:{default:null},height:{default:null}}},addNodeView(){return EJ(e$)}}).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)(YQ,{title:`Bold`,active:o.isActive(`bold`),onClick:()=>o.chain().focus().toggleBold().run(),children:(0,H.jsx)(Ra,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Italic`,active:o.isActive(`italic`),onClick:()=>o.chain().focus().toggleItalic().run(),children:(0,H.jsx)(So,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Underline`,active:o.isActive(`underline`),onClick:()=>o.chain().focus().toggleUnderline().run(),children:(0,H.jsx)($o,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Strikethrough`,active:o.isActive(`strike`),onClick:()=>o.chain().focus().toggleStrike().run(),children:(0,H.jsx)(Ko,{className:`size-3.5`})}),(0,H.jsx)(XQ,{}),(0,H.jsx)(YQ,{title:`Heading 1`,active:o.isActive(`heading`,{level:1}),onClick:()=>o.chain().focus().toggleHeading({level:1}).run(),children:(0,H.jsx)(go,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Heading 2`,active:o.isActive(`heading`,{level:2}),onClick:()=>o.chain().focus().toggleHeading({level:2}).run(),children:(0,H.jsx)(_o,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Heading 3`,active:o.isActive(`heading`,{level:3}),onClick:()=>o.chain().focus().toggleHeading({level:3}).run(),children:(0,H.jsx)(vo,{className:`size-3.5`})}),(0,H.jsx)(XQ,{}),(0,H.jsx)(YQ,{title:`Bullet list`,active:o.isActive(`bulletList`),onClick:()=>o.chain().focus().toggleBulletList().run(),children:(0,H.jsx)(jo,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Ordered list`,active:o.isActive(`orderedList`),onClick:()=>o.chain().focus().toggleOrderedList().run(),children:(0,H.jsx)(ko,{className:`size-3.5`})}),(0,H.jsx)(XQ,{}),(0,H.jsx)(YQ,{title:`Blockquote`,active:o.isActive(`blockquote`),onClick:()=>o.chain().focus().toggleBlockquote().run(),children:(0,H.jsx)(Ro,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Inline code`,active:o.isActive(`code`),onClick:()=>o.chain().focus().toggleCode().run(),children:(0,H.jsx)(Qa,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Code block`,active:o.isActive(`codeBlock`),onClick:()=>o.chain().focus().toggleCodeBlock().run(),children:(0,H.jsx)(Wo,{className:`size-3.5`})}),(0,H.jsx)(XQ,{}),(0,H.jsx)(YQ,{title:`Add link`,active:o.isActive(`link`),onClick:c,children:(0,H.jsx)(Oo,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Remove link`,disabled:!o.isActive(`link`),onClick:()=>o.chain().focus().unsetLink().run(),children:(0,H.jsx)(es,{className:`size-3.5`})}),(0,H.jsx)(XQ,{}),r&&(0,H.jsx)(YQ,{title:`Insert image`,onClick:s,children:(0,H.jsx)(bo,{className:`size-3.5`})}),(0,H.jsx)(YQ,{title:`Hard break (Shift + Enter)`,onClick:()=>o.chain().focus().setHardBreak().run(),children:(0,H.jsx)(Jo,{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)(oJ,{editor:o})]})]}):null}function n$(e){return{...e}}function r$(e){return e.type.startsWith(`image/`)?new Promise(t=>{let n=new Image,r=URL.createObjectURL(e);n.onload=()=>{URL.revokeObjectURL(r),t({width:n.naturalWidth,height:n.naturalHeight})},n.onerror=()=>{URL.revokeObjectURL(r),t(null)},n.src=r}):Promise.resolve(null)}async function i$(e,t){let n=await r$(e),r=await fetch(`/cms/admin/media/presign`,{method:`POST`,credentials:`include`,headers:n$({"Content-Type":`application/json`}),body:JSON.stringify({filename:e.name,mimeType:e.type,folderId:t?.folderId??null})});if(!r.ok)throw Error(`Upload failed.`);let i=await r.json();if(i.mode===`presigned`){if(!(await fetch(i.uploadUrl,{method:`PUT`,body:e,headers:{"Content-Type":e.type}})).ok)throw Error(`Upload failed.`);let r=await fetch(`/cms/admin/media/confirm`,{method:`POST`,credentials:`include`,headers:n$({"Content-Type":`application/json`}),body:JSON.stringify({key:i.key,filename:e.name,mimeType:e.type,size:e.size,folderId:t?.folderId??null,width:n?.width??null,height:n?.height??null})});if(!r.ok)throw Error(`Upload failed.`);return r.json()}let a=new FormData;a.append(`files`,e,e.name),t?.folderId&&a.append(`folder_id`,t.folderId),n?.width&&a.append(`width`,String(n.width)),n?.height&&a.append(`height`,String(n.height));let o=await fetch(`/cms/admin/media`,{method:`POST`,credentials:`include`,headers:n$(),body:a});if(!o.ok)throw Error(`Upload failed.`);return o.json()}async function a$(e){let t=await fetch(`/cms/admin/users/me/avatar/presign`,{method:`POST`,credentials:`include`,headers:n$({"Content-Type":`application/json`}),body:JSON.stringify({filename:e.name,mimeType:e.type})});if(!t.ok)throw Error(`Upload failed.`);let n=await t.json();if(n.mode===`presigned`){if(!(await fetch(n.uploadUrl,{method:`PUT`,body:e,headers:{"Content-Type":e.type}})).ok)throw Error(`Upload failed.`);let t=await fetch(`/cms/admin/users/me/avatar/confirm`,{method:`POST`,credentials:`include`,headers:n$({"Content-Type":`application/json`}),body:JSON.stringify({key:n.key})});if(!t.ok)throw Error(`Upload failed.`);return(await t.json()).avatarUrl}let r=new FormData;r.append(`file`,e);let i=await fetch(`/cms/admin/users/me/avatar`,{method:`POST`,credentials:`include`,headers:n$(),body:r});if(!i.ok)throw Error(`Upload failed.`);return(await i.json()).avatarUrl}var o$=1,s$=.9,c$=.8,l$=.17,u$=.1,d$=.999,f$=.9999,p$=.99,m$=/[\\\/_+.#"@\[\(\{&]/,h$=/[\\\/_+.#"@\[\(\{&]/g,g$=/[\s-]/,_$=/[\s-]/g;function v$(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?o$:p$;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=v$(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=o$:m$.test(e.charAt(l-1))?(d*=c$,p=e.slice(i,l-1).match(h$),p&&i>0&&(d*=d$**+p.length)):g$.test(e.charAt(l-1))?(d*=s$,m=e.slice(i,l-1).match(_$),m&&i>0&&(d*=d$**+m.length)):(d*=l$,i>0&&(d*=d$**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=f$)),(d<u$&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=v$(e,t,n,r,l+1,a+2,o),f*u$>d&&(d=f*u$)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function y$(e){return e.toLowerCase().replace(_$,` `)}function b$(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,v$(e,t,y$(e),y$(t),0,0,{})}var x$=`[cmdk-group=""]`,S$=`[cmdk-group-items=""]`,C$=`[cmdk-group-heading=""]`,w$=`[cmdk-item=""]`,T$=`${w$}:not([aria-disabled="true"])`,E$=`cmdk-item-select`,D$=`data-value`,O$=(e,t,n)=>b$(e,t,n),k$=v.createContext(void 0),A$=()=>v.useContext(k$),j$=v.createContext(void 0),M$=()=>v.useContext(j$),N$=v.createContext(void 0),P$=v.forwardRef((e,t)=>{let n=J$(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=J$(()=>new Set),i=J$(()=>new Map),a=J$(()=>new Map),o=J$(()=>new Set),s=K$(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:p,loop:m,disablePointerSelection:h=!1,vimBindings:g=!0,..._}=e,y=ud(),b=ud(),x=ud(),S=v.useRef(null),C=Z$();q$(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,w.emit()}},[u]),q$(()=>{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??O$;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(S$);t?t.appendChild(e.parentElement===t?e:e.closest(`${S$} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${S$} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${x$}[${D$}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(D$);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(x$)?.querySelector(C$))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${w$}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(T$)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(D$))}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(D$))}function F(e){let t=j()?.closest(x$),n;for(;t&&!n;)t=e>0?W$(t,x$):G$(t,x$),n=t?.querySelector(T$);n?w.setState(`value`,n.getAttribute(D$)):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(il.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(E$);t.dispatchEvent(e)}}}}},v.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:e1},c),$$(e,e=>v.createElement(j$.Provider,{value:w},v.createElement(k$.Provider,{value:T},e))))}),F$=v.forwardRef((e,t)=>{let n=ud(),r=v.useRef(null),i=v.useContext(N$),a=A$(),o=K$(e),s=o.current?.forceMount??i?.forceMount;q$(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=X$(n,r,[e.value,e.children,r],e.keywords),l=M$(),u=Y$(e=>e.value&&e.value===c.current),d=Y$(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(E$,f),()=>t.removeEventListener(E$,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(il.div,{ref:ds(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)}),I$=v.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=ud(),s=v.useRef(null),c=v.useRef(null),l=ud(),u=A$(),d=Y$(e=>i||u.filter()===!1?!0:e.search?e.filtered.groups.has(o):!0);q$(()=>u.group(o),[]),X$(o,s,[e.value,e.heading,c]);let f=v.useMemo(()=>({id:o,forceMount:i}),[i]);return v.createElement(il.div,{ref:ds(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),$$(e,e=>v.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},v.createElement(N$.Provider,{value:f},e))))}),L$=v.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=v.useRef(null),a=Y$(e=>!e.search);return!n&&!a?null:v.createElement(il.div,{ref:ds(i,t),...r,"cmdk-separator":``,role:`separator`})}),R$=v.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=M$(),o=Y$(e=>e.search),s=Y$(e=>e.selectedItemId),c=A$();return v.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),v.createElement(il.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)}})}),z$=v.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=v.useRef(null),o=v.useRef(null),s=Y$(e=>e.selectedItemId),c=A$();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(il.div,{ref:ds(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},$$(e,e=>v.createElement(`div`,{ref:ds(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),B$=v.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return v.createElement(sy,{open:n,onOpenChange:r},v.createElement(cy,{container:o},v.createElement(ly,{"cmdk-overlay":``,className:i}),v.createElement(uy,{"aria-label":e.label,"cmdk-dialog":``,className:a},v.createElement(P$,{ref:t,...s}))))}),V$=v.forwardRef((e,t)=>Y$(e=>e.filtered.count===0)?v.createElement(il.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),H$=v.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return v.createElement(il.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},$$(e,e=>v.createElement(`div`,{"aria-hidden":!0},e)))}),U$=Object.assign(P$,{List:z$,Item:F$,Input:R$,Group:I$,Separator:L$,Dialog:B$,Empty:V$,Loading:H$});function W$(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function G$(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function K$(e){let t=v.useRef(e);return q$(()=>{t.current=e}),t}var q$=typeof window>`u`?v.useEffect:v.useLayoutEffect;function J$(e){let t=v.useRef();return t.current===void 0&&(t.current=e()),t}function Y$(e){let t=M$(),n=()=>e(t.snapshot());return v.useSyncExternalStore(t.subscribe,n,n)}function X$(e,t,n,r=[]){let i=v.useRef(),a=A$();return q$(()=>{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(D$,s),i.current=s}),i}var Z$=()=>{let[e,t]=v.useState(),n=J$(()=>new Map);return q$(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function Q$(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function $$({asChild:e,children:t},n){return e&&v.isValidElement(t)?v.cloneElement(Q$(t),{ref:t.ref},n(t.props.children)):n(t)}var e1={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`},t1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(U$,{ref:n,className:K(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,e),...t}));t1.displayName=U$.displayName;var n1=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)(Vo,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),(0,H.jsx)(U$.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})]}));n1.displayName=U$.Input.displayName;var r1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(U$.List,{ref:n,className:K(`max-h-[300px] overflow-y-auto overflow-x-hidden`,e),...t}));r1.displayName=U$.List.displayName;var i1=v.forwardRef((e,t)=>(0,H.jsx)(U$.Empty,{ref:t,className:`py-6 text-center text-sm`,...e}));i1.displayName=U$.Empty.displayName;var a1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(U$.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}));a1.displayName=U$.Group.displayName;var o1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(U$.Separator,{ref:n,className:K(`-mx-1 h-px bg-border`,e),...t}));o1.displayName=U$.Separator.displayName;var s1=v.forwardRef(({className:e,...t},n)=>(0,H.jsx)(U$.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=U$.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 l1={image:`image/*`,video:`video/*`,audio:`audio/*`,document:`.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv`};function u1(e){return!e||e.length===0?`*/*`:e.map(e=>l1[e]).join(`,`)}function d1(e){let t=e.replace(/_/g,` `).trim();return t?t.charAt(0).toUpperCase()+t.slice(1):`Value`}function f1(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:`—`}function p1(e){return e?.startsWith(`image/`)??!1}async function m1(e,t){return i$(e,{folderId:t})}function h1(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 g1=30;function _1({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=${g1}${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=>h1(e.mime_type,n)),A=c.length===0&&k.length===0;return(0,H.jsx)(my,{open:e,onOpenChange:t,children:(0,H.jsxs)(vy,{className:`max-w-3xl max-h-[90vh] flex flex-col overflow-hidden`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Media Library`})}),(0,H.jsxs)(`div`,{className:`relative shrink-0`,children:[(0,H.jsx)(Vo,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,H.jsx)(J,{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)(yo,{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)(yo,{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)(Xb,{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)(po,{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:p1(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)(co,{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:f1(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 v1({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 m1(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)(bo,{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)(bo,{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)(as,{className:`size-3.5`})})]}):(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`input`,{ref:i,type:`file`,accept:u1(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)(ts,{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)(uo,{className:`size-4`}),`Library`]})]}),s&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:s}),(0,H.jsx)(_1,{open:d,onOpenChange:f,allowedTypes:n,selectionMode:`single`,onSelect:e=>{let n=e[0];n&&(u(n.url),t(n.id))}})]})}function y1({id:e,previewUrl:t,filename:n,onRemove:r,disabled:i=!1}){let{attributes:a,listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=nk({id:e});return(0,H.jsxs)(`div`,{ref:s,style:{transform:hE.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)(bo,{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)(as,{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)(mo,{className:`size-3`})})]})}function b1({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=jE(AE(jD,{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(LO(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 m1(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)(OO,{sensors:h,collisionDetection:RE,onDragEnd:y,children:(0,H.jsx)(JO,{items:r,strategy:HO,children:(0,H.jsx)(`div`,{className:`grid grid-cols-3 gap-2 sm:grid-cols-4`,children:r.map(e=>(0,H.jsx)(y1,{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)(ts,{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)(uo,{className:`size-4`}),`Library`]})]}),s&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:s}),(0,H.jsx)(_1,{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 x1({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)(J,{type:`text`,inputMode:`decimal`,className:K(`w-full`,`text-base!`),value:r,placeholder:`0.00`,onChange:a,disabled:n})}function S1(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 C1({value:e,onChange:t,inputId:n,disabled:r=!1}){let i=S1(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)(J,{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)(x1,{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)(pk,{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 w1({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(tx(e,n)))},[e,n]);function u(e){s(e),a(!1),e&&t(nx(e,c,n))}function d(e){l(e),o&&t(nx(o,e,n))}return(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(DP,{open:i&&!r,onOpenChange:a,children:[(0,H.jsx)(OP,{asChild:!0,children:(0,H.jsxs)(q,{variant:`outline`,className:`w-40 justify-between font-normal text-base`,disabled:r,children:[o?Mj(o,`MMM d, yyyy`):`Select date`,(0,H.jsx)(Ua,{className:`size-4 opacity-50`})]})}),(0,H.jsx)(kP,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,H.jsx)(TP,{mode:`single`,selected:o,captionLayout:`dropdown`,defaultMonth:o,onSelect:u})})]}),(0,H.jsx)(J,{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)(as,{className:`size-3.5`})})]})}function T1(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 E1={data:null,promise:null};function D1(){return E1.data?Promise.resolve(E1.data):(E1.promise||=fetch(`/cms/admin/content-types`,{credentials:`include`}).then(e=>e.ok?e.json():[]).then(e=>(E1.data=e,e)).catch(()=>[]),E1.promise)}function O1(e,t){return e.find(e=>e.tableName===t)??null}function k1(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 A1(e){let t=await k1(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)=>k1(e,n+2,100)))].flatMap(e=>e.data)}}function j1(e){let[t,n]=(0,v.useState)([]),[r,i]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{e&&(i(!0),D1().then(t=>{let n=O1(t,e);return n?A1(n.slug).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:t})=>{let r=e?T1(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 M1(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),D1().then(t=>{let n=O1(t,e);return n?A1(n.slug).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:r})=>{let a=e?T1(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 N1({relatedTable:e,relatedField:t,currentId:n}){let{entries:r,loading:i}=M1(e,t,n);return n?i?(0,H.jsxs)(`div`,{className:`flex items-center gap-2 py-1`,children:[(0,H.jsx)(Xb,{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 P1({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}=j1(t);if(e===`one-to-many`)return(0,H.jsx)(N1,{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)(DP,{open:c&&!o,onOpenChange:l,children:[(0,H.jsx)(OP,{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)(qa,{className:`ml-2 size-4 shrink-0 opacity-50`})]})}),(0,H.jsx)(kP,{className:`w-(--radix-popover-trigger-width) p-0`,align:`start`,children:(0,H.jsxs)(t1,{children:[(0,H.jsx)(n1,{placeholder:`Search…`}),(0,H.jsx)(r1,{id:u,children:f?(0,H.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,H.jsx)(Xb,{className:`size-4`})}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(i1,{children:`No entries found.`}),(0,H.jsx)(a1,{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)(Ha,{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)(as,{className:`size-3`})})]},e))})]})}var F1={full:`col-span-6`,"two-thirds":`col-span-4`,half:`col-span-3`,third:`col-span-2`};function I1({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)(jP,{type:`single`,collapsible:!0,className:`w-full`,children:i.map((e,t)=>(0,H.jsxs)(MP,{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)(NP,{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)(Ka,{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)(Ua,{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)(Xo,{className:`size-3.5`})})]})]}),(0,H.jsx)(PP,{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:F1[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)(H1,{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 L1=3,R1=20;function z1({value:e,onChange:t,disabled:n=!1,depth:r=0}){let i=Array.isArray(e)?e:[],a=r+1<L1,o=i.length<R1;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)(jP,{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)(MP,{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)(NP,{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)(Ka,{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)(Ua,{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)(Xo,{className:`size-3.5`})})]})]}),(0,H.jsxs)(PP,{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)(J,{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)(J,{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)(z1,{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 (`,L1,` 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 `,R1,` items allowed per level.`]})]})}function B1(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/^-+|-+$/g,``)}function V1({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 i$(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)(t$,{value:String(e??``),onChange:t,placeholder:`Type or add your content here...`,onInsertImage:p})}),(0,H.jsx)(my,{open:a,onOpenChange:h,children:(0,H.jsxs)(vy,{className:`max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(ts,{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)(uo,{className:`size-4`}),`Library`]})]}),d&&(0,H.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:d})]})}),(0,H.jsx)(_1,{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 H1({field:e,value:t,onChange:n,allValues:r,disabled:i,errorMessage:a}){let o=(0,v.useRef)(null),{timezone:s}=ba();(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=B1(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=B1(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=B1(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)(pk,{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)(V1,{value:t,onChange:n,disabled:!!i}):e.type===`text`?(0,H.jsx)(AP,{className:K(c,`text-base`),value:String(t??``),placeholder:d1(e.name),onChange:e=>n(e.target.value),disabled:!!i}):e.type===`number`?e.subtype===`float`?(0,H.jsx)(x1,{value:t,onChange:n,disabled:!!i}):(0,H.jsx)(J,{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)(w1,{value:t,onChange:n,timezone:s,disabled:!!i}):e.type===`uid`?(0,H.jsxs)(`div`,{children:[(0,H.jsx)(J,{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)(v1,{value:t,onChange:n,allowedTypes:e.allowedTypes,disabled:!!i}):e.type===`media-gallery`?(0,H.jsx)(b1,{value:t,onChange:n,disabled:!!i}):e.type===`relation`?(0,H.jsx)(P1,{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)(I1,{field:e,value:t,onChange:n,disabled:!!i}):e.type===`mixed`?(0,H.jsx)(C1,{value:t,onChange:n,inputId:`field-${e.name}-mixed-boolean`,disabled:!!i}):e.type===`navigation`?(0,H.jsx)(z1,{value:t,onChange:n,disabled:!!i}):(0,H.jsx)(J,{className:K(c,`text-base md:text-base`),value:String(t??``),placeholder:d1(e.name),onChange:e=>n(e.target.value),disabled:!!i})}var U1=`plank-preview`;function W1(e,t){let n=!1,r=e.replace(/\{(contentType|entryId|slug|status)\}/g,(e,r)=>{let i=t[r];return i==null||i===``?(n=!0,``):encodeURIComponent(i)});return n||/\{[^}]+\}/.test(r)?null:r}function G1(e){return{enabled:String(e?.enabled??`false`).toLowerCase()===`true`,syncUrl:e?.sync_url?.trim()??``,urlTemplate:e?.url_template?.trim()??``,slugField:e?.slug_field?.trim()||`slug`}}function K1(e){return{enabled:String(e?.preview_enabled??`false`).toLowerCase()===`true`,syncUrl:e?.preview_sync_url?.trim()??``,urlTemplate:e?.preview_url_template?.trim()??``,slugField:e?.preview_slug_field?.trim()||`slug`}}function q1(e,t){if(!e.enabled)return null;if(!e.urlTemplate)return`Set a preview URL template in Settings > Overview > Preview.`;if(e.syncUrl)try{new URL(e.syncUrl)}catch{return`Preview sync webhook URL must be an absolute URL.`}if(e.urlTemplate.includes(`{slug}`)&&!t.includes(e.slugField))return`Preview slug field "${e.slugField}" does not exist on this content type.`;let n=W1(e.urlTemplate,{contentType:`sample-content`,entryId:`sample-entry`,slug:`sample-slug`,status:`draft`});if(!n)return`Preview URL template contains unsupported or unresolved placeholders.`;try{return new URL(n),null}catch{return`Preview URL template must resolve to an absolute URL.`}}function J1(e){let{config:t,contentType:n,entry:r,status:i}=e;if(!t.enabled||!t.urlTemplate)return null;let a=r[t.slugField],o=W1(t.urlTemplate,{contentType:n,entryId:r.id?String(r.id):null,slug:typeof a==`string`&&a.trim()?a.trim():null,status:i??(typeof r.status==`string`?r.status:null)});if(!o)return null;try{return new URL(o).toString()}catch{return null}}var Y1=null;function X1(e){return Array.isArray(e)?e.map(X1):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,X1(t)])):e}function Z1(e){return JSON.stringify(X1(e))}function Q1(e){let t=e.match(/Field "([^"]+)" already exists\.?/);return t?t[1]??null:null}function $1(){let{slug:e,id:t}=gr(),n=fr(),r=!t,{timezone:i,locales:a,defaultLocale:o,editorialMode:s}=ba(),{user:c,status:l}=_a(),u=c?.role?.toLowerCase()??``,{data:d,loading:f}=Ta(e?`/cms/admin/content-types/${e}`:null),{data:p}=Ta(`/cms/admin/client-settings`),{data:m,loading:h}=Ta(e&&t?`/cms/admin/entries/${e}/${t}`:null),{data:g}=Ta(s&&[`editor`,`admin`,`super admin`].includes(c?.role?.toLowerCase()??``)?`/cms/admin/users`:null),{loading:_,request:y}=Sb(),{loading:b,request:x}=Sb(),{loading:S,request:C}=Sb(),[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=K1(p),Ce=d?.kind===`collection`&&d.previewEnabled!==!1,we=d?q1(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=Z1(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=Z1(e),m.scheduled_for?(F(m.scheduled_for),_e(new Date(m.scheduled_for)),ye(tx(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(Z1(r)!==Z1(n))}else L(!1)},[m,d,r]);let De=Z1(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(tx(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=Z1(w),i}catch(e){let t=Q1(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){!Y1||Y1.closed||(Y1.location.href=e,Y1.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=J1({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=J1({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(Y1=window.open(a,U1),!Y1){X.error(`Preview window was blocked by the browser.`);return}Y1.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=nx(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;if(ak(`mod+s`,Ie,{enabled:!ot&&!Ke&&(M===`scheduled`?!0:De),label:`Save draft`}),ak(`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)(Xb,{className:`size-4`}),(0,H.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]});if(!d)return null;let pt;pt=M===`scheduled`?(0,H.jsxs)(sT,{variant:`outline`,className:`border-blue-500 text-blue-600`,children:[(0,H.jsx)(za,{className:`size-3 mr-1`}),P?`Scheduled · ${ex(P,i)}`:`Scheduled`]}):M===`pending`?te?(0,H.jsx)(sT,{variant:`destructive`,children:`Pending`}):(0,H.jsx)(sT,{className:`bg-amber-500 text-black hover:bg-amber-500`,children:`Pending`}):M===`in_review`?(0,H.jsx)(sT,{variant:`outline`,children:`In Review`}):M===`published`?(0,H.jsx)(sT,{variant:I?`secondary`:`default`,children:I?`Published (pending changes)`:`Published`}):(0,H.jsx)(sT,{variant:`secondary`,children:`Draft`});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)(Yb,{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`}),pt]}),(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.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!r&&st&&!tt&&(0,H.jsx)(q,{variant:`ghost`,size:`icon`,className:`text-muted-foreground hover:text-destructive`,onClick:()=>ee(!0),disabled:S,children:(0,H.jsx)(Xo,{className:`size-4`})}),!r&&M===`published`&&!ot&&(0,H.jsxs)(q,{variant:`outline`,onClick:Be,disabled:Ke,children:[b?(0,H.jsx)(Xb,{className:`size-4`}):null,`Revert to draft`]}),!r&&M===`scheduled`&&!ot&&(0,H.jsxs)(q,{variant:`outline`,onClick:Be,disabled:Ke,children:[b?(0,H.jsx)(Xb,{className:`size-4`}):null,`Cancel schedule`]}),gt&&(0,H.jsxs)(pT,{value:z??`none`,onValueChange:He,disabled:!ht||Ke,children:[(0,H.jsx)(gT,{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)(kl,{avatarUrl:oe??null,firstName:re??null,lastName:ie??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,H.jsx)(hT,{placeholder:bt||`Assign editor`})]})}),(0,H.jsxs)(yT,{children:[!Ze&&(0,H.jsx)(xT,{value:`none`,children:`Unassign`}),mt.map(e=>(0,H.jsx)(xT,{value:e.id,children:e.first_name||e.last_name||e.id},e.id))]})]}),!ht&&_t&&(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)(kl,{avatarUrl:oe??null,firstName:re??null,lastName:ie??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,H.jsx)(`span`,{children:bt||`Assigned editor`})]}),vt&&(0,H.jsx)(q,{variant:`outline`,size:`icon`,onClick:Ue,disabled:Ke,children:(0,H.jsx)(Io,{className:`size-4`})}),yt&&(0,H.jsx)(q,{variant:`outline`,size:`icon`,onClick:We,disabled:Ke,children:(0,H.jsx)(as,{className:`size-4`})}),dt&&Se.enabled&&ft&&(0,H.jsx)(q,{variant:`outline`,onClick:Le,disabled:ot||Ke||!!we,title:Ee??void 0,children:`Open preview`}),(0,H.jsxs)(q,{variant:`outline`,onClick:Ie,size:s?`icon`:`default`,disabled:ot||(M===`scheduled`?Ke:!De||Ke),children:[_?(0,H.jsx)(Xb,{className:`size-4`}):s?(0,H.jsx)(Bo,{className:`size-4`}):null,!s&&(M===`scheduled`?`Save draft (cancel schedule)`:`Save draft`)]}),M!==`scheduled`&&!(s&&Xe)&&(0,H.jsxs)(q,{variant:`outline`,onClick:Me,size:s?`icon`:`default`,disabled:ot||Ke,children:[(0,H.jsx)(za,{className:`size-4`}),!s&&`Schedule`]}),(0,H.jsxs)(q,{onClick:Re,disabled:ot||!ct||Ke,children:[b?(0,H.jsx)(Xb,{className:`size-4`}):null,M===`scheduled`?s&&Xe?`Review`:`Publish now`:M===`published`&&!I?`Republish`:ut]})]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[fe&&!ot&&(0,H.jsxs)(`div`,{className:`mb-6 flex items-end gap-2 rounded-lg border p-4 bg-muted/30`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{children:`Date`}),(0,H.jsxs)(DP,{open:me,onOpenChange:he,children:[(0,H.jsx)(OP,{asChild:!0,children:(0,H.jsxs)(q,{variant:`outline`,className:`w-40 justify-between font-normal`,children:[ge?Mj(ge,`MMM d, yyyy`):`Select date`,(0,H.jsx)(Ua,{className:`size-4 opacity-50`})]})}),(0,H.jsx)(kP,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,H.jsx)(TP,{mode:`single`,selected:ge,captionLayout:`dropdown`,defaultMonth:ge??new Date,disabled:{before:new Date},onSelect:e=>{_e(e),he(!1)}})})]})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsxs)(Y,{children:[`Time `,(0,H.jsx)(`span`,{className:`text-muted-foreground font-normal`,children:`(24h)`})]}),(0,H.jsx)(J,{type:`time`,className:`w-32 appearance-none bg-background [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`,value:ve,onChange:e=>ye(e.target.value)})]}),(0,H.jsxs)(q,{onClick:ze,disabled:!lt||Ke,children:[b?(0,H.jsx)(Xb,{className:`size-4`}):null,`Confirm`]}),(0,H.jsx)(q,{variant:`ghost`,onClick:()=>pe(!1),children:`Cancel`})]}),(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)(ok,{checked:A,onCheckedChange:je,disabled:ot}),(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:A&&(0,H.jsx)(Uj,{value:O,onValueChange:e=>k(e),children:(0,H.jsx)(Wj,{children:E.map(e=>(0,H.jsx)(Gj,{value:e,disabled:ot,children:e.toUpperCase()},e))})})})]}),(0,H.jsx)(`div`,{className:`grid grid-cols-6 gap-4`,children:d.fields.map(e=>{let n=[`string`,`text`,`richtext`].includes(e.type),r=w.localized&&w.localized[O]?w.localized[O][e.name]:void 0,i=n&&A?r:w[e.name],a=e.type===`uid`&&e.targetField&&A&&[`string`,`text`,`richtext`].includes(d.fields.find(t=>t.name===e.targetField)?.type??``);return(0,H.jsx)(`div`,{className:ck[e.width??`full`],children:(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsxs)(Y,{htmlFor:`entry-${e.name}`,className:`capitalize`,children:[e.name.replace(/_/g,` `),e.required&&(0,H.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`})]}),(0,H.jsx)(H1,{field:e,value:i,onChange:t=>{e.type===`uid`&&ue===e.name&&de(null),n&&A?Ae(O,e.name,t):ke(e.name,t)},allValues:{...w,id:t,__activeLocale:O,__localizationEnabled:A,__defaultLocale:o},disabled:!!a||ot,errorMessage:e.type===`uid`&&ue===e.name?`${e.name} already exists.`:void 0})]})},e.name)})}),(0,H.jsx)(my,{open:R,onOpenChange:ee,children:(0,H.jsxs)(vy,{className:`max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Delete this entry?`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone.`}),(0,H.jsxs)(by,{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)(Xb,{className:`size-4`}):null,`Delete`]})]})]})}),(0,H.jsx)(my,{open:Oe.state===`blocked`,onOpenChange:()=>Oe.reset?.(),children:(0,H.jsxs)(vy,{className:`max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Unsaved changes`})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Leave without saving?`}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>Oe.reset?.(),children:`Stay`}),(0,H.jsx)(q,{variant:`destructive`,onClick:()=>Oe.proceed?.(),children:`Leave`})]})]})})]})]})}function e0({...e}){return(0,H.jsx)(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,...e})}function t0({className:e,...t}){return(0,H.jsx)(`ol`,{"data-slot":`breadcrumb-list`,className:K(`flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5`,e),...t})}function n0({className:e,...t}){return(0,H.jsx)(`li`,{"data-slot":`breadcrumb-item`,className:K(`inline-flex items-center gap-1.5`,e),...t})}function r0({asChild:e,className:t,...n}){return(0,H.jsx)(e?_u:`a`,{"data-slot":`breadcrumb-link`,className:K(`transition-colors hover:text-foreground`,t),...n})}function i0({className:e,...t}){return(0,H.jsx)(`span`,{"data-slot":`breadcrumb-page`,role:`link`,"aria-disabled":`true`,"aria-current":`page`,className:K(`font-normal text-foreground`,e),...t})}function a0({children:e,className:t,...n}){return(0,H.jsx)(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:K(`[&>svg]:size-3.5`,t),...n,children:e??(0,H.jsx)(Ga,{})})}function o0(e,t){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),t())}function s0(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:`—`}function c0(e){let t=e.split(`/`).pop()??e;return t.replace(/\.[^.]+$/,``).trim()||t.trim()}function l0(e){return!!e?.startsWith(`image/`)}function u0(e){return!!e?.startsWith(`video/`)}function d0(e){return!!e?.startsWith(`audio/`)}function f0(e){return e===`application/pdf`}function p0(e,t){return e.split(`?`)[0].endsWith(`.m3u8`)||t===`application/x-mpegurl`||t===`application/vnd.apple.mpegurl`}async function m0(e){if(e.isFile)return new Promise(t=>{e.file(n=>t([{file:n,relativePath:e.fullPath.replace(/^\//,``)}]))});if(e.isDirectory){let t=e.createReader(),n=[];return await new Promise(e=>{let r=()=>{t.readEntries(async t=>{if(t.length===0){e();return}let i=await Promise.all(t.map(m0));n.push(...i.flat()),r()})};r()}),n}return[]}function h0({url:e}){let t=(0,v.useRef)(null);return(0,v.useEffect)(()=>{let n=t.current;if(!n)return;if(n.canPlayType(`application/vnd.apple.mpegurl`)){n.src=e;return}let r=null;return L(async()=>{let{default:e}=await import(`./hls-0EiSYoTw.js`);return{default:e}},[]).then(({default:t})=>{if(!t.isSupported())return;let i=new t;r=i,i.loadSource(e),i.attachMedia(n)}),()=>{r?.destroy()}},[e]),(0,H.jsx)(`video`,{ref:t,controls:!0,className:`max-h-[70vh] w-full rounded-md bg-zinc-950`})}function g0({item:e}){let t=e.mime_type?.toLowerCase()??null;return l0(t)?(0,H.jsx)(`img`,{src:e.url,alt:e.alt??e.filename,className:`max-h-full max-w-full rounded-md object-contain`}):p0(e.url,t)?(0,H.jsx)(h0,{url:e.url}):u0(t)?(0,H.jsx)(`video`,{src:e.url,controls:!0,preload:`none`,className:`max-h-[70vh] w-full rounded-md bg-zinc-950`}):d0(t)?(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-4 py-6`,children:[(0,H.jsx)(ao,{className:`size-14 text-muted-foreground`}),(0,H.jsx)(`audio`,{src:e.url,controls:!0,className:`w-full`})]}):f0(t)?(0,H.jsx)(`iframe`,{src:e.url,title:e.filename,className:`h-[70vh] w-full rounded-md border`}):(0,H.jsxs)(`div`,{className:`flex flex-col items-center gap-4 py-8 text-center`,children:[(0,H.jsx)(so,{className:`size-14 text-muted-foreground`}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.mime_type??`Unknown type`}),(0,H.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,download:e.filename,children:(0,H.jsxs)(q,{variant:`outline`,size:`sm`,children:[(0,H.jsx)(to,{className:`size-4`}),`Download`]})})]})}function _0({folder:e,onOpen:t,onDelete:n,onRename:r,canDelete:i,canRename:a,selected:o,onToggle:s}){return(0,H.jsxs)(`div`,{className:`group relative flex items-center gap-3 rounded-lg border bg-card px-3 py-2.5 transition-colors cursor-pointer hover:bg-muted/50 ${o?`ring-2 ring-primary`:``}`,role:`button`,tabIndex:0,"aria-pressed":o,onClick:()=>{o||t(e)},onKeyDown:n=>{o0(n,()=>{o||t(e)})},children:[(0,H.jsxs)(`div`,{className:`relative shrink-0 size-7 flex items-center justify-center`,children:[(0,H.jsx)(po,{className:`size-7 text-muted-foreground transition-opacity ${o?`opacity-0`:`group-hover:opacity-0`}`}),(0,H.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center transition-opacity ${o?`opacity-100`:`opacity-0 group-hover:opacity-100`}`,onPointerDown:e=>e.stopPropagation(),children:(0,H.jsx)(pk,{checked:o,onCheckedChange:()=>s(`folder:${e.id}`),"aria-label":`Select folder`})})]}),(0,H.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,H.jsx)(`p`,{className:`text-sm font-bold truncate`,title:e.name,children:e.name}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[e.item_count,` `,e.item_count===1?`item`:`items`]})]}),!o&&(a||i)&&(0,H.jsxs)(gv,{children:[(0,H.jsx)(_v,{asChild:!0,children:(0,H.jsx)(`button`,{type:`button`,className:`shrink-0 opacity-0 group-hover:opacity-100 transition-opacity flex size-6 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground`,onClick:e=>e.stopPropagation(),children:(0,H.jsx)(no,{className:`size-4`})})}),(0,H.jsxs)(bv,{align:`end`,onClick:e=>e.stopPropagation(),children:[a&&(0,H.jsxs)(xv,{onSelect:()=>r(e),children:[(0,H.jsx)(Io,{className:`size-4`}),`Rename`]}),i&&(0,H.jsxs)(xv,{onSelect:()=>n(e),className:`text-destructive focus:text-destructive`,children:[(0,H.jsx)(Xo,{className:`size-4`}),`Delete`]})]})]})]})}function v0({item:e,onDelete:t,onPreview:n,canDelete:r,selected:i,onToggle:a}){let o=e.mime_type?.toLowerCase()??null;return(0,H.jsxs)(`div`,{className:`group relative rounded-lg border bg-card overflow-hidden transition-colors ${i?`ring-2 ring-primary`:``}`,children:[(0,H.jsx)(`div`,{className:`aspect-square bg-muted flex items-center justify-center cursor-pointer`,role:`button`,tabIndex:0,"aria-pressed":i,onClick:()=>{i||n(e)},onKeyDown:t=>{o0(t,()=>{i||n(e)})},children:l0(o)?(0,H.jsx)(`img`,{src:e.url,alt:e.alt??e.filename,className:`h-full w-full object-cover`}):u0(o)||p0(e.url,o)?(0,H.jsx)(oo,{className:`size-10 text-muted-foreground`}):d0(o)?(0,H.jsx)(ao,{className:`size-10 text-muted-foreground`}):f0(o)?(0,H.jsx)(so,{className:`size-10 text-muted-foreground`}):(0,H.jsx)(co,{className:`size-10 text-muted-foreground`})}),(0,H.jsx)(`div`,{className:`absolute top-1.5 left-1.5 transition-opacity ${i?`opacity-100`:`opacity-0 group-hover:opacity-100`}`,children:(0,H.jsx)(pk,{checked:i,onCheckedChange:()=>a(e.id),"aria-label":`Select file`,className:`bg-background/80 backdrop-blur-sm`})}),!i&&r&&(0,H.jsx)(`button`,{type:`button`,onClick:()=>t(e),className:`absolute top-1.5 right-1.5 flex size-6 items-center justify-center rounded-md bg-background/80 text-muted-foreground opacity-0 backdrop-blur-sm transition-opacity hover:text-destructive group-hover:opacity-100`,children:(0,H.jsx)(Xo,{className:`size-3.5`})}),(0,H.jsxs)(`div`,{className:`p-2`,children:[(0,H.jsx)(`p`,{className:`text-xs font-medium truncate`,title:e.filename,children:e.filename}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:s0(e.size)})]})]})}function y0(){let{timezone:e}=ba(),t=(0,v.useRef)(null),{user:n}=_a(),r=n?.permissions??[],i=r.includes(`*`)||r.includes(`media:write`),a=r.includes(`*`)||r.includes(`media:delete`),[o,s]=(0,v.useState)([{id:null,name:`Media`}]),c=o[o.length-1].id,[l,u]=(0,v.useState)(1),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(``);(0,v.useEffect)(()=>{let e=setTimeout(()=>{m(d),u(1)},300);return()=>clearTimeout(e)},[d]),(0,v.useEffect)(()=>{u(1),f(``),m(``)},[c]);let{data:h,loading:g,refetch:_}=Ta(`/cms/admin/folders?parent_id=${c??``}`),{data:y,loading:b,refetch:x}=Ta(`/cms/admin/media?folder_id=${c??``}&page=${l}&limit=48${p?`&search=${encodeURIComponent(p)}`:``}`),S=(0,v.useCallback)(()=>{_(),x()},[_,x]),[C,w]=(0,v.useState)(!1),[T,E]=(0,v.useState)(null),[D,O]=(0,v.useState)(new Set),[k,A]=(0,v.useState)(null),[j,M]=(0,v.useState)(``),[N,P]=(0,v.useState)(``),[F,I]=(0,v.useState)(``),[L,R]=(0,v.useState)(!1),[ee,te]=(0,v.useState)(null),[ne,z]=(0,v.useState)(null),[B,re]=(0,v.useState)(null),[V,ie]=(0,v.useState)(null),[ae,oe]=(0,v.useState)(``),[se,ce]=(0,v.useState)(!1),[le,ue]=(0,v.useState)(``),[de,fe]=(0,v.useState)(!1),[pe,me]=(0,v.useState)(!1),{loading:he,error:ge,request:_e}=Sb(),{loading:ve,error:ye,request:be}=Sb();async function xe(e){if(e.some(({relativePath:e})=>e.endsWith(`.m3u8`))){let t=new FormData;for(let{file:n,relativePath:r}of e)t.append(`files`,n,r);c&&t.append(`folder_id`,c),t.append(`bundle`,`true`);let n=await fetch(`/cms/admin/media`,{method:`POST`,credentials:`include`,body:t});if(!n.ok){let e=await n.text(),t=`Upload failed.`;try{t=JSON.parse(e).error??t}catch{}throw Error(t)}}else await Promise.all(e.map(({file:e})=>i$(e,{folderId:c})))}async function Se(e){if(i&&!(!e||e.length===0)){w(!0),E(null);try{await xe(Array.from(e).map(e=>({file:e,relativePath:e.webkitRelativePath||e.name}))),S(),X.success(`Upload complete`)}catch(e){E(e instanceof Error?e.message:`Upload failed.`),X.error(`Upload failed`)}finally{w(!1),t.current&&(t.current.value=``)}}}async function Ce(e){if(!i)return;e.preventDefault();let t=Array.from(e.dataTransfer.items);if(!t.some(e=>typeof e.webkitGetAsEntry==`function`)){Se(e.dataTransfer.files);return}w(!0),E(null);try{let e=t.map(e=>e.webkitGetAsEntry()).filter(e=>e!==null);await xe((await Promise.all(e.map(m0))).flat()),S(),X.success(`Upload complete`)}catch(e){E(e instanceof Error?e.message:`Upload failed.`),X.error(`Upload failed`)}finally{w(!1)}}function we(e){s(t=>[...t,{id:e.id,name:e.name}]),O(new Set)}function Te(e){s(t=>t.slice(0,e+1)),O(new Set)}async function Ee(){if(i&&le.trim())try{await be(`/cms/admin/folders`,`POST`,{name:le.trim(),parent_id:c}),ce(!1),ue(``),_(),X.success(`Folder created`)}catch{X.error(`Could not create folder`)}}async function De(){if(i&&!(!V||!ae.trim()))try{await be(`/cms/admin/folders/${V.id}`,`PATCH`,{name:ae.trim()}),ie(null),_(),X.success(`Folder renamed`)}catch{X.error(`Could not rename folder`)}}async function Oe(){if(a&&B)try{await _e(`/cms/admin/folders/${B.id}`,`DELETE`),re(null),_(),X.success(`Folder deleted`)}catch{X.error(`Could not delete folder`)}}async function ke(){if(a&&ne)try{await _e(`/cms/admin/media/${ne.id}`,`DELETE`),z(null),x(),X.success(`File deleted`)}catch{X.error(`Could not delete file`)}}function Ae(e){O(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function je(e){A(e),M(e.filename),P(e.alt??c0(e.filename)),I(e.caption??``),te(null)}function Me(e){if(!k)return;let t=Ie.findIndex(e=>e.id===k.id);if(t===-1)return;let n=Ie[t+e];n&&je(n)}async function Ne(){if(k){R(!0),te(null);try{let e=await fetch(`/cms/admin/media/${k.id}`,{method:`PATCH`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify({filename:j||k.filename,alt:N.trim()||null,caption:F.trim()||null})});if(!e.ok)throw Error(`Save failed.`);je(await e.json()),x(),X.success(`File updated`)}catch(e){te(e instanceof Error?e.message:`Save failed.`),X.error(`Could not update file`)}finally{R(!1)}}}function Pe(e){M(e);let t=c0(j),n=c0(e);(!N.trim()||N===t)&&P(n)}let Fe=h?.folders??[],Ie=y?.items??[],Le=k?Ie.findIndex(e=>e.id===k.id):-1,Re=Le>0,ze=Le!==-1&&Le<Ie.length-1,Be=[...Fe.map(e=>`folder:${e.id}`),...Ie.map(e=>e.id)];(0,v.useEffect)(()=>{if(!k)return;function e(e){e.key===`ArrowLeft`&&Re&&(e.preventDefault(),Me(-1)),e.key===`ArrowRight`&&ze&&(e.preventDefault(),Me(1))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[k,Re,ze,Ie]);async function Ve(){if(a&&!pe){me(!0);try{await Promise.all([...[...D].filter(e=>e.startsWith(`folder:`)).map(e=>fetch(`/cms/admin/folders/${e.slice(7)}`,{method:`DELETE`,credentials:`include`})),...[...D].filter(e=>!e.startsWith(`folder:`)).map(e=>fetch(`/cms/admin/media/${e}`,{method:`DELETE`,credentials:`include`}))]),X.success(`Files deleted`),fe(!1),O(new Set),S()}catch{X.error(`Could not delete files`)}finally{me(!1)}}}let He=g||b,Ue=Fe.length===0&&Ie.length===0;return(0,H.jsxs)(`div`,{children:[(0,H.jsx)(Yb,{children:(0,H.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,H.jsx)(`h1`,{className:`text-2xl font-semibold -mt-2`,children:`Media Library`}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsxs)(q,{variant:`outline`,onClick:()=>{ue(``),ce(!0)},disabled:!i,children:[(0,H.jsx)(fo,{className:`size-4`}),`New folder`]}),(0,H.jsxs)(q,{onClick:()=>t.current?.click(),disabled:C||!i,children:[C?(0,H.jsx)(Xb,{className:`size-4`}):(0,H.jsx)(ts,{className:`size-4`}),C?`Uploading…`:`Upload`]})]})]})}),(0,H.jsxs)(`section`,{className:`mt-24`,children:[o.length>1&&(0,H.jsx)(e0,{className:`mb-4`,children:(0,H.jsx)(t0,{children:o.map((e,t)=>(0,H.jsxs)(v.Fragment,{children:[t>0&&(0,H.jsx)(a0,{}),(0,H.jsx)(n0,{children:t===o.length-1?(0,H.jsx)(i0,{children:t===0?(0,H.jsx)(yo,{className:`size-3.5`}):e.name}):(0,H.jsx)(r0,{asChild:!0,children:(0,H.jsx)(`button`,{onClick:()=>Te(t),children:t===0?(0,H.jsx)(yo,{className:`size-3.5`}):e.name})})})]},`${e.id??`root`}:${e.name}`))})}),(0,H.jsxs)(`div`,{className:`mb-4 flex items-center gap-2 rounded-lg border border-border bg-muted/50 p-2`,children:[(0,H.jsxs)(`div`,{className:`relative max-w-72 w-full`,children:[(0,H.jsx)(Vo,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,H.jsx)(J,{className:`pl-9 h-8 bg-background`,placeholder:`Search media…`,value:d,onChange:e=>f(e.target.value)})]}),!b&&y!=null&&(0,H.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[Ie.length,` / `,y.total,` `,y.total===1?`file`:`files`]}),(0,H.jsx)(`div`,{className:`ml-auto flex h-8 items-center gap-2`,children:D.size>0?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(`span`,{className:`text-sm font-medium`,children:[D.size,` selected`]}),(0,H.jsx)(q,{variant:`outline`,size:`sm`,onClick:()=>O(new Set),children:`Clear`}),a&&(0,H.jsxs)(q,{variant:`destructive`,size:`sm`,disabled:pe,onClick:()=>fe(!0),children:[(0,H.jsx)(Xo,{className:`size-3.5`}),`Delete`]})]}):!Ue&&!He?(0,H.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors`,onClick:()=>O(new Set(Be)),children:[(0,H.jsx)(pk,{checked:!1,"aria-hidden":!0,className:`pointer-events-none`}),`Select all`]}):null})]}),(0,H.jsx)(`input`,{ref:t,type:`file`,multiple:!0,className:`hidden`,onChange:e=>Se(e.target.files)}),T&&(0,H.jsx)(`p`,{className:`mb-4 text-sm text-destructive`,children:T}),He?(0,H.jsx)(`div`,{className:`flex items-center gap-2 py-16 justify-center text-muted-foreground`,children:(0,H.jsx)(Xb,{className:`size-5`})}):Ue?(0,H.jsxs)(`div`,{className:`flex flex-col items-center justify-center rounded-lg border border-dashed py-20 text-center cursor-pointer hover:bg-muted/50 transition-colors`,onClick:()=>i&&t.current?.click(),onDragOver:e=>e.preventDefault(),onDrop:Ce,children:[(0,H.jsx)(ts,{className:`size-8 text-muted-foreground mb-3`}),(0,H.jsx)(`p`,{className:`text-sm font-medium`,children:`Drop files or folders here, or click to upload`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:`Images, videos, audio, documents and more`})]}):(0,H.jsxs)(`div`,{className:`flex flex-col gap-6`,onDragOver:e=>e.preventDefault(),onDrop:Ce,children:[Fe.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4`,children:Fe.map(e=>(0,H.jsx)(_0,{folder:e,onOpen:we,onDelete:re,onRename:e=>{ie(e),oe(e.name)},canDelete:a,canRename:i,selected:D.has(`folder:${e.id}`),onToggle:Ae},e.id))}),Ie.length>0&&(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6`,children:Ie.map(e=>(0,H.jsx)(v0,{item:e,onDelete:z,onPreview:je,canDelete:a,selected:D.has(e.id),onToggle:Ae},e.id))})]}),(y?.pages??0)>1&&(0,H.jsx)(`div`,{className:`mt-4`,children:(0,H.jsx)(Fk,{className:`mx-0 w-auto justify-end`,children:(0,H.jsxs)(Ik,{children:[(0,H.jsx)(Lk,{children:(0,H.jsx)(zk,{href:`#`,onClick:e=>{e.preventDefault(),l>1&&u(l-1)},"aria-disabled":l===1,className:l===1?`pointer-events-none opacity-50`:``})}),(0,H.jsx)(Lk,{children:(0,H.jsx)(Bk,{href:`#`,onClick:e=>{e.preventDefault(),l<(y?.pages??1)&&u(l+1)},"aria-disabled":l===(y?.pages??1),className:l===(y?.pages??1)?`pointer-events-none opacity-50`:``})})]})})}),(0,H.jsx)(my,{open:!!k,onOpenChange:e=>{e||(A(null),te(null),I(``))},children:(0,H.jsxs)(vy,{className:`sm:max-w-5xl max-h-[90vh] overflow-hidden p-0`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{className:`truncate px-6 pt-6 pr-12`,title:k?.filename,children:k?.filename})}),k&&(0,H.jsxs)(`div`,{className:`grid max-h-[calc(90vh-4rem)] min-h-0 gap-0 lg:grid-cols-[minmax(0,1fr)_320px]`,children:[(0,H.jsxs)(`div`,{className:`relative flex min-h-0 items-center justify-center overflow-hidden bg-muted/30 px-6 py-4`,children:[(0,H.jsx)(`div`,{className:`flex h-full w-full min-h-[280px] items-center justify-center overflow-hidden rounded-xl border bg-background/70 p-4`,children:(0,H.jsx)(g0,{item:k})}),(0,H.jsx)(q,{type:`button`,variant:`secondary`,size:`icon`,className:`absolute left-8 top-1/2 size-10 -translate-y-1/2 rounded-full shadow-sm`,onClick:()=>Me(-1),disabled:!Re,"aria-label":`Previous file`,children:(0,H.jsx)(Wa,{className:`size-4`})}),(0,H.jsx)(q,{type:`button`,variant:`secondary`,size:`icon`,className:`absolute right-8 top-1/2 size-10 -translate-y-1/2 rounded-full shadow-sm`,onClick:()=>Me(1),disabled:!ze,"aria-label":`Next file`,children:(0,H.jsx)(Ga,{className:`size-4`})})]}),(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-col border-t lg:border-l lg:border-t-0`,children:[(0,H.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 border-b px-6 py-4 text-xs text-muted-foreground`,children:[(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Type`}),(0,H.jsx)(`p`,{className:`break-all`,children:k.mime_type??`—`})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Size`}),(0,H.jsx)(`p`,{children:s0(k.size??null)})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Dimensions`}),(0,H.jsx)(`p`,{children:k.width&&k.height?`${k.width} × ${k.height}`:`—`})]}),(0,H.jsxs)(`div`,{children:[(0,H.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Created`}),(0,H.jsx)(`p`,{children:ex(k.created_at,e)})]})]}),(0,H.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 py-4`,children:[(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{className:`text-xs`,children:`Filename`}),(0,H.jsx)(J,{value:j,onChange:e=>Pe(e.target.value),placeholder:k.filename,className:`text-sm`,disabled:!i})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{className:`text-xs`,children:`Alt text`}),(0,H.jsx)(J,{value:N,onChange:e=>P(e.target.value),placeholder:c0(j||k.filename),className:`text-sm`,disabled:!i}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Defaulted from the filename without extension. You can override it.`})]}),(0,H.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,H.jsx)(Y,{className:`text-xs`,children:`Subtitle`}),(0,H.jsx)(AP,{value:F,onChange:e=>I(e.target.value),placeholder:`Used as figcaption in the frontend…`,className:`min-h-28 resize-none text-sm`,disabled:!i})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between gap-3 pt-2`,children:[(0,H.jsx)(`a`,{href:k.url,target:`_blank`,rel:`noreferrer`,download:k.filename,children:(0,H.jsxs)(q,{variant:`outline`,size:`sm`,type:`button`,children:[(0,H.jsx)(to,{className:`size-3.5`}),`Download`]})}),(0,H.jsx)(q,{type:`button`,size:`sm`,onClick:Ne,disabled:L||!i,children:L?`Saving…`:`Save`})]}),ee&&(0,H.jsx)(`p`,{className:`text-xs text-destructive`,children:ee})]})]})]})]})}),(0,H.jsx)(my,{open:se,onOpenChange:e=>{e||ce(!1)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`New folder`})}),(0,H.jsx)(J,{placeholder:`Folder name`,value:le,onChange:e=>ue(e.target.value),onKeyDown:e=>{e.key===`Enter`&&Ee()}}),ye&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:ye}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>ce(!1),children:`Cancel`}),(0,H.jsx)(q,{onClick:Ee,disabled:ve||!le.trim()||!i,children:ve?`Creating…`:`Create`})]})]})}),(0,H.jsx)(my,{open:!!V,onOpenChange:e=>{e||ie(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Rename folder`})}),(0,H.jsx)(J,{value:ae,onChange:e=>oe(e.target.value),onKeyDown:e=>{e.key===`Enter`&&De()}}),ye&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:ye}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>ie(null),children:`Cancel`}),(0,H.jsx)(q,{onClick:De,disabled:ve||!ae.trim()||!i,children:ve?`Saving…`:`Save`})]})]})}),(0,H.jsx)(my,{open:!!ne,onOpenChange:e=>{e||z(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Delete file`})}),(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:ne?.filename}),`? This action cannot be undone.`]}),ge&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:ge}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>z(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:ke,disabled:he||!a,children:he?`Deleting…`:`Delete`})]})]})}),(0,H.jsx)(my,{open:!!B,onOpenChange:e=>{e||re(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{children:`Delete folder`})}),(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:B?.name}),`? The folder must be empty.`]}),ge&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:ge}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>re(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:Oe,disabled:he||!a,children:he?`Deleting…`:`Delete`})]})]})}),(0,H.jsx)(my,{open:de,onOpenChange:e=>{e||fe(!1)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsxs)(xy,{children:[`Delete `,D.size,` `,D.size===1?`item`:`items`,`?`]})}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone. Non-empty folders will be skipped.`}),(0,H.jsxs)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>fe(!1),children:`Cancel`}),(0,H.jsxs)(q,{variant:`destructive`,onClick:Ve,disabled:pe,children:[pe?(0,H.jsx)(Xb,{className:`size-4`}):null,`Delete`]})]})]})})]})]})}function b0({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 x0(e,t){return e?.permissions.includes(`*`)||e?.permissions.includes(t)||!1}function S0(){let{user:e}=_a(),t=[{label:`Overview`,to:`/settings/overview`,icon:Ho,permission:`settings:overview:read`},{label:`Users`,to:`/settings/users`,icon:rs,permission:`settings:users:read`},{label:`Roles`,to:`/settings/roles`,icon:Uo,permission:`settings:roles:read`},{label:`API Tokens`,to:`/settings/api-tokens`,icon:Co,permission:`settings:api-tokens:read`},{label:`Webhooks`,to:`/settings/webhooks`,icon:is,permission:`settings:webhooks:read`}].filter(({permission:t})=>x0(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)(b0,{items:t})]})}function C0(){return NT((0,H.jsx)(S0,{})),(0,H.jsx)($r,{})}var w0=`••••••••`;function T0({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)(J,{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)(J,{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 E0({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]===w0,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)(J,{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)(ro,{className:`size-4`}):(0,H.jsx)(io,{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 D0({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)(J,{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)(E0,{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)(J,{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)(J,{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)(J,{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)(J,{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 O0({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)(J,{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)(E0,{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)(J,{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)(J,{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)(J,{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 k0(){let{user:e}=_a(),{data:t,loading:n}=Ta(`/cms/admin/settings/media`),{loading:r,error:i,request:a}=Sb(),[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)(Xb,{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)(pT,{value:d,onValueChange:e=>h(e),children:[(0,H.jsx)(gT,{id:`provider`,disabled:!p,children:(0,H.jsx)(hT,{})}),(0,H.jsxs)(yT,{children:[(0,H.jsx)(xT,{value:`local`,children:`Local`}),(0,H.jsx)(xT,{value:`s3`,children:`Amazon S3`}),(0,H.jsx)(xT,{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)(J,{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)(T0,{values:u,onChange:m,disabled:!p}),d===`s3`&&(0,H.jsx)(D0,{values:u,onChange:m,disabled:!p}),d===`r2`&&(0,H.jsx)(O0,{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 A0={name:`@plank-cms/admin`,version:`0.27.3`,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`}},j0=[{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 M0(){let{user:e}=_a(),{data:t,loading:n}=Ta(`/cms/admin/settings/general`),{request:r,loading:i}=Sb(),{request:a,loading:o}=Sb(),{request:s,loading:c}=Sb(),{refreshSettings:l}=ba(),[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)(Xb,{}):(0,H.jsxs)(`div`,{className:`space-y-6`,children:[(0,H.jsx)(cT,{children:(0,H.jsxs)(fT,{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 `,A0.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)(pT,{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)(gT,{id:`timezone`,className:`w-full`,disabled:!S,children:(0,H.jsx)(hT,{})}),(0,H.jsx)(yT,{className:`max-h-72`,children:j0.map(e=>(0,H.jsx)(xT,{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)(J,{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)(pT,{value:m,onValueChange:h,children:[(0,H.jsx)(gT,{id:`default-locale`,className:`w-full`,disabled:!S,children:(0,H.jsx)(hT,{})}),(0,H.jsx)(yT,{className:`max-h-72`,children:f.length===0?(0,H.jsx)(xT,{value:m,children:m}):f.map(e=>(0,H.jsx)(xT,{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)(jk,{}),(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)(ok,{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 N0(){let{user:e}=_a(),{data:t,loading:n}=Ta(`/cms/admin/settings/preview`),{request:r,loading:i}=Sb(),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=G1(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)(Xb,{}):(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)(ok,{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)(J,{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)(J,{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)(J,{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 P0(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsxs)(Yb,{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)(Uj,{defaultValue:`general`,className:`mt-24`,children:[(0,H.jsxs)(Wj,{className:`mb-6`,children:[(0,H.jsx)(Gj,{value:`general`,children:`General`}),(0,H.jsx)(Gj,{value:`preview`,children:`Preview`}),(0,H.jsx)(Gj,{value:`media`,children:`Media Library`})]}),(0,H.jsx)(Kj,{value:`general`,children:(0,H.jsx)(M0,{})}),(0,H.jsx)(Kj,{value:`preview`,children:(0,H.jsx)(N0,{})}),(0,H.jsx)(Kj,{value:`media`,children:(0,H.jsx)(k0,{})})]})]})}function F0(e,t){return typeof e==`function`?e(t):e}function I0(e,t){return n=>{t.setState(t=>({...t,[e]:F0(n,t[e])}))}}function L0(e){return e instanceof Function}function R0(e){return Array.isArray(e)&&e.every(e=>typeof e==`number`)}function z0(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 B0(e,t,n){let r=[],i;return a=>{let o;n.key&&n.debug&&(o=Date.now());let s=e(a);if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug&&(c=Date.now()),i=t(...s),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length<t;)e=` `+e;return e};console.info(`%c⏱ ${i(t,5)} /${i(e,5)} ms`,`
|
|
220
220
|
font-size: .6rem;
|
|
221
221
|
font-weight: bold;
|
|
222
|
-
color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return i}}function B0(e,t,n,r){return{debug:()=>e?.debugAll??e[t],key:!1,onChange:r}}function V0(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:z0(()=>[e,n,t,i],(e,t,n,r)=>({table:e,column:t,row:n,cell:r,getValue:r.getValue,renderValue:r.renderValue}),B0(e.options,`debugCells`,`cell.getContext`))};return e._features.forEach(r=>{r.createCell==null||r.createCell(i,n,t,e)},{}),i}function H0(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:z0(()=>[!0],()=>[c,...c.columns?.flatMap(e=>e.getFlatColumns())],B0(e.options,`debugColumns`,`column.getFlatColumns`)),getLeafColumns:z0(()=>[e._getOrderColumnsFn()],e=>{var t;return(t=c.columns)!=null&&t.length?e(c.columns.flatMap(e=>e.getLeafColumns())):[c]},B0(e.options,`debugColumns`,`column.getLeafColumns`))};for(let t of e._features)t.createColumn==null||t.createColumn(c,e);return c}var U0=`debugHeaders`;function W0(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 G0={createTable:e=>{e.getHeaderGroups=z0(()=>[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 K0(t,[...a,...s,...o],e)},B0(e.options,U0,`getHeaderGroups`)),e.getCenterHeaderGroups=z0(()=>[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))),K0(t,n,e,`center`)),B0(e.options,U0,`getCenterHeaderGroups`)),e.getLeftHeaderGroups=z0(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>K0(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`left`),B0(e.options,U0,`getLeftHeaderGroups`)),e.getRightHeaderGroups=z0(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>K0(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`right`),B0(e.options,U0,`getRightHeaderGroups`)),e.getFooterGroups=z0(()=>[e.getHeaderGroups()],e=>[...e].reverse(),B0(e.options,U0,`getFooterGroups`)),e.getLeftFooterGroups=z0(()=>[e.getLeftHeaderGroups()],e=>[...e].reverse(),B0(e.options,U0,`getLeftFooterGroups`)),e.getCenterFooterGroups=z0(()=>[e.getCenterHeaderGroups()],e=>[...e].reverse(),B0(e.options,U0,`getCenterFooterGroups`)),e.getRightFooterGroups=z0(()=>[e.getRightHeaderGroups()],e=>[...e].reverse(),B0(e.options,U0,`getRightFooterGroups`)),e.getFlatHeaders=z0(()=>[e.getHeaderGroups()],e=>e.map(e=>e.headers).flat(),B0(e.options,U0,`getFlatHeaders`)),e.getLeftFlatHeaders=z0(()=>[e.getLeftHeaderGroups()],e=>e.map(e=>e.headers).flat(),B0(e.options,U0,`getLeftFlatHeaders`)),e.getCenterFlatHeaders=z0(()=>[e.getCenterHeaderGroups()],e=>e.map(e=>e.headers).flat(),B0(e.options,U0,`getCenterFlatHeaders`)),e.getRightFlatHeaders=z0(()=>[e.getRightHeaderGroups()],e=>e.map(e=>e.headers).flat(),B0(e.options,U0,`getRightFlatHeaders`)),e.getCenterLeafHeaders=z0(()=>[e.getCenterFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),B0(e.options,U0,`getCenterLeafHeaders`)),e.getLeftLeafHeaders=z0(()=>[e.getLeftFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),B0(e.options,U0,`getLeftLeafHeaders`)),e.getRightLeafHeaders=z0(()=>[e.getRightFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),B0(e.options,U0,`getRightLeafHeaders`)),e.getLeafHeaders=z0(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(e,t,n)=>[...e[0]?.headers??[],...t[0]?.headers??[],...n[0]?.headers??[]].map(e=>e.getLeafHeaders()).flat(),B0(e.options,U0,`getLeafHeaders`))}};function K0(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=W0(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)=>W0(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 q0=(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:()=>R0(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:z0(()=>[e.getAllLeafColumns()],t=>t.map(t=>V0(e,s,t,t.id)),B0(e.options,`debugRows`,`getAllCells`)),_getAllCellsByColumnId:z0(()=>[s.getAllCells()],e=>e.reduce((e,t)=>(e[t.column.id]=t,e),{}),B0(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},J0={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()}}},Y0=(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))};Y0.autoRemove=e=>a2(e);var X0=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};X0.autoRemove=e=>a2(e);var Z0=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===n?.toLowerCase()};Z0.autoRemove=e=>a2(e);var Q0=(e,t,n)=>e.getValue(t)?.includes(n);Q0.autoRemove=e=>a2(e);var $0=(e,t,n)=>!n.some(n=>{var r;return!((r=e.getValue(t))!=null&&r.includes(n))});$0.autoRemove=e=>a2(e)||!(e!=null&&e.length);var e2=(e,t,n)=>n.some(n=>e.getValue(t)?.includes(n));e2.autoRemove=e=>a2(e)||!(e!=null&&e.length);var t2=(e,t,n)=>e.getValue(t)===n;t2.autoRemove=e=>a2(e);var n2=(e,t,n)=>e.getValue(t)==n;n2.autoRemove=e=>a2(e);var r2=(e,t,n)=>{let[r,i]=n,a=e.getValue(t);return a>=r&&a<=i};r2.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]},r2.autoRemove=e=>a2(e)||a2(e[0])&&a2(e[1]);var i2={includesString:Y0,includesStringSensitive:X0,equalsString:Z0,arrIncludes:Q0,arrIncludesAll:$0,arrIncludesSome:e2,equals:t2,weakEquals:n2,inNumberRange:r2};function a2(e){return e==null||e===``}var o2={getDefaultColumnDef:()=>({filterFn:`auto`}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:F0(`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=()=>I0(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=P0(n,i?i.value:void 0);if(s2(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=>P0(t,e)?.filter(e=>{let t=n.find(t=>t.id===e.id);return!(t&&s2(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 s2(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||t===void 0||typeof t==`string`&&!t}var c2={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(!L0(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},l2={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:F0(`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 c2.sum;if(Object.prototype.toString.call(n)===`[object Date]`)return c2.extent},e.getAggregationFn=()=>{if(!e)throw Error();return I0(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn===`auto`?e.getAutoAggregationFn():t.options.aggregationFns?.[e.columnDef.aggregationFn]??c2[e.columnDef.aggregationFn]}},createTable:e=>{e.setGrouping=t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),e.resetGrouping=t=>{e.setGrouping(t?[]:e.initialState?.grouping??[])},e.getPreGroupedRowModel=()=>e.getFilteredRowModel(),e.getGroupedRowModel=()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())},createRow:(e,t)=>{e.getIsGrouped=()=>!!e.groupingColumnId,e.getGroupingValue=n=>{if(e._groupingValuesCache.hasOwnProperty(n))return e._groupingValuesCache[n];let r=t.getColumn(n);return r!=null&&r.columnDef.getGroupingValue?(e._groupingValuesCache[n]=r.columnDef.getGroupingValue(e.original),e._groupingValuesCache[n]):e.getValue(n)},e._groupingValuesCache={}},createCell:(e,t,n,r)=>{e.getIsGrouped=()=>t.getIsGrouped()&&t.id===n.groupingColumnId,e.getIsPlaceholder=()=>!e.getIsGrouped()&&t.getIsGrouped(),e.getIsAggregated=()=>{var t;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((t=n.subRows)!=null&&t.length)}}};function u2(e,t,n){if(!(t!=null&&t.length)||!n)return e;let r=e.filter(e=>!t.includes(e.id));return n===`remove`?r:[...t.map(t=>e.find(e=>e.id===t)).filter(Boolean),...r]}var d2={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:F0(`columnOrder`,e)}),createColumn:(e,t)=>{e.getIndex=z0(e=>[S2(t,e)],t=>t.findIndex(t=>t.id===e.id),B0(t.options,`debugColumns`,`getIndex`)),e.getIsFirstColumn=n=>S2(t,n)[0]?.id===e.id,e.getIsLastColumn=n=>{let r=S2(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=z0(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(e,t,n)=>r=>{let i=[];if(!(e!=null&&e.length))i=r;else{let t=[...e],n=[...r];for(;n.length&&t.length;){let e=t.shift(),r=n.findIndex(t=>t.id===e);r>-1&&i.push(n.splice(r,1)[0])}i=[...i,...n]}return u2(i,t,n)},B0(e.options,`debugTable`,`_getOrderColumnsFn`))}},f2=()=>({left:[],right:[]}),p2={getInitialState:e=>({columnPinning:f2(),...e}),getDefaultOptions:e=>({onColumnPinningChange:F0(`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=z0(()=>[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))},B0(t.options,`debugRows`,`getCenterVisibleCells`)),e.getLeftVisibleCells=z0(()=>[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`})),B0(t.options,`debugRows`,`getLeftVisibleCells`)),e.getRightVisibleCells=z0(()=>[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`})),B0(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?f2():e.initialState?.columnPinning??f2()),e.getIsSomeColumnsPinned=t=>{let n=e.getState().columnPinning;return t?!!n[t]?.length:!!(n.left?.length||n.right?.length)},e.getLeftLeafColumns=z0(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(e,t)=>(t??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),B0(e.options,`debugColumns`,`getLeftLeafColumns`)),e.getRightLeafColumns=z0(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(e,t)=>(t??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),B0(e.options,`debugColumns`,`getRightLeafColumns`)),e.getCenterLeafColumns=z0(()=>[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))},B0(e.options,`debugColumns`,`getCenterLeafColumns`))}};function m2(e){return e||(typeof document<`u`?document:null)}var h2={size:150,minSize:20,maxSize:2**53-1},g2=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),_2={getDefaultColumnDef:()=>h2,getInitialState:e=>({columnSizing:{},columnSizingInfo:g2(),...e}),getDefaultOptions:e=>({columnResizeMode:`onEnd`,columnResizeDirection:`ltr`,onColumnSizingChange:F0(`columnSizing`,e),onColumnSizingInfoChange:F0(`columnSizingInfo`,e)}),createColumn:(e,t)=>{e.getSize=()=>{let n=t.getState().columnSizing[e.id];return Math.min(Math.max(e.columnDef.minSize??h2.minSize,n??e.columnDef.size??h2.size),e.columnDef.maxSize??h2.maxSize)},e.getStart=z0(e=>[e,S2(t,e),t.getState().columnSizing],(t,n)=>n.slice(0,e.getIndex(t)).reduce((e,t)=>e+t.getSize(),0),B0(t.options,`debugColumns`,`getStart`)),e.getAfter=z0(e=>[e,S2(t,e),t.getState().columnSizing],(t,n)=>n.slice(e.getIndex(t)+1).reduce((e,t)=>e+t.getSize(),0),B0(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(),b2(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=b2(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=m2(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=y2()?{passive:!1}:!1;b2(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?g2():e.initialState.columnSizingInfo??g2())},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}},v2=null;function y2(){if(typeof v2==`boolean`)return v2;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 v2=e,v2}function b2(e){return e.type===`touchstart`}var x2={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:F0(`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=z0(()=>[e.getAllCells(),t.getState().columnVisibility],e=>e.filter(e=>e.column.getIsVisible()),B0(t.options,`debugRows`,`_getAllVisibleCells`)),e.getVisibleCells=z0(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(e,t,n)=>[...e,...t,...n],B0(t.options,`debugRows`,`getVisibleCells`))},createTable:e=>{let t=(t,n)=>z0(()=>[n(),n().filter(e=>e.getIsVisible()).map(e=>e.id).join(`_`)],e=>e.filter(e=>e.getIsVisible==null?void 0:e.getIsVisible()),B0(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 S2(e,t){return t?t===`center`?e.getCenterVisibleLeafColumns():t===`left`?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}var C2={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()}}},w2={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:F0(`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 I0(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)}}},T2={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:F0(`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()}}}},E2=0,D2=10,O2=()=>({pageIndex:E2,pageSize:D2}),k2={getInitialState:e=>({...e,pagination:{...O2(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:F0(`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=>P0(t,e)),e.resetPagination=t=>{e.setPagination(t?O2():e.initialState.pagination??O2())},e.setPageIndex=t=>{e.setPagination(n=>{let r=P0(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?E2:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageIndex)??E2)},e.resetPageSize=t=>{var n;e.setPageSize(t?D2:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageSize)??D2)},e.setPageSize=t=>{e.setPagination(e=>{let n=Math.max(1,P0(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=P0(t,e.options.pageCount??-1);return typeof r==`number`&&(r=Math.max(-1,r)),{...n,pageCount:r}}),e.getPageOptions=z0(()=>[e.getPageCount()],e=>{let t=[];return e&&e>0&&(t=[...Array(e)].fill(null).map((e,t)=>t)),t},B0(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}},A2=()=>({top:[],bottom:[]}),j2={getInitialState:e=>({rowPinning:A2(),...e}),getDefaultOptions:e=>({onRowPinningChange:F0(`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?A2():e.initialState?.rowPinning??A2()),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=z0(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,`top`),B0(e.options,`debugRows`,`getTopRows`)),e.getBottomRows=z0(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,`bottom`),B0(e.options,`debugRows`,`getBottomRows`)),e.getCenterRows=z0(()=>[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))},B0(e.options,`debugRows`,`getCenterRows`))}},M2={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:F0(`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=>{N2(i,t.id,r,!0,e)}),i}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=z0(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?P2(e,n):{rows:[],flatRows:[],rowsById:{}},B0(e.options,`debugTable`,`getSelectedRowModel`)),e.getFilteredSelectedRowModel=z0(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?P2(e,n):{rows:[],flatRows:[],rowsById:{}},B0(e.options,`debugTable`,`getFilteredSelectedRowModel`)),e.getGroupedSelectedRowModel=z0(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?P2(e,n):{rows:[],flatRows:[],rowsById:{}},B0(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 N2(o,e.id,n,r?.selectChildren??!0,t),o})},e.getIsSelected=()=>{let{rowSelection:n}=t.getState();return F2(e,n)},e.getIsSomeSelected=()=>{let{rowSelection:n}=t.getState();return I2(e,n)===`some`},e.getIsAllSubRowsSelected=()=>{let{rowSelection:n}=t.getState();return I2(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)}}}},N2=(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=>N2(e,t.id,n,r,i))};function P2(e,t){let n=e.getState().rowSelection,r=[],i={},a=function(e,t){return e.map(e=>{var t;let o=F2(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 F2(e,t){return t[e.id]??!1}function I2(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()&&(F2(e,t)?a=!0:i=!1),e.subRows&&e.subRows.length)){let n=I2(e,t);n===`all`?a=!0:(n===`some`&&(a=!0),i=!1)}}),i?`all`:a?`some`:!1}var L2=/([0-9]+)/gm,R2=(e,t,n)=>K2(G2(e.getValue(n)).toLowerCase(),G2(t.getValue(n)).toLowerCase()),z2=(e,t,n)=>K2(G2(e.getValue(n)),G2(t.getValue(n))),B2=(e,t,n)=>W2(G2(e.getValue(n)).toLowerCase(),G2(t.getValue(n)).toLowerCase()),V2=(e,t,n)=>W2(G2(e.getValue(n)),G2(t.getValue(n))),H2=(e,t,n)=>{let r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},U2=(e,t,n)=>W2(e.getValue(n),t.getValue(n));function W2(e,t){return e===t?0:e>t?1:-1}function G2(e){return typeof e==`number`?isNaN(e)||e===1/0||e===-1/0?``:String(e):typeof e==`string`?e:``}function K2(e,t){let n=e.split(L2).filter(Boolean),r=t.split(L2).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 q2={alphanumeric:R2,alphanumericCaseSensitive:z2,text:B2,textCaseSensitive:V2,datetime:H2,basic:U2},J2=[G0,x2,d2,p2,J0,o2,C2,w2,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:`auto`,sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:F0(`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 q2.datetime;if(typeof n==`string`&&(r=!0,n.split(L2).length>1))return q2.alphanumeric}return r?q2.text:q2.basic},e.getAutoSortDir=()=>typeof t.getFilteredRowModel().flatRows[0]?.getValue(e.id)==`string`?`asc`:`desc`,e.getSortingFn=()=>{if(!e)throw Error();return I0(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn===`auto`?e.getAutoSortingFn():t.options.sortingFns?.[e.columnDef.sortingFn]??q2[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())}},l2,T2,k2,j2,M2,_2];function Y2(e){let t=[...J2,...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(P0(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:z0(()=>[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}),B0(e,`debugColumns`,`_getDefaultColumnDef`)),_getColumnDefs:()=>n.options.columns,getAllColumns:z0(()=>[n._getColumnDefs()],e=>{let t=function(e,r,i){return i===void 0&&(i=0),e.map(e=>{let a=H0(n,e,i,r),o=e;return a.columns=o.columns?t(o.columns,a,i+1):[],a})};return t(e)},B0(e,`debugColumns`,`getAllColumns`)),getAllFlatColumns:z0(()=>[n.getAllColumns()],e=>e.flatMap(e=>e.getFlatColumns()),B0(e,`debugColumns`,`getAllFlatColumns`)),_getAllFlatColumnsById:z0(()=>[n.getAllFlatColumns()],e=>e.reduce((e,t)=>(e[t.id]=t,e),{}),B0(e,`debugColumns`,`getAllFlatColumnsById`)),getAllLeafColumns:z0(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(e,t)=>t(e.flatMap(e=>e.getLeafColumns())),B0(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 X2(){return e=>z0(()=>[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=q0(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},B0(e.options,`debugTable`,`getRowModel`,()=>e._autoResetPageIndex()))}function Z2(e,t){return e?Q2(e)?v.createElement(e,t):e:null}function Q2(e){return $2(e)||typeof e==`function`||e4(e)}function $2(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function e4(e){return typeof e==`object`&&typeof e.$$typeof==`symbol`&&[`react.memo`,`react.forward_ref`].includes(e.$$typeof.description)}function t4(e){let t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=v.useState(()=>({current:Y2(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 n4={"super admin":`default`,admin:`secondary`,contributor:`outline`,editor:`secondary`,viewer:`outline`};function r4({roleId:e,roleName:t,roles:n}){let r=n.find(t=>t.id===e),i=t??r?.name??e;return(0,H.jsx)(sT,{variant:n4[i.toLowerCase()]??`secondary`,children:i})}function i4({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)(Xo,{className:`size-3.5`})})]})}var a4={email:``,password:``,firstName:``,lastName:``,roleId:``,enabled:!0};function o4(){let{user:e,updateUser:t}=_a(),{editorialMode:n}=ba(),{data:r,loading:i,refetch:a}=Ta(`/cms/admin/users`),{data:o,loading:s}=Ta(`/cms/admin/roles`),c=i||s,{request:l,loading:u,error:d}=Sb(),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(a4),[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)(r4,{roleId:t(),roleName:e.original.role_name,roles:C})},{accessorKey:`enabled`,header:`Enabled`,cell:({row:t,getValue:n})=>(0,H.jsx)(ok,{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)(i4,{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=t4({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:X2()});async function k(e){e.preventDefault();try{await l(`/cms/admin/users`,`POST`,m),p(!1),h(a4),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)(Yb,{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)(CT,{children:[(0,H.jsx)(wT,{className:`font-bold uppercase`,children:O.getHeaderGroups().map(e=>(0,H.jsx)(ET,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(DT,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:Z2(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(TT,{children:c?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:D.length,className:`h-24`,children:(0,H.jsx)(Xb,{className:`mx-auto size-5`})})}):O.getRowModel().rows.length===0?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:D.length,className:`h-24 text-center text-muted-foreground`,children:`No users found.`})}):O.getRowModel().rows.map(e=>(0,H.jsx)(ET,{children:e.getVisibleCells().map(e=>(0,H.jsx)(OT,{className:`px-4 py-3`,children:Z2(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(my,{open:f,onOpenChange:p,children:(0,H.jsxs)(vy,{className:`sm:max-w-md`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(J,{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)(J,{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)(J,{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)(J,{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)(pT,{value:m.roleId,onValueChange:e=>h(t=>({...t,roleId:e})),children:[(0,H.jsx)(gT,{id:`c-role`,children:(0,H.jsx)(hT,{placeholder:`Select a role`})}),(0,H.jsx)(yT,{children:E.map(e=>(0,H.jsx)(xT,{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)(ok,{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)(by,{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)(my,{open:!!g,onOpenChange:e=>{e||_(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-md`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(J,{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)(J,{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)(J,{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)(pT,{value:y.roleId,onValueChange:e=>b(t=>({...t,roleId:e})),children:[(0,H.jsx)(gT,{id:`e-role`,children:(0,H.jsx)(hT,{placeholder:`Select a role`})}),(0,H.jsx)(yT,{children:E.map(e=>(0,H.jsx)(xT,{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)(ok,{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)(by,{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)(my,{open:!!x,onOpenChange:e=>{e||S(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(by,{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 s4=[{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:`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`]}],c4=[{key:`read`,label:`R`},{key:`write`,label:`W`},{key:`delete`,label:`D`}],l4=[`Super Admin`,`Admin`,`Editor`,`Contributor`],u4=`w-44 min-w-44 max-w-44`;function d4(e){return Object.fromEntries(e.map(e=>[e.id,new Set(e.permissions)]))}function f4(e,t){return e.includes(t)}function p4(){let{user:e}=_a(),{editorialMode:t}=ba(),{data:n,loading:r,refetch:i}=Ta(`/cms/admin/roles`),{request:a,loading:o}=Sb(),[s,c]=(0,v.useState)({}),[l,u]=(0,v.useState)(new Set),[d,f]=(0,v.useState)(!1);(0,v.useEffect)(()=>{n&&c(d4(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=l4.indexOf(e.name),r=l4.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)(Yb,{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)(zo,{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)(CT,{children:[(0,H.jsxs)(wT,{children:[(0,H.jsxs)(ET,{className:`hover:bg-transparent`,children:[(0,H.jsx)(DT,{className:`w-40`,rowSpan:2}),y&&(0,H.jsx)(DT,{colSpan:3,className:`border-l text-center ${u4}`,children:y.name}),_.map(e=>(0,H.jsx)(DT,{colSpan:3,className:`border-l ${u4}`,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)(Bo,{className:`size-3`}),`Save`]})]})},e.id))]}),(0,H.jsxs)(ET,{className:`hover:bg-transparent`,children:[y&&c4.map((e,t)=>(0,H.jsx)(DT,{className:`w-12 text-center font-normal ${t===0?`border-l`:``}`,children:e.label},e.key)),_.map(e=>c4.map((t,n)=>(0,H.jsx)(DT,{className:`w-12 text-center font-normal ${n===0?`border-l`:``}`,children:t.label},`${e.id}-${t.key}`)))]})]}),(0,H.jsx)(TT,{children:r?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:99,className:`h-24`,children:(0,H.jsx)(Xb,{className:`mx-auto size-5`})})}):s4.map(({key:e,label:t,actions:n})=>(0,H.jsxs)(ET,{children:[(0,H.jsx)(OT,{className:`font-medium`,children:t}),y&&c4.map((e,t)=>(0,H.jsx)(OT,{className:`text-center ${t===0?`border-l`:``}`,children:f4(n,e.key)?(0,H.jsx)(pk,{checked:!0,disabled:!0}):(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},e.key)),_.map(t=>c4.map((r,i)=>{let a=f4(n,r.key),o=`${e}:${r.key}`;return(0,H.jsx)(OT,{className:`text-center ${i===0?`border-l`:``}`,children:a?(0,H.jsx)(pk,{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)(my,{open:d,onOpenChange:f,children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(by,{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 m4={"full-access":`default`,"read-only":`secondary`},h4={"full-access":`Full access`,"read-only":`Read only`};function g4({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)(Ha,{className:`size-4 text-green-500`}):(0,H.jsx)(eo,{className:`size-4`})})}var _4={name:``,accessType:``};function v4(){let{user:e}=_a(),{data:t,loading:n,refetch:r}=Ta(`/cms/admin/api-tokens`),{request:i,loading:a,error:o}=Sb(),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)(_4),[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)(sT,{variant:m4[t]??`secondary`,children:h4[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)(Xo,{className:`size-3.5`})}):null}],b=t4({data:t??[],columns:y,getCoreRowModel:X2()});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(_4)}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)(Yb,{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)(CT,{children:[(0,H.jsx)(wT,{className:`font-bold uppercase`,children:b.getHeaderGroups().map(e=>(0,H.jsx)(ET,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(DT,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:Z2(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(TT,{children:n?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:y.length,className:`h-24`,children:(0,H.jsx)(Xb,{className:`mx-auto size-5`})})}):b.getRowModel().rows.length===0?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:y.length,className:`h-24 text-center text-muted-foreground`,children:`No tokens yet.`})}):b.getRowModel().rows.map(e=>(0,H.jsx)(ET,{children:e.getVisibleCells().map(e=>(0,H.jsx)(OT,{className:`px-4 py-3`,children:Z2(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(my,{open:u,onOpenChange:e=>{e||S()},children:(0,H.jsx)(vy,{className:`sm:max-w-md`,children:m?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(J,{readOnly:!0,value:m.token,className:`font-mono text-xs`}),(0,H.jsx)(g4,{value:m.token})]})]})]}),(0,H.jsx)(by,{children:(0,H.jsx)(q,{onClick:S,children:`Done`})})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(J,{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)(pT,{value:f.accessType,onValueChange:e=>p(t=>({...t,accessType:e})),children:[(0,H.jsx)(gT,{id:`token-access`,children:(0,H.jsx)(hT,{placeholder:`Select access type`})}),(0,H.jsxs)(yT,{children:[(0,H.jsx)(xT,{value:`read-only`,children:`Read only`}),(0,H.jsx)(xT,{value:`full-access`,children:`Full access`})]})]})]}),o&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:o})]}),(0,H.jsxs)(by,{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)(my,{open:!!g,onOpenChange:e=>{e||_(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(by,{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 y4=[{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`}],b4={name:``,url:``,events:[]};function x4(){let{user:e}=_a(),{data:t,loading:n,refetch:r}=Ta(`/cms/admin/webhooks`),{request:i,loading:a,error:o}=Sb(),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)(b4),[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)(sT,{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)(Xo,{className:`size-3.5`})}):null}],_=t4({data:t??[],columns:g,getCoreRowModel:X2()});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(b4),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)(Yb,{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)(CT,{children:[(0,H.jsx)(wT,{className:`font-bold uppercase`,children:_.getHeaderGroups().map(e=>(0,H.jsx)(ET,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(DT,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:Z2(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(TT,{children:n?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:g.length,className:`h-24`,children:(0,H.jsx)(Xb,{className:`mx-auto size-5`})})}):_.getRowModel().rows.length===0?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:g.length,className:`h-24 text-center text-muted-foreground`,children:`No webhooks yet.`})}):_.getRowModel().rows.map(e=>(0,H.jsx)(ET,{children:e.getVisibleCells().map(e=>(0,H.jsx)(OT,{className:`px-4 py-3`,children:Z2(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(my,{open:u,onOpenChange:e=>{e||(d(!1),p(b4))},children:(0,H.jsxs)(vy,{className:`sm:max-w-md`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(J,{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)(J,{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`}),y4.map(({value:e,label:t})=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(pk,{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)(by,{children:[(0,H.jsx)(q,{variant:`outline`,type:`button`,onClick:()=>{d(!1),p(b4)},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)(my,{open:!!m,onOpenChange:e=>{e||h(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(by,{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 S4({...e}){return(0,H.jsx)(_x,{"data-slot":`collapsible`,...e})}function C4({...e}){return(0,H.jsx)(mx,{"data-slot":`collapsible-content`,...e})}function w4(){let{user:e,updateUser:t}=_a(),{loading:n,error:r,request:i}=Sb(),{request:a}=Sb(),o=(0,v.useRef)(null),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(!1),[h,g]=(0,v.useState)(e?.firstName??``),[_,y]=(0,v.useState)(e?.lastName??``),[b,x]=(0,v.useState)(e?.jobTitle??``),[S,C]=(0,v.useState)(e?.organization??``),[w,T]=(0,v.useState)(e?.country??``);function E(){p&&(g(e?.firstName??``),y(e?.lastName??``),x(e?.jobTitle??``),C(e?.organization??``),T(e?.country??``)),m(!p)}async function D(e){let n=e.target.files?.[0];if(n){c(!0),f(null);try{t({avatarUrl:await a$(n)}),X.success(`Avatar updated`)}catch(e){f(e instanceof Error?e.message:`Upload failed.`),X.error(`Could not update avatar`)}finally{c(!1),o.current&&(o.current.value=``)}}}async function O(){u(!0),f(null);try{await a(`/cms/admin/users/me/avatar`,`DELETE`),t({avatarUrl:null}),X.success(`Avatar removed`)}catch(e){f(e instanceof Error?e.message:`Delete failed.`),X.error(`Could not remove avatar`)}finally{u(!1)}}async function k(e){e.preventDefault();try{let e=await i(`/cms/admin/users/me`,`PATCH`,{firstName:h,lastName:_,jobTitle:b,organization:S,country:w});t({firstName:e.first_name,lastName:e.last_name,jobTitle:e.job_title,organization:e.organization,country:e.country}),m(!1),X.success(`Profile saved`)}catch{X.error(`Could not save profile`)}}return(0,H.jsx)(S4,{open:p,onOpenChange:m,children:(0,H.jsxs)(cT,{children:[(0,H.jsxs)(lT,{children:[(0,H.jsx)(uT,{className:`uppercase`,children:`Account`}),(0,H.jsx)(dT,{children:(0,H.jsx)(q,{variant:`ghost`,size:`icon`,onClick:E,children:p?(0,H.jsx)(as,{className:`size-4`}):(0,H.jsx)(Io,{className:`size-4`})})})]}),(0,H.jsxs)(fT,{children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-4 -mt-4`,children:[(0,H.jsxs)(`div`,{className:`group relative shrink-0`,children:[(0,H.jsxs)(`button`,{type:`button`,className:`block`,onClick:()=>o.current?.click(),disabled:s||l,title:`Change avatar`,children:[(0,H.jsx)(kl,{avatarUrl:e?.avatarUrl,firstName:e?.firstName,lastName:e?.lastName,email:e?.email,className:`size-20`,fallbackClassName:`text-xl`}),(0,H.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center rounded-full bg-black/40 opacity-0 transition-opacity group-hover:opacity-100`,children:s||l?(0,H.jsx)(`div`,{className:`size-4 animate-spin rounded-full border-2 border-white border-t-transparent`}):(0,H.jsx)(Va,{className:`size-5 text-white`})})]}),e?.avatarUrl&&!s&&!l&&(0,H.jsx)(`button`,{type:`button`,onClick:O,title:`Remove avatar`,className:`absolute -top-1 -right-1 flex size-5 items-center justify-center rounded-full bg-destructive text-destructive-foreground opacity-0 transition-opacity group-hover:opacity-100`,children:(0,H.jsx)(Xo,{className:`size-3`})})]}),(0,H.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,className:`hidden`,onChange:D}),(0,H.jsxs)(`div`,{children:[d&&(0,H.jsx)(`p`,{className:`text-xs text-destructive mb-1`,children:d}),(0,H.jsx)(`p`,{className:`font-bold text-xl`,children:e?.firstName||e?.lastName?`${e.firstName??``} ${e.lastName??``}`.trim():e?.email}),(e?.jobTitle||e?.organization)&&(0,H.jsx)(`p`,{className:`text-sm`,children:[e.jobTitle,e.organization].filter(Boolean).join(` · `)}),(0,H.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:e?.email}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2 mt-2`,children:[(0,H.jsx)(sT,{className:`capitalize`,children:e?.role}),e?.country&&(0,H.jsx)(sT,{variant:`outline`,children:e.country})]})]})]}),(0,H.jsx)(C4,{children:(0,H.jsxs)(`form`,{onSubmit:k,className:`space-y-4 mt-8`,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:`firstName`,children:`First name`}),(0,H.jsx)(J,{id:`firstName`,value:h,onChange:e=>g(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`lastName`,children:`Last name`}),(0,H.jsx)(J,{id:`lastName`,value:_,onChange:e=>y(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`jobTitle`,children:`Job title`}),(0,H.jsx)(J,{id:`jobTitle`,value:b,onChange:e=>x(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`organization`,children:`Organization`}),(0,H.jsx)(J,{id:`organization`,value:S,onChange:e=>C(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`country`,children:`Country`}),(0,H.jsx)(J,{id:`country`,value:w,onChange:e=>T(e.target.value)})]})]}),r&&(0,H.jsx)(`p`,{className:`text-destructive text-sm`,children:r}),(0,H.jsx)(q,{type:`submit`,disabled:n,children:n?`Saving…`:`Save changes`})]})})]})]})})}var T4=Object.defineProperty,E4=Object.getOwnPropertySymbols,D4=Object.prototype.hasOwnProperty,O4=Object.prototype.propertyIsEnumerable,k4=(e,t,n)=>t in e?T4(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,A4=(e,t)=>{for(var n in t||={})D4.call(t,n)&&k4(e,n,t[n]);if(E4)for(var n of E4(t))O4.call(t,n)&&k4(e,n,t[n]);return e},j4=(e,t)=>{var n={};for(var r in e)D4.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&E4)for(var r of E4(e))t.indexOf(r)<0&&O4.call(e,r)&&(n[r]=e[r]);return n},M4;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(M4||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(M4||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(M4||={});var N4=M4,P4={L:N4.QrCode.Ecc.LOW,M:N4.QrCode.Ecc.MEDIUM,Q:N4.QrCode.Ecc.QUARTILE,H:N4.QrCode.Ecc.HIGH},F4=128,I4=`L`,L4=`#FFFFFF`,R4=`#000000`,z4=!1,B4=1,V4=4,H4=0,U4=.1;function W4(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function G4(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function K4(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*U4),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function q4(e,t){return t==null?e?V4:H4:Math.max(Math.floor(t),0)}function J4({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=v.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...N4.QrSegment.makeSegments(t)),e),[]);return N4.QrCode.encodeSegments(r,P4[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=v.useMemo(()=>{let e=c.getModules(),t=q4(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:K4(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var Y4=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),X4=v.forwardRef(function(e,t){let n=e,{value:r,size:i=F4,level:a=I4,bgColor:o=L4,fgColor:s=R4,includeMargin:c=z4,minVersion:l=B4,boostLevel:u,marginSize:d,imageSettings:f}=n,p=j4(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=j4(p,[`style`]),g=f?.src,_=v.useRef(null),y=v.useRef(null),b=v.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[x,S]=v.useState(!1),{margin:C,cells:w,numCells:T,calculatedImageSettings:E}=J4({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});v.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=w,r=y.current,a=E!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&E.excavation!=null&&(n=G4(w,E.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/T*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,T,T),t.fillStyle=s,Y4?t.fill(new Path2D(W4(n,C))):w.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+C,n+C,1,1)})}),E&&(t.globalAlpha=E.opacity),a&&t.drawImage(r,E.x+C,E.y+C,E.w,E.h)}}),v.useEffect(()=>{S(!1)},[g]);let D=A4({height:i,width:i},m),O=null;return g!=null&&(O=v.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{S(!0)},ref:y,crossOrigin:E?.crossOrigin})),v.createElement(v.Fragment,null,v.createElement(`canvas`,A4({style:D,height:i,width:i,ref:b,role:`img`},h)),O)});X4.displayName=`QRCodeCanvas`;var Z4=v.forwardRef(function(e,t){let n=e,{value:r,size:i=F4,level:a=I4,bgColor:o=L4,fgColor:s=R4,includeMargin:c=z4,minVersion:l=B4,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=j4(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:y}=J4({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),b=g,x=null;p!=null&&y!=null&&(y.excavation!=null&&(b=G4(g,y.excavation)),x=v.createElement(`image`,{href:p.src,height:y.h,width:y.w,x:y.x+h,y:y.y+h,preserveAspectRatio:`none`,opacity:y.opacity,crossOrigin:y.crossOrigin}));let S=W4(b,h);return v.createElement(`svg`,A4({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&v.createElement(`title`,null,d),v.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),v.createElement(`path`,{fill:s,d:S,shapeRendering:`crispEdges`}),x)});Z4.displayName=`QRCodeSVG`;function Q4(){let{user:e,updateUser:t,logout:n}=_a(),{loading:r,error:i,request:a}=Sb(),{loading:o,error:s,request:c}=Sb(),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(``),[h,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(null),[b,x]=(0,v.useState)(!1),[S,C]=(0,v.useState)(null),[w,T]=(0,v.useState)(``),[E,D]=(0,v.useState)(``),[O,k]=(0,v.useState)(!1),[A,j]=(0,v.useState)([]),[M,N]=(0,v.useState)(!1);(0,v.useEffect)(()=>{typeof e?.twoFactorEnabled==`boolean`&&x(e.twoFactorEnabled)},[e?.twoFactorEnabled]);function P(){u(``),f(``),m(``),g(``),y(null),C(null),T(``)}function F(){C(null),T(``),D(``),k(!1),N(!1)}async function I(e){if(e.preventDefault(),y(null),p!==h){y(`New passwords do not match`);return}try{await a(`/cms/admin/users/me/password`,`PATCH`,{currentPassword:d,newPassword:p}),P(),X.success(`Password updated`)}catch{X.error(`Could not update password`)}}async function L(){C(await c(`/cms/admin/users/me/2fa/setup`,`POST`))}async function R(){try{let e=await c(`/cms/admin/users/me/2fa/verify`,`POST`,{code:w});x(!0),t({twoFactorEnabled:!0}),C(null),T(``),k(!0),j(e.backupCodes??[]),X.success(`Two-factor authentication enabled`)}catch{X.error(`Could not enable 2FA`)}}async function ee(){try{await c(`/cms/admin/users/me/2fa/disable`,`POST`,{code:w,password:E}),x(!1),t({twoFactorEnabled:!1}),T(``),D(``),j([]),N(!1),X.success(`Two-factor authentication disabled`)}catch{X.error(`Could not disable 2FA`)}}return(0,H.jsxs)(cT,{children:[(0,H.jsxs)(lT,{children:[(0,H.jsx)(uT,{className:`uppercase`,children:`Security`}),(0,H.jsx)(dT,{})]}),(0,H.jsx)(fT,{className:`space-y-6`,children:(0,H.jsxs)(Uj,{value:l,children:[(0,H.jsxs)(Wj,{children:[(0,H.jsx)(Gj,{value:`password`,onClick:()=>u(e=>e===`password`?``:`password`),children:`Password`}),(0,H.jsx)(Gj,{value:`two-factor`,onClick:()=>u(e=>e===`two-factor`?``:`two-factor`),children:`2FA`})]}),(0,H.jsx)(Kj,{value:`password`,className:`mt-4`,children:(0,H.jsxs)(`div`,{className:`space-y-4 rounded-md border border-border p-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Update your account password.`}),(0,H.jsx)(q,{variant:`ghost`,size:`icon`,onClick:P,children:(0,H.jsx)(as,{className:`size-4`})})]}),(0,H.jsxs)(`form`,{onSubmit:I,className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`current`,children:`Current password`}),(0,H.jsx)(J,{id:`current`,type:`password`,value:d,onChange:e=>f(e.target.value),required:!0})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`new`,children:`New password`}),(0,H.jsx)(J,{id:`new`,type:`password`,value:p,onChange:e=>m(e.target.value),required:!0,minLength:8})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`confirm`,children:`Confirm new password`}),(0,H.jsx)(J,{id:`confirm`,type:`password`,value:h,onChange:e=>g(e.target.value),required:!0})]}),(_??i)&&(0,H.jsx)(`p`,{className:`text-destructive text-sm`,children:_??i}),(0,H.jsx)(q,{type:`submit`,disabled:r,children:r?`Saving…`:`Update password`})]})]})}),(0,H.jsx)(Kj,{value:`two-factor`,className:`mt-4`,children:(0,H.jsxs)(`div`,{className:`space-y-4`,children:[!b&&!S&&(0,H.jsx)(q,{variant:`secondary`,onClick:L,disabled:o,children:`Enable 2FA`}),S&&!b&&(0,H.jsxs)(`div`,{className:`space-y-3 rounded-md border border-border p-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Scan this QR code with your authenticator app and enter the 6-digit code.`}),(0,H.jsx)(q,{variant:`ghost`,size:`icon`,onClick:F,children:(0,H.jsx)(as,{className:`size-4`})})]}),(0,H.jsx)(`div`,{className:`inline-flex rounded-md bg-white p-2`,children:(0,H.jsx)(Z4,{value:S.otpauthUri,size:176})}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Manual code: `,S.secret]}),(0,H.jsx)(Wb,{maxLength:6,value:w,onChange:T,containerClassName:`w-fit`,className:`w-fit`,children:(0,H.jsxs)(Gb,{className:`w-fit`,children:[(0,H.jsx)(Kb,{index:0}),(0,H.jsx)(Kb,{index:1}),(0,H.jsx)(Kb,{index:2}),(0,H.jsx)(Kb,{index:3}),(0,H.jsx)(Kb,{index:4}),(0,H.jsx)(Kb,{index:5})]})}),(0,H.jsx)(q,{onClick:R,disabled:o||w.length!==6,children:`Confirm and enable 2FA`}),s&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:s})]}),b&&(0,H.jsxs)(`div`,{className:`space-y-3 rounded-md border border-border p-4`,children:[O&&(0,H.jsxs)(`div`,{className:`space-y-3 rounded-md border border-emerald-500/40 bg-emerald-500/10 p-3`,children:[(0,H.jsx)(`p`,{className:`text-sm font-medium text-emerald-300`,children:`2FA is now enabled.`}),(0,H.jsx)(`p`,{className:`text-xs text-emerald-200/90`,children:`For security, re-login is recommended now. This prevents accidental changes and confirms your new security state.`}),(0,H.jsx)(q,{variant:`default`,onClick:()=>{n()},children:`Re-login now`}),A.length>0&&(0,H.jsxs)(`div`,{className:`space-y-2 rounded-md border border-emerald-400/30 bg-background/40 p-3`,children:[(0,H.jsx)(`p`,{className:`text-xs font-medium text-emerald-200`,children:`Save these backup codes now. Each code can be used once if you lose access to your authenticator.`}),(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:A.map(e=>(0,H.jsx)(`code`,{className:`rounded bg-black/20 px-2 py-1 text-xs text-emerald-100`,children:e},e))}),(0,H.jsx)(q,{variant:`outline`,onClick:async()=>{try{await navigator.clipboard.writeText(A.join(`
|
|
223
|
-
`)),N(!0),setTimeout(()=>N(!1),2e3)}catch{N(!1)}},children:M?`Copied`:`Copy backup codes`})]})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Enter a verification code from your authenticator app to disable 2FA.`}),(0,H.jsx)(q,{variant:`ghost`,size:`icon`,onClick:()=>{T(``),D(``)},children:(0,H.jsx)(as,{className:`size-4`})})]}),(0,H.jsx)(Wb,{maxLength:6,value:w,onChange:T,containerClassName:`w-fit`,className:`w-fit`,children:(0,H.jsxs)(Gb,{className:`w-fit`,children:[(0,H.jsx)(Kb,{index:0}),(0,H.jsx)(Kb,{index:1}),(0,H.jsx)(Kb,{index:2}),(0,H.jsx)(Kb,{index:3}),(0,H.jsx)(Kb,{index:4}),(0,H.jsx)(Kb,{index:5})]})}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`disable-2fa-password`,children:`Current password`}),(0,H.jsx)(J,{id:`disable-2fa-password`,type:`password`,value:E,onChange:e=>D(e.target.value),required:!0})]}),(0,H.jsx)(q,{variant:`destructive`,onClick:ee,disabled:O||o||w.length!==6||!E,children:`Disable 2FA`}),s&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:s})]})]})})]})})]})}function
|
|
222
|
+
color: hsl(${Math.max(0,Math.min(120-120*r,120))}deg 100% 31%);`,n?.key)}return i}}function V0(e,t,n,r){return{debug:()=>e?.debugAll??e[t],key:!1,onChange:r}}function H0(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:B0(()=>[e,n,t,i],(e,t,n,r)=>({table:e,column:t,row:n,cell:r,getValue:r.getValue,renderValue:r.renderValue}),V0(e.options,`debugCells`,`cell.getContext`))};return e._features.forEach(r=>{r.createCell==null||r.createCell(i,n,t,e)},{}),i}function U0(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:B0(()=>[!0],()=>[c,...c.columns?.flatMap(e=>e.getFlatColumns())],V0(e.options,`debugColumns`,`column.getFlatColumns`)),getLeafColumns:B0(()=>[e._getOrderColumnsFn()],e=>{var t;return(t=c.columns)!=null&&t.length?e(c.columns.flatMap(e=>e.getLeafColumns())):[c]},V0(e.options,`debugColumns`,`column.getLeafColumns`))};for(let t of e._features)t.createColumn==null||t.createColumn(c,e);return c}var W0=`debugHeaders`;function G0(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 K0={createTable:e=>{e.getHeaderGroups=B0(()=>[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 q0(t,[...a,...s,...o],e)},V0(e.options,W0,`getHeaderGroups`)),e.getCenterHeaderGroups=B0(()=>[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))),q0(t,n,e,`center`)),V0(e.options,W0,`getCenterHeaderGroups`)),e.getLeftHeaderGroups=B0(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>q0(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`left`),V0(e.options,W0,`getLeftHeaderGroups`)),e.getRightHeaderGroups=B0(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>q0(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`right`),V0(e.options,W0,`getRightHeaderGroups`)),e.getFooterGroups=B0(()=>[e.getHeaderGroups()],e=>[...e].reverse(),V0(e.options,W0,`getFooterGroups`)),e.getLeftFooterGroups=B0(()=>[e.getLeftHeaderGroups()],e=>[...e].reverse(),V0(e.options,W0,`getLeftFooterGroups`)),e.getCenterFooterGroups=B0(()=>[e.getCenterHeaderGroups()],e=>[...e].reverse(),V0(e.options,W0,`getCenterFooterGroups`)),e.getRightFooterGroups=B0(()=>[e.getRightHeaderGroups()],e=>[...e].reverse(),V0(e.options,W0,`getRightFooterGroups`)),e.getFlatHeaders=B0(()=>[e.getHeaderGroups()],e=>e.map(e=>e.headers).flat(),V0(e.options,W0,`getFlatHeaders`)),e.getLeftFlatHeaders=B0(()=>[e.getLeftHeaderGroups()],e=>e.map(e=>e.headers).flat(),V0(e.options,W0,`getLeftFlatHeaders`)),e.getCenterFlatHeaders=B0(()=>[e.getCenterHeaderGroups()],e=>e.map(e=>e.headers).flat(),V0(e.options,W0,`getCenterFlatHeaders`)),e.getRightFlatHeaders=B0(()=>[e.getRightHeaderGroups()],e=>e.map(e=>e.headers).flat(),V0(e.options,W0,`getRightFlatHeaders`)),e.getCenterLeafHeaders=B0(()=>[e.getCenterFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),V0(e.options,W0,`getCenterLeafHeaders`)),e.getLeftLeafHeaders=B0(()=>[e.getLeftFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),V0(e.options,W0,`getLeftLeafHeaders`)),e.getRightLeafHeaders=B0(()=>[e.getRightFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),V0(e.options,W0,`getRightLeafHeaders`)),e.getLeafHeaders=B0(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(e,t,n)=>[...e[0]?.headers??[],...t[0]?.headers??[],...n[0]?.headers??[]].map(e=>e.getLeafHeaders()).flat(),V0(e.options,W0,`getLeafHeaders`))}};function q0(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=G0(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)=>G0(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 J0=(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:()=>z0(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:B0(()=>[e.getAllLeafColumns()],t=>t.map(t=>H0(e,s,t,t.id)),V0(e.options,`debugRows`,`getAllCells`)),_getAllCellsByColumnId:B0(()=>[s.getAllCells()],e=>e.reduce((e,t)=>(e[t.column.id]=t,e),{}),V0(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},Y0={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()}}},X0=(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))};X0.autoRemove=e=>o2(e);var Z0=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};Z0.autoRemove=e=>o2(e);var Q0=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===n?.toLowerCase()};Q0.autoRemove=e=>o2(e);var $0=(e,t,n)=>e.getValue(t)?.includes(n);$0.autoRemove=e=>o2(e);var e2=(e,t,n)=>!n.some(n=>{var r;return!((r=e.getValue(t))!=null&&r.includes(n))});e2.autoRemove=e=>o2(e)||!(e!=null&&e.length);var t2=(e,t,n)=>n.some(n=>e.getValue(t)?.includes(n));t2.autoRemove=e=>o2(e)||!(e!=null&&e.length);var n2=(e,t,n)=>e.getValue(t)===n;n2.autoRemove=e=>o2(e);var r2=(e,t,n)=>e.getValue(t)==n;r2.autoRemove=e=>o2(e);var i2=(e,t,n)=>{let[r,i]=n,a=e.getValue(t);return a>=r&&a<=i};i2.resolveFilterValue=e=>{let[t,n]=e,r=typeof t==`number`?t:parseFloat(t),i=typeof n==`number`?n:parseFloat(n),a=t===null||Number.isNaN(r)?-1/0:r,o=n===null||Number.isNaN(i)?1/0:i;if(a>o){let e=a;a=o,o=e}return[a,o]},i2.autoRemove=e=>o2(e)||o2(e[0])&&o2(e[1]);var a2={includesString:X0,includesStringSensitive:Z0,equalsString:Q0,arrIncludes:$0,arrIncludesAll:e2,arrIncludesSome:t2,equals:n2,weakEquals:r2,inNumberRange:i2};function o2(e){return e==null||e===``}var s2={getDefaultColumnDef:()=>({filterFn:`auto`}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:I0(`columnFilters`,e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{let n=t.getCoreRowModel().flatRows[0]?.getValue(e.id);return typeof n==`string`?a2.includesString:typeof n==`number`?a2.inNumberRange:typeof n==`boolean`||typeof n==`object`&&n?a2.equals:Array.isArray(n)?a2.arrIncludes:a2.weakEquals},e.getFilterFn=()=>L0(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn===`auto`?e.getAutoFilterFn():t.options.filterFns?.[e.columnDef.filterFn]??a2[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=F0(n,i?i.value:void 0);if(c2(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=>F0(t,e)?.filter(e=>{let t=n.find(t=>t.id===e.id);return!(t&&c2(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 c2(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||t===void 0||typeof t==`string`&&!t}var l2={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(!R0(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},u2={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:I0(`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 l2.sum;if(Object.prototype.toString.call(n)===`[object Date]`)return l2.extent},e.getAggregationFn=()=>{if(!e)throw Error();return L0(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn===`auto`?e.getAutoAggregationFn():t.options.aggregationFns?.[e.columnDef.aggregationFn]??l2[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 d2(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 f2={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:I0(`columnOrder`,e)}),createColumn:(e,t)=>{e.getIndex=B0(e=>[C2(t,e)],t=>t.findIndex(t=>t.id===e.id),V0(t.options,`debugColumns`,`getIndex`)),e.getIsFirstColumn=n=>C2(t,n)[0]?.id===e.id,e.getIsLastColumn=n=>{let r=C2(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=B0(()=>[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 d2(i,t,n)},V0(e.options,`debugTable`,`_getOrderColumnsFn`))}},p2=()=>({left:[],right:[]}),m2={getInitialState:e=>({columnPinning:p2(),...e}),getDefaultOptions:e=>({onColumnPinningChange:I0(`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=B0(()=>[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))},V0(t.options,`debugRows`,`getCenterVisibleCells`)),e.getLeftVisibleCells=B0(()=>[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`})),V0(t.options,`debugRows`,`getLeftVisibleCells`)),e.getRightVisibleCells=B0(()=>[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`})),V0(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?p2():e.initialState?.columnPinning??p2()),e.getIsSomeColumnsPinned=t=>{let n=e.getState().columnPinning;return t?!!n[t]?.length:!!(n.left?.length||n.right?.length)},e.getLeftLeafColumns=B0(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(e,t)=>(t??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),V0(e.options,`debugColumns`,`getLeftLeafColumns`)),e.getRightLeafColumns=B0(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(e,t)=>(t??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean),V0(e.options,`debugColumns`,`getRightLeafColumns`)),e.getCenterLeafColumns=B0(()=>[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))},V0(e.options,`debugColumns`,`getCenterLeafColumns`))}};function h2(e){return e||(typeof document<`u`?document:null)}var g2={size:150,minSize:20,maxSize:2**53-1},_2=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),v2={getDefaultColumnDef:()=>g2,getInitialState:e=>({columnSizing:{},columnSizingInfo:_2(),...e}),getDefaultOptions:e=>({columnResizeMode:`onEnd`,columnResizeDirection:`ltr`,onColumnSizingChange:I0(`columnSizing`,e),onColumnSizingInfoChange:I0(`columnSizingInfo`,e)}),createColumn:(e,t)=>{e.getSize=()=>{let n=t.getState().columnSizing[e.id];return Math.min(Math.max(e.columnDef.minSize??g2.minSize,n??e.columnDef.size??g2.size),e.columnDef.maxSize??g2.maxSize)},e.getStart=B0(e=>[e,C2(t,e),t.getState().columnSizing],(t,n)=>n.slice(0,e.getIndex(t)).reduce((e,t)=>e+t.getSize(),0),V0(t.options,`debugColumns`,`getStart`)),e.getAfter=B0(e=>[e,C2(t,e),t.getState().columnSizing],(t,n)=>n.slice(e.getIndex(t)+1).reduce((e,t)=>e+t.getSize(),0),V0(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(),x2(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=x2(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=h2(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=b2()?{passive:!1}:!1;x2(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?_2():e.initialState.columnSizingInfo??_2())},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}},y2=null;function b2(){if(typeof y2==`boolean`)return y2;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 y2=e,y2}function x2(e){return e.type===`touchstart`}var S2={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:I0(`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=B0(()=>[e.getAllCells(),t.getState().columnVisibility],e=>e.filter(e=>e.column.getIsVisible()),V0(t.options,`debugRows`,`_getAllVisibleCells`)),e.getVisibleCells=B0(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(e,t,n)=>[...e,...t,...n],V0(t.options,`debugRows`,`getVisibleCells`))},createTable:e=>{let t=(t,n)=>B0(()=>[n(),n().filter(e=>e.getIsVisible()).map(e=>e.id).join(`_`)],e=>e.filter(e=>e.getIsVisible==null?void 0:e.getIsVisible()),V0(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 C2(e,t){return t?t===`center`?e.getCenterVisibleLeafColumns():t===`left`?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}var w2={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()}}},T2={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:I0(`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=()=>a2.includesString,e.getGlobalFilterFn=()=>{let{globalFilterFn:t}=e.options;return L0(t)?t:t===`auto`?e.getGlobalAutoFilterFn():e.options.filterFns?.[t]??a2[t]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},E2={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:I0(`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()}}}},D2=0,O2=10,k2=()=>({pageIndex:D2,pageSize:O2}),A2={getInitialState:e=>({...e,pagination:{...k2(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:I0(`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=>F0(t,e)),e.resetPagination=t=>{e.setPagination(t?k2():e.initialState.pagination??k2())},e.setPageIndex=t=>{e.setPagination(n=>{let r=F0(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?D2:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageIndex)??D2)},e.resetPageSize=t=>{var n;e.setPageSize(t?O2:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageSize)??O2)},e.setPageSize=t=>{e.setPagination(e=>{let n=Math.max(1,F0(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=F0(t,e.options.pageCount??-1);return typeof r==`number`&&(r=Math.max(-1,r)),{...n,pageCount:r}}),e.getPageOptions=B0(()=>[e.getPageCount()],e=>{let t=[];return e&&e>0&&(t=[...Array(e)].fill(null).map((e,t)=>t)),t},V0(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}},j2=()=>({top:[],bottom:[]}),M2={getInitialState:e=>({rowPinning:j2(),...e}),getDefaultOptions:e=>({onRowPinningChange:I0(`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?j2():e.initialState?.rowPinning??j2()),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=B0(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,`top`),V0(e.options,`debugRows`,`getTopRows`)),e.getBottomRows=B0(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,`bottom`),V0(e.options,`debugRows`,`getBottomRows`)),e.getCenterRows=B0(()=>[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))},V0(e.options,`debugRows`,`getCenterRows`))}},N2={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:I0(`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=>{P2(i,t.id,r,!0,e)}),i}),e.getPreSelectedRowModel=()=>e.getCoreRowModel(),e.getSelectedRowModel=B0(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?F2(e,n):{rows:[],flatRows:[],rowsById:{}},V0(e.options,`debugTable`,`getSelectedRowModel`)),e.getFilteredSelectedRowModel=B0(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?F2(e,n):{rows:[],flatRows:[],rowsById:{}},V0(e.options,`debugTable`,`getFilteredSelectedRowModel`)),e.getGroupedSelectedRowModel=B0(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?F2(e,n):{rows:[],flatRows:[],rowsById:{}},V0(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 P2(o,e.id,n,r?.selectChildren??!0,t),o})},e.getIsSelected=()=>{let{rowSelection:n}=t.getState();return I2(e,n)},e.getIsSomeSelected=()=>{let{rowSelection:n}=t.getState();return L2(e,n)===`some`},e.getIsAllSubRowsSelected=()=>{let{rowSelection:n}=t.getState();return L2(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)}}}},P2=(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=>P2(e,t.id,n,r,i))};function F2(e,t){let n=e.getState().rowSelection,r=[],i={},a=function(e,t){return e.map(e=>{var t;let o=I2(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 I2(e,t){return t[e.id]??!1}function L2(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()&&(I2(e,t)?a=!0:i=!1),e.subRows&&e.subRows.length)){let n=L2(e,t);n===`all`?a=!0:(n===`some`&&(a=!0),i=!1)}}),i?`all`:a?`some`:!1}var R2=/([0-9]+)/gm,z2=(e,t,n)=>q2(K2(e.getValue(n)).toLowerCase(),K2(t.getValue(n)).toLowerCase()),B2=(e,t,n)=>q2(K2(e.getValue(n)),K2(t.getValue(n))),V2=(e,t,n)=>G2(K2(e.getValue(n)).toLowerCase(),K2(t.getValue(n)).toLowerCase()),H2=(e,t,n)=>G2(K2(e.getValue(n)),K2(t.getValue(n))),U2=(e,t,n)=>{let r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},W2=(e,t,n)=>G2(e.getValue(n),t.getValue(n));function G2(e,t){return e===t?0:e>t?1:-1}function K2(e){return typeof e==`number`?isNaN(e)||e===1/0||e===-1/0?``:String(e):typeof e==`string`?e:``}function q2(e,t){let n=e.split(R2).filter(Boolean),r=t.split(R2).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 J2={alphanumeric:z2,alphanumericCaseSensitive:B2,text:V2,textCaseSensitive:H2,datetime:U2,basic:W2},Y2=[K0,S2,f2,m2,Y0,s2,w2,T2,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:`auto`,sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:I0(`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 J2.datetime;if(typeof n==`string`&&(r=!0,n.split(R2).length>1))return J2.alphanumeric}return r?J2.text:J2.basic},e.getAutoSortDir=()=>typeof t.getFilteredRowModel().flatRows[0]?.getValue(e.id)==`string`?`asc`:`desc`,e.getSortingFn=()=>{if(!e)throw Error();return L0(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn===`auto`?e.getAutoSortingFn():t.options.sortingFns?.[e.columnDef.sortingFn]??J2[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())}},u2,E2,A2,M2,N2,v2];function X2(e){let t=[...Y2,...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(F0(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:B0(()=>[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}),V0(e,`debugColumns`,`_getDefaultColumnDef`)),_getColumnDefs:()=>n.options.columns,getAllColumns:B0(()=>[n._getColumnDefs()],e=>{let t=function(e,r,i){return i===void 0&&(i=0),e.map(e=>{let a=U0(n,e,i,r),o=e;return a.columns=o.columns?t(o.columns,a,i+1):[],a})};return t(e)},V0(e,`debugColumns`,`getAllColumns`)),getAllFlatColumns:B0(()=>[n.getAllColumns()],e=>e.flatMap(e=>e.getFlatColumns()),V0(e,`debugColumns`,`getAllFlatColumns`)),_getAllFlatColumnsById:B0(()=>[n.getAllFlatColumns()],e=>e.reduce((e,t)=>(e[t.id]=t,e),{}),V0(e,`debugColumns`,`getAllFlatColumnsById`)),getAllLeafColumns:B0(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(e,t)=>t(e.flatMap(e=>e.getLeafColumns())),V0(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 Z2(){return e=>B0(()=>[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=J0(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},V0(e.options,`debugTable`,`getRowModel`,()=>e._autoResetPageIndex()))}function Q2(e,t){return e?$2(e)?v.createElement(e,t):e:null}function $2(e){return e4(e)||typeof e==`function`||t4(e)}function e4(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function t4(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:X2(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 r4={"super admin":`default`,admin:`secondary`,contributor:`outline`,editor:`secondary`,viewer:`outline`};function i4({roleId:e,roleName:t,roles:n}){let r=n.find(t=>t.id===e),i=t??r?.name??e;return(0,H.jsx)(sT,{variant:r4[i.toLowerCase()]??`secondary`,children:i})}function a4({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)(Xo,{className:`size-3.5`})})]})}var o4={email:``,password:``,firstName:``,lastName:``,roleId:``,enabled:!0};function s4(){let{user:e,updateUser:t}=_a(),{editorialMode:n}=ba(),{data:r,loading:i,refetch:a}=Ta(`/cms/admin/users`),{data:o,loading:s}=Ta(`/cms/admin/roles`),c=i||s,{request:l,loading:u,error:d}=Sb(),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(o4),[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)(i4,{roleId:t(),roleName:e.original.role_name,roles:C})},{accessorKey:`enabled`,header:`Enabled`,cell:({row:t,getValue:n})=>(0,H.jsx)(ok,{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)(a4,{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:Z2()});async function k(e){e.preventDefault();try{await l(`/cms/admin/users`,`POST`,m),p(!1),h(o4),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)(Yb,{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)(CT,{children:[(0,H.jsx)(wT,{className:`font-bold uppercase`,children:O.getHeaderGroups().map(e=>(0,H.jsx)(ET,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(DT,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:Q2(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(TT,{children:c?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:D.length,className:`h-24`,children:(0,H.jsx)(Xb,{className:`mx-auto size-5`})})}):O.getRowModel().rows.length===0?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:D.length,className:`h-24 text-center text-muted-foreground`,children:`No users found.`})}):O.getRowModel().rows.map(e=>(0,H.jsx)(ET,{children:e.getVisibleCells().map(e=>(0,H.jsx)(OT,{className:`px-4 py-3`,children:Q2(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(my,{open:f,onOpenChange:p,children:(0,H.jsxs)(vy,{className:`sm:max-w-md`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(J,{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)(J,{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)(J,{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)(J,{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)(pT,{value:m.roleId,onValueChange:e=>h(t=>({...t,roleId:e})),children:[(0,H.jsx)(gT,{id:`c-role`,children:(0,H.jsx)(hT,{placeholder:`Select a role`})}),(0,H.jsx)(yT,{children:E.map(e=>(0,H.jsx)(xT,{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)(ok,{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)(by,{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)(my,{open:!!g,onOpenChange:e=>{e||_(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-md`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(J,{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)(J,{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)(J,{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)(pT,{value:y.roleId,onValueChange:e=>b(t=>({...t,roleId:e})),children:[(0,H.jsx)(gT,{id:`e-role`,children:(0,H.jsx)(hT,{placeholder:`Select a role`})}),(0,H.jsx)(yT,{children:E.map(e=>(0,H.jsx)(xT,{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)(ok,{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)(by,{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)(my,{open:!!x,onOpenChange:e=>{e||S(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(by,{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 c4=[{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:`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`]}],l4=[{key:`read`,label:`R`},{key:`write`,label:`W`},{key:`delete`,label:`D`}],u4=[`Super Admin`,`Admin`,`Editor`,`Contributor`],d4=`w-44 min-w-44 max-w-44`;function f4(e){return Object.fromEntries(e.map(e=>[e.id,new Set(e.permissions)]))}function p4(e,t){return e.includes(t)}function m4(){let{user:e}=_a(),{editorialMode:t}=ba(),{data:n,loading:r,refetch:i}=Ta(`/cms/admin/roles`),{request:a,loading:o}=Sb(),[s,c]=(0,v.useState)({}),[l,u]=(0,v.useState)(new Set),[d,f]=(0,v.useState)(!1);(0,v.useEffect)(()=>{n&&c(f4(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=u4.indexOf(e.name),r=u4.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)(Yb,{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)(zo,{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)(CT,{children:[(0,H.jsxs)(wT,{children:[(0,H.jsxs)(ET,{className:`hover:bg-transparent`,children:[(0,H.jsx)(DT,{className:`w-40`,rowSpan:2}),y&&(0,H.jsx)(DT,{colSpan:3,className:`border-l text-center ${d4}`,children:y.name}),_.map(e=>(0,H.jsx)(DT,{colSpan:3,className:`border-l ${d4}`,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)(Bo,{className:`size-3`}),`Save`]})]})},e.id))]}),(0,H.jsxs)(ET,{className:`hover:bg-transparent`,children:[y&&l4.map((e,t)=>(0,H.jsx)(DT,{className:`w-12 text-center font-normal ${t===0?`border-l`:``}`,children:e.label},e.key)),_.map(e=>l4.map((t,n)=>(0,H.jsx)(DT,{className:`w-12 text-center font-normal ${n===0?`border-l`:``}`,children:t.label},`${e.id}-${t.key}`)))]})]}),(0,H.jsx)(TT,{children:r?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:99,className:`h-24`,children:(0,H.jsx)(Xb,{className:`mx-auto size-5`})})}):c4.map(({key:e,label:t,actions:n})=>(0,H.jsxs)(ET,{children:[(0,H.jsx)(OT,{className:`font-medium`,children:t}),y&&l4.map((e,t)=>(0,H.jsx)(OT,{className:`text-center ${t===0?`border-l`:``}`,children:p4(n,e.key)?(0,H.jsx)(pk,{checked:!0,disabled:!0}):(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},e.key)),_.map(t=>l4.map((r,i)=>{let a=p4(n,r.key),o=`${e}:${r.key}`;return(0,H.jsx)(OT,{className:`text-center ${i===0?`border-l`:``}`,children:a?(0,H.jsx)(pk,{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)(my,{open:d,onOpenChange:f,children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(by,{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 h4={"full-access":`default`,"read-only":`secondary`},g4={"full-access":`Full access`,"read-only":`Read only`};function _4({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)(Ha,{className:`size-4 text-green-500`}):(0,H.jsx)(eo,{className:`size-4`})})}var v4={name:``,accessType:``};function y4(){let{user:e}=_a(),{data:t,loading:n,refetch:r}=Ta(`/cms/admin/api-tokens`),{request:i,loading:a,error:o}=Sb(),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)(v4),[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)(sT,{variant:h4[t]??`secondary`,children:g4[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)(Xo,{className:`size-3.5`})}):null}],b=n4({data:t??[],columns:y,getCoreRowModel:Z2()});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(v4)}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)(Yb,{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)(CT,{children:[(0,H.jsx)(wT,{className:`font-bold uppercase`,children:b.getHeaderGroups().map(e=>(0,H.jsx)(ET,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(DT,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:Q2(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(TT,{children:n?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:y.length,className:`h-24`,children:(0,H.jsx)(Xb,{className:`mx-auto size-5`})})}):b.getRowModel().rows.length===0?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:y.length,className:`h-24 text-center text-muted-foreground`,children:`No tokens yet.`})}):b.getRowModel().rows.map(e=>(0,H.jsx)(ET,{children:e.getVisibleCells().map(e=>(0,H.jsx)(OT,{className:`px-4 py-3`,children:Q2(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(my,{open:u,onOpenChange:e=>{e||S()},children:(0,H.jsx)(vy,{className:`sm:max-w-md`,children:m?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(J,{readOnly:!0,value:m.token,className:`font-mono text-xs`}),(0,H.jsx)(_4,{value:m.token})]})]})]}),(0,H.jsx)(by,{children:(0,H.jsx)(q,{onClick:S,children:`Done`})})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(J,{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)(pT,{value:f.accessType,onValueChange:e=>p(t=>({...t,accessType:e})),children:[(0,H.jsx)(gT,{id:`token-access`,children:(0,H.jsx)(hT,{placeholder:`Select access type`})}),(0,H.jsxs)(yT,{children:[(0,H.jsx)(xT,{value:`read-only`,children:`Read only`}),(0,H.jsx)(xT,{value:`full-access`,children:`Full access`})]})]})]}),o&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:o})]}),(0,H.jsxs)(by,{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)(my,{open:!!g,onOpenChange:e=>{e||_(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(by,{children:[(0,H.jsx)(q,{variant:`outline`,onClick:()=>_(null),children:`Cancel`}),(0,H.jsx)(q,{variant:`destructive`,onClick:C,disabled:a||!l,children:a?`Revoking…`:`Revoke`})]})]})})]})]})}var b4=[{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`}],x4={name:``,url:``,events:[]};function S4(){let{user:e}=_a(),{data:t,loading:n,refetch:r}=Ta(`/cms/admin/webhooks`),{request:i,loading:a,error:o}=Sb(),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)(x4),[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)(sT,{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)(Xo,{className:`size-3.5`})}):null}],_=n4({data:t??[],columns:g,getCoreRowModel:Z2()});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(x4),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)(Yb,{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)(CT,{children:[(0,H.jsx)(wT,{className:`font-bold uppercase`,children:_.getHeaderGroups().map(e=>(0,H.jsx)(ET,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,H.jsx)(DT,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:Q2(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,H.jsx)(TT,{children:n?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:g.length,className:`h-24`,children:(0,H.jsx)(Xb,{className:`mx-auto size-5`})})}):_.getRowModel().rows.length===0?(0,H.jsx)(ET,{children:(0,H.jsx)(OT,{colSpan:g.length,className:`h-24 text-center text-muted-foreground`,children:`No webhooks yet.`})}):_.getRowModel().rows.map(e=>(0,H.jsx)(ET,{children:e.getVisibleCells().map(e=>(0,H.jsx)(OT,{className:`px-4 py-3`,children:Q2(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,H.jsx)(my,{open:u,onOpenChange:e=>{e||(d(!1),p(x4))},children:(0,H.jsxs)(vy,{className:`sm:max-w-md`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(J,{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)(J,{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`}),b4.map(({value:e,label:t})=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(pk,{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)(by,{children:[(0,H.jsx)(q,{variant:`outline`,type:`button`,onClick:()=>{d(!1),p(x4)},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)(my,{open:!!m,onOpenChange:e=>{e||h(null)},children:(0,H.jsxs)(vy,{className:`sm:max-w-sm`,children:[(0,H.jsx)(yy,{children:(0,H.jsx)(xy,{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)(by,{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 C4({...e}){return(0,H.jsx)(_x,{"data-slot":`collapsible`,...e})}function w4({...e}){return(0,H.jsx)(mx,{"data-slot":`collapsible-content`,...e})}function T4(){let{user:e,updateUser:t}=_a(),{loading:n,error:r,request:i}=Sb(),{request:a}=Sb(),o=(0,v.useRef)(null),[s,c]=(0,v.useState)(!1),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(null),[p,m]=(0,v.useState)(!1),[h,g]=(0,v.useState)(e?.firstName??``),[_,y]=(0,v.useState)(e?.lastName??``),[b,x]=(0,v.useState)(e?.jobTitle??``),[S,C]=(0,v.useState)(e?.organization??``),[w,T]=(0,v.useState)(e?.country??``);function E(){p&&(g(e?.firstName??``),y(e?.lastName??``),x(e?.jobTitle??``),C(e?.organization??``),T(e?.country??``)),m(!p)}async function D(e){let n=e.target.files?.[0];if(n){c(!0),f(null);try{t({avatarUrl:await a$(n)}),X.success(`Avatar updated`)}catch(e){f(e instanceof Error?e.message:`Upload failed.`),X.error(`Could not update avatar`)}finally{c(!1),o.current&&(o.current.value=``)}}}async function O(){u(!0),f(null);try{await a(`/cms/admin/users/me/avatar`,`DELETE`),t({avatarUrl:null}),X.success(`Avatar removed`)}catch(e){f(e instanceof Error?e.message:`Delete failed.`),X.error(`Could not remove avatar`)}finally{u(!1)}}async function k(e){e.preventDefault();try{let e=await i(`/cms/admin/users/me`,`PATCH`,{firstName:h,lastName:_,jobTitle:b,organization:S,country:w});t({firstName:e.first_name,lastName:e.last_name,jobTitle:e.job_title,organization:e.organization,country:e.country}),m(!1),X.success(`Profile saved`)}catch{X.error(`Could not save profile`)}}return(0,H.jsx)(C4,{open:p,onOpenChange:m,children:(0,H.jsxs)(cT,{children:[(0,H.jsxs)(lT,{children:[(0,H.jsx)(uT,{className:`uppercase`,children:`Account`}),(0,H.jsx)(dT,{children:(0,H.jsx)(q,{variant:`ghost`,size:`icon`,onClick:E,children:p?(0,H.jsx)(as,{className:`size-4`}):(0,H.jsx)(Io,{className:`size-4`})})})]}),(0,H.jsxs)(fT,{children:[(0,H.jsxs)(`div`,{className:`flex items-center gap-4 -mt-4`,children:[(0,H.jsxs)(`div`,{className:`group relative shrink-0`,children:[(0,H.jsxs)(`button`,{type:`button`,className:`block`,onClick:()=>o.current?.click(),disabled:s||l,title:`Change avatar`,children:[(0,H.jsx)(kl,{avatarUrl:e?.avatarUrl,firstName:e?.firstName,lastName:e?.lastName,email:e?.email,className:`size-20`,fallbackClassName:`text-xl`}),(0,H.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center rounded-full bg-black/40 opacity-0 transition-opacity group-hover:opacity-100`,children:s||l?(0,H.jsx)(`div`,{className:`size-4 animate-spin rounded-full border-2 border-white border-t-transparent`}):(0,H.jsx)(Va,{className:`size-5 text-white`})})]}),e?.avatarUrl&&!s&&!l&&(0,H.jsx)(`button`,{type:`button`,onClick:O,title:`Remove avatar`,className:`absolute -top-1 -right-1 flex size-5 items-center justify-center rounded-full bg-destructive text-destructive-foreground opacity-0 transition-opacity group-hover:opacity-100`,children:(0,H.jsx)(Xo,{className:`size-3`})})]}),(0,H.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,className:`hidden`,onChange:D}),(0,H.jsxs)(`div`,{children:[d&&(0,H.jsx)(`p`,{className:`text-xs text-destructive mb-1`,children:d}),(0,H.jsx)(`p`,{className:`font-bold text-xl`,children:e?.firstName||e?.lastName?`${e.firstName??``} ${e.lastName??``}`.trim():e?.email}),(e?.jobTitle||e?.organization)&&(0,H.jsx)(`p`,{className:`text-sm`,children:[e.jobTitle,e.organization].filter(Boolean).join(` · `)}),(0,H.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:e?.email}),(0,H.jsxs)(`div`,{className:`flex flex-wrap gap-2 mt-2`,children:[(0,H.jsx)(sT,{className:`capitalize`,children:e?.role}),e?.country&&(0,H.jsx)(sT,{variant:`outline`,children:e.country})]})]})]}),(0,H.jsx)(w4,{children:(0,H.jsxs)(`form`,{onSubmit:k,className:`space-y-4 mt-8`,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:`firstName`,children:`First name`}),(0,H.jsx)(J,{id:`firstName`,value:h,onChange:e=>g(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`lastName`,children:`Last name`}),(0,H.jsx)(J,{id:`lastName`,value:_,onChange:e=>y(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`jobTitle`,children:`Job title`}),(0,H.jsx)(J,{id:`jobTitle`,value:b,onChange:e=>x(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`organization`,children:`Organization`}),(0,H.jsx)(J,{id:`organization`,value:S,onChange:e=>C(e.target.value)})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`country`,children:`Country`}),(0,H.jsx)(J,{id:`country`,value:w,onChange:e=>T(e.target.value)})]})]}),r&&(0,H.jsx)(`p`,{className:`text-destructive text-sm`,children:r}),(0,H.jsx)(q,{type:`submit`,disabled:n,children:n?`Saving…`:`Save changes`})]})})]})]})})}var E4=Object.defineProperty,D4=Object.getOwnPropertySymbols,O4=Object.prototype.hasOwnProperty,k4=Object.prototype.propertyIsEnumerable,A4=(e,t,n)=>t in e?E4(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,j4=(e,t)=>{for(var n in t||={})O4.call(t,n)&&A4(e,n,t[n]);if(D4)for(var n of D4(t))k4.call(t,n)&&A4(e,n,t[n]);return e},M4=(e,t)=>{var n={};for(var r in e)O4.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&D4)for(var r of D4(e))t.indexOf(r)<0&&k4.call(e,r)&&(n[r]=e[r]);return n},N4;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(N4||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(N4||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(N4||={});var P4=N4,F4={L:P4.QrCode.Ecc.LOW,M:P4.QrCode.Ecc.MEDIUM,Q:P4.QrCode.Ecc.QUARTILE,H:P4.QrCode.Ecc.HIGH},I4=128,L4=`L`,R4=`#FFFFFF`,z4=`#000000`,B4=!1,V4=1,H4=4,U4=0,W4=.1;function G4(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function K4(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function q4(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*W4),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function J4(e,t){return t==null?e?H4:U4:Math.max(Math.floor(t),0)}function Y4({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=v.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...P4.QrSegment.makeSegments(t)),e),[]);return P4.QrCode.encodeSegments(r,F4[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:l,margin:u,numCells:d,calculatedImageSettings:f}=v.useMemo(()=>{let e=c.getModules(),t=J4(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:q4(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var X4=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),Z4=v.forwardRef(function(e,t){let n=e,{value:r,size:i=I4,level:a=L4,bgColor:o=R4,fgColor:s=z4,includeMargin:c=B4,minVersion:l=V4,boostLevel:u,marginSize:d,imageSettings:f}=n,p=M4(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=M4(p,[`style`]),g=f?.src,_=v.useRef(null),y=v.useRef(null),b=v.useCallback(e=>{_.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[x,S]=v.useState(!1),{margin:C,cells:w,numCells:T,calculatedImageSettings:E}=Y4({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:d,imageSettings:f,size:i});v.useEffect(()=>{if(_.current!=null){let e=_.current,t=e.getContext(`2d`);if(!t)return;let n=w,r=y.current,a=E!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&E.excavation!=null&&(n=K4(w,E.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/T*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,T,T),t.fillStyle=s,X4?t.fill(new Path2D(G4(n,C))):w.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+C,n+C,1,1)})}),E&&(t.globalAlpha=E.opacity),a&&t.drawImage(r,E.x+C,E.y+C,E.w,E.h)}}),v.useEffect(()=>{S(!1)},[g]);let D=j4({height:i,width:i},m),O=null;return g!=null&&(O=v.createElement(`img`,{src:g,key:g,style:{display:`none`},onLoad:()=>{S(!0)},ref:y,crossOrigin:E?.crossOrigin})),v.createElement(v.Fragment,null,v.createElement(`canvas`,j4({style:D,height:i,width:i,ref:b,role:`img`},h)),O)});Z4.displayName=`QRCodeCanvas`;var Q4=v.forwardRef(function(e,t){let n=e,{value:r,size:i=I4,level:a=L4,bgColor:o=R4,fgColor:s=z4,includeMargin:c=B4,minVersion:l=V4,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=M4(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:y}=Y4({value:r,level:a,minVersion:l,boostLevel:u,includeMargin:c,marginSize:f,imageSettings:p,size:i}),b=g,x=null;p!=null&&y!=null&&(y.excavation!=null&&(b=K4(g,y.excavation)),x=v.createElement(`image`,{href:p.src,height:y.h,width:y.w,x:y.x+h,y:y.y+h,preserveAspectRatio:`none`,opacity:y.opacity,crossOrigin:y.crossOrigin}));let S=G4(b,h);return v.createElement(`svg`,j4({height:i,width:i,viewBox:`0 0 ${_} ${_}`,ref:t,role:`img`},m),!!d&&v.createElement(`title`,null,d),v.createElement(`path`,{fill:o,d:`M0,0 h${_}v${_}H0z`,shapeRendering:`crispEdges`}),v.createElement(`path`,{fill:s,d:S,shapeRendering:`crispEdges`}),x)});Q4.displayName=`QRCodeSVG`;function $4(){let{user:e,updateUser:t,logout:n}=_a(),{loading:r,error:i,request:a}=Sb(),{loading:o,error:s,request:c}=Sb(),[l,u]=(0,v.useState)(``),[d,f]=(0,v.useState)(``),[p,m]=(0,v.useState)(``),[h,g]=(0,v.useState)(``),[_,y]=(0,v.useState)(null),[b,x]=(0,v.useState)(!1),[S,C]=(0,v.useState)(null),[w,T]=(0,v.useState)(``),[E,D]=(0,v.useState)(``),[O,k]=(0,v.useState)(!1),[A,j]=(0,v.useState)([]),[M,N]=(0,v.useState)(!1);(0,v.useEffect)(()=>{typeof e?.twoFactorEnabled==`boolean`&&x(e.twoFactorEnabled)},[e?.twoFactorEnabled]);function P(){u(``),f(``),m(``),g(``),y(null),C(null),T(``)}function F(){C(null),T(``),D(``),k(!1),N(!1)}async function I(e){if(e.preventDefault(),y(null),p!==h){y(`New passwords do not match`);return}try{await a(`/cms/admin/users/me/password`,`PATCH`,{currentPassword:d,newPassword:p}),P(),X.success(`Password updated`)}catch{X.error(`Could not update password`)}}async function L(){C(await c(`/cms/admin/users/me/2fa/setup`,`POST`))}async function R(){try{let e=await c(`/cms/admin/users/me/2fa/verify`,`POST`,{code:w});x(!0),t({twoFactorEnabled:!0}),C(null),T(``),k(!0),j(e.backupCodes??[]),X.success(`Two-factor authentication enabled`)}catch{X.error(`Could not enable 2FA`)}}async function ee(){try{await c(`/cms/admin/users/me/2fa/disable`,`POST`,{code:w,password:E}),x(!1),t({twoFactorEnabled:!1}),T(``),D(``),j([]),N(!1),X.success(`Two-factor authentication disabled`)}catch{X.error(`Could not disable 2FA`)}}return(0,H.jsxs)(cT,{children:[(0,H.jsxs)(lT,{children:[(0,H.jsx)(uT,{className:`uppercase`,children:`Security`}),(0,H.jsx)(dT,{})]}),(0,H.jsx)(fT,{className:`space-y-6`,children:(0,H.jsxs)(Uj,{value:l,children:[(0,H.jsxs)(Wj,{children:[(0,H.jsx)(Gj,{value:`password`,onClick:()=>u(e=>e===`password`?``:`password`),children:`Password`}),(0,H.jsx)(Gj,{value:`two-factor`,onClick:()=>u(e=>e===`two-factor`?``:`two-factor`),children:`2FA`})]}),(0,H.jsx)(Kj,{value:`password`,className:`mt-4`,children:(0,H.jsxs)(`div`,{className:`space-y-4 rounded-md border border-border p-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Update your account password.`}),(0,H.jsx)(q,{variant:`ghost`,size:`icon`,onClick:P,children:(0,H.jsx)(as,{className:`size-4`})})]}),(0,H.jsxs)(`form`,{onSubmit:I,className:`space-y-4`,children:[(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`current`,children:`Current password`}),(0,H.jsx)(J,{id:`current`,type:`password`,value:d,onChange:e=>f(e.target.value),required:!0})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`new`,children:`New password`}),(0,H.jsx)(J,{id:`new`,type:`password`,value:p,onChange:e=>m(e.target.value),required:!0,minLength:8})]}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`confirm`,children:`Confirm new password`}),(0,H.jsx)(J,{id:`confirm`,type:`password`,value:h,onChange:e=>g(e.target.value),required:!0})]}),(_??i)&&(0,H.jsx)(`p`,{className:`text-destructive text-sm`,children:_??i}),(0,H.jsx)(q,{type:`submit`,disabled:r,children:r?`Saving…`:`Update password`})]})]})}),(0,H.jsx)(Kj,{value:`two-factor`,className:`mt-4`,children:(0,H.jsxs)(`div`,{className:`space-y-4`,children:[!b&&!S&&(0,H.jsx)(q,{variant:`secondary`,onClick:L,disabled:o,children:`Enable 2FA`}),S&&!b&&(0,H.jsxs)(`div`,{className:`space-y-3 rounded-md border border-border p-4`,children:[(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Scan this QR code with your authenticator app and enter the 6-digit code.`}),(0,H.jsx)(q,{variant:`ghost`,size:`icon`,onClick:F,children:(0,H.jsx)(as,{className:`size-4`})})]}),(0,H.jsx)(`div`,{className:`inline-flex rounded-md bg-white p-2`,children:(0,H.jsx)(Q4,{value:S.otpauthUri,size:176})}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Manual code: `,S.secret]}),(0,H.jsx)(Wb,{maxLength:6,value:w,onChange:T,containerClassName:`w-fit`,className:`w-fit`,children:(0,H.jsxs)(Gb,{className:`w-fit`,children:[(0,H.jsx)(Kb,{index:0}),(0,H.jsx)(Kb,{index:1}),(0,H.jsx)(Kb,{index:2}),(0,H.jsx)(Kb,{index:3}),(0,H.jsx)(Kb,{index:4}),(0,H.jsx)(Kb,{index:5})]})}),(0,H.jsx)(q,{onClick:R,disabled:o||w.length!==6,children:`Confirm and enable 2FA`}),s&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:s})]}),b&&(0,H.jsxs)(`div`,{className:`space-y-3 rounded-md border border-border p-4`,children:[O&&(0,H.jsxs)(`div`,{className:`space-y-3 rounded-md border border-emerald-500/40 bg-emerald-500/10 p-3`,children:[(0,H.jsx)(`p`,{className:`text-sm font-medium text-emerald-300`,children:`2FA is now enabled.`}),(0,H.jsx)(`p`,{className:`text-xs text-emerald-200/90`,children:`For security, re-login is recommended now. This prevents accidental changes and confirms your new security state.`}),(0,H.jsx)(q,{variant:`default`,onClick:()=>{n()},children:`Re-login now`}),A.length>0&&(0,H.jsxs)(`div`,{className:`space-y-2 rounded-md border border-emerald-400/30 bg-background/40 p-3`,children:[(0,H.jsx)(`p`,{className:`text-xs font-medium text-emerald-200`,children:`Save these backup codes now. Each code can be used once if you lose access to your authenticator.`}),(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:A.map(e=>(0,H.jsx)(`code`,{className:`rounded bg-black/20 px-2 py-1 text-xs text-emerald-100`,children:e},e))}),(0,H.jsx)(q,{variant:`outline`,onClick:async()=>{try{await navigator.clipboard.writeText(A.join(`
|
|
223
|
+
`)),N(!0),setTimeout(()=>N(!1),2e3)}catch{N(!1)}},children:M?`Copied`:`Copy backup codes`})]})]}),(0,H.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Enter a verification code from your authenticator app to disable 2FA.`}),(0,H.jsx)(q,{variant:`ghost`,size:`icon`,onClick:()=>{T(``),D(``)},children:(0,H.jsx)(as,{className:`size-4`})})]}),(0,H.jsx)(Wb,{maxLength:6,value:w,onChange:T,containerClassName:`w-fit`,className:`w-fit`,children:(0,H.jsxs)(Gb,{className:`w-fit`,children:[(0,H.jsx)(Kb,{index:0}),(0,H.jsx)(Kb,{index:1}),(0,H.jsx)(Kb,{index:2}),(0,H.jsx)(Kb,{index:3}),(0,H.jsx)(Kb,{index:4}),(0,H.jsx)(Kb,{index:5})]})}),(0,H.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,H.jsx)(Y,{htmlFor:`disable-2fa-password`,children:`Current password`}),(0,H.jsx)(J,{id:`disable-2fa-password`,type:`password`,value:E,onChange:e=>D(e.target.value),required:!0})]}),(0,H.jsx)(q,{variant:`destructive`,onClick:ee,disabled:O||o||w.length!==6||!E,children:`Disable 2FA`}),s&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:s})]})]})})]})})]})}function e3(){return(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(Yb,{children:(0,H.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Profile`})}),(0,H.jsx)(`section`,{className:`mt-18`,children:(0,H.jsx)(`div`,{className:`grid grid-cols-2 gap-4 items-start`,children:(0,H.jsxs)(`div`,{className:`space-y-4`,children:[(0,H.jsx)(T4,{}),(0,H.jsx)($4,{})]})})})]})}var t3=[`Super Admin`,`Admin`,`Editor`,`Contributor`],n3=Hi([{path:`/login`,element:(0,H.jsx)(Jb,{})},{element:(0,H.jsx)(wa,{children:(0,H.jsx)(xb,{})}),children:[{index:!0,element:(0,H.jsx)(wa,{roles:t3,redirectTo:`/content`,children:(0,H.jsx)(MT,{})})},{path:`content`,element:(0,H.jsx)(kk,{}),children:[{index:!0,element:(0,H.jsx)(Ak,{})},{path:`:slug`,element:(0,H.jsx)(lA,{})},{path:`:slug/new`,element:(0,H.jsx)(wa,{permission:`entries:write`,redirectTo:`/content`,children:(0,H.jsx)($1,{})})},{path:`:slug/:id`,element:(0,H.jsx)($1,{})}]},{path:`media`,element:(0,H.jsx)(wa,{roles:t3,redirectTo:`/content`,children:(0,H.jsx)(y0,{})})},{path:`content-types`,element:(0,H.jsx)(wa,{permission:`content-types:write`,roles:t3,redirectTo:`/content`,children:(0,H.jsx)(FT,{})}),children:[{index:!0,element:(0,H.jsx)(UT,{})},{path:`new`,element:(0,H.jsx)(Dk,{})},{path:`:slug`,element:(0,H.jsx)(Dk,{})}]},{path:`settings`,element:(0,H.jsx)(wa,{permission:`settings:overview:read`,roles:t3,redirectTo:`/content`,children:(0,H.jsx)(C0,{})}),children:[{index:!0,element:(0,H.jsx)(Qr,{to:`overview`,replace:!0})},{path:`overview`,element:(0,H.jsx)(wa,{permission:`settings:overview:read`,children:(0,H.jsx)(P0,{})})},{path:`users`,element:(0,H.jsx)(wa,{permission:`settings:users:read`,children:(0,H.jsx)(s4,{})})},{path:`roles`,element:(0,H.jsx)(wa,{permission:`settings:roles:read`,children:(0,H.jsx)(m4,{})})},{path:`api-tokens`,element:(0,H.jsx)(wa,{permission:`settings:api-tokens:read`,children:(0,H.jsx)(y4,{})})},{path:`webhooks`,element:(0,H.jsx)(wa,{permission:`settings:webhooks:read`,children:(0,H.jsx)(S4,{})})}]},{path:`profile`,element:(0,H.jsx)(e3,{})}]},{path:`*`,element:(0,H.jsx)(Qr,{to:`/`,replace:!0})}],{basename:`/admin/`.replace(/\/$/,``)||`/`});function r3(){return(0,H.jsx)(ga,{children:(0,H.jsx)(ya,{children:(0,H.jsx)(Sa,{children:(0,H.jsx)(fa,{router:n3})})})})}var i3=({...e})=>{let{theme:t=`system`}=T();return(0,H.jsx)(cu,{theme:t,className:`toaster group`,icons:{success:(0,H.jsx)(Ja,{className:`size-4`}),info:(0,H.jsx)(xo,{className:`size-4`}),warning:(0,H.jsx)(Zo,{className:`size-4`}),error:(0,H.jsx)(Fo,{className:`size-4`}),loading:(0,H.jsx)(Mo,{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 a3({...e}){return(0,H.jsx)(i3,{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})}(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)(r3,{}),(0,H.jsx)(a3,{})]})}));
|