@plank-cms/plank 0.20.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -216,7 +216,7 @@ ${n}`}}),s}var aK=new WeakMap;function oK(e,t){let n=aK.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]=JX(r);if(i.length===0)return;let o=YX(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(ZX,this.editor.getAttributes(QX)).run():e.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let e=KG({find:$X,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=KG({find:$X,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(QX)}),joinPredicate:(e,t)=>t.childCount+t.attrs.start===+e[1],editor:this.editor})),[e]}}),tZ=/^\s*(\[([( |x])?\])\s$/,nZ=lK.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`,iW(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)=>iK(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=aW(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[KG({find:tZ,type:this.type,getAttributes:e=>({checked:e[e.length-1]===`x`})})]}}),rZ=lK.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`,iW(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=rK(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=rK(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()}}});DG.create({name:`listKit`,addExtensions(){let e=[];return this.options.bulletList!==!1&&e.push(jX.configure(this.options.bulletList)),this.options.listItem!==!1&&e.push(MX.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(UX.configure(this.options.listKeymap)),this.options.orderedList!==!1&&e.push(eZ.configure(this.options.orderedList)),this.options.taskItem!==!1&&e.push(nZ.configure(this.options.taskItem)),this.options.taskList!==!1&&e.push(rZ.configure(this.options.taskList)),e}});var iZ=`&nbsp;`,aZ=`\xA0`,oZ=lK.create({name:`paragraph`,priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:`block`,content:`inline*`,parseHTML(){return[{tag:`p`}]},renderHTML({HTMLAttributes:e}){return[`p`,iW(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===iZ||n[0].text===iZ||n[0].raw===aZ||n[0].text===aZ)&&r.length===1&&r[0].type===`text`&&(r[0].text===iZ||r[0].text===aZ)?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?iZ:``}return t.renderChildren(r)},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),sZ=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,cZ=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,lZ=vG.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`,iW(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[UG({find:sZ,type:this.type})]},addPasteRules(){return[dK({find:cZ,type:this.type})]}}),uZ=lK.create({name:`text`,group:`inline`,parseMarkdown:e=>({type:`text`,text:e.text||``}),renderMarkdown:e=>e.text||``}),dZ=vG.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`,iW(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 fZ(e={}){return new XI({view(t){return new pZ(t,e)}})}var pZ=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=sI(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)}},mZ=class e extends OI{constructor(e){super(e,e)}map(t,n){let r=t.resolve(n.map(this.head));return e.valid(r)?new e(r):OI.near(r)}content(){return Q.empty}eq(t){return t instanceof e&&t.head==this.head}toJSON(){return{type:`gapcursor`,pos:this.head}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for GapCursor.fromJSON`);return new e(t.resolve(n.pos))}getBookmark(){return new hZ(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!_Z(e)||!vZ(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&&!PI.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}}};mZ.prototype.visible=!1,mZ.findFrom=mZ.findGapCursorFrom,OI.jsonID(`gapcursor`,mZ);var hZ=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 mZ.valid(t)?new mZ(t):OI.near(t)}};function gZ(e){return e.isAtom||e.spec.isolating||e.spec.createGapCursor}function _Z(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||gZ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function vZ(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||gZ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function yZ(){return new XI({props:{decorations:wZ,createSelectionBetween(e,t,n){return t.pos==n.pos&&mZ.valid(n)?new mZ(n):null},handleClick:SZ,handleKeyDown:bZ,handleDOMEvents:{beforeinput:CZ}}})}var bZ=EH({ArrowLeft:xZ(`horiz`,-1),ArrowRight:xZ(`horiz`,1),ArrowUp:xZ(`vert`,-1),ArrowDown:xZ(`vert`,1)});function xZ(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 MI){if(!i.endOfTextblock(n)||o.depth==0)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let c=mZ.findGapCursorFrom(o,t,s);return c?(r&&r(e.tr.setSelection(new mZ(c))),!0):!1}}function SZ(e,t,n){if(!e||!e.editable)return!1;let r=e.state.doc.resolve(t);if(!mZ.valid(r))return!1;let i=e.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&PI.isSelectable(e.state.doc.nodeAt(i.inside))?!1:(e.dispatch(e.state.tr.setSelection(new mZ(r))),!0)}function CZ(e,t){if(t.inputType!=`insertCompositionText`||!(e.state.selection instanceof mZ))return!1;let{$from:n}=e.state.selection,r=n.parent.contentMatchAt(n.index()).findWrapping(e.state.schema.nodes.text);if(!r)return!1;let i=Z.empty;for(let e=r.length-1;e>=0;e--)i=Z.from(r[e].createAndFill(null,i));let a=e.state.tr.replace(n.pos,n.pos,new Q(i,0,0));return a.setSelection(MI.near(a.doc.resolve(n.pos+1))),e.dispatch(a),!1}function wZ(e){if(!(e.selection instanceof mZ))return null;let t=document.createElement(`div`);return t.className=`ProseMirror-gapcursor`,TV.create(e.doc,[SV.widget(e.selection.head,t,{key:`gapcursor`})])}var TZ=200,EZ=function(){};EZ.prototype.append=function(e){return e.length?(e=EZ.from(e),!this.length&&e||e.length<TZ&&this.leafAppend(e)||this.length<TZ&&e.leafPrepend(this)||this.appendInner(e)):this},EZ.prototype.prepend=function(e){return e.length?EZ.from(e).append(this):this},EZ.prototype.appendInner=function(e){return new OZ(this,e)},EZ.prototype.slice=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=this.length),e>=t?EZ.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},EZ.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},EZ.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)},EZ.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},EZ.from=function(e){return e instanceof EZ?e:e&&e.length?new DZ(e):EZ.empty};var DZ=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<=TZ)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=TZ)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}(EZ);EZ.empty=new DZ([]);var OZ=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}(EZ),kZ=500,AZ=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 MZ(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 MZ(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 MZ(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>PZ&&(s=jZ(s,l),o-=l),new e(s.append(a),o)}remapping(e,t){let n=new TF;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 MZ(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 MZ(i,o,l))}else r.push(new MZ(i))},i);let l=[];for(let e=n;e<o;e++)l.push(new MZ(a.maps[e]));let u=new e(this.items.slice(0,i).append(l).append(r),s);return u.emptyItemCount()>kZ&&(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 MZ(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(EZ.from(i.reverse()),a)}};AZ.empty=new AZ(EZ.empty,0);function jZ(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&t--==0)return n=r,!1}),e.slice(n)}var MZ=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)}}},NZ=class{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}},PZ=20;function FZ(e,t,n,r){let i=n.getMeta(UZ),a;if(i)return i.historyState;n.getMeta(WZ)&&(e=new NZ(e.done,e.undone,null,0,-1));let o=n.getMeta(`appendedTransaction`);if(n.steps.length==0)return e;if(o&&o.getMeta(UZ))return o.getMeta(UZ).redo?new NZ(e.done.addTransform(n,void 0,r,HZ(t)),e.undone,LZ(n.mapping.maps),e.prevTime,e.prevComposition):new NZ(e.done,e.undone.addTransform(n,void 0,r,HZ(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||!IZ(n,e.prevRanges)),s=o?RZ(e.prevRanges,n.mapping):LZ(n.mapping.maps);return new NZ(e.done.addTransform(n,a?t.selection.getBookmark():void 0,r,HZ(t)),AZ.empty,s,n.time,i??e.prevComposition)}else if(a=n.getMeta(`rebased`))return new NZ(e.done.rebased(n,a),e.undone.rebased(n,a),RZ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);else return new NZ(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),RZ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function IZ(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 LZ(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 RZ(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 zZ(e,t,n){let r=HZ(t),i=UZ.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 NZ(n?s:a.remaining,n?a.remaining:s,null,0,-1);return a.transform.setSelection(o).setMeta(UZ,{redo:n,historyState:c})}var BZ=!1,VZ=null;function HZ(e){let t=e.plugins;if(VZ!=t){BZ=!1,VZ=t;for(let e=0;e<t.length;e++)if(t[e].spec.historyPreserveItems){BZ=!0;break}}return BZ}var UZ=new $I(`history`),WZ=new $I(`closeHistory`);function GZ(e={}){return e={depth:e.depth||100,newGroupDelay:e.newGroupDelay||500},new XI({key:UZ,state:{init(){return new NZ(AZ.empty,AZ.empty,null,0,-1)},apply(t,n,r){return FZ(n,r,t,e)}},config:e,props:{handleDOMEvents:{beforeinput(e,t){let n=t.inputType,r=n==`historyUndo`?qZ:n==`historyRedo`?JZ:null;return!r||!e.editable?!1:(t.preventDefault(),r(e.state,e.dispatch))}}}})}function KZ(e,t){return(n,r)=>{let i=UZ.getState(n);if(!i||(e?i.undone:i.done).eventCount==0)return!1;if(r){let a=zZ(i,n,e);a&&r(t?a.scrollIntoView():a)}return!0}}var qZ=KZ(!1,!0),JZ=KZ(!0,!0);DG.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 XI({key:new $I(`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 YZ=DG.create({name:`dropCursor`,addOptions(){return{color:`currentColor`,width:1,class:void 0}},addProseMirrorPlugins(){return[fZ(this.options)]}});DG.create({name:`focus`,addOptions(){return{className:`has-focus`,mode:`all`}},addProseMirrorPlugins(){return[new XI({key:new $I(`focus`),props:{decorations:({doc:e,selection:t})=>{let{isEditable:n,isFocused:r}=this.editor,{anchor:i}=t,a=[];if(!n||!r)return TV.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(SV.node(t,t+e.nodeSize,{class:this.options.className}))}),TV.create(e,a)}}})]}});var XZ=DG.create({name:`gapCursor`,addProseMirrorPlugins(){return[yZ()]},extendNodeSchema(e){return{allowGapCursor:QU(JU(e,`allowGapCursor`,{name:e.name,options:e.options,storage:e.storage}))??null}}}),ZZ=`placeholder`;function QZ(e){return e.replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9-]/g,``).replace(/^[0-9-]+/,``).replace(/^-+/,``).toLowerCase()}DG.create({name:`placeholder`,addOptions(){return{emptyEditorClass:`is-editor-empty`,emptyNodeClass:`is-empty`,dataAttribute:ZZ,placeholder:`Write something …`,showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){let e=this.options.dataAttribute?`data-${QZ(this.options.dataAttribute)}`:`data-${ZZ}`;return[new XI({key:new $I(`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&&NW(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=SV.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}),TV.create(t,a)}}})]}}),DG.create({name:`selection`,addOptions(){return{className:`selection`}},addProseMirrorPlugins(){let{editor:e,options:t}=this;return[new XI({key:new $I(`selection`),props:{decorations(n){return n.selection.empty||e.isFocused||!e.isEditable||PW(n.selection)||e.view.dragging?null:TV.create(n.doc,[SV.inline(n.selection.from,n.selection.to,{class:t.className})])}}})]}});function $Z({types:e,node:t}){return t&&Array.isArray(e)&&e.includes(t.type)||t?.type===e}var eQ=DG.create({name:`trailingNode`,addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){let e=new $I(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 XI({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!$Z({node:r,types:n})},apply:(e,t)=>{if(!e.docChanged||e.getMeta(`__uniqueIDTransaction`))return t;let r=e.doc.lastChild;return!$Z({node:r,types:n})}}})]}}),tQ=DG.create({name:`undoRedo`,addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:e,dispatch:t})=>qZ(e,t),redo:()=>({state:e,dispatch:t})=>JZ(e,t)}},addProseMirrorPlugins(){return[GZ(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()}}}),nQ=DG.create({name:`starterKit`,addExtensions(){let e=[];return this.options.bold!==!1&&e.push(Jq.configure(this.options.bold)),this.options.blockquote!==!1&&e.push(Uq.configure(this.options.blockquote)),this.options.bulletList!==!1&&e.push(jX.configure(this.options.bulletList)),this.options.code!==!1&&e.push(Zq.configure(this.options.code)),this.options.codeBlock!==!1&&e.push(tJ.configure(this.options.codeBlock)),this.options.document!==!1&&e.push(nJ.configure(this.options.document)),this.options.dropcursor!==!1&&e.push(YZ.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&e.push(XZ.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&e.push(rJ.configure(this.options.hardBreak)),this.options.heading!==!1&&e.push(iJ.configure(this.options.heading)),this.options.undoRedo!==!1&&e.push(tQ.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&e.push(aJ.configure(this.options.horizontalRule)),this.options.italic!==!1&&e.push(uJ.configure(this.options.italic)),this.options.listItem!==!1&&e.push(MX.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(UX.configure(this.options?.listKeymap)),this.options.link!==!1&&e.push(TX.configure(this.options?.link)),this.options.orderedList!==!1&&e.push(eZ.configure(this.options.orderedList)),this.options.paragraph!==!1&&e.push(oZ.configure(this.options.paragraph)),this.options.strike!==!1&&e.push(lZ.configure(this.options.strike)),this.options.text!==!1&&e.push(uZ.configure(this.options.text)),this.options.underline!==!1&&e.push(dZ.configure(this.options?.underline)),this.options.trailingNode!==!1&&e.push(eQ.configure(this.options?.trailingNode)),e}}),rQ=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,iQ=lK.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`,iW(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?`![${n}](${t} "${r}")`:`![${n}](${t})`},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 JG({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[WG({find:rQ,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}});function aQ({onClick:e,active:t,disabled:n,title:r,children:i}){return(0,U.jsx)(`button`,{type:`button`,title:r,disabled:n,onMouseDown:t=>{t.preventDefault(),e()},className:q(`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 oQ(){return(0,U.jsx)(`div`,{className:`mx-0.5 h-4 w-px bg-border`})}function sQ(e,t){return!e||!t?null:`${e} × ${t}`}function cQ(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`}}function lQ({node:e,deleteNode:t,selected:n}){let r=String(e.attrs.src??``),i=typeof e.attrs.filename==`string`?e.attrs.filename:null,a=typeof e.attrs.alt==`string`?e.attrs.alt:null,o=typeof e.attrs.title==`string`?e.attrs.title:null,s=typeof e.attrs.width==`number`?e.attrs.width:null,c=typeof e.attrs.height==`number`?e.attrs.height:null,l=i||cQ(r),u=sQ(s,c);return(0,U.jsx)(Oq,{className:q(`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,U.jsxs)(`div`,{className:`flex items-start gap-3 p-3`,children:[(0,U.jsx)(`div`,{className:`size-18 shrink-0 overflow-hidden rounded-lg border bg-muted`,children:(0,U.jsx)(`img`,{src:r,alt:a??l,className:`h-full w-full object-cover`})}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,U.jsx)(`p`,{className:`truncate text-sm font-medium text-foreground`,title:l,children:l}),(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground`,children:[u&&(0,U.jsx)(`span`,{children:u}),a&&(0,U.jsxs)(`span`,{className:`truncate`,title:a,children:[`Alt: `,a]})]}),o&&(0,U.jsx)(`p`,{className:`line-clamp-2 text-xs text-muted-foreground`,title:o,children:o})]}),(0,U.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,U.jsx)(qo,{className:`size-4`})})]})})}function uQ({value:e,onChange:t,placeholder:n,onInsertImage:r}){let[i,a]=(0,v.useState)(!e),o=wq({extensions:[nQ.configure({link:{openOnClick:!1,HTMLAttributes:{class:`text-primary underline`}}}),iQ.extend({addAttributes(){return{...this.parent?.(),filename:{default:null},width:{default:null},height:{default:null}}},addNodeView(){return Iq(lQ)}}).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();e&&o.chain().focus().setImage({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}).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,U.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,U.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,U.jsx)(aQ,{title:`Bold`,active:o.isActive(`bold`),onClick:()=>o.chain().focus().toggleBold().run(),children:(0,U.jsx)(Fa,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Italic`,active:o.isActive(`italic`),onClick:()=>o.chain().focus().toggleItalic().run(),children:(0,U.jsx)(yo,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Underline`,active:o.isActive(`underline`),onClick:()=>o.chain().focus().toggleUnderline().run(),children:(0,U.jsx)(Xo,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Strikethrough`,active:o.isActive(`strike`),onClick:()=>o.chain().focus().toggleStrike().run(),children:(0,U.jsx)(Uo,{className:`size-3.5`})}),(0,U.jsx)(oQ,{}),(0,U.jsx)(aQ,{title:`Heading 1`,active:o.isActive(`heading`,{level:1}),onClick:()=>o.chain().focus().toggleHeading({level:1}).run(),children:(0,U.jsx)(po,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Heading 2`,active:o.isActive(`heading`,{level:2}),onClick:()=>o.chain().focus().toggleHeading({level:2}).run(),children:(0,U.jsx)(mo,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Heading 3`,active:o.isActive(`heading`,{level:3}),onClick:()=>o.chain().focus().toggleHeading({level:3}).run(),children:(0,U.jsx)(ho,{className:`size-3.5`})}),(0,U.jsx)(oQ,{}),(0,U.jsx)(aQ,{title:`Bullet list`,active:o.isActive(`bulletList`),onClick:()=>o.chain().focus().toggleBulletList().run(),children:(0,U.jsx)(Oo,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Ordered list`,active:o.isActive(`orderedList`),onClick:()=>o.chain().focus().toggleOrderedList().run(),children:(0,U.jsx)(Eo,{className:`size-3.5`})}),(0,U.jsx)(oQ,{}),(0,U.jsx)(aQ,{title:`Blockquote`,active:o.isActive(`blockquote`),onClick:()=>o.chain().focus().toggleBlockquote().run(),children:(0,U.jsx)(Fo,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Inline code`,active:o.isActive(`code`),onClick:()=>o.chain().focus().toggleCode().run(),children:(0,U.jsx)(Ya,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Code block`,active:o.isActive(`codeBlock`),onClick:()=>o.chain().focus().toggleCodeBlock().run(),children:(0,U.jsx)(Vo,{className:`size-3.5`})}),(0,U.jsx)(oQ,{}),(0,U.jsx)(aQ,{title:`Add link`,active:o.isActive(`link`),onClick:c,children:(0,U.jsx)(To,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Remove link`,disabled:!o.isActive(`link`),onClick:()=>o.chain().focus().unsetLink().run(),children:(0,U.jsx)(Zo,{className:`size-3.5`})}),(0,U.jsx)(oQ,{}),r&&(0,U.jsx)(aQ,{title:`Insert image`,onClick:s,children:(0,U.jsx)(_o,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Hard break (Shift + Enter)`,onClick:()=>o.chain().focus().setHardBreak().run(),children:(0,U.jsx)(Go,{className:`size-3.5`})})]}),(0,U.jsxs)(`div`,{className:`relative overflow-y-auto`,children:[i&&n&&(0,U.jsx)(`p`,{className:`pointer-events-none absolute left-3 top-2.5 text-muted-foreground select-none`,children:n}),(0,U.jsx)(gq,{editor:o})]})]}):null}function dQ(e){return{...e}}function fQ(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 pQ(e,t){let n=await fQ(e),r=await fetch(`/cms/admin/media/presign`,{method:`POST`,credentials:`include`,headers:dQ({"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:dQ({"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:dQ(),body:a});if(!o.ok)throw Error(`Upload failed.`);return o.json()}async function mQ(e){let t=await fetch(`/cms/admin/users/me/avatar/presign`,{method:`POST`,credentials:`include`,headers:dQ({"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:dQ({"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:dQ(),body:r});if(!i.ok)throw Error(`Upload failed.`);return(await i.json()).avatarUrl}var hQ=1,gQ=.9,_Q=.8,vQ=.17,yQ=.1,bQ=.999,xQ=.9999,SQ=.99,CQ=/[\\\/_+.#"@\[\(\{&]/,wQ=/[\\\/_+.#"@\[\(\{&]/g,TQ=/[\s-]/,EQ=/[\s-]/g;function DQ(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?hQ:SQ;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=DQ(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=hQ:CQ.test(e.charAt(l-1))?(d*=_Q,p=e.slice(i,l-1).match(wQ),p&&i>0&&(d*=bQ**+p.length)):TQ.test(e.charAt(l-1))?(d*=gQ,m=e.slice(i,l-1).match(EQ),m&&i>0&&(d*=bQ**+m.length)):(d*=vQ,i>0&&(d*=bQ**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=xQ)),(d<yQ&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=DQ(e,t,n,r,l+1,a+2,o),f*yQ>d&&(d=f*yQ)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function OQ(e){return e.toLowerCase().replace(EQ,` `)}function kQ(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,DQ(e,t,OQ(e),OQ(t),0,0,{})}var AQ=`[cmdk-group=""]`,jQ=`[cmdk-group-items=""]`,MQ=`[cmdk-group-heading=""]`,NQ=`[cmdk-item=""]`,PQ=`${NQ}:not([aria-disabled="true"])`,FQ=`cmdk-item-select`,IQ=`data-value`,LQ=(e,t,n)=>kQ(e,t,n),RQ=v.createContext(void 0),zQ=()=>v.useContext(RQ),BQ=v.createContext(void 0),VQ=()=>v.useContext(BQ),HQ=v.createContext(void 0),UQ=v.forwardRef((e,t)=>{let n=r$(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=r$(()=>new Set),i=r$(()=>new Map),a=r$(()=>new Map),o=r$(()=>new Set),s=t$(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:p,loop:m,disablePointerSelection:h=!1,vimBindings:g=!0,..._}=e,y=Ou(),b=Ou(),x=Ou(),S=v.useRef(null),C=o$();n$(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,w.emit()}},[u]),n$(()=>{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??LQ;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(jQ);t?t.appendChild(e.parentElement===t?e:e.closest(`${jQ} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${jQ} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${AQ}[${IQ}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(IQ);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(AQ)?.querySelector(MQ))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${NQ}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(PQ)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(IQ))}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(IQ))}function F(e){let t=j()?.closest(AQ),n;for(;t&&!n;)t=e>0?$Q(t,AQ):e$(t,AQ),n=t?.querySelector(PQ);n?w.setState(`value`,n.getAttribute(IQ)):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(tl.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(FQ);t.dispatchEvent(e)}}}}},v.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:l$},c),c$(e,e=>v.createElement(BQ.Provider,{value:w},v.createElement(RQ.Provider,{value:T},e))))}),WQ=v.forwardRef((e,t)=>{let n=Ou(),r=v.useRef(null),i=v.useContext(HQ),a=zQ(),o=t$(e),s=o.current?.forceMount??i?.forceMount;n$(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=a$(n,r,[e.value,e.children,r],e.keywords),l=VQ(),u=i$(e=>e.value&&e.value===c.current),d=i$(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(FQ,f),()=>t.removeEventListener(FQ,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(tl.div,{ref:cs(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)}),GQ=v.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=Ou(),s=v.useRef(null),c=v.useRef(null),l=Ou(),u=zQ(),d=i$(e=>i||u.filter()===!1?!0:e.search?e.filtered.groups.has(o):!0);n$(()=>u.group(o),[]),a$(o,s,[e.value,e.heading,c]);let f=v.useMemo(()=>({id:o,forceMount:i}),[i]);return v.createElement(tl.div,{ref:cs(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),c$(e,e=>v.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},v.createElement(HQ.Provider,{value:f},e))))}),KQ=v.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=v.useRef(null),a=i$(e=>!e.search);return!n&&!a?null:v.createElement(tl.div,{ref:cs(i,t),...r,"cmdk-separator":``,role:`separator`})}),qQ=v.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=VQ(),o=i$(e=>e.search),s=i$(e=>e.selectedItemId),c=zQ();return v.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),v.createElement(tl.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)}})}),JQ=v.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=v.useRef(null),o=v.useRef(null),s=i$(e=>e.selectedItemId),c=zQ();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(tl.div,{ref:cs(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},c$(e,e=>v.createElement(`div`,{ref:cs(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),YQ=v.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return v.createElement(ix,{open:n,onOpenChange:r},v.createElement(ax,{container:o},v.createElement(ox,{"cmdk-overlay":``,className:i}),v.createElement(sx,{"aria-label":e.label,"cmdk-dialog":``,className:a},v.createElement(UQ,{ref:t,...s}))))}),XQ=v.forwardRef((e,t)=>i$(e=>e.filtered.count===0)?v.createElement(tl.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),ZQ=v.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return v.createElement(tl.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},c$(e,e=>v.createElement(`div`,{"aria-hidden":!0},e)))}),QQ=Object.assign(UQ,{List:JQ,Item:WQ,Input:qQ,Group:GQ,Separator:KQ,Dialog:YQ,Empty:XQ,Loading:ZQ});function $Q(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function e$(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function t$(e){let t=v.useRef(e);return n$(()=>{t.current=e}),t}var n$=typeof window>`u`?v.useEffect:v.useLayoutEffect;function r$(e){let t=v.useRef();return t.current===void 0&&(t.current=e()),t}function i$(e){let t=VQ(),n=()=>e(t.snapshot());return v.useSyncExternalStore(t.subscribe,n,n)}function a$(e,t,n,r=[]){let i=v.useRef(),a=zQ();return n$(()=>{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(IQ,s),i.current=s}),i}var o$=()=>{let[e,t]=v.useState(),n=r$(()=>new Map);return n$(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function s$(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function c$({asChild:e,children:t},n){return e&&v.isValidElement(t)?v.cloneElement(s$(t),{ref:t.ref},n(t.props.children)):n(t)}var l$={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`},u$=v.forwardRef(({className:e,...t},n)=>(0,U.jsx)(QQ,{ref:n,className:q(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,e),...t}));u$.displayName=QQ.displayName;var d$=v.forwardRef(({className:e,...t},n)=>(0,U.jsxs)(`div`,{className:`flex items-center border-b px-3`,"cmdk-input-wrapper":``,children:[(0,U.jsx)(Ro,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),(0,U.jsx)(QQ.Input,{ref:n,className:q(`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})]}));d$.displayName=QQ.Input.displayName;var f$=v.forwardRef(({className:e,...t},n)=>(0,U.jsx)(QQ.List,{ref:n,className:q(`max-h-[300px] overflow-y-auto overflow-x-hidden`,e),...t}));f$.displayName=QQ.List.displayName;var p$=v.forwardRef((e,t)=>(0,U.jsx)(QQ.Empty,{ref:t,className:`py-6 text-center text-sm`,...e}));p$.displayName=QQ.Empty.displayName;var m$=v.forwardRef(({className:e,...t},n)=>(0,U.jsx)(QQ.Group,{ref:n,className:q(`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}));m$.displayName=QQ.Group.displayName;var h$=v.forwardRef(({className:e,...t},n)=>(0,U.jsx)(QQ.Separator,{ref:n,className:q(`-mx-1 h-px bg-border`,e),...t}));h$.displayName=QQ.Separator.displayName;var g$=v.forwardRef(({className:e,...t},n)=>(0,U.jsx)(QQ.Item,{ref:n,className:q(`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}));g$.displayName=QQ.Item.displayName;var _$=({className:e,...t})=>(0,U.jsx)(`span`,{className:q(`ml-auto text-xs tracking-widest text-muted-foreground`,e),...t});_$.displayName=`CommandShortcut`;var v$={image:`image/*`,video:`video/*`,audio:`audio/*`,document:`.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv`};function y$(e){return!e||e.length===0?`*/*`:e.map(e=>v$[e]).join(`,`)}function b$(e){let t=e.replace(/_/g,` `).trim();return t?t.charAt(0).toUpperCase()+t.slice(1):`Value`}function x$(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:`—`}function S$(e){return e?.startsWith(`image/`)??!1}async function C$(e,t){return pQ(e,{folderId:t})}function w$(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)}function T$({open:e,onOpenChange:t,allowedTypes:n,onSelect:r}){let[i,a]=(0,v.useState)([{id:null,name:`Media`}]),o=i[i.length-1].id,[s,c]=(0,v.useState)([]),[l,u]=(0,v.useState)([]),[d,f]=(0,v.useState)(!1);(0,v.useEffect)(()=>{if(!e)return;f(!0);let t=localStorage.getItem(`plank_token`),n=t?{Authorization:`Bearer ${t}`}:{},r=o??``;Promise.all([fetch(`/cms/admin/folders?parent_id=${r}`,{headers:n}).then(e=>e.ok?e.json():{folders:[]}).then(e=>e.folders),fetch(`/cms/admin/media?folder_id=${r}`,{headers:n}).then(e=>e.ok?e.json():{items:[]}).then(e=>e.items)]).then(([e,t])=>{c(e),u(t)}).catch(()=>{c([]),u([])}).finally(()=>f(!1))},[e,o]),(0,v.useEffect)(()=>{e||a([{id:null,name:`Media`}])},[e]);function p(e){a(t=>[...t,{id:e.id,name:e.name}])}function m(e){a(t=>t.slice(0,e+1))}let h=l.filter(e=>w$(e.mime_type,n)),g=s.length===0&&h.length===0;return(0,U.jsx)(yw,{open:e,onOpenChange:t,children:(0,U.jsxs)(Cw,{className:`max-w-3xl`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Media Library`})}),i.length>1&&(0,U.jsx)(`div`,{className:`flex items-center gap-1 text-sm -mt-1`,children:i.map((e,t)=>(0,U.jsxs)(`span`,{className:`flex items-center gap-1 text-muted-foreground`,children:[t>0&&(0,U.jsx)(`span`,{children:`/`}),t===i.length-1?(0,U.jsx)(`span`,{className:`font-medium text-foreground`,children:t===0?(0,U.jsx)(go,{className:`size-3.5`}):e.name}):(0,U.jsx)(`button`,{onClick:()=>m(t),className:`hover:text-foreground transition-colors`,children:t===0?(0,U.jsx)(go,{className:`size-3.5`}):e.name})]},t))}),d?(0,U.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,U.jsx)(by,{className:`size-5`})}):g?(0,U.jsx)(`p`,{className:`py-16 text-center text-sm text-muted-foreground`,children:l.length===0&&s.length===0?`No media found.`:`No matching files in this folder.`}):(0,U.jsxs)(`div`,{className:`flex flex-col gap-4 max-h-[60vh] overflow-y-auto pr-1`,children:[s.length>0&&(0,U.jsx)(`div`,{className:`grid grid-cols-1 gap-1.5 sm:grid-cols-2`,children:s.map(e=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>p(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,U.jsx)(lo,{className:`size-7 shrink-0 text-muted-foreground`}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`p`,{className:`truncate text-xs font-bold leading-tight`,title:e.name,children:e.name}),(0,U.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[e.item_count,` `,e.item_count===1?`item`:`items`]})]})]},e.id))}),h.length>0&&(0,U.jsx)(`div`,{className:`grid grid-cols-3 gap-2 sm:grid-cols-4 md:grid-cols-5`,children:h.map(e=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>{r(e),t(!1)},className:`group relative overflow-hidden rounded-md border bg-card text-left transition-colors hover:border-primary`,children:[(0,U.jsx)(`div`,{className:`aspect-square bg-muted`,children:S$(e.mime_type)?(0,U.jsx)(`img`,{src:e.url,alt:e.filename,className:`h-full w-full object-cover`}):(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,U.jsx)(ao,{className:`size-6 text-muted-foreground`})})}),(0,U.jsxs)(`div`,{className:`p-1.5`,children:[(0,U.jsx)(`p`,{className:`truncate text-[11px] font-medium leading-tight`,title:e.filename,children:e.filename}),(0,U.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:x$(e.size)})]}),(0,U.jsx)(`div`,{className:`absolute inset-0 rounded-md ring-2 ring-primary ring-offset-1 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none`})]},e.id))})]})]})})}function E$({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}let t=localStorage.getItem(`plank_token`);fetch(`/cms/admin/media/${e}/url`,{headers:t?{Authorization:`Bearer ${t}`}:{}}).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 C$(e);u(n.url),t(n.id)}catch(e){c(e instanceof Error?e.message:`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,U.jsxs)(`div`,{className:`relative w-full rounded-md border bg-muted/30 overflow-hidden`,children:[l?h?(0,U.jsx)(`img`,{src:l,alt:`Media`,className:`max-h-72 w-full object-contain`}):(0,U.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,U.jsx)(_o,{className:`size-4 text-muted-foreground shrink-0`}),(0,U.jsx)(`span`,{className:`text-xs text-muted-foreground truncate`,children:l})]}):(0,U.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-muted-foreground`,children:[(0,U.jsx)(_o,{className:`size-4 shrink-0`}),(0,U.jsx)(`span`,{className:`text-xs`,children:`Loading…`})]}),(0,U.jsx)(J,{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,U.jsx)(ns,{className:`size-3.5`})})]}):(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`input`,{ref:i,type:`file`,accept:y$(n),className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&m(t)}}),(0,U.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,U.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,U.jsx)(Qo,{className:`size-4`}),a?`Uploading…`:`Upload`]}),(0,U.jsx)(`div`,{className:`w-px bg-border`}),(0,U.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,U.jsx)(so,{className:`size-4`}),`Library`]})]}),s&&(0,U.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:s}),(0,U.jsx)(T$,{open:d,onOpenChange:f,allowedTypes:n,onSelect:e=>{u(e.url),t(e.id)}})]})}function D$({id:e,previewUrl:t,filename:n,onRemove:r,disabled:i=!1}){let{attributes:a,listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=gO({id:e});return(0,U.jsxs)(`div`,{ref:s,style:{transform:kT.Transform.toString(c),transition:l,opacity:u?.4:1},className:`relative aspect-square overflow-hidden rounded-md border bg-muted`,children:[t?(0,U.jsx)(`img`,{src:t,alt:n,className:`h-full w-full object-cover`}):(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,U.jsx)(_o,{className:`size-5 text-muted-foreground`})}),n&&(0,U.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,U.jsx)(`p`,{className:`truncate text-[10px] leading-none text-foreground`,children:n})}),(0,U.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,U.jsx)(ns,{className:`size-3`})}),!i&&(0,U.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,U.jsx)(uo,{className:`size-3`})})]})}function O$({value:e,onChange:t,disabled:n=!1}){let r=Array.isArray(e)?e:[],[i,a]=(0,v.useState)({}),[o,s]=(0,v.useState)({}),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(null),[f,p]=(0,v.useState)(!1),m=(0,v.useRef)(null),h=GT(WT(GE,{activationConstraint:{distance:5}}));(0,v.useEffect)(()=>{let e=r.filter(e=>!e.startsWith(`http`)&&!(e in i));if(e.length===0)return;let t=localStorage.getItem(`plank_token`);Promise.all(e.map(e=>fetch(`/cms/admin/media/${e}/url`,{headers:t?{Authorization:`Bearer ${t}`}:{}}).then(e=>e.ok?e.json():null).then(t=>t?[e,t.url]:null).catch(()=>null))).then(e=>{let t={};for(let n of e)n&&(t[n[0]]=n[1]);Object.keys(t).length>0&&a(e=>({...e,...t}))})},[r.join(`,`)]),(0,v.useEffect)(()=>{let e=r.filter(e=>!e.startsWith(`http`)&&!(e in o));if(e.length===0)return;let t=localStorage.getItem(`plank_token`);fetch(`/cms/admin/media`,{headers:t?{Authorization:`Bearer ${t}`}:{}}).then(e=>e.ok?e.json():{items:[]}).then(t=>{let n={};for(let r of t.items)e.includes(r.id)&&(n[r.id]=r.filename);Object.keys(n).length>0&&s(e=>({...e,...n}))}).catch(()=>{})},[r.join(`,`)]);function g(e){return e.startsWith(`http`)?e:i[e]??null}function _(e){return o[e]??``}function y(e){if(n)return;let{active:i,over:a}=e;!a||i.id===a.id||t(ZD(r,r.indexOf(i.id),r.indexOf(a.id)))}async function b(e){if(e.length===0)return;l(!0),d(null);let n=r;try{for(let r of e){let e=await C$(r);a(t=>({...t,[e.id]:e.url})),s(t=>({...t,[e.id]:r.name})),n=[...n,e.id],t(n)}}catch(e){d(e instanceof Error?e.message:`Upload failed.`)}finally{l(!1),m.current&&(m.current.value=``)}}return(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(`input`,{ref:m,type:`file`,accept:`image/*`,multiple:!0,className:`hidden`,onChange:e=>{b(Array.from(e.target.files??[]))}}),r.length>0&&(0,U.jsx)(HD,{sensors:h,collisionDetection:QT,onDragEnd:y,children:(0,U.jsx)(cO,{items:r,strategy:nO,children:(0,U.jsx)(`div`,{className:`grid grid-cols-3 gap-2 sm:grid-cols-4`,children:r.map(e=>(0,U.jsx)(D$,{id:e,previewUrl:g(e),filename:_(e),onRemove:()=>t(r.filter(t=>t!==e)),disabled:n},e))})})}),(0,U.jsxs)(`div`,{className:`flex w-full gap-2 rounded-md border border-dashed p-3`,children:[(0,U.jsxs)(`button`,{type:`button`,disabled:c||n,onClick:()=>m.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,U.jsx)(Qo,{className:`size-4`}),c?`Uploading…`:`Upload`]}),(0,U.jsx)(`div`,{className:`w-px bg-border`}),(0,U.jsxs)(`button`,{type:`button`,disabled:c||n,onClick:()=>p(!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,U.jsx)(so,{className:`size-4`}),`Library`]})]}),u&&(0,U.jsx)(`p`,{className:`text-xs text-destructive`,children:u}),(0,U.jsx)(T$,{open:f,onOpenChange:p,allowedTypes:[`image`],onSelect:e=>{r.includes(e.id)||(a(t=>({...t,[e.id]:e.url})),s(t=>({...t,[e.id]:e.filename})),t([...r,e.id]))}})]})}function k$({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,U.jsx)(Hv,{type:`text`,inputMode:`decimal`,className:q(`w-full`,`text-base!`),value:r,placeholder:`0.00`,onChange:a,disabled:n})}function A$(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 j$({value:e,onChange:t,inputId:n,disabled:r=!1}){let i=A$(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,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(`div`,{className:`inline-flex items-center gap-1 rounded-md border border-border p-1`,children:[`string`,`number`,`boolean`].map(e=>(0,U.jsx)(`button`,{type:`button`,disabled:r,onClick:()=>a(e),className:q(`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,U.jsx)(Hv,{className:q(`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,U.jsx)(k$,{value:i.value,onChange:e=>t({kind:`number`,value:typeof e==`number`&&!isNaN(e)?e:0}),disabled:r}),i.kind===`boolean`&&(0,U.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,U.jsx)(EO,{id:n,checked:!!i.value,onCheckedChange:e=>t({kind:`boolean`,value:!!e}),disabled:r}),(0,U.jsx)(X,{htmlFor:n,className:`cursor-pointer font-normal text-base`,children:i.value?`True`:`False`})]})]})}function M$({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(Ty(e,n)))},[e,n]);function u(e){s(e),a(!1),e&&t(Ey(e,c,n))}function d(e){l(e),o&&t(Ey(o,e,n))}return(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsxs)(RN,{open:i&&!r,onOpenChange:a,children:[(0,U.jsx)(zN,{asChild:!0,children:(0,U.jsxs)(J,{variant:`outline`,className:`w-40 justify-between font-normal text-base`,disabled:r,children:[o?HA(o,`MMM d, yyyy`):`Select date`,(0,U.jsx)(Ba,{className:`size-4 opacity-50`})]})}),(0,U.jsx)(BN,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,U.jsx)(IN,{mode:`single`,selected:o,captionLayout:`dropdown`,defaultMonth:o??new Date,onSelect:u})})]}),(0,U.jsx)(Hv,{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,U.jsx)(J,{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,U.jsx)(ns,{className:`size-3.5`})})]})}function N$(e){return e.find(e=>e.type===`uid`)?.name??e.find(e=>e.type===`string`)?.name??null}var P$={data:null,promise:null};function F$(e){return P$.data?Promise.resolve(P$.data):(P$.promise||=fetch(`/cms/admin/content-types`,{headers:e}).then(e=>e.ok?e.json():[]).then(e=>(P$.data=e,e)).catch(()=>[]),P$.promise)}function I$(e,t){return e.find(e=>e.tableName===t)??null}function L$(e,t){return fetch(`/cms/admin/content-types/${e}/entries?limit=200`,{headers:t}).then(e=>e.ok?e.json():{data:[]}).catch(()=>({data:[]}))}function R$(e){let[t,n]=(0,v.useState)([]),[r,i]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{if(!e)return;i(!0);let t=localStorage.getItem(`plank_token`),r=t?{Authorization:`Bearer ${t}`}:{};F$(r).then(t=>{let n=I$(t,e);return n?L$(n.slug,r).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:t})=>{let r=e?N$(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 z$(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);let r=localStorage.getItem(`plank_token`),a=r?{Authorization:`Bearer ${r}`}:{};F$(a).then(t=>{let n=I$(t,e);return n?L$(n.slug,a).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:r})=>{let a=e?N$(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 B$({relatedTable:e,relatedField:t,currentId:n}){let{entries:r,loading:i}=z$(e,t,n);return n?i?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 py-1`,children:[(0,U.jsx)(by,{className:`size-3.5`}),(0,U.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Loading…`})]}):r.length===0?(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No linked entries.`}):(0,U.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:r.map(e=>(0,U.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,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Save this entry first to see linked items.`})}function V$({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),{entries:u,loading:d}=R$(t);if(e===`one-to-many`)return(0,U.jsx)(B$,{relatedTable:t,relatedField:n,currentId:r});let f=s?Array.isArray(i)?i:[]:i&&!Array.isArray(i)?[i]:[];function p(e){return u.find(t=>t.id===e)?.label??e}function m(e){if(s){let t=f.includes(e)?f.filter(t=>t!==e):[...f,e];a(t.length>0?t:null)}else a(f[0]===e?null:e),l(!1)}function h(e){if(s){let t=f.filter(t=>t!==e);a(t.length>0?t:null)}else a(null)}let g=s?f.length>0?`${f.length} selected`:`Select entries…`:f.length>0?p(f[0]):`Select entry…`;return(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsxs)(RN,{open:c&&!o,onOpenChange:l,children:[(0,U.jsx)(zN,{asChild:!0,children:(0,U.jsxs)(J,{variant:`outline`,role:`combobox`,"aria-expanded":c,className:`w-full justify-between font-normal text-base`,disabled:o,children:[(0,U.jsx)(`span`,{className:`truncate text-left`,children:g}),(0,U.jsx)(Wa,{className:`ml-2 size-4 shrink-0 opacity-50`})]})}),(0,U.jsx)(BN,{className:`w-(--radix-popover-trigger-width) p-0`,align:`start`,children:(0,U.jsxs)(u$,{children:[(0,U.jsx)(d$,{placeholder:`Search…`}),(0,U.jsx)(f$,{children:d?(0,U.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,U.jsx)(by,{className:`size-4`})}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(p$,{children:`No entries found.`}),(0,U.jsx)(m$,{children:u.map(e=>{let t=f.includes(e.id);return(0,U.jsxs)(g$,{value:e.label,onSelect:()=>{o||m(e.id)},children:[(0,U.jsx)(za,{className:`mr-2 size-4 ${t?`opacity-100`:`opacity-0`}`}),(0,U.jsx)(`span`,{className:`truncate`,children:e.label}),(0,U.jsx)(`span`,{className:`ml-auto text-xs text-muted-foreground opacity-60 shrink-0`,children:e.id.slice(0,8)})]},e.id)})})]})})]})})]}),f.length>0&&(0,U.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:f.map(e=>(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border bg-muted px-2 py-0.5 text-xs`,children:[p(e),(0,U.jsx)(`button`,{type:`button`,onClick:()=>h(e),disabled:o,className:`text-muted-foreground hover:text-foreground`,children:(0,U.jsx)(ns,{className:`size-3`})})]},e))})]})}var H$={full:`col-span-6`,"two-thirds":`col-span-4`,half:`col-span-3`,third:`col-span-2`};function U$({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,U.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,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(HN,{type:`single`,collapsible:!0,className:`w-full`,children:i.map((e,t)=>(0,U.jsxs)(UN,{value:`item-${t}`,className:`mb-2 rounded-md border border-dashed last:border-b transition-colors hover:bg-accent/50`,children:[(0,U.jsxs)(`div`,{className:`relative data-[state=open]:border-b data-[state=open]:border-border/50`,children:[(0,U.jsxs)(WN,{className:`w-full py-2 pl-3 pr-24 text-muted-foreground [&>svg]:hidden`,children:[`Item `,t+1]}),(0,U.jsxs)(`div`,{className:`absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5`,children:[(0,U.jsx)(J,{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,U.jsx)(Ua,{className:`size-3.5`})}),(0,U.jsx)(J,{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,U.jsx)(Ba,{className:`size-3.5`})}),(0,U.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,U.jsx)(qo,{className:`size-3.5`})})]})]}),(0,U.jsx)(GN,{className:`px-3 pt-3`,children:(0,U.jsx)(`div`,{className:`grid grid-cols-6 gap-3`,children:a.map(n=>(0,U.jsxs)(`div`,{className:H$[n.width??`full`]??`col-span-6`,children:[(0,U.jsx)(`div`,{className:`mb-1 flex items-center gap-1`,children:(0,U.jsxs)(X,{className:`text-xs font-medium`,children:[n.name,n.required&&(0,U.jsx)(`span`,{className:`ml-0.5 text-destructive`,children:`*`})]})}),(0,U.jsx)(Y$,{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,U.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,U.jsx)(Po,{className:`size-3.5`}),`Add item`]})]})}var W$=3,G$=20;function K$({value:e,onChange:t,disabled:n=!1,depth:r=0}){let i=Array.isArray(e)?e:[],a=r+1<W$,o=i.length<G$;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,U.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,U.jsx)(Po,{className:`size-3.5`}),`Add item`]}):(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(HN,{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,U.jsxs)(UN,{value:`navigation-item-${r}-${t}`,className:`mb-2 rounded-md border border-dashed last:border-b transition-colors hover:bg-accent/50`,children:[(0,U.jsxs)(`div`,{className:`relative data-[state=open]:border-b data-[state=open]:border-border/50`,children:[(0,U.jsx)(WN,{className:`w-full py-2 pl-3 pr-24 text-muted-foreground [&>svg]:hidden`,children:s}),(0,U.jsxs)(`div`,{className:`absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5`,children:[(0,U.jsx)(J,{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,U.jsx)(Ua,{className:`size-3.5`})}),(0,U.jsx)(J,{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,U.jsx)(Ba,{className:`size-3.5`})}),(0,U.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,U.jsx)(qo,{className:`size-3.5`})})]})]}),(0,U.jsxs)(GN,{className:`px-3 pt-3`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-6 gap-3`,children:[(0,U.jsxs)(`div`,{className:`col-span-3`,children:[(0,U.jsx)(X,{className:`mb-1 block text-xs font-medium`,children:`label`}),(0,U.jsx)(Hv,{className:`text-base`,value:e.label??``,onChange:e=>c(o,t=>({...t,label:e.target.value})),disabled:n})]}),(0,U.jsxs)(`div`,{className:`col-span-3`,children:[(0,U.jsx)(X,{className:`mb-1 block text-xs font-medium`,children:`href`}),(0,U.jsx)(Hv,{className:`text-base`,value:e.href??``,onChange:e=>c(o,t=>({...t,href:e.target.value})),disabled:n})]})]}),a?(0,U.jsxs)(`div`,{className:`mt-3 border-l border-border pl-3`,children:[(0,U.jsx)(`p`,{className:`mb-2 text-[11px] uppercase tracking-wide text-muted-foreground`,children:`Child items`}),(0,U.jsx)(K$,{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,U.jsxs)(`p`,{className:`mt-3 text-[11px] text-muted-foreground`,children:[`Maximum depth reached (`,W$,` levels).`]})]})]},t)})}),(0,U.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,U.jsx)(Po,{className:`size-3.5`}),`Add item`]}),!o&&(0,U.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[`Maximum `,G$,` items allowed per level.`]})]})}function q$(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/^-+|-+$/g,``)}function J$({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 pQ(e);m({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,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:n?`pointer-events-none opacity-70`:``,children:(0,U.jsx)(uQ,{value:String(e??``),onChange:t,placeholder:`Type or add your content here...`,onInsertImage:p})}),(0,U.jsx)(yw,{open:a,onOpenChange:h,children:(0,U.jsxs)(Cw,{className:`max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Insert Image`})}),(0,U.jsx)(`input`,{ref:r,type:`file`,accept:`image/*`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&g(t)}}),(0,U.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,U.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,U.jsx)(Qo,{className:`size-4`}),l?`Uploading…`:`Upload`]}),(0,U.jsx)(`div`,{className:`w-px bg-border`}),(0,U.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,U.jsx)(so,{className:`size-4`}),`Library`]})]}),d&&(0,U.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:d})]})}),(0,U.jsx)(T$,{open:s,onOpenChange:e=>{!e&&!a&&m(null),c(e)},allowedTypes:[`image`],onSelect:e=>{m({src:e.url,filename:e.filename,alt:e.alt,title:e.caption,width:e.width,height:e.height}),c(!1),o(!1)}})]})}function Y$({field:e,value:t,onChange:n,allValues:r,disabled:i,errorMessage:a}){let o=(0,v.useRef)(null),{timezone:s}=ya();(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=q$(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=q$(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=q$(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,U.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,U.jsx)(EO,{id:`field-${e.name}`,checked:!!t,onCheckedChange:e=>n(!!e),disabled:!!i}),(0,U.jsx)(X,{htmlFor:`field-${e.name}`,className:`cursor-pointer font-normal text-base`,children:t?`Yes`:`No`})]}):e.type===`richtext`?(0,U.jsx)(J$,{value:t,onChange:n,disabled:!!i}):e.type===`text`?(0,U.jsx)(VN,{className:q(c,`text-base`),value:String(t??``),placeholder:b$(e.name),onChange:e=>n(e.target.value),disabled:!!i}):e.type===`number`?e.subtype===`float`?(0,U.jsx)(k$,{value:t,onChange:n,disabled:!!i}):(0,U.jsx)(Hv,{type:`number`,className:q(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,U.jsx)(M$,{value:t,onChange:n,timezone:s,disabled:!!i}):e.type===`uid`?(0,U.jsxs)(`div`,{children:[(0,U.jsx)(Hv,{className:q(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,U.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:a})]}):e.type===`media`?(0,U.jsx)(E$,{value:t,onChange:n,allowedTypes:e.allowedTypes,disabled:!!i}):e.type===`media-gallery`?(0,U.jsx)(O$,{value:t,onChange:n,disabled:!!i}):e.type===`relation`?(0,U.jsx)(V$,{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,U.jsx)(U$,{field:e,value:t,onChange:n,disabled:!!i}):e.type===`mixed`?(0,U.jsx)(j$,{value:t,onChange:n,inputId:`field-${e.name}-mixed-boolean`,disabled:!!i}):e.type===`navigation`?(0,U.jsx)(K$,{value:t,onChange:n,disabled:!!i}):(0,U.jsx)(Hv,{className:q(c,`text-base md:text-base`),value:String(t??``),placeholder:b$(e.name),onChange:e=>n(e.target.value),disabled:!!i})}function X$(e){return Array.isArray(e)?e.map(X$):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,X$(t)])):e}function Z$(e){return JSON.stringify(X$(e))}function Q$(e){let t=e.match(/Field "([^"]+)" already exists\.?/);return t?t[1]??null:null}function $$(){let{slug:e,id:t}=hr(),n=dr(),r=!t,{timezone:i,locales:a,defaultLocale:o,editorialMode:s}=ya(),{user:c,status:l}=ga(),u=c?.role?.toLowerCase()??``,{data:d,loading:f}=wa(e?`/cms/admin/content-types/${e}`:null),{data:p,loading:m}=wa(e&&t?`/cms/admin/entries/${e}/${t}`:null),{data:h}=wa(s&&[`editor`,`admin`,`super admin`].includes(c?.role?.toLowerCase()??``)?`/cms/admin/users`:null),{loading:g,request:_}=Vv(),{loading:y,request:b}=Vv(),{loading:x,request:S}=Vv(),[C,w]=(0,v.useState)({}),[T,E]=(0,v.useState)([]),[D,O]=(0,v.useState)(``),[k,A]=(0,v.useState)(!1),[j,M]=(0,v.useState)(`draft`),[N,P]=(0,v.useState)(``),[F,I]=(0,v.useState)(!1),[L,R]=(0,v.useState)(!1),[ee,te]=(0,v.useState)(!1),[ne,z]=(0,v.useState)(null),[B,re]=(0,v.useState)(null),[V,H]=(0,v.useState)(null),[ie,ae]=(0,v.useState)(null),[oe,se]=(0,v.useState)(!1),[ce,le]=(0,v.useState)(null),[ue,de]=(0,v.useState)(!1),[fe,pe]=(0,v.useState)(!1),[me,he]=(0,v.useState)(),[ge,_e]=(0,v.useState)(`09:00`),ve=(0,v.useRef)(`{}`),ye=(0,v.useRef)(!1);(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`];E(t),O(o??t[0]),A(!1),w(e),M(`draft`),P(``),I(!1),te(!1),z(null),re(null),H(null),ae(null),se(!1),le(null),ve.current=Z$(e);return}if(!p||!d)return;let e={};d.fields.forEach(t=>{e[t.name]=p[t.name]??(t.type===`boolean`?!1:``)});let t=p.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)E(s),O(s[0]);else{let e=a&&a.length>0?a:[`en`];E(e),O(o??e[0])}if(A(!!c),w(e),M(p.status??`draft`),te(!!p.review_rejected),z(p.editor_id??null),re(p._editor_first_name??null),H(p._editor_last_name??null),ae(p._editor_avatar_url??null),se(!1),le(null),ve.current=Z$(e),p.scheduled_for?(P(p.scheduled_for),he(new Date(p.scheduled_for)),_e(Ty(p.scheduled_for,i))):P(``),p.status===`published`&&p.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 p.published_data&&(n[i.name]=t(p.published_data[i.name]??(i.type===`boolean`?!1:``),i.type),r[i.name]=t(e[i.name],i.type))}),I(Z$(r)!==Z$(n))}else I(!1)},[p,d,r]);let be=Z$(C)!==ve.current,xe=Fr((0,v.useCallback)(()=>ye.current?!1:be,[be]));function Se(e,t){w(n=>({...n,[e]:t}))}function Ce(e,t,n){w(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 we(e){A(e),w(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 Te(){if(N)he(new Date(N)),_e(Ty(N,i));else{let e=new Date;e.setDate(e.getDate()+1),he(e),_e(`09:00`)}de(!0)}async function Ee(){if(!e||!d)return null;le(null);let n={},i=k&&C.localized&&typeof C.localized==`object`&&C.localized[o]&&typeof C.localized[o]==`object`?C.localized[o]:null;if(d.fields.forEach(e=>{let t=C[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)}),C.localized&&Object.keys(C.localized).length>0){let e=C.localized;e._meta||={},e._meta.enabled=k,e._meta.primary=o,n.localized=e}try{let i=await _(r?`/cms/admin/content-types/${e}/entries`:`/cms/admin/entries/${e}/${t}`,r?`POST`:`PUT`,n);return ve.current=Z$(C),i}catch(e){let t=Q$(e instanceof Error?e.message:``);return t&&d.fields.some(e=>e.type===`uid`&&e.name===t)&&le(t),null}}async function De(){let i=await Ee();if(i){if(j===`scheduled`){let n=r?i.id:t;try{await b(`/cms/admin/entries/${e}/${n}/status`,`PATCH`,{status:`draft`}),M(`draft`),P(``),de(!1)}catch{}}else j===`published`&&I(!0);r&&(ye.current=!0,n(`/content/${e}/${i.id}`,{replace:!0}))}}async function Oe(){if(!e)return;let i=t;if(be||r){let e=await Ee();if(!e)return;i=r?e.id:t,r&&(ye.current=!0)}let a=s&&(u===`contributor`||u===``||l!==`authenticated`);try{let t=await b(`/cms/admin/entries/${e}/${i}/status`,`PATCH`,{status:a?`pending`:`published`,review_rejected:!1});M(t?.status??(a?`pending`:`published`)),te(!!t?.review_rejected),z(t?.editor_id??ne),re(t?._editor_first_name??B),H(t?._editor_last_name??V),ae(t?._editor_avatar_url??ie),P(``),I(!1),de(!1),se(!1),r&&n(`/content/${e}/${i}`,{replace:!0})}catch{r&&i&&n(`/content/${e}/${i}`,{replace:!0})}}async function ke(){if(!e||!me||!ge)return;let a=Ey(me,ge,i);if(new Date(a)<=new Date)return;let o=t;if(be||r){let e=await Ee();if(!e)return;o=r?e.id:t,r&&(ye.current=!0)}try{await b(`/cms/admin/entries/${e}/${o}/status`,`PATCH`,{status:`scheduled`,scheduled_for:a}),M(`scheduled`),P(a),de(!1),r&&n(`/content/${e}/${o}`,{replace:!0})}catch{r&&o&&n(`/content/${e}/${o}`,{replace:!0})}}async function Ae(){if(!(!e||!t))try{await b(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`draft`}),M(`draft`),P(``),I(!1)}catch{}}async function je(){if(!(!e||!t))try{await S(`/cms/admin/entries/${e}/${t}`,`DELETE`),ye.current=!0,n(`/content/${e}`,{replace:!0})}catch{}}async function Me(n){if(!e||!t)return;let r=n===`none`?null:n,i=await b(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`in_review`,editor_id:r,review_locked_by_editor:p?.review_locked_by_editor??!1});M(i?.status??`in_review`),te(!!i?.review_rejected),z(i?.editor_id??r),re(i?._editor_first_name??null),H(i?._editor_last_name??null),ae(i?._editor_avatar_url??null),se(!1)}async function Ne(){se(e=>!e)}async function Pe(){if(!e||!t)return;let n=await b(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`pending`,review_rejected:!0});M(n?.status??`pending`),te(!!n?.review_rejected),se(!1)}let Fe=f||!r&&m,Ie=g||y,Le=c?.permissions??[],Re=Le.includes(`*`)||Le.includes(`entries:write`),ze=Le.includes(`*`)||Le.includes(`entries:delete`),Be=u===`contributor`,Ve=u===`editor`,He=[`admin`,`super admin`].includes(u),Ue=u===`viewer`,We=Be||Ve,Ge=Be&&d?.kind===`single`,Ke=r||String(p?.created_by??``)===String(c?.id??``),qe=s&&Be&&j===`in_review`,Je=s&&(Ve||He)&&!!ne&&ne===c?.id,Ye=Je&&(j===`pending`||j===`in_review`)&&!ee,Xe=Ue||!Re||Ge||Be&&!Ke||s&&Be&&j===`pending`&&!ee||qe||s&&(Ve||He)&&(j===`pending`||j===`in_review`)&&(!Je||!oe),Ze=ze&&(!We||Ke),Qe=s&&Be&&j===`pending`&&(ee?!0:be)||be||j===`draft`||j===`scheduled`||!s&&j===`pending`||s&&j===`pending`&&!Be||s&&j===`in_review`&&!Be||F,$e=!!(me&&ge),et=s&&Be?`Review`:`Publish`;if(yO(`mod+s`,De,{enabled:!Xe&&!Ie&&(j===`scheduled`?!0:be),label:`Save draft`}),yO(`mod+shift+p`,Oe,{enabled:Qe&&!Ie&&!Xe,label:`Publish`}),Fe)return(0,U.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,U.jsx)(by,{className:`size-4`}),(0,U.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]});if(!d)return null;let tt;tt=j===`scheduled`?(0,U.jsxs)(vw,{variant:`outline`,className:`border-blue-500 text-blue-600`,children:[(0,U.jsx)(Ia,{className:`size-3 mr-1`}),N?`Scheduled · ${wy(N,i)}`:`Scheduled`]}):j===`pending`?ee?(0,U.jsx)(vw,{variant:`destructive`,children:`Pending`}):(0,U.jsx)(vw,{className:`bg-amber-500 text-black hover:bg-amber-500`,children:`Pending`}):j===`in_review`?(0,U.jsx)(vw,{variant:`outline`,children:`In Review`}):j===`published`?(0,U.jsx)(vw,{variant:F?`secondary`:`default`,children:F?`Published (pending changes)`:`Published`}):(0,U.jsx)(vw,{variant:`secondary`,children:`Draft`});let nt=(h??[]).filter(e=>Ve?e.id===c?.id:He?e.id===c?.id||(e.role_name??``).toLowerCase()===`editor`:!1),rt=!r&&s&&(Ve||He)&&(j===`pending`||j===`in_review`),it=s&&!r&&rt,at=s&&!r&&!!ne,ot=Ye,st=Ye,ct=B||V;return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(yy,{children:(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:r?`New entry`:`Edit entry`}),tt]}),(0,U.jsx)(`p`,{className:`text-muted-foreground text-xs mt-1`,children:d.name})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!r&&Ze&&!Ge&&(0,U.jsx)(J,{variant:`ghost`,size:`icon`,className:`text-muted-foreground hover:text-destructive`,onClick:()=>R(!0),disabled:x,children:(0,U.jsx)(qo,{className:`size-4`})}),!r&&j===`published`&&!Xe&&(0,U.jsxs)(J,{variant:`outline`,onClick:Ae,disabled:Ie,children:[y?(0,U.jsx)(by,{className:`size-4`}):null,`Revert to draft`]}),!r&&j===`scheduled`&&!Xe&&(0,U.jsxs)(J,{variant:`outline`,onClick:Ae,disabled:Ie,children:[y?(0,U.jsx)(by,{className:`size-4`}):null,`Cancel schedule`]}),it&&(0,U.jsxs)(Ow,{value:ne??`none`,onValueChange:Me,disabled:!rt||Ie,children:[(0,U.jsx)(jw,{className:`h-10 min-h-10 max-h-10 w-42 py-0`,children:(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(El,{avatarUrl:ie??null,firstName:B??null,lastName:V??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,U.jsx)(Aw,{placeholder:ct||`Assign editor`})]})}),(0,U.jsxs)(Pw,{children:[!Ve&&(0,U.jsx)(Iw,{value:`none`,children:`Unassign`}),nt.map(e=>(0,U.jsx)(Iw,{value:e.id,children:e.first_name||e.last_name||e.id},e.id))]})]}),!rt&&at&&(0,U.jsxs)(`div`,{className:`inline-flex h-10 items-center gap-2 rounded-md border border-input px-3 text-sm`,children:[(0,U.jsx)(El,{avatarUrl:ie??null,firstName:B??null,lastName:V??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,U.jsx)(`span`,{children:ct||`Assigned editor`})]}),ot&&(0,U.jsx)(J,{variant:`outline`,size:`icon`,onClick:Ne,disabled:Ie,children:(0,U.jsx)(No,{className:`size-4`})}),st&&(0,U.jsx)(J,{variant:`outline`,size:`icon`,onClick:Pe,disabled:Ie,children:(0,U.jsx)(ns,{className:`size-4`})}),(0,U.jsxs)(J,{variant:`outline`,onClick:De,size:s?`icon`:`default`,disabled:Xe||(j===`scheduled`?Ie:!be||Ie),children:[g?(0,U.jsx)(by,{className:`size-4`}):s?(0,U.jsx)(Lo,{className:`size-4`}):null,!s&&(j===`scheduled`?`Save draft (cancel schedule)`:`Save draft`)]}),j!==`scheduled`&&!(s&&Be)&&(0,U.jsxs)(J,{variant:`outline`,onClick:Te,size:s?`icon`:`default`,disabled:Xe||Ie,children:[(0,U.jsx)(Ia,{className:`size-4`}),!s&&`Schedule`]}),(0,U.jsxs)(J,{onClick:Oe,disabled:Xe||!Qe||Ie,children:[y?(0,U.jsx)(by,{className:`size-4`}):null,j===`scheduled`?s&&Be?`Review`:`Publish now`:j===`published`&&!F?`Republish`:et]})]})]})}),(0,U.jsxs)(`section`,{className:`mt-24`,children:[ue&&!Xe&&(0,U.jsxs)(`div`,{className:`mb-6 flex items-end gap-2 rounded-lg border p-4 bg-muted/30`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{children:`Date`}),(0,U.jsxs)(RN,{open:fe,onOpenChange:pe,children:[(0,U.jsx)(zN,{asChild:!0,children:(0,U.jsxs)(J,{variant:`outline`,className:`w-40 justify-between font-normal`,children:[me?HA(me,`MMM d, yyyy`):`Select date`,(0,U.jsx)(Ba,{className:`size-4 opacity-50`})]})}),(0,U.jsx)(BN,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,U.jsx)(IN,{mode:`single`,selected:me,captionLayout:`dropdown`,defaultMonth:me??new Date,disabled:{before:new Date},onSelect:e=>{he(e),pe(!1)}})})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsxs)(X,{children:[`Time `,(0,U.jsx)(`span`,{className:`text-muted-foreground font-normal`,children:`(24h)`})]}),(0,U.jsx)(Hv,{type:`time`,className:`w-32 appearance-none bg-background [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`,value:ge,onChange:e=>_e(e.target.value)})]}),(0,U.jsxs)(J,{onClick:ke,disabled:!$e||Ie,children:[y?(0,U.jsx)(by,{className:`size-4`}):null,`Confirm`]}),(0,U.jsx)(J,{variant:`ghost`,onClick:()=>de(!1),children:`Cancel`})]}),(0,U.jsxs)(`div`,{className:`mb-4 flex items-center justify-between`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(rj,{checked:k,onCheckedChange:we,disabled:Xe}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`text-sm font-medium`,children:`Localization`}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Enable per-entry localization`})]})]}),(0,U.jsx)(`div`,{})]}),(0,U.jsx)(`div`,{children:k&&(0,U.jsx)($A,{value:D,onValueChange:e=>O(e),children:(0,U.jsx)(ej,{children:T.map(e=>(0,U.jsx)(tj,{value:e,disabled:Xe,children:e.toUpperCase()},e))})})})]}),(0,U.jsx)(`div`,{className:`grid grid-cols-6 gap-4`,children:d.fields.map(e=>{let n=[`string`,`text`,`richtext`].includes(e.type),r=C.localized&&C.localized[D]?C.localized[D][e.name]:void 0,i=n&&k?r:C[e.name],a=e.type===`uid`&&e.targetField&&k&&[`string`,`text`,`richtext`].includes(d.fields.find(t=>t.name===e.targetField)?.type??``);return(0,U.jsx)(`div`,{className:xO[e.width??`full`],children:(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsxs)(X,{htmlFor:`entry-${e.name}`,className:`capitalize`,children:[e.name.replace(/_/g,` `),e.required&&(0,U.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`})]}),(0,U.jsx)(Y$,{field:e,value:i,onChange:t=>{e.type===`uid`&&ce===e.name&&le(null),n&&k?Ce(D,e.name,t):Se(e.name,t)},allValues:{...C,id:t,__activeLocale:D,__localizationEnabled:k,__defaultLocale:o},disabled:!!a||Xe,errorMessage:e.type===`uid`&&ce===e.name?`${e.name} already exists.`:void 0})]})},e.name)})}),(0,U.jsx)(yw,{open:L,onOpenChange:R,children:(0,U.jsxs)(Cw,{className:`max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Delete this entry?`})}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone.`}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>R(!1),children:`Cancel`}),(0,U.jsxs)(J,{variant:`destructive`,onClick:je,disabled:x,children:[x?(0,U.jsx)(by,{className:`size-4`}):null,`Delete`]})]})]})}),(0,U.jsx)(yw,{open:xe.state===`blocked`,onOpenChange:()=>xe.reset?.(),children:(0,U.jsxs)(Cw,{className:`max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Unsaved changes`})}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Leave without saving?`}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>xe.reset?.(),children:`Stay`}),(0,U.jsx)(J,{variant:`destructive`,onClick:()=>xe.proceed?.(),children:`Leave`})]})]})})]})]})}function e1({...e}){return(0,U.jsx)(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,...e})}function t1({className:e,...t}){return(0,U.jsx)(`ol`,{"data-slot":`breadcrumb-list`,className:q(`flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5`,e),...t})}function n1({className:e,...t}){return(0,U.jsx)(`li`,{"data-slot":`breadcrumb-item`,className:q(`inline-flex items-center gap-1.5`,e),...t})}function r1({asChild:e,className:t,...n}){return(0,U.jsx)(e?Fl:`a`,{"data-slot":`breadcrumb-link`,className:q(`transition-colors hover:text-foreground`,t),...n})}function i1({className:e,...t}){return(0,U.jsx)(`span`,{"data-slot":`breadcrumb-page`,role:`link`,"aria-disabled":`true`,"aria-current":`page`,className:q(`font-normal text-foreground`,e),...t})}function a1({children:e,className:t,...n}){return(0,U.jsx)(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:q(`[&>svg]:size-3.5`,t),...n,children:e??(0,U.jsx)(Ha,{})})}function o1(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:`—`}function s1(e){let t=e.split(`/`).pop()??e;return t.replace(/\.[^.]+$/,``).trim()||t.trim()}function c1(e){return!!e?.startsWith(`image/`)}function l1(e){return!!e?.startsWith(`video/`)}function u1(e){return!!e?.startsWith(`audio/`)}function d1(e){return e===`application/pdf`}function f1(e,t){return e.split(`?`)[0].endsWith(`.m3u8`)||t===`application/x-mpegurl`||t===`application/vnd.apple.mpegurl`}async function p1(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(p1));n.push(...i.flat()),r()})};r()}),n}return[]}function m1({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,U.jsx)(`video`,{ref:t,controls:!0,className:`max-h-[70vh] w-full rounded-md bg-black`})}function h1({item:e}){let t=e.mime_type?.toLowerCase()??null;return c1(t)?(0,U.jsx)(`img`,{src:e.url,alt:e.alt??e.filename,className:`max-h-full max-w-full rounded-md object-contain`}):f1(e.url,t)?(0,U.jsx)(m1,{url:e.url}):l1(t)?(0,U.jsx)(`video`,{src:e.url,controls:!0,preload:`none`,className:`max-h-[70vh] w-full rounded-md bg-black`}):u1(t)?(0,U.jsxs)(`div`,{className:`flex flex-col items-center gap-4 py-6`,children:[(0,U.jsx)(no,{className:`size-14 text-muted-foreground`}),(0,U.jsx)(`audio`,{src:e.url,controls:!0,className:`w-full`})]}):d1(t)?(0,U.jsx)(`iframe`,{src:e.url,title:e.filename,className:`h-[70vh] w-full rounded-md border`}):(0,U.jsxs)(`div`,{className:`flex flex-col items-center gap-4 py-8 text-center`,children:[(0,U.jsx)(io,{className:`size-14 text-muted-foreground`}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.mime_type??`Unknown type`}),(0,U.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,download:e.filename,children:(0,U.jsxs)(J,{variant:`outline`,size:`sm`,children:[(0,U.jsx)(Qa,{className:`size-4`}),`Download`]})})]})}function g1({folder:e,onOpen:t,onDelete:n,onRename:r,canDelete:i,canRename:a,selected:o,onToggle:s}){return(0,U.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`:``}`,onClick:()=>{o||t(e)},children:[(0,U.jsxs)(`div`,{className:`relative shrink-0 size-7 flex items-center justify-center`,children:[(0,U.jsx)(lo,{className:`size-7 text-muted-foreground transition-opacity ${o?`opacity-0`:`group-hover:opacity-0`}`}),(0,U.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center transition-opacity ${o?`opacity-100`:`opacity-0 group-hover:opacity-100`}`,onClick:e=>e.stopPropagation(),children:(0,U.jsx)(EO,{checked:o,onCheckedChange:()=>s(`folder:${e.id}`),"aria-label":`Select folder`})})]}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`p`,{className:`text-sm font-bold truncate`,title:e.name,children:e.name}),(0,U.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[e.item_count,` `,e.item_count===1?`item`:`items`]})]}),!o&&(a||i)&&(0,U.jsxs)(P_,{children:[(0,U.jsx)(F_,{asChild:!0,children:(0,U.jsx)(`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,U.jsx)($a,{className:`size-4`})})}),(0,U.jsxs)(R_,{align:`end`,onClick:e=>e.stopPropagation(),children:[a&&(0,U.jsxs)(z_,{onSelect:()=>r(e),children:[(0,U.jsx)(No,{className:`size-4`}),`Rename`]}),i&&(0,U.jsxs)(z_,{onSelect:()=>n(e),className:`text-destructive focus:text-destructive`,children:[(0,U.jsx)(qo,{className:`size-4`}),`Delete`]})]})]})]})}function _1({item:e,onDelete:t,onPreview:n,canDelete:r,selected:i,onToggle:a}){let o=e.mime_type?.toLowerCase()??null;return(0,U.jsxs)(`div`,{className:`group relative rounded-lg border bg-card overflow-hidden transition-colors ${i?`ring-2 ring-primary`:``}`,children:[(0,U.jsx)(`div`,{className:`aspect-square bg-muted flex items-center justify-center cursor-pointer`,onClick:()=>{i||n(e)},children:c1(o)?(0,U.jsx)(`img`,{src:e.url,alt:e.alt??e.filename,className:`h-full w-full object-cover`}):l1(o)||f1(e.url,o)?(0,U.jsx)(ro,{className:`size-10 text-muted-foreground`}):u1(o)?(0,U.jsx)(no,{className:`size-10 text-muted-foreground`}):d1(o)?(0,U.jsx)(io,{className:`size-10 text-muted-foreground`}):(0,U.jsx)(ao,{className:`size-10 text-muted-foreground`})}),(0,U.jsx)(`div`,{className:`absolute top-1.5 left-1.5 transition-opacity ${i?`opacity-100`:`opacity-0 group-hover:opacity-100`}`,children:(0,U.jsx)(EO,{checked:i,onCheckedChange:()=>a(e.id),"aria-label":`Select file`,className:`bg-background/80 backdrop-blur-sm`})}),!i&&r&&(0,U.jsx)(`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,U.jsx)(qo,{className:`size-3.5`})}),(0,U.jsxs)(`div`,{className:`p-2`,children:[(0,U.jsx)(`p`,{className:`text-xs font-medium truncate`,title:e.filename,children:e.filename}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o1(e.size)})]})]})}function v1(){let e=(0,v.useRef)(null),{user:t}=ga(),n=t?.permissions??[],r=n.includes(`*`)||n.includes(`media:write`),i=n.includes(`*`)||n.includes(`media:delete`),[a,o]=(0,v.useState)([{id:null,name:`Media`}]),s=a[a.length-1].id,[c,l]=(0,v.useState)(1),[u,d]=(0,v.useState)(``),[f,p]=(0,v.useState)(``);(0,v.useEffect)(()=>{let e=setTimeout(()=>{p(u),l(1)},300);return()=>clearTimeout(e)},[u]),(0,v.useEffect)(()=>{l(1),d(``),p(``)},[s]);let{data:m,loading:h,refetch:g}=wa(`/cms/admin/folders?parent_id=${s??``}`),{data:_,loading:y,refetch:b}=wa(`/cms/admin/media?folder_id=${s??``}&page=${c}&limit=48${f?`&search=${encodeURIComponent(f)}`:``}`),x=(0,v.useCallback)(()=>{g(),b()},[g,b]),[S,C]=(0,v.useState)(!1),[w,T]=(0,v.useState)(null),[E,D]=(0,v.useState)(new Set),[O,k]=(0,v.useState)(null),[A,j]=(0,v.useState)(``),[M,N]=(0,v.useState)(``),[P,F]=(0,v.useState)(``),[I,L]=(0,v.useState)(!1),[R,ee]=(0,v.useState)(null),[te,ne]=(0,v.useState)(null),[z,B]=(0,v.useState)(null),[re,V]=(0,v.useState)(null),[H,ie]=(0,v.useState)(``),[ae,oe]=(0,v.useState)(!1),[se,ce]=(0,v.useState)(``),[le,ue]=(0,v.useState)(!1),[de,fe]=(0,v.useState)(!1),{loading:pe,error:me,request:he}=Vv(),{loading:ge,error:_e,request:ve}=Vv();async function ye(e){if(e.some(({relativePath:e})=>e.endsWith(`.m3u8`))){let t=localStorage.getItem(`plank_token`),n=t?{Authorization:`Bearer ${t}`}:{},r=new FormData;for(let{file:t,relativePath:n}of e)r.append(`files`,t,n);s&&r.append(`folder_id`,s),r.append(`bundle`,`true`);let i=await fetch(`/cms/admin/media`,{method:`POST`,headers:n,body:r});if(!i.ok){let e=await i.text(),t=`Upload failed.`;try{t=JSON.parse(e).error??t}catch{}throw Error(t)}}else await Promise.all(e.map(({file:e})=>pQ(e,{folderId:s})))}async function be(t){if(r&&!(!t||t.length===0)){C(!0),T(null);try{await ye(Array.from(t).map(e=>({file:e,relativePath:e.webkitRelativePath||e.name}))),x()}catch(e){T(e instanceof Error?e.message:`Upload failed.`)}finally{C(!1),e.current&&(e.current.value=``)}}}async function xe(e){if(!r)return;e.preventDefault();let t=Array.from(e.dataTransfer.items);if(!t.some(e=>typeof e.webkitGetAsEntry==`function`)){be(e.dataTransfer.files);return}C(!0),T(null);try{let e=t.map(e=>e.webkitGetAsEntry()).filter(e=>e!==null);await ye((await Promise.all(e.map(p1))).flat()),x()}catch(e){T(e instanceof Error?e.message:`Upload failed.`)}finally{C(!1)}}function Se(e){o(t=>[...t,{id:e.id,name:e.name}]),D(new Set)}function Ce(e){o(t=>t.slice(0,e+1)),D(new Set)}async function we(){if(r&&se.trim())try{await ve(`/cms/admin/folders`,`POST`,{name:se.trim(),parent_id:s}),oe(!1),ce(``),g()}catch{}}async function Te(){if(r&&!(!re||!H.trim()))try{await ve(`/cms/admin/folders/${re.id}`,`PATCH`,{name:H.trim()}),V(null),g()}catch{}}async function Ee(){if(i&&z)try{await he(`/cms/admin/folders/${z.id}`,`DELETE`),B(null),g()}catch{}}async function De(){if(i&&te)try{await he(`/cms/admin/media/${te.id}`,`DELETE`),ne(null),b()}catch{}}function Oe(e){D(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function ke(e){k(e),j(e.filename),N(e.alt??s1(e.filename)),F(e.caption??``),ee(null)}function Ae(e){j(e);let t=s1(A),n=s1(e);(!M.trim()||M===t)&&N(n)}let je=m?.folders??[],Me=_?.items??[],Ne=[...je.map(e=>`folder:${e.id}`),...Me.map(e=>e.id)];!(Ne.length>0&&Ne.every(e=>E.has(e)))&&Ne.some(e=>E.has(e));async function Pe(){if(!i||de)return;fe(!0);let e=localStorage.getItem(`plank_token`),t=e?{Authorization:`Bearer ${e}`}:{};try{await Promise.all([...[...E].filter(e=>e.startsWith(`folder:`)).map(e=>fetch(`/cms/admin/folders/${e.slice(7)}`,{method:`DELETE`,headers:t})),...[...E].filter(e=>!e.startsWith(`folder:`)).map(e=>fetch(`/cms/admin/media/${e}`,{method:`DELETE`,headers:t}))]),ue(!1),D(new Set),x()}finally{fe(!1)}}let Fe=h||y,Ie=je.length===0&&Me.length===0;return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(yy,{children:(0,U.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Media Library`}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsxs)(J,{variant:`outline`,onClick:()=>{ce(``),oe(!0)},disabled:!r,children:[(0,U.jsx)(co,{className:`size-4`}),`New folder`]}),(0,U.jsxs)(J,{onClick:()=>e.current?.click(),disabled:S||!r,children:[S?(0,U.jsx)(by,{className:`size-4`}):(0,U.jsx)(Qo,{className:`size-4`}),S?`Uploading…`:`Upload`]})]})]})}),(0,U.jsxs)(`section`,{className:`mt-24`,children:[a.length>1&&(0,U.jsx)(e1,{className:`mb-4`,children:(0,U.jsx)(t1,{children:a.map((e,t)=>(0,U.jsxs)(v.Fragment,{children:[t>0&&(0,U.jsx)(a1,{}),(0,U.jsx)(n1,{children:t===a.length-1?(0,U.jsx)(i1,{children:t===0?(0,U.jsx)(go,{className:`size-3.5`}):e.name}):(0,U.jsx)(r1,{asChild:!0,children:(0,U.jsx)(`button`,{onClick:()=>Ce(t),children:t===0?(0,U.jsx)(go,{className:`size-3.5`}):e.name})})})]},t))})}),(0,U.jsxs)(`div`,{className:`mb-4 flex items-center gap-2 rounded-lg border border-border bg-muted/50 p-2`,children:[(0,U.jsxs)(`div`,{className:`relative max-w-72 w-full`,children:[(0,U.jsx)(Ro,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,U.jsx)(Hv,{className:`pl-9 h-8 bg-background`,placeholder:`Search media…`,value:u,onChange:e=>d(e.target.value)})]}),!y&&_!=null&&(0,U.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[Me.length,` / `,_.total,` `,_.total===1?`file`:`files`]}),(0,U.jsx)(`div`,{className:`ml-auto flex h-8 items-center gap-2`,children:E.size>0?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`span`,{className:`text-sm font-medium`,children:[E.size,` selected`]}),(0,U.jsx)(J,{variant:`outline`,size:`sm`,onClick:()=>D(new Set),children:`Clear`}),i&&(0,U.jsxs)(J,{variant:`destructive`,size:`sm`,disabled:de,onClick:()=>ue(!0),children:[(0,U.jsx)(qo,{className:`size-3.5`}),`Delete`]})]}):!Ie&&!Fe?(0,U.jsxs)(`button`,{className:`flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors`,onClick:()=>D(new Set(Ne)),children:[(0,U.jsx)(EO,{checked:!1,"aria-hidden":!0,className:`pointer-events-none`}),`Select all`]}):null})]}),(0,U.jsx)(`input`,{ref:e,type:`file`,multiple:!0,className:`hidden`,onChange:e=>be(e.target.files)}),w&&(0,U.jsx)(`p`,{className:`mb-4 text-sm text-destructive`,children:w}),Fe?(0,U.jsx)(`div`,{className:`flex items-center gap-2 py-16 justify-center text-muted-foreground`,children:(0,U.jsx)(by,{className:`size-5`})}):Ie?(0,U.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:()=>r&&e.current?.click(),onDragOver:e=>e.preventDefault(),onDrop:xe,children:[(0,U.jsx)(Qo,{className:`size-8 text-muted-foreground mb-3`}),(0,U.jsx)(`p`,{className:`text-sm font-medium`,children:`Drop files or folders here, or click to upload`}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:`Images, videos, audio, documents and more`})]}):(0,U.jsxs)(`div`,{className:`flex flex-col gap-6`,onDragOver:e=>e.preventDefault(),onDrop:xe,children:[je.length>0&&(0,U.jsx)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4`,children:je.map(e=>(0,U.jsx)(g1,{folder:e,onOpen:Se,onDelete:B,onRename:e=>{V(e),ie(e.name)},canDelete:i,canRename:r,selected:E.has(`folder:${e.id}`),onToggle:Oe},e.id))}),Me.length>0&&(0,U.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6`,children:Me.map(e=>(0,U.jsx)(_1,{item:e,onDelete:ne,onPreview:ke,canDelete:i,selected:E.has(e.id),onToggle:Oe},e.id))})]}),(_?.pages??0)>1&&(0,U.jsx)(`div`,{className:`mt-4`,children:(0,U.jsx)(JO,{className:`mx-0 w-auto justify-end`,children:(0,U.jsxs)(YO,{children:[(0,U.jsx)(XO,{children:(0,U.jsx)(QO,{href:`#`,onClick:e=>{e.preventDefault(),c>1&&l(c-1)},"aria-disabled":c===1,className:c===1?`pointer-events-none opacity-50`:``})}),(0,U.jsx)(XO,{children:(0,U.jsx)($O,{href:`#`,onClick:e=>{e.preventDefault(),c<(_?.pages??1)&&l(c+1)},"aria-disabled":c===(_?.pages??1),className:c===(_?.pages??1)?`pointer-events-none opacity-50`:``})})]})})}),(0,U.jsx)(yw,{open:!!O,onOpenChange:e=>{e||(k(null),ee(null),F(``))},children:(0,U.jsxs)(Cw,{className:`sm:max-w-5xl max-h-[85vh] overflow-hidden p-0`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{className:`truncate px-6 pt-6 pr-12`,title:O?.filename,children:O?.filename})}),O&&(0,U.jsxs)(`form`,{className:`grid max-h-[calc(85vh-4rem)] min-h-0 gap-0 lg:grid-cols-[minmax(0,1fr)_320px]`,onSubmit:async e=>{e.preventDefault(),L(!0),ee(null);let t=localStorage.getItem(`plank_token`);try{let e=await fetch(`/cms/admin/media/${O.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`,...t?{Authorization:`Bearer ${t}`}:{}},body:JSON.stringify({filename:A||O.filename,alt:M.trim()||null,caption:P.trim()||null})});if(!e.ok)throw Error(`Save failed.`);ke(await e.json()),b()}catch(e){ee(e instanceof Error?e.message:`Save failed.`)}finally{L(!1)}},children:[(0,U.jsx)(`div`,{className:`flex min-h-0 items-center justify-center overflow-hidden bg-muted/30 px-6 py-4`,children:(0,U.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,U.jsx)(h1,{item:O})})}),(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-col border-t lg:border-l lg:border-t-0`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 border-b px-6 py-4 text-xs text-muted-foreground`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Type`}),(0,U.jsx)(`p`,{className:`break-all`,children:O.mime_type??`—`})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Size`}),(0,U.jsx)(`p`,{children:o1(O.size??null)})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Dimensions`}),(0,U.jsx)(`p`,{children:O.width&&O.height?`${O.width} × ${O.height}`:`—`})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Created`}),(0,U.jsx)(`p`,{children:new Date(O.created_at).toLocaleString()})]})]}),(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 py-4`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{className:`text-xs`,children:`Filename`}),(0,U.jsx)(Hv,{value:A,onChange:e=>Ae(e.target.value),placeholder:O.filename,className:`text-sm`,disabled:!r})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{className:`text-xs`,children:`Alt text`}),(0,U.jsx)(Hv,{value:M,onChange:e=>N(e.target.value),placeholder:s1(A||O.filename),className:`text-sm`,disabled:!r}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Defaulted from the filename without extension. You can override it.`})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{className:`text-xs`,children:`Subtitle`}),(0,U.jsx)(VN,{value:P,onChange:e=>F(e.target.value),placeholder:`Used as figcaption in the frontend…`,className:`min-h-28 resize-none text-sm`,disabled:!r})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-3 pt-2`,children:[(0,U.jsx)(`a`,{href:O.url,target:`_blank`,rel:`noreferrer`,download:O.filename,children:(0,U.jsxs)(J,{variant:`outline`,size:`sm`,type:`button`,children:[(0,U.jsx)(Qa,{className:`size-3.5`}),`Download`]})}),(0,U.jsx)(J,{type:`submit`,size:`sm`,disabled:I||!r,children:I?`Saving…`:`Save`})]}),R&&(0,U.jsx)(`p`,{className:`text-xs text-destructive`,children:R})]})]})]})]})}),(0,U.jsx)(yw,{open:ae,onOpenChange:e=>{e||oe(!1)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`New folder`})}),(0,U.jsx)(Hv,{placeholder:`Folder name`,value:se,onChange:e=>ce(e.target.value),onKeyDown:e=>{e.key===`Enter`&&we()},autoFocus:!0}),_e&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:_e}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>oe(!1),children:`Cancel`}),(0,U.jsx)(J,{onClick:we,disabled:ge||!se.trim()||!r,children:ge?`Creating…`:`Create`})]})]})}),(0,U.jsx)(yw,{open:!!re,onOpenChange:e=>{e||V(null)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Rename folder`})}),(0,U.jsx)(Hv,{value:H,onChange:e=>ie(e.target.value),onKeyDown:e=>{e.key===`Enter`&&Te()},autoFocus:!0}),_e&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:_e}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>V(null),children:`Cancel`}),(0,U.jsx)(J,{onClick:Te,disabled:ge||!H.trim()||!r,children:ge?`Saving…`:`Save`})]})]})}),(0,U.jsx)(yw,{open:!!te,onOpenChange:e=>{e||ne(null)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Delete file`})}),(0,U.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,U.jsx)(`span`,{className:`font-medium text-foreground`,children:te?.filename}),`? This action cannot be undone.`]}),me&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:me}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>ne(null),children:`Cancel`}),(0,U.jsx)(J,{variant:`destructive`,onClick:De,disabled:pe||!i,children:pe?`Deleting…`:`Delete`})]})]})}),(0,U.jsx)(yw,{open:!!z,onOpenChange:e=>{e||B(null)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Delete folder`})}),(0,U.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,U.jsx)(`span`,{className:`font-medium text-foreground`,children:z?.name}),`? The folder must be empty.`]}),me&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:me}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>B(null),children:`Cancel`}),(0,U.jsx)(J,{variant:`destructive`,onClick:Ee,disabled:pe||!i,children:pe?`Deleting…`:`Delete`})]})]})}),(0,U.jsx)(yw,{open:le,onOpenChange:e=>{e||ue(!1)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsxs)(Ew,{children:[`Delete `,E.size,` `,E.size===1?`item`:`items`,`?`]})}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone. Non-empty folders will be skipped.`}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>ue(!1),children:`Cancel`}),(0,U.jsxs)(J,{variant:`destructive`,onClick:Pe,disabled:de,children:[de?(0,U.jsx)(by,{className:`size-4`}):null,`Delete`]})]})]})})]})]})}function y1({items:e}){let{pathname:t}=cr();function n(e){return t===e||t.startsWith(e+`/`)}return(0,U.jsx)(`nav`,{className:`flex flex-col gap-0.5 p-2`,children:e.map(({label:e,to:t,icon:r})=>(0,U.jsxs)(qi,{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,U.jsx)(r,{className:`size-3.5 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:e})]},t))})}function b1(e,t){return e?.permissions.includes(`*`)||e?.permissions.includes(t)||!1}function x1(){let{user:e}=ga(),t=[{label:`Overview`,to:`/settings/overview`,icon:zo,permission:`settings:overview:read`},{label:`Users`,to:`/settings/users`,icon:es,permission:`settings:users:read`},{label:`Roles`,to:`/settings/roles`,icon:Bo,permission:`settings:roles:read`},{label:`API Tokens`,to:`/settings/api-tokens`,icon:bo,permission:`settings:api-tokens:read`},{label:`Webhooks`,to:`/settings/webhooks`,icon:ts,permission:`settings:webhooks:read`}].filter(({permission:t})=>b1(e,t));return(0,U.jsxs)(`div`,{className:`flex flex-col`,children:[(0,U.jsx)(`div`,{className:`border-b border-sidebar-border px-4 py-3`,children:(0,U.jsx)(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wider`,children:`Settings`})}),(0,U.jsx)(y1,{items:t})]})}function S1(){return qw((0,U.jsx)(x1,{})),(0,U.jsx)(Qr,{})}var C1=`••••••••`;function w1({values:e,onChange:t,disabled:n=!1}){return(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`local-uploads-dir`,children:`Upload directory`}),(0,U.jsx)(Hv,{id:`local-uploads-dir`,placeholder:`public/uploads`,value:e[`local.uploads_dir`]??``,onChange:e=>t(`local.uploads_dir`,e.target.value),disabled:n}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Path on disk where files are stored. Relative to the server working directory.`})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`local-public-url`,children:`Public URL`}),(0,U.jsx)(Hv,{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,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Base URL used to build file URLs. Should match the server's public address.`})]})]})}function T1({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]===C1,u=r[n]??``;return(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:e,children:t}),(0,U.jsxs)(`div`,{className:`relative`,children:[(0,U.jsx)(Hv,{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,U.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,U.jsx)(eo,{className:`size-4`}):(0,U.jsx)(to,{className:`size-4`})})]}),l&&(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`A value is already saved. Enter a new one to replace it.`})]})}function E1({values:e,onChange:t,disabled:n=!1}){return(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`s3-access-key`,children:`Access key ID`}),(0,U.jsx)(Hv,{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,U.jsx)(T1,{id:`s3-secret-key`,label:`Secret access key`,fieldKey:`s3.secret_access_key`,values:e,onChange:t,disabled:n})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`s3-region`,children:`Region`}),(0,U.jsx)(Hv,{id:`s3-region`,placeholder:`us-east-1`,value:e[`s3.region`]??``,onChange:e=>t(`s3.region`,e.target.value),disabled:n})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`s3-bucket`,children:`Bucket`}),(0,U.jsx)(Hv,{id:`s3-bucket`,placeholder:`my-bucket`,value:e[`s3.bucket`]??``,onChange:e=>t(`s3.bucket`,e.target.value),disabled:n})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`s3-path-prefix`,children:`Path prefix`}),(0,U.jsx)(Hv,{id:`s3-path-prefix`,placeholder:`cms/media`,value:e[`s3.path_prefix`]??``,onChange:e=>t(`s3.path_prefix`,e.target.value),disabled:n}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Shared bucket subfolder.`})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`s3-public-url`,children:`Public URL`}),(0,U.jsx)(Hv,{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,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Leave blank to use the default S3 URL.`})]})]})}function D1({values:e,onChange:t,disabled:n=!1}){return(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`r2-access-key`,children:`Access key ID`}),(0,U.jsx)(Hv,{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,U.jsx)(T1,{id:`r2-secret-key`,label:`Secret access key`,fieldKey:`r2.secret_access_key`,values:e,onChange:t,disabled:n})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`r2-bucket`,children:`Bucket`}),(0,U.jsx)(Hv,{id:`r2-bucket`,placeholder:`my-bucket`,value:e[`r2.bucket`]??``,onChange:e=>t(`r2.bucket`,e.target.value),disabled:n})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`r2-path-prefix`,children:`Path prefix`}),(0,U.jsx)(Hv,{id:`r2-path-prefix`,placeholder:`cms/media`,value:e[`r2.path_prefix`]??``,onChange:e=>t(`r2.path_prefix`,e.target.value),disabled:n}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Shared bucket subfolder.`})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsxs)(X,{htmlFor:`r2-public-url`,children:[`Public URL `,(0,U.jsx)(`span`,{className:`text-destructive`,children:`*`})]}),(0,U.jsx)(Hv,{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,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Required. R2 does not generate public URLs automatically.`})]})]})}function O1(){let{user:e}=ga(),{data:t,loading:n}=wa(`/cms/admin/settings/media`),{loading:r,error:i,request:a}=Vv(),[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)}catch{}}return n?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 py-8 text-muted-foreground`,children:[(0,U.jsx)(by,{className:`size-4`}),(0,U.jsx)(`span`,{className:`text-sm`,children:`Loading settings…`})]}):(0,U.jsxs)(`form`,{onSubmit:g,className:`space-y-8`,children:[(0,U.jsxs)(`div`,{className:`border-b pb-4`,children:[(0,U.jsx)(`h2`,{className:`text-2xl font-semibold`,children:`Storage`}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure where uploaded files are stored.`})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`provider`,children:`Storage provider`}),(0,U.jsxs)(Ow,{value:d,onValueChange:e=>h(e),children:[(0,U.jsx)(jw,{id:`provider`,disabled:!p,children:(0,U.jsx)(Aw,{})}),(0,U.jsxs)(Pw,{children:[(0,U.jsx)(Iw,{value:`local`,children:`Local`}),(0,U.jsx)(Iw,{value:`s3`,children:`Amazon S3`}),(0,U.jsx)(Iw,{value:`r2`,children:`Cloudflare R2`})]})]})]}),d===`r2`&&(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`r2-account-id`,children:`Account ID`}),(0,U.jsx)(Hv,{id:`r2-account-id`,placeholder:`023e105f4ecef8ad9ca31a8372d0c353`,value:u[`r2.account_id`]??``,onChange:e=>m(`r2.account_id`,e.target.value),disabled:!p}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Found in the Cloudflare dashboard under R2 > Overview.`})]})]}),(0,U.jsxs)(`div`,{className:`border-t pt-6`,children:[d===`local`&&(0,U.jsx)(w1,{values:u,onChange:m,disabled:!p}),d===`s3`&&(0,U.jsx)(E1,{values:u,onChange:m,disabled:!p}),d===`r2`&&(0,U.jsx)(D1,{values:u,onChange:m,disabled:!p})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,U.jsx)(J,{type:`submit`,disabled:r||!p,children:r?`Saving…`:`Save`}),c&&(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Changes saved.`}),i&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:i})]})]})}function k1({className:e,...t}){return(0,U.jsx)(`div`,{"data-slot":`card`,className:q(`flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm`,e),...t})}function A1({className:e,...t}){return(0,U.jsx)(`div`,{"data-slot":`card-header`,className:q(`@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,e),...t})}function j1({className:e,...t}){return(0,U.jsx)(`div`,{"data-slot":`card-title`,className:q(`leading-none font-semibold`,e),...t})}function M1({className:e,...t}){return(0,U.jsx)(`div`,{"data-slot":`card-action`,className:q(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...t})}function N1({className:e,...t}){return(0,U.jsx)(`div`,{"data-slot":`card-content`,className:q(`px-6`,e),...t})}function P1(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var F1=e=>{switch(e){case`success`:return R1;case`info`:return B1;case`warning`:return z1;case`error`:return V1;default:return null}},I1=Array(12).fill(0),L1=({visible:e,className:t})=>v.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},v.createElement(`div`,{className:`sonner-spinner`},I1.map((e,t)=>v.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),R1=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),z1=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),B1=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),V1=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),H1=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},v.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),v.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),U1=()=>{let[e,t]=v.useState(document.hidden);return v.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},W1=1,G1=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:W1++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],v.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(q1(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||W1++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},K1=(e,t)=>{let n=t?.id||W1++;return G1.addToast({title:e,...t,id:n}),n},q1=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,J1=Object.assign(K1,{success:G1.success,info:G1.info,warning:G1.warning,error:G1.error,custom:G1.custom,message:G1.message,promise:G1.promise,dismiss:G1.dismiss,loading:G1.loading},{getHistory:()=>G1.toasts,getToasts:()=>G1.getActiveToasts()});P1(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function Y1(e){return e.label!==void 0}var X1=3,Z1=`24px`,Q1=`16px`,$1=4e3,e0=356,t0=14,n0=45,r0=200;function i0(...e){return e.filter(Boolean).join(` `)}function a0(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var o0=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:m,cancelButtonStyle:h,actionButtonStyle:g,className:_=``,descriptionClassName:y=``,duration:b,position:x,gap:S,expandByDefault:C,classNames:w,icons:T,closeButtonAriaLabel:E=`Close toast`}=e,[D,O]=v.useState(null),[k,A]=v.useState(null),[j,M]=v.useState(!1),[N,P]=v.useState(!1),[F,I]=v.useState(!1),[L,R]=v.useState(!1),[ee,te]=v.useState(!1),[ne,z]=v.useState(0),[B,re]=v.useState(0),V=v.useRef(n.duration||b||$1),H=v.useRef(null),ie=v.useRef(null),ae=c===0,oe=c+1<=o,se=n.type,ce=n.dismissible!==!1,le=n.className||``,ue=n.descriptionClassName||``,de=v.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),fe=v.useMemo(()=>n.closeButton??p,[n.closeButton,p]),pe=v.useMemo(()=>n.duration||b||$1,[n.duration,b]),me=v.useRef(0),he=v.useRef(0),ge=v.useRef(0),_e=v.useRef(null),[ve,ye]=x.split(`-`),be=v.useMemo(()=>s.reduce((e,t,n)=>n>=de?e:e+t.height,0),[s,de]),xe=U1(),Se=n.invert||t,Ce=se===`loading`;he.current=v.useMemo(()=>de*S+be,[de,be]),v.useEffect(()=>{V.current=pe},[pe]),v.useEffect(()=>{M(!0)},[]),v.useEffect(()=>{let e=ie.current;if(e){let t=e.getBoundingClientRect().height;return re(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),v.useLayoutEffect(()=>{if(!j)return;let e=ie.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,re(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[j,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let we=v.useCallback(()=>{P(!0),z(he.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},r0)},[n,d,a,he]);v.useEffect(()=>{if(n.promise&&se===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||xe?(()=>{if(ge.current<me.current){let e=new Date().getTime()-me.current;V.current-=e}ge.current=new Date().getTime()})():V.current!==1/0&&(me.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),we()},V.current)),()=>clearTimeout(e)},[u,i,n,se,xe,we]),v.useEffect(()=>{n.delete&&(we(),n.onDismiss==null||n.onDismiss.call(n,n))},[we,n.delete]);function Te(){return T?.loading?v.createElement(`div`,{className:i0(w?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":se===`loading`},T.loading):v.createElement(L1,{className:i0(w?.loader,n?.classNames?.loader),visible:se===`loading`})}let Ee=n.icon||T?.[se]||F1(se);return v.createElement(`li`,{tabIndex:0,ref:ie,className:i0(_,le,w?.toast,n?.classNames?.toast,w?.default,w?.[se],n?.classNames?.[se]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":j,"data-promise":!!n.promise,"data-swiped":ee,"data-removed":N,"data-visible":oe,"data-y-position":ve,"data-x-position":ye,"data-index":c,"data-front":ae,"data-swiping":F,"data-dismissible":ce,"data-type":se,"data-invert":Se,"data-swipe-out":L,"data-swipe-direction":k,"data-expanded":!!(u||C&&j),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${N?ne:he.current}px`,"--initial-height":C?`auto`:`${B}px`,...m,...n.style},onDragEnd:()=>{I(!1),O(null),_e.current=null},onPointerDown:e=>{e.button!==2&&(Ce||!ce||(H.current=new Date,z(he.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(I(!0),_e.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(L||!ce)return;_e.current=null;let e=Number(ie.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(ie.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-H.current?.getTime(),i=D===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=n0||a>.11){z(he.current),n.onDismiss==null||n.onDismiss.call(n,n),A(D===`x`?e>0?`right`:`left`:t>0?`down`:`up`),we(),R(!0);return}else{var o,s;(o=ie.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=ie.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}te(!1),I(!1),O(null)},onPointerMove:t=>{var n,r;if(!_e.current||!ce||window.getSelection()?.toString().length>0)return;let i=t.clientY-_e.current.y,a=t.clientX-_e.current.x,o=e.swipeDirections??a0(x);!D&&(Math.abs(a)>1||Math.abs(i)>1)&&O(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(D===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(D===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&te(!0),(n=ie.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=ie.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},fe&&!n.jsx&&se!==`loading`?v.createElement(`button`,{"aria-label":E,"data-disabled":Ce,"data-close-button":!0,onClick:Ce||!ce?()=>{}:()=>{we(),n.onDismiss==null||n.onDismiss.call(n,n)},className:i0(w?.closeButton,n?.classNames?.closeButton)},T?.close??H1):null,(se||n.icon||n.promise)&&n.icon!==null&&(T?.[se]!==null||n.icon)?v.createElement(`div`,{"data-icon":``,className:i0(w?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||Te():null,n.type===`loading`?null:Ee):null,v.createElement(`div`,{"data-content":``,className:i0(w?.content,n?.classNames?.content)},v.createElement(`div`,{"data-title":``,className:i0(w?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?v.createElement(`div`,{"data-description":``,className:i0(y,ue,w?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),v.isValidElement(n.cancel)?n.cancel:n.cancel&&Y1(n.cancel)?v.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||h,onClick:e=>{Y1(n.cancel)&&ce&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),we())},className:i0(w?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,v.isValidElement(n.action)?n.action:n.action&&Y1(n.action)?v.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||g,onClick:e=>{Y1(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&we())},className:i0(w?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function s0(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function c0(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?Q1:Z1;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var l0=v.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:p,style:m,visibleToasts:h=X1,toastOptions:g,dir:_=s0(),gap:y=t0,icons:b,containerAriaLabel:x=`Notifications`}=e,[S,C]=v.useState([]),w=v.useMemo(()=>n?S.filter(e=>e.toasterId===n):S.filter(e=>!e.toasterId),[S,n]),T=v.useMemo(()=>Array.from(new Set([i].concat(w.filter(e=>e.position).map(e=>e.position)))),[w,i]),[E,D]=v.useState([]),[O,k]=v.useState(!1),[A,j]=v.useState(!1),[M,P]=v.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),F=v.useRef(null),I=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),L=v.useRef(null),R=v.useRef(!1),ee=v.useCallback(e=>{C(t=>(t.find(t=>t.id===e.id)?.delete||G1.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return v.useEffect(()=>G1.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{C(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{N.flushSync(()=>{C(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[S]),v.useEffect(()=>{if(d!==`system`){P(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?P(`dark`):P(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{P(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{P(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),v.useEffect(()=>{S.length<=1&&k(!1)},[S]),v.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;k(!0),(t=F.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===F.current||F.current?.contains(document.activeElement))&&k(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),v.useEffect(()=>{if(F.current)return()=>{L.current&&(L.current.focus({preventScroll:!0}),L.current=null,R.current=!1)}},[F.current]),v.createElement(`section`,{ref:t,"aria-label":`${x} ${I}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},T.map((t,n)=>{let[i,a]=t.split(`-`);return w.length?v.createElement(`ol`,{key:t,dir:_===`auto`?s0():_,tabIndex:-1,ref:F,className:c,"data-sonner-toaster":!0,"data-sonner-theme":M,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${E[0]?.height||0}px`,"--width":`${e0}px`,"--gap":`${y}px`,...m,...c0(l,u)},onBlur:e=>{R.current&&!e.currentTarget.contains(e.relatedTarget)&&(R.current=!1,L.current&&=(L.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||R.current||(R.current=!0,L.current=e.relatedTarget)},onMouseEnter:()=>k(!0),onMouseMove:()=>k(!0),onMouseLeave:()=>{A||k(!1)},onDragEnd:()=>k(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||j(!0)},onPointerUp:()=>j(!1)},w.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>v.createElement(o0,{key:n.id,icons:b,index:i,toast:n,defaultRichColors:f,duration:g?.duration??p,className:g?.className,descriptionClassName:g?.descriptionClassName,invert:r,visibleToasts:h,closeButton:g?.closeButton??s,interacting:A,position:t,style:g?.style,unstyled:g?.unstyled,classNames:g?.classNames,cancelButtonStyle:g?.cancelButtonStyle,actionButtonStyle:g?.actionButtonStyle,closeButtonAriaLabel:g?.closeButtonAriaLabel,removeToast:ee,toasts:w.filter(e=>e.position==n.position),heights:E.filter(e=>e.position==n.position),setHeights:D,expandByDefault:o,gap:y,expanded:O,swipeDirections:e.swipeDirections}))):null}))}),u0={name:`@plank-cms/admin`,version:`0.20.0`,type:`module`,scripts:{build:`vite build`,dev:`vite`,lint:`eslint src/`},dependencies:{"@dnd-kit/core":`6.3.1`,"@dnd-kit/sortable":`10.0.0`,"@dnd-kit/utilities":`3.2.2`,"@radix-ui/react-avatar":`1.1.11`,"@radix-ui/react-checkbox":`1.3.3`,"@radix-ui/react-dialog":`1.1.15`,"@radix-ui/react-dropdown-menu":`2.1.16`,"@radix-ui/react-label":`2.1.8`,"@radix-ui/react-popover":`1.1.15`,"@radix-ui/react-select":`2.2.6`,"@radix-ui/react-separator":`1.1.8`,"@radix-ui/react-slot":`1.2.4`,"@radix-ui/react-switch":`1.2.6`,"@radix-ui/react-tabs":`1.1.13`,"@radix-ui/react-tooltip":`1.2.8`,"@tanstack/react-table":`8.21.3`,"@tiptap/extension-image":`3.22.4`,"@tiptap/pm":`3.22.4`,"@tiptap/react":`3.22.4`,"@tiptap/starter-kit":`3.22.4`,"class-variance-authority":`0.7.1`,clsx:`2.1.1`,cmdk:`1.1.1`,"date-fns":`4.1.0`,"hls.js":`1.6.16`,"input-otp":`1.4.2`,"lucide-react":`1.8.0`,"next-themes":`0.4.6`,"qrcode.react":`4.2.0`,"radix-ui":`1.4.3`,react:`19.2.5`,"react-day-picker":`9.14.0`,"react-dom":`19.2.5`,"react-router-dom":`7.14.1`,sonner:`2.0.7`,"tailwind-merge":`3.5.0`},devDependencies:{"@tailwindcss/vite":`4.2.3`,"@types/react":`19.2.14`,"@types/react-dom":`19.2.3`,"@types/react-router-dom":`5.3.3`,"@vitejs/plugin-react":`6.0.1`,tailwindcss:`4.2.3`,vite:`8.0.9`}},d0=[{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 f0(){let{user:e}=ga(),{data:t,loading:n}=wa(`/cms/admin/settings/general`),{request:r,loading:i}=Vv(),{request:a,loading:o}=Vv(),{request:s,loading:c}=Vv(),{refreshSettings:l}=ya(),[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(),J1.success(`Locales saved`)}catch{J1.error(`Could not save locales`)}}return n?(0,U.jsx)(by,{}):(0,U.jsxs)(`div`,{className:`space-y-6`,children:[(0,U.jsx)(k1,{children:(0,U.jsxs)(N1,{className:`flex items-center gap-4 py-2`,children:[(0,U.jsx)(`img`,{src:`/admin/plank-logo-w.svg`,alt:`Plank CMS`,className:`h-10 w-auto`}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`font-bold`,children:`Plank CMS by AM25`}),(0,U.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Version `,u0.version]})]})]})}),(0,U.jsxs)(`div`,{className:`border-b pb-4`,children:[(0,U.jsx)(`h2`,{className:`text-2xl font-semibold`,children:`Commons`}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`General settings that apply across the CMS.`})]}),(0,U.jsxs)(`div`,{className:`space-y-2`,children:[(0,U.jsx)(X,{htmlFor:`timezone`,children:`Timezone`}),(0,U.jsxs)(Ow,{value:u,onValueChange:e=>{d(e),(async()=>{try{await r(`/cms/admin/settings/general`,`PUT`,{timezone:e}),l(),J1.success(`Timezone saved`)}catch{J1.error(`Could not save timezone`)}})()},children:[(0,U.jsx)(jw,{id:`timezone`,className:`w-full`,disabled:!S,children:(0,U.jsx)(Aw,{})}),(0,U.jsx)(Pw,{className:`max-h-72`,children:d0.map(e=>(0,U.jsx)(Iw,{value:e.value,children:e.label},e.value))})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Used to display dates and times across the admin panel.`}),i&&(0,U.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Saving…`})]})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 md:grid-cols-2`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{children:`Locales`}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(Hv,{placeholder:`E.g. "en"`,value:g,onChange:e=>_(e.target.value),className:`h-9 w-full`,disabled:!S}),(0,U.jsx)(J,{variant:`outline`,className:`h-9`,disabled:!S,onClick:()=>{let e=g.trim().toLowerCase();e&&(f.includes(e)||p(t=>[...t,e]),_(``))},children:`Add`})]}),(0,U.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:f.map(e=>(0,U.jsx)(J,{variant:`ghost`,size:`sm`,onClick:()=>p(t=>t.filter(t=>t!==e)),disabled:!S,children:e.toUpperCase()},e))})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`default-locale`,children:`Default locale`}),(0,U.jsxs)(Ow,{value:m,onValueChange:h,children:[(0,U.jsx)(jw,{id:`default-locale`,className:`w-full`,disabled:!S,children:(0,U.jsx)(Aw,{})}),(0,U.jsx)(Pw,{className:`max-h-72`,children:f.length===0?(0,U.jsx)(Iw,{value:m,children:m}):f.map(e=>(0,U.jsx)(Iw,{value:e,children:e.toUpperCase()},e))})]}),(0,U.jsx)(`div`,{className:`pt-2 flex justify-end`,children:(0,U.jsx)(J,{variant:`outline`,onClick:C,disabled:o||!S,children:o?`Saving…`:`Save`})})]})]}),(0,U.jsx)(WO,{}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(X,{htmlFor:`editorial-mode`,children:`Editorial Mode`}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Enables Editor and Viewer workflows for editorial review.`})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,U.jsx)(rj,{id:`editorial-mode`,checked:y,onCheckedChange:e=>{b(e),(async()=>{try{await s(`/cms/admin/settings/general`,`PUT`,{editorial_mode:String(e)}),l(),J1.success(`Editorial Mode saved`)}catch{J1.error(`Could not save Editorial Mode`)}})()},disabled:!S}),c&&(0,U.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Saving…`})]})]})]})}function p0(){return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(yy,{children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Overview`}),(0,U.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`General configuration for your CMS instance.`})]}),(0,U.jsxs)($A,{defaultValue:`general`,className:`mt-24`,children:[(0,U.jsxs)(ej,{className:`mb-6`,children:[(0,U.jsx)(tj,{value:`general`,children:`General`}),(0,U.jsx)(tj,{value:`media`,children:`Media Library`})]}),(0,U.jsx)(nj,{value:`general`,children:(0,U.jsx)(f0,{})}),(0,U.jsx)(nj,{value:`media`,children:(0,U.jsx)(O1,{})})]})]})}function m0(e,t){return typeof e==`function`?e(t):e}function h0(e,t){return n=>{t.setState(t=>({...t,[e]:m0(n,t[e])}))}}function g0(e){return e instanceof Function}function _0(e){return Array.isArray(e)&&e.every(e=>typeof e==`number`)}function v0(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 y0(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=rK(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=rK(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()}}});DG.create({name:`listKit`,addExtensions(){let e=[];return this.options.bulletList!==!1&&e.push(jX.configure(this.options.bulletList)),this.options.listItem!==!1&&e.push(MX.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(UX.configure(this.options.listKeymap)),this.options.orderedList!==!1&&e.push(eZ.configure(this.options.orderedList)),this.options.taskItem!==!1&&e.push(nZ.configure(this.options.taskItem)),this.options.taskList!==!1&&e.push(rZ.configure(this.options.taskList)),e}});var iZ=`&nbsp;`,aZ=`\xA0`,oZ=lK.create({name:`paragraph`,priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:`block`,content:`inline*`,parseHTML(){return[{tag:`p`}]},renderHTML({HTMLAttributes:e}){return[`p`,iW(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===iZ||n[0].text===iZ||n[0].raw===aZ||n[0].text===aZ)&&r.length===1&&r[0].type===`text`&&(r[0].text===iZ||r[0].text===aZ)?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?iZ:``}return t.renderChildren(r)},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),sZ=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,cZ=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,lZ=vG.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`,iW(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[UG({find:sZ,type:this.type})]},addPasteRules(){return[dK({find:cZ,type:this.type})]}}),uZ=lK.create({name:`text`,group:`inline`,parseMarkdown:e=>({type:`text`,text:e.text||``}),renderMarkdown:e=>e.text||``}),dZ=vG.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`,iW(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 fZ(e={}){return new XI({view(t){return new pZ(t,e)}})}var pZ=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=sI(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)}},mZ=class e extends OI{constructor(e){super(e,e)}map(t,n){let r=t.resolve(n.map(this.head));return e.valid(r)?new e(r):OI.near(r)}content(){return Q.empty}eq(t){return t instanceof e&&t.head==this.head}toJSON(){return{type:`gapcursor`,pos:this.head}}static fromJSON(t,n){if(typeof n.pos!=`number`)throw RangeError(`Invalid input for GapCursor.fromJSON`);return new e(t.resolve(n.pos))}getBookmark(){return new hZ(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!_Z(e)||!vZ(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&&!PI.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}}};mZ.prototype.visible=!1,mZ.findFrom=mZ.findGapCursorFrom,OI.jsonID(`gapcursor`,mZ);var hZ=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 mZ.valid(t)?new mZ(t):OI.near(t)}};function gZ(e){return e.isAtom||e.spec.isolating||e.spec.createGapCursor}function _Z(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||gZ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function vZ(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||gZ(e.type))return!0;if(e.inlineContent)return!1}}return!0}function yZ(){return new XI({props:{decorations:wZ,createSelectionBetween(e,t,n){return t.pos==n.pos&&mZ.valid(n)?new mZ(n):null},handleClick:SZ,handleKeyDown:bZ,handleDOMEvents:{beforeinput:CZ}}})}var bZ=EH({ArrowLeft:xZ(`horiz`,-1),ArrowRight:xZ(`horiz`,1),ArrowUp:xZ(`vert`,-1),ArrowDown:xZ(`vert`,1)});function xZ(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 MI){if(!i.endOfTextblock(n)||o.depth==0)return!1;s=!1,o=e.doc.resolve(t>0?o.after():o.before())}let c=mZ.findGapCursorFrom(o,t,s);return c?(r&&r(e.tr.setSelection(new mZ(c))),!0):!1}}function SZ(e,t,n){if(!e||!e.editable)return!1;let r=e.state.doc.resolve(t);if(!mZ.valid(r))return!1;let i=e.posAtCoords({left:n.clientX,top:n.clientY});return i&&i.inside>-1&&PI.isSelectable(e.state.doc.nodeAt(i.inside))?!1:(e.dispatch(e.state.tr.setSelection(new mZ(r))),!0)}function CZ(e,t){if(t.inputType!=`insertCompositionText`||!(e.state.selection instanceof mZ))return!1;let{$from:n}=e.state.selection,r=n.parent.contentMatchAt(n.index()).findWrapping(e.state.schema.nodes.text);if(!r)return!1;let i=Z.empty;for(let e=r.length-1;e>=0;e--)i=Z.from(r[e].createAndFill(null,i));let a=e.state.tr.replace(n.pos,n.pos,new Q(i,0,0));return a.setSelection(MI.near(a.doc.resolve(n.pos+1))),e.dispatch(a),!1}function wZ(e){if(!(e.selection instanceof mZ))return null;let t=document.createElement(`div`);return t.className=`ProseMirror-gapcursor`,TV.create(e.doc,[SV.widget(e.selection.head,t,{key:`gapcursor`})])}var TZ=200,EZ=function(){};EZ.prototype.append=function(e){return e.length?(e=EZ.from(e),!this.length&&e||e.length<TZ&&this.leafAppend(e)||this.length<TZ&&e.leafPrepend(this)||this.appendInner(e)):this},EZ.prototype.prepend=function(e){return e.length?EZ.from(e).append(this):this},EZ.prototype.appendInner=function(e){return new OZ(this,e)},EZ.prototype.slice=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=this.length),e>=t?EZ.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},EZ.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},EZ.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)},EZ.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},EZ.from=function(e){return e instanceof EZ?e:e&&e.length?new DZ(e):EZ.empty};var DZ=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<=TZ)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=TZ)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}(EZ);EZ.empty=new DZ([]);var OZ=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}(EZ),kZ=500,AZ=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 MZ(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 MZ(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 MZ(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>PZ&&(s=jZ(s,l),o-=l),new e(s.append(a),o)}remapping(e,t){let n=new TF;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 MZ(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 MZ(i,o,l))}else r.push(new MZ(i))},i);let l=[];for(let e=n;e<o;e++)l.push(new MZ(a.maps[e]));let u=new e(this.items.slice(0,i).append(l).append(r),s);return u.emptyItemCount()>kZ&&(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 MZ(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(EZ.from(i.reverse()),a)}};AZ.empty=new AZ(EZ.empty,0);function jZ(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&t--==0)return n=r,!1}),e.slice(n)}var MZ=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)}}},NZ=class{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}},PZ=20;function FZ(e,t,n,r){let i=n.getMeta(UZ),a;if(i)return i.historyState;n.getMeta(WZ)&&(e=new NZ(e.done,e.undone,null,0,-1));let o=n.getMeta(`appendedTransaction`);if(n.steps.length==0)return e;if(o&&o.getMeta(UZ))return o.getMeta(UZ).redo?new NZ(e.done.addTransform(n,void 0,r,HZ(t)),e.undone,LZ(n.mapping.maps),e.prevTime,e.prevComposition):new NZ(e.done,e.undone.addTransform(n,void 0,r,HZ(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||!IZ(n,e.prevRanges)),s=o?RZ(e.prevRanges,n.mapping):LZ(n.mapping.maps);return new NZ(e.done.addTransform(n,a?t.selection.getBookmark():void 0,r,HZ(t)),AZ.empty,s,n.time,i??e.prevComposition)}else if(a=n.getMeta(`rebased`))return new NZ(e.done.rebased(n,a),e.undone.rebased(n,a),RZ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);else return new NZ(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),RZ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function IZ(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 LZ(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 RZ(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 zZ(e,t,n){let r=HZ(t),i=UZ.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 NZ(n?s:a.remaining,n?a.remaining:s,null,0,-1);return a.transform.setSelection(o).setMeta(UZ,{redo:n,historyState:c})}var BZ=!1,VZ=null;function HZ(e){let t=e.plugins;if(VZ!=t){BZ=!1,VZ=t;for(let e=0;e<t.length;e++)if(t[e].spec.historyPreserveItems){BZ=!0;break}}return BZ}var UZ=new $I(`history`),WZ=new $I(`closeHistory`);function GZ(e={}){return e={depth:e.depth||100,newGroupDelay:e.newGroupDelay||500},new XI({key:UZ,state:{init(){return new NZ(AZ.empty,AZ.empty,null,0,-1)},apply(t,n,r){return FZ(n,r,t,e)}},config:e,props:{handleDOMEvents:{beforeinput(e,t){let n=t.inputType,r=n==`historyUndo`?qZ:n==`historyRedo`?JZ:null;return!r||!e.editable?!1:(t.preventDefault(),r(e.state,e.dispatch))}}}})}function KZ(e,t){return(n,r)=>{let i=UZ.getState(n);if(!i||(e?i.undone:i.done).eventCount==0)return!1;if(r){let a=zZ(i,n,e);a&&r(t?a.scrollIntoView():a)}return!0}}var qZ=KZ(!1,!0),JZ=KZ(!0,!0);DG.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 XI({key:new $I(`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 YZ=DG.create({name:`dropCursor`,addOptions(){return{color:`currentColor`,width:1,class:void 0}},addProseMirrorPlugins(){return[fZ(this.options)]}});DG.create({name:`focus`,addOptions(){return{className:`has-focus`,mode:`all`}},addProseMirrorPlugins(){return[new XI({key:new $I(`focus`),props:{decorations:({doc:e,selection:t})=>{let{isEditable:n,isFocused:r}=this.editor,{anchor:i}=t,a=[];if(!n||!r)return TV.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(SV.node(t,t+e.nodeSize,{class:this.options.className}))}),TV.create(e,a)}}})]}});var XZ=DG.create({name:`gapCursor`,addProseMirrorPlugins(){return[yZ()]},extendNodeSchema(e){return{allowGapCursor:QU(JU(e,`allowGapCursor`,{name:e.name,options:e.options,storage:e.storage}))??null}}}),ZZ=`placeholder`;function QZ(e){return e.replace(/\s+/g,`-`).replace(/[^a-zA-Z0-9-]/g,``).replace(/^[0-9-]+/,``).replace(/^-+/,``).toLowerCase()}DG.create({name:`placeholder`,addOptions(){return{emptyEditorClass:`is-editor-empty`,emptyNodeClass:`is-empty`,dataAttribute:ZZ,placeholder:`Write something …`,showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){let e=this.options.dataAttribute?`data-${QZ(this.options.dataAttribute)}`:`data-${ZZ}`;return[new XI({key:new $I(`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&&NW(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=SV.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}),TV.create(t,a)}}})]}}),DG.create({name:`selection`,addOptions(){return{className:`selection`}},addProseMirrorPlugins(){let{editor:e,options:t}=this;return[new XI({key:new $I(`selection`),props:{decorations(n){return n.selection.empty||e.isFocused||!e.isEditable||PW(n.selection)||e.view.dragging?null:TV.create(n.doc,[SV.inline(n.selection.from,n.selection.to,{class:t.className})])}}})]}});function $Z({types:e,node:t}){return t&&Array.isArray(e)&&e.includes(t.type)||t?.type===e}var eQ=DG.create({name:`trailingNode`,addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){let e=new $I(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 XI({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!$Z({node:r,types:n})},apply:(e,t)=>{if(!e.docChanged||e.getMeta(`__uniqueIDTransaction`))return t;let r=e.doc.lastChild;return!$Z({node:r,types:n})}}})]}}),tQ=DG.create({name:`undoRedo`,addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:e,dispatch:t})=>qZ(e,t),redo:()=>({state:e,dispatch:t})=>JZ(e,t)}},addProseMirrorPlugins(){return[GZ(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()}}}),nQ=DG.create({name:`starterKit`,addExtensions(){let e=[];return this.options.bold!==!1&&e.push(Jq.configure(this.options.bold)),this.options.blockquote!==!1&&e.push(Uq.configure(this.options.blockquote)),this.options.bulletList!==!1&&e.push(jX.configure(this.options.bulletList)),this.options.code!==!1&&e.push(Zq.configure(this.options.code)),this.options.codeBlock!==!1&&e.push(tJ.configure(this.options.codeBlock)),this.options.document!==!1&&e.push(nJ.configure(this.options.document)),this.options.dropcursor!==!1&&e.push(YZ.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&e.push(XZ.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&e.push(rJ.configure(this.options.hardBreak)),this.options.heading!==!1&&e.push(iJ.configure(this.options.heading)),this.options.undoRedo!==!1&&e.push(tQ.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&e.push(aJ.configure(this.options.horizontalRule)),this.options.italic!==!1&&e.push(uJ.configure(this.options.italic)),this.options.listItem!==!1&&e.push(MX.configure(this.options.listItem)),this.options.listKeymap!==!1&&e.push(UX.configure(this.options?.listKeymap)),this.options.link!==!1&&e.push(TX.configure(this.options?.link)),this.options.orderedList!==!1&&e.push(eZ.configure(this.options.orderedList)),this.options.paragraph!==!1&&e.push(oZ.configure(this.options.paragraph)),this.options.strike!==!1&&e.push(lZ.configure(this.options.strike)),this.options.text!==!1&&e.push(uZ.configure(this.options.text)),this.options.underline!==!1&&e.push(dZ.configure(this.options?.underline)),this.options.trailingNode!==!1&&e.push(eQ.configure(this.options?.trailingNode)),e}}),rQ=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,iQ=lK.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`,iW(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?`![${n}](${t} "${r}")`:`![${n}](${t})`},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 JG({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[WG({find:rQ,type:this.type,getAttributes:e=>{let[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}});function aQ({onClick:e,active:t,disabled:n,title:r,children:i}){return(0,U.jsx)(`button`,{type:`button`,title:r,disabled:n,onMouseDown:t=>{t.preventDefault(),e()},className:q(`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 oQ(){return(0,U.jsx)(`div`,{className:`mx-0.5 h-4 w-px bg-border`})}function sQ(e,t){return!e||!t?null:`${e} × ${t}`}function cQ(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`}}function lQ({node:e,deleteNode:t,selected:n}){let r=String(e.attrs.src??``),i=typeof e.attrs.filename==`string`?e.attrs.filename:null,a=typeof e.attrs.alt==`string`?e.attrs.alt:null,o=typeof e.attrs.title==`string`?e.attrs.title:null,s=typeof e.attrs.width==`number`?e.attrs.width:null,c=typeof e.attrs.height==`number`?e.attrs.height:null,l=i||cQ(r),u=sQ(s,c);return(0,U.jsx)(Oq,{className:q(`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,U.jsxs)(`div`,{className:`flex items-start gap-3 p-3`,children:[(0,U.jsx)(`div`,{className:`size-18 shrink-0 overflow-hidden rounded-lg border bg-muted`,children:(0,U.jsx)(`img`,{src:r,alt:a??l,className:`h-full w-full object-cover`})}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[(0,U.jsx)(`p`,{className:`truncate text-sm font-medium text-foreground`,title:l,children:l}),(0,U.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground`,children:[u&&(0,U.jsx)(`span`,{children:u}),a&&(0,U.jsxs)(`span`,{className:`truncate`,title:a,children:[`Alt: `,a]})]}),o&&(0,U.jsx)(`p`,{className:`line-clamp-2 text-xs text-muted-foreground`,title:o,children:o})]}),(0,U.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,U.jsx)(qo,{className:`size-4`})})]})})}function uQ({value:e,onChange:t,placeholder:n,onInsertImage:r}){let[i,a]=(0,v.useState)(!e),o=wq({extensions:[nQ.configure({link:{openOnClick:!1,HTMLAttributes:{class:`text-primary underline`}}}),iQ.extend({addAttributes(){return{...this.parent?.(),filename:{default:null},width:{default:null},height:{default:null}}},addNodeView(){return Iq(lQ)}}).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();e&&o.chain().focus().setImage({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}).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,U.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,U.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,U.jsx)(aQ,{title:`Bold`,active:o.isActive(`bold`),onClick:()=>o.chain().focus().toggleBold().run(),children:(0,U.jsx)(Fa,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Italic`,active:o.isActive(`italic`),onClick:()=>o.chain().focus().toggleItalic().run(),children:(0,U.jsx)(yo,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Underline`,active:o.isActive(`underline`),onClick:()=>o.chain().focus().toggleUnderline().run(),children:(0,U.jsx)(Xo,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Strikethrough`,active:o.isActive(`strike`),onClick:()=>o.chain().focus().toggleStrike().run(),children:(0,U.jsx)(Uo,{className:`size-3.5`})}),(0,U.jsx)(oQ,{}),(0,U.jsx)(aQ,{title:`Heading 1`,active:o.isActive(`heading`,{level:1}),onClick:()=>o.chain().focus().toggleHeading({level:1}).run(),children:(0,U.jsx)(po,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Heading 2`,active:o.isActive(`heading`,{level:2}),onClick:()=>o.chain().focus().toggleHeading({level:2}).run(),children:(0,U.jsx)(mo,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Heading 3`,active:o.isActive(`heading`,{level:3}),onClick:()=>o.chain().focus().toggleHeading({level:3}).run(),children:(0,U.jsx)(ho,{className:`size-3.5`})}),(0,U.jsx)(oQ,{}),(0,U.jsx)(aQ,{title:`Bullet list`,active:o.isActive(`bulletList`),onClick:()=>o.chain().focus().toggleBulletList().run(),children:(0,U.jsx)(Oo,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Ordered list`,active:o.isActive(`orderedList`),onClick:()=>o.chain().focus().toggleOrderedList().run(),children:(0,U.jsx)(Eo,{className:`size-3.5`})}),(0,U.jsx)(oQ,{}),(0,U.jsx)(aQ,{title:`Blockquote`,active:o.isActive(`blockquote`),onClick:()=>o.chain().focus().toggleBlockquote().run(),children:(0,U.jsx)(Fo,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Inline code`,active:o.isActive(`code`),onClick:()=>o.chain().focus().toggleCode().run(),children:(0,U.jsx)(Ya,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Code block`,active:o.isActive(`codeBlock`),onClick:()=>o.chain().focus().toggleCodeBlock().run(),children:(0,U.jsx)(Vo,{className:`size-3.5`})}),(0,U.jsx)(oQ,{}),(0,U.jsx)(aQ,{title:`Add link`,active:o.isActive(`link`),onClick:c,children:(0,U.jsx)(To,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Remove link`,disabled:!o.isActive(`link`),onClick:()=>o.chain().focus().unsetLink().run(),children:(0,U.jsx)(Zo,{className:`size-3.5`})}),(0,U.jsx)(oQ,{}),r&&(0,U.jsx)(aQ,{title:`Insert image`,onClick:s,children:(0,U.jsx)(_o,{className:`size-3.5`})}),(0,U.jsx)(aQ,{title:`Hard break (Shift + Enter)`,onClick:()=>o.chain().focus().setHardBreak().run(),children:(0,U.jsx)(Go,{className:`size-3.5`})})]}),(0,U.jsxs)(`div`,{className:`relative overflow-y-auto`,children:[i&&n&&(0,U.jsx)(`p`,{className:`pointer-events-none absolute left-3 top-2.5 text-muted-foreground select-none`,children:n}),(0,U.jsx)(gq,{editor:o})]})]}):null}function dQ(e){return{...e}}function fQ(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 pQ(e,t){let n=await fQ(e),r=await fetch(`/cms/admin/media/presign`,{method:`POST`,credentials:`include`,headers:dQ({"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:dQ({"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:dQ(),body:a});if(!o.ok)throw Error(`Upload failed.`);return o.json()}async function mQ(e){let t=await fetch(`/cms/admin/users/me/avatar/presign`,{method:`POST`,credentials:`include`,headers:dQ({"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:dQ({"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:dQ(),body:r});if(!i.ok)throw Error(`Upload failed.`);return(await i.json()).avatarUrl}var hQ=1,gQ=.9,_Q=.8,vQ=.17,yQ=.1,bQ=.999,xQ=.9999,SQ=.99,CQ=/[\\\/_+.#"@\[\(\{&]/,wQ=/[\\\/_+.#"@\[\(\{&]/g,TQ=/[\s-]/,EQ=/[\s-]/g;function DQ(e,t,n,r,i,a,o){if(a===t.length)return i===e.length?hQ:SQ;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=DQ(e,t,n,r,l+1,a+1,o),d>u&&(l===i?d*=hQ:CQ.test(e.charAt(l-1))?(d*=_Q,p=e.slice(i,l-1).match(wQ),p&&i>0&&(d*=bQ**+p.length)):TQ.test(e.charAt(l-1))?(d*=gQ,m=e.slice(i,l-1).match(EQ),m&&i>0&&(d*=bQ**+m.length)):(d*=vQ,i>0&&(d*=bQ**+(l-i))),e.charAt(l)!==t.charAt(a)&&(d*=xQ)),(d<yQ&&n.charAt(l-1)===r.charAt(a+1)||r.charAt(a+1)===r.charAt(a)&&n.charAt(l-1)!==r.charAt(a))&&(f=DQ(e,t,n,r,l+1,a+2,o),f*yQ>d&&(d=f*yQ)),d>u&&(u=d),l=n.indexOf(c,l+1);return o[s]=u,u}function OQ(e){return e.toLowerCase().replace(EQ,` `)}function kQ(e,t,n){return e=n&&n.length>0?`${e+` `+n.join(` `)}`:e,DQ(e,t,OQ(e),OQ(t),0,0,{})}var AQ=`[cmdk-group=""]`,jQ=`[cmdk-group-items=""]`,MQ=`[cmdk-group-heading=""]`,NQ=`[cmdk-item=""]`,PQ=`${NQ}:not([aria-disabled="true"])`,FQ=`cmdk-item-select`,IQ=`data-value`,LQ=(e,t,n)=>kQ(e,t,n),RQ=v.createContext(void 0),zQ=()=>v.useContext(RQ),BQ=v.createContext(void 0),VQ=()=>v.useContext(BQ),HQ=v.createContext(void 0),UQ=v.forwardRef((e,t)=>{let n=r$(()=>({search:``,value:e.value??e.defaultValue??``,selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}})),r=r$(()=>new Set),i=r$(()=>new Map),a=r$(()=>new Map),o=r$(()=>new Set),s=t$(e),{label:c,children:l,value:u,onValueChange:d,filter:f,shouldFilter:p,loop:m,disablePointerSelection:h=!1,vimBindings:g=!0,..._}=e,y=Ou(),b=Ou(),x=Ou(),S=v.useRef(null),C=o$();n$(()=>{if(u!==void 0){let e=u.trim();n.current.value=e,w.emit()}},[u]),n$(()=>{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??LQ;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(jQ);t?t.appendChild(e.parentElement===t?e:e.closest(`${jQ} > *`)):r.appendChild(e.parentElement===r?e:e.closest(`${jQ} > *`))}),t.sort((e,t)=>t[1]-e[1]).forEach(e=>{let t=S.current?.querySelector(`${AQ}[${IQ}="${encodeURIComponent(e[0])}"]`);t?.parentElement.appendChild(t)})}function O(){let e=M().find(e=>e.getAttribute(`aria-disabled`)!==`true`)?.getAttribute(IQ);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(AQ)?.querySelector(MQ))==null||e.scrollIntoView({block:`nearest`})),t.scrollIntoView({block:`nearest`}))}function j(){return S.current?.querySelector(`${NQ}[aria-selected="true"]`)}function M(){return Array.from(S.current?.querySelectorAll(PQ)||[])}function N(e){let t=M()[e];t&&w.setState(`value`,t.getAttribute(IQ))}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(IQ))}function F(e){let t=j()?.closest(AQ),n;for(;t&&!n;)t=e>0?$Q(t,AQ):e$(t,AQ),n=t?.querySelector(PQ);n?w.setState(`value`,n.getAttribute(IQ)):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(tl.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(FQ);t.dispatchEvent(e)}}}}},v.createElement(`label`,{"cmdk-label":``,htmlFor:T.inputId,id:T.labelId,style:l$},c),c$(e,e=>v.createElement(BQ.Provider,{value:w},v.createElement(RQ.Provider,{value:T},e))))}),WQ=v.forwardRef((e,t)=>{let n=Ou(),r=v.useRef(null),i=v.useContext(HQ),a=zQ(),o=t$(e),s=o.current?.forceMount??i?.forceMount;n$(()=>{if(!s)return a.item(n,i?.id)},[s]);let c=a$(n,r,[e.value,e.children,r],e.keywords),l=VQ(),u=i$(e=>e.value&&e.value===c.current),d=i$(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(FQ,f),()=>t.removeEventListener(FQ,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(tl.div,{ref:cs(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)}),GQ=v.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:i,...a}=e,o=Ou(),s=v.useRef(null),c=v.useRef(null),l=Ou(),u=zQ(),d=i$(e=>i||u.filter()===!1?!0:e.search?e.filtered.groups.has(o):!0);n$(()=>u.group(o),[]),a$(o,s,[e.value,e.heading,c]);let f=v.useMemo(()=>({id:o,forceMount:i}),[i]);return v.createElement(tl.div,{ref:cs(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),c$(e,e=>v.createElement(`div`,{"cmdk-group-items":``,role:`group`,"aria-labelledby":n?l:void 0},v.createElement(HQ.Provider,{value:f},e))))}),KQ=v.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,i=v.useRef(null),a=i$(e=>!e.search);return!n&&!a?null:v.createElement(tl.div,{ref:cs(i,t),...r,"cmdk-separator":``,role:`separator`})}),qQ=v.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,i=e.value!=null,a=VQ(),o=i$(e=>e.search),s=i$(e=>e.selectedItemId),c=zQ();return v.useEffect(()=>{e.value!=null&&a.setState(`search`,e.value)},[e.value]),v.createElement(tl.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)}})}),JQ=v.forwardRef((e,t)=>{let{children:n,label:r=`Suggestions`,...i}=e,a=v.useRef(null),o=v.useRef(null),s=i$(e=>e.selectedItemId),c=zQ();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(tl.div,{ref:cs(a,t),...i,"cmdk-list":``,role:`listbox`,tabIndex:-1,"aria-activedescendant":s,"aria-label":r,id:c.listId},c$(e,e=>v.createElement(`div`,{ref:cs(o,c.listInnerRef),"cmdk-list-sizer":``},e)))}),YQ=v.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:i,contentClassName:a,container:o,...s}=e;return v.createElement(ix,{open:n,onOpenChange:r},v.createElement(ax,{container:o},v.createElement(ox,{"cmdk-overlay":``,className:i}),v.createElement(sx,{"aria-label":e.label,"cmdk-dialog":``,className:a},v.createElement(UQ,{ref:t,...s}))))}),XQ=v.forwardRef((e,t)=>i$(e=>e.filtered.count===0)?v.createElement(tl.div,{ref:t,...e,"cmdk-empty":``,role:`presentation`}):null),ZQ=v.forwardRef((e,t)=>{let{progress:n,children:r,label:i=`Loading...`,...a}=e;return v.createElement(tl.div,{ref:t,...a,"cmdk-loading":``,role:`progressbar`,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":i},c$(e,e=>v.createElement(`div`,{"aria-hidden":!0},e)))}),QQ=Object.assign(UQ,{List:JQ,Item:WQ,Input:qQ,Group:GQ,Separator:KQ,Dialog:YQ,Empty:XQ,Loading:ZQ});function $Q(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function e$(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function t$(e){let t=v.useRef(e);return n$(()=>{t.current=e}),t}var n$=typeof window>`u`?v.useEffect:v.useLayoutEffect;function r$(e){let t=v.useRef();return t.current===void 0&&(t.current=e()),t}function i$(e){let t=VQ(),n=()=>e(t.snapshot());return v.useSyncExternalStore(t.subscribe,n,n)}function a$(e,t,n,r=[]){let i=v.useRef(),a=zQ();return n$(()=>{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(IQ,s),i.current=s}),i}var o$=()=>{let[e,t]=v.useState(),n=r$(()=>new Map);return n$(()=>{n.current.forEach(e=>e()),n.current=new Map},[e]),(e,r)=>{n.current.set(e,r),t({})}};function s$(e){let t=e.type;return typeof t==`function`?t(e.props):`render`in t?t.render(e.props):e}function c$({asChild:e,children:t},n){return e&&v.isValidElement(t)?v.cloneElement(s$(t),{ref:t.ref},n(t.props.children)):n(t)}var l$={position:`absolute`,width:`1px`,height:`1px`,padding:`0`,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,borderWidth:`0`},u$=v.forwardRef(({className:e,...t},n)=>(0,U.jsx)(QQ,{ref:n,className:q(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,e),...t}));u$.displayName=QQ.displayName;var d$=v.forwardRef(({className:e,...t},n)=>(0,U.jsxs)(`div`,{className:`flex items-center border-b px-3`,"cmdk-input-wrapper":``,children:[(0,U.jsx)(Ro,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),(0,U.jsx)(QQ.Input,{ref:n,className:q(`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})]}));d$.displayName=QQ.Input.displayName;var f$=v.forwardRef(({className:e,...t},n)=>(0,U.jsx)(QQ.List,{ref:n,className:q(`max-h-[300px] overflow-y-auto overflow-x-hidden`,e),...t}));f$.displayName=QQ.List.displayName;var p$=v.forwardRef((e,t)=>(0,U.jsx)(QQ.Empty,{ref:t,className:`py-6 text-center text-sm`,...e}));p$.displayName=QQ.Empty.displayName;var m$=v.forwardRef(({className:e,...t},n)=>(0,U.jsx)(QQ.Group,{ref:n,className:q(`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}));m$.displayName=QQ.Group.displayName;var h$=v.forwardRef(({className:e,...t},n)=>(0,U.jsx)(QQ.Separator,{ref:n,className:q(`-mx-1 h-px bg-border`,e),...t}));h$.displayName=QQ.Separator.displayName;var g$=v.forwardRef(({className:e,...t},n)=>(0,U.jsx)(QQ.Item,{ref:n,className:q(`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}));g$.displayName=QQ.Item.displayName;var _$=({className:e,...t})=>(0,U.jsx)(`span`,{className:q(`ml-auto text-xs tracking-widest text-muted-foreground`,e),...t});_$.displayName=`CommandShortcut`;var v$={image:`image/*`,video:`video/*`,audio:`audio/*`,document:`.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt,.csv`};function y$(e){return!e||e.length===0?`*/*`:e.map(e=>v$[e]).join(`,`)}function b$(e){let t=e.replace(/_/g,` `).trim();return t?t.charAt(0).toUpperCase()+t.slice(1):`Value`}function x$(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:`—`}function S$(e){return e?.startsWith(`image/`)??!1}async function C$(e,t){return pQ(e,{folderId:t})}function w$(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)}function T$({open:e,onOpenChange:t,allowedTypes:n,onSelect:r}){let[i,a]=(0,v.useState)([{id:null,name:`Media`}]),o=i[i.length-1].id,[s,c]=(0,v.useState)([]),[l,u]=(0,v.useState)([]),[d,f]=(0,v.useState)(!1);(0,v.useEffect)(()=>{if(!e)return;f(!0);let t=localStorage.getItem(`plank_token`),n=t?{Authorization:`Bearer ${t}`}:{},r=o??``;Promise.all([fetch(`/cms/admin/folders?parent_id=${r}`,{headers:n}).then(e=>e.ok?e.json():{folders:[]}).then(e=>e.folders),fetch(`/cms/admin/media?folder_id=${r}`,{headers:n}).then(e=>e.ok?e.json():{items:[]}).then(e=>e.items)]).then(([e,t])=>{c(e),u(t)}).catch(()=>{c([]),u([])}).finally(()=>f(!1))},[e,o]),(0,v.useEffect)(()=>{e||a([{id:null,name:`Media`}])},[e]);function p(e){a(t=>[...t,{id:e.id,name:e.name}])}function m(e){a(t=>t.slice(0,e+1))}let h=l.filter(e=>w$(e.mime_type,n)),g=s.length===0&&h.length===0;return(0,U.jsx)(yw,{open:e,onOpenChange:t,children:(0,U.jsxs)(Cw,{className:`max-w-3xl`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Media Library`})}),i.length>1&&(0,U.jsx)(`div`,{className:`flex items-center gap-1 text-sm -mt-1`,children:i.map((e,t)=>(0,U.jsxs)(`span`,{className:`flex items-center gap-1 text-muted-foreground`,children:[t>0&&(0,U.jsx)(`span`,{children:`/`}),t===i.length-1?(0,U.jsx)(`span`,{className:`font-medium text-foreground`,children:t===0?(0,U.jsx)(go,{className:`size-3.5`}):e.name}):(0,U.jsx)(`button`,{onClick:()=>m(t),className:`hover:text-foreground transition-colors`,children:t===0?(0,U.jsx)(go,{className:`size-3.5`}):e.name})]},t))}),d?(0,U.jsx)(`div`,{className:`flex items-center justify-center py-16`,children:(0,U.jsx)(by,{className:`size-5`})}):g?(0,U.jsx)(`p`,{className:`py-16 text-center text-sm text-muted-foreground`,children:l.length===0&&s.length===0?`No media found.`:`No matching files in this folder.`}):(0,U.jsxs)(`div`,{className:`flex flex-col gap-4 max-h-[60vh] overflow-y-auto pr-1`,children:[s.length>0&&(0,U.jsx)(`div`,{className:`grid grid-cols-1 gap-1.5 sm:grid-cols-2`,children:s.map(e=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>p(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,U.jsx)(lo,{className:`size-7 shrink-0 text-muted-foreground`}),(0,U.jsxs)(`div`,{className:`min-w-0`,children:[(0,U.jsx)(`p`,{className:`truncate text-xs font-bold leading-tight`,title:e.name,children:e.name}),(0,U.jsxs)(`p`,{className:`text-[10px] text-muted-foreground`,children:[e.item_count,` `,e.item_count===1?`item`:`items`]})]})]},e.id))}),h.length>0&&(0,U.jsx)(`div`,{className:`grid grid-cols-3 gap-2 sm:grid-cols-4 md:grid-cols-5`,children:h.map(e=>(0,U.jsxs)(`button`,{type:`button`,onClick:()=>{r(e),t(!1)},className:`group relative overflow-hidden rounded-md border bg-card text-left transition-colors hover:border-primary`,children:[(0,U.jsx)(`div`,{className:`aspect-square bg-muted`,children:S$(e.mime_type)?(0,U.jsx)(`img`,{src:e.url,alt:e.filename,className:`h-full w-full object-cover`}):(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,U.jsx)(ao,{className:`size-6 text-muted-foreground`})})}),(0,U.jsxs)(`div`,{className:`p-1.5`,children:[(0,U.jsx)(`p`,{className:`truncate text-[11px] font-medium leading-tight`,title:e.filename,children:e.filename}),(0,U.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:x$(e.size)})]}),(0,U.jsx)(`div`,{className:`absolute inset-0 rounded-md ring-2 ring-primary ring-offset-1 opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none`})]},e.id))})]})]})})}function E$({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}let t=localStorage.getItem(`plank_token`);fetch(`/cms/admin/media/${e}/url`,{headers:t?{Authorization:`Bearer ${t}`}:{}}).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 C$(e);u(n.url),t(n.id)}catch(e){c(e instanceof Error?e.message:`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,U.jsxs)(`div`,{className:`relative w-full rounded-md border bg-muted/30 overflow-hidden`,children:[l?h?(0,U.jsx)(`img`,{src:l,alt:`Media`,className:`max-h-72 w-full object-contain`}):(0,U.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[(0,U.jsx)(_o,{className:`size-4 text-muted-foreground shrink-0`}),(0,U.jsx)(`span`,{className:`text-xs text-muted-foreground truncate`,children:l})]}):(0,U.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 text-muted-foreground`,children:[(0,U.jsx)(_o,{className:`size-4 shrink-0`}),(0,U.jsx)(`span`,{className:`text-xs`,children:`Loading…`})]}),(0,U.jsx)(J,{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,U.jsx)(ns,{className:`size-3.5`})})]}):(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`input`,{ref:i,type:`file`,accept:y$(n),className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&m(t)}}),(0,U.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,U.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,U.jsx)(Qo,{className:`size-4`}),a?`Uploading…`:`Upload`]}),(0,U.jsx)(`div`,{className:`w-px bg-border`}),(0,U.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,U.jsx)(so,{className:`size-4`}),`Library`]})]}),s&&(0,U.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:s}),(0,U.jsx)(T$,{open:d,onOpenChange:f,allowedTypes:n,onSelect:e=>{u(e.url),t(e.id)}})]})}function D$({id:e,previewUrl:t,filename:n,onRemove:r,disabled:i=!1}){let{attributes:a,listeners:o,setNodeRef:s,transform:c,transition:l,isDragging:u}=gO({id:e});return(0,U.jsxs)(`div`,{ref:s,style:{transform:kT.Transform.toString(c),transition:l,opacity:u?.4:1},className:`relative aspect-square overflow-hidden rounded-md border bg-muted`,children:[t?(0,U.jsx)(`img`,{src:t,alt:n,className:`h-full w-full object-cover`}):(0,U.jsx)(`div`,{className:`flex h-full items-center justify-center`,children:(0,U.jsx)(_o,{className:`size-5 text-muted-foreground`})}),n&&(0,U.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,U.jsx)(`p`,{className:`truncate text-[10px] leading-none text-foreground`,children:n})}),(0,U.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,U.jsx)(ns,{className:`size-3`})}),!i&&(0,U.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,U.jsx)(uo,{className:`size-3`})})]})}function O$({value:e,onChange:t,disabled:n=!1}){let r=Array.isArray(e)?e:[],[i,a]=(0,v.useState)({}),[o,s]=(0,v.useState)({}),[c,l]=(0,v.useState)(!1),[u,d]=(0,v.useState)(null),[f,p]=(0,v.useState)(!1),m=(0,v.useRef)(null),h=GT(WT(GE,{activationConstraint:{distance:5}}));(0,v.useEffect)(()=>{let e=r.filter(e=>!e.startsWith(`http`)&&!(e in i));if(e.length===0)return;let t=localStorage.getItem(`plank_token`);Promise.all(e.map(e=>fetch(`/cms/admin/media/${e}/url`,{headers:t?{Authorization:`Bearer ${t}`}:{}}).then(e=>e.ok?e.json():null).then(t=>t?[e,t.url]:null).catch(()=>null))).then(e=>{let t={};for(let n of e)n&&(t[n[0]]=n[1]);Object.keys(t).length>0&&a(e=>({...e,...t}))})},[r.join(`,`)]),(0,v.useEffect)(()=>{let e=r.filter(e=>!e.startsWith(`http`)&&!(e in o));if(e.length===0)return;let t=localStorage.getItem(`plank_token`);fetch(`/cms/admin/media`,{headers:t?{Authorization:`Bearer ${t}`}:{}}).then(e=>e.ok?e.json():{items:[]}).then(t=>{let n={};for(let r of t.items)e.includes(r.id)&&(n[r.id]=r.filename);Object.keys(n).length>0&&s(e=>({...e,...n}))}).catch(()=>{})},[r.join(`,`)]);function g(e){return e.startsWith(`http`)?e:i[e]??null}function _(e){return o[e]??``}function y(e){if(n)return;let{active:i,over:a}=e;!a||i.id===a.id||t(ZD(r,r.indexOf(i.id),r.indexOf(a.id)))}async function b(e){if(e.length===0)return;l(!0),d(null);let n=r;try{for(let r of e){let e=await C$(r);a(t=>({...t,[e.id]:e.url})),s(t=>({...t,[e.id]:r.name})),n=[...n,e.id],t(n)}}catch(e){d(e instanceof Error?e.message:`Upload failed.`)}finally{l(!1),m.current&&(m.current.value=``)}}return(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(`input`,{ref:m,type:`file`,accept:`image/*`,multiple:!0,className:`hidden`,onChange:e=>{b(Array.from(e.target.files??[]))}}),r.length>0&&(0,U.jsx)(HD,{sensors:h,collisionDetection:QT,onDragEnd:y,children:(0,U.jsx)(cO,{items:r,strategy:nO,children:(0,U.jsx)(`div`,{className:`grid grid-cols-3 gap-2 sm:grid-cols-4`,children:r.map(e=>(0,U.jsx)(D$,{id:e,previewUrl:g(e),filename:_(e),onRemove:()=>t(r.filter(t=>t!==e)),disabled:n},e))})})}),(0,U.jsxs)(`div`,{className:`flex w-full gap-2 rounded-md border border-dashed p-3`,children:[(0,U.jsxs)(`button`,{type:`button`,disabled:c||n,onClick:()=>m.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,U.jsx)(Qo,{className:`size-4`}),c?`Uploading…`:`Upload`]}),(0,U.jsx)(`div`,{className:`w-px bg-border`}),(0,U.jsxs)(`button`,{type:`button`,disabled:c||n,onClick:()=>p(!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,U.jsx)(so,{className:`size-4`}),`Library`]})]}),u&&(0,U.jsx)(`p`,{className:`text-xs text-destructive`,children:u}),(0,U.jsx)(T$,{open:f,onOpenChange:p,allowedTypes:[`image`],onSelect:e=>{r.includes(e.id)||(a(t=>({...t,[e.id]:e.url})),s(t=>({...t,[e.id]:e.filename})),t([...r,e.id]))}})]})}function k$({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,U.jsx)(Hv,{type:`text`,inputMode:`decimal`,className:q(`w-full`,`text-base!`),value:r,placeholder:`0.00`,onChange:a,disabled:n})}function A$(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 j$({value:e,onChange:t,inputId:n,disabled:r=!1}){let i=A$(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,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(`div`,{className:`inline-flex items-center gap-1 rounded-md border border-border p-1`,children:[`string`,`number`,`boolean`].map(e=>(0,U.jsx)(`button`,{type:`button`,disabled:r,onClick:()=>a(e),className:q(`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,U.jsx)(Hv,{className:q(`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,U.jsx)(k$,{value:i.value,onChange:e=>t({kind:`number`,value:typeof e==`number`&&!isNaN(e)?e:0}),disabled:r}),i.kind===`boolean`&&(0,U.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,U.jsx)(EO,{id:n,checked:!!i.value,onCheckedChange:e=>t({kind:`boolean`,value:!!e}),disabled:r}),(0,U.jsx)(X,{htmlFor:n,className:`cursor-pointer font-normal text-base`,children:i.value?`True`:`False`})]})]})}function M$({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(Ty(e,n)))},[e,n]);function u(e){s(e),a(!1),e&&t(Ey(e,c,n))}function d(e){l(e),o&&t(Ey(o,e,n))}return(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsxs)(RN,{open:i&&!r,onOpenChange:a,children:[(0,U.jsx)(zN,{asChild:!0,children:(0,U.jsxs)(J,{variant:`outline`,className:`w-40 justify-between font-normal text-base`,disabled:r,children:[o?HA(o,`MMM d, yyyy`):`Select date`,(0,U.jsx)(Ba,{className:`size-4 opacity-50`})]})}),(0,U.jsx)(BN,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,U.jsx)(IN,{mode:`single`,selected:o,captionLayout:`dropdown`,defaultMonth:o??new Date,onSelect:u})})]}),(0,U.jsx)(Hv,{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,U.jsx)(J,{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,U.jsx)(ns,{className:`size-3.5`})})]})}function N$(e){return e.find(e=>e.type===`uid`)?.name??e.find(e=>e.type===`string`)?.name??null}var P$={data:null,promise:null};function F$(e){return P$.data?Promise.resolve(P$.data):(P$.promise||=fetch(`/cms/admin/content-types`,{headers:e}).then(e=>e.ok?e.json():[]).then(e=>(P$.data=e,e)).catch(()=>[]),P$.promise)}function I$(e,t){return e.find(e=>e.tableName===t)??null}function L$(e,t){return fetch(`/cms/admin/content-types/${e}/entries?limit=200`,{headers:t}).then(e=>e.ok?e.json():{data:[]}).catch(()=>({data:[]}))}function R$(e){let[t,n]=(0,v.useState)([]),[r,i]=(0,v.useState)(!1);return(0,v.useEffect)(()=>{if(!e)return;i(!0);let t=localStorage.getItem(`plank_token`),r=t?{Authorization:`Bearer ${t}`}:{};F$(r).then(t=>{let n=I$(t,e);return n?L$(n.slug,r).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:t})=>{let r=e?N$(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 z$(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);let r=localStorage.getItem(`plank_token`),a=r?{Authorization:`Bearer ${r}`}:{};F$(a).then(t=>{let n=I$(t,e);return n?L$(n.slug,a).then(e=>({ctDef:n,res:e})):Promise.resolve({ctDef:null,res:{data:[]}})}).then(({ctDef:e,res:r})=>{let a=e?N$(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 B$({relatedTable:e,relatedField:t,currentId:n}){let{entries:r,loading:i}=z$(e,t,n);return n?i?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 py-1`,children:[(0,U.jsx)(by,{className:`size-3.5`}),(0,U.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Loading…`})]}):r.length===0?(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No linked entries.`}):(0,U.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:r.map(e=>(0,U.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,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Save this entry first to see linked items.`})}function V$({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),{entries:u,loading:d}=R$(t);if(e===`one-to-many`)return(0,U.jsx)(B$,{relatedTable:t,relatedField:n,currentId:r});let f=s?Array.isArray(i)?i:[]:i&&!Array.isArray(i)?[i]:[];function p(e){return u.find(t=>t.id===e)?.label??e}function m(e){if(s){let t=f.includes(e)?f.filter(t=>t!==e):[...f,e];a(t.length>0?t:null)}else a(f[0]===e?null:e),l(!1)}function h(e){if(s){let t=f.filter(t=>t!==e);a(t.length>0?t:null)}else a(null)}let g=s?f.length>0?`${f.length} selected`:`Select entries…`:f.length>0?p(f[0]):`Select entry…`;return(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsxs)(RN,{open:c&&!o,onOpenChange:l,children:[(0,U.jsx)(zN,{asChild:!0,children:(0,U.jsxs)(J,{variant:`outline`,role:`combobox`,"aria-expanded":c,className:`w-full justify-between font-normal text-base`,disabled:o,children:[(0,U.jsx)(`span`,{className:`truncate text-left`,children:g}),(0,U.jsx)(Wa,{className:`ml-2 size-4 shrink-0 opacity-50`})]})}),(0,U.jsx)(BN,{className:`w-(--radix-popover-trigger-width) p-0`,align:`start`,children:(0,U.jsxs)(u$,{children:[(0,U.jsx)(d$,{placeholder:`Search…`}),(0,U.jsx)(f$,{children:d?(0,U.jsx)(`div`,{className:`flex items-center justify-center py-6`,children:(0,U.jsx)(by,{className:`size-4`})}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(p$,{children:`No entries found.`}),(0,U.jsx)(m$,{children:u.map(e=>{let t=f.includes(e.id);return(0,U.jsxs)(g$,{value:e.label,onSelect:()=>{o||m(e.id)},children:[(0,U.jsx)(za,{className:`mr-2 size-4 ${t?`opacity-100`:`opacity-0`}`}),(0,U.jsx)(`span`,{className:`truncate`,children:e.label}),(0,U.jsx)(`span`,{className:`ml-auto text-xs text-muted-foreground opacity-60 shrink-0`,children:e.id.slice(0,8)})]},e.id)})})]})})]})})]}),f.length>0&&(0,U.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:f.map(e=>(0,U.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md border bg-muted px-2 py-0.5 text-xs`,children:[p(e),(0,U.jsx)(`button`,{type:`button`,onClick:()=>h(e),disabled:o,className:`text-muted-foreground hover:text-foreground`,children:(0,U.jsx)(ns,{className:`size-3`})})]},e))})]})}var H$={full:`col-span-6`,"two-thirds":`col-span-4`,half:`col-span-3`,third:`col-span-2`};function U$({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,U.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,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(HN,{type:`single`,collapsible:!0,className:`w-full`,children:i.map((e,t)=>(0,U.jsxs)(UN,{value:`item-${t}`,className:`mb-2 rounded-md border border-dashed last:border-b transition-colors hover:bg-accent/50`,children:[(0,U.jsxs)(`div`,{className:`relative data-[state=open]:border-b data-[state=open]:border-border/50`,children:[(0,U.jsxs)(WN,{className:`w-full py-2 pl-3 pr-24 text-muted-foreground [&>svg]:hidden`,children:[`Item `,t+1]}),(0,U.jsxs)(`div`,{className:`absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5`,children:[(0,U.jsx)(J,{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,U.jsx)(Ua,{className:`size-3.5`})}),(0,U.jsx)(J,{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,U.jsx)(Ba,{className:`size-3.5`})}),(0,U.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,U.jsx)(qo,{className:`size-3.5`})})]})]}),(0,U.jsx)(GN,{className:`px-3 pt-3`,children:(0,U.jsx)(`div`,{className:`grid grid-cols-6 gap-3`,children:a.map(n=>(0,U.jsxs)(`div`,{className:H$[n.width??`full`]??`col-span-6`,children:[(0,U.jsx)(`div`,{className:`mb-1 flex items-center gap-1`,children:(0,U.jsxs)(X,{className:`text-xs font-medium`,children:[n.name,n.required&&(0,U.jsx)(`span`,{className:`ml-0.5 text-destructive`,children:`*`})]})}),(0,U.jsx)(Y$,{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,U.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,U.jsx)(Po,{className:`size-3.5`}),`Add item`]})]})}var W$=3,G$=20;function K$({value:e,onChange:t,disabled:n=!1,depth:r=0}){let i=Array.isArray(e)?e:[],a=r+1<W$,o=i.length<G$;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,U.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,U.jsx)(Po,{className:`size-3.5`}),`Add item`]}):(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(HN,{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,U.jsxs)(UN,{value:`navigation-item-${r}-${t}`,className:`mb-2 rounded-md border border-dashed last:border-b transition-colors hover:bg-accent/50`,children:[(0,U.jsxs)(`div`,{className:`relative data-[state=open]:border-b data-[state=open]:border-border/50`,children:[(0,U.jsx)(WN,{className:`w-full py-2 pl-3 pr-24 text-muted-foreground [&>svg]:hidden`,children:s}),(0,U.jsxs)(`div`,{className:`absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-0.5`,children:[(0,U.jsx)(J,{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,U.jsx)(Ua,{className:`size-3.5`})}),(0,U.jsx)(J,{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,U.jsx)(Ba,{className:`size-3.5`})}),(0,U.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,U.jsx)(qo,{className:`size-3.5`})})]})]}),(0,U.jsxs)(GN,{className:`px-3 pt-3`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-6 gap-3`,children:[(0,U.jsxs)(`div`,{className:`col-span-3`,children:[(0,U.jsx)(X,{className:`mb-1 block text-xs font-medium`,children:`label`}),(0,U.jsx)(Hv,{className:`text-base`,value:e.label??``,onChange:e=>c(o,t=>({...t,label:e.target.value})),disabled:n})]}),(0,U.jsxs)(`div`,{className:`col-span-3`,children:[(0,U.jsx)(X,{className:`mb-1 block text-xs font-medium`,children:`href`}),(0,U.jsx)(Hv,{className:`text-base`,value:e.href??``,onChange:e=>c(o,t=>({...t,href:e.target.value})),disabled:n})]})]}),a?(0,U.jsxs)(`div`,{className:`mt-3 border-l border-border pl-3`,children:[(0,U.jsx)(`p`,{className:`mb-2 text-[11px] uppercase tracking-wide text-muted-foreground`,children:`Child items`}),(0,U.jsx)(K$,{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,U.jsxs)(`p`,{className:`mt-3 text-[11px] text-muted-foreground`,children:[`Maximum depth reached (`,W$,` levels).`]})]})]},t)})}),(0,U.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,U.jsx)(Po,{className:`size-3.5`}),`Add item`]}),!o&&(0,U.jsxs)(`p`,{className:`text-[11px] text-muted-foreground`,children:[`Maximum `,G$,` items allowed per level.`]})]})}function q$(e){return e.normalize(`NFD`).replace(/[\u0300-\u036f]/g,``).toLowerCase().replace(/\s+/g,`-`).replace(/[^a-z0-9-]/g,``).replace(/^-+|-+$/g,``)}function J$({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 pQ(e);m({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,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(`div`,{className:n?`pointer-events-none opacity-70`:``,children:(0,U.jsx)(uQ,{value:String(e??``),onChange:t,placeholder:`Type or add your content here...`,onInsertImage:p})}),(0,U.jsx)(yw,{open:a,onOpenChange:h,children:(0,U.jsxs)(Cw,{className:`max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Insert Image`})}),(0,U.jsx)(`input`,{ref:r,type:`file`,accept:`image/*`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];t&&g(t)}}),(0,U.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,U.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,U.jsx)(Qo,{className:`size-4`}),l?`Uploading…`:`Upload`]}),(0,U.jsx)(`div`,{className:`w-px bg-border`}),(0,U.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,U.jsx)(so,{className:`size-4`}),`Library`]})]}),d&&(0,U.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:d})]})}),(0,U.jsx)(T$,{open:s,onOpenChange:e=>{!e&&!a&&m(null),c(e)},allowedTypes:[`image`],onSelect:e=>{m({src:e.url,filename:e.filename,alt:e.alt,title:e.caption,width:e.width,height:e.height}),c(!1),o(!1)}})]})}function Y$({field:e,value:t,onChange:n,allValues:r,disabled:i,errorMessage:a}){let o=(0,v.useRef)(null),{timezone:s}=ya();(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=q$(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=q$(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=q$(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,U.jsxs)(`div`,{className:`flex items-center gap-2 pt-1`,children:[(0,U.jsx)(EO,{id:`field-${e.name}`,checked:!!t,onCheckedChange:e=>n(!!e),disabled:!!i}),(0,U.jsx)(X,{htmlFor:`field-${e.name}`,className:`cursor-pointer font-normal text-base`,children:t?`Yes`:`No`})]}):e.type===`richtext`?(0,U.jsx)(J$,{value:t,onChange:n,disabled:!!i}):e.type===`text`?(0,U.jsx)(VN,{className:q(c,`text-base`),value:String(t??``),placeholder:b$(e.name),onChange:e=>n(e.target.value),disabled:!!i}):e.type===`number`?e.subtype===`float`?(0,U.jsx)(k$,{value:t,onChange:n,disabled:!!i}):(0,U.jsx)(Hv,{type:`number`,className:q(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,U.jsx)(M$,{value:t,onChange:n,timezone:s,disabled:!!i}):e.type===`uid`?(0,U.jsxs)(`div`,{children:[(0,U.jsx)(Hv,{className:q(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,U.jsx)(`p`,{className:`mt-1 text-xs text-destructive`,children:a})]}):e.type===`media`?(0,U.jsx)(E$,{value:t,onChange:n,allowedTypes:e.allowedTypes,disabled:!!i}):e.type===`media-gallery`?(0,U.jsx)(O$,{value:t,onChange:n,disabled:!!i}):e.type===`relation`?(0,U.jsx)(V$,{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,U.jsx)(U$,{field:e,value:t,onChange:n,disabled:!!i}):e.type===`mixed`?(0,U.jsx)(j$,{value:t,onChange:n,inputId:`field-${e.name}-mixed-boolean`,disabled:!!i}):e.type===`navigation`?(0,U.jsx)(K$,{value:t,onChange:n,disabled:!!i}):(0,U.jsx)(Hv,{className:q(c,`text-base md:text-base`),value:String(t??``),placeholder:b$(e.name),onChange:e=>n(e.target.value),disabled:!!i})}function X$(e){return Array.isArray(e)?e.map(X$):e&&typeof e==`object`?Object.fromEntries(Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,X$(t)])):e}function Z$(e){return JSON.stringify(X$(e))}function Q$(e){let t=e.match(/Field "([^"]+)" already exists\.?/);return t?t[1]??null:null}function $$(){let{slug:e,id:t}=hr(),n=dr(),r=!t,{timezone:i,locales:a,defaultLocale:o,editorialMode:s}=ya(),{user:c,status:l}=ga(),u=c?.role?.toLowerCase()??``,{data:d,loading:f}=wa(e?`/cms/admin/content-types/${e}`:null),{data:p,loading:m}=wa(e&&t?`/cms/admin/entries/${e}/${t}`:null),{data:h}=wa(s&&[`editor`,`admin`,`super admin`].includes(c?.role?.toLowerCase()??``)?`/cms/admin/users`:null),{loading:g,request:_}=Vv(),{loading:y,request:b}=Vv(),{loading:x,request:S}=Vv(),[C,w]=(0,v.useState)({}),[T,E]=(0,v.useState)([]),[D,O]=(0,v.useState)(``),[k,A]=(0,v.useState)(!1),[j,M]=(0,v.useState)(`draft`),[N,P]=(0,v.useState)(``),[F,I]=(0,v.useState)(!1),[L,R]=(0,v.useState)(!1),[ee,te]=(0,v.useState)(!1),[ne,z]=(0,v.useState)(null),[B,re]=(0,v.useState)(null),[V,H]=(0,v.useState)(null),[ie,ae]=(0,v.useState)(null),[oe,se]=(0,v.useState)(!1),[ce,le]=(0,v.useState)(null),[ue,de]=(0,v.useState)(!1),[fe,pe]=(0,v.useState)(!1),[me,he]=(0,v.useState)(),[ge,_e]=(0,v.useState)(`09:00`),ve=(0,v.useRef)(`{}`),ye=(0,v.useRef)(!1);(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`];E(t),O(o??t[0]),A(!1),w(e),M(`draft`),P(``),I(!1),te(!1),z(null),re(null),H(null),ae(null),se(!1),le(null),ve.current=Z$(e);return}if(!p||!d)return;let e={};d.fields.forEach(t=>{e[t.name]=p[t.name]??(t.type===`boolean`?!1:``)});let t=p.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)E(s),O(s[0]);else{let e=a&&a.length>0?a:[`en`];E(e),O(o??e[0])}if(A(!!c),w(e),M(p.status??`draft`),te(!!p.review_rejected),z(p.editor_id??null),re(p._editor_first_name??null),H(p._editor_last_name??null),ae(p._editor_avatar_url??null),se(!1),le(null),ve.current=Z$(e),p.scheduled_for?(P(p.scheduled_for),he(new Date(p.scheduled_for)),_e(Ty(p.scheduled_for,i))):P(``),p.status===`published`&&p.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 p.published_data&&(n[i.name]=t(p.published_data[i.name]??(i.type===`boolean`?!1:``),i.type),r[i.name]=t(e[i.name],i.type))}),I(Z$(r)!==Z$(n))}else I(!1)},[p,d,r]);let be=Z$(C)!==ve.current,xe=Fr((0,v.useCallback)(()=>ye.current?!1:be,[be]));function Se(e,t){w(n=>({...n,[e]:t}))}function Ce(e,t,n){w(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 we(e){A(e),w(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 Te(){if(N)he(new Date(N)),_e(Ty(N,i));else{let e=new Date;e.setDate(e.getDate()+1),he(e),_e(`09:00`)}de(!0)}async function Ee(){if(!e||!d)return null;le(null);let n={},i=k&&C.localized&&typeof C.localized==`object`&&C.localized[o]&&typeof C.localized[o]==`object`?C.localized[o]:null;if(d.fields.forEach(e=>{let t=C[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)}),C.localized&&Object.keys(C.localized).length>0){let e=C.localized;e._meta||={},e._meta.enabled=k,e._meta.primary=o,n.localized=e}try{let i=await _(r?`/cms/admin/content-types/${e}/entries`:`/cms/admin/entries/${e}/${t}`,r?`POST`:`PUT`,n);return ve.current=Z$(C),i}catch(e){let t=Q$(e instanceof Error?e.message:``);return t&&d.fields.some(e=>e.type===`uid`&&e.name===t)&&le(t),null}}async function De(){let i=await Ee();if(i){if(j===`scheduled`){let n=r?i.id:t;try{await b(`/cms/admin/entries/${e}/${n}/status`,`PATCH`,{status:`draft`}),M(`draft`),P(``),de(!1)}catch{}}else j===`published`&&I(!0);r&&(ye.current=!0,n(`/content/${e}/${i.id}`,{replace:!0}))}}async function Oe(){if(!e)return;let i=t;if(be||r){let e=await Ee();if(!e)return;i=r?e.id:t,r&&(ye.current=!0)}let a=s&&(u===`contributor`||u===``||l!==`authenticated`);try{let t=await b(`/cms/admin/entries/${e}/${i}/status`,`PATCH`,{status:a?`pending`:`published`,review_rejected:!1});M(t?.status??(a?`pending`:`published`)),te(!!t?.review_rejected),z(t?.editor_id??ne),re(t?._editor_first_name??B),H(t?._editor_last_name??V),ae(t?._editor_avatar_url??ie),P(``),I(!1),de(!1),se(!1),r&&n(`/content/${e}/${i}`,{replace:!0})}catch{r&&i&&n(`/content/${e}/${i}`,{replace:!0})}}async function ke(){if(!e||!me||!ge)return;let a=Ey(me,ge,i);if(new Date(a)<=new Date)return;let o=t;if(be||r){let e=await Ee();if(!e)return;o=r?e.id:t,r&&(ye.current=!0)}try{await b(`/cms/admin/entries/${e}/${o}/status`,`PATCH`,{status:`scheduled`,scheduled_for:a}),M(`scheduled`),P(a),de(!1),r&&n(`/content/${e}/${o}`,{replace:!0})}catch{r&&o&&n(`/content/${e}/${o}`,{replace:!0})}}async function Ae(){if(!(!e||!t))try{await b(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`draft`}),M(`draft`),P(``),I(!1)}catch{}}async function je(){if(!(!e||!t))try{await S(`/cms/admin/entries/${e}/${t}`,`DELETE`),ye.current=!0,n(`/content/${e}`,{replace:!0})}catch{}}async function Me(n){if(!e||!t)return;let r=n===`none`?null:n,i=await b(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`in_review`,editor_id:r,review_locked_by_editor:p?.review_locked_by_editor??!1});M(i?.status??`in_review`),te(!!i?.review_rejected),z(i?.editor_id??r),re(i?._editor_first_name??null),H(i?._editor_last_name??null),ae(i?._editor_avatar_url??null),se(!1)}async function Ne(){se(e=>!e)}async function Pe(){if(!e||!t)return;let n=await b(`/cms/admin/entries/${e}/${t}/status`,`PATCH`,{status:`pending`,review_rejected:!0});M(n?.status??`pending`),te(!!n?.review_rejected),se(!1)}let Fe=f||!r&&m,Ie=g||y,Le=c?.permissions??[],Re=Le.includes(`*`)||Le.includes(`entries:write`),ze=Le.includes(`*`)||Le.includes(`entries:delete`),Be=u===`contributor`,Ve=u===`editor`,He=[`admin`,`super admin`].includes(u),Ue=u===`viewer`,We=Be||Ve,Ge=Be&&d?.kind===`single`,Ke=r||String(p?.created_by??``)===String(c?.id??``),qe=s&&Be&&j===`in_review`,Je=s&&(Ve||He)&&!!ne&&ne===c?.id,Ye=Je&&(j===`pending`||j===`in_review`)&&!ee,Xe=Ue||!Re||Ge||Be&&!Ke||s&&Be&&j===`pending`&&!ee||qe||s&&(Ve||He)&&(j===`pending`||j===`in_review`)&&(!Je||!oe),Ze=ze&&(!We||Ke),Qe=s&&Be&&j===`pending`&&(ee?!0:be)||be||j===`draft`||j===`scheduled`||!s&&j===`pending`||s&&j===`pending`&&!Be||s&&j===`in_review`&&!Be||F,$e=!!(me&&ge),et=s&&Be?`Review`:`Publish`;if(yO(`mod+s`,De,{enabled:!Xe&&!Ie&&(j===`scheduled`?!0:be),label:`Save draft`}),yO(`mod+shift+p`,Oe,{enabled:Qe&&!Ie&&!Xe,label:`Publish`}),Fe)return(0,U.jsxs)(`div`,{className:`flex items-center gap-2 py-12 text-muted-foreground`,children:[(0,U.jsx)(by,{className:`size-4`}),(0,U.jsx)(`span`,{className:`text-sm`,children:`Loading…`})]});if(!d)return null;let tt;tt=j===`scheduled`?(0,U.jsxs)(vw,{variant:`outline`,className:`border-blue-500 text-blue-600`,children:[(0,U.jsx)(Ia,{className:`size-3 mr-1`}),N?`Scheduled · ${wy(N,i)}`:`Scheduled`]}):j===`pending`?ee?(0,U.jsx)(vw,{variant:`destructive`,children:`Pending`}):(0,U.jsx)(vw,{className:`bg-amber-500 text-black hover:bg-amber-500`,children:`Pending`}):j===`in_review`?(0,U.jsx)(vw,{variant:`outline`,children:`In Review`}):j===`published`?(0,U.jsx)(vw,{variant:F?`secondary`:`default`,children:F?`Published (pending changes)`:`Published`}):(0,U.jsx)(vw,{variant:`secondary`,children:`Draft`});let nt=(h??[]).filter(e=>Ve?e.id===c?.id:He?e.id===c?.id||(e.role_name??``).toLowerCase()===`editor`:!1),rt=!r&&s&&(Ve||He)&&(j===`pending`||j===`in_review`),it=s&&!r&&rt,at=s&&!r&&!!ne,ot=Ye,st=Ye,ct=B||V;return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(yy,{children:(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:r?`New entry`:`Edit entry`}),tt]}),(0,U.jsx)(`p`,{className:`text-muted-foreground text-xs mt-1`,children:d.name})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[!r&&Ze&&!Ge&&(0,U.jsx)(J,{variant:`ghost`,size:`icon`,className:`text-muted-foreground hover:text-destructive`,onClick:()=>R(!0),disabled:x,children:(0,U.jsx)(qo,{className:`size-4`})}),!r&&j===`published`&&!Xe&&(0,U.jsxs)(J,{variant:`outline`,onClick:Ae,disabled:Ie,children:[y?(0,U.jsx)(by,{className:`size-4`}):null,`Revert to draft`]}),!r&&j===`scheduled`&&!Xe&&(0,U.jsxs)(J,{variant:`outline`,onClick:Ae,disabled:Ie,children:[y?(0,U.jsx)(by,{className:`size-4`}):null,`Cancel schedule`]}),it&&(0,U.jsxs)(Ow,{value:ne??`none`,onValueChange:Me,disabled:!rt||Ie,children:[(0,U.jsx)(jw,{className:`h-10 min-h-10 max-h-10 w-42 py-0`,children:(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(El,{avatarUrl:ie??null,firstName:B??null,lastName:V??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,U.jsx)(Aw,{placeholder:ct||`Assign editor`})]})}),(0,U.jsxs)(Pw,{children:[!Ve&&(0,U.jsx)(Iw,{value:`none`,children:`Unassign`}),nt.map(e=>(0,U.jsx)(Iw,{value:e.id,children:e.first_name||e.last_name||e.id},e.id))]})]}),!rt&&at&&(0,U.jsxs)(`div`,{className:`inline-flex h-10 items-center gap-2 rounded-md border border-input px-3 text-sm`,children:[(0,U.jsx)(El,{avatarUrl:ie??null,firstName:B??null,lastName:V??null,className:`size-5`,fallbackClassName:`text-[9px]`}),(0,U.jsx)(`span`,{children:ct||`Assigned editor`})]}),ot&&(0,U.jsx)(J,{variant:`outline`,size:`icon`,onClick:Ne,disabled:Ie,children:(0,U.jsx)(No,{className:`size-4`})}),st&&(0,U.jsx)(J,{variant:`outline`,size:`icon`,onClick:Pe,disabled:Ie,children:(0,U.jsx)(ns,{className:`size-4`})}),(0,U.jsxs)(J,{variant:`outline`,onClick:De,size:s?`icon`:`default`,disabled:Xe||(j===`scheduled`?Ie:!be||Ie),children:[g?(0,U.jsx)(by,{className:`size-4`}):s?(0,U.jsx)(Lo,{className:`size-4`}):null,!s&&(j===`scheduled`?`Save draft (cancel schedule)`:`Save draft`)]}),j!==`scheduled`&&!(s&&Be)&&(0,U.jsxs)(J,{variant:`outline`,onClick:Te,size:s?`icon`:`default`,disabled:Xe||Ie,children:[(0,U.jsx)(Ia,{className:`size-4`}),!s&&`Schedule`]}),(0,U.jsxs)(J,{onClick:Oe,disabled:Xe||!Qe||Ie,children:[y?(0,U.jsx)(by,{className:`size-4`}):null,j===`scheduled`?s&&Be?`Review`:`Publish now`:j===`published`&&!F?`Republish`:et]})]})]})}),(0,U.jsxs)(`section`,{className:`mt-24`,children:[ue&&!Xe&&(0,U.jsxs)(`div`,{className:`mb-6 flex items-end gap-2 rounded-lg border p-4 bg-muted/30`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{children:`Date`}),(0,U.jsxs)(RN,{open:fe,onOpenChange:pe,children:[(0,U.jsx)(zN,{asChild:!0,children:(0,U.jsxs)(J,{variant:`outline`,className:`w-40 justify-between font-normal`,children:[me?HA(me,`MMM d, yyyy`):`Select date`,(0,U.jsx)(Ba,{className:`size-4 opacity-50`})]})}),(0,U.jsx)(BN,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,U.jsx)(IN,{mode:`single`,selected:me,captionLayout:`dropdown`,defaultMonth:me??new Date,disabled:{before:new Date},onSelect:e=>{he(e),pe(!1)}})})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsxs)(X,{children:[`Time `,(0,U.jsx)(`span`,{className:`text-muted-foreground font-normal`,children:`(24h)`})]}),(0,U.jsx)(Hv,{type:`time`,className:`w-32 appearance-none bg-background [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`,value:ge,onChange:e=>_e(e.target.value)})]}),(0,U.jsxs)(J,{onClick:ke,disabled:!$e||Ie,children:[y?(0,U.jsx)(by,{className:`size-4`}):null,`Confirm`]}),(0,U.jsx)(J,{variant:`ghost`,onClick:()=>de(!1),children:`Cancel`})]}),(0,U.jsxs)(`div`,{className:`mb-4 flex items-center justify-between`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(rj,{checked:k,onCheckedChange:we,disabled:Xe}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`text-sm font-medium`,children:`Localization`}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Enable per-entry localization`})]})]}),(0,U.jsx)(`div`,{})]}),(0,U.jsx)(`div`,{children:k&&(0,U.jsx)($A,{value:D,onValueChange:e=>O(e),children:(0,U.jsx)(ej,{children:T.map(e=>(0,U.jsx)(tj,{value:e,disabled:Xe,children:e.toUpperCase()},e))})})})]}),(0,U.jsx)(`div`,{className:`grid grid-cols-6 gap-4`,children:d.fields.map(e=>{let n=[`string`,`text`,`richtext`].includes(e.type),r=C.localized&&C.localized[D]?C.localized[D][e.name]:void 0,i=n&&k?r:C[e.name],a=e.type===`uid`&&e.targetField&&k&&[`string`,`text`,`richtext`].includes(d.fields.find(t=>t.name===e.targetField)?.type??``);return(0,U.jsx)(`div`,{className:xO[e.width??`full`],children:(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsxs)(X,{htmlFor:`entry-${e.name}`,className:`capitalize`,children:[e.name.replace(/_/g,` `),e.required&&(0,U.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`})]}),(0,U.jsx)(Y$,{field:e,value:i,onChange:t=>{e.type===`uid`&&ce===e.name&&le(null),n&&k?Ce(D,e.name,t):Se(e.name,t)},allValues:{...C,id:t,__activeLocale:D,__localizationEnabled:k,__defaultLocale:o},disabled:!!a||Xe,errorMessage:e.type===`uid`&&ce===e.name?`${e.name} already exists.`:void 0})]})},e.name)})}),(0,U.jsx)(yw,{open:L,onOpenChange:R,children:(0,U.jsxs)(Cw,{className:`max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Delete this entry?`})}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone.`}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>R(!1),children:`Cancel`}),(0,U.jsxs)(J,{variant:`destructive`,onClick:je,disabled:x,children:[x?(0,U.jsx)(by,{className:`size-4`}):null,`Delete`]})]})]})}),(0,U.jsx)(yw,{open:xe.state===`blocked`,onOpenChange:()=>xe.reset?.(),children:(0,U.jsxs)(Cw,{className:`max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Unsaved changes`})}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Leave without saving?`}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>xe.reset?.(),children:`Stay`}),(0,U.jsx)(J,{variant:`destructive`,onClick:()=>xe.proceed?.(),children:`Leave`})]})]})})]})]})}function e1({...e}){return(0,U.jsx)(`nav`,{"aria-label":`breadcrumb`,"data-slot":`breadcrumb`,...e})}function t1({className:e,...t}){return(0,U.jsx)(`ol`,{"data-slot":`breadcrumb-list`,className:q(`flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5`,e),...t})}function n1({className:e,...t}){return(0,U.jsx)(`li`,{"data-slot":`breadcrumb-item`,className:q(`inline-flex items-center gap-1.5`,e),...t})}function r1({asChild:e,className:t,...n}){return(0,U.jsx)(e?Fl:`a`,{"data-slot":`breadcrumb-link`,className:q(`transition-colors hover:text-foreground`,t),...n})}function i1({className:e,...t}){return(0,U.jsx)(`span`,{"data-slot":`breadcrumb-page`,role:`link`,"aria-disabled":`true`,"aria-current":`page`,className:q(`font-normal text-foreground`,e),...t})}function a1({children:e,className:t,...n}){return(0,U.jsx)(`li`,{"data-slot":`breadcrumb-separator`,role:`presentation`,"aria-hidden":`true`,className:q(`[&>svg]:size-3.5`,t),...n,children:e??(0,U.jsx)(Ha,{})})}function o1(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`:`—`}function s1(e){let t=e.split(`/`).pop()??e;return t.replace(/\.[^.]+$/,``).trim()||t.trim()}function c1(e){return!!e?.startsWith(`image/`)}function l1(e){return!!e?.startsWith(`video/`)}function u1(e){return!!e?.startsWith(`audio/`)}function d1(e){return e===`application/pdf`}function f1(e,t){return e.split(`?`)[0].endsWith(`.m3u8`)||t===`application/x-mpegurl`||t===`application/vnd.apple.mpegurl`}async function p1(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(p1));n.push(...i.flat()),r()})};r()}),n}return[]}function m1({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,U.jsx)(`video`,{ref:t,controls:!0,className:`max-h-[70vh] w-full rounded-md bg-black`})}function h1({item:e}){let t=e.mime_type?.toLowerCase()??null;return c1(t)?(0,U.jsx)(`img`,{src:e.url,alt:e.alt??e.filename,className:`max-h-full max-w-full rounded-md object-contain`}):f1(e.url,t)?(0,U.jsx)(m1,{url:e.url}):l1(t)?(0,U.jsx)(`video`,{src:e.url,controls:!0,preload:`none`,className:`max-h-[70vh] w-full rounded-md bg-black`}):u1(t)?(0,U.jsxs)(`div`,{className:`flex flex-col items-center gap-4 py-6`,children:[(0,U.jsx)(no,{className:`size-14 text-muted-foreground`}),(0,U.jsx)(`audio`,{src:e.url,controls:!0,className:`w-full`})]}):d1(t)?(0,U.jsx)(`iframe`,{src:e.url,title:e.filename,className:`h-[70vh] w-full rounded-md border`}):(0,U.jsxs)(`div`,{className:`flex flex-col items-center gap-4 py-8 text-center`,children:[(0,U.jsx)(io,{className:`size-14 text-muted-foreground`}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.mime_type??`Unknown type`}),(0,U.jsx)(`a`,{href:e.url,target:`_blank`,rel:`noreferrer`,download:e.filename,children:(0,U.jsxs)(J,{variant:`outline`,size:`sm`,children:[(0,U.jsx)(Qa,{className:`size-4`}),`Download`]})})]})}function g1({folder:e,onOpen:t,onDelete:n,onRename:r,canDelete:i,canRename:a,selected:o,onToggle:s}){return(0,U.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`:``}`,onClick:()=>{o||t(e)},children:[(0,U.jsxs)(`div`,{className:`relative shrink-0 size-7 flex items-center justify-center`,children:[(0,U.jsx)(lo,{className:`size-7 text-muted-foreground transition-opacity ${o?`opacity-0`:`group-hover:opacity-0`}`}),(0,U.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center transition-opacity ${o?`opacity-100`:`opacity-0 group-hover:opacity-100`}`,onClick:e=>e.stopPropagation(),children:(0,U.jsx)(EO,{checked:o,onCheckedChange:()=>s(`folder:${e.id}`),"aria-label":`Select folder`})})]}),(0,U.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,U.jsx)(`p`,{className:`text-sm font-bold truncate`,title:e.name,children:e.name}),(0,U.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[e.item_count,` `,e.item_count===1?`item`:`items`]})]}),!o&&(a||i)&&(0,U.jsxs)(P_,{children:[(0,U.jsx)(F_,{asChild:!0,children:(0,U.jsx)(`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,U.jsx)($a,{className:`size-4`})})}),(0,U.jsxs)(R_,{align:`end`,onClick:e=>e.stopPropagation(),children:[a&&(0,U.jsxs)(z_,{onSelect:()=>r(e),children:[(0,U.jsx)(No,{className:`size-4`}),`Rename`]}),i&&(0,U.jsxs)(z_,{onSelect:()=>n(e),className:`text-destructive focus:text-destructive`,children:[(0,U.jsx)(qo,{className:`size-4`}),`Delete`]})]})]})]})}function _1({item:e,onDelete:t,onPreview:n,canDelete:r,selected:i,onToggle:a}){let o=e.mime_type?.toLowerCase()??null;return(0,U.jsxs)(`div`,{className:`group relative rounded-lg border bg-card overflow-hidden transition-colors ${i?`ring-2 ring-primary`:``}`,children:[(0,U.jsx)(`div`,{className:`aspect-square bg-muted flex items-center justify-center cursor-pointer`,onClick:()=>{i||n(e)},children:c1(o)?(0,U.jsx)(`img`,{src:e.url,alt:e.alt??e.filename,className:`h-full w-full object-cover`}):l1(o)||f1(e.url,o)?(0,U.jsx)(ro,{className:`size-10 text-muted-foreground`}):u1(o)?(0,U.jsx)(no,{className:`size-10 text-muted-foreground`}):d1(o)?(0,U.jsx)(io,{className:`size-10 text-muted-foreground`}):(0,U.jsx)(ao,{className:`size-10 text-muted-foreground`})}),(0,U.jsx)(`div`,{className:`absolute top-1.5 left-1.5 transition-opacity ${i?`opacity-100`:`opacity-0 group-hover:opacity-100`}`,children:(0,U.jsx)(EO,{checked:i,onCheckedChange:()=>a(e.id),"aria-label":`Select file`,className:`bg-background/80 backdrop-blur-sm`})}),!i&&r&&(0,U.jsx)(`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,U.jsx)(qo,{className:`size-3.5`})}),(0,U.jsxs)(`div`,{className:`p-2`,children:[(0,U.jsx)(`p`,{className:`text-xs font-medium truncate`,title:e.filename,children:e.filename}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o1(e.size)})]})]})}function v1(){let e=(0,v.useRef)(null),{user:t}=ga(),n=t?.permissions??[],r=n.includes(`*`)||n.includes(`media:write`),i=n.includes(`*`)||n.includes(`media:delete`),[a,o]=(0,v.useState)([{id:null,name:`Media`}]),s=a[a.length-1].id,[c,l]=(0,v.useState)(1),[u,d]=(0,v.useState)(``),[f,p]=(0,v.useState)(``);(0,v.useEffect)(()=>{let e=setTimeout(()=>{p(u),l(1)},300);return()=>clearTimeout(e)},[u]),(0,v.useEffect)(()=>{l(1),d(``),p(``)},[s]);let{data:m,loading:h,refetch:g}=wa(`/cms/admin/folders?parent_id=${s??``}`),{data:_,loading:y,refetch:b}=wa(`/cms/admin/media?folder_id=${s??``}&page=${c}&limit=48${f?`&search=${encodeURIComponent(f)}`:``}`),x=(0,v.useCallback)(()=>{g(),b()},[g,b]),[S,C]=(0,v.useState)(!1),[w,T]=(0,v.useState)(null),[E,D]=(0,v.useState)(new Set),[O,k]=(0,v.useState)(null),[A,j]=(0,v.useState)(``),[M,N]=(0,v.useState)(``),[P,F]=(0,v.useState)(``),[I,L]=(0,v.useState)(!1),[R,ee]=(0,v.useState)(null),[te,ne]=(0,v.useState)(null),[z,B]=(0,v.useState)(null),[re,V]=(0,v.useState)(null),[H,ie]=(0,v.useState)(``),[ae,oe]=(0,v.useState)(!1),[se,ce]=(0,v.useState)(``),[le,ue]=(0,v.useState)(!1),[de,fe]=(0,v.useState)(!1),{loading:pe,error:me,request:he}=Vv(),{loading:ge,error:_e,request:ve}=Vv();async function ye(e){if(e.some(({relativePath:e})=>e.endsWith(`.m3u8`))){let t=localStorage.getItem(`plank_token`),n=t?{Authorization:`Bearer ${t}`}:{},r=new FormData;for(let{file:t,relativePath:n}of e)r.append(`files`,t,n);s&&r.append(`folder_id`,s),r.append(`bundle`,`true`);let i=await fetch(`/cms/admin/media`,{method:`POST`,headers:n,body:r});if(!i.ok){let e=await i.text(),t=`Upload failed.`;try{t=JSON.parse(e).error??t}catch{}throw Error(t)}}else await Promise.all(e.map(({file:e})=>pQ(e,{folderId:s})))}async function be(t){if(r&&!(!t||t.length===0)){C(!0),T(null);try{await ye(Array.from(t).map(e=>({file:e,relativePath:e.webkitRelativePath||e.name}))),x()}catch(e){T(e instanceof Error?e.message:`Upload failed.`)}finally{C(!1),e.current&&(e.current.value=``)}}}async function xe(e){if(!r)return;e.preventDefault();let t=Array.from(e.dataTransfer.items);if(!t.some(e=>typeof e.webkitGetAsEntry==`function`)){be(e.dataTransfer.files);return}C(!0),T(null);try{let e=t.map(e=>e.webkitGetAsEntry()).filter(e=>e!==null);await ye((await Promise.all(e.map(p1))).flat()),x()}catch(e){T(e instanceof Error?e.message:`Upload failed.`)}finally{C(!1)}}function Se(e){o(t=>[...t,{id:e.id,name:e.name}]),D(new Set)}function Ce(e){o(t=>t.slice(0,e+1)),D(new Set)}async function we(){if(r&&se.trim())try{await ve(`/cms/admin/folders`,`POST`,{name:se.trim(),parent_id:s}),oe(!1),ce(``),g()}catch{}}async function Te(){if(r&&!(!re||!H.trim()))try{await ve(`/cms/admin/folders/${re.id}`,`PATCH`,{name:H.trim()}),V(null),g()}catch{}}async function Ee(){if(i&&z)try{await he(`/cms/admin/folders/${z.id}`,`DELETE`),B(null),g()}catch{}}async function De(){if(i&&te)try{await he(`/cms/admin/media/${te.id}`,`DELETE`),ne(null),b()}catch{}}function Oe(e){D(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}function ke(e){k(e),j(e.filename),N(e.alt??s1(e.filename)),F(e.caption??``),ee(null)}function Ae(e){j(e);let t=s1(A),n=s1(e);(!M.trim()||M===t)&&N(n)}let je=m?.folders??[],Me=_?.items??[],Ne=[...je.map(e=>`folder:${e.id}`),...Me.map(e=>e.id)];!(Ne.length>0&&Ne.every(e=>E.has(e)))&&Ne.some(e=>E.has(e));async function Pe(){if(!i||de)return;fe(!0);let e=localStorage.getItem(`plank_token`),t=e?{Authorization:`Bearer ${e}`}:{};try{await Promise.all([...[...E].filter(e=>e.startsWith(`folder:`)).map(e=>fetch(`/cms/admin/folders/${e.slice(7)}`,{method:`DELETE`,headers:t})),...[...E].filter(e=>!e.startsWith(`folder:`)).map(e=>fetch(`/cms/admin/media/${e}`,{method:`DELETE`,headers:t}))]),ue(!1),D(new Set),x()}finally{fe(!1)}}let Fe=h||y,Ie=je.length===0&&Me.length===0;return(0,U.jsxs)(`div`,{children:[(0,U.jsx)(yy,{children:(0,U.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Media Library`}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsxs)(J,{variant:`outline`,onClick:()=>{ce(``),oe(!0)},disabled:!r,children:[(0,U.jsx)(co,{className:`size-4`}),`New folder`]}),(0,U.jsxs)(J,{onClick:()=>e.current?.click(),disabled:S||!r,children:[S?(0,U.jsx)(by,{className:`size-4`}):(0,U.jsx)(Qo,{className:`size-4`}),S?`Uploading…`:`Upload`]})]})]})}),(0,U.jsxs)(`section`,{className:`mt-24`,children:[a.length>1&&(0,U.jsx)(e1,{className:`mb-4`,children:(0,U.jsx)(t1,{children:a.map((e,t)=>(0,U.jsxs)(v.Fragment,{children:[t>0&&(0,U.jsx)(a1,{}),(0,U.jsx)(n1,{children:t===a.length-1?(0,U.jsx)(i1,{children:t===0?(0,U.jsx)(go,{className:`size-3.5`}):e.name}):(0,U.jsx)(r1,{asChild:!0,children:(0,U.jsx)(`button`,{onClick:()=>Ce(t),children:t===0?(0,U.jsx)(go,{className:`size-3.5`}):e.name})})})]},t))})}),(0,U.jsxs)(`div`,{className:`mb-4 flex items-center gap-2 rounded-lg border border-border bg-muted/50 p-2`,children:[(0,U.jsxs)(`div`,{className:`relative max-w-72 w-full`,children:[(0,U.jsx)(Ro,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground pointer-events-none`}),(0,U.jsx)(Hv,{className:`pl-9 h-8 bg-background`,placeholder:`Search media…`,value:u,onChange:e=>d(e.target.value)})]}),!y&&_!=null&&(0,U.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[Me.length,` / `,_.total,` `,_.total===1?`file`:`files`]}),(0,U.jsx)(`div`,{className:`ml-auto flex h-8 items-center gap-2`,children:E.size>0?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(`span`,{className:`text-sm font-medium`,children:[E.size,` selected`]}),(0,U.jsx)(J,{variant:`outline`,size:`sm`,onClick:()=>D(new Set),children:`Clear`}),i&&(0,U.jsxs)(J,{variant:`destructive`,size:`sm`,disabled:de,onClick:()=>ue(!0),children:[(0,U.jsx)(qo,{className:`size-3.5`}),`Delete`]})]}):!Ie&&!Fe?(0,U.jsxs)(`button`,{className:`flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors`,onClick:()=>D(new Set(Ne)),children:[(0,U.jsx)(EO,{checked:!1,"aria-hidden":!0,className:`pointer-events-none`}),`Select all`]}):null})]}),(0,U.jsx)(`input`,{ref:e,type:`file`,multiple:!0,className:`hidden`,onChange:e=>be(e.target.files)}),w&&(0,U.jsx)(`p`,{className:`mb-4 text-sm text-destructive`,children:w}),Fe?(0,U.jsx)(`div`,{className:`flex items-center gap-2 py-16 justify-center text-muted-foreground`,children:(0,U.jsx)(by,{className:`size-5`})}):Ie?(0,U.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:()=>r&&e.current?.click(),onDragOver:e=>e.preventDefault(),onDrop:xe,children:[(0,U.jsx)(Qo,{className:`size-8 text-muted-foreground mb-3`}),(0,U.jsx)(`p`,{className:`text-sm font-medium`,children:`Drop files or folders here, or click to upload`}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:`Images, videos, audio, documents and more`})]}):(0,U.jsxs)(`div`,{className:`flex flex-col gap-6`,onDragOver:e=>e.preventDefault(),onDrop:xe,children:[je.length>0&&(0,U.jsx)(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4`,children:je.map(e=>(0,U.jsx)(g1,{folder:e,onOpen:Se,onDelete:B,onRename:e=>{V(e),ie(e.name)},canDelete:i,canRename:r,selected:E.has(`folder:${e.id}`),onToggle:Oe},e.id))}),Me.length>0&&(0,U.jsx)(`div`,{className:`grid grid-cols-2 gap-3 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-6`,children:Me.map(e=>(0,U.jsx)(_1,{item:e,onDelete:ne,onPreview:ke,canDelete:i,selected:E.has(e.id),onToggle:Oe},e.id))})]}),(_?.pages??0)>1&&(0,U.jsx)(`div`,{className:`mt-4`,children:(0,U.jsx)(JO,{className:`mx-0 w-auto justify-end`,children:(0,U.jsxs)(YO,{children:[(0,U.jsx)(XO,{children:(0,U.jsx)(QO,{href:`#`,onClick:e=>{e.preventDefault(),c>1&&l(c-1)},"aria-disabled":c===1,className:c===1?`pointer-events-none opacity-50`:``})}),(0,U.jsx)(XO,{children:(0,U.jsx)($O,{href:`#`,onClick:e=>{e.preventDefault(),c<(_?.pages??1)&&l(c+1)},"aria-disabled":c===(_?.pages??1),className:c===(_?.pages??1)?`pointer-events-none opacity-50`:``})})]})})}),(0,U.jsx)(yw,{open:!!O,onOpenChange:e=>{e||(k(null),ee(null),F(``))},children:(0,U.jsxs)(Cw,{className:`sm:max-w-5xl max-h-[85vh] overflow-hidden p-0`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{className:`truncate px-6 pt-6 pr-12`,title:O?.filename,children:O?.filename})}),O&&(0,U.jsxs)(`form`,{className:`grid max-h-[calc(85vh-4rem)] min-h-0 gap-0 lg:grid-cols-[minmax(0,1fr)_320px]`,onSubmit:async e=>{e.preventDefault(),L(!0),ee(null);let t=localStorage.getItem(`plank_token`);try{let e=await fetch(`/cms/admin/media/${O.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`,...t?{Authorization:`Bearer ${t}`}:{}},body:JSON.stringify({filename:A||O.filename,alt:M.trim()||null,caption:P.trim()||null})});if(!e.ok)throw Error(`Save failed.`);ke(await e.json()),b()}catch(e){ee(e instanceof Error?e.message:`Save failed.`)}finally{L(!1)}},children:[(0,U.jsx)(`div`,{className:`flex min-h-0 items-center justify-center overflow-hidden bg-muted/30 px-6 py-4`,children:(0,U.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,U.jsx)(h1,{item:O})})}),(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-col border-t lg:border-l lg:border-t-0`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 border-b px-6 py-4 text-xs text-muted-foreground`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Type`}),(0,U.jsx)(`p`,{className:`break-all`,children:O.mime_type??`—`})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Size`}),(0,U.jsx)(`p`,{children:o1(O.size??null)})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Dimensions`}),(0,U.jsx)(`p`,{children:O.width&&O.height?`${O.width} × ${O.height}`:`—`})]}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`mb-1 font-medium text-foreground`,children:`Created`}),(0,U.jsx)(`p`,{children:new Date(O.created_at).toLocaleString()})]})]}),(0,U.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-6 py-4`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{className:`text-xs`,children:`Filename`}),(0,U.jsx)(Hv,{value:A,onChange:e=>Ae(e.target.value),placeholder:O.filename,className:`text-sm`,disabled:!r})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{className:`text-xs`,children:`Alt text`}),(0,U.jsx)(Hv,{value:M,onChange:e=>N(e.target.value),placeholder:s1(A||O.filename),className:`text-sm`,disabled:!r}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Defaulted from the filename without extension. You can override it.`})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{className:`text-xs`,children:`Subtitle`}),(0,U.jsx)(VN,{value:P,onChange:e=>F(e.target.value),placeholder:`Used as figcaption in the frontend…`,className:`min-h-28 resize-none text-sm`,disabled:!r})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-3 pt-2`,children:[(0,U.jsx)(`a`,{href:O.url,target:`_blank`,rel:`noreferrer`,download:O.filename,children:(0,U.jsxs)(J,{variant:`outline`,size:`sm`,type:`button`,children:[(0,U.jsx)(Qa,{className:`size-3.5`}),`Download`]})}),(0,U.jsx)(J,{type:`submit`,size:`sm`,disabled:I||!r,children:I?`Saving…`:`Save`})]}),R&&(0,U.jsx)(`p`,{className:`text-xs text-destructive`,children:R})]})]})]})]})}),(0,U.jsx)(yw,{open:ae,onOpenChange:e=>{e||oe(!1)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`New folder`})}),(0,U.jsx)(Hv,{placeholder:`Folder name`,value:se,onChange:e=>ce(e.target.value),onKeyDown:e=>{e.key===`Enter`&&we()},autoFocus:!0}),_e&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:_e}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>oe(!1),children:`Cancel`}),(0,U.jsx)(J,{onClick:we,disabled:ge||!se.trim()||!r,children:ge?`Creating…`:`Create`})]})]})}),(0,U.jsx)(yw,{open:!!re,onOpenChange:e=>{e||V(null)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Rename folder`})}),(0,U.jsx)(Hv,{value:H,onChange:e=>ie(e.target.value),onKeyDown:e=>{e.key===`Enter`&&Te()},autoFocus:!0}),_e&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:_e}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>V(null),children:`Cancel`}),(0,U.jsx)(J,{onClick:Te,disabled:ge||!H.trim()||!r,children:ge?`Saving…`:`Save`})]})]})}),(0,U.jsx)(yw,{open:!!te,onOpenChange:e=>{e||ne(null)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Delete file`})}),(0,U.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,U.jsx)(`span`,{className:`font-medium text-foreground`,children:te?.filename}),`? This action cannot be undone.`]}),me&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:me}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>ne(null),children:`Cancel`}),(0,U.jsx)(J,{variant:`destructive`,onClick:De,disabled:pe||!i,children:pe?`Deleting…`:`Delete`})]})]})}),(0,U.jsx)(yw,{open:!!z,onOpenChange:e=>{e||B(null)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Delete folder`})}),(0,U.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,U.jsx)(`span`,{className:`font-medium text-foreground`,children:z?.name}),`? The folder must be empty.`]}),me&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:me}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>B(null),children:`Cancel`}),(0,U.jsx)(J,{variant:`destructive`,onClick:Ee,disabled:pe||!i,children:pe?`Deleting…`:`Delete`})]})]})}),(0,U.jsx)(yw,{open:le,onOpenChange:e=>{e||ue(!1)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsxs)(Ew,{children:[`Delete `,E.size,` `,E.size===1?`item`:`items`,`?`]})}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone. Non-empty folders will be skipped.`}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>ue(!1),children:`Cancel`}),(0,U.jsxs)(J,{variant:`destructive`,onClick:Pe,disabled:de,children:[de?(0,U.jsx)(by,{className:`size-4`}):null,`Delete`]})]})]})})]})]})}function y1({items:e}){let{pathname:t}=cr();function n(e){return t===e||t.startsWith(e+`/`)}return(0,U.jsx)(`nav`,{className:`flex flex-col gap-0.5 p-2`,children:e.map(({label:e,to:t,icon:r})=>(0,U.jsxs)(qi,{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,U.jsx)(r,{className:`size-3.5 shrink-0`}),(0,U.jsx)(`span`,{className:`truncate`,children:e})]},t))})}function b1(e,t){return e?.permissions.includes(`*`)||e?.permissions.includes(t)||!1}function x1(){let{user:e}=ga(),t=[{label:`Overview`,to:`/settings/overview`,icon:zo,permission:`settings:overview:read`},{label:`Users`,to:`/settings/users`,icon:es,permission:`settings:users:read`},{label:`Roles`,to:`/settings/roles`,icon:Bo,permission:`settings:roles:read`},{label:`API Tokens`,to:`/settings/api-tokens`,icon:bo,permission:`settings:api-tokens:read`},{label:`Webhooks`,to:`/settings/webhooks`,icon:ts,permission:`settings:webhooks:read`}].filter(({permission:t})=>b1(e,t));return(0,U.jsxs)(`div`,{className:`flex flex-col`,children:[(0,U.jsx)(`div`,{className:`border-b border-sidebar-border px-4 py-3`,children:(0,U.jsx)(`p`,{className:`text-xs font-semibold text-muted-foreground uppercase tracking-wider`,children:`Settings`})}),(0,U.jsx)(y1,{items:t})]})}function S1(){return qw((0,U.jsx)(x1,{})),(0,U.jsx)(Qr,{})}var C1=`••••••••`;function w1({values:e,onChange:t,disabled:n=!1}){return(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`local-uploads-dir`,children:`Upload directory`}),(0,U.jsx)(Hv,{id:`local-uploads-dir`,placeholder:`public/uploads`,value:e[`local.uploads_dir`]??``,onChange:e=>t(`local.uploads_dir`,e.target.value),disabled:n}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Path on disk where files are stored. Relative to the server working directory.`})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`local-public-url`,children:`Public URL`}),(0,U.jsx)(Hv,{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,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Base URL used to build file URLs. Should match the server's public address.`})]})]})}function T1({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]===C1,u=r[n]??``;return(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:e,children:t}),(0,U.jsxs)(`div`,{className:`relative`,children:[(0,U.jsx)(Hv,{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,U.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,U.jsx)(eo,{className:`size-4`}):(0,U.jsx)(to,{className:`size-4`})})]}),l&&(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`A value is already saved. Enter a new one to replace it.`})]})}function E1({values:e,onChange:t,disabled:n=!1}){return(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`s3-access-key`,children:`Access key ID`}),(0,U.jsx)(Hv,{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,U.jsx)(T1,{id:`s3-secret-key`,label:`Secret access key`,fieldKey:`s3.secret_access_key`,values:e,onChange:t,disabled:n})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`s3-region`,children:`Region`}),(0,U.jsx)(Hv,{id:`s3-region`,placeholder:`us-east-1`,value:e[`s3.region`]??``,onChange:e=>t(`s3.region`,e.target.value),disabled:n})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`s3-bucket`,children:`Bucket`}),(0,U.jsx)(Hv,{id:`s3-bucket`,placeholder:`my-bucket`,value:e[`s3.bucket`]??``,onChange:e=>t(`s3.bucket`,e.target.value),disabled:n})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`s3-path-prefix`,children:`Path prefix`}),(0,U.jsx)(Hv,{id:`s3-path-prefix`,placeholder:`cms/media`,value:e[`s3.path_prefix`]??``,onChange:e=>t(`s3.path_prefix`,e.target.value),disabled:n}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Shared bucket subfolder.`})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`s3-public-url`,children:`Public URL`}),(0,U.jsx)(Hv,{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,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Leave blank to use the default S3 URL.`})]})]})}function D1({values:e,onChange:t,disabled:n=!1}){return(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`r2-access-key`,children:`Access key ID`}),(0,U.jsx)(Hv,{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,U.jsx)(T1,{id:`r2-secret-key`,label:`Secret access key`,fieldKey:`r2.secret_access_key`,values:e,onChange:t,disabled:n})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`r2-bucket`,children:`Bucket`}),(0,U.jsx)(Hv,{id:`r2-bucket`,placeholder:`my-bucket`,value:e[`r2.bucket`]??``,onChange:e=>t(`r2.bucket`,e.target.value),disabled:n})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`r2-path-prefix`,children:`Path prefix`}),(0,U.jsx)(Hv,{id:`r2-path-prefix`,placeholder:`cms/media`,value:e[`r2.path_prefix`]??``,onChange:e=>t(`r2.path_prefix`,e.target.value),disabled:n}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Optional. Shared bucket subfolder.`})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsxs)(X,{htmlFor:`r2-public-url`,children:[`Public URL `,(0,U.jsx)(`span`,{className:`text-destructive`,children:`*`})]}),(0,U.jsx)(Hv,{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,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Required. R2 does not generate public URLs automatically.`})]})]})}function O1(){let{user:e}=ga(),{data:t,loading:n}=wa(`/cms/admin/settings/media`),{loading:r,error:i,request:a}=Vv(),[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)}catch{}}return n?(0,U.jsxs)(`div`,{className:`flex items-center gap-2 py-8 text-muted-foreground`,children:[(0,U.jsx)(by,{className:`size-4`}),(0,U.jsx)(`span`,{className:`text-sm`,children:`Loading settings…`})]}):(0,U.jsxs)(`form`,{onSubmit:g,className:`space-y-8`,children:[(0,U.jsxs)(`div`,{className:`border-b pb-4`,children:[(0,U.jsx)(`h2`,{className:`text-2xl font-semibold`,children:`Storage`}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Configure where uploaded files are stored.`})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`provider`,children:`Storage provider`}),(0,U.jsxs)(Ow,{value:d,onValueChange:e=>h(e),children:[(0,U.jsx)(jw,{id:`provider`,disabled:!p,children:(0,U.jsx)(Aw,{})}),(0,U.jsxs)(Pw,{children:[(0,U.jsx)(Iw,{value:`local`,children:`Local`}),(0,U.jsx)(Iw,{value:`s3`,children:`Amazon S3`}),(0,U.jsx)(Iw,{value:`r2`,children:`Cloudflare R2`})]})]})]}),d===`r2`&&(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`r2-account-id`,children:`Account ID`}),(0,U.jsx)(Hv,{id:`r2-account-id`,placeholder:`023e105f4ecef8ad9ca31a8372d0c353`,value:u[`r2.account_id`]??``,onChange:e=>m(`r2.account_id`,e.target.value),disabled:!p}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Found in the Cloudflare dashboard under R2 > Overview.`})]})]}),(0,U.jsxs)(`div`,{className:`border-t pt-6`,children:[d===`local`&&(0,U.jsx)(w1,{values:u,onChange:m,disabled:!p}),d===`s3`&&(0,U.jsx)(E1,{values:u,onChange:m,disabled:!p}),d===`r2`&&(0,U.jsx)(D1,{values:u,onChange:m,disabled:!p})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,U.jsx)(J,{type:`submit`,disabled:r||!p,children:r?`Saving…`:`Save`}),c&&(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Changes saved.`}),i&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:i})]})]})}function k1({className:e,...t}){return(0,U.jsx)(`div`,{"data-slot":`card`,className:q(`flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm`,e),...t})}function A1({className:e,...t}){return(0,U.jsx)(`div`,{"data-slot":`card-header`,className:q(`@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,e),...t})}function j1({className:e,...t}){return(0,U.jsx)(`div`,{"data-slot":`card-title`,className:q(`leading-none font-semibold`,e),...t})}function M1({className:e,...t}){return(0,U.jsx)(`div`,{"data-slot":`card-action`,className:q(`col-start-2 row-span-2 row-start-1 self-start justify-self-end`,e),...t})}function N1({className:e,...t}){return(0,U.jsx)(`div`,{"data-slot":`card-content`,className:q(`px-6`,e),...t})}function P1(e){if(!e||typeof document>`u`)return;let t=document.head||document.getElementsByTagName(`head`)[0],n=document.createElement(`style`);n.type=`text/css`,t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}var F1=e=>{switch(e){case`success`:return R1;case`info`:return B1;case`warning`:return z1;case`error`:return V1;default:return null}},I1=Array(12).fill(0),L1=({visible:e,className:t})=>v.createElement(`div`,{className:[`sonner-loading-wrapper`,t].filter(Boolean).join(` `),"data-visible":e},v.createElement(`div`,{className:`sonner-spinner`},I1.map((e,t)=>v.createElement(`div`,{className:`sonner-loading-bar`,key:`spinner-bar-${t}`})))),R1=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,clipRule:`evenodd`})),z1=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z`,clipRule:`evenodd`})),B1=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,clipRule:`evenodd`})),V1=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 20 20`,fill:`currentColor`,height:`20`,width:`20`},v.createElement(`path`,{fillRule:`evenodd`,d:`M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z`,clipRule:`evenodd`})),H1=v.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`12`,height:`12`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`},v.createElement(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),v.createElement(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})),U1=()=>{let[e,t]=v.useState(document.hidden);return v.useEffect(()=>{let e=()=>{t(document.hidden)};return document.addEventListener(`visibilitychange`,e),()=>window.removeEventListener(`visibilitychange`,e)},[]),e},W1=1,G1=new class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{let{message:t,...n}=e,r=typeof e?.id==`number`||e.id?.length>0?e.id:W1++,i=this.toasts.find(e=>e.id===r),a=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(n=>n.id===r?(this.publish({...n,...e,id:r,title:t}),{...n,...e,id:r,dismissible:a,title:t}):n):this.addToast({title:t,...n,dismissible:a,id:r}),r},this.dismiss=e=>(e?(this.dismissedToasts.add(e),requestAnimationFrame(()=>this.subscribers.forEach(t=>t({id:e,dismiss:!0})))):this.toasts.forEach(e=>{this.subscribers.forEach(t=>t({id:e.id,dismiss:!0}))}),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:`error`}),this.success=(e,t)=>this.create({...t,type:`success`,message:e}),this.info=(e,t)=>this.create({...t,type:`info`,message:e}),this.warning=(e,t)=>this.create({...t,type:`warning`,message:e}),this.loading=(e,t)=>this.create({...t,type:`loading`,message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:`loading`,message:t.loading,description:typeof t.description==`function`?void 0:t.description}));let r=Promise.resolve(e instanceof Function?e():e),i=n!==void 0,a,o=r.then(async e=>{if(a=[`resolve`,e],v.isValidElement(e))i=!1,this.create({id:n,type:`default`,message:e});else if(q1(e)&&!e.ok){i=!1;let r=typeof t.error==`function`?await t.error(`HTTP error! status: ${e.status}`):t.error,a=typeof t.description==`function`?await t.description(`HTTP error! status: ${e.status}`):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(e instanceof Error){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}else if(t.success!==void 0){i=!1;let r=typeof t.success==`function`?await t.success(e):t.success,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`success`,description:a,...o})}}).catch(async e=>{if(a=[`reject`,e],t.error!==void 0){i=!1;let r=typeof t.error==`function`?await t.error(e):t.error,a=typeof t.description==`function`?await t.description(e):t.description,o=typeof r==`object`&&!v.isValidElement(r)?r:{message:r};this.create({id:n,type:`error`,description:a,...o})}}).finally(()=>{i&&(this.dismiss(n),n=void 0),t.finally==null||t.finally.call(t)}),s=()=>new Promise((e,t)=>o.then(()=>a[0]===`reject`?t(a[1]):e(a[1])).catch(t));return typeof n!=`string`&&typeof n!=`number`?{unwrap:s}:Object.assign(n,{unwrap:s})},this.custom=(e,t)=>{let n=t?.id||W1++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},K1=(e,t)=>{let n=t?.id||W1++;return G1.addToast({title:e,...t,id:n}),n},q1=e=>e&&typeof e==`object`&&`ok`in e&&typeof e.ok==`boolean`&&`status`in e&&typeof e.status==`number`,J1=Object.assign(K1,{success:G1.success,info:G1.info,warning:G1.warning,error:G1.error,custom:G1.custom,message:G1.message,promise:G1.promise,dismiss:G1.dismiss,loading:G1.loading},{getHistory:()=>G1.toasts,getToasts:()=>G1.getActiveToasts()});P1(`[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}`);function Y1(e){return e.label!==void 0}var X1=3,Z1=`24px`,Q1=`16px`,$1=4e3,e0=356,t0=14,n0=45,r0=200;function i0(...e){return e.filter(Boolean).join(` `)}function a0(e){let[t,n]=e.split(`-`),r=[];return t&&r.push(t),n&&r.push(n),r}var o0=e=>{let{invert:t,toast:n,unstyled:r,interacting:i,setHeights:a,visibleToasts:o,heights:s,index:c,toasts:l,expanded:u,removeToast:d,defaultRichColors:f,closeButton:p,style:m,cancelButtonStyle:h,actionButtonStyle:g,className:_=``,descriptionClassName:y=``,duration:b,position:x,gap:S,expandByDefault:C,classNames:w,icons:T,closeButtonAriaLabel:E=`Close toast`}=e,[D,O]=v.useState(null),[k,A]=v.useState(null),[j,M]=v.useState(!1),[N,P]=v.useState(!1),[F,I]=v.useState(!1),[L,R]=v.useState(!1),[ee,te]=v.useState(!1),[ne,z]=v.useState(0),[B,re]=v.useState(0),V=v.useRef(n.duration||b||$1),H=v.useRef(null),ie=v.useRef(null),ae=c===0,oe=c+1<=o,se=n.type,ce=n.dismissible!==!1,le=n.className||``,ue=n.descriptionClassName||``,de=v.useMemo(()=>s.findIndex(e=>e.toastId===n.id)||0,[s,n.id]),fe=v.useMemo(()=>n.closeButton??p,[n.closeButton,p]),pe=v.useMemo(()=>n.duration||b||$1,[n.duration,b]),me=v.useRef(0),he=v.useRef(0),ge=v.useRef(0),_e=v.useRef(null),[ve,ye]=x.split(`-`),be=v.useMemo(()=>s.reduce((e,t,n)=>n>=de?e:e+t.height,0),[s,de]),xe=U1(),Se=n.invert||t,Ce=se===`loading`;he.current=v.useMemo(()=>de*S+be,[de,be]),v.useEffect(()=>{V.current=pe},[pe]),v.useEffect(()=>{M(!0)},[]),v.useEffect(()=>{let e=ie.current;if(e){let t=e.getBoundingClientRect().height;return re(t),a(e=>[{toastId:n.id,height:t,position:n.position},...e]),()=>a(e=>e.filter(e=>e.toastId!==n.id))}},[a,n.id]),v.useLayoutEffect(()=>{if(!j)return;let e=ie.current,t=e.style.height;e.style.height=`auto`;let r=e.getBoundingClientRect().height;e.style.height=t,re(r),a(e=>e.find(e=>e.toastId===n.id)?e.map(e=>e.toastId===n.id?{...e,height:r}:e):[{toastId:n.id,height:r,position:n.position},...e])},[j,n.title,n.description,a,n.id,n.jsx,n.action,n.cancel]);let we=v.useCallback(()=>{P(!0),z(he.current),a(e=>e.filter(e=>e.toastId!==n.id)),setTimeout(()=>{d(n)},r0)},[n,d,a,he]);v.useEffect(()=>{if(n.promise&&se===`loading`||n.duration===1/0||n.type===`loading`)return;let e;return u||i||xe?(()=>{if(ge.current<me.current){let e=new Date().getTime()-me.current;V.current-=e}ge.current=new Date().getTime()})():V.current!==1/0&&(me.current=new Date().getTime(),e=setTimeout(()=>{n.onAutoClose==null||n.onAutoClose.call(n,n),we()},V.current)),()=>clearTimeout(e)},[u,i,n,se,xe,we]),v.useEffect(()=>{n.delete&&(we(),n.onDismiss==null||n.onDismiss.call(n,n))},[we,n.delete]);function Te(){return T?.loading?v.createElement(`div`,{className:i0(w?.loader,n?.classNames?.loader,`sonner-loader`),"data-visible":se===`loading`},T.loading):v.createElement(L1,{className:i0(w?.loader,n?.classNames?.loader),visible:se===`loading`})}let Ee=n.icon||T?.[se]||F1(se);return v.createElement(`li`,{tabIndex:0,ref:ie,className:i0(_,le,w?.toast,n?.classNames?.toast,w?.default,w?.[se],n?.classNames?.[se]),"data-sonner-toast":``,"data-rich-colors":n.richColors??f,"data-styled":!(n.jsx||n.unstyled||r),"data-mounted":j,"data-promise":!!n.promise,"data-swiped":ee,"data-removed":N,"data-visible":oe,"data-y-position":ve,"data-x-position":ye,"data-index":c,"data-front":ae,"data-swiping":F,"data-dismissible":ce,"data-type":se,"data-invert":Se,"data-swipe-out":L,"data-swipe-direction":k,"data-expanded":!!(u||C&&j),"data-testid":n.testId,style:{"--index":c,"--toasts-before":c,"--z-index":l.length-c,"--offset":`${N?ne:he.current}px`,"--initial-height":C?`auto`:`${B}px`,...m,...n.style},onDragEnd:()=>{I(!1),O(null),_e.current=null},onPointerDown:e=>{e.button!==2&&(Ce||!ce||(H.current=new Date,z(he.current),e.target.setPointerCapture(e.pointerId),e.target.tagName!==`BUTTON`&&(I(!0),_e.current={x:e.clientX,y:e.clientY})))},onPointerUp:()=>{if(L||!ce)return;_e.current=null;let e=Number(ie.current?.style.getPropertyValue(`--swipe-amount-x`).replace(`px`,``)||0),t=Number(ie.current?.style.getPropertyValue(`--swipe-amount-y`).replace(`px`,``)||0),r=new Date().getTime()-H.current?.getTime(),i=D===`x`?e:t,a=Math.abs(i)/r;if(Math.abs(i)>=n0||a>.11){z(he.current),n.onDismiss==null||n.onDismiss.call(n,n),A(D===`x`?e>0?`right`:`left`:t>0?`down`:`up`),we(),R(!0);return}else{var o,s;(o=ie.current)==null||o.style.setProperty(`--swipe-amount-x`,`0px`),(s=ie.current)==null||s.style.setProperty(`--swipe-amount-y`,`0px`)}te(!1),I(!1),O(null)},onPointerMove:t=>{var n,r;if(!_e.current||!ce||window.getSelection()?.toString().length>0)return;let i=t.clientY-_e.current.y,a=t.clientX-_e.current.x,o=e.swipeDirections??a0(x);!D&&(Math.abs(a)>1||Math.abs(i)>1)&&O(Math.abs(a)>Math.abs(i)?`x`:`y`);let s={x:0,y:0},c=e=>1/(1.5+Math.abs(e)/20);if(D===`y`){if(o.includes(`top`)||o.includes(`bottom`))if(o.includes(`top`)&&i<0||o.includes(`bottom`)&&i>0)s.y=i;else{let e=i*c(i);s.y=Math.abs(e)<Math.abs(i)?e:i}}else if(D===`x`&&(o.includes(`left`)||o.includes(`right`)))if(o.includes(`left`)&&a<0||o.includes(`right`)&&a>0)s.x=a;else{let e=a*c(a);s.x=Math.abs(e)<Math.abs(a)?e:a}(Math.abs(s.x)>0||Math.abs(s.y)>0)&&te(!0),(n=ie.current)==null||n.style.setProperty(`--swipe-amount-x`,`${s.x}px`),(r=ie.current)==null||r.style.setProperty(`--swipe-amount-y`,`${s.y}px`)}},fe&&!n.jsx&&se!==`loading`?v.createElement(`button`,{"aria-label":E,"data-disabled":Ce,"data-close-button":!0,onClick:Ce||!ce?()=>{}:()=>{we(),n.onDismiss==null||n.onDismiss.call(n,n)},className:i0(w?.closeButton,n?.classNames?.closeButton)},T?.close??H1):null,(se||n.icon||n.promise)&&n.icon!==null&&(T?.[se]!==null||n.icon)?v.createElement(`div`,{"data-icon":``,className:i0(w?.icon,n?.classNames?.icon)},n.promise||n.type===`loading`&&!n.icon?n.icon||Te():null,n.type===`loading`?null:Ee):null,v.createElement(`div`,{"data-content":``,className:i0(w?.content,n?.classNames?.content)},v.createElement(`div`,{"data-title":``,className:i0(w?.title,n?.classNames?.title)},n.jsx?n.jsx:typeof n.title==`function`?n.title():n.title),n.description?v.createElement(`div`,{"data-description":``,className:i0(y,ue,w?.description,n?.classNames?.description)},typeof n.description==`function`?n.description():n.description):null),v.isValidElement(n.cancel)?n.cancel:n.cancel&&Y1(n.cancel)?v.createElement(`button`,{"data-button":!0,"data-cancel":!0,style:n.cancelButtonStyle||h,onClick:e=>{Y1(n.cancel)&&ce&&(n.cancel.onClick==null||n.cancel.onClick.call(n.cancel,e),we())},className:i0(w?.cancelButton,n?.classNames?.cancelButton)},n.cancel.label):null,v.isValidElement(n.action)?n.action:n.action&&Y1(n.action)?v.createElement(`button`,{"data-button":!0,"data-action":!0,style:n.actionButtonStyle||g,onClick:e=>{Y1(n.action)&&(n.action.onClick==null||n.action.onClick.call(n.action,e),!e.defaultPrevented&&we())},className:i0(w?.actionButton,n?.classNames?.actionButton)},n.action.label):null)};function s0(){if(typeof window>`u`||typeof document>`u`)return`ltr`;let e=document.documentElement.getAttribute(`dir`);return e===`auto`||!e?window.getComputedStyle(document.documentElement).direction:e}function c0(e,t){let n={};return[e,t].forEach((e,t)=>{let r=t===1,i=r?`--mobile-offset`:`--offset`,a=r?Q1:Z1;function o(e){[`top`,`right`,`bottom`,`left`].forEach(t=>{n[`${i}-${t}`]=typeof e==`number`?`${e}px`:e})}typeof e==`number`||typeof e==`string`?o(e):typeof e==`object`?[`top`,`right`,`bottom`,`left`].forEach(t=>{e[t]===void 0?n[`${i}-${t}`]=a:n[`${i}-${t}`]=typeof e[t]==`number`?`${e[t]}px`:e[t]}):o(a)}),n}var l0=v.forwardRef(function(e,t){let{id:n,invert:r,position:i=`bottom-right`,hotkey:a=[`altKey`,`KeyT`],expand:o,closeButton:s,className:c,offset:l,mobileOffset:u,theme:d=`light`,richColors:f,duration:p,style:m,visibleToasts:h=X1,toastOptions:g,dir:_=s0(),gap:y=t0,icons:b,containerAriaLabel:x=`Notifications`}=e,[S,C]=v.useState([]),w=v.useMemo(()=>n?S.filter(e=>e.toasterId===n):S.filter(e=>!e.toasterId),[S,n]),T=v.useMemo(()=>Array.from(new Set([i].concat(w.filter(e=>e.position).map(e=>e.position)))),[w,i]),[E,D]=v.useState([]),[O,k]=v.useState(!1),[A,j]=v.useState(!1),[M,P]=v.useState(d===`system`?typeof window<`u`&&window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`:d),F=v.useRef(null),I=a.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),L=v.useRef(null),R=v.useRef(!1),ee=v.useCallback(e=>{C(t=>(t.find(t=>t.id===e.id)?.delete||G1.dismiss(e.id),t.filter(({id:t})=>t!==e.id)))},[]);return v.useEffect(()=>G1.subscribe(e=>{if(e.dismiss){requestAnimationFrame(()=>{C(t=>t.map(t=>t.id===e.id?{...t,delete:!0}:t))});return}setTimeout(()=>{N.flushSync(()=>{C(t=>{let n=t.findIndex(t=>t.id===e.id);return n===-1?[e,...t]:[...t.slice(0,n),{...t[n],...e},...t.slice(n+1)]})})})}),[S]),v.useEffect(()=>{if(d!==`system`){P(d);return}if(d===`system`&&(window.matchMedia&&window.matchMedia(`(prefers-color-scheme: dark)`).matches?P(`dark`):P(`light`)),typeof window>`u`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`);try{e.addEventListener(`change`,({matches:e})=>{P(e?`dark`:`light`)})}catch{e.addListener(({matches:e})=>{try{P(e?`dark`:`light`)}catch(e){console.error(e)}})}},[d]),v.useEffect(()=>{S.length<=1&&k(!1)},[S]),v.useEffect(()=>{let e=e=>{if(a.every(t=>e[t]||e.code===t)){var t;k(!0),(t=F.current)==null||t.focus()}e.code===`Escape`&&(document.activeElement===F.current||F.current?.contains(document.activeElement))&&k(!1)};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[a]),v.useEffect(()=>{if(F.current)return()=>{L.current&&(L.current.focus({preventScroll:!0}),L.current=null,R.current=!1)}},[F.current]),v.createElement(`section`,{ref:t,"aria-label":`${x} ${I}`,tabIndex:-1,"aria-live":`polite`,"aria-relevant":`additions text`,"aria-atomic":`false`,suppressHydrationWarning:!0},T.map((t,n)=>{let[i,a]=t.split(`-`);return w.length?v.createElement(`ol`,{key:t,dir:_===`auto`?s0():_,tabIndex:-1,ref:F,className:c,"data-sonner-toaster":!0,"data-sonner-theme":M,"data-y-position":i,"data-x-position":a,style:{"--front-toast-height":`${E[0]?.height||0}px`,"--width":`${e0}px`,"--gap":`${y}px`,...m,...c0(l,u)},onBlur:e=>{R.current&&!e.currentTarget.contains(e.relatedTarget)&&(R.current=!1,L.current&&=(L.current.focus({preventScroll:!0}),null))},onFocus:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||R.current||(R.current=!0,L.current=e.relatedTarget)},onMouseEnter:()=>k(!0),onMouseMove:()=>k(!0),onMouseLeave:()=>{A||k(!1)},onDragEnd:()=>k(!1),onPointerDown:e=>{e.target instanceof HTMLElement&&e.target.dataset.dismissible===`false`||j(!0)},onPointerUp:()=>j(!1)},w.filter(e=>!e.position&&n===0||e.position===t).map((n,i)=>v.createElement(o0,{key:n.id,icons:b,index:i,toast:n,defaultRichColors:f,duration:g?.duration??p,className:g?.className,descriptionClassName:g?.descriptionClassName,invert:r,visibleToasts:h,closeButton:g?.closeButton??s,interacting:A,position:t,style:g?.style,unstyled:g?.unstyled,classNames:g?.classNames,cancelButtonStyle:g?.cancelButtonStyle,actionButtonStyle:g?.actionButtonStyle,closeButtonAriaLabel:g?.closeButtonAriaLabel,removeToast:ee,toasts:w.filter(e=>e.position==n.position),heights:E.filter(e=>e.position==n.position),setHeights:D,expandByDefault:o,gap:y,expanded:O,swipeDirections:e.swipeDirections}))):null}))}),u0={name:`@plank-cms/admin`,version:`0.20.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`}},d0=[{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 f0(){let{user:e}=ga(),{data:t,loading:n}=wa(`/cms/admin/settings/general`),{request:r,loading:i}=Vv(),{request:a,loading:o}=Vv(),{request:s,loading:c}=Vv(),{refreshSettings:l}=ya(),[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(),J1.success(`Locales saved`)}catch{J1.error(`Could not save locales`)}}return n?(0,U.jsx)(by,{}):(0,U.jsxs)(`div`,{className:`space-y-6`,children:[(0,U.jsx)(k1,{children:(0,U.jsxs)(N1,{className:`flex items-center gap-4 py-2`,children:[(0,U.jsx)(`img`,{src:`/admin/plank-logo-w.svg`,alt:`Plank CMS`,className:`h-10 w-auto`}),(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`p`,{className:`font-bold`,children:`Plank CMS by AM25`}),(0,U.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Version `,u0.version]})]})]})}),(0,U.jsxs)(`div`,{className:`border-b pb-4`,children:[(0,U.jsx)(`h2`,{className:`text-2xl font-semibold`,children:`Commons`}),(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`General settings that apply across the CMS.`})]}),(0,U.jsxs)(`div`,{className:`space-y-2`,children:[(0,U.jsx)(X,{htmlFor:`timezone`,children:`Timezone`}),(0,U.jsxs)(Ow,{value:u,onValueChange:e=>{d(e),(async()=>{try{await r(`/cms/admin/settings/general`,`PUT`,{timezone:e}),l(),J1.success(`Timezone saved`)}catch{J1.error(`Could not save timezone`)}})()},children:[(0,U.jsx)(jw,{id:`timezone`,className:`w-full`,disabled:!S,children:(0,U.jsx)(Aw,{})}),(0,U.jsx)(Pw,{className:`max-h-72`,children:d0.map(e=>(0,U.jsx)(Iw,{value:e.value,children:e.label},e.value))})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Used to display dates and times across the admin panel.`}),i&&(0,U.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Saving…`})]})]}),(0,U.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 md:grid-cols-2`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{children:`Locales`}),(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(Hv,{placeholder:`E.g. "en"`,value:g,onChange:e=>_(e.target.value),className:`h-9 w-full`,disabled:!S}),(0,U.jsx)(J,{variant:`outline`,className:`h-9`,disabled:!S,onClick:()=>{let e=g.trim().toLowerCase();e&&(f.includes(e)||p(t=>[...t,e]),_(``))},children:`Add`})]}),(0,U.jsx)(`div`,{className:`mt-2 flex flex-wrap gap-2`,children:f.map(e=>(0,U.jsx)(J,{variant:`ghost`,size:`sm`,onClick:()=>p(t=>t.filter(t=>t!==e)),disabled:!S,children:e.toUpperCase()},e))})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`default-locale`,children:`Default locale`}),(0,U.jsxs)(Ow,{value:m,onValueChange:h,children:[(0,U.jsx)(jw,{id:`default-locale`,className:`w-full`,disabled:!S,children:(0,U.jsx)(Aw,{})}),(0,U.jsx)(Pw,{className:`max-h-72`,children:f.length===0?(0,U.jsx)(Iw,{value:m,children:m}):f.map(e=>(0,U.jsx)(Iw,{value:e,children:e.toUpperCase()},e))})]}),(0,U.jsx)(`div`,{className:`pt-2 flex justify-end`,children:(0,U.jsx)(J,{variant:`outline`,onClick:C,disabled:o||!S,children:o?`Saving…`:`Save`})})]})]}),(0,U.jsx)(WO,{}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(X,{htmlFor:`editorial-mode`,children:`Editorial Mode`}),(0,U.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Enables Editor and Viewer workflows for editorial review.`})]}),(0,U.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,U.jsx)(rj,{id:`editorial-mode`,checked:y,onCheckedChange:e=>{b(e),(async()=>{try{await s(`/cms/admin/settings/general`,`PUT`,{editorial_mode:String(e)}),l(),J1.success(`Editorial Mode saved`)}catch{J1.error(`Could not save Editorial Mode`)}})()},disabled:!S}),c&&(0,U.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Saving…`})]})]})]})}function p0(){return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsxs)(yy,{children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Overview`}),(0,U.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`General configuration for your CMS instance.`})]}),(0,U.jsxs)($A,{defaultValue:`general`,className:`mt-24`,children:[(0,U.jsxs)(ej,{className:`mb-6`,children:[(0,U.jsx)(tj,{value:`general`,children:`General`}),(0,U.jsx)(tj,{value:`media`,children:`Media Library`})]}),(0,U.jsx)(nj,{value:`general`,children:(0,U.jsx)(f0,{})}),(0,U.jsx)(nj,{value:`media`,children:(0,U.jsx)(O1,{})})]})]})}function m0(e,t){return typeof e==`function`?e(t):e}function h0(e,t){return n=>{t.setState(t=>({...t,[e]:m0(n,t[e])}))}}function g0(e){return e instanceof Function}function _0(e){return Array.isArray(e)&&e.every(e=>typeof e==`number`)}function v0(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 y0(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
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 x0(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:y0(()=>[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 S0(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:y0(()=>[!0],()=>[c,...c.columns?.flatMap(e=>e.getFlatColumns())],b0(e.options,`debugColumns`,`column.getFlatColumns`)),getLeafColumns:y0(()=>[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 C0=`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 T0={createTable:e=>{e.getHeaderGroups=y0(()=>[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 E0(t,[...a,...s,...o],e)},b0(e.options,C0,`getHeaderGroups`)),e.getCenterHeaderGroups=y0(()=>[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))),E0(t,n,e,`center`)),b0(e.options,C0,`getCenterHeaderGroups`)),e.getLeftHeaderGroups=y0(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>E0(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`left`),b0(e.options,C0,`getLeftHeaderGroups`)),e.getRightHeaderGroups=y0(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>E0(t,r?.map(e=>n.find(t=>t.id===e)).filter(Boolean)??[],e,`right`),b0(e.options,C0,`getRightHeaderGroups`)),e.getFooterGroups=y0(()=>[e.getHeaderGroups()],e=>[...e].reverse(),b0(e.options,C0,`getFooterGroups`)),e.getLeftFooterGroups=y0(()=>[e.getLeftHeaderGroups()],e=>[...e].reverse(),b0(e.options,C0,`getLeftFooterGroups`)),e.getCenterFooterGroups=y0(()=>[e.getCenterHeaderGroups()],e=>[...e].reverse(),b0(e.options,C0,`getCenterFooterGroups`)),e.getRightFooterGroups=y0(()=>[e.getRightHeaderGroups()],e=>[...e].reverse(),b0(e.options,C0,`getRightFooterGroups`)),e.getFlatHeaders=y0(()=>[e.getHeaderGroups()],e=>e.map(e=>e.headers).flat(),b0(e.options,C0,`getFlatHeaders`)),e.getLeftFlatHeaders=y0(()=>[e.getLeftHeaderGroups()],e=>e.map(e=>e.headers).flat(),b0(e.options,C0,`getLeftFlatHeaders`)),e.getCenterFlatHeaders=y0(()=>[e.getCenterHeaderGroups()],e=>e.map(e=>e.headers).flat(),b0(e.options,C0,`getCenterFlatHeaders`)),e.getRightFlatHeaders=y0(()=>[e.getRightHeaderGroups()],e=>e.map(e=>e.headers).flat(),b0(e.options,C0,`getRightFlatHeaders`)),e.getCenterLeafHeaders=y0(()=>[e.getCenterFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),b0(e.options,C0,`getCenterLeafHeaders`)),e.getLeftLeafHeaders=y0(()=>[e.getLeftFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),b0(e.options,C0,`getLeftLeafHeaders`)),e.getRightLeafHeaders=y0(()=>[e.getRightFlatHeaders()],e=>e.filter(e=>{var t;return!((t=e.subHeaders)!=null&&t.length)}),b0(e.options,C0,`getRightLeafHeaders`)),e.getLeafHeaders=y0(()=>[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,C0,`getLeafHeaders`))}};function E0(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 D0=(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:()=>v0(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:y0(()=>[e.getAllLeafColumns()],t=>t.map(t=>x0(e,s,t,t.id)),b0(e.options,`debugRows`,`getAllCells`)),_getAllCellsByColumnId:y0(()=>[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},O0={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()}}},k0=(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))};k0.autoRemove=e=>z0(e);var A0=(e,t,n)=>{var r;return!!(!((r=e.getValue(t))==null||(r=r.toString())==null)&&r.includes(n))};A0.autoRemove=e=>z0(e);var j0=(e,t,n)=>{var r;return((r=e.getValue(t))==null||(r=r.toString())==null?void 0:r.toLowerCase())===n?.toLowerCase()};j0.autoRemove=e=>z0(e);var M0=(e,t,n)=>e.getValue(t)?.includes(n);M0.autoRemove=e=>z0(e);var N0=(e,t,n)=>!n.some(n=>{var r;return!((r=e.getValue(t))!=null&&r.includes(n))});N0.autoRemove=e=>z0(e)||!(e!=null&&e.length);var P0=(e,t,n)=>n.some(n=>e.getValue(t)?.includes(n));P0.autoRemove=e=>z0(e)||!(e!=null&&e.length);var F0=(e,t,n)=>e.getValue(t)===n;F0.autoRemove=e=>z0(e);var I0=(e,t,n)=>e.getValue(t)==n;I0.autoRemove=e=>z0(e);var L0=(e,t,n)=>{let[r,i]=n,a=e.getValue(t);return a>=r&&a<=i};L0.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]},L0.autoRemove=e=>z0(e)||z0(e[0])&&z0(e[1]);var R0={includesString:k0,includesStringSensitive:A0,equalsString:j0,arrIncludes:M0,arrIncludesAll:N0,arrIncludesSome:P0,equals:F0,weakEquals:I0,inNumberRange:L0};function z0(e){return e==null||e===``}var B0={getDefaultColumnDef:()=>({filterFn:`auto`}),getInitialState:e=>({columnFilters:[],...e}),getDefaultOptions:e=>({onColumnFiltersChange:h0(`columnFilters`,e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),createColumn:(e,t)=>{e.getAutoFilterFn=()=>{let n=t.getCoreRowModel().flatRows[0]?.getValue(e.id);return typeof n==`string`?R0.includesString:typeof n==`number`?R0.inNumberRange:typeof n==`boolean`||typeof n==`object`&&n?R0.equals:Array.isArray(n)?R0.arrIncludes:R0.weakEquals},e.getFilterFn=()=>g0(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn===`auto`?e.getAutoFilterFn():t.options.filterFns?.[e.columnDef.filterFn]??R0[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=m0(n,i?i.value:void 0);if(V0(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=>m0(t,e)?.filter(e=>{let t=n.find(t=>t.id===e.id);return!(t&&V0(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 V0(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||t===void 0||typeof t==`string`&&!t}var H0={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(!_0(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},U0={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:h0(`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 H0.sum;if(Object.prototype.toString.call(n)===`[object Date]`)return H0.extent},e.getAggregationFn=()=>{if(!e)throw Error();return g0(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn===`auto`?e.getAutoAggregationFn():t.options.aggregationFns?.[e.columnDef.aggregationFn]??H0[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 W0(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 G0={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:h0(`columnOrder`,e)}),createColumn:(e,t)=>{e.getIndex=y0(e=>[n2(t,e)],t=>t.findIndex(t=>t.id===e.id),b0(t.options,`debugColumns`,`getIndex`)),e.getIsFirstColumn=n=>n2(t,n)[0]?.id===e.id,e.getIsLastColumn=n=>{let r=n2(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=y0(()=>[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 W0(i,t,n)},b0(e.options,`debugTable`,`_getOrderColumnsFn`))}},K0=()=>({left:[],right:[]}),q0={getInitialState:e=>({columnPinning:K0(),...e}),getDefaultOptions:e=>({onColumnPinningChange:h0(`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=y0(()=>[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=y0(()=>[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=y0(()=>[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?K0():e.initialState?.columnPinning??K0()),e.getIsSomeColumnsPinned=t=>{let n=e.getState().columnPinning;return t?!!n[t]?.length:!!(n.left?.length||n.right?.length)},e.getLeftLeafColumns=y0(()=>[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=y0(()=>[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=y0(()=>[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 J0(e){return e||(typeof document<`u`?document:null)}var Y0={size:150,minSize:20,maxSize:2**53-1},X0=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),Z0={getDefaultColumnDef:()=>Y0,getInitialState:e=>({columnSizing:{},columnSizingInfo:X0(),...e}),getDefaultOptions:e=>({columnResizeMode:`onEnd`,columnResizeDirection:`ltr`,onColumnSizingChange:h0(`columnSizing`,e),onColumnSizingInfoChange:h0(`columnSizingInfo`,e)}),createColumn:(e,t)=>{e.getSize=()=>{let n=t.getState().columnSizing[e.id];return Math.min(Math.max(e.columnDef.minSize??Y0.minSize,n??e.columnDef.size??Y0.size),e.columnDef.maxSize??Y0.maxSize)},e.getStart=y0(e=>[e,n2(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=y0(e=>[e,n2(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(),e2(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=e2(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=J0(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=$0()?{passive:!1}:!1;e2(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?X0():e.initialState.columnSizingInfo??X0())},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}},Q0=null;function $0(){if(typeof Q0==`boolean`)return Q0;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 Q0=e,Q0}function e2(e){return e.type===`touchstart`}var t2={getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:h0(`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=y0(()=>[e.getAllCells(),t.getState().columnVisibility],e=>e.filter(e=>e.column.getIsVisible()),b0(t.options,`debugRows`,`_getAllVisibleCells`)),e.getVisibleCells=y0(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(e,t,n)=>[...e,...t,...n],b0(t.options,`debugRows`,`getVisibleCells`))},createTable:e=>{let t=(t,n)=>y0(()=>[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 n2(e,t){return t?t===`center`?e.getCenterVisibleLeafColumns():t===`left`?e.getLeftVisibleLeafColumns():e.getRightVisibleLeafColumns():e.getVisibleLeafColumns()}var r2={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()}}},i2={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultOptions:e=>({onGlobalFilterChange:h0(`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=()=>R0.includesString,e.getGlobalFilterFn=()=>{let{globalFilterFn:t}=e.options;return g0(t)?t:t===`auto`?e.getGlobalAutoFilterFn():e.options.filterFns?.[t]??R0[t]},e.setGlobalFilter=t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},e.resetGlobalFilter=t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)}}},a2={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:h0(`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()}}}},o2=0,s2=10,c2=()=>({pageIndex:o2,pageSize:s2}),l2={getInitialState:e=>({...e,pagination:{...c2(),...e?.pagination}}),getDefaultOptions:e=>({onPaginationChange:h0(`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=>m0(t,e)),e.resetPagination=t=>{e.setPagination(t?c2():e.initialState.pagination??c2())},e.setPageIndex=t=>{e.setPagination(n=>{let r=m0(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?o2:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageIndex)??o2)},e.resetPageSize=t=>{var n;e.setPageSize(t?s2:((n=e.initialState)==null||(n=n.pagination)==null?void 0:n.pageSize)??s2)},e.setPageSize=t=>{e.setPagination(e=>{let n=Math.max(1,m0(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=m0(t,e.options.pageCount??-1);return typeof r==`number`&&(r=Math.max(-1,r)),{...n,pageCount:r}}),e.getPageOptions=y0(()=>[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}},u2=()=>({top:[],bottom:[]}),d2={getInitialState:e=>({rowPinning:u2(),...e}),getDefaultOptions:e=>({onRowPinningChange:h0(`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?u2():e.initialState?.rowPinning??u2()),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=y0(()=>[e.getRowModel().rows,e.getState().rowPinning.top],(t,n)=>e._getPinnedRows(t,n,`top`),b0(e.options,`debugRows`,`getTopRows`)),e.getBottomRows=y0(()=>[e.getRowModel().rows,e.getState().rowPinning.bottom],(t,n)=>e._getPinnedRows(t,n,`bottom`),b0(e.options,`debugRows`,`getBottomRows`)),e.getCenterRows=y0(()=>[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`))}},f2={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:h0(`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=y0(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?m2(e,n):{rows:[],flatRows:[],rowsById:{}},b0(e.options,`debugTable`,`getSelectedRowModel`)),e.getFilteredSelectedRowModel=y0(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?m2(e,n):{rows:[],flatRows:[],rowsById:{}},b0(e.options,`debugTable`,`getFilteredSelectedRowModel`)),e.getGroupedSelectedRowModel=y0(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?m2(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 p2(o,e.id,n,r?.selectChildren??!0,t),o})},e.getIsSelected=()=>{let{rowSelection:n}=t.getState();return h2(e,n)},e.getIsSomeSelected=()=>{let{rowSelection:n}=t.getState();return g2(e,n)===`some`},e.getIsAllSubRowsSelected=()=>{let{rowSelection:n}=t.getState();return g2(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 m2(e,t){let n=e.getState().rowSelection,r=[],i={},a=function(e,t){return e.map(e=>{var t;let o=h2(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 h2(e,t){return t[e.id]??!1}function g2(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()&&(h2(e,t)?a=!0:i=!1),e.subRows&&e.subRows.length)){let n=g2(e,t);n===`all`?a=!0:(n===`some`&&(a=!0),i=!1)}}),i?`all`:a?`some`:!1}var _2=/([0-9]+)/gm,v2=(e,t,n)=>E2(T2(e.getValue(n)).toLowerCase(),T2(t.getValue(n)).toLowerCase()),y2=(e,t,n)=>E2(T2(e.getValue(n)),T2(t.getValue(n))),b2=(e,t,n)=>w2(T2(e.getValue(n)).toLowerCase(),T2(t.getValue(n)).toLowerCase()),x2=(e,t,n)=>w2(T2(e.getValue(n)),T2(t.getValue(n))),S2=(e,t,n)=>{let r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},C2=(e,t,n)=>w2(e.getValue(n),t.getValue(n));function w2(e,t){return e===t?0:e>t?1:-1}function T2(e){return typeof e==`number`?isNaN(e)||e===1/0||e===-1/0?``:String(e):typeof e==`string`?e:``}function E2(e,t){let n=e.split(_2).filter(Boolean),r=t.split(_2).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 D2={alphanumeric:v2,alphanumericCaseSensitive:y2,text:b2,textCaseSensitive:x2,datetime:S2,basic:C2},O2=[T0,t2,G0,q0,O0,B0,r2,i2,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:`auto`,sortUndefined:1}),getDefaultOptions:e=>({onSortingChange:h0(`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 D2.datetime;if(typeof n==`string`&&(r=!0,n.split(_2).length>1))return D2.alphanumeric}return r?D2.text:D2.basic},e.getAutoSortDir=()=>typeof t.getFilteredRowModel().flatRows[0]?.getValue(e.id)==`string`?`asc`:`desc`,e.getSortingFn=()=>{if(!e)throw Error();return g0(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn===`auto`?e.getAutoSortingFn():t.options.sortingFns?.[e.columnDef.sortingFn]??D2[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())}},U0,a2,l2,d2,f2,Z0];function k2(e){let t=[...O2,...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(m0(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:y0(()=>[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:y0(()=>[n._getColumnDefs()],e=>{let t=function(e,r,i){return i===void 0&&(i=0),e.map(e=>{let a=S0(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:y0(()=>[n.getAllColumns()],e=>e.flatMap(e=>e.getFlatColumns()),b0(e,`debugColumns`,`getAllFlatColumns`)),_getAllFlatColumnsById:y0(()=>[n.getAllFlatColumns()],e=>e.reduce((e,t)=>(e[t.id]=t,e),{}),b0(e,`debugColumns`,`getAllFlatColumnsById`)),getAllLeafColumns:y0(()=>[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 A2(){return e=>y0(()=>[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=D0(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 j2(e,t){return e?M2(e)?v.createElement(e,t):e:null}function M2(e){return N2(e)||typeof e==`function`||P2(e)}function N2(e){return typeof e==`function`&&(()=>{let t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function P2(e){return typeof e==`object`&&typeof e.$$typeof==`symbol`&&[`react.memo`,`react.forward_ref`].includes(e.$$typeof.description)}function F2(e){let t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=v.useState(()=>({current:k2(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 I2={"super admin":`default`,admin:`secondary`,contributor:`outline`,editor:`secondary`,viewer:`outline`};function L2({roleId:e,roleName:t,roles:n}){let r=n.find(t=>t.id===e),i=t??r?.name??e;return(0,U.jsx)(vw,{variant:I2[i.toLowerCase()]??`secondary`,children:i})}function R2({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,U.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,U.jsx)(J,{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,U.jsx)(No,{className:`size-3.5`})}),(0,U.jsx)(J,{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,U.jsx)(qo,{className:`size-3.5`})})]})}var z2={email:``,password:``,roleId:``,enabled:!0};function B2(){let{user:e,updateUser:t}=ga(),{editorialMode:n}=ya(),{data:r,loading:i,refetch:a}=wa(`/cms/admin/users`),{data:o,loading:s}=wa(`/cms/admin/roles`),c=i||s,{request:l,loading:u,error:d}=Vv(),[f,p]=(0,v.useState)(!1),[m,h]=(0,v.useState)(z2),[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,U.jsx)(`span`,{className:`text-muted-foreground`,children:`—`}):(0,U.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,U.jsx)(L2,{roleId:t(),roleName:e.original.role_name,roles:C})},{accessorKey:`enabled`,header:`Enabled`,cell:({row:t,getValue:n})=>(0,U.jsx)(rj,{checked:!!(n()??!0),onCheckedChange:async e=>{try{await l(`/cms/admin/users/${t.original.id}`,`PUT`,{enabled:e}),a()}catch{}},disabled:t.original.id===e?.id||u})},{id:`actions`,header:``,cell:({row:t})=>(0,U.jsx)(R2,{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=F2({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:A2()});async function k(e){e.preventDefault();try{await l(`/cms/admin/users`,`POST`,m),p(!1),h(z2),a()}catch{}}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()}catch{}}async function j(){try{await l(`/cms/admin/users/${x.id}`,`DELETE`),S(null),a()}catch{}}return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(yy,{children:(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Users`}),(0,U.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Manage who has access to the admin panel.`})]}),(0,U.jsxs)(J,{onClick:()=>p(!0),children:[(0,U.jsx)(Po,{className:`size-4`}),`New user`]})]})}),(0,U.jsxs)(`section`,{className:`mt-24`,children:[(0,U.jsx)(`div`,{className:`rounded-md border`,children:(0,U.jsxs)(Rw,{children:[(0,U.jsx)(zw,{className:`font-bold uppercase`,children:O.getHeaderGroups().map(e=>(0,U.jsx)(Vw,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,U.jsx)(Hw,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:j2(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,U.jsx)(Bw,{children:c?(0,U.jsx)(Vw,{children:(0,U.jsx)(Uw,{colSpan:D.length,className:`h-24`,children:(0,U.jsx)(by,{className:`mx-auto size-5`})})}):O.getRowModel().rows.length===0?(0,U.jsx)(Vw,{children:(0,U.jsx)(Uw,{colSpan:D.length,className:`h-24 text-center text-muted-foreground`,children:`No users found.`})}):O.getRowModel().rows.map(e=>(0,U.jsx)(Vw,{children:e.getVisibleCells().map(e=>(0,U.jsx)(Uw,{className:`px-4 py-3`,children:j2(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,U.jsx)(yw,{open:f,onOpenChange:p,children:(0,U.jsxs)(Cw,{className:`sm:max-w-md`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`New user`})}),(0,U.jsxs)(`form`,{id:`create-user-form`,onSubmit:k,className:`flex flex-col gap-4`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`c-email`,children:`Email`}),(0,U.jsx)(Hv,{id:`c-email`,type:`email`,placeholder:`user@example.com`,value:m.email,onChange:e=>h(t=>({...t,email:e.target.value})),required:!0})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`c-password`,children:`Password`}),(0,U.jsx)(Hv,{id:`c-password`,type:`password`,placeholder:`Min. 8 characters`,value:m.password,onChange:e=>h(t=>({...t,password:e.target.value})),required:!0})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`c-role`,children:`Role`}),(0,U.jsxs)(Ow,{value:m.roleId,onValueChange:e=>h(t=>({...t,roleId:e})),children:[(0,U.jsx)(jw,{id:`c-role`,children:(0,U.jsx)(Aw,{placeholder:`Select a role`})}),(0,U.jsx)(Pw,{children:E.map(e=>(0,U.jsx)(Iw,{value:e.id,children:e.name.charAt(0).toUpperCase()+e.name.slice(1)},e.id))})]})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,U.jsx)(X,{htmlFor:`c-enabled`,children:`Enabled`}),(0,U.jsx)(rj,{id:`c-enabled`,checked:m.enabled,onCheckedChange:e=>h(t=>({...t,enabled:e}))})]}),d&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:d})]}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,type:`button`,onClick:()=>p(!1),children:`Cancel`}),(0,U.jsx)(J,{type:`submit`,form:`create-user-form`,disabled:u,children:u?`Creating…`:`Create user`})]})]})}),(0,U.jsx)(yw,{open:!!g,onOpenChange:e=>{e||_(null)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-md`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Edit user`})}),(0,U.jsxs)(`form`,{id:`edit-user-form`,onSubmit:A,className:`flex flex-col gap-4`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`e-email`,children:`Email`}),(0,U.jsx)(Hv,{id:`e-email`,type:`email`,value:y.email,onChange:e=>b(t=>({...t,email:e.target.value})),required:!0})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`e-fname`,children:`First name`}),(0,U.jsx)(Hv,{id:`e-fname`,value:y.firstName,onChange:e=>b(t=>({...t,firstName:e.target.value}))})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`e-lname`,children:`Last name`}),(0,U.jsx)(Hv,{id:`e-lname`,value:y.lastName,onChange:e=>b(t=>({...t,lastName:e.target.value}))})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`e-role`,children:`Role`}),(0,U.jsxs)(Ow,{value:y.roleId,onValueChange:e=>b(t=>({...t,roleId:e})),children:[(0,U.jsx)(jw,{id:`e-role`,children:(0,U.jsx)(Aw,{placeholder:`Select a role`})}),(0,U.jsx)(Pw,{children:E.map(e=>(0,U.jsx)(Iw,{value:e.id,children:e.name.charAt(0).toUpperCase()+e.name.slice(1)},e.id))})]})]}),(0,U.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,U.jsx)(X,{htmlFor:`e-enabled`,children:`Enabled`}),(0,U.jsx)(rj,{id:`e-enabled`,checked:y.enabled,onCheckedChange:e=>b(t=>({...t,enabled:e}))})]}),d&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:d})]}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,type:`button`,onClick:()=>_(null),children:`Cancel`}),(0,U.jsx)(J,{type:`submit`,form:`edit-user-form`,disabled:u,children:u?`Saving…`:`Save changes`})]})]})}),(0,U.jsx)(yw,{open:!!x,onOpenChange:e=>{e||S(null)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Delete user`})}),(0,U.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,U.jsx)(`span`,{className:`font-medium text-foreground`,children:x?.email}),`? This action cannot be undone.`]}),d&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:d}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>S(null),children:`Cancel`}),(0,U.jsx)(J,{variant:`destructive`,onClick:j,disabled:u,children:u?`Deleting…`:`Delete`})]})]})})]})]})}var V2=[{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`]}],H2=[{key:`read`,label:`R`},{key:`write`,label:`W`},{key:`delete`,label:`D`}],U2=[`Super Admin`,`Admin`,`Editor`,`Contributor`],W2=`w-44 min-w-44 max-w-44`;function G2(e){return Object.fromEntries(e.map(e=>[e.id,new Set(e.permissions)]))}function K2(e,t){return e.includes(t)}function q2(){let{user:e}=ga(),{editorialMode:t}=ya(),{data:n,loading:r,refetch:i}=wa(`/cms/admin/roles`),{request:a,loading:o}=Vv(),[s,c]=(0,v.useState)({}),[l,u]=(0,v.useState)(new Set),[d,f]=(0,v.useState)(!1);(0,v.useEffect)(()=>{n&&c(G2(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){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})}async function h(){await a(`/cms/admin/roles/reset`,`POST`),f(!1),u(new Set),i()}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=U2.indexOf(e.name),r=U2.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,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(yy,{children:(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Roles`}),(0,U.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Configure what each role can do across the CMS.`})]}),g&&(0,U.jsxs)(J,{variant:`outline`,onClick:()=>f(!0),children:[(0,U.jsx)(Io,{className:`size-4`}),`Reset defaults`]})]})}),(0,U.jsxs)(`section`,{className:`mt-24`,children:[(0,U.jsx)(`div`,{className:`rounded-md border`,children:(0,U.jsxs)(Rw,{children:[(0,U.jsxs)(zw,{children:[(0,U.jsxs)(Vw,{className:`hover:bg-transparent`,children:[(0,U.jsx)(Hw,{className:`w-40`,rowSpan:2}),y&&(0,U.jsx)(Hw,{colSpan:3,className:`border-l text-center ${W2}`,children:y.name}),_.map(e=>(0,U.jsx)(Hw,{colSpan:3,className:`border-l ${W2}`,children:(0,U.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,U.jsx)(`span`,{children:e.name}),(0,U.jsxs)(J,{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,U.jsx)(Lo,{className:`size-3`}),`Save`]})]})},e.id))]}),(0,U.jsxs)(Vw,{className:`hover:bg-transparent`,children:[y&&H2.map((e,t)=>(0,U.jsx)(Hw,{className:`w-12 text-center font-normal ${t===0?`border-l`:``}`,children:e.label},e.key)),_.map(e=>H2.map((t,n)=>(0,U.jsx)(Hw,{className:`w-12 text-center font-normal ${n===0?`border-l`:``}`,children:t.label},`${e.id}-${t.key}`)))]})]}),(0,U.jsx)(Bw,{children:r?(0,U.jsx)(Vw,{children:(0,U.jsx)(Uw,{colSpan:99,className:`h-24`,children:(0,U.jsx)(by,{className:`mx-auto size-5`})})}):V2.map(({key:e,label:t,actions:n})=>(0,U.jsxs)(Vw,{children:[(0,U.jsx)(Uw,{className:`font-medium`,children:t}),y&&H2.map((e,t)=>(0,U.jsx)(Uw,{className:`text-center ${t===0?`border-l`:``}`,children:K2(n,e.key)?(0,U.jsx)(EO,{checked:!0,disabled:!0}):(0,U.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},e.key)),_.map(t=>H2.map((r,i)=>{let a=K2(n,r.key),o=`${e}:${r.key}`;return(0,U.jsx)(Uw,{className:`text-center ${i===0?`border-l`:``}`,children:a?(0,U.jsx)(EO,{checked:s[t.id]?.has(o)??!1,onCheckedChange:()=>p(t.id,o)}):(0,U.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},`${t.id}-${r.key}`)}))]},e))})]})}),t&&(0,U.jsxs)(`div`,{className:`mt-3 rounded-md border bg-muted/30 p-3`,children:[(0,U.jsx)(`p`,{className:`text-sm font-medium`,children:`Viewer`}),(0,U.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,U.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,U.jsx)(yw,{open:d,onOpenChange:f,children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Reset to defaults`})}),(0,U.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,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>f(!1),children:`Cancel`}),(0,U.jsx)(J,{variant:`destructive`,onClick:h,disabled:o,children:o?`Resetting…`:`Reset`})]})]})})]})]})}var J2={"full-access":`default`,"read-only":`secondary`},Y2={"full-access":`Full access`,"read-only":`Read only`};function X2({value:e}){let[t,n]=(0,v.useState)(!1);function r(){navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),2e3)}return(0,U.jsx)(J,{type:`button`,size:`icon`,variant:`outline`,className:`shrink-0`,onClick:r,children:t?(0,U.jsx)(za,{className:`size-4 text-green-500`}):(0,U.jsx)(Za,{className:`size-4`})})}var Z2={name:``,accessType:``};function Q2(){let{user:e}=ga(),{data:t,loading:n,refetch:r}=wa(`/cms/admin/api-tokens`),{request:i,loading:a,error:o}=Vv(),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)(Z2),[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,U.jsx)(vw,{variant:J2[t]??`secondary`,children:Y2[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,U.jsx)(J,{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,U.jsx)(qo,{className:`size-3.5`})}):null}],b=F2({data:t??[],columns:y,getCoreRowModel:A2()});async function x(e){e.preventDefault();try{h(await i(`/cms/admin/api-tokens`,`POST`,{name:f.name,accessType:f.accessType})),r()}catch{}}function S(){d(!1),h(null),p(Z2)}async function C(){try{await i(`/cms/admin/api-tokens/${g.id}`,`DELETE`),_(null),r()}catch{}}return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(yy,{children:(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`API Tokens`}),(0,U.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Manage tokens for consuming the public API.`})]}),(0,U.jsxs)(J,{onClick:()=>d(!0),disabled:!c,children:[(0,U.jsx)(Po,{className:`size-4`}),`New token`]})]})}),(0,U.jsxs)(`section`,{className:`mt-24`,children:[(0,U.jsx)(`div`,{className:`rounded-md border`,children:(0,U.jsxs)(Rw,{children:[(0,U.jsx)(zw,{className:`font-bold uppercase`,children:b.getHeaderGroups().map(e=>(0,U.jsx)(Vw,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,U.jsx)(Hw,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:j2(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,U.jsx)(Bw,{children:n?(0,U.jsx)(Vw,{children:(0,U.jsx)(Uw,{colSpan:y.length,className:`h-24`,children:(0,U.jsx)(by,{className:`mx-auto size-5`})})}):b.getRowModel().rows.length===0?(0,U.jsx)(Vw,{children:(0,U.jsx)(Uw,{colSpan:y.length,className:`h-24 text-center text-muted-foreground`,children:`No tokens yet.`})}):b.getRowModel().rows.map(e=>(0,U.jsx)(Vw,{children:e.getVisibleCells().map(e=>(0,U.jsx)(Uw,{className:`px-4 py-3`,children:j2(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,U.jsx)(yw,{open:u,onOpenChange:e=>{e||S()},children:(0,U.jsx)(Cw,{className:`sm:max-w-md`,children:m?(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Token generated`})}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,U.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,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{children:`Token`}),(0,U.jsxs)(`div`,{className:`flex gap-2`,children:[(0,U.jsx)(Hv,{readOnly:!0,value:m.token,className:`font-mono text-xs`}),(0,U.jsx)(X2,{value:m.token})]})]})]}),(0,U.jsx)(Tw,{children:(0,U.jsx)(J,{onClick:S,children:`Done`})})]}):(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`New API token`})}),(0,U.jsxs)(`form`,{id:`create-token-form`,onSubmit:x,className:`flex flex-col gap-4`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`token-name`,children:`Name`}),(0,U.jsx)(Hv,{id:`token-name`,placeholder:`e.g. Production frontend`,value:f.name,onChange:e=>p(t=>({...t,name:e.target.value})),required:!0})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`token-access`,children:`Access type`}),(0,U.jsxs)(Ow,{value:f.accessType,onValueChange:e=>p(t=>({...t,accessType:e})),children:[(0,U.jsx)(jw,{id:`token-access`,children:(0,U.jsx)(Aw,{placeholder:`Select access type`})}),(0,U.jsxs)(Pw,{children:[(0,U.jsx)(Iw,{value:`read-only`,children:`Read only`}),(0,U.jsx)(Iw,{value:`full-access`,children:`Full access`})]})]})]}),o&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:o})]}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,type:`button`,onClick:S,children:`Cancel`}),(0,U.jsx)(J,{type:`submit`,form:`create-token-form`,disabled:a||!f.accessType||!c,children:a?`Generating…`:`Generate token`})]})]})})}),(0,U.jsx)(yw,{open:!!g,onOpenChange:e=>{e||_(null)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Revoke token`})}),(0,U.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to revoke`,` `,(0,U.jsx)(`span`,{className:`font-medium text-foreground`,children:g?.name}),`? Any frontend using it will immediately lose access.`]}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>_(null),children:`Cancel`}),(0,U.jsx)(J,{variant:`destructive`,onClick:C,disabled:a||!l,children:a?`Revoking…`:`Revoke`})]})]})})]})]})}var $2=[{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`}],e4={name:``,url:``,events:[]};function t4(){let{user:e}=ga(),{data:t,loading:n,refetch:r}=wa(`/cms/admin/webhooks`),{request:i,loading:a,error:o}=Vv(),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)(e4),[m,h]=(0,v.useState)(null),g=[{accessorKey:`name`,header:`Name`},{accessorKey:`url`,header:`URL`,cell:({getValue:e})=>(0,U.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,U.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e().map(e=>(0,U.jsx)(vw,{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,U.jsx)(J,{size:`icon`,variant:`ghost`,className:`size-8 text-destructive hover:text-destructive`,onClick:()=>h(e.original),children:(0,U.jsx)(qo,{className:`size-3.5`})}):null}],_=F2({data:t??[],columns:g,getCoreRowModel:A2()});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(e4),r()}catch{}}async function x(){try{await i(`/cms/admin/webhooks/${m.id}`,`DELETE`),h(null),r()}catch{}}return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(yy,{children:(0,U.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,U.jsxs)(`div`,{children:[(0,U.jsx)(`h1`,{className:`text-2xl font-bold -mt-2`,children:`Webhooks`}),(0,U.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:`Notify external services when content events occur.`})]}),(0,U.jsxs)(J,{onClick:()=>d(!0),disabled:!c,children:[(0,U.jsx)(Po,{className:`size-4`}),`New webhook`]})]})}),(0,U.jsxs)(`section`,{className:`mt-24`,children:[(0,U.jsx)(`div`,{className:`rounded-md border`,children:(0,U.jsxs)(Rw,{children:[(0,U.jsx)(zw,{className:`font-bold uppercase`,children:_.getHeaderGroups().map(e=>(0,U.jsx)(Vw,{className:`hover:bg-transparent`,children:e.headers.map(e=>(0,U.jsx)(Hw,{className:`px-4 py-3 text-left font-medium text-muted-foreground`,children:j2(e.column.columnDef.header,e.getContext())},e.id))},e.id))}),(0,U.jsx)(Bw,{children:n?(0,U.jsx)(Vw,{children:(0,U.jsx)(Uw,{colSpan:g.length,className:`h-24`,children:(0,U.jsx)(by,{className:`mx-auto size-5`})})}):_.getRowModel().rows.length===0?(0,U.jsx)(Vw,{children:(0,U.jsx)(Uw,{colSpan:g.length,className:`h-24 text-center text-muted-foreground`,children:`No webhooks yet.`})}):_.getRowModel().rows.map(e=>(0,U.jsx)(Vw,{children:e.getVisibleCells().map(e=>(0,U.jsx)(Uw,{className:`px-4 py-3`,children:j2(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})}),(0,U.jsx)(yw,{open:u,onOpenChange:e=>{e||(d(!1),p(e4))},children:(0,U.jsxs)(Cw,{className:`sm:max-w-md`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`New webhook`})}),(0,U.jsxs)(`form`,{id:`create-webhook-form`,onSubmit:b,className:`flex flex-col gap-4`,children:[(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`webhook-name`,children:`Name`}),(0,U.jsx)(Hv,{id:`webhook-name`,placeholder:`e.g. Dokploy deploy`,value:f.name,onChange:e=>p(t=>({...t,name:e.target.value})),required:!0})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,U.jsx)(X,{htmlFor:`webhook-url`,children:`URL`}),(0,U.jsx)(Hv,{id:`webhook-url`,type:`url`,placeholder:`https://...`,value:f.url,onChange:e=>p(t=>({...t,url:e.target.value})),required:!0})]}),(0,U.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,U.jsx)(X,{children:`Events`}),$2.map(({value:e,label:t})=>(0,U.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,U.jsx)(EO,{id:`event-${e}`,checked:f.events.includes(e),onCheckedChange:()=>y(e)}),(0,U.jsxs)(`label`,{htmlFor:`event-${e}`,className:`text-sm cursor-pointer`,children:[t,(0,U.jsx)(`span`,{className:`ml-2 font-mono text-xs text-muted-foreground`,children:e})]})]},e))]}),o&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:o})]}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,type:`button`,onClick:()=>{d(!1),p(e4)},children:`Cancel`}),(0,U.jsx)(J,{type:`submit`,form:`create-webhook-form`,disabled:a||f.events.length===0||!c,children:a?`Creating…`:`Create webhook`})]})]})}),(0,U.jsx)(yw,{open:!!m,onOpenChange:e=>{e||h(null)},children:(0,U.jsxs)(Cw,{className:`sm:max-w-sm`,children:[(0,U.jsx)(ww,{children:(0,U.jsx)(Ew,{children:`Delete webhook`})}),(0,U.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to delete`,` `,(0,U.jsx)(`span`,{className:`font-medium text-foreground`,children:m?.name}),`? It will stop receiving events immediately.`]}),(0,U.jsxs)(Tw,{children:[(0,U.jsx)(J,{variant:`outline`,onClick:()=>h(null),children:`Cancel`}),(0,U.jsx)(J,{variant:`destructive`,onClick:x,disabled:a||!l,children:a?`Deleting…`:`Delete`})]})]})})]})]})}function n4({...e}){return(0,U.jsx)(Vy,{"data-slot":`collapsible`,...e})}function r4({...e}){return(0,U.jsx)(Ry,{"data-slot":`collapsible-content`,...e})}function i4(){let{user:e,updateUser:t}=ga(),{loading:n,error:r,request:i}=Vv(),{request:a}=Vv(),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 mQ(n)})}catch(e){f(e instanceof Error?e.message:`Upload failed.`)}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})}catch(e){f(e instanceof Error?e.message:`Delete failed.`)}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)}catch{}}return(0,U.jsx)(n4,{open:p,onOpenChange:m,children:(0,U.jsxs)(k1,{children:[(0,U.jsxs)(A1,{children:[(0,U.jsx)(j1,{className:`uppercase`,children:`Account`}),(0,U.jsx)(M1,{children:(0,U.jsx)(J,{variant:`ghost`,size:`icon`,onClick:E,children:p?(0,U.jsx)(ns,{className:`size-4`}):(0,U.jsx)(No,{className:`size-4`})})})]}),(0,U.jsxs)(N1,{children:[(0,U.jsxs)(`div`,{className:`flex items-center gap-4 -mt-4`,children:[(0,U.jsxs)(`div`,{className:`group relative shrink-0`,children:[(0,U.jsxs)(`button`,{type:`button`,className:`block`,onClick:()=>o.current?.click(),disabled:s||l,title:`Change avatar`,children:[(0,U.jsx)(El,{avatarUrl:e?.avatarUrl,firstName:e?.firstName,lastName:e?.lastName,email:e?.email,className:`size-20`,fallbackClassName:`text-xl`}),(0,U.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,U.jsx)(`div`,{className:`size-4 animate-spin rounded-full border-2 border-white border-t-transparent`}):(0,U.jsx)(Ra,{className:`size-5 text-white`})})]}),e?.avatarUrl&&!s&&!l&&(0,U.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,U.jsx)(qo,{className:`size-3`})})]}),(0,U.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,className:`hidden`,onChange:D}),(0,U.jsxs)(`div`,{children:[d&&(0,U.jsx)(`p`,{className:`text-xs text-destructive mb-1`,children:d}),(0,U.jsx)(`p`,{className:`font-bold text-xl`,children:e?.firstName||e?.lastName?`${e.firstName??``} ${e.lastName??``}`.trim():e?.email}),(e?.jobTitle||e?.organization)&&(0,U.jsx)(`p`,{className:`text-sm`,children:[e.jobTitle,e.organization].filter(Boolean).join(` · `)}),(0,U.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:e?.email}),(0,U.jsxs)(`div`,{className:`flex flex-wrap gap-2 mt-2`,children:[(0,U.jsx)(vw,{className:`capitalize`,children:e?.role}),e?.country&&(0,U.jsx)(vw,{variant:`outline`,children:e.country})]})]})]}),(0,U.jsx)(r4,{children:(0,U.jsxs)(`form`,{onSubmit:k,className:`space-y-4 mt-8`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`firstName`,children:`First name`}),(0,U.jsx)(Hv,{id:`firstName`,value:h,onChange:e=>g(e.target.value)})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`lastName`,children:`Last name`}),(0,U.jsx)(Hv,{id:`lastName`,value:_,onChange:e=>y(e.target.value)})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`jobTitle`,children:`Job title`}),(0,U.jsx)(Hv,{id:`jobTitle`,value:b,onChange:e=>x(e.target.value)})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`organization`,children:`Organization`}),(0,U.jsx)(Hv,{id:`organization`,value:S,onChange:e=>C(e.target.value)})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`country`,children:`Country`}),(0,U.jsx)(Hv,{id:`country`,value:w,onChange:e=>T(e.target.value)})]})]}),r&&(0,U.jsx)(`p`,{className:`text-destructive text-sm`,children:r}),(0,U.jsx)(J,{type:`submit`,disabled:n,children:n?`Saving…`:`Save changes`})]})})]})]})})}var a4=Object.defineProperty,o4=Object.getOwnPropertySymbols,s4=Object.prototype.hasOwnProperty,c4=Object.prototype.propertyIsEnumerable,l4=(e,t,n)=>t in e?a4(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,u4=(e,t)=>{for(var n in t||={})s4.call(t,n)&&l4(e,n,t[n]);if(o4)for(var n of o4(t))c4.call(t,n)&&l4(e,n,t[n]);return e},d4=(e,t)=>{var n={};for(var r in e)s4.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&o4)for(var r of o4(e))t.indexOf(r)<0&&c4.call(e,r)&&(n[r]=e[r]);return n},f4;(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})(f4||={}),(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||={})})(f4||={}),(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||={})})(f4||={});var p4=f4,m4={L:p4.QrCode.Ecc.LOW,M:p4.QrCode.Ecc.MEDIUM,Q:p4.QrCode.Ecc.QUARTILE,H:p4.QrCode.Ecc.HIGH},h4=128,g4=`L`,_4=`#FFFFFF`,v4=`#000000`,y4=!1,b4=1,x4=4,S4=0,C4=.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 T4(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 E4(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*C4),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 D4(e,t){return t==null?e?x4:S4:Math.max(Math.floor(t),0)}function O4({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,m4[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=D4(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:E4(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:u,cells:l,numCells:d,calculatedImageSettings:f}}var k4=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),A4=v.forwardRef(function(e,t){let n=e,{value:r,size:i=h4,level:a=g4,bgColor:o=_4,fgColor:s=v4,includeMargin:c=y4,minVersion:l=b4,boostLevel:u,marginSize:d,imageSettings:f}=n,p=d4(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:m}=p,h=d4(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}=O4({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=T4(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,k4?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=u4({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`,u4({style:D,height:i,width:i,ref:b,role:`img`},h)),O)});A4.displayName=`QRCodeCanvas`;var j4=v.forwardRef(function(e,t){let n=e,{value:r,size:i=h4,level:a=g4,bgColor:o=_4,fgColor:s=v4,includeMargin:c=y4,minVersion:l=b4,boostLevel:u,title:d,marginSize:f,imageSettings:p}=n,m=d4(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:h,cells:g,numCells:_,calculatedImageSettings:y}=O4({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=T4(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`,u4({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)});j4.displayName=`QRCodeSVG`;function M4(){let{user:e,updateUser:t,logout:n}=ga(),{loading:r,error:i,request:a}=Vv(),{loading:o,error:s,request:c}=Vv(),[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()}catch{}}async function L(){C(await c(`/cms/admin/users/me/2fa/setup`,`POST`))}async function R(){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??[])}async function ee(){await c(`/cms/admin/users/me/2fa/disable`,`POST`,{code:w,password:E}),x(!1),t({twoFactorEnabled:!1}),T(``),D(``),j([]),N(!1)}return(0,U.jsxs)(k1,{children:[(0,U.jsxs)(A1,{children:[(0,U.jsx)(j1,{className:`uppercase`,children:`Security`}),(0,U.jsx)(M1,{})]}),(0,U.jsx)(N1,{className:`space-y-6`,children:(0,U.jsxs)($A,{value:l,children:[(0,U.jsxs)(ej,{children:[(0,U.jsx)(tj,{value:`password`,onClick:()=>u(e=>e===`password`?``:`password`),children:`Password`}),(0,U.jsx)(tj,{value:`two-factor`,onClick:()=>u(e=>e===`two-factor`?``:`two-factor`),children:`2FA`})]}),(0,U.jsx)(nj,{value:`password`,className:`mt-4`,children:(0,U.jsxs)(`div`,{className:`space-y-4 rounded-md border border-border p-4`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Update your account password.`}),(0,U.jsx)(J,{variant:`ghost`,size:`icon`,onClick:P,children:(0,U.jsx)(ns,{className:`size-4`})})]}),(0,U.jsxs)(`form`,{onSubmit:I,className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`current`,children:`Current password`}),(0,U.jsx)(Hv,{id:`current`,type:`password`,value:d,onChange:e=>f(e.target.value),required:!0})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`new`,children:`New password`}),(0,U.jsx)(Hv,{id:`new`,type:`password`,value:p,onChange:e=>m(e.target.value),required:!0,minLength:8})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(X,{htmlFor:`confirm`,children:`Confirm new password`}),(0,U.jsx)(Hv,{id:`confirm`,type:`password`,value:h,onChange:e=>g(e.target.value),required:!0})]}),(_??i)&&(0,U.jsx)(`p`,{className:`text-destructive text-sm`,children:_??i}),(0,U.jsx)(J,{type:`submit`,disabled:r,children:r?`Saving…`:`Update password`})]})]})}),(0,U.jsx)(nj,{value:`two-factor`,className:`mt-4`,children:(0,U.jsxs)(`div`,{className:`space-y-4`,children:[!b&&!S&&(0,U.jsx)(J,{variant:`secondary`,onClick:L,disabled:o,children:`Enable 2FA`}),S&&!b&&(0,U.jsxs)(`div`,{className:`space-y-3 rounded-md border border-border p-4`,children:[(0,U.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Scan this QR code with your authenticator app and enter the 6-digit code.`}),(0,U.jsx)(J,{variant:`ghost`,size:`icon`,onClick:F,children:(0,U.jsx)(ns,{className:`size-4`})})]}),(0,U.jsx)(`div`,{className:`inline-flex rounded-md bg-white p-2`,children:(0,U.jsx)(j4,{value:S.otpauthUri,size:176})}),(0,U.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Manual code: `,S.secret]}),(0,U.jsx)(my,{maxLength:6,value:w,onChange:T,containerClassName:`w-fit`,className:`w-fit`,children:(0,U.jsxs)(hy,{className:`w-fit`,children:[(0,U.jsx)(gy,{index:0}),(0,U.jsx)(gy,{index:1}),(0,U.jsx)(gy,{index:2}),(0,U.jsx)(gy,{index:3}),(0,U.jsx)(gy,{index:4}),(0,U.jsx)(gy,{index:5})]})}),(0,U.jsx)(J,{onClick:R,disabled:o||w.length!==6,children:`Confirm and enable 2FA`}),s&&(0,U.jsx)(`p`,{className:`text-sm text-destructive`,children:s})]}),b&&(0,U.jsxs)(`div`,{className:`space-y-3 rounded-md border border-border p-4`,children:[O&&(0,U.jsxs)(`div`,{className:`space-y-3 rounded-md border border-emerald-500/40 bg-emerald-500/10 p-3`,children:[(0,U.jsx)(`p`,{className:`text-sm font-medium text-emerald-300`,children:`2FA is now enabled.`}),(0,U.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,U.jsx)(J,{variant:`default`,onClick:()=>{n()},children:`Re-login now`}),A.length>0&&(0,U.jsxs)(`div`,{className:`space-y-2 rounded-md border border-emerald-400/30 bg-background/40 p-3`,children:[(0,U.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,U.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:A.map(e=>(0,U.jsx)(`code`,{className:`rounded bg-black/20 px-2 py-1 text-xs text-emerald-100`,children:e},e))}),(0,U.jsx)(J,{variant:`outline`,onClick:async()=>{try{await navigator.clipboard.writeText(A.join(`
@@ -12,7 +12,7 @@
12
12
  href="https://fonts.googleapis.com/css2?family=Google+Sans:ital,opsz,wght@0,17..18,400..700;1,17..18,400..700&display=swap"
13
13
  rel="stylesheet"
14
14
  />
15
- <script type="module" crossorigin src="/admin/assets/index-rXqeM7Q1.js"></script>
15
+ <script type="module" crossorigin src="/admin/assets/index-cDCZafS6.js"></script>
16
16
  <link rel="stylesheet" crossorigin href="/admin/assets/index-BrTr5m2J.css">
17
17
  </head>
18
18
  <body>
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import { randomBytes } from "crypto";
7
7
  import { resolve, join } from "path";
8
8
  import fs from "fs-extra";
9
9
  import { execa } from "execa";
10
- var PACKAGE_VERSION = "0.20.0";
10
+ var PACKAGE_VERSION = "0.20.1";
11
11
  function generateSecret() {
12
12
  return randomBytes(32).toString("hex");
13
13
  }
@@ -101,7 +101,7 @@ import { dirname, join as join2, resolve as resolve2 } from "path";
101
101
  async function start() {
102
102
  config({ path: resolve2(process.cwd(), ".env") });
103
103
  process.env.PLANK_ADMIN_DIST = join2(dirname(fileURLToPath(import.meta.url)), "admin");
104
- const { start: startServer } = await import("./server-V5YKK3DC.js");
104
+ const { start: startServer } = await import("./server-JCTD2EIO.js");
105
105
  await startServer();
106
106
  }
107
107
 
@@ -5331,7 +5331,8 @@ app.use(helmet({
5331
5331
  directives: {
5332
5332
  ...helmet.contentSecurityPolicy.getDefaultDirectives(),
5333
5333
  "img-src": ["'self'", "data:", "https:"],
5334
- "connect-src": ["'self'", "https:"]
5334
+ "connect-src": ["'self'", "https:"],
5335
+ "media-src": ["'self'", "blob:", "https:"]
5335
5336
  }
5336
5337
  }
5337
5338
  }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plank-cms/plank",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "description": "Self-hosted headless CMS. Deploy in minutes on your own infrastructure.",
5
5
  "type": "module",
6
6
  "files": [
@@ -55,9 +55,9 @@
55
55
  "devDependencies": {
56
56
  "@types/fs-extra": "^11.0.4",
57
57
  "tsup": "^8.5.0",
58
- "@plank-cms/db": "0.20.0",
59
- "@plank-cms/schema": "0.20.0",
60
- "@plank-cms/core": "0.20.0"
58
+ "@plank-cms/core": "0.20.1",
59
+ "@plank-cms/schema": "0.20.1",
60
+ "@plank-cms/db": "0.20.1"
61
61
  },
62
62
  "scripts": {
63
63
  "build": "tsup",