@brftech/filex 0.1.82 → 0.1.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/README.md +2 -0
  2. package/dist/{ArchiveViewer-KAciGYaT.js → ArchiveViewer-BZ-qfo0J.js} +2 -2
  3. package/dist/{ArchiveViewer-KAciGYaT.js.map → ArchiveViewer-BZ-qfo0J.js.map} +1 -1
  4. package/dist/{CsvViewer-Diyv8g_M.js → CsvViewer-Df906yhc.js} +2 -2
  5. package/dist/{CsvViewer-Diyv8g_M.js.map → CsvViewer-Df906yhc.js.map} +1 -1
  6. package/dist/{DrawioViewer-CtW7R1Mu.js → DrawioViewer-Be0rg6IJ.js} +2 -2
  7. package/dist/{DrawioViewer-CtW7R1Mu.js.map → DrawioViewer-Be0rg6IJ.js.map} +1 -1
  8. package/dist/{EpubViewer-vHhqhQRw.js → EpubViewer-DOybylgD.js} +2 -2
  9. package/dist/{EpubViewer-vHhqhQRw.js.map → EpubViewer-DOybylgD.js.map} +1 -1
  10. package/dist/{IpynbViewer-DsIIj6ow.js → IpynbViewer-Dtnz5G14.js} +2 -2
  11. package/dist/{IpynbViewer-DsIIj6ow.js.map → IpynbViewer-Dtnz5G14.js.map} +1 -1
  12. package/dist/{MermaidViewer-DuyyfgEJ.js → MermaidViewer-SfxD2iMT.js} +2 -2
  13. package/dist/{MermaidViewer-DuyyfgEJ.js.map → MermaidViewer-SfxD2iMT.js.map} +1 -1
  14. package/dist/{PsdViewer-BsemRT-W.js → PsdViewer-DQXtYWmE.js} +2 -2
  15. package/dist/{PsdViewer-BsemRT-W.js.map → PsdViewer-DQXtYWmE.js.map} +1 -1
  16. package/dist/{TiffViewer-Dn0yC7xs.js → TiffViewer-BUXWRzfo.js} +2 -2
  17. package/dist/{TiffViewer-Dn0yC7xs.js.map → TiffViewer-BUXWRzfo.js.map} +1 -1
  18. package/dist/{Viewer3D-CKATFLLz.js → Viewer3D-B0MozsSm.js} +2 -2
  19. package/dist/{Viewer3D-CKATFLLz.js.map → Viewer3D-B0MozsSm.js.map} +1 -1
  20. package/dist/filex.js +1 -1
  21. package/dist/filex.umd.cjs +1 -1
  22. package/dist/filex.umd.cjs.map +1 -1
  23. package/dist/{index-BxZ88_ud.js → index-DD9S9C1Y.js} +29 -20
  24. package/dist/{index-BxZ88_ud.js.map → index-DD9S9C1Y.js.map} +1 -1
  25. package/dist/style.css +1 -1
  26. package/package.json +2 -2
@@ -20,7 +20,7 @@
20
20
  **/let uc;const Ah=typeof window<"u"&&window.trustedTypes;if(Ah)try{uc=Ah.createPolicy("vue",{createHTML:e=>e})}catch{}const Eh=uc?e=>uc.createHTML(e):e=>e,Q5="http://www.w3.org/2000/svg",e6="http://www.w3.org/1998/Math/MathML",Oa=typeof document<"u"?document:null,Th=Oa&&Oa.createElement("template"),t6={insert:(e,t,r)=>{t.insertBefore(e,r||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,r,n)=>{const a=t==="svg"?Oa.createElementNS(Q5,e):t==="mathml"?Oa.createElementNS(e6,e):r?Oa.createElement(e,{is:r}):Oa.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>Oa.createTextNode(e),createComment:e=>Oa.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Oa.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,r,n,a,i){const o=r?r.previousSibling:t.lastChild;if(a&&(a===i||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),r),!(a===i||!(a=a.nextSibling)););else{Th.innerHTML=Eh(n==="svg"?`<svg>${e}</svg>`:n==="mathml"?`<math>${e}</math>`:e);const l=Th.content;if(n==="svg"||n==="mathml"){const s=l.firstChild;for(;s.firstChild;)l.appendChild(s.firstChild);l.removeChild(s)}t.insertBefore(l,r)}return[o?o.nextSibling:t.firstChild,r?r.previousSibling:t.lastChild]}},ni="transition",_l="animation",fo=Symbol("_vtc"),Mh={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Dh=or({},M1,Mh),ho=(e=>(e.displayName="Transition",e.props=Dh,e))((e,{slots:t})=>Ch(t5,zh(e),t)),Oi=(e,t=[])=>{yt(e)?e.forEach(r=>r(...t)):e&&e(...t)},Ih=e=>e?yt(e)?e.some(t=>t.length>1):e.length>1:!1;function zh(e){const t={};for(const N in e)N in Mh||(t[N]=e[N]);if(e.css===!1)return t;const{name:r="v",type:n,duration:a,enterFromClass:i=`${r}-enter-from`,enterActiveClass:o=`${r}-enter-active`,enterToClass:l=`${r}-enter-to`,appearFromClass:s=i,appearActiveClass:u=o,appearToClass:c=l,leaveFromClass:d=`${r}-leave-from`,leaveActiveClass:f=`${r}-leave-active`,leaveToClass:h=`${r}-leave-to`}=e,y=r6(a),p=y&&y[0],x=y&&y[1],{onBeforeEnter:b,onEnter:v,onEnterCancelled:g,onLeave:m,onLeaveCancelled:C,onBeforeAppear:A=b,onAppear:S=v,onAppearCancelled:_=g}=t,E=(N,R,V,X)=>{N._enterCancelled=X,ai(N,R?c:l),ai(N,R?u:o),V&&V()},M=(N,R)=>{N._isLeaving=!1,ai(N,d),ai(N,h),ai(N,f),R&&R()},z=N=>(R,V)=>{const X=N?S:v,j=()=>E(R,N,V);Oi(X,[R,j]),Fh(()=>{ai(R,N?s:i),ha(R,N?c:l),Ih(X)||Oh(R,n,p,j)})};return or(t,{onBeforeEnter(N){Oi(b,[N]),ha(N,i),ha(N,o)},onBeforeAppear(N){Oi(A,[N]),ha(N,s),ha(N,u)},onEnter:z(!1),onAppear:z(!0),onLeave(N,R){N._isLeaving=!0;const V=()=>M(N,R);ha(N,d),N._enterCancelled?(ha(N,f),fc(N)):(fc(N),ha(N,f)),Fh(()=>{N._isLeaving&&(ai(N,d),ha(N,h),Ih(m)||Oh(N,n,x,V))}),Oi(m,[N,V])},onEnterCancelled(N){E(N,!1,void 0,!0),Oi(g,[N])},onAppearCancelled(N){E(N,!0,void 0,!0),Oi(_,[N])},onLeaveCancelled(N){M(N),Oi(C,[N])}})}function r6(e){if(e==null)return null;if(Vt(e))return[cc(e.enter),cc(e.leave)];{const t=cc(e);return[t,t]}}function cc(e){return Tu(e)}function ha(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.add(r)),(e[fo]||(e[fo]=new Set)).add(t)}function ai(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const r=e[fo];r&&(r.delete(t),r.size||(e[fo]=void 0))}function Fh(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let n6=0;function Oh(e,t,r,n){const a=e._endId=++n6,i=()=>{a===e._endId&&n()};if(r!=null)return setTimeout(i,r);const{type:o,timeout:l,propCount:s}=Ph(e,t);if(!o)return n();const u=o+"end";let c=0;const d=()=>{e.removeEventListener(u,f),i()},f=h=>{h.target===e&&++c>=s&&d()};setTimeout(()=>{c<s&&d()},l+1),e.addEventListener(u,f)}function Ph(e,t){const r=window.getComputedStyle(e),n=y=>(r[y]||"").split(", "),a=n(`${ni}Delay`),i=n(`${ni}Duration`),o=Rh(a,i),l=n(`${_l}Delay`),s=n(`${_l}Duration`),u=Rh(l,s);let c=null,d=0,f=0;t===ni?o>0&&(c=ni,d=o,f=i.length):t===_l?u>0&&(c=_l,d=u,f=s.length):(d=Math.max(o,u),c=d>0?o>u?ni:_l:null,f=c?c===ni?i.length:s.length:0);const h=c===ni&&/\b(?:transform|all)(?:,|$)/.test(n(`${ni}Property`).toString());return{type:c,timeout:d,propCount:f,hasTransform:h}}function Rh(e,t){for(;e.length<t.length;)e=e.concat(e);return Math.max(...t.map((r,n)=>Lh(r)+Lh(e[n])))}function Lh(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function fc(e){return(e?e.ownerDocument:document).body.offsetHeight}function a6(e,t,r){const n=e[fo];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):r?e.setAttribute("class",t):e.className=t}const Gs=Symbol("_vod"),Bh=Symbol("_vsh"),dc={name:"show",beforeMount(e,{value:t},{transition:r}){e[Gs]=e.style.display==="none"?"":e.style.display,r&&t?r.beforeEnter(e):wl(e,t)},mounted(e,{value:t},{transition:r}){r&&t&&r.enter(e)},updated(e,{value:t,oldValue:r},{transition:n}){!t!=!r&&(n?t?(n.beforeEnter(e),wl(e,!0),n.enter(e)):n.leave(e,()=>{wl(e,!1)}):wl(e,t))},beforeUnmount(e,{value:t}){wl(e,t)}};function wl(e,t){e.style.display=t?e[Gs]:"none",e[Bh]=!t}const i6=Symbol(""),o6=/(?:^|;)\s*display\s*:/;function l6(e,t,r){const n=e.style,a=Qt(r);let i=!1;if(r&&!a){if(t)if(Qt(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();r[l]==null&&kl(n,l,"")}else for(const o in t)r[o]==null&&kl(n,o,"");for(const o in r){o==="display"&&(i=!0);const l=r[o];l!=null?u6(e,o,!Qt(t)&&t?t[o]:void 0,l)||kl(n,o,l):kl(n,o,"")}}else if(a){if(t!==r){const o=n[i6];o&&(r+=";"+o),n.cssText=r,i=o6.test(r)}}else t&&e.removeAttribute("style");Gs in e&&(e[Gs]=i?n.display:"",e[Bh]&&(n.display="none"))}const Nh=/\s*!important$/;function kl(e,t,r){if(yt(r))r.forEach(n=>kl(e,t,n));else if(r==null&&(r=""),t.startsWith("--"))e.setProperty(t,r);else{const n=s6(e,t);Nh.test(r)?e.setProperty(hn(n),r.replace(Nh,""),"important"):e[n]=r}}const $h=["Webkit","Moz","ms"],hc={};function s6(e,t){const r=hc[t];if(r)return r;let n=Er(t);if(n!=="filter"&&n in e)return hc[t]=n;n=gs(n);for(let a=0;a<$h.length;a++){const i=$h[a]+n;if(i in e)return hc[t]=i}return t}function u6(e,t,r,n){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&Qt(n)&&r===n}const Uh="http://www.w3.org/1999/xlink";function Hh(e,t,r,n,a,i=ob(t)){n&&t.startsWith("xlink:")?r==null?e.removeAttributeNS(Uh,t.slice(6,t.length)):e.setAttributeNS(Uh,t,r):r==null||i&&!qd(r)?e.removeAttribute(t):e.setAttribute(t,i?"":Hn(r)?String(r):r)}function jh(e,t,r,n,a){if(t==="innerHTML"||t==="textContent"){r!=null&&(e[t]=t==="innerHTML"?Eh(r):r);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const l=i==="OPTION"?e.getAttribute("value")||"":e.value,s=r==null?e.type==="checkbox"?"on":"":String(r);(l!==s||!("_value"in e))&&(e.value=s),r==null&&e.removeAttribute(t),e._value=r;return}let o=!1;if(r===""||r==null){const l=typeof e[t];l==="boolean"?r=qd(r):r==null&&l==="string"?(r="",o=!0):l==="number"&&(r=0,o=!0)}try{e[t]=r}catch{}o&&e.removeAttribute(a||t)}function ii(e,t,r,n){e.addEventListener(t,r,n)}function c6(e,t,r,n){e.removeEventListener(t,r,n)}const Gh=Symbol("_vei");function f6(e,t,r,n,a=null){const i=e[Gh]||(e[Gh]={}),o=i[t];if(n&&o)o.value=n;else{const[l,s]=d6(t);if(n){const u=i[t]=v6(n,a);ii(e,l,u,s)}else o&&(c6(e,l,o,s),i[t]=void 0)}}const Vh=/(?:Once|Passive|Capture)$/;function d6(e){let t;if(Vh.test(e)){t={};let n;for(;n=e.match(Vh);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[e[2]===":"?e.slice(3):hn(e.slice(2)),t]}let pc=0;const h6=Promise.resolve(),p6=()=>pc||(h6.then(()=>pc=0),pc=Date.now());function v6(e,t){const r=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=r.attached)return;Vn(m6(n,r.value),t,5,[n])};return r.value=e,r.attached=p6(),r}function m6(e,t){if(yt(t)){const r=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{r.call(e),e._stopped=!0},t.map(n=>a=>!a._stopped&&n&&n(a))}else return t}const qh=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,g6=(e,t,r,n,a,i)=>{const o=a==="svg";t==="class"?a6(e,n,o):t==="style"?l6(e,r,n):hs(t)?ps(t)||f6(e,t,r,n,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):b6(e,t,n,o))?(jh(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Hh(e,t,n,o,i,t!=="value")):e._isVueCE&&(y6(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Qt(n)))?jh(e,Er(t),n,i,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Hh(e,t,n,o))};function b6(e,t,r,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&qh(t)&&St(r));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return qh(t)&&Qt(r)?!1:t in e}function y6(e,t){const r=e._def.props;if(!r)return!1;const n=Er(t);return Array.isArray(r)?r.some(a=>Er(a)===n):Object.keys(r).some(a=>Er(a)===n)}const Wh={};function x6(e,t,r){let n=qt(e,t);vs(n)&&(n=or({},n,t));class a extends vc{constructor(o){super(n,o,r)}}return a.def=n,a}const _6=typeof HTMLElement<"u"?HTMLElement:class{};class vc extends _6{constructor(t,r={},n=ip){super(),this._def=t,this._props=r,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==ip?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(or({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof vc){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,Ia(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const r of t)this._setAttr(r.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let n=0;n<this.attributes.length;n++)this._setAttr(this.attributes[n].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});const t=(n,a=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:i,styles:o}=n;let l;if(i&&!yt(i))for(const s in i){const u=i[s];(u===Number||u&&u.type===Number)&&(s in this._props&&(this._props[s]=Tu(this._props[s])),(l||(l=Object.create(null)))[Er(s)]=!0)}this._numberProps=l,this._resolveProps(n),this.shadowRoot&&this._applyStyles(o),this._mount(n)},r=this._def.__asyncLoader;r?this._pendingResolve=r().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}):t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const r=this._instance&&this._instance.exposed;if(r)for(const n in r)$t(this,n)||Object.defineProperty(this,n,{get:()=>Le(r[n])})}_resolveProps(t){const{props:r}=t,n=yt(r)?r:Object.keys(r||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(Er))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(i){this._setProp(a,i,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const r=this.hasAttribute(t);let n=r?this.getAttribute(t):Wh;const a=Er(t);r&&this._numberProps&&this._numberProps[a]&&(n=Tu(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,r,n=!0,a=!1){if(r!==this._props[t]&&(this._dirty=!0,r===Wh?delete this._props[t]:(this._props[t]=r,t==="key"&&this._app&&(this._app._ceVNode.key=r)),a&&this._instance&&this._update(),n)){const i=this._ob;i&&(this._processMutations(i.takeRecords()),i.disconnect()),r===!0?this.setAttribute(hn(t),""):typeof r=="string"||typeof r=="number"?this.setAttribute(hn(t),r+""):r||this.removeAttribute(hn(t)),i&&i.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),z6(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const r=Bt(this._def,or(t,this._props));return this._instance||(r.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(i,o)=>{this.dispatchEvent(new CustomEvent(i,vs(o[0])?or({detail:o},o[0]):{detail:o}))};n.emit=(i,...o)=>{a(i,o),hn(i)!==i&&a(hn(i),o)},this._setParent()}),r}_applyStyles(t,r,n){if(!t)return;if(r){if(r===this._def||this._styleChildren.has(r))return;this._styleChildren.add(r)}const a=this._nonce,i=this.shadowRoot,o=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i);let l=null;for(let s=t.length-1;s>=0;s--){const u=document.createElement("style");a&&u.setAttribute("nonce",a),u.textContent=t[s],i.insertBefore(u,l||o),l=u,s===0&&(n||this._styleAnchors.set(this._def,u),r&&this._styleAnchors.set(r,u))}}_getStyleAnchor(t){if(!t)return null;const r=this._styleAnchors.get(t);return r&&r.parentNode===this.shadowRoot?r:(r&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let r=0;r<t.childNodes.length;r++){const n=t.childNodes[r];if(!(n instanceof HTMLStyleElement))return n}return null}_parseSlots(){const t=this._slots={};let r;for(;r=this.firstChild;){const n=r.nodeType===1&&r.getAttribute("slot")||"default";(t[n]||(t[n]=[])).push(r),this.removeChild(r)}}_renderSlots(){const t=this._getSlots(),r=this._instance.type.__scopeId;for(let n=0;n<t.length;n++){const a=t[n],i=a.getAttribute("name")||"default",o=this._slots[i],l=a.parentNode;if(o)for(const s of o){if(r&&s.nodeType===1){const u=r+"-s",c=document.createTreeWalker(s,1);s.setAttribute(u,"");let d;for(;d=c.nextNode();)d.setAttribute(u,"")}l.insertBefore(s,a)}else for(;a.firstChild;)l.insertBefore(a.firstChild,a);l.removeChild(a)}}_getSlots(){const t=[this];this._teleportTargets&&t.push(...this._teleportTargets);const r=new Set;for(const n of t){const a=n.querySelectorAll("slot");for(let i=0;i<a.length;i++)r.add(a[i])}return Array.from(r)}_injectChildStyle(t,r){this._applyStyles(t.styles,t,r)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return this._def.shadowRoot!==!1}_removeChildStyle(t){}}const Kh=new WeakMap,Xh=new WeakMap,Vs=Symbol("_moveCb"),Yh=Symbol("_enterCb"),w6=(e=>(delete e.props.mode,e))({name:"TransitionGroup",props:or({},Dh,{tag:String,moveClass:String}),setup(e,{slots:t}){const r=lc(),n=T1();let a,i;return B1(()=>{if(!a.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!A6(a[0].el,r.vnode.el,o)){a=[];return}a.forEach(k6),a.forEach(S6);const l=a.filter(C6);fc(r.vnode.el),l.forEach(s=>{const u=s.el,c=u.style;ha(u,o),c.transform=c.webkitTransform=c.transitionDuration="";const d=u[Vs]=f=>{f&&f.target!==u||(!f||f.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",d),u[Vs]=null,ai(u,o))};u.addEventListener("transitionend",d)}),a=[]}),()=>{const o=Lt(e),l=zh(o);let s=o.tag||gt;if(a=[],i)for(let u=0;u<i.length;u++){const c=i[u];c.el&&c.el instanceof Element&&(a.push(c),Ii(c,dl(c,l,n,r)),Kh.set(c,Zh(c.el)))}i=t.default?Xu(t.default()):[];for(let u=0;u<i.length;u++){const c=i[u];c.key!=null&&Ii(c,dl(c,l,n,r))}return Bt(s,null,i)}}});function k6(e){const t=e.el;t[Vs]&&t[Vs](),t[Yh]&&t[Yh]()}function S6(e){Xh.set(e,Zh(e.el))}function C6(e){const t=Kh.get(e),r=Xh.get(e),n=t.left-r.left,a=t.top-r.top;if(n||a){const i=e.el,o=i.style,l=i.getBoundingClientRect();let s=1,u=1;return i.offsetWidth&&(s=l.width/i.offsetWidth),i.offsetHeight&&(u=l.height/i.offsetHeight),(!Number.isFinite(s)||s===0)&&(s=1),(!Number.isFinite(u)||u===0)&&(u=1),Math.abs(s-1)<.01&&(s=1),Math.abs(u-1)<.01&&(u=1),o.transform=o.webkitTransform=`translate(${n/s}px,${a/u}px)`,o.transitionDuration="0s",e}}function Zh(e){const t=e.getBoundingClientRect();return{left:t.left,top:t.top}}function A6(e,t,r){const n=e.cloneNode(),a=e[fo];a&&a.forEach(l=>{l.split(/\s+/).forEach(s=>s&&n.classList.remove(s))}),r.split(/\s+/).forEach(l=>l&&n.classList.add(l)),n.style.display="none";const i=t.nodeType===1?t:t.parentNode;i.appendChild(n);const{hasTransform:o}=Ph(n);return i.removeChild(n),o}const po=e=>{const t=e.props["onUpdate:modelValue"]||!1;return yt(t)?r=>bs(t,r):t};function E6(e){e.target.composing=!0}function Jh(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Pa=Symbol("_assign");function Qh(e,t,r){return t&&(e=e.trim()),r&&(e=ys(e)),e}const un={created(e,{modifiers:{lazy:t,trim:r,number:n}},a){e[Pa]=po(a);const i=n||a.props&&a.props.type==="number";ii(e,t?"change":"input",o=>{o.target.composing||e[Pa](Qh(e.value,r,i))}),(r||i)&&ii(e,"change",()=>{e.value=Qh(e.value,r,i)}),t||(ii(e,"compositionstart",E6),ii(e,"compositionend",Jh),ii(e,"change",Jh))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:r,modifiers:{lazy:n,trim:a,number:i}},o){if(e[Pa]=po(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?ys(e.value):e.value,s=t??"";if(l===s)return;const u=e.getRootNode();(u instanceof Document||u instanceof ShadowRoot)&&u.activeElement===e&&e.type!=="range"&&(n&&t===r||a&&e.value.trim()===s)||(e.value=s)}},qs={deep:!0,created(e,t,r){e[Pa]=po(r),ii(e,"change",()=>{const n=e._modelValue,a=Sl(e),i=e.checked,o=e[Pa];if(yt(n)){const l=Mu(n,a),s=l!==-1;if(i&&!s)o(n.concat(a));else if(!i&&s){const u=[...n];u.splice(l,1),o(u)}}else if(ro(n)){const l=new Set(n);i?l.add(a):l.delete(a),o(l)}else o(rp(e,i))})},mounted:ep,beforeUpdate(e,t,r){e[Pa]=po(r),ep(e,t,r)}};function ep(e,{value:t,oldValue:r},n){e._modelValue=t;let a;if(yt(t))a=Mu(t,n.props.value)>-1;else if(ro(t))a=t.has(n.props.value);else{if(t===r)return;a=no(t,rp(e,!0))}e.checked!==a&&(e.checked=a)}const Ws={deep:!0,created(e,{value:t,modifiers:{number:r}},n){const a=ro(t);ii(e,"change",()=>{const i=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>r?ys(Sl(o)):Sl(o));e[Pa](e.multiple?a?new Set(i):i:i[0]),e._assigning=!0,Ia(()=>{e._assigning=!1})}),e[Pa]=po(n)},mounted(e,{value:t}){tp(e,t)},beforeUpdate(e,t,r){e[Pa]=po(r)},updated(e,{value:t}){e._assigning||tp(e,t)}};function tp(e,t){const r=e.multiple,n=yt(t);if(!(r&&!n&&!ro(t))){for(let a=0,i=e.options.length;a<i;a++){const o=e.options[a],l=Sl(o);if(r)if(n){const s=typeof l;s==="string"||s==="number"?o.selected=t.some(u=>String(u)===String(l)):o.selected=Mu(t,l)>-1}else o.selected=t.has(l);else if(no(Sl(o),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Sl(e){return"_value"in e?e._value:e.value}function rp(e,t){const r=t?"_trueValue":"_falseValue";return r in e?e[r]:t}const T6=["ctrl","shift","alt","meta"],M6={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>T6.some(r=>e[`${r}Key`]&&!t.includes(r))},gr=(e,t)=>{if(!e)return e;const r=e._withMods||(e._withMods={}),n=t.join(".");return r[n]||(r[n]=(a,...i)=>{for(let o=0;o<t.length;o++){const l=M6[t[o]];if(l&&l(a,t))return}return e(a,...i)})},D6={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},pa=(e,t)=>{const r=e._withKeys||(e._withKeys={}),n=t.join(".");return r[n]||(r[n]=a=>{if(!("key"in a))return;const i=hn(a.key);if(t.some(o=>o===i||D6[o]===i))return e(a)})},I6=or({patchProp:g6},t6);let np;function ap(){return np||(np=O5(I6))}const z6=(...e)=>{ap().render(...e)},ip=(...e)=>{const t=ap().createApp(...e),{mount:r}=t;return t.mount=n=>{const a=O6(n);if(!a)return;const i=t._component;!St(i)&&!i.render&&!i.template&&(i.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const o=r(a,!1,F6(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),o},t};function F6(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function O6(e){return Qt(e)?document.querySelector(e):e}function op(e){return!!e&&e.enabled&&e.state==="ok"}function P6(e){const t=e.apiBase!=null?e.apiBase.replace(/\/+$/,""):null;function r(a,i){return a||(t===null?null:`${t}${i}`)}const n=e.endpoint??(t!==null?`${t}/api/files/manager`:null);if(!n)throw new Error("[@brftech/filex-core] config requires either `apiBase` or `endpoint`");return{manager:n,uploadInit:r(e.uploadInit,"/api/files/upload/init"),uploadFinalize:r(e.uploadFinalize,"/api/files/upload/finalize"),uploadAbort:r(e.uploadAbort,"/api/files/upload/abort"),shareCreate:r(e.shareCreate,"/api/files/share"),shareList:r(e.shareList,"/api/files/share"),shareDelete:r(e.shareDelete,"/api/files/share/{uuid}"),limits:r(e.limits,"/api/files/limits"),capabilities:r(e.capabilities,"/api/files/capabilities"),archiveList:r(e.archiveList,"/api/files/archive/list"),archiveExtract:r(e.archiveExtract,"/api/files/archive/extract"),archiveAdd:r(e.archiveAdd,"/api/files/archive/add"),copy:r(e.copy,"/api/files/copy"),moveAsync:r(e.moveAsync,"/api/files/move"),deleteAsync:r(e.deleteAsync,"/api/files/delete"),opsList:r(e.opsList,"/api/files/ops"),opsShow:r(e.opsShow,"/api/files/ops/{id}"),onlyOfficeConfig:r(e.onlyOfficeConfig,"/api/files/onlyoffice/config"),saveText:r(e.saveText,"/api/files/save-text"),restore:r(e.restore,"/api/files/restore"),trashList:r(e.trashList,"/api/files/manager/trash"),trashRestore:r(e.trashRestore,"/api/files/manager/restore")}}async function R6(e){if(typeof e=="function"){const t=e();return t instanceof Promise?await t:t}return e}function L6(e){return e?"kind"in e?e:e.type==="bearer"?{kind:"bearer",token:e.token}:e.type==="csrf"?{kind:"csrf",csrf:e.csrf}:{kind:"none"}:{kind:"none"}}function B6(e){const t=P6(e),r=L6(e.auth);async function n(ge={}){const be={Accept:"application/json",...ge};if(r.kind==="bearer"){const P=await R6(r.token);P&&(be.Authorization=`Bearer ${P}`)}else if(r.kind==="csrf")be["X-CSRF-TOKEN"]=r.csrf,be["X-Requested-With"]="XMLHttpRequest";else if(r.kind==="basic"){const P=btoa(`${r.user}:${r.pass}`);be.Authorization=`Basic ${P}`}return be}function a(ge={}){const be={Accept:"application/json",...ge};if(r.kind==="bearer"&&typeof r.token=="string")be.Authorization=`Bearer ${r.token}`;else if(r.kind==="csrf")be["X-CSRF-TOKEN"]=r.csrf,be["X-Requested-With"]="XMLHttpRequest";else if(r.kind==="basic"){const P=btoa(`${r.user}:${r.pass}`);be.Authorization=`Basic ${P}`}return be}function i(){return r.kind==="csrf"?"include":"same-origin"}function o(ge){const be=(e.locale??"tr")!=="en",$={400:["Geçersiz istek","Bad request"],401:["Oturum gerekli, tekrar giriş yapın","Sign-in required"],403:["Bu işlem için yetkiniz yok","You are not allowed to do this"],404:["Bulunamadı","Not found"],409:["Zaten var / çakışma","Already exists / conflict"],413:["Dosya çok büyük","File too large"],415:["Bu dosya türü desteklenmiyor","Unsupported file type"],422:["Geçersiz veri","Invalid data"],429:["Çok fazla istek, biraz bekleyin","Too many requests"],500:["Sunucu hatası","Server error"],501:["Bu işlem desteklenmiyor","Not supported"],503:["Servis şu an kullanılamıyor","Service unavailable"]}[ge];return $?be?$[0]:$[1]:be?`Hata (${ge})`:`Error (${ge})`}async function l(ge,be={}){const P={...await n(),...be.headers??{}},$=await fetch(ge,{...be,headers:P,credentials:i()});if(!$.ok){const fe=await $.text().catch(()=>""),he=new Error(o($.status));throw he.status=$.status,he.detail=fe.slice(0,300),he}return $.json()}function s(ge=""){return t.manager.replace(/\/manager(\?.*)?$/,"/permissions")+ge}async function u(ge){return l(s()+"?path="+encodeURIComponent(ge))}async function c(ge){return l(s("/resolve")+"?email="+encodeURIComponent(ge))}async function d(ge){return l(s("/users")+"?q="+encodeURIComponent(ge))}async function f(ge){return l(s(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ge)})}async function h(ge,be){return l(s("/"+ge),{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({level:be})})}async function y(ge){return l(s("/"+ge),{method:"DELETE"})}async function p(ge){return l(s("/invite"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ge)})}async function x(ge){return l(s("/share-mail"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ge)})}function b(ge){const be=new URLSearchParams;for(const[P,$]of Object.entries(ge))$!=null&&be.set(P,String($));return be.toString()}function v(ge,be={}){const P=t.manager.includes("?")?"&":"?";return`${t.manager}${P}${b({q:ge,action:ge,...be})}`}async function g(ge){return l(v("index",{path:ge}))}async function m(ge,be){return l(v("search",{path:ge,filter:be}))}async function C(ge){return l(v("subfolders",{path:ge}))}async function A(ge,be){return l(v("newfolder"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:ge,name:be})})}async function S(ge,be,P){return l(v("rename"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:ge,item:be,name:P})})}async function _(ge,be,P){return l(v("move"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:ge,item:P,items:be.map($=>({path:$}))})})}async function E(ge,be){return l(v("delete"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:ge,items:be.map(P=>({path:P}))})})}async function M(ge,be){if(!t.copy)throw new Error("copy endpoint not configured");return l(t.copy,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:ge,target:be})})}async function z(ge,be,P){if(!t.moveAsync)throw new Error("moveAsync endpoint not configured");return l(t.moveAsync,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:ge,target:be,sourceDir:P})})}async function N(ge,be){if(!t.deleteAsync)throw new Error("deleteAsync endpoint not configured");return l(t.deleteAsync,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:ge,sourceDir:be})})}async function R(ge){if(!t.restore)throw new Error("restore endpoint not configured");return l(t.restore,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({source:ge})})}async function V(ge){if(!t.trashList)throw new Error("trashList endpoint not configured");const be=t.trashList,P=be.includes("?")?"&":"?",$=ge?`${be}${P}storage=${encodeURIComponent(ge)}`:be;return l($)}async function X(ge){const be=t.trashRestore;if(!be)throw new Error("trashRestore endpoint not configured");let P=0;for(const $ of ge)try{await l(be,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({node_id:$})}),P++}catch{}return{restored:P}}async function j(ge,be,P){const $=new FormData;$.append("path",ge);for(const he of be)$.append("file[]",he,he.name);const fe=await n();return new Promise((he,le)=>{const oe=new XMLHttpRequest;oe.open("POST",v("upload"));for(const[ue,me]of Object.entries(fe))ue!=="Content-Type"&&oe.setRequestHeader(ue,me);oe.withCredentials=i()==="include",oe.upload.onprogress=ue=>{P&&ue.lengthComputable&&P(Math.round(ue.loaded/ue.total*100))},oe.onload=()=>{if(oe.status>=200&&oe.status<300)try{he(JSON.parse(oe.responseText))}catch(ue){le(ue)}else le(new Error(`${oe.status} ${oe.statusText}: ${oe.responseText.slice(0,200)}`))},oe.onerror=()=>le(new Error("Network error")),oe.send($)})}function Y(ge){return v("download",{path:ge})}function te(ge){return v("preview",{path:ge})}async function ae(ge){const be=await n(),P=await fetch(te(ge),{headers:be,credentials:i()});if(!P.ok){const le=await P.text().catch(()=>"");throw new Error(`${P.status} ${P.statusText}${le?" — "+le.slice(0,200):""}`)}const $=await P.blob(),fe=$.type||P.headers.get("content-type")||"";return{url:URL.createObjectURL($),blob:$,mime:fe}}async function _e(ge){const be=await n(),P=await fetch(te(ge),{headers:be,credentials:i()});if(!P.ok){const $=await P.text().catch(()=>"");throw new Error(`${P.status} ${P.statusText}${$?" — "+$.slice(0,200):""}`)}return P.arrayBuffer()}async function pe(){return t.limits?l(t.limits):{max_upload_mb:1024}}async function ye(){return t.capabilities?l(t.capabilities):{ffmpeg:!1,ghostscript:!1,libreoffice:!1,max_chunk_mb:5,upload_limit_mb:1024,onlyoffice_url:e.onlyOfficeBase??null,drawio_url:e.drawioBase??null,convert_url:e.convertBase??null}}async function ve(ge){if(!t.shareCreate)throw new Error("shareCreate endpoint not configured");return l(t.shareCreate,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(ge)})}async function Me(ge){if(!t.shareList)return{shares:[]};const be=t.shareList.includes("?")?"&":"?";return l(`${t.shareList}${be}path=${encodeURIComponent(ge)}`)}async function Ce(ge){if(!t.shareDelete)throw new Error("shareDelete endpoint not configured");const be=t.shareDelete.replace("{uuid}",encodeURIComponent(ge));return l(be,{method:"DELETE"})}async function ze(ge){if(!t.archiveList)throw new Error("archiveList endpoint not configured");return{entries:(await l(t.archiveList,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:ge})})).entries.map(P=>({name:P.name,size:P.size,isDir:P.is_dir,lastModified:P.mtime}))}}async function Be(ge,be){if(!t.archiveExtract)throw new Error("archiveExtract endpoint not configured");return l(t.archiveExtract,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:ge,members:be})})}async function Ee(ge,be){if(!t.archiveAdd)throw new Error("archiveAdd endpoint not configured");return l(t.archiveAdd,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:ge,files:be})})}async function Ne(){const ge=t.manager.replace(/\/manager(\?.*)?$/,"/ws-ticket");try{return await l(ge,{method:"POST"})}catch{return null}}return{wsTicket:Ne,index:g,search:m,subfolders:C,newFolder:A,rename:S,move:_,copy:M,moveAsync:z,deleteAsync:N,deleteItems:E,restore:R,listTrash:V,restoreIds:X,uploadMultipart:j,downloadUrl:Y,previewUrl:te,fetchBlob:ae,fetchArrayBuffer:_e,limits:pe,capabilities:ye,createShare:ve,listShares:Me,revokeShare:Ce,archiveList:ze,archiveExtract:Be,archiveAdd:Ee,listPermissions:u,resolveEmail:c,searchUsers:d,addPermission:f,updatePermission:h,deletePermission:y,invitePermission:p,shareMail:x,endpoints:t,authHeaders:n,authHeadersSync:a,credentialsMode:i,jsonFetch:l}}function N6(e,t){const r=e.chunkSize??5242880,n=Math.max(1,Math.min(8,e.parallelChunks??4));async function a(i){var f,h;const o=i.chunkSize??r,l=i.parallelChunks??n,s={id:crypto.randomUUID(),file:i.file,path:i.path,totalBytes:i.file.size,uploadedBytes:0,percent:0,status:"initializing",cancel:()=>{}};let u=!1;const c=[];s.cancel=()=>{u=!0;for(const y of c)y.abort()};function d(){var y;s.percent=s.totalBytes>0?Math.min(100,Math.round(s.uploadedBytes/s.totalBytes*100)):0,(y=i.onProgress)==null||y.call(i,s)}try{if(!t.endpoints.uploadInit)throw new Error("uploadInit not configured");const y=await t.jsonFetch(t.endpoints.uploadInit,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:i.path,filename:i.file.name,size:i.file.size,mime:i.file.type||"application/octet-stream"})});s.uploadId=y.uploadId,s.status="uploading",d();const p=y.chunkBytes??o,x=new Map,b=[];let v=0;async function g(E){const z=(E.partNumber-1)*(y.chunkBytes??o),N=Math.min(z+(y.chunkBytes??o),i.file.size),R=i.file.slice(z,N),V=new AbortController;c.push(V),await new Promise((X,j)=>{const Y=new XMLHttpRequest;Y.open("PUT",E.presignedUrl),Y.upload.onprogress=te=>{if(te.lengthComputable){const ae=x.get(E.partNumber)??0,_e=te.loaded-ae;x.set(E.partNumber,te.loaded),s.uploadedBytes+=_e,d()}},Y.onload=()=>{if(Y.status>=200&&Y.status<300){const te=(Y.getResponseHeader("ETag")||Y.getResponseHeader("etag")||"").trim();if(!te){j(new Error("Missing ETag on S3 response"));return}const ae=N-z,_e=x.get(E.partNumber)??0;_e<ae&&(s.uploadedBytes+=ae-_e,x.set(E.partNumber,ae)),b.push({partNumber:E.partNumber,etag:te}),X()}else j(new Error(`S3 PUT ${E.partNumber} → ${Y.status}: ${Y.responseText.slice(0,200)}`))},Y.onerror=()=>j(new Error(`S3 PUT ${E.partNumber} network error`)),Y.onabort=()=>j(new DOMException("Aborted","AbortError")),V.signal.addEventListener("abort",()=>Y.abort()),Y.send(R)})}const m=2;async function C(E,M=0){try{await g(E)}catch(z){if(u)throw z;const N=z instanceof Error?z:new Error(String(z));if(N.name==="AbortError"||M>=m)throw N;const R=x.get(E.partNumber)??0;R>0&&(s.uploadedBytes=Math.max(0,s.uploadedBytes-R),x.delete(E.partNumber),d());const V=500*(M+1)+Math.floor(Math.random()*250);return await new Promise(X=>setTimeout(X,V)),C(E,M+1)}}async function A(){for(;!u&&v<y.parts.length;){const E=y.parts[v++];await C(E)}}const S=[];for(let E=0;E<l;E++)S.push(A());if(await Promise.all(S),u)throw new DOMException("Aborted by user","AbortError");if(!t.endpoints.uploadFinalize)throw new Error("uploadFinalize not configured");s.status="finalizing",b.sort((E,M)=>E.partNumber-M.partNumber);const _=await t.jsonFetch(t.endpoints.uploadFinalize,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uploadId:y.uploadId,parts:b})});return s.status="done",s.uploadedBytes=s.totalBytes,s.percent=100,d(),(f=i.onDone)==null||f.call(i,s,_),_}catch(y){const p=y instanceof Error?y:new Error(String(y));if(s.status=p.name==="AbortError"?"aborted":"error",s.error=p.message,d(),s.uploadId&&t.endpoints.uploadAbort&&s.status==="aborted")try{await t.jsonFetch(t.endpoints.uploadAbort,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({uploadId:s.uploadId})})}catch{}throw(h=i.onError)==null||h.call(i,s,p),p}}return{uploadFile:a}}function $6(e){const t=de(new Set),r=de(null);function n(f,h={}){if(h.shift&&r.value){const y=e(),p=y.findIndex(m=>m.path===r.value),x=y.findIndex(m=>m.path===f);if(p===-1||x===-1){t.value=new Set([f]),r.value=f;return}const[b,v]=p<x?[p,x]:[x,p],g=new Set;for(let m=b;m<=v;m++)g.add(y[m].path);t.value=g;return}if(h.ctrl){const y=new Set(t.value);y.has(f)?y.delete(f):y.add(f),t.value=y,r.value=f;return}t.value=new Set([f]),r.value=f}function a(){t.value=new Set,r.value=null}function i(){t.value=new Set(e().map(f=>f.path))}function o(f){return t.value.has(f)}function l(f){const h=new Set(t.value);h.add(f),t.value=h}function s(f){const h=new Set(t.value);h.delete(f),t.value=h}const u=mt(()=>t.value.size),c=mt(()=>t.value.size===0),d=mt(()=>e().filter(h=>t.value.has(h.path)));return{selected:t,anchor:r,click:n,clear:a,selectAll:i,has:o,add:l,remove:s,size:u,isEmpty:c,nodes:d}}function U6(e,t){function r(n){var l;if(!e.value)return;const i=n.target;if(i&&(i.tagName==="INPUT"||i.tagName==="TEXTAREA"||i.isContentEditable)&&n.key!=="Escape")return;const o=n.ctrlKey||n.metaKey;switch(n.key){case"Delete":t.onDelete&&(n.preventDefault(),t.onDelete());break;case"Backspace":(l=t.hasSelection)!=null&&l.call(t)&&t.onDelete?(n.preventDefault(),t.onDelete()):t.onGoUp&&(n.preventDefault(),t.onGoUp());break;case"F2":t.onRename&&(n.preventDefault(),t.onRename());break;case"Enter":t.onOpen&&t.onOpen();break;case"Escape":t.onClose&&t.onClose();break;case"/":t.onFocusSearch&&!o&&(n.preventDefault(),t.onFocusSearch());break;case"a":case"A":o&&t.onSelectAll&&(n.preventDefault(),t.onSelectAll());break;case"x":case"X":o&&t.onCut&&(n.preventDefault(),t.onCut());break;case"c":case"C":o&&t.onCopy&&(n.preventDefault(),t.onCopy());break;case"v":case"V":o&&t.onPaste&&(n.preventDefault(),t.onPaste());break;case"d":case"D":o&&t.onDuplicate&&(n.preventDefault(),t.onDuplicate());break;case"k":case"K":o&&t.onPathJump&&(n.preventDefault(),t.onPathJump());break;case"ArrowUp":n.altKey&&t.onGoUp&&(n.preventDefault(),t.onGoUp());break}}vr(()=>window.addEventListener("keydown",r)),Br(()=>window.removeEventListener("keydown",r))}const lp={tr:{"toolbar.new_folder":"Yeni Klasör","toolbar.upload":"Yükle","toolbar.search":"Ara","toolbar.search.placeholder":"Dosya adı…","toolbar.view.list":"Liste","toolbar.view.grid":"Izgara","toolbar.refresh":"Yenile","toolbar.go_up":"Üst Klasör","ctx.open":"Aç","ctx.preview":"Önizle","ctx.download":"İndir","ctx.convert":"Dönüştür","ctx.rename":"Yeniden Adlandır","ctx.delete":"Sil","ctx.delete_perm":"Kalıcı Olarak Sil","ctx.restore":"Geri Getir","ctx.share":"Paylaş","ctx.move":"Taşı","ctx.copy":"Kopyala","ctx.cut":"Kes","ctx.paste":"Yapıştır","ctx.info":"Bilgi","ctx.duplicate":"Kopyasını Oluştur","ctx.new_file":"Yeni Dosya","modal.delete.title":"Silinsin mi?","modal.delete.message":"{count} öğe çöpe atılacak.","modal.delete.confirm":"Çöpe At","modal.delete.cancel":"Vazgeç","modal.rename.title":"Yeniden Adlandır","modal.rename.save":"Kaydet","modal.rename.cancel":"Vazgeç","modal.newfolder.title":"Yeni Klasör","modal.newfolder.placeholder":"Klasör adı","modal.newfolder.create":"Oluştur","modal.newfolder.cancel":"Vazgeç","modal.share.title":"Paylaşım Linki","modal.share.pin":"PIN koruması","modal.share.expires":"Son kullanma","modal.share.max_downloads":"İndirme limiti","modal.share.create":"Paylaş","modal.share.cancel":"Vazgeç","modal.share.copy":"Kopyala","modal.share.url_copied":"Link kopyalandı","modal.share.pin_copied":"PIN kopyalandı","modal.share.cli_copied":"CLI komutu kopyalandı","upload.progress":"Yükleniyor","upload.done":"Tamamlandı","upload.error":"Hata","upload.aborted":"İptal edildi","upload.cancel":"İptal","empty.folder":"Bu klasör boş","empty.search":"Sonuç bulunamadı",loading:"Yükleniyor…","notFound.title":"Klasör bulunamadı","notFound.desc":"Bu klasör mevcut değil, taşınmış ya da erişim yetkiniz yok.","notFound.goRoot":"Kök klasöre dön","col.name":"Ad","col.size":"Boyut","col.modified":"Tarih","col.type":"Tür","unit.bytes":"B","unit.kb":"KB","unit.mb":"MB","unit.gb":"GB","unit.tb":"TB","breadcrumb.root":"Kök","breadcrumb.copy_path":"Yolu Kopyala","breadcrumb.go_to_path":"Yola Git","breadcrumb.path_placeholder":"fileman/foo/bar","ops.copy":"Kopyalanıyor","ops.move":"Taşınıyor","ops.delete":"Siliniyor","ops.queued":"sırada","ops.done":"tamamlandı","ops.error":"hata","node.trash":"Çöp Kutusu","viewer.open_in_new_tab":"Yeni Sekmede Aç","viewer.loading":"Yükleniyor…","viewer.failed_to_load":"Dosya yüklenemedi","viewer.peer_not_installed":"Bu dosya tipi için opsiyonel kütüphane kurulu değil. Peer dependency yükle veya İndir düğmesini kullan.","viewer.format_unsupported_3d":"Bu 3B format tarayıcı önizlemesinde desteklenmiyor (model-viewer yalnızca .glb / .gltf / .usdz okur). Lütfen indirip yerel bir araçta açın.","viewer.zoom_in":"Yakınlaştır","viewer.zoom_out":"Uzaklaştır","viewer.fit_width":"Sayfa genişliğine sığdır","viewer.next_page":"Sonraki sayfa","viewer.prev_page":"Önceki sayfa","viewer.page_n_of_m":"Sayfa {n} / {m}","viewer.tags":"Etiketler","viewer.layers":"Katmanlar","viewer.toc":"İçindekiler","viewer.font_smaller":"Yazıyı küçült","viewer.font_larger":"Yazıyı büyüt","viewer.search":"Ara","viewer.download":"İndir","viewer.saving":"Kaydediliyor…","viewer.save":"Kaydet (Ctrl+S)","viewer.saved":"Kaydedildi","viewer.save_error":"Hata","viewer.editor_loading":"Editör yükleniyor…","viewer.no_preview":"Bu dosya tipi için önizleme henüz yok.","viewer.edit":"Düzenle","viewer.close":"Kapat","presence.expand":"İsimleri göster","presence.collapse":"Küçült","viewer.save_annotations":"Açıklamaları kaydet","viewer.annotations_on":"Açıklamalar: açık","viewer.annotations_off":"Açıklamalar: kapalı","viewer.read_only":"Salt okunur","viewer.csv_first_row_header":"İlk satır başlık olsun","viewer.csv_filter":"Satır filtrele…","viewer.epub_prev":"Önceki","viewer.epub_next":"Sonraki","viewer.drawio.disabled":"diagrams.net editörü bu filex kurulumunda yapılandırılmamış — yönetici FILEX_DRAWIO_URL'yi ayarlamalı.","viewer.archive.entries":"{n} dosya","viewer.archive.empty":"Arşiv boş.","viewer.archive.error":"Arşiv okunamadı.","viewer.name":"Ad","viewer.size":"Boyut"},en:{"toolbar.new_folder":"New Folder","toolbar.upload":"Upload","toolbar.search":"Search","toolbar.search.placeholder":"File name…","toolbar.view.list":"List","toolbar.view.grid":"Grid","toolbar.refresh":"Refresh","toolbar.go_up":"Up one level","ctx.open":"Open","ctx.preview":"Preview","ctx.download":"Download","ctx.convert":"Convert","ctx.rename":"Rename","ctx.delete":"Delete","ctx.delete_perm":"Delete Permanently","ctx.restore":"Restore","ctx.share":"Share","ctx.move":"Move","ctx.copy":"Copy","ctx.cut":"Cut","ctx.paste":"Paste","ctx.info":"Info","ctx.duplicate":"Duplicate","ctx.new_file":"New File","modal.delete.title":"Delete?","modal.delete.message":"{count} item(s) will be moved to trash.","modal.delete.confirm":"Move to Trash","modal.delete.cancel":"Cancel","modal.rename.title":"Rename","modal.rename.save":"Save","modal.rename.cancel":"Cancel","modal.newfolder.title":"New Folder","modal.newfolder.placeholder":"Folder name","modal.newfolder.create":"Create","modal.newfolder.cancel":"Cancel","modal.share.title":"Share Link","modal.share.pin":"PIN protected","modal.share.expires":"Expires at","modal.share.max_downloads":"Download limit","modal.share.create":"Share","modal.share.cancel":"Cancel","modal.share.copy":"Copy","modal.share.url_copied":"Link copied","modal.share.pin_copied":"PIN copied","modal.share.cli_copied":"CLI command copied","upload.progress":"Uploading","upload.done":"Done","upload.error":"Error","upload.aborted":"Aborted","upload.cancel":"Cancel","empty.folder":"This folder is empty","empty.search":"No results",loading:"Loading…","notFound.title":"Folder not found","notFound.desc":"This folder does not exist, was moved, or you do not have access to it.","notFound.goRoot":"Go to root folder","col.name":"Name","col.size":"Size","col.modified":"Modified","col.type":"Type","unit.bytes":"B","unit.kb":"KB","unit.mb":"MB","unit.gb":"GB","unit.tb":"TB","breadcrumb.root":"Root","breadcrumb.copy_path":"Copy Path","breadcrumb.go_to_path":"Go To Path","breadcrumb.path_placeholder":"fileman/foo/bar","ops.copy":"Copying","ops.move":"Moving","ops.delete":"Deleting","ops.queued":"queued","ops.done":"done","ops.error":"error","node.trash":"Trash","viewer.open_in_new_tab":"Open in New Tab","viewer.loading":"Loading…","viewer.failed_to_load":"Failed to load file","viewer.peer_not_installed":"Optional viewer library is not installed. Install the peer dependency or use the download button.","viewer.format_unsupported_3d":"This 3D format is not supported in the browser preview (model-viewer only reads .glb / .gltf / .usdz). Please download and open with a local tool.","viewer.zoom_in":"Zoom in","viewer.zoom_out":"Zoom out","viewer.fit_width":"Fit width","viewer.next_page":"Next page","viewer.prev_page":"Previous page","viewer.page_n_of_m":"Page {n} of {m}","viewer.tags":"Tags","viewer.layers":"Layers","viewer.toc":"Contents","viewer.font_smaller":"Smaller text","viewer.font_larger":"Larger text","viewer.search":"Search","viewer.download":"Download","viewer.saving":"Saving…","viewer.save":"Save (Ctrl+S)","viewer.saved":"Saved","viewer.save_error":"Error","viewer.editor_loading":"Loading editor…","viewer.no_preview":"No preview for this file type yet.","viewer.edit":"Edit","viewer.close":"Close","presence.expand":"Show names","presence.collapse":"Collapse","viewer.save_annotations":"Save annotations","viewer.annotations_on":"Annotations: on","viewer.annotations_off":"Annotations: off","viewer.read_only":"Read only","viewer.csv_first_row_header":"First row as header","viewer.csv_filter":"Filter rows…","viewer.epub_prev":"Previous","viewer.epub_next":"Next","viewer.drawio.disabled":"diagrams.net embed is not configured for this filex instance — operator must wire FILEX_DRAWIO_URL to enable the editor.","viewer.archive.entries":"{n} files","viewer.archive.empty":"Archive is empty.","viewer.archive.error":"Could not read archive contents.","viewer.name":"Name","viewer.size":"Size"}};function vn(e){const t=mt(()=>{const i=typeof e=="function"?e():e.value;return lp[i]??lp.tr});function r(i,o={}){const l=t.value[i]??i;return Object.entries(o).reduce((s,[u,c])=>s.replaceAll(`{${u}}`,String(c)),l)}function n(i){if(i==null||i<0)return"—";if(i===0)return`0 ${r("unit.bytes")}`;const o=[[1024**4,"unit.tb"],[1024**3,"unit.gb"],[1024**2,"unit.mb"],[1024,"unit.kb"],[1,"unit.bytes"]];for(const[l,s]of o)if(i>=l){const u=i/l;return`${u>=100?Math.round(u):u.toFixed(u>=10?1:2)} ${r(s)}`}return`${i} ${r("unit.bytes")}`}function a(i){if(i.basename===".trash")return r("node.trash");const o=i.basename.match(/^\d{8}-\d{6}-[A-Za-z0-9]+__(.+)$/);return o?o[1]:i.basename}return{t:r,formatSize:n,nodeDisplayName:a}}const H6=2e3,j6=8e3;function sp(e){const t=(...l)=>{for(const s of l)if(typeof s=="number")return s;return 0},r=(...l)=>{for(const s of l)if(typeof s=="string"&&s!=="")return s;return null},n=String(e.status??"pending"),a=n==="ok"||n==="done"?"done":n==="failed"||n==="partial"||n==="error"?"error":n==="running"?"running":"pending",i=Array.isArray(e.sources)?e.sources:[],o=r(e.op_type,e.kind)??"delete";return{id:t(e.id),op_type:o==="copy"||o==="move"?o:"delete",status:a,progress_total:t(e.progress_total,e.total,i.length),progress_done:t(e.progress_done,e.done),target_path:r(e.target_path,e.dest),source_dir:r(e.source_dir),source_count:t(e.source_count,i.length),error_message:r(e.error_message,e.error),started_at:r(e.started_at),finished_at:r(e.finished_at),created_at:r(e.created_at)}}function G6(e,t,r={}){const n=de([]),a=new Set,i=new Map;let o=!1;const l=mt(()=>n.value.some(y=>y.status==="pending"||y.status==="running"));let s;function u(){s||t.endpoints.opsList&&(s=setInterval(()=>{d()},H6),d())}function c(){s&&(clearInterval(s),s=void 0)}async function d(){var y;if(t.endpoints.opsList)try{const x=((await t.jsonFetch(t.endpoints.opsList)).ops||[]).map(sp);for(const _ of x)(_.status==="done"||_.status==="error")&&!a.has(_.id)&&(a.add(_.id),i.set(_.id,Date.now()),o&&((y=r.onSettled)==null||y.call(r,_)));const b=new Set(n.value.map(_=>_.id)),v=x.filter(_=>_.status==="pending"||_.status==="running"?!0:o?b.has(_.id):!1),g=new Set(v.map(_=>_.id)),m=n.value.filter(_=>!g.has(_.id)),C=[...v,...m];o=!0;const A=Date.now(),S=C.filter(_=>{if(_.status==="pending"||_.status==="running")return!0;const E=i.get(_.id);return E!==void 0&&A-E<j6});n.value=S,!l.value&&S.length===0&&c()}catch(p){console.warn("[usePendingOps] poll failed:",p)}}function f(y){const p=sp(y);n.value.some(b=>b.id===p.id)||(n.value=[p,...n.value]),u()}function h(y){n.value=n.value.filter(p=>p.id!==y),i.delete(y)}return Br(()=>{c()}),{ops:n,hasActive:l,register:f,dismiss:h,poll:d,startPolling:u,stopPolling:c}}const V6=25e3,q6=15e3,W6=6;class K6{constructor(t){ra(this,"ws",null);ra(this,"opts");ra(this,"closed",!1);ra(this,"connecting",!1);ra(this,"retries",0);ra(this,"fallback",!1);ra(this,"pingTimer",null);ra(this,"reconnectTimer",null);ra(this,"currentPath",null);ra(this,"currentFocus",null);this.opts=t,this.connect()}subscribe(t){this.currentPath=t,this.currentFocus=null,t&&this.send({type:"subscribe",path:t})}setFocus(t){this.currentFocus=t,this.send({type:"focus",file:t})}close(){this.closed=!0,this.clearTimers(),this.dropSocket()}async connect(){if(this.closed||this.connecting||this.ws)return;this.connecting=!0;let t=null;try{t=await this.opts.getTicket()}catch{t=null}if(this.connecting=!1,this.closed)return;if(!t||!t.ticket||!t.ws_url){this.fail();return}const r=t.ws_url.includes("?")?"&":"?";let n;try{n=new WebSocket(`${t.ws_url}${r}ticket=${encodeURIComponent(t.ticket)}`)}catch{this.fail();return}this.ws=n,n.onopen=()=>{var a,i;this.retries=0,this.setFallback(!1),(i=(a=this.opts.handlers).onStatus)==null||i.call(a,!0),this.currentPath&&this.send({type:"subscribe",path:this.currentPath}),this.currentFocus!==null&&this.send({type:"focus",file:this.currentFocus}),this.startPing()},n.onmessage=a=>{var l,s,u,c;let i;try{i=JSON.parse(typeof a.data=="string"?a.data:"")}catch{return}const o=i;(o==null?void 0:o.type)==="change"?(s=(l=this.opts.handlers).onChange)==null||s.call(l,i):(o==null?void 0:o.type)==="presence"&&((c=(u=this.opts.handlers).onPresence)==null||c.call(u,i))},n.onerror=()=>{},n.onclose=()=>{var a,i;this.stopPing(),this.ws=null,(i=(a=this.opts.handlers).onStatus)==null||i.call(a,!1),this.fail()}}fail(){if(this.closed||this.reconnectTimer)return;if(this.retries>=W6){this.setFallback(!0);return}const t=Math.min(1e3*2**this.retries,q6);this.retries+=1,this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}setFallback(t){var r,n;this.fallback!==t&&(this.fallback=t,(n=(r=this.opts.handlers).onFallback)==null||n.call(r,t))}send(t){const r=this.ws;if(!(!r||r.readyState!==WebSocket.OPEN))try{r.send(JSON.stringify(t))}catch{}}startPing(){this.stopPing(),this.pingTimer=setInterval(()=>this.send({type:"ping"}),V6)}stopPing(){this.pingTimer&&(clearInterval(this.pingTimer),this.pingTimer=null)}dropSocket(){if(this.ws){try{this.ws.onclose=null,this.ws.close()}catch{}this.ws=null}}clearTimers(){this.stopPing(),this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}}const X6=200,Y6=12e3;function Z6(e,t){const r=de([]),n=de(!1);let a=null,i=null,o=null,l=null;function s(){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t.reload()},X6)}function u(p){i&&p.path&&p.path!==i||(r.value=Array.isArray(p.users)?p.users:[])}function c(p){p?(r.value=[],l||(l=setInterval(()=>t.reload(),Y6))):l&&(clearInterval(l),l=null)}function d(){a||(a=new K6({getTicket:()=>e.wsTicket(),handlers:{onChange:s,onPresence:u,onFallback:c,onStatus:p=>{n.value=p}}}))}function f(p){r.value=[],i=p,a==null||a.subscribe(p)}function h(p){a==null||a.setFocus(p)}function y(){o&&(clearTimeout(o),o=null),l&&(clearInterval(l),l=null),a==null||a.close(),a=null}return{presenceUsers:r,connected:n,start:d,subscribe:f,setFocus:h,stop:y}}const J6=500;function Q6(e,t){const r=de({}),n=[],a=new Set,i=new Set;function o(u){if(/^https?:\/\//i.test(u))return u;const c=(e||"").replace(/\/+$/,"");return c&&u.startsWith("/")?c+u:u}function l(u){const c=u.thumb_url;if(!c)return null;const d=r.value[c];return d||(!a.has(c)&&!i.has(c)&&s(c),null)}async function s(u){i.add(u);try{const c=await fetch(o(u),{headers:await t.authHeaders({Accept:"*/*"}),credentials:t.credentialsMode()});if(!c.ok)throw new Error(String(c.status));const d=await c.blob();if(n.length>=J6){const f=n.shift();if(f&&r.value[f]){URL.revokeObjectURL(r.value[f]);const h={...r.value};delete h[f],r.value=h}}n.push(u),r.value={...r.value,[u]:URL.createObjectURL(d)}}catch{a.add(u)}finally{i.delete(u)}}return{src:l}}let Ks=null,Xs=null,Ys=null,mc=null;function gc(){Ks||(Ks=import("monaco-editor").then(e=>(Ys=e.default??e,Ys)).catch(()=>(Ys=null,null))),Xs||(Xs=import("highlight.js").then(e=>(mc=e.default??e,mc)).catch(()=>(mc=null,null)))}async function up(){return Ks||gc(),Ks}async function cp(){return Xs||gc(),Xs}function e8(){return Ys}const t8={key:0,class:"fx-presence-chips"},r8=["title"],n8={key:0,class:"fx-presence-dot","aria-hidden":"true"},a8={class:"fx-presence-chip-name"},i8={key:0,class:"fx-presence-chip-file"},o8=["title"],l8=["title"],s8={key:0,class:"fx-presence-dot","aria-hidden":"true"},u8={key:0,class:"fx-presence-more"},c8=["title"],f8={class:"fx-presence-file"},d8=["title","aria-expanded"],fp="filex.presence.expanded",h8=qt({__name:"PresenceBar",props:{users:{},selfId:{},locale:{}},setup(e){const t=e,{t:r}=vn(()=>t.locale??"tr"),n=mt(()=>(t.users??[]).filter(c=>t.selfId==null||c.id!==t.selfId)),a=de((()=>{try{return localStorage.getItem(fp)==="1"}catch{return!1}})());function i(){a.value=!a.value;try{localStorage.setItem(fp,a.value?"1":"0")}catch{}}function o(c){return c.uid??String(c.id)}function l(c){const d=c.trim().split(/\s+/).filter(Boolean);return d.length===0?"?":d.length===1?d[0].slice(0,2).toUpperCase():(d[0][0]+d[d.length-1][0]).toUpperCase()}function s(c){const d=o(c);let f=0;for(let h=0;h<d.length;h++)f=f*31+d.charCodeAt(h)>>>0;return f%360}function u(c){return c.file?`${c.name} · ${c.file}`:c.name}return(c,d)=>n.value.length?(J(),ne("div",{key:0,class:Kt(["fx-presence",{"fx-presence--wide":a.value}])},[a.value?(J(),ne("div",t8,[(J(!0),ne(gt,null,rr(n.value,f=>(J(),ne("span",{key:o(f),class:"fx-presence-chip",title:u(f)},[L("span",{class:"fx-presence-avatar",style:ia({backgroundColor:`hsl(${s(f)} 60% 45%)`})},[mr(ie(l(f.name))+" ",1),f.file?(J(),ne("span",n8)):tt("",!0)],4),L("span",a8,ie(f.name),1),f.file?(J(),ne("span",i8,"· "+ie(f.file),1)):tt("",!0)],8,r8))),128))])):(J(),ne(gt,{key:1},[L("div",{class:"fx-presence-avatars",title:n.value.map(u).join(", ")},[(J(!0),ne(gt,null,rr(n.value.slice(0,5),f=>(J(),ne("span",{key:o(f),class:"fx-presence-avatar",style:ia({backgroundColor:`hsl(${s(f)} 60% 45%)`}),title:u(f)},[mr(ie(l(f.name))+" ",1),f.file?(J(),ne("span",s8)):tt("",!0)],12,l8))),128)),n.value.length>5?(J(),ne("span",u8,"+"+ie(n.value.length-5),1)):tt("",!0)],8,o8),L("span",{class:"fx-presence-text",title:n.value.map(u).join(", ")},[mr(ie(n.value.length===1?n.value[0].name:`${n.value.length} kişi`)+" ",1),n.value.length===1&&n.value[0].file?(J(),ne(gt,{key:0},[d[0]||(d[0]=mr(" · ",-1)),L("span",f8,ie(n.value[0].file),1)],64)):tt("",!0)],8,c8)],64)),L("button",{type:"button",class:"fx-presence-toggle",title:a.value?Le(r)("presence.collapse"):Le(r)("presence.expand"),"aria-expanded":a.value,onClick:i},ie(a.value?"‹":"›"),9,d8)],2)):tt("",!0)}}),Jr=(e,t)=>{const r=e.__vccOpts||e;for(const[n,a]of t)r[n]=a;return r},p8=Jr(h8,[["__scopeId","data-v-7e8c1920"]]),v8={class:"fe-toolbar"},m8={class:"fe-toolbar__primary"},g8=["title","aria-label"],b8=["title"],y8={class:"fe-btn__label"},x8=["disabled","title","onClick"],_8={class:"fe-icon"},w8={class:"fe-btn__label"},k8=["title"],S8={class:"fe-btn__label"},C8={class:"fe-toolbar__search-group"},A8={class:"fe-search"},E8=["placeholder","value"],T8=["title"],M8=["title"],D8={class:"fe-toolbar__view",role:"tablist","aria-label":"View"},I8=["aria-selected","title"],z8=["aria-selected","title"],F8=qt({__name:"Toolbar",props:{viewMode:{},searchQuery:{},trashActive:{type:Boolean},actions:{},selectionMode:{},pasteEnabled:{type:Boolean},convertEnabled:{type:Boolean},canGoUp:{type:Boolean},atVirtualRoot:{type:Boolean},canWrite:{type:Boolean},locale:{}},emits:["update:viewMode","update:searchQuery","new-folder","upload","refresh","go-up","action","open-recents"],setup(e,{expose:t,emit:r}){const n=e,a=r,{t:i}=vn(()=>n.locale),o=de(null),l=de(n.searchQuery);tr(()=>n.searchQuery,y=>{l.value=y});let s;function u(y){const p=y.target.value;l.value=p,s&&clearTimeout(s),s=setTimeout(()=>a("update:searchQuery",p),200)}function c(){var y,p;(y=o.value)==null||y.focus(),(p=o.value)==null||p.select()}t({focusSearch:c});const d=mt(()=>n.selectionMode??"none"),f=mt(()=>n.actions.filter(y=>!y.divider&&!y.hidden));function h(y){a("action",y)}return(y,p)=>(J(),ne("div",v8,[L("div",m8,[e.canGoUp?(J(),ne("button",{key:0,type:"button",class:"fe-btn fe-btn--icon-only",title:Le(i)("toolbar.go_up"),"aria-label":Le(i)("toolbar.go_up"),onClick:p[0]||(p[0]=x=>a("go-up"))},[...p[7]||(p[7]=[L("span",{class:"fe-icon"},"↑",-1)])],8,g8)):tt("",!0),d.value==="none"&&!e.trashActive&&!e.atVirtualRoot&&e.canWrite!==!1?(J(),ne("button",{key:1,type:"button",class:"fe-btn fe-btn--primary",title:Le(i)("toolbar.new_folder"),onClick:p[1]||(p[1]=x=>a("new-folder"))},[p[8]||(p[8]=L("span",{class:"fe-icon"},"📁",-1)),L("span",y8,ie(Le(i)("toolbar.new_folder")),1)],8,b8)):tt("",!0),(J(!0),ne(gt,null,rr(f.value,x=>(J(),ne("button",{key:x.key,type:"button",class:Kt(["fe-btn",{"fe-btn--danger":x.danger,"is-disabled":x.disabled}]),disabled:x.disabled,title:x.label,onClick:b=>h(x.key)},[L("span",_8,ie(x.icon),1),L("span",w8,ie(x.label),1)],10,x8))),128)),e.pasteEnabled&&d.value==="none"&&!e.trashActive&&!e.atVirtualRoot&&e.canWrite!==!1?(J(),ne("button",{key:2,type:"button",class:"fe-btn",title:Le(i)("ctx.paste"),onClick:p[2]||(p[2]=x=>h("paste"))},[p[9]||(p[9]=L("span",{class:"fe-icon"},"📋",-1)),L("span",S8,ie(Le(i)("ctx.paste")),1)],8,k8)):tt("",!0)]),p[14]||(p[14]=L("div",{class:"fe-toolbar__spacer"},null,-1)),L("div",C8,[L("div",A8,[L("input",{ref_key:"searchEl",ref:o,type:"search",class:"fe-search__input",placeholder:Le(i)("toolbar.search.placeholder"),value:l.value,"aria-label":"Search",onInput:u},null,40,E8)]),!e.atVirtualRoot&&e.canWrite!==!1?(J(),ne("button",{key:0,type:"button",class:"fe-btn fe-btn--icon-only",title:Le(i)("toolbar.upload"),onClick:p[3]||(p[3]=x=>a("upload"))},[...p[10]||(p[10]=[L("span",{class:"fe-icon"},"⬆",-1)])],8,T8)):tt("",!0),L("button",{type:"button",class:"fe-btn fe-btn--icon-only",title:Le(i)("toolbar.refresh"),onClick:p[4]||(p[4]=x=>a("refresh"))},[...p[11]||(p[11]=[L("span",{class:"fe-icon"},"↻",-1)])],8,M8)]),L("div",D8,[L("button",{type:"button",class:Kt(["fe-btn fe-btn--icon-only",{"is-active":e.viewMode==="list"}]),role:"tab","aria-selected":e.viewMode==="list",title:Le(i)("toolbar.view.list"),onClick:p[5]||(p[5]=x=>a("update:viewMode","list"))},[...p[12]||(p[12]=[L("span",{class:"fe-icon"},"☰",-1)])],10,I8),L("button",{type:"button",class:Kt(["fe-btn fe-btn--icon-only",{"is-active":e.viewMode==="grid"}]),role:"tab","aria-selected":e.viewMode==="grid",title:Le(i)("toolbar.view.grid"),onClick:p[6]||(p[6]=x=>a("update:viewMode","grid"))},[...p[13]||(p[13]=[L("span",{class:"fe-icon"},"▦",-1)])],10,z8)])]))}}),O8=["onClick"],P8=Jr(qt({__name:"TagPicker",props:{nodeId:{},apiBase:{},authHeaders:{type:Function},palette:{}},emits:["change","error"],setup(e,{emit:t}){const r=e,n=t,a=de([]),i=de(!1),o=de(!1),l=de(""),s=mt(()=>r.palette??["#ef4444","#f59e0b","#10b981","#3b82f6","#8b5cf6","#ec4899","#14b8a6","#f97316"]);function u(p){let x=0;for(let v=0;v<p.length;v++)x=x*31+p.charCodeAt(v)|0;const b=s.value;return b[Math.abs(x)%b.length]}async function c(p={}){return{...await(r.authHeaders??(()=>({})))(),...p}}async function d(){i.value=!0;try{const p=r.apiBase??"",x=await fetch(`${p}/api/files/manager/tags?node_id=${r.nodeId}`,{headers:await c(),credentials:"include"});if(x.ok){const b=await x.json();a.value=Array.isArray(b.tags)?b.tags:[]}}catch(p){n("error",p instanceof Error?p.message:String(p))}finally{i.value=!1}}async function f(p){const x=[...a.value];a.value=p;try{const b=r.apiBase??"",v=await fetch(`${b}/api/files/manager/tags`,{method:"POST",headers:await c({"Content-Type":"application/json"}),credentials:"include",body:JSON.stringify({node_id:r.nodeId,tags:p})});if(!v.ok)throw new Error(`tag save failed: ${v.status}`);n("change",p)}catch(b){a.value=x,n("error",b instanceof Error?b.message:String(b))}}function h(){const p=l.value.trim();if(!p||a.value.includes(p)){l.value="",o.value=!1;return}f([...a.value,p]),l.value="",o.value=!1}function y(p){f(a.value.filter(x=>x!==p))}return vr(d),tr(()=>r.nodeId,d),(p,x)=>(J(),ne("div",{class:Kt(["filex-tag-picker",{"is-loading":i.value}])},[(J(!0),ne(gt,null,rr(a.value,b=>(J(),ne("span",{key:b,class:"filex-tag",style:ia({"--filex-tag-color":u(b)})},[mr(ie(b)+" ",1),L("button",{class:"filex-tag-x",type:"button",onClick:v=>y(b),"aria-label":"Remove tag"},"×",8,O8)],4))),128)),o.value?(J(),ne("form",{key:0,class:"filex-tag-add",onSubmit:gr(h,["prevent"])},[ar(L("input",{"onUpdate:modelValue":x[0]||(x[0]=b=>l.value=b),autofocus:"",placeholder:"tag name",onBlur:h,onKeydown:x[1]||(x[1]=pa(b=>{o.value=!1,l.value=""},["escape"]))},null,544),[[un,l.value]])],32)):(J(),ne("button",{key:1,class:"filex-tag-add-btn",type:"button",onClick:x[2]||(x[2]=b=>o.value=!0)},"+ Add tag"))],2))}}),[["__scopeId","data-v-f2104118"]]),R8={class:"filex-recent"},L8=["disabled"],B8={key:0},N8=["onClick"],$8={class:"filex-recent-name"},U8={class:"filex-recent-meta"},H8={key:1,class:"filex-recent-empty"},j8={key:2,class:"filex-recent-empty"},G8=Jr(qt({__name:"RecentlyOpened",props:{apiBase:{},authHeaders:{type:Function},limit:{},refreshKey:{}},emits:["open","error"],setup(e,{emit:t}){const r=e,n=t,a=de([]),i=de(!1);async function o(){i.value=!0;try{const s=await(r.authHeaders??(()=>({})))(),u=r.apiBase??"",c=r.limit??20,d=await fetch(`${u}/api/files/manager/recent?limit=${c}`,{headers:s,credentials:"include"});if(d.ok){const f=await d.json();a.value=Array.isArray(f.entries)?f.entries:Array.isArray(f)?f:[]}}catch(s){n("error",s instanceof Error?s.message:String(s))}finally{i.value=!1}}function l(s){if(!s)return"";const u=new Date(s).getTime();if(Number.isNaN(u))return"";const c=Date.now()-u;return c<6e4?"just now":c<36e5?`${Math.floor(c/6e4)}m ago`:c<864e5?`${Math.floor(c/36e5)}h ago`:`${Math.floor(c/864e5)}d ago`}return vr(o),tr(()=>r.refreshKey,o),(s,u)=>(J(),ne("div",R8,[L("header",null,[u[0]||(u[0]=L("h3",null,"Recently opened",-1)),L("button",{class:"filex-recent-refresh",type:"button",onClick:o,disabled:i.value}," ↻ ",8,L8)]),a.value.length?(J(),ne("ul",B8,[(J(!0),ne(gt,null,rr(a.value,c=>(J(),ne("li",{key:c.id},[L("button",{type:"button",onClick:d=>n("open",c),class:"filex-recent-item"},[L("span",$8,ie(c.name),1),L("span",U8,ie(l(c.last_opened)),1)],8,N8)]))),128))])):i.value?(J(),ne("p",j8,"Loading…")):(J(),ne("p",H8,"Nothing here yet."))]))}}),[["__scopeId","data-v-ff50baed"]]),V8={class:"fe-breadcrumb","aria-label":"Breadcrumb"},q8=["aria-current","onClick","onContextmenu","onDrop"],W8={key:0,class:"fe-breadcrumb__sep","aria-hidden":"true"},K8=["title","aria-label"],X8=["placeholder","onKeydown"],Y8=qt({__name:"Breadcrumb",props:{dirname:{},adapter:{},rootLabel:{},locale:{},multiStorageRoot:{type:Boolean},rootPath:{}},emits:["navigate","copy-path","crumb-context","crumb-drop"],setup(e,{emit:t}){const r=e,n=mt(()=>{if(!r.rootPath)return"";const v=r.rootPath,g=v.indexOf("://");return(g>=0?v.slice(g+3):v).replace(/^\/+|\/+$/g,"")}),a=mt(()=>{const v=n.value;if(!v)return r.rootLabel||r.adapter;const g=v.split("/");return g[g.length-1]||r.rootLabel||r.adapter}),{t:i}=vn(()=>r.locale),o=t,l=mt(()=>{const v=`${r.adapter}://`,g=r.dirname.startsWith(v)?r.dirname.slice(v.length):r.dirname,m=g.split("/").filter(Boolean),C=[];if(r.rootPath){const S=n.value,_=g.replace(/^\/+|\/+$/g,""),E=S&&(_===S||_.startsWith(S+"/"))?_.slice(S.length).replace(/^\/+/,""):"";C.push({label:a.value,adapterPath:r.rootPath});let M=S;for(const z of E.split("/").filter(Boolean))M=M?`${M}/${z}`:z,C.push({label:z===".trash"?i("node.trash"):z,adapterPath:`${v}${M}`});return C}r.multiStorageRoot?(C.push({label:"/",adapterPath:""}),r.adapter&&C.push({label:r.rootLabel||r.adapter,adapterPath:v})):C.push({label:r.rootLabel||r.adapter,adapterPath:v});let A="";for(const S of m){A=A?`${A}/${S}`:S;const _=S===".trash"?i("node.trash"):S;C.push({label:_,adapterPath:`${v}${A}`})}return C});function s(v){o("navigate",v.adapterPath)}function u(v,g){v.preventDefault(),v.stopPropagation(),o("crumb-context",{x:v.clientX,y:v.clientY,adapterPath:g.adapterPath,label:g.label})}function c(v){var g;(g=v.dataTransfer)!=null&&g.types.includes("application/x-brf-files")&&(v.preventDefault(),v.stopPropagation(),v.dataTransfer&&(v.dataTransfer.dropEffect="move"))}function d(v,g){var m;(m=v.dataTransfer)!=null&&m.types.includes("application/x-brf-files")&&(v.preventDefault(),v.stopPropagation(),o("crumb-drop",g.adapterPath,v))}const f=de(!1),h=de(""),y=de(null);function p(){const v=`${r.adapter}://`,g=r.dirname.startsWith(v)?r.dirname.slice(v.length):r.dirname;if(r.rootPath){const m=n.value,C=g.replace(/^\/+|\/+$/g,""),A=m&&(C===m||C.startsWith(m+"/"))?C.slice(m.length).replace(/^\/+/,""):"";h.value=A?`/${A}`:"/",f.value=!0,Ia(()=>{var S,_;(S=y.value)==null||S.focus(),(_=y.value)==null||_.select()});return}if(r.multiStorageRoot)if(!r.adapter)h.value="/";else{const m=g.replace(/^\/+|\/+$/g,"");h.value=m?`/${r.adapter}/${m}`:`/${r.adapter}`}else h.value=g;f.value=!0,Ia(()=>{var m,C;(m=y.value)==null||m.focus(),(C=y.value)==null||C.select()})}function x(){const v=h.value.trim();if(f.value=!1,r.rootPath){const m=v.replace(/^\/+|\/+$/g,""),C=n.value,A=m?C?`${C}/${m}`:m:C;o("navigate",A?`${r.adapter}://${A}`:`${r.adapter}://`);return}if(r.multiStorageRoot){const m=v.replace(/^\/+|\/+$/g,"");if(!m){o("navigate","");return}const C=m.indexOf("/"),A=C===-1?m:m.slice(0,C),S=C===-1?"":m.slice(C+1);o("navigate",S?`${A}://${S}`:`${A}://`);return}const g=v.replace(/^\/+|\/+$/g,"");g&&o("navigate",`${r.adapter}://${g}`)}function b(){f.value=!1}return(v,g)=>(J(),ne("nav",V8,[f.value?ar((J(),ne("input",{key:1,ref_key:"pathInput",ref:y,"onUpdate:modelValue":g[0]||(g[0]=m=>h.value=m),type:"text",class:"fe-breadcrumb__input",placeholder:Le(i)("breadcrumb.path_placeholder"),spellcheck:"false",autocomplete:"off",onKeydown:[pa(gr(x,["prevent"]),["enter"]),pa(gr(b,["prevent"]),["escape"])],onBlur:b},null,40,X8)),[[un,h.value]]):(J(),ne(gt,{key:0},[(J(!0),ne(gt,null,rr(l.value,(m,C)=>(J(),ne("button",{key:m.adapterPath,class:Kt(["fe-breadcrumb__crumb",{"is-last":C===l.value.length-1}]),type:"button","aria-current":C===l.value.length-1?"page":void 0,onClick:A=>s(m),onContextmenu:A=>u(A,m),onDragover:c,onDrop:A=>d(A,m)},[L("span",null,ie(m.label),1),C<l.value.length-1?(J(),ne("span",W8,"›")):tt("",!0)],42,q8))),128)),L("button",{type:"button",class:"fe-breadcrumb__edit",title:Le(i)("breadcrumb.go_to_path"),"aria-label":Le(i)("breadcrumb.go_to_path"),onClick:p},"✏",8,K8)],64))]))}}),Z8=["aria-pressed","title"],J8={viewBox:"0 0 24 24",width:"16",height:"16","aria-hidden":"true"},Q8=["fill"],e7={key:0,class:"filex-star-label"},t7=Jr(qt({__name:"StarButton",props:{starred:{type:Boolean},nodeId:{},apiBase:{},authHeaders:{type:Function},compact:{type:Boolean}},emits:["change","error"],setup(e,{emit:t}){const r=e,n=t,a=de(r.starred);tr(()=>r.starred,o=>{a.value=o});async function i(){const o=!a.value;a.value=o;try{const l={"Content-Type":"application/json",...await(r.authHeaders??(()=>({})))()},s=r.apiBase??"",u=await fetch(`${s}/api/files/manager/star`,{method:"POST",headers:l,credentials:"include",body:JSON.stringify({node_id:r.nodeId,starred:o})});if(!u.ok)throw new Error(`star toggle failed: ${u.status}`);n("change",o)}catch(l){a.value=!o,n("error",l instanceof Error?l.message:String(l))}}return(o,l)=>(J(),ne("button",{type:"button",class:Kt(["filex-star-btn",{"is-starred":a.value,"is-compact":e.compact}]),"aria-pressed":a.value,title:a.value?"Unstar":"Star",onClick:gr(i,["stop"])},[(J(),ne("svg",J8,[L("path",{fill:a.value?"currentColor":"none",stroke:"currentColor","stroke-width":"2","stroke-linejoin":"round",d:"M12 2.5l3.09 6.26 6.91 1-5 4.87 1.18 6.87L12 18.27l-6.18 3.23L7 14.63 2 9.76l6.91-1z"},null,8,Q8)])),e.compact?tt("",!0):(J(),ne("span",e7,ie(a.value?"Starred":"Star"),1))],10,Z8))}}),[["__scopeId","data-v-1b788147"]]),r7={class:"fe-list__head",role:"row"},n7={class:"fe-list__col fe-list__col--name",role:"columnheader"},a7={class:"fe-list__col fe-list__col--size",role:"columnheader"},i7={class:"fe-list__col fe-list__col--mod",role:"columnheader"},o7={class:"fe-list__body",role:"rowgroup"},l7=["onClick","onDblclick","onContextmenu","onDragstart","onDragover","onDrop","onTouchstartPassive"],s7={class:"fe-list__col fe-list__col--name"},u7={class:"fe-list__icon","aria-hidden":"true"},c7={class:"fe-list__name-wrap"},f7=["title"],d7=["title"],h7={class:"fe-list__col fe-list__col--size"},p7={class:"fe-list__col fe-list__col--mod"},v7={key:0,class:"fe-list__empty"},m7=qt({__name:"ListView",props:{files:{},selected:{},clipped:{},showParentPath:{type:Boolean},locale:{},loading:{type:Boolean},starredIds:{},apiBase:{},authHeaders:{type:Function}},emits:["click-row","dbl-row","context-row","item-drag-start","item-drop-into","star-change"],setup(e,{emit:t}){const r=e,n=t,{t:a,formatSize:i,nodeDisplayName:o}=vn(()=>r.locale);function l(A){return r.selected.has(A.path)}function s(A,S){n("click-row",A,{ctrl:S.ctrlKey||S.metaKey,shift:S.shiftKey})}function u(A){n("dbl-row",A)}function c(A,S){S.preventDefault(),S.stopPropagation(),n("context-row",A,S)}function d(A,S){n("item-drag-start",A,S)}function f(A,S){var _;A.type==="dir"&&(_=S.dataTransfer)!=null&&_.types.includes("application/x-brf-files")&&(S.preventDefault(),S.stopPropagation(),S.dataTransfer&&(S.dataTransfer.dropEffect="move"))}function h(A,S){var _;A.type==="dir"&&(_=S.dataTransfer)!=null&&_.types.includes("application/x-brf-files")&&(S.preventDefault(),S.stopPropagation(),n("item-drop-into",A,S))}let y,p=null;function x(A,S){p=A,y&&clearTimeout(y),y=setTimeout(()=>{if(p){const _=S.touches[0];n("context-row",p,{clientX:_.clientX,clientY:_.clientY,preventDefault:()=>{}})}},500)}function b(){y&&clearTimeout(y),p=null}function v(A){if(A.basename===".trash")return"🗑";if(A.mime_type==="inode/storage")return"💾";if(A.type==="dir")return"📁";const S=(A.extension||"").toLowerCase();return["jpg","jpeg","png","webp","gif","bmp","avif","heic","svg"].includes(S)?"🖼":["mp4","webm","mov","mkv","avi","ogv","m4v"].includes(S)?"🎞":["mp3","wav","flac","ogg","m4a","aac","opus"].includes(S)?"🎵":S==="pdf"?"📕":["doc","docx","odt","rtf"].includes(S)?"📄":["xls","xlsx","ods","csv"].includes(S)?"📊":["ppt","pptx","odp"].includes(S)?"📽":["zip","tar","gz","bz2","7z","rar"].includes(S)?"🗜":["txt","md","log","json","yml","yaml","xml"].includes(S)?"📝":"📎"}function g(A){return A?new Date(A*(A<1e12?1e3:1)).toLocaleString():"—"}function m(A){const S=A.replace(/^[a-z][a-z0-9+.-]*:\/\//i,""),_=S.lastIndexOf("/");return _===-1?"":S.slice(0,_)}const C=mt(()=>r.files);return(A,S)=>(J(),ne("div",{class:Kt(["fe-list",{"is-loading":e.loading,"has-star-col":!!e.apiBase||e.apiBase===""}])},[L("div",r7,[S[1]||(S[1]=L("div",{class:"fe-list__col fe-list__col--star",role:"columnheader","aria-label":"Star"},null,-1)),L("div",n7,ie(Le(a)("col.name")),1),L("div",a7,ie(Le(a)("col.size")),1),L("div",i7,ie(Le(a)("col.modified")),1)]),L("div",o7,[(J(!0),ne(gt,null,rr(C.value,_=>{var E,M;return J(),ne("div",{key:_.path,class:Kt(["fe-list__row",{"is-selected":l(_),"is-dir":_.type==="dir","is-trash":_.trashed,"is-clipped":(E=e.clipped)==null?void 0:E.has(_.path)}]),role:"row",tabindex:"0",draggable:"true",onClick:z=>s(_,z),onDblclick:z=>u(_),onContextmenu:z=>c(_,z),onDragstart:z=>d(_,z),onDragover:z=>f(_,z),onDrop:z=>h(_,z),onTouchstartPassive:z=>x(_,z),onTouchend:b,onTouchmove:b},[L("div",{class:"fe-list__col fe-list__col--star",onClick:S[0]||(S[0]=gr(()=>{},["stop"]))},[typeof _.id=="number"&&_.type==="file"?(J(),kr(t7,{key:0,starred:!!((M=e.starredIds)!=null&&M.has(_.id)),"node-id":_.id,"api-base":e.apiBase,"auth-headers":e.authHeaders,compact:"",onChange:z=>n("star-change",_,z)},null,8,["starred","node-id","api-base","auth-headers","onChange"])):tt("",!0)]),L("div",s7,[L("span",u7,ie(v(_)),1),L("div",c7,[L("span",{class:"fe-list__name",title:_.basename},ie(Le(o)(_)),9,f7),e.showParentPath?(J(),ne("span",{key:0,class:"fe-list__parent",title:m(_.path)},ie(m(_.path)||"—"),9,d7)):tt("",!0)])]),L("div",h7,ie(Le(i)(_.size)),1),L("div",p7,ie(g(_.last_modified)),1)],42,l7)}),128)),!e.loading&&C.value.length===0?(J(),ne("div",v7,ie(Le(a)("empty.folder")),1)):tt("",!0)])],2))}}),g7=["onClick","onDblclick","onContextmenu","onDragstart","onDragover","onDrop","onTouchstartPassive"],b7={class:"fe-grid__thumb"},y7=["src","alt"],x7={key:1,class:"fe-grid__icon"},_7=["title"],w7=["title"],k7={class:"fe-grid__meta"},S7={key:0,class:"fe-grid__empty"},C7=qt({__name:"GridView",props:{files:{},selected:{},clipped:{},showParentPath:{type:Boolean},locale:{},loading:{type:Boolean},thumbSrc:{type:Function}},emits:["click-card","dbl-card","context-card","item-drag-start","item-drop-into"],setup(e,{emit:t}){const r=e,n=t,{t:a,formatSize:i,nodeDisplayName:o}=vn(()=>r.locale);function l(C){return r.thumbSrc?r.thumbSrc(C):C.thumb_url??null}function s(C){return r.selected.has(C.path)}function u(C,A){n("click-card",C,{ctrl:A.ctrlKey||A.metaKey,shift:A.shiftKey})}function c(C){n("dbl-card",C)}function d(C,A){A.preventDefault(),A.stopPropagation(),n("context-card",C,A)}function f(C,A){n("item-drag-start",C,A)}function h(C,A){var S;C.type==="dir"&&(S=A.dataTransfer)!=null&&S.types.includes("application/x-brf-files")&&(A.preventDefault(),A.stopPropagation(),A.dataTransfer&&(A.dataTransfer.dropEffect="move"))}function y(C,A){var S;C.type==="dir"&&(S=A.dataTransfer)!=null&&S.types.includes("application/x-brf-files")&&(A.preventDefault(),A.stopPropagation(),n("item-drop-into",C,A))}let p,x=null;function b(C,A){x=C,p&&clearTimeout(p),p=setTimeout(()=>{if(x){const S=A.touches[0];n("context-card",x,{clientX:S.clientX,clientY:S.clientY,preventDefault:()=>{}})}},500)}function v(){p&&clearTimeout(p),x=null}function g(C){const A=C.replace(/^[a-z][a-z0-9+.-]*:\/\//i,""),S=A.lastIndexOf("/");return S===-1?"":A.slice(0,S)}function m(C){if(C.basename===".trash")return"🗑";if(C.mime_type==="inode/storage")return"💾";if(C.type==="dir")return"📁";const A=(C.extension||"").toLowerCase();return["jpg","jpeg","png","webp","gif","bmp","svg"].includes(A)?"🖼":["mp4","webm","mov","mkv"].includes(A)?"🎞":["mp3","wav","flac","ogg"].includes(A)?"🎵":A==="pdf"?"📕":["doc","docx","odt"].includes(A)?"📄":["xls","xlsx","csv"].includes(A)?"📊":["ppt","pptx"].includes(A)?"📽":["zip","tar","gz","7z"].includes(A)?"🗜":"📎"}return(C,A)=>(J(),ne("div",{class:Kt(["fe-grid",{"is-loading":e.loading}])},[(J(!0),ne(gt,null,rr(e.files,S=>{var _;return J(),ne("div",{key:S.path,class:Kt(["fe-grid__card",{"is-selected":s(S),"is-dir":S.type==="dir","is-trash":S.trashed,"is-clipped":(_=e.clipped)==null?void 0:_.has(S.path)}]),tabindex:"0",draggable:"true",onClick:E=>u(S,E),onDblclick:E=>c(S),onContextmenu:E=>d(S,E),onDragstart:E=>f(S,E),onDragover:E=>h(S,E),onDrop:E=>y(S,E),onTouchstartPassive:E=>b(S,E),onTouchend:v,onTouchmove:v},[L("div",b7,[l(S)?(J(),ne("img",{key:0,src:l(S),alt:S.basename,loading:"lazy",draggable:"false"},null,8,y7)):(J(),ne("span",x7,ie(m(S)),1))]),L("div",{class:"fe-grid__label",title:S.basename},ie(Le(o)(S)),9,_7),e.showParentPath?(J(),ne("div",{key:0,class:"fe-grid__parent",title:g(S.path)},ie(g(S.path)||"—"),9,w7)):tt("",!0),L("div",k7,ie(Le(i)(S.size)),1)],42,g7)}),128)),!e.loading&&e.files.length===0?(J(),ne("div",S7,ie(Le(a)("empty.folder")),1)):tt("",!0)],2))}}),A7=["data-prefers-dark"],E7={key:0,class:"fe-ctx__sep"},T7=["disabled","onClick"],M7={key:0,class:"fe-ctx__icon","aria-hidden":"true"},D7={class:"fe-ctx__label"},I7=qt({__name:"ContextMenu",props:{locale:{},actions:{},theme:{}},emits:["select"],setup(e,{expose:t,emit:r}){const n=e,a=r,i=de(!1),o=de(0),l=de(0),s=de([]),u=de(null);async function c(m,C){i.value=!0,o.value=m.clientX,l.value=m.clientY,s.value=C,await Ia(),d()}function d(){const m=u.value;if(!m||typeof window>"u")return;const C=m.getBoundingClientRect(),A=8,S=window.innerWidth,_=window.innerHeight;l.value+C.height>_-A&&(l.value=Math.max(A,_-C.height-A)),o.value+C.width>S-A&&(o.value=Math.max(A,S-C.width-A))}function f(){i.value=!1}function h(m){m.disabled||(a("select",m,s.value),f())}function y(m){m.key==="Escape"&&f()}const p=mt(()=>n.actions.filter(m=>!m.hidden)),x=de(!1);let b;function v(m){x.value=!!(m&&"matches"in m&&m.matches)}vr(()=>{var m;typeof window>"u"||(b=window.matchMedia("(prefers-color-scheme: dark)"),v(b),(m=b.addEventListener)==null||m.call(b,"change",v))}),Br(()=>{var m;(m=b==null?void 0:b.removeEventListener)==null||m.call(b,"change",v)});const g=mt(()=>`fe-ctx-backdrop--theme-${n.theme||"auto"}`);return t({show:c,hide:f}),(m,C)=>(J(),kr(Qb,{to:"body"},[Bt(ho,{name:"fe-ctx"},{default:Tr(()=>[i.value?(J(),ne("div",{key:0,class:Kt(["fe-ctx-backdrop",g.value]),"data-prefers-dark":x.value?"1":"0",onClick:f,onContextmenu:gr(f,["prevent"]),onKeydown:y},[L("div",{ref_key:"menuEl",ref:u,class:"fe-ctx",role:"menu",style:ia({top:l.value+"px",left:o.value+"px"}),onClick:C[0]||(C[0]=gr(()=>{},["stop"]))},[(J(!0),ne(gt,null,rr(p.value,(A,S)=>(J(),ne(gt,{key:A.key||S},[A.divider?(J(),ne("div",E7)):(J(),ne("button",{key:1,type:"button",class:Kt(["fe-ctx__item",{"is-danger":A.danger,"is-disabled":A.disabled}]),disabled:A.disabled,role:"menuitem",onClick:_=>h(A)},[A.icon?(J(),ne("span",M7,ie(A.icon),1)):tt("",!0),L("span",D7,ie(A.label),1)],10,T7))],64))),128))],4)],42,A7)):tt("",!0)]),_:1})]))}}),z7={key:0,class:"fe-upload"},F7={class:"fe-upload__header"},O7={class:"fe-upload__count"},P7={class:"fe-upload__list"},R7=["title"],L7=["aria-valuenow"],B7={class:"fe-upload__meta"},N7=["onClick"],$7=["onClick"],U7=qt({__name:"UploadProgress",props:{jobs:{},locale:{}},emits:["cancel","dismiss"],setup(e,{emit:t}){const r=e,n=t,{t:a,formatSize:i}=vn(()=>r.locale),o=mt(()=>r.jobs);function l(s){switch(s.status){case"done":return a("upload.done");case"error":return`${a("upload.error")}: ${s.error??""}`;case"aborted":return a("upload.aborted");default:return a("upload.progress")}}return(s,u)=>(J(),kr(ho,{name:"fe-upload-slide"},{default:Tr(()=>[o.value.length>0?(J(),ne("div",z7,[L("div",F7,[L("strong",null,ie(Le(a)("upload.progress")),1),L("span",O7,ie(o.value.length),1)]),L("ul",P7,[(J(!0),ne(gt,null,rr(o.value,c=>(J(),ne("li",{key:c.id,class:Kt(["fe-upload__item",`is-${c.status}`])},[L("div",{class:"fe-upload__name",title:c.file.name},ie(c.file.name),9,R7),L("div",{class:"fe-upload__bar","aria-valuenow":c.percent,role:"progressbar"},[L("div",{class:"fe-upload__bar-fill",style:ia({width:c.percent+"%"})},null,4)],8,L7),L("div",B7,[L("span",null,ie(l(c)),1),L("span",null,ie(Le(i)(c.uploadedBytes))+" / "+ie(Le(i)(c.totalBytes)),1),c.status==="uploading"||c.status==="initializing"?(J(),ne("button",{key:0,type:"button",class:"fe-upload__cancel",onClick:d=>n("cancel",c)},ie(Le(a)("upload.cancel")),9,N7)):(J(),ne("button",{key:1,type:"button",class:"fe-upload__cancel",onClick:d=>n("dismiss",c)},"×",8,$7))])],2))),128))])])):tt("",!0)]),_:1}))}}),H7={class:"fe-ops__row"},j7=["title"],G7=["onClick"],V7={class:"fe-ops__bar"},q7={key:0,class:"fe-ops__error"},W7=qt({__name:"PendingOpsTray",props:{ops:{},locale:{}},emits:["dismiss"],setup(e,{emit:t}){const r=e,n=t,{t:a}=vn(()=>r.locale),i=mt(()=>[...r.ops].sort((u,c)=>c.id-u.id));function o(u){return u.status==="done"?100:u.progress_total<=0?0:Math.min(100,Math.round(u.progress_done/u.progress_total*100))}function l(u){return u.status==="done"?"is-done":u.status==="error"?"is-error":""}function s(u){const c=u.op_type==="copy"?a("ops.copy"):u.op_type==="move"?a("ops.move"):a("ops.delete");return u.status==="pending"?`${c} (${a("ops.queued")})`:u.status==="running"?`${c} ${u.progress_done}/${u.progress_total}`:u.status==="done"?`${c} ${a("ops.done")} (${u.progress_total})`:u.status==="error"?`${c} ${a("ops.error")}`:c}return(u,c)=>i.value.length>0?(J(),kr(w6,{key:0,name:"fe-ops-slide",tag:"div",class:"fe-ops",role:"status","aria-live":"polite"},{default:Tr(()=>[(J(!0),ne(gt,null,rr(i.value,d=>(J(),ne("div",{key:d.id,class:Kt(["fe-ops__item",l(d)])},[L("div",H7,[L("span",{class:"fe-ops__title",title:d.target_path||d.source_dir||""},ie(s(d)),9,j7),d.status==="done"||d.status==="error"?(J(),ne("button",{key:0,type:"button",class:"fe-ops__dismiss","aria-label":"Dismiss",onClick:f=>n("dismiss",d.id)},"×",8,G7)):tt("",!0)]),L("div",V7,[L("div",{class:"fe-ops__bar-fill",style:ia({width:o(d)+"%"})},null,4)]),d.status==="error"&&d.error_message?(J(),ne("div",q7,ie(d.error_message),1)):tt("",!0)],2))),128))]),_:1})):tt("",!0)}}),K7={key:0,class:"fe-modal__head"},X7={class:"fe-modal__title"},Y7={class:"fe-modal__body"},Z7={key:1,class:"fe-modal__actions"},Cl=qt({__name:"Modal",props:{open:{type:Boolean},title:{},size:{},closeOnBackdrop:{type:Boolean},chromeless:{type:Boolean},theme:{}},emits:["close"],setup(e,{emit:t}){const r=e,n=t,a=de(null);tr(()=>r.open,l=>{l?(document.addEventListener("keydown",i),setTimeout(()=>{var u;const s=(u=a.value)==null?void 0:u.querySelector('input,select,textarea,button,[tabindex]:not([tabindex="-1"])');s==null||s.focus()},30)):document.removeEventListener("keydown",i)}),Br(()=>document.removeEventListener("keydown",i));function i(l){l.key==="Escape"&&n("close")}function o(){r.closeOnBackdrop!==!1&&n("close")}return(l,s)=>(J(),kr(ho,{name:"fe-modal"},{default:Tr(()=>[e.open?(J(),ne("div",{key:0,class:Kt(["fe fe-modal__backdrop",[{"fe-modal__backdrop--chromeless":e.chromeless},e.theme==="light"?"fe--theme-light":"",e.theme==="dark"?"fe--theme-dark":""]]),role:"presentation",onClick:o},[L("div",{ref_key:"cardEl",ref:a,class:Kt(["fe-modal__card",[`fe-modal__card--${e.size||"md"}`,e.chromeless&&"fe-modal__card--chromeless"]]),role:"dialog","aria-modal":"true",onClick:s[1]||(s[1]=gr(()=>{},["stop"]))},[e.title&&!e.chromeless?(J(),ne("header",K7,[L("h2",X7,ie(e.title),1),L("button",{type:"button",class:"fe-modal__close","aria-label":"Close",onClick:s[0]||(s[0]=u=>n("close"))},"×")])):tt("",!0),L("div",Y7,[G1(l.$slots,"default")]),l.$slots.actions&&!e.chromeless?(J(),ne("footer",Z7,[G1(l.$slots,"actions")])):tt("",!0)],2)],2)):tt("",!0)]),_:3}))}}),J7=["placeholder","onKeydown"],Q7={key:0,class:"fe-form__error"},ey=qt({__name:"NewFolderModal",props:{open:{type:Boolean},locale:{}},emits:["close","submit"],setup(e,{emit:t}){const r=e,n=t,{t:a}=vn(()=>r.locale),i=de(""),o=de(null);tr(()=>r.open,s=>{s&&(i.value="",o.value=null)});function l(){const s=i.value.trim();if(!s){o.value=a("modal.newfolder.placeholder");return}if(/[\\/]/.test(s)||s==="."||s===".."){o.value="Geçersiz karakter";return}n("submit",s)}return(s,u)=>(J(),kr(Cl,{open:e.open,title:Le(a)("modal.newfolder.title"),size:"sm",onClose:u[2]||(u[2]=c=>n("close"))},{actions:Tr(()=>[L("button",{type:"button",class:"fe-btn",onClick:u[1]||(u[1]=c=>n("close"))},ie(Le(a)("modal.newfolder.cancel")),1),L("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:l},ie(Le(a)("modal.newfolder.create")),1)]),default:Tr(()=>[L("form",{onSubmit:gr(l,["prevent"])},[ar(L("input",{"onUpdate:modelValue":u[0]||(u[0]=c=>i.value=c),type:"text",class:"fe-input",placeholder:Le(a)("modal.newfolder.placeholder"),autocomplete:"off",onKeydown:pa(gr(l,["prevent"]),["enter"])},null,40,J7),[[un,i.value]]),o.value?(J(),ne("p",Q7,ie(o.value),1)):tt("",!0)],32)]),_:1},8,["open","title"]))}}),ty=["onKeydown"],ry=qt({__name:"RenameModal",props:{open:{type:Boolean},locale:{},currentName:{}},emits:["close","submit"],setup(e,{emit:t}){const r=e,n=t,{t:a}=vn(()=>r.locale),i=de("");tr(()=>[r.open,r.currentName],([l,s])=>{l&&(i.value=s)});function o(){const l=i.value.trim();l&&(/[\\/]/.test(l)||l==="."||l===".."||n("submit",l))}return(l,s)=>(J(),kr(Cl,{open:e.open,title:Le(a)("modal.rename.title"),size:"sm",onClose:s[2]||(s[2]=u=>n("close"))},{actions:Tr(()=>[L("button",{type:"button",class:"fe-btn",onClick:s[1]||(s[1]=u=>n("close"))},ie(Le(a)("modal.rename.cancel")),1),L("button",{type:"button",class:"fe-btn fe-btn--primary",onClick:o},ie(Le(a)("modal.rename.save")),1)]),default:Tr(()=>[L("form",{onSubmit:gr(o,["prevent"])},[ar(L("input",{"onUpdate:modelValue":s[0]||(s[0]=u=>i.value=u),type:"text",class:"fe-input",autocomplete:"off",onKeydown:pa(gr(o,["prevent"]),["enter"])},null,40,ty),[[un,i.value]])],32)]),_:1},8,["open","title"]))}}),ny=qt({__name:"DeleteConfirmModal",props:{open:{type:Boolean},locale:{},count:{}},emits:["close","confirm"],setup(e,{emit:t}){const r=e,n=t,{t:a}=vn(()=>r.locale);return(i,o)=>(J(),kr(Cl,{open:e.open,title:Le(a)("modal.delete.title"),size:"sm",onClose:o[2]||(o[2]=l=>n("close"))},{actions:Tr(()=>[L("button",{type:"button",class:"fe-btn",onClick:o[0]||(o[0]=l=>n("close"))},ie(Le(a)("modal.delete.cancel")),1),L("button",{type:"button",class:"fe-btn fe-btn--danger",onClick:o[1]||(o[1]=l=>n("confirm"))},ie(Le(a)("modal.delete.confirm")),1)]),default:Tr(()=>[L("p",null,ie(Le(a)("modal.delete.message",{count:e.count})),1)]),_:1},8,["open","title"]))}}),ay={class:"fe-form__row"},iy={class:"fe-form__row fe-form__row--stack"},oy={class:"fe-form__row fe-form__row--stack"},ly={key:1,class:"fe-share-result"},sy={class:"fe-share-result__row"},uy={class:"fe-share-result__copy"},cy=["value"],fy={key:0,class:"fe-share-result__row"},dy={class:"fe-share-result__copy"},hy=["value"],py={class:"fe-share-result__row"},vy={class:"fe-share-result__copy"},my=["value"],gy=qt({__name:"ShareModal",props:{open:{type:Boolean},locale:{},share:{}},emits:["close","submit","toast"],setup(e,{emit:t}){const r=e,n=t,{t:a}=vn(()=>r.locale),i=de(!1),o=de(""),l=de("");tr(()=>r.open,f=>{f&&(i.value=!1,o.value="",l.value="")});function s(){n("submit",{password:i.value,expires_at:o.value?new Date(o.value).toISOString():null,max_downloads:l.value?Number(l.value):null})}async function u(f,h){try{await navigator.clipboard.writeText(f),n("toast",h)}catch{}}function c(f){return`'${f.replace(/'/g,"'\\''")}'`}const d=mt(()=>{const f=r.share;if(!f)return"";let h=f.url;return f.password_pin&&(h+=(h.includes("?")?"&":"?")+"pin="+encodeURIComponent(f.password_pin)),`curl -fSL ${f.filename?`-o ${c(f.filename)} `:"-OJ "}${c(h)}`});return(f,h)=>(J(),kr(Cl,{open:e.open,title:Le(a)("modal.share.title"),size:"md",onClose:h[7]||(h[7]=y=>n("close"))},{actions:Tr(()=>[L("button",{type:"button",class:"fe-btn",onClick:h[6]||(h[6]=y=>n("close"))},ie(e.share?"Kapat":Le(a)("modal.share.cancel")),1),e.share?tt("",!0):(J(),ne("button",{key:0,type:"button",class:"fe-btn fe-btn--primary",onClick:s},ie(Le(a)("modal.share.create")),1))]),default:Tr(()=>[e.share?(J(),ne("div",ly,[L("div",sy,[h[8]||(h[8]=L("label",null,"Link",-1)),L("div",uy,[L("input",{value:e.share.url,readonly:"",class:"fe-input"},null,8,cy),L("button",{type:"button",class:"fe-btn",onClick:h[3]||(h[3]=y=>u(e.share.url,Le(a)("modal.share.url_copied")))},ie(Le(a)("modal.share.copy")),1)])]),e.share.password_pin?(J(),ne("div",fy,[h[9]||(h[9]=L("label",null,"PIN",-1)),L("div",dy,[L("input",{value:e.share.password_pin,readonly:"",class:"fe-input fe-input--mono"},null,8,hy),L("button",{type:"button",class:"fe-btn",onClick:h[4]||(h[4]=y=>u(e.share.password_pin,Le(a)("modal.share.pin_copied")))},ie(Le(a)("modal.share.copy")),1)])])):tt("",!0),L("div",py,[h[10]||(h[10]=L("label",null,"CLI",-1)),L("div",vy,[L("input",{value:d.value,readonly:"",class:"fe-input fe-input--mono"},null,8,my),L("button",{type:"button",class:"fe-btn",onClick:h[5]||(h[5]=y=>u(d.value,Le(a)("modal.share.cli_copied")))},ie(Le(a)("modal.share.copy")),1)])])])):(J(),ne("form",{key:0,class:"fe-form",onSubmit:gr(s,["prevent"])},[L("label",ay,[ar(L("input",{"onUpdate:modelValue":h[0]||(h[0]=y=>i.value=y),type:"checkbox"},null,512),[[qs,i.value]]),L("span",null,ie(Le(a)("modal.share.pin")),1)]),L("label",iy,[L("span",null,ie(Le(a)("modal.share.expires")),1),ar(L("input",{"onUpdate:modelValue":h[1]||(h[1]=y=>o.value=y),type:"datetime-local",class:"fe-input"},null,512),[[un,o.value]])]),L("label",oy,[L("span",null,ie(Le(a)("modal.share.max_downloads")),1),ar(L("input",{"onUpdate:modelValue":h[2]||(h[2]=y=>l.value=y),type:"number",min:"1",class:"fe-input"},null,512),[[un,l.value]])])],32))]),_:1},8,["open","title"]))}}),by={key:0,class:"fe-preview"},yy=["src","alt"],xy=["src"],_y=["src"],wy=["data"],ky={class:"fe-preview__fallback"},Sy=["href"],Cy={key:0,class:"fe-preview__fallback"},Ay={key:1,class:"fe-preview__fallback"},Ey=["href"],Ty={key:2,class:"fe-preview__md-split"},My={class:"fe-preview__md-split-bar"},Dy={key:0,class:"fe-preview__md-split-error"},Iy=["disabled"],zy={class:"fe-preview__md-split-body"},Fy=["onKeydown"],Oy=["innerHTML"],Py={key:3,class:"fe-preview__fallback"},Ry=["href"],Ly=["innerHTML"],By={key:5,class:"fe-preview__pre"},Ny={key:0,class:"fe-preview__fallback"},$y=["href"],Uy={key:1,class:"fe-preview__fallback"},Hy={key:0,class:"fe-preview__fallback"},jy={key:1,class:"fe-preview__fallback"},Gy=["href"],Vy={key:2,class:"fe-preview__fallback"},qy=["href"],Wy={key:3,class:"fe-preview__code-wrap"},Ky={class:"fe-preview__code-toolbar"},Xy={class:"fe-preview__code-lang"},Yy={key:0,class:"fe-preview__code-status"},Zy={key:1,class:"fe-preview__code-status fe-preview__code-status--ok"},Jy=["title"],Qy={key:3,class:"fe-preview__code-status"},ex=["disabled"],tx={key:0,class:"fe-preview__pre fe-preview__code hljs"},rx=["innerHTML"],nx=["data-lang"],ax={key:0,class:"fe-preview__fallback"},ix=["href"],ox={key:8,class:"fe-preview__fallback"},lx=["href"],sx=["href"],bc=1e6,dp="fe-onlyoffice-api-js",ux=qt({__name:"PreviewModal",props:{open:{type:Boolean},locale:{},file:{},previewUrl:{type:Function},downloadUrl:{type:Function},onlyOfficeBase:{},onlyOfficeConfigEndpoint:{},saveTextEndpoint:{},openMode:{},authHeaders:{type:Function},authCredentials:{},drawioUrl:{},pdfWorkerUrl:{},pdfSaveUrl:{},viewerBaseUrl:{},chromeless:{type:Boolean},theme:{}},emits:["close"],setup(e,{emit:t}){const r=e,n=t,{t:a}=vn(()=>r.locale);function i(De){return((De==null?void 0:De.extension)||"").toLowerCase()}const o=["jpg","jpeg","png","webp","gif","bmp","avif","svg","heic"],l=["mp4","webm","mov","mkv","m4v","ogv"],s=["mp3","wav","ogg","flac","m4a","aac","opus"],u={md:"markdown",markdown:"markdown",txt:"plaintext",log:"plaintext",js:"javascript",mjs:"javascript",cjs:"javascript",ts:"typescript",tsx:"typescript",jsx:"javascript",vue:"xml",svelte:"xml",html:"xml",htm:"xml",xml:"xml",svg:"xml",css:"css",scss:"scss",sass:"scss",less:"less",json:"json",jsonc:"json",yml:"yaml",yaml:"yaml",php:"php",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",kt:"kotlin",swift:"swift",cpp:"cpp",c:"c",h:"cpp",hpp:"cpp",cs:"csharp",dart:"dart",sh:"bash",bash:"bash",zsh:"bash",fish:"bash",sql:"sql",toml:"ini",ini:"ini",conf:"ini",env:"bash",cfg:"ini",dockerfile:"dockerfile",graphql:"graphql",gql:"graphql",diff:"diff",patch:"diff"},c=["txt","log"],d=["docx","doc","xlsx","xls","pptx","ppt","odt","ods","odp","rtf"],f={glb:()=>Promise.resolve().then(()=>vo),gltf:()=>Promise.resolve().then(()=>vo),obj:()=>Promise.resolve().then(()=>vo),stl:()=>Promise.resolve().then(()=>vo),fbx:()=>Promise.resolve().then(()=>vo),"3ds":()=>Promise.resolve().then(()=>vo),epub:()=>Promise.resolve().then(()=>Rw),mmd:()=>Promise.resolve().then(()=>yp),mermaid:()=>Promise.resolve().then(()=>yp),drawio:()=>Promise.resolve().then(()=>xp),dio:()=>Promise.resolve().then(()=>xp),tif:()=>Promise.resolve().then(()=>_p),tiff:()=>Promise.resolve().then(()=>_p),psd:()=>Promise.resolve().then(()=>t9),ipynb:()=>Promise.resolve().then(()=>y9),csv:()=>Promise.resolve().then(()=>kp),tsv:()=>Promise.resolve().then(()=>kp),zip:()=>Promise.resolve().then(()=>U9)},h=mt(()=>{const De=i(r.file);if(!De)return"other";if(o.includes(De))return"image";if(l.includes(De))return"video";if(s.includes(De))return"audio";if(De==="pdf")return"pdf";const D=r.openMode!=="view";return De==="md"||De==="markdown"?"markdown":De in u?"code":De in f?"viewer":d.includes(De)?"office":c.includes(De)?D?"code":"text":"other"}),y=Db(null),p=de(null),x=de(!1);async function b(De){y.value=null,p.value=null;const D=f[De];if(D)try{const se=await D();y.value=se.default??se}catch(se){p.value=se instanceof Error?se.message:"viewer load failed",De==="pdf"&&(x.value=!0)}}function v(){x.value=!0}const g=mt(()=>{var se;const De=i(r.file),D={url:E.value,ext:De,mime:(se=r.file)==null?void 0:se.mime_type,t:a,authHeaders:r.authHeaders,authCredentials:r.authCredentials};return r.file&&(D.filePath=z(r.file.path),(De==="zip"||De==="rar"||De==="7z"||De==="tar"||De==="gz"||De==="tgz")&&(D.filePath=r.file.path)),(De==="drawio"||De==="dio")&&(D.drawioUrl=r.drawioUrl??void 0,D.saveUrl=r.saveTextEndpoint??void 0,D.readOnly=r.openMode==="view"),De==="pdf"&&(D.pdfWorkerUrl=r.pdfWorkerUrl??void 0,D.pdfSaveUrl=r.pdfSaveUrl??void 0),D});function m(){A(r.openMode||"edit")}function C(){A("edit")}function A(De){if(!r.file)return;const D=i(r.file),se=r.viewerBaseUrl||"/files/edit",ke=se.includes("?")?"&":"?",Fe=`${se}${ke}path=${encodeURIComponent(r.file.path)}&type=${encodeURIComponent(D)}&mode=${encodeURIComponent(De)}`;window.open(Fe,"_blank","noopener")}const S=new Set(["docx","doc","xlsx","xls","pptx","ppt","odt","ods","odp","rtf","drawio","dio","mmd","mermaid","md","markdown","txt","log","json","jsonc","yaml","yml","xml","svg","html","htm","js","mjs","cjs","ts","tsx","jsx","vue","svelte","css","scss","sass","less","php","py","rb","go","rs","java","kt","swift","cpp","c","h","hpp","cs","dart","sh","bash","sql","toml","ini","conf","cfg","env","dockerfile","graphql","gql"]),_=mt(()=>!!r.file&&S.has(i(r.file))),E=mt(()=>r.file?r.previewUrl(r.file.path):""),M=mt(()=>r.file?r.downloadUrl(r.file.path):"");function z(De){const D=De.indexOf("://");return D===-1?De:De.slice(D+3)}const N=de(!1),R=de(null),V=de(""),X=de(!1),j=de(!1),Y=de(!1);let te,ae;function _e(){j.value=!0,te&&clearTimeout(te),te=setTimeout(()=>{Ce(V.value)},250),ae&&clearTimeout(ae),ae=setTimeout(()=>{pe()},1500)}async function pe(){if(!(!r.saveTextEndpoint||!r.file||Y.value)){Y.value=!0,R.value=null;try{const De={"Content-Type":"application/json",...await(r.authHeaders??(()=>({})))()},D=await fetch(r.saveTextEndpoint,{method:"POST",headers:De,credentials:r.authCredentials||"same-origin",body:JSON.stringify({path:z(r.file.path),content:V.value})});if(!D.ok)throw new Error(`save failed: ${D.status} ${await D.text()}`);j.value=!1}catch(De){R.value=De instanceof Error?De.message:String(De)}finally{Y.value=!1}}}async function ye(De){N.value=!0,R.value=null,V.value="",X.value=!1;try{const D={};r.authHeaders&&Object.assign(D,r.authHeaders());const se=await fetch(De,{credentials:r.authCredentials||"include",headers:D});if(!se.ok)throw new Error(`${se.status} ${se.statusText}`);if(Number(se.headers.get("content-length")||"0")>bc){X.value=!0;return}const Fe=await se.text();Fe.length>bc?(X.value=!0,V.value=Fe.slice(0,bc)):V.value=Fe}catch(D){R.value=D instanceof Error?D.message:String(D)}finally{N.value=!1}}const ve=de(""),Me=de(null);async function Ce(De){try{const D=await import("markdown-it").catch(()=>null);if(!D){ve.value="";return}const se=D.default??D,Fe=new se({html:!0,linkify:!0,breaks:!0,typographer:!0}).render(De);ve.value=ze(Fe),await new Promise(re=>setTimeout(re,0)),await Be()}catch(D){ve.value="",R.value=D instanceof Error?D.message:String(D)}}function ze(De){return De.replace(/<\s*script\b[^<]*(?:(?!<\s*\/\s*script\s*>)<[^<]*)*<\s*\/\s*script\s*>/gi,"").replace(/<\s*iframe\b[\s\S]*?<\s*\/\s*iframe\s*>/gi,"").replace(/<\s*object\b[\s\S]*?<\s*\/\s*object\s*>/gi,"").replace(/<\s*embed\b[^>]*>/gi,"").replace(/\son\w+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi,"").replace(/(href|src|action|formaction|xlink:href)\s*=\s*(?:"\s*javascript:[^"]*"|'\s*javascript:[^']*')/gi,'$1="#"')}async function Be(){var Fe,re,xe;if(!Me.value)return;const De=Me.value,D=Array.from(De.querySelectorAll("pre > code"));if(D.length===0)return;let se,ke;for(const F of D){const Te=F.className||"",bt=/\blanguage-mermaid\b/.test(Te)||/\blanguage-mmd\b/.test(Te),k=/\blanguage-math\b/.test(Te)||/\blanguage-latex\b/.test(Te)||/\blanguage-tex\b/.test(Te);if(bt){if(se===void 0)try{const W=await import("mermaid");se=W.default??W,(Fe=se.initialize)==null||Fe.call(se,{startOnLoad:!1,securityLevel:"strict"})}catch{se=null}if(!se)continue;try{const W=`filex-md-mermaid-${Math.random().toString(36).slice(2)}`,{svg:q}=await se.render(W,F.textContent||""),I=document.createElement("div");I.className="fe-preview__md-mermaid",I.innerHTML=q,(re=F.parentElement)==null||re.replaceWith(I)}catch{}}else if(k){if(ke===void 0)try{const W=await Promise.resolve().then(()=>CS);ke=W.default??W}catch{ke=null}if(!ke)continue;try{const W=ke.renderToString(F.textContent||"",{displayMode:!0,throwOnError:!1}),q=document.createElement("div");q.className="fe-preview__md-math",q.innerHTML=W,(xe=F.parentElement)==null||xe.replaceWith(q)}catch{}}}}const Ee=de("");async function Ne(De,D){try{const se=await cp();if(!se){Ee.value="";return}const ke=se.default??se;if(ke.getLanguage(D)){const Fe=ke.highlight(De,{language:D,ignoreIllegals:!0});Ee.value=Fe.value}else{const Fe=ke.highlightAuto(De);Ee.value=Fe.value}}catch(se){Ee.value="",R.value=se instanceof Error?se.message:String(se)}}const ge=de(null);let be=null,P;const $=de(!1),fe=de(!1),he=de(!1),le=de(null);function oe(){if(be){try{be.dispose()}catch{}be=null}$.value=!1,he.value=!1,le.value=null}function ue(De){return{js:"javascript",mjs:"javascript",cjs:"javascript",ts:"typescript",tsx:"typescript",jsx:"javascript",json:"json",jsonc:"json",css:"css",scss:"scss",sass:"scss",less:"less",html:"html",htm:"html",vue:"html",svelte:"html",xml:"xml",svg:"xml",md:"markdown",markdown:"markdown",php:"php",py:"python",yml:"yaml",yaml:"yaml",go:"go",rs:"rust",sql:"sql",cpp:"cpp",c:"c",h:"cpp",hpp:"cpp",sh:"shell",bash:"shell",dockerfile:"dockerfile",toml:"ini",ini:"ini",conf:"ini",cfg:"ini"}[De]??"plaintext"}async function me(De,D){var ke;const se=await up();if(!se||!ge.value)return!1;try{oe();const Fe=!!r.saveTextEndpoint&&r.openMode!=="view",re=r.theme==="dark"?!0:r.theme==="light"?!1:(ke=window.matchMedia)==null?void 0:ke.call(window,"(prefers-color-scheme: dark)").matches;return be=se.editor.create(ge.value,{value:De,language:ue(D),readOnly:!Fe,theme:re?"vs-dark":"vs",automaticLayout:!0,minimap:{enabled:!1},fontSize:13}),Fe&&(be.addCommand(se.KeyMod.CtrlCmd|se.KeyCode.KeyS,()=>void Se()),be.onDidChangeModelContent(()=>{P&&clearTimeout(P),P=setTimeout(()=>{Se()},1500)})),$.value=!0,!0}catch(Fe){return R.value=`Monaco mount fail: ${Fe.message}`,!1}}async function Se(){if(!(!r.saveTextEndpoint||!r.file)&&r.openMode!=="view"&&!fe.value){fe.value=!0,he.value=!1,le.value=null;try{const De=be?be.getValue():"",D={"Content-Type":"application/json"};r.authHeaders&&Object.assign(D,r.authHeaders());const se=await fetch(r.saveTextEndpoint,{method:"POST",headers:D,credentials:r.authCredentials||"same-origin",body:JSON.stringify({path:z(r.file.path),content:De})});if(!se.ok){const ke=await se.text().catch(()=>"");throw new Error(`${se.status} ${se.statusText}${ke?" — "+ke.slice(0,150):""}`)}he.value=!0,setTimeout(()=>{he.value=!1},2500)}catch(De){le.value=De.message}finally{fe.value=!1}}}async function we(De,D,se){if(V.value="",ve.value="",Ee.value="",R.value=null,$e.value=null,y.value=null,p.value=null,x.value=!1,ct(),oe(),!(!De||!D)){if(se==="viewer"){await b(i(r.file));return}if(se==="markdown"||se==="code"||se==="text"){if(await ye(D),X.value)return;if(se==="markdown"){await Ce(V.value);return}const ke=u[i(r.file)]||"";e8()?(await new Promise(xe=>setTimeout(xe,0)),await me(V.value,i(r.file))||await Ne(V.value,ke)):(se==="code"&&await Ne(V.value,ke),up().then(async re=>{re&&r.open&&(await new Promise(xe=>setTimeout(xe,0)),await me(V.value,i(r.file)))}))}else se==="office"&&(await new Promise(ke=>setTimeout(ke,0)),await it())}}tr(()=>[r.open,E.value,h.value,r.openMode],([De,D,se])=>{we(De,D,se)}),vr(()=>{Ia(()=>{r.open&&we(r.open,E.value,h.value)})});const Ve=mt(()=>u[i(r.file)]||"plaintext"),He=de(null),$e=de(null);let Xe=null;async function it(){if($e.value=null,!(!r.file||h.value!=="office")){if(!r.onlyOfficeConfigEndpoint){$e.value="OnlyOffice yapılandırması yok";return}if(He.value)try{const De={"Content-Type":"application/json"};r.authHeaders&&Object.assign(De,r.authHeaders());const D=await fetch(r.onlyOfficeConfigEndpoint,{method:"POST",headers:De,credentials:r.authCredentials||"same-origin",body:JSON.stringify({path:r.file.path,mode:r.openMode||"edit"})});if(!D.ok)throw new Error(`Config fetch ${D.status}: ${(await D.text()).slice(0,200)}`);const{config:se,documentServerUrl:ke}=await D.json();await xt(ke),ct();const Fe="fe-onlyoffice-mount";He.value.id=Fe,se.events={onError:xe=>{$e.value=ot(xe)}};const re=window;if(!re.DocsAPI||!re.DocsAPI.DocEditor)throw new Error("DocsAPI not available after script load");Xe=new re.DocsAPI.DocEditor(Fe,se)}catch(De){$e.value=De instanceof Error?De.message:String(De)}}}function ct(){var De;try{(De=Xe==null?void 0:Xe.destroyEditor)==null||De.call(Xe)}catch{}Xe=null}Br(()=>{ct(),oe()});function ot(De){if(typeof De=="string")return De;const D=De;if(D!=null&&D.data&&typeof D.data=="object"){const se=D.data;if(typeof se.errorDescription=="string")return se.errorDescription;if(typeof se.message=="string")return se.message;if(se.errorCode!==void 0)return`OnlyOffice error ${se.errorCode}`}if(typeof(D==null?void 0:D.data)=="string")return D.data;if(typeof(D==null?void 0:D.errorDescription)=="string")return D.errorDescription;if(typeof(D==null?void 0:D.message)=="string")return D.message;try{return JSON.stringify(De)}catch{return"OnlyOffice error"}}function xt(De){return new Promise((D,se)=>{var re;if((re=window.DocsAPI)!=null&&re.DocEditor){D();return}const ke=document.getElementById(dp);if(ke){ke.addEventListener("load",()=>D()),ke.addEventListener("error",()=>se(new Error("OnlyOffice api.js load failed")));return}const Fe=document.createElement("script");Fe.id=dp,Fe.src=`${De.replace(/\/$/,"")}/web-apps/apps/api/documents/api.js`,Fe.async=!0,Fe.onload=()=>D(),Fe.onerror=()=>se(new Error("OnlyOffice api.js load failed")),document.head.appendChild(Fe)})}return(De,D)=>{var se;return J(),kr(Cl,{open:e.open,size:"xl",title:((se=e.file)==null?void 0:se.basename)||"",chromeless:e.chromeless,theme:e.theme,onClose:D[2]||(D[2]=ke=>n("close"))},{actions:Tr(()=>[e.file&&e.openMode==="view"&&_.value?(J(),ne("button",{key:0,type:"button",class:"fe-btn fe-btn--primary",onClick:C},"✏ "+ie(Le(a)("viewer.edit")),1)):tt("",!0),e.file?(J(),ne("button",{key:1,type:"button",class:"fe-btn",onClick:m},"↗ "+ie(Le(a)("viewer.open_in_new_tab")),1)):tt("",!0),e.file?(J(),ne("a",{key:2,href:M.value,class:"fe-btn"},ie(Le(a)("viewer.download")),9,sx)):tt("",!0),L("button",{type:"button",class:"fe-btn",onClick:D[1]||(D[1]=ke=>n("close"))},ie(Le(a)("viewer.close")),1)]),default:Tr(()=>[e.file?(J(),ne("div",by,[h.value==="image"?(J(),ne("img",{key:0,src:E.value,alt:e.file.basename,class:"fe-preview__image"},null,8,yy)):h.value==="video"?(J(),ne("video",{key:1,src:E.value,controls:"",preload:"metadata",class:"fe-preview__video"},null,8,xy)):h.value==="audio"?(J(),ne("audio",{key:2,src:E.value,controls:"",class:"fe-preview__audio"},null,8,_y)):h.value==="pdf"?(J(),ne("object",{key:3,data:E.value,type:"application/pdf",class:"fe-preview__iframe"},[L("div",ky,[D[3]||(D[3]=L("span",{class:"fe-preview__fallback-icon"},"📕",-1)),D[4]||(D[4]=L("p",null,"Tarayıcı PDF'i inline açamadı.",-1)),L("a",{href:M.value,class:"fe-btn fe-btn--primary",target:"_blank",rel:"noopener"},"PDF'i Yeni Sekmede Aç",8,Sy)])],8,wy)):h.value==="markdown"?(J(),ne(gt,{key:4},[N.value?(J(),ne("div",Cy,ie(Le(a)("viewer.loading")),1)):X.value?(J(),ne("div",Ay,[D[5]||(D[5]=mr(" Dosya çok büyük (>1 MB). ",-1)),L("a",{href:M.value,class:"fe-btn"},ie(Le(a)("viewer.download")),9,Ey)])):e.openMode==="edit"&&e.saveTextEndpoint?(J(),ne("div",Ty,[L("div",My,[D[6]||(D[6]=L("span",{class:"fe-preview__md-split-label"},"MARKDOWN",-1)),R.value?(J(),ne("span",Dy,ie(R.value),1)):tt("",!0),L("button",{type:"button",class:"fe-btn fe-btn--primary",disabled:!j.value||Y.value,onClick:pe},ie(Y.value?Le(a)("viewer.saving"):j.value?Le(a)("viewer.save"):Le(a)("viewer.saved")),9,Iy)]),L("div",zy,[ar(L("textarea",{class:"fe-preview__md-split-input","onUpdate:modelValue":D[0]||(D[0]=ke=>V.value=ke),onInput:_e,onKeydown:[pa(gr(pe,["ctrl","prevent"]),["s"]),pa(gr(pe,["meta","prevent"]),["s"])],spellcheck:"false",placeholder:"# Markdown buraya…"},null,40,Fy),[[un,V.value]]),L("div",{ref_key:"markdownEl",ref:Me,class:"fe-preview__md-split-output fe-preview__md",innerHTML:ve.value},null,8,Oy)])])):R.value?(J(),ne("div",Py,[L("p",null,ie(R.value),1),L("a",{href:M.value,class:"fe-btn fe-btn--primary"},ie(Le(a)("viewer.download")),9,Ry)])):ve.value?(J(),ne("div",{key:4,ref_key:"markdownEl",ref:Me,class:"fe-preview__md",innerHTML:ve.value},null,8,Ly)):(J(),ne("pre",By,ie(V.value),1))],64)):h.value==="viewer"?(J(),ne(gt,{key:5},[p.value&&!x.value?(J(),ne("div",Ny,[D[7]||(D[7]=L("span",{class:"fe-preview__fallback-icon"},"⚠️",-1)),L("p",null,ie(p.value),1),L("a",{href:M.value,class:"fe-btn fe-btn--primary"},ie(Le(a)("viewer.download")),9,$y)])):y.value?(J(),kr(d5(y.value),bh({key:2},g.value,{class:"fe-preview__viewer",onFallback:v}),null,16)):(J(),ne("div",Uy,[D[8]||(D[8]=L("span",{class:"fe-preview__fallback-icon"},"⏳",-1)),L("p",null,ie(Le(a)("viewer.loading")),1)]))],64)):h.value==="code"||h.value==="text"?(J(),ne(gt,{key:6},[N.value?(J(),ne("div",Hy,ie(Le(a)("viewer.loading")),1)):X.value?(J(),ne("div",jy,[D[9]||(D[9]=mr(" Dosya çok büyük (>1 MB). ",-1)),L("a",{href:M.value,class:"fe-btn"},ie(Le(a)("viewer.download")),9,Gy)])):R.value?(J(),ne("div",Vy,[L("p",null,ie(R.value),1),L("a",{href:M.value,class:"fe-btn fe-btn--primary"},ie(Le(a)("viewer.download")),9,qy)])):(J(),ne("div",Wy,[L("div",Ky,[L("span",Xy,ie(Ve.value),1),!$.value&&Ee.value?(J(),ne("span",Yy,ie(e.saveTextEndpoint?Le(a)("viewer.editor_loading"):Le(a)("viewer.read_only")),1)):tt("",!0),he.value?(J(),ne("span",Zy,"✓ "+ie(Le(a)("viewer.saved")),1)):tt("",!0),le.value?(J(),ne("span",{key:2,class:"fe-preview__code-status fe-preview__code-status--err",title:le.value},"✗ "+ie(Le(a)("viewer.save_error")),9,Jy)):tt("",!0),e.openMode==="view"?(J(),ne("span",Qy,ie(Le(a)("viewer.read_only")),1)):e.saveTextEndpoint&&$.value?(J(),ne("button",{key:4,type:"button",class:"fe-btn fe-btn--primary",disabled:fe.value,onClick:Se},ie(fe.value?Le(a)("viewer.saving"):Le(a)("viewer.save")),9,ex)):tt("",!0)]),L("div",{ref_key:"monacoEl",ref:ge,class:Kt(["fe-preview__code-editor",{"is-hidden":!$.value}])},null,2),!$.value&&Ee.value?(J(),ne("pre",tx,[L("code",{class:Kt(`language-${Ve.value}`),innerHTML:Ee.value},null,10,rx)])):!$.value&&!Ee.value?(J(),ne("pre",{key:1,class:"fe-preview__pre","data-lang":Ve.value},ie(V.value),9,nx)):tt("",!0)]))],64)):h.value==="office"?(J(),ne(gt,{key:7},[$e.value?(J(),ne("div",ax,[D[10]||(D[10]=L("span",{class:"fe-preview__fallback-icon"},"📄",-1)),L("p",null,ie($e.value),1),L("a",{href:M.value,class:"fe-btn fe-btn--primary"},ie(Le(a)("viewer.download")),9,ix)])):(J(),ne("div",{key:1,ref_key:"officeEl",ref:He,class:"fe-preview__office"},null,512))],64)):(J(),ne("div",ox,[D[11]||(D[11]=L("span",{class:"fe-preview__fallback-icon"},"📎",-1)),L("p",null,ie(Le(a)("viewer.no_preview")),1),L("a",{href:M.value,class:"fe-btn fe-btn--primary"},ie(Le(a)("viewer.download")),9,lx)]))])):tt("",!0)]),_:1},8,["open","title","chromeless","theme"])}}}),cx={class:"filex-cv"},fx={class:"filex-cv__head"},dx={key:0,class:"filex-cv__msg"},hx={key:1,class:"filex-cv__msg filex-cv__ok"},px={class:"filex-cv__src"},vx=["placeholder"],mx={class:"filex-cv__list"},gx=["onClick"],bx={key:0,class:"filex-cv__empty"},yx={key:0,class:"filex-cv__err"},xx={class:"filex-cv__foot"},_x=["disabled"],wx=["src"],kx=Jr(qt({__name:"ConvertModal",props:{convertUrl:{},fileName:{},fetchBytes:{type:Function},upload:{type:Function},t:{type:Function}},emits:["close","done"],setup(e,{emit:t}){const r=e,n=t,a=de(null),i=de("loading"),o=de(null),l=de([]),s=de(""),u=de(null),c=mt(()=>(r.fileName.split(".").pop()||"").toLowerCase()),d=mt(()=>{const C=l.value.filter(A=>A.from);return C.find(A=>(A.ext||"").toLowerCase()===c.value)||C.find(A=>(A.format||"").toLowerCase()===c.value)||null}),f=mt(()=>{const C=s.value.trim().toLowerCase(),A=new Set,S=[];for(const _ of l.value){if(!_.to)continue;const E=(_.ext||_.format||"").toLowerCase();!E||A.has(E)||(A.add(E),S.push(_))}return S.sort((_,E)=>(_.ext||_.format).localeCompare(E.ext||E.format)),C?S.filter(_=>(_.ext||"").toLowerCase().includes(C)||(_.format||"").toLowerCase().includes(C)||(_.name||"").toLowerCase().includes(C)||(_.mime||"").toLowerCase().includes(C)):S}),h=mt(()=>`${r.convertUrl.replace(/\/$/,"")}/?embed=1`);let y=0;const p=new Map;function x(C,A={},S=[]){const _=++y;return new Promise((E,M)=>{var z,N;p.set(_,{resolve:E,reject:M}),(N=(z=a.value)==null?void 0:z.contentWindow)==null||N.postMessage({target:"convert-embed",id:_,cmd:C,...A},"*",S),setTimeout(()=>{p.has(_)&&(p.delete(_),M(new Error("convert timeout")))},18e4)})}function b(C){const A=C.data;if(!A||A.source!=="convert-embed")return;if(A.event==="ready"){v();return}const S=p.get(A.id);S&&(p.delete(A.id),A.ok?S.resolve(A):S.reject(new Error(A.error||"convert error")))}async function v(){try{const C=await x("listFormats");l.value=C.formats||[],i.value="ready",d.value||(o.value=m("convert.unsupportedInput","Bu dosya tipi için kaynak format bulunamadı."))}catch(C){o.value=C.message,i.value="error"}}async function g(){if(!(!u.value||!d.value)){i.value="converting",o.value=null;try{const C=await r.fetchBytes(),A=await x("convert",{name:r.fileName,bytes:C,fromIndex:d.value.index,toIndex:u.value.index},[C]),S=r.fileName.replace(/\.[^.]+$/,""),_=A.ext||u.value.ext||u.value.format,E=`${S}.${_}`,M=new File([A.bytes],E,{type:u.value.mime||"application/octet-stream"});await r.upload(M),i.value="done",n("done",E)}catch(C){o.value=C.message,i.value="error"}}}function m(C,A){return r.t?r.t(C,A):A}return vr(()=>window.addEventListener("message",b)),Br(()=>window.removeEventListener("message",b)),(C,A)=>(J(),ne("div",{class:"filex-cv__bg",onClick:A[3]||(A[3]=gr(S=>n("close"),["self"]))},[L("div",cx,[L("header",fx,[L("h3",null,ie(m("convert.title","Dönüştür"))+" — "+ie(e.fileName),1),L("button",{class:"filex-cv__x",onClick:A[0]||(A[0]=S=>n("close"))},"✕")]),i.value==="loading"?(J(),ne("div",dx,ie(m("convert.loading","Dönüştürücü yükleniyor…")),1)):i.value==="done"?(J(),ne("div",hx,[L("p",null,"✓ "+ie(m("convert.done","Dönüştürüldü ve klasöre yüklendi.")),1),L("button",{class:"filex-cv__convert",onClick:A[1]||(A[1]=S=>n("close"))},ie(m("convert.close","Kapat")),1)])):(J(),ne(gt,{key:2},[L("p",px,[mr(ie(m("convert.from","Kaynak"))+": ",1),L("b",null,ie(c.value||"?"),1)]),ar(L("input",{"onUpdate:modelValue":A[2]||(A[2]=S=>s.value=S),class:"filex-cv__search",placeholder:m("convert.searchFmt","Hedef format ara (pdf, mp4, png…)")},null,8,vx),[[un,s.value]]),L("div",mx,[(J(!0),ne(gt,null,rr(f.value,S=>{var _;return J(),ne("button",{key:S.index,class:Kt(["filex-cv__fmt",{"is-sel":((_=u.value)==null?void 0:_.index)===S.index}]),onClick:E=>u.value=S},[L("b",null,ie((S.ext||S.format).toUpperCase()),1),L("small",null,ie(S.name),1)],10,gx)}),128)),f.value.length===0?(J(),ne("div",bx,ie(m("convert.noFmt","Eşleşen format yok.")),1)):tt("",!0)]),o.value?(J(),ne("div",yx,ie(o.value),1)):tt("",!0),L("footer",xx,[L("button",{class:"filex-cv__convert",disabled:!u.value||!d.value||i.value==="converting",onClick:g},ie(i.value==="converting"?m("convert.converting","Dönüştürülüyor…"):m("convert.convert","Dönüştür")),9,_x)])],64)),L("iframe",{ref_key:"iframeRef",ref:a,src:h.value,class:"filex-cv__frame",title:"converter"},null,8,wx)])]))}}),[["__scopeId","data-v-dfaf8d90"]]),Sx={class:"fx-perm-modal"},Cx={class:"fx-perm-head"},Ax={class:"fx-perm-title"},Ex={class:"fx-perm-ico","aria-hidden":"true"},Tx={class:"fx-perm-titletext"},Mx=["title"],Dx={class:"fx-perm-subdim"},Ix={class:"fx-perm-tabs"},zx={class:"fx-perm-body"},Fx={key:0,class:"fx-perm-warn"},Ox={key:1,class:"fx-perm-warn"},Px={key:2,class:"fx-perm-muted"},Rx={class:"fx-perm-addcard"},Lx={class:"fx-perm-add"},Bx={class:"fx-perm-emailwrap"},Nx=["placeholder"],$x={key:0,class:"fx-perm-suggest"},Ux=["onMousedown"],Hx={class:"fx-perm-suggest-av"},jx={class:"fx-perm-suggest-txt"},Gx={class:"fx-perm-suggest-name"},Vx={class:"fx-perm-suggest-meta"},qx=["title"],Wx=["value"],Kx=["disabled"],Xx={key:0,class:"fx-perm-invite"},Yx={class:"fx-perm-muted"},Zx={class:"fx-perm-invite-actions"},Jx={class:"fx-perm-invite-row"},Qx={value:"user"},e_={value:"viewer"},t_=["disabled"],r_=["disabled"],n_={key:1,class:"fx-perm-notice"},a_={key:2,class:"fx-perm-reveal"},i_={class:"fx-perm-section"},o_={key:0,class:"fx-perm-empty"},l_={class:"fx-perm-av"},s_=["title"],u_=["value","onChange"],c_=["value"],f_=["disabled","title","onClick"],d_={class:"fx-perm-av fx-perm-av--dim"},h_=["title"],p_={class:"fx-perm-badge"},v_=["title"],m_={class:"fx-perm-addcard"},g_={class:"fx-perm-share-opts"},b_={class:"fx-perm-check"},y_={class:"fx-perm-expiry"},x_={class:"fx-perm-muted"},__=["value"],w_=["disabled"],k_={key:0,class:"fx-perm-warn"},S_={key:1,class:"fx-perm-result"},C_={class:"fx-perm-linkrow"},A_=["href"],E_={key:0,class:"fx-perm-pin"},T_={class:"fx-perm-mailrow"},M_=["placeholder"],D_=["disabled"],I_={key:1,class:"fx-perm-notice"},z_={key:2,class:"fx-perm-hint"},F_={class:"fx-perm-section"},O_={key:0,class:"fx-perm-empty"},P_=["title"],R_=["onClick"],L_=["disabled","title","onClick"],B_={key:2,class:"fx-perm-addcard"},N_={class:"fx-perm-muted fx-perm-dropintro"},$_={class:"fx-perm-share-opts"},U_={class:"fx-perm-check"},H_={class:"fx-perm-expiry"},j_={class:"fx-perm-muted"},G_=["value"],V_=["disabled"],q_={key:0,class:"fx-perm-adv"},W_={class:"fx-perm-adv-row"},K_={class:"fx-perm-muted"},X_={class:"fx-perm-adv-row"},Y_={class:"fx-perm-muted"},Z_={class:"fx-perm-adv-row"},J_={class:"fx-perm-muted"},Q_=["placeholder"],ew={class:"fx-perm-check"},tw={key:1,class:"fx-perm-warn"},rw={key:2,class:"fx-perm-result"},nw={class:"fx-perm-linkrow"},aw=["href"],iw={key:0,class:"fx-perm-pin"},ow={class:"fx-perm-mailrow"},lw=["placeholder"],sw=["disabled"],uw={key:1,class:"fx-perm-notice"},cw=Jr(qt({__name:"PermissionsModal",props:{api:{},path:{},isDir:{type:Boolean},size:{},locale:{}},emits:["close"],setup(e,{emit:t}){const r=e,n=t,a=mt(()=>(r.locale??"tr")!=="en");function i(W,q){return a.value?W:q}const o=mt(()=>{const W=/^([^:]+):\/\/(.*)$/.exec(r.path),q=W?W[1]:"",I=W?W[2]:r.path,Q=I.split("/").filter(Boolean);return{adapter:q,name:Q.length?Q[Q.length-1]:q,rel:I}}),l=de("perms"),s=de(!1),u=de(!0),c=de(""),d=de([]),f=de([]),h=de(!0),y=de(""),p=de("viewer"),x=de(!1),b=de(""),v=de(!1),g=de("user"),m=de(null),C=de([]),A=de(!1);let S;const _=[{v:"viewer",l:i("Görüntüleyen","Viewer"),d:i("görüntüle + indir","view + download")},{v:"editor",l:i("Düzenleyen","Editor"),d:i("oku + yaz + sil","read + write + delete")},{v:"owner",l:i("Sahip","Owner"),d:i("düzenle + izin yönet","edit + manage access")}];function E(W){var q;return((q=_.find(I=>I.v===W))==null?void 0:q.l)??W}const M=de([]),z=de(!1),N=de(!1),R=de(0),V=de(null),X=de(""),j=de(""),Y=de(""),te=de(!1),ae=de(""),_e=[{v:0,l:i("Süresiz","Never")},{v:1,l:i("1 gün","1 day")},{v:7,l:i("7 gün","7 days")},{v:30,l:i("30 gün","30 days")}],pe=de(!1),ye=de(0),ve=de(!1),Me=de(""),Ce=de(""),ze=de(""),Be=de(!0),Ee=de(!1),Ne=de(""),ge=de(null),be=de(""),P=de(!1),$=de("");function fe(W){const q=new Set,I=[];for(const Q of W.split(/[,;\s]+/)){const K=Q.trim().toLowerCase();K&&K.includes("@")&&!q.has(K)&&(q.add(K),I.push(K))}return I}function he(W){var Q,K;const q=((Q=W.sent)==null?void 0:Q.length)??0,I=((K=W.failed)==null?void 0:K.length)??0;return I===0?i(`E-posta gönderildi ✓ (${q})`,`Email sent ✓ (${q})`):i(`${q} gönderildi, ${I} başarısız`,`${q} sent, ${I} failed`)}async function le(){u.value=!0,c.value="";try{const W=await r.api.listPermissions(r.path);d.value=W.direct??[],f.value=W.inherited??[],h.value=W.storage_rbac,s.value=!0}catch(W){W.status===403?(s.value=!1,l.value="share"):c.value=W instanceof Error?W.message:String(W)}finally{u.value=!1}}async function oe(){try{const W=await r.api.listShares(r.path);M.value=W.shares??[]}catch{M.value=[]}}vr(async()=>{await le(),await oe()}),Br(()=>{S&&clearTimeout(S)});function ue(){v.value=!1,m.value=null,b.value="";const W=y.value.trim();if(S&&clearTimeout(S),W.length<1){C.value=[],A.value=!1;return}S=setTimeout(async()=>{try{const q=await r.api.searchUsers(W);C.value=q.users??[],A.value=C.value.length>0}catch{A.value=!1}},180)}async function me(W){A.value=!1,y.value=W.email;let q=p.value;W.role==="viewer"&&q!=="viewer"&&(q="viewer"),x.value=!0,b.value="";try{await r.api.addPermission({path:r.path,user_id:W.id,level:q,is_dir:!!r.isDir}),y.value="",C.value=[],await le(),b.value=i("Yetki verildi.","Access granted.")}catch(I){b.value=I instanceof Error?I.message:String(I)}finally{x.value=!1}}async function Se(){const W=y.value.trim().toLowerCase();if(!W||!W.includes("@")){b.value=i("Geçerli bir e-posta girin.","Enter a valid email.");return}A.value=!1,x.value=!0,b.value="",m.value=null;try{const q=await r.api.resolveEmail(W);if(q.found&&q.user){let I=p.value;q.user.role==="viewer"&&I!=="viewer"&&(I="viewer"),await r.api.addPermission({path:r.path,user_id:q.user.id,level:I,is_dir:!!r.isDir}),y.value="",await le(),b.value=i("Yetki verildi.","Access granted.")}else v.value=!0}catch(q){b.value=q instanceof Error?q.message:String(q)}finally{x.value=!1}}async function we(){x.value=!0,b.value="";try{const W=await r.api.invitePermission({path:r.path,email:y.value.trim().toLowerCase(),level:p.value,create_user:!0,role:g.value,is_dir:!!r.isDir,locale:r.locale??"tr"});m.value={tempPassword:W.temp_password},b.value=W.emailed?i("Kullanıcı açıldı, davet e-postası gönderildi.","User created, invite emailed."):i("Kullanıcı açıldı. Geçici parolayı iletin.","User created. Share the temp password."),v.value=!1,y.value="",await le()}catch(W){b.value=W instanceof Error?W.message:String(W)}finally{x.value=!1}}function Ve(){Y.value=y.value.trim().toLowerCase(),v.value=!1,b.value="",l.value="share"}async function He(W,q){if(q!==W.level){x.value=!0;try{await r.api.updatePermission(W.id,q),await le()}catch(I){b.value=I instanceof Error?I.message:String(I)}finally{x.value=!1}}}async function $e(W){x.value=!0;try{await r.api.deletePermission(W.id),await le()}catch(q){b.value=q instanceof Error?q.message:String(q)}finally{x.value=!1}}function Xe(W){return W.user_display_name||W.user_email||`#${W.user_id}`}function it(W){return(W.user_display_name||W.user_email||"?").charAt(0).toUpperCase()}function ct(){return R.value?new Date(Date.now()+R.value*864e5).toISOString():null}async function ot(){z.value=!0,X.value="",V.value=null,ae.value="";try{const W=await r.api.createShare({path:r.path,password:N.value,expires_at:ct()});V.value={url:W.share.url,pin:W.share.password_pin??null},await oe()}catch(W){X.value=W instanceof Error?W.message:String(W)}finally{z.value=!1}}async function xt(){var q;const W=fe(Y.value);if(!W.length){ae.value=i("Geçerli bir e-posta girin.","Enter a valid email.");return}if((q=V.value)!=null&&q.url){te.value=!0,ae.value="";try{const I=await r.api.shareMail({path:r.path,emails:W,url:V.value.url,pin:V.value.pin??void 0,expires_days:R.value||void 0,locale:r.locale??"tr",is_dir:!!r.isDir,size:r.size});ae.value=he(I)}catch(I){const Q=I.detail??"";Q.includes("not_configured")?ae.value=i("SMTP ayarlı/doğrulanmış değil — linki elle iletin.","SMTP not set up/verified — share the link manually."):Q.includes("send_failed")?ae.value=i("Gönderilemedi (geçici hata) — tekrar deneyin.","Send failed (temporary) — please retry."):ae.value=I instanceof Error?I.message:String(I)}finally{te.value=!1}}}function De(){return ye.value?new Date(Date.now()+ye.value*864e5).toISOString():null}async function D(){Ee.value=!0,Ne.value="",ge.value=null,$.value="";try{const W={ask_name:Be.value};Me.value&&(W.max_files=Number(Me.value)),Ce.value&&(W.max_file_size_mb=Number(Ce.value));const q=ze.value.split(/[,\s]+/).map(Q=>Q.trim().replace(/^\./,"")).filter(Boolean);q.length&&(W.allowed_ext=q);const I=await r.api.createShare({path:r.path,kind:"drop",password:pe.value,expires_at:De(),drop_settings:W});ge.value={url:I.share.url,pin:I.share.password_pin??null}}catch(W){Ne.value=W instanceof Error?W.message:String(W)}finally{Ee.value=!1}}async function se(){var q;const W=fe(be.value);if(!W.length){$.value=i("Geçerli bir e-posta girin.","Enter a valid email.");return}if((q=ge.value)!=null&&q.url){P.value=!0,$.value="";try{const I=await r.api.shareMail({path:r.path,emails:W,url:ge.value.url,pin:ge.value.pin??void 0,expires_days:ye.value||void 0,locale:r.locale??"tr",is_dir:!0,mode:"drop"});$.value=he(I)}catch(I){(I.detail??"").includes("not_configured")?$.value=i("SMTP ayarlı/doğrulanmış değil — linki elle iletin.","SMTP not set up/verified — share the link manually."):$.value=I instanceof Error?I.message:String(I)}finally{P.value=!1}}}async function ke(W){z.value=!0;try{await r.api.revokeShare(W.uuid),await oe()}catch(q){X.value=q instanceof Error?q.message:String(q)}finally{z.value=!1}}function Fe(W,q="url"){var I;(I=navigator.clipboard)==null||I.writeText(W),j.value=q,setTimeout(()=>{j.value===q&&(j.value="")},1400)}const re=mt(()=>typeof navigator<"u"&&typeof navigator.share=="function");function xe(W){if(!W||W<=0)return"";const q=1024;if(W<q)return`${W} B`;const I=["K","M","G","T","P","E"];let Q=q,K=0;for(let Ze=W/q;Ze>=q;Ze/=q)Q*=q,K++;return`${(W/Q).toFixed(1)} ${I[K]}B`}function F(W){return W>0?i(`Bu bağlantı ${W} gün geçerlidir.`,`This link is valid for ${W} day(s).`):i("Bu bağlantının süresi yoktur.","This link does not expire.")}function Te(){var nt,je;const W=o.value.name,q=((nt=V.value)==null?void 0:nt.url)??"",I=((je=V.value)==null?void 0:je.pin)??"",Q=r.isDir?i("klasör","folder"):i("dosya","file"),K=a.value?`${W} ${r.isDir?"klasörü":"dosyası"} sizinle paylaşıldı`:`${W} has been shared with you`,Ze=[];if(Ze.push(i("Merhaba,","Hello,"),""),Ze.push(i(`Sizinle bir ${Q} paylaşıldı:`,`A ${Q} has been shared with you:`),""),r.isDir)Ze.push(i(`Klasör: ${W}`,`Folder: ${W}`));else{Ze.push(i(`Dosya: ${W}`,`File: ${W}`));const At=xe(r.size);At&&Ze.push(i(`Boyut: ${At}`,`Size: ${At}`))}return Ze.push("",i("İndirmek için:","Download it here:"),q),I&&Ze.push("",i(`PIN (erişim kodu): ${I}`,`PIN (access code): ${I}`)),Ze.push("",F(R.value)),{title:K,text:Ze.join(`
21
21
  `)}}function bt(){var At,ln;const W=o.value.name,q=((At=ge.value)==null?void 0:At.url)??"",I=((ln=ge.value)==null?void 0:ln.pin)??"",Q=Number(Me.value)||20,K=Number(Ce.value)||500,Ze=ze.value.split(/[,\s]+/).map(nr=>nr.trim().replace(/^\./,"")).filter(Boolean),nt=i(`${W} adlı klasöre dosya eklemeniz istendi`,`You've been asked to add files to ${W}`),je=[];return je.push(i("Merhaba,","Hello,"),""),je.push(i("Dosya yüklemeniz istendi.","You've been invited to upload files."),""),je.push(i(`Klasör: ${W}`,`Folder: ${W}`)),je.push(i(`Sınır: en fazla ${Q} dosya, dosya başına ${K} MB.`,`Limit: up to ${Q} file(s), ${K} MB per file.`)),je.push(Ze.length?i(`İzinli türler: ${Ze.join(", ")}`,`Allowed types: ${Ze.join(", ")}`):i("İzinli türler: tüm türler","Allowed types: all")),je.push("",i("Dosyalarınızı buradan yükleyebilirsiniz:","Upload your files here:"),q),I&&je.push("",i(`PIN (erişim kodu): ${I}`,`PIN (access code): ${I}`)),je.push("",F(ye.value)),{title:nt,text:je.join(`
22
22
  `)}}async function k(W){if(re.value)try{await navigator.share(W)}catch{}}return(W,q)=>{var I,Q;return J(),ne("div",{class:"fx-perm-overlay",onClick:q[24]||(q[24]=gr(K=>n("close"),["self"]))},[L("div",Sx,[L("header",Cx,[L("div",Ax,[L("span",Ex,ie(e.isDir?"📁":"📄"),1),L("div",Tx,[L("h3",null,ie(i("Paylaş / İzinler","Share / Permissions")),1),L("span",{class:"fx-perm-sub",title:e.path},[mr(ie(o.value.name),1),L("span",Dx," · "+ie(o.value.adapter),1)],8,Mx)])]),L("button",{class:"fx-perm-x",onClick:q[0]||(q[0]=K=>n("close")),"aria-label":"close"},"✕")]),L("div",Ix,[s.value?(J(),ne("button",{key:0,class:Kt(["fx-perm-tab",{"is-active":l.value==="perms"}]),onClick:q[1]||(q[1]=K=>l.value="perms")},ie(i("Kişiler","People")),3)):tt("",!0),L("button",{class:Kt(["fx-perm-tab",{"is-active":l.value==="share"}]),onClick:q[2]||(q[2]=K=>l.value="share")},ie(i("Bağlantı","Link")),3),e.isDir?(J(),ne("button",{key:1,class:Kt(["fx-perm-tab",{"is-active":l.value==="drop"}]),onClick:q[3]||(q[3]=K=>l.value="drop")},ie(i("Dosya İste","Request files")),3)):tt("",!0)]),L("div",zx,[l.value==="perms"&&s.value?(J(),ne(gt,{key:0},[h.value?tt("",!0):(J(),ne("div",Fx,ie(i("Bu diskte RBAC kapalı — izinler yalnızca RBAC açık disklerde geçerli.","RBAC is off on this storage — grants only apply when RBAC is enabled.")),1)),c.value?(J(),ne("div",Ox,ie(c.value),1)):tt("",!0),u.value?(J(),ne("div",Px,ie(i("Yükleniyor…","Loading…")),1)):(J(),ne(gt,{key:3},[L("div",Rx,[L("div",Lx,[L("div",Bx,[ar(L("input",{"onUpdate:modelValue":q[4]||(q[4]=K=>y.value=K),type:"email",class:"fx-perm-input",autocomplete:"off",placeholder:i("İsim veya e-posta","Name or email"),onInput:ue,onKeyup:pa(Se,["enter"]),onFocus:ue},null,40,Nx),[[un,y.value]]),A.value?(J(),ne("ul",$x,[(J(!0),ne(gt,null,rr(C.value,K=>(J(),ne("li",{key:K.id,onMousedown:gr(Ze=>me(K),["prevent"])},[L("span",Hx,ie((K.display_name||K.email).charAt(0).toUpperCase()),1),L("span",jx,[L("span",Gx,ie(K.display_name||K.email),1),L("span",Vx,ie(K.email)+" · "+ie(K.role),1)])],40,Ux))),128))])):tt("",!0)]),ar(L("select",{"onUpdate:modelValue":q[5]||(q[5]=K=>p.value=K),class:"fx-perm-sel",title:(I=_.find(K=>K.v===p.value))==null?void 0:I.d},[(J(),ne(gt,null,rr(_,K=>L("option",{key:K.v,value:K.v},ie(K.l),9,Wx)),64))],8,qx),[[Ws,p.value]]),L("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:x.value,onClick:Se},ie(i("Ekle","Add")),9,Kx)]),v.value?(J(),ne("div",Xx,[L("p",Yx,ie(i("Bu e-postada hesap yok. Ne yapmak istersiniz?","No account for this email — what next?")),1),L("div",Zx,[L("div",Jx,[ar(L("select",{"onUpdate:modelValue":q[6]||(q[6]=K=>g.value=K),class:"fx-perm-sel"},[L("option",Qx,ie(i("Kullanıcı","User")),1),L("option",e_,ie(i("Görüntüleyen","Viewer")),1)],512),[[Ws,g.value]]),L("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:x.value,onClick:we},ie(i("Kullanıcı oluştur + yetki ver","Create user + grant")),9,t_)]),L("button",{class:"fx-perm-btn fx-perm-btn--ghost",disabled:x.value,onClick:Ve},ie(i("Sadece paylaşım linki gönder →","Just send a share link →")),9,r_)])])):tt("",!0),b.value?(J(),ne("div",n_,ie(b.value),1)):tt("",!0),(Q=m.value)!=null&&Q.tempPassword?(J(),ne("div",a_,[mr(ie(i("Geçici parola:","Temp password:"))+" ",1),L("code",null,ie(m.value.tempPassword),1)])):tt("",!0)]),L("div",i_,[L("h4",null,ie(i("Erişimi olanlar","People with access")),1),!d.value.length&&!f.value.length?(J(),ne("div",o_,ie(i("Henüz kimseyle paylaşılmadı.","Not shared with anyone yet.")),1)):tt("",!0),(J(!0),ne(gt,null,rr(d.value,K=>(J(),ne("div",{key:"d"+K.id,class:"fx-perm-person"},[L("span",l_,ie(it(K)),1),L("span",{class:"fx-perm-user",title:K.user_email},ie(Xe(K)),9,s_),L("select",{class:"fx-perm-sel fx-perm-sel--sm",value:K.level,onChange:Ze=>He(K,Ze.target.value)},[(J(),ne(gt,null,rr(_,Ze=>L("option",{key:Ze.v,value:Ze.v},ie(Ze.l),9,c_)),64))],40,u_),L("button",{class:"fx-perm-del",disabled:x.value,title:i("Kaldır","Remove"),onClick:Ze=>$e(K)},"✕",8,f_)]))),128)),(J(!0),ne(gt,null,rr(f.value,K=>(J(),ne("div",{key:"i"+K.id,class:"fx-perm-person fx-perm-inh"},[L("span",d_,ie(it(K)),1),L("span",{class:"fx-perm-user",title:K.user_email},ie(Xe(K)),9,h_),L("span",p_,ie(E(K.level)),1),L("span",{class:"fx-perm-from",title:i("Üst klasörden gelir","Inherited from")+": "+(K.path_prefix||"/")}," ↳ "+ie(K.path_prefix||"/"),9,v_)]))),128))])],64))],64)):tt("",!0),l.value==="share"?(J(),ne(gt,{key:1},[L("div",m_,[L("div",g_,[L("label",b_,[ar(L("input",{type:"checkbox","onUpdate:modelValue":q[7]||(q[7]=K=>N.value=K)},null,512),[[qs,N.value]]),mr(" "+ie(i("PIN ile koru","Protect with a PIN")),1)]),L("label",y_,[L("span",x_,ie(i("Süre","Expiry")),1),ar(L("select",{"onUpdate:modelValue":q[8]||(q[8]=K=>R.value=K),class:"fx-perm-sel fx-perm-sel--sm"},[(J(),ne(gt,null,rr(_e,K=>L("option",{key:K.v,value:K.v},ie(K.l),9,__)),64))],512),[[Ws,R.value,void 0,{number:!0}]])]),L("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:z.value,onClick:ot},ie(i("Bağlantı oluştur","Create link")),9,w_)]),X.value?(J(),ne("div",k_,ie(X.value),1)):tt("",!0),V.value?(J(),ne("div",S_,[L("div",C_,[L("a",{href:V.value.url,target:"_blank",rel:"noopener",class:"fx-perm-link"},ie(V.value.url),9,A_),L("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:q[9]||(q[9]=K=>Fe(V.value.url,"new"))},ie(j.value==="new"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)]),V.value.pin?(J(),ne("div",E_,[L("span",null,[q[25]||(q[25]=mr("PIN: ",-1)),L("code",null,ie(V.value.pin),1)]),L("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:q[10]||(q[10]=K=>Fe(V.value.pin,"sharepin"))},ie(j.value==="sharepin"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)])):tt("",!0),L("div",T_,[ar(L("input",{"onUpdate:modelValue":q[11]||(q[11]=K=>Y.value=K),type:"text",class:"fx-perm-input",autocomplete:"off",placeholder:i("e-posta(lar) — virgülle ayırın","email(s) — comma separated"),onKeyup:pa(xt,["enter"])},null,40,M_),[[un,Y.value]]),L("button",{class:"fx-perm-btn",disabled:te.value,onClick:xt},ie(i("Gönder","Send")),9,D_)]),ae.value?(J(),ne("div",I_,ie(ae.value),1)):tt("",!0),re.value?(J(),ne("button",{key:2,type:"button",class:"fx-perm-btn fx-perm-btn--ghost fx-perm-sharebtn",onClick:q[12]||(q[12]=K=>k(Te()))},[q[26]||(q[26]=L("span",{"aria-hidden":"true"},"📤",-1)),mr(" "+ie(i("Paylaş","Share")),1)])):tt("",!0)])):Y.value?(J(),ne("p",z_,[mr(ie(i("Aşağıdan bir bağlantı oluşturun, ardından","Create a link below, then it will be sent to"))+" ",1),L("strong",null,ie(Y.value),1),mr(" "+ie(i("adresine gönderin.",".")),1)])):tt("",!0)]),L("div",F_,[L("h4",null,ie(i("Mevcut bağlantılar","Existing links")),1),M.value.length?tt("",!0):(J(),ne("div",O_,ie(i("Yok","None")),1)),(J(!0),ne(gt,null,rr(M.value,K=>(J(),ne("div",{key:K.uuid,class:"fx-perm-person"},[L("span",{class:"fx-perm-user fx-perm-link",title:K.url},ie(K.url),9,P_),L("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:Ze=>Fe(K.url,K.uuid)},ie(j.value===K.uuid?i("✓","✓"):i("Kopyala","Copy")),9,R_),L("button",{class:"fx-perm-del",disabled:z.value,title:i("İptal","Revoke"),onClick:Ze=>ke(K)},"✕",8,L_)]))),128))])],64)):tt("",!0),l.value==="drop"?(J(),ne("div",B_,[L("p",N_,ie(i("Bu klasöre herkesin dosya YÜKLEYEBİLECEĞİ herkese açık bir bağlantı. Yükleyenler klasördeki mevcut dosyaları göremez.","A public link that lets anyone UPLOAD files into this folder. Uploaders never see the folder's existing files.")),1),L("div",$_,[L("label",U_,[ar(L("input",{type:"checkbox","onUpdate:modelValue":q[13]||(q[13]=K=>pe.value=K)},null,512),[[qs,pe.value]]),mr(" "+ie(i("PIN ile koru","Protect with a PIN")),1)]),L("label",H_,[L("span",j_,ie(i("Süre","Expiry")),1),ar(L("select",{"onUpdate:modelValue":q[14]||(q[14]=K=>ye.value=K),class:"fx-perm-sel fx-perm-sel--sm"},[(J(),ne(gt,null,rr(_e,K=>L("option",{key:K.v,value:K.v},ie(K.l),9,G_)),64))],512),[[Ws,ye.value,void 0,{number:!0}]])]),L("button",{class:"fx-perm-btn fx-perm-btn--primary",disabled:Ee.value,onClick:D},ie(i("Bağlantı oluştur","Create link")),9,V_)]),L("button",{type:"button",class:"fx-perm-btn fx-perm-btn--ghost fx-perm-advtoggle",onClick:q[15]||(q[15]=K=>ve.value=!ve.value)},ie(ve.value?i("Gelişmiş ▲","Advanced ▲"):i("Gelişmiş ▼","Advanced ▼")),1),ve.value?(J(),ne("div",q_,[L("label",W_,[L("span",K_,ie(i("En fazla dosya","Max files")),1),ar(L("input",{"onUpdate:modelValue":q[16]||(q[16]=K=>Me.value=K),type:"number",min:"1",class:"fx-perm-input fx-perm-input--sm",placeholder:"20"},null,512),[[un,Me.value]])]),L("label",X_,[L("span",Y_,ie(i("Dosya başı MB","MB / file")),1),ar(L("input",{"onUpdate:modelValue":q[17]||(q[17]=K=>Ce.value=K),type:"number",min:"1",class:"fx-perm-input fx-perm-input--sm",placeholder:"500"},null,512),[[un,Ce.value]])]),L("label",Z_,[L("span",J_,ie(i("İzinli türler","Allowed types")),1),ar(L("input",{"onUpdate:modelValue":q[18]||(q[18]=K=>ze.value=K),type:"text",class:"fx-perm-input fx-perm-input--sm",placeholder:i("hepsi (örn. pdf, jpg)","all (e.g. pdf, jpg)")},null,8,Q_),[[un,ze.value]])]),L("label",ew,[ar(L("input",{type:"checkbox","onUpdate:modelValue":q[19]||(q[19]=K=>Be.value=K)},null,512),[[qs,Be.value]]),mr(" "+ie(i("Yükleyenin adını sor","Ask uploader name")),1)])])):tt("",!0),Ne.value?(J(),ne("div",tw,ie(Ne.value),1)):tt("",!0),ge.value?(J(),ne("div",rw,[L("div",nw,[L("a",{href:ge.value.url,target:"_blank",rel:"noopener",class:"fx-perm-link"},ie(ge.value.url),9,aw),L("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:q[20]||(q[20]=K=>Fe(ge.value.url,"drop"))},ie(j.value==="drop"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)]),ge.value.pin?(J(),ne("div",iw,[L("span",null,[q[27]||(q[27]=mr("PIN: ",-1)),L("code",null,ie(ge.value.pin),1)]),L("button",{class:"fx-perm-btn fx-perm-btn--sm",onClick:q[21]||(q[21]=K=>Fe(ge.value.pin,"droppin"))},ie(j.value==="droppin"?i("Kopyalandı ✓","Copied ✓"):i("Kopyala","Copy")),1)])):tt("",!0),L("div",ow,[ar(L("input",{"onUpdate:modelValue":q[22]||(q[22]=K=>be.value=K),type:"text",class:"fx-perm-input",autocomplete:"off",placeholder:i("e-posta(lar) — virgülle ayırın","email(s) — comma separated"),onKeyup:pa(se,["enter"])},null,40,lw),[[un,be.value]]),L("button",{class:"fx-perm-btn",disabled:P.value,onClick:se},ie(i("Gönder","Send")),9,sw)]),$.value?(J(),ne("div",uw,ie($.value),1)):tt("",!0),re.value?(J(),ne("button",{key:2,type:"button",class:"fx-perm-btn fx-perm-btn--ghost fx-perm-sharebtn",onClick:q[23]||(q[23]=K=>k(bt()))},[q[28]||(q[28]=L("span",{"aria-hidden":"true"},"📤",-1)),mr(" "+ie(i("Paylaş","Share")),1)])):tt("",!0)])):tt("",!0)])):tt("",!0)])])])}}}),[["__scopeId","data-v-53f367d0"]]),fw={key:0,class:"fe__presence"},dw={key:0,class:"fe__loading"},hw={class:"fe__loading-text"},pw={key:1,class:"fe__notfound"},vw={class:"fe__notfound-title"},mw={class:"fe__notfound-path"},gw={class:"fe__notfound-desc"},bw={key:1,class:"fe__dragover"},yw={class:"fe-recents__header"},xw={class:"fe-modal__head"},_w={class:"fe-modal__title"},ww={class:"fe-modal__body"},kw={key:0,class:"fe-toast"},hp="brf-file-explorer:view-mode",yc="brf-file-explorer:path",Al="application/x-brf-files",Sw=qt({__name:"FileExplorer",props:{config:{}},emits:["share-created","file-opened","error","upload-progress","selection-change","navigate"],setup(e,{expose:t,emit:r}){const n=e,a=r,i=B6(n.config),o=Z6(i,{reload:()=>I()}),l=o.presenceUsers;function s(U){const G=(U||"").replace(/^\/+|\/+$/g,"");if(G===".trash"||G.startsWith(".trash/"))return null;const Ae=je(G);return!Ae||!Ae.includes("://")||Ae.startsWith("://")?null:Ae}vr(()=>{o.start(),o.subscribe(s(x.value))}),Br(()=>o.stop());const u=Q6(n.config.apiBase,i),c=N6(n.config,i),d=G6(n.config,i,{onSettled:U=>{if(U.status==="error")F(U.error_message||"İşlem başarısız");else{const G=U.op_type==="copy"?"Kopyalandı":U.op_type==="move"?"Taşındı":"Silindi";F(`${G} (${U.progress_total})`)}I()}}),f=de(!1),h=(n.config.rootPath||"").trim(),y=h.replace("://","/").replace(/^\/+|\/+$/g,""),p=y||n.config.initialPath||"",x=de(p),b=de(n.config.defaultAdapter||"brf"),v=de(p),g=de([]),m=de(""),C=de(""),A=Ob((U,G)=>{let Ae=(()=>{try{const Pe=localStorage.getItem(hp);if(Pe==="list"||Pe==="grid")return Pe}catch{}return n.config.viewMode??"list"})();return{get(){return U(),Ae},set(Pe){if(Pe!==Ae){Ae=Pe;try{localStorage.setItem(hp,Pe)}catch{}G()}}}}),S=de(""),_=de(!1),E=de(""),M=mt(()=>_.value),z=mt(()=>n.config.locale||"tr"),N=mt(()=>{const U=(x.value??"").replace(/^\/+|\/+$/g,"");return y&&U===y?!1:U.length>0}),R=mt(()=>Te.value?!(x.value??"").replace(/^\/+|\/+$/g,""):!1);function V(){if(_.value){I(E.value);return}const U=(x.value??"").replace(/^\/+|\/+$/g,"");if(!U||U===y)return;const G=U.lastIndexOf("/");let Ae=G===-1?"":U.slice(0,G);y&&!(Ae===y||Ae.startsWith(y+"/"))&&(Ae=y),I(Ae)}const{t:X}=vn(z),j=$6(()=>g.value);tr(()=>[...j.selected.value],()=>{a("selection-change",j.nodes.value.map(G=>({path:G.path,basename:G.basename,type:G.type})));const U=j.nodes.value.filter(G=>G.type==="file");o.setFocus(U.length===1?U[0].basename:null)});const Y=de({mode:null,items:[],sourcePath:null}),te=de(null),ae=de(new Set),_e=de(!1),pe=de(!1),ye=de(null),ve=de(0);async function Me(){try{const U=await el(),G=n.config.apiBase??"",Ae=await fetch(`${G}/api/files/manager/star/list?limit=500`,{headers:U,credentials:"include"});if(!Ae.ok)return;const Pe=await Ae.json(),_t=Array.isArray(Pe)?Pe:Array.isArray(Pe==null?void 0:Pe.entries)?Pe.entries:Array.isArray(Pe==null?void 0:Pe.nodes)?Pe.nodes:[];ae.value=new Set(_t.map(lt=>lt.id).filter(lt=>typeof lt=="number"))}catch{}}function Ce(U,G){if(typeof U.id!="number")return;const Ae=new Set(ae.value);G?Ae.add(U.id):Ae.delete(U.id),ae.value=Ae}async function ze(U){if(typeof U.id=="number")try{const G=n.config.apiBase??"";await fetch(`${G}/api/files/manager/recent`,{method:"POST",headers:await el({"Content-Type":"application/json"}),credentials:"include",body:JSON.stringify({node_id:U.id})}),ve.value+=1}catch{}}function Be(U){typeof U.id=="number"&&(ye.value=U,pe.value=!0)}function Ee(U){const G={type:"file",path:U.path,basename:U.name,extension:(U.name.split(".").pop()||"").toLowerCase(),id:U.id};_e.value=!1,Jt(G)}const Ne=mt(()=>{var G,Ae,Pe;if(n.config.onlyOfficeBase)return n.config.onlyOfficeBase;const U=(Ae=(G=te.value)==null?void 0:G.external)==null?void 0:Ae.onlyoffice;return U&&!op(U)?null:((Pe=te.value)==null?void 0:Pe.onlyoffice_url)||null}),ge=mt(()=>Ne.value&&i.endpoints.onlyOfficeConfig||null),be=mt(()=>{var Ae,Pe,_t;const U=n.config.drawioUrl||n.config.drawioBase;if(U)return U;const G=(Pe=(Ae=te.value)==null?void 0:Ae.external)==null?void 0:Pe.drawio;return G&&!op(G)?null:((_t=te.value)==null?void 0:_t.drawio_url)||null}),P=mt(()=>{var U;return n.config.convertBase||((U=te.value)==null?void 0:U.convert_url)||null}),$=de([]),fe=de(null),he=de(!1),le=de(!1),oe=de(!1),ue=de(!1),me=de(!1),Se=de(null),we=de(null),Ve=de(null),He=de(null),$e=de("edit"),Xe=de(!1),it=de(null),ct=de(!1),ot=de(null);function xt(U){return U===void 0||U==="editor"||U==="owner"}function De(U){var G;return U.length===1&&typeof((G=U[0])==null?void 0:G.perm)=="string"?U[0].perm:m.value}const D=mt(()=>xt(m.value)),se=de(null),ke=de(null),Fe=de(null),re=de(null);let xe;function F(U){re.value=U,xe&&clearTimeout(xe),xe=setTimeout(()=>re.value=null,2500)}const Te=mt(()=>n.config.multiStorageRoot===!0);function bt(U){const G=U.replace(/^\/+|\/+$/g,"");if(!G)return{adapter:"",rel:""};const Ae=G.indexOf("/");return Ae===-1?{adapter:G,rel:""}:{adapter:G.slice(0,Ae),rel:G.slice(Ae+1)}}function k(U){if(U.includes("://"))return U;const{adapter:G,rel:Ae}=bt(U);return G?Ae?`${G}://${Ae}`:`${G}://`:""}function W(U){const G=U.indexOf("://");if(G===-1)return U.replace(/^\/+|\/+$/g,"");const Ae=U.slice(0,G),Pe=U.slice(G+3).replace(/^\/+|\/+$/g,"");return Pe?`${Ae}/${Pe}`:Ae}function q(){return(n.config.storages??[]).map(G=>({type:"dir",path:G.name,basename:G.label||G.name,extension:"",storage:G.name,visibility:"private",file_size:0,mime_type:"inode/storage",extra_metadata:{driver:G.driver,readOnly:G.readOnly}}))}async function I(U){f.value=!0,_.value=!1;let G=U??x.value??"";try{if(C.value="",y){const Or=String(G).replace(/^\/+|\/+$/g,"");(!Or||!(Or===y||Or.startsWith(y+"/")))&&(G=y)}if(Te.value&&!k(G)){x.value="",b.value="",v.value="",g.value=q();return}const Ae=Te.value?k(G):je(G),Pe=S.value?await i.search(Ae,S.value):await i.index(Ae);b.value=Pe.adapter,v.value=Pe.dirname,m.value=Pe.perm||"",g.value=(Pe.files||[]).filter(Or=>!(Or.path.includes(".thumbs")||Or.path.includes(".versions")||Or.basename===".versions"||Or.basename===".trash"||Or.basename===".keepdir"));const _t=Q(Pe.dirname),lt=_t==="fileman"||_t==="",ir=_t.startsWith("fileman/.trash"),Ur=n.config.trashVisible!==!1;!ir&&lt&&Ur&&(g.value.unshift({type:"dir",path:`${Pe.adapter}://fileman/.trash`,basename:".trash",extension:"",storage:Pe.adapter,visibility:"private",size:0,file_size:0,mime_type:"inode/directory",extra_metadata:{}}),Ze(Pe.adapter)),x.value=Te.value?W(Pe.dirname):Q(Pe.dirname)}catch(Ae){const Pe=Ae instanceof Error?Ae.message:String(Ae),_t=Ae.status;if(_t===404||_t===403){C.value=String(G),g.value=[],a("error",{message:Pe,context:{path:U}});return}a("error",{message:Pe,context:{path:U}}),F(Pe)}finally{f.value=!1}}function Q(U){const G=U.indexOf("://");return G===-1?U:U.slice(G+3)}function K(){C.value="",I("")}async function Ze(U){try{const{entries:G}=await i.listTrash(U),Ae=g.value.find(lt=>lt.basename===".trash");if(!Ae)return;let Pe=0,_t=0;for(const lt of G){Pe+=lt.size||0;const ir=Date.parse(lt.deleted_at);!Number.isNaN(ir)&&ir>_t&&(_t=ir)}Ae.size=Pe,_t>0&&(Ae.last_modified=_t)}catch{}}async function nt(){f.value=!0,E.value=b.value||"",_.value=!0,j.clear();try{const{entries:U}=await i.listTrash();g.value=U.map(G=>({type:"file",id:G.id,path:G.storage_name?`${G.storage_name}://${G.path}`:G.path,basename:G.name,extension:G.name.includes(".")&&G.name.split(".").pop()||"",storage:G.storage_name||"",visibility:"private",file_size:G.size,mime_type:G.mime||"",extra_metadata:{deleted_at:G.deleted_at,ttl_days:G.ttl_days??null}})),v.value=".trash",x.value=".trash"}catch(U){const G=U instanceof Error?U.message:String(U);a("error",{message:G,context:{op:"trash-list"}}),F(G)}finally{f.value=!1}}function je(U){if(U&&U.includes("://"))return U;if(Te.value){const G=k(U??"");return G||(b.value?`${b.value}://`:"")}return U?`${b.value}://${U.replace(/^\/+/,"")}`:`${b.value}://`}tr(()=>S.value,()=>void I());function At(){return n.config.pathPersist??"hash"}function ln(){const U=At();return U==="hash"||U==="hash+localStorage"}function nr(U){try{return decodeURIComponent(U)}catch{return U}}function zt(){try{return localStorage.getItem(yc)||""}catch{return""}}function pr(){const U=window.location.hash||"";return U.startsWith("#")?nr(U.slice(1)).replace(/^\/+|\/+$/g,""):""}function Fr(){if(typeof window>"u")return"";const U=At();if(U==="none")return"";if(U==="localStorage")return zt();const G=pr();return G||U==="hash"?G:p?"":zt()}function Kr(U){if(typeof window>"u")return;const G=At();if(G==="none")return;if(G==="localStorage"||G==="hash+localStorage"){try{U?localStorage.setItem(yc,U):localStorage.removeItem(yc)}catch{}if(G==="localStorage")return}const Ae=U?U.split("/").map(encodeURIComponent).join("/"):"",Pe=Ae?`#${Ae}`:"";(window.location.hash||"")!==Pe&&history.replaceState(null,"",Pe||window.location.pathname+window.location.search)}function Zi(){if(!ln())return;const U=pr();U&&U!==x.value&&I(U)}tr(x,U=>{Kr(U),a("navigate",{path:U}),o.subscribe(s(U))}),t({reload:()=>I()}),vr(async()=>{var G;gc();const U=Fr();await I(U||void 0),await Ia(),(G=ke.value)==null||G.focus(),Me(),ln()&&window.addEventListener("hashchange",Zi),i.endpoints.opsList&&d.startPolling(),i.endpoints.capabilities&&i.capabilities().then(Ae=>{te.value=Ae}).catch(()=>{})}),U6(ke,{onDelete:()=>{j.isEmpty.value||(oe.value=!0)},onRename:()=>{j.nodes.value.length===1&&(Se.value=j.nodes.value[0],le.value=!0)},onSelectAll:()=>j.selectAll(),onOpen:()=>{const U=j.nodes.value[0];U&&Jt(U)},onClose:()=>{var U;he.value=!1,le.value=!1,oe.value=!1,ue.value=!1,me.value=!1,(U=se.value)==null||U.hide()},onFocusSearch:()=>{var U;return(U=Fe.value)==null?void 0:U.focusSearch()},onCut:()=>fM(),onCopy:()=>dM(),onPaste:()=>H3(),onGoUp:()=>V(),hasSelection:()=>!j.isEmpty.value});const Qo=new Set(["docx","xlsx","pptx","doc","xls","ppt","odt","ods","odp"]);function Jt(U){if(U.basename===".trash"){nt();return}if(U.type==="dir"){const Ae=Te.value?W(U.path):Q(U.path);I(Ae);return}const G=(U.extension||"").toLowerCase();$e.value=xt(U.perm??m.value)?Ar(G):"view",He.value=U,me.value=!0,a("file-opened",{path:U.path,basename:U.basename}),ze(U)}const dn=new Set([...Qo,"drawio","dio","pdf","epub","ipynb","tiff","tif","psd","mmd","mermaid","glb","gltf","obj","stl","fbx","3ds","zip","rar","7z","tar","gz","tgz","jpg","jpeg","png","webp","gif","bmp","avif","svg","heic","mp4","webm","mov","mkv","m4v","ogv","mp3","wav","ogg","flac","m4a","aac","opus"]);function Ar(U){return dn.has(U)?"view":"edit"}async function ta(U){const G=U??j.nodes.value;if(G.length!==0)try{if(_.value){const _t=G.map(ir=>ir.id).filter(ir=>typeof ir=="number"),{restored:lt}=await i.restoreIds(_t);F(`${lt} öğe geri getirildi`),j.clear(),await nt();return}if(!i.endpoints.restore)return;const Ae=G.map(_t=>_t.path),{restored:Pe}=await i.restore(Ae);F(`${Pe} öğe geri getirildi`),j.clear(),await I()}catch(Ae){a("error",{message:Ae.message,context:{op:"restore"}})}}function Mn(U){$e.value="view",He.value=U,me.value=!0,ze(U)}function Su(U){if(U.type==="dir"){const lt=Te.value?W(U.path):Q(U.path);I(lt);return}if(!xt(U.perm??m.value)){Mn(U);return}const G=(U.extension||"").toLowerCase(),Ae=n.config.openPageBase;if(!Ae){Jt(U);return}const Pe=Ae.includes("?")?"&":"?",_t=`${Ae}${Pe}path=${encodeURIComponent(U.path)}&type=${encodeURIComponent(G)}&mode=edit`;window.open(_t,"_blank","noopener"),a("file-opened",{path:U.path,basename:U.basename}),ze(U)}const ds=de("selection"),Ld=de(""),nM=de(""),aM=mt(()=>{const U=j.nodes.value;return U.length===0?"none":U.length===1?U[0].type==="dir"?"single-dir":"single-file":"multi"});async function iM(U){const G=j.nodes.value;if(U==="open"){G[0]&&Jt(G[0]);return}await U3(U,G)}async function N3(U,G){var Ae;ds.value="selection",j.has(U.path)||(j.click(U.path),await Ia()),(Ae=se.value)==null||Ae.show({clientX:G.clientX,clientY:G.clientY},j.nodes.value)}function oM(U){var G;U.preventDefault(),ds.value="selection",j.clear(),(G=se.value)==null||G.show({clientX:U.clientX,clientY:U.clientY},[])}function lM(U){var G;ds.value="breadcrumb",Ld.value=U.adapterPath,nM.value=U.label,(G=se.value)==null||G.show({clientX:U.x,clientY:U.y},[])}const sM=mt(()=>{if(ds.value==="breadcrumb")return[{key:"open",label:X("ctx.open"),icon:"↗"},{key:"copy-path",label:X("breadcrumb.copy_path"),icon:"📋"}];const U=j.nodes.value,G=U.length>0,Ae=U.length===1;if(M.value)return G?[{key:"restore",label:X("ctx.restore"),icon:"↩"},{divider:!0,key:"sep1",label:""},{key:"delete",label:X("ctx.delete_perm"),icon:"🗑",danger:!0}]:[];const Pe=(x.value??"").replace(/^\/+|\/+$/g,"");return Te.value&&Pe===""?G?Ae?[{key:"open",label:X("ctx.open"),icon:"↗"}]:[]:[]:G?$3(U):xt(m.value)?[{key:"new-folder",label:X("toolbar.new_folder"),icon:"📁"},{key:"paste",label:X("ctx.paste"),icon:"📋",disabled:!Y.value.mode}]:[]});function $3(U){var Y3,Z3;const G=U.length>0,Ae=U.length===1,Pe=Ae&&((Y3=U[0])==null?void 0:Y3.type)==="file",_t=z.value==="en"?"Tags…":"Etiketler…",lt=Ae&&typeof((Z3=U[0])==null?void 0:Z3.id)=="number",ir=z.value==="en"?"Copy node id":"Node id'yi kopyala",Ur=De(U),Or=xt(Ur),PM=z.value==="en"?"Share / Permissions":"Paylaş / İzinler";return[{key:"open",label:X("ctx.open"),icon:"↗",hidden:!Ae},{key:"preview",label:X("ctx.preview"),icon:"👁",hidden:!Ae,disabled:!Pe},{key:"download",label:X("ctx.download"),icon:"⬇",hidden:!Ae,disabled:!Pe},{key:"convert",label:X("ctx.convert"),icon:"🔄",hidden:!Ae||!P.value||!Or,disabled:!Pe},{key:"access",label:PM,icon:"🔗",hidden:!Ae||!Or},{key:"copy-id",label:ir,icon:"🆔",hidden:!lt,disabled:!lt},{divider:!0,key:"sep1",label:"",hidden:!Or},{key:"rename",label:X("ctx.rename"),icon:"✎",hidden:!Ae||!Or,disabled:!Ae},{key:"cut",label:X("ctx.cut"),icon:"✂",hidden:!G||!Or,disabled:!G},{key:"copy",label:X("ctx.copy"),icon:"❐",hidden:!G,disabled:!G},{key:"paste",label:X("ctx.paste"),icon:"📋",hidden:!Or,disabled:!Y.value.mode},{divider:!0,key:"sep-meta",label:"",hidden:!lt},{key:"tags",label:_t,icon:"🏷",hidden:!lt,disabled:!lt},{divider:!0,key:"sep2",label:"",hidden:!Or},{key:"delete",label:X("ctx.delete"),icon:"🗑",danger:!0,hidden:!G||!Or,disabled:!G}]}const uM=mt(()=>{const U=j.nodes.value;if(M.value)return U.length===0?[]:[{key:"restore",label:X("ctx.restore"),icon:"↩"},{key:"delete",label:X("ctx.delete_perm"),icon:"🗑",danger:!0}];const G=(x.value??"").replace(/^\/+|\/+$/g,"");return Te.value&&G===""?U.length===1?[{key:"open",label:X("ctx.open"),icon:"↗"}]:[]:U.length===0?[]:$3(U)});async function cM(U,G){if(ds.value==="breadcrumb"){U.key==="open"?I(Q(Ld.value)):U.key==="copy-path"&&await X3(Ld.value);return}await U3(U.key,G)}async function U3(U,G){var Ae;switch(U){case"open":G[0]&&Su(G[0]);break;case"preview":G[0]&&Mn(G[0]);break;case"download":G[0]&&pM(G[0]);break;case"convert":G[0]&&yM(G[0]);break;case"share":G[0]&&bM(G[0]);break;case"access":G[0]&&(ot.value=G[0],ct.value=!0);break;case"copy-id":if(G[0]&&typeof G[0].id=="number"){const Pe=G[0].id;(Ae=navigator.clipboard)==null||Ae.writeText(String(Pe)).then(()=>F(z.value==="en"?`Node id ${Pe} copied`:`Node id ${Pe} kopyalandı`),()=>F(`#${Pe}`))}break;case"tags":G[0]&&Be(G[0]);break;case"rename":G[0]&&(Se.value=G[0],le.value=!0);break;case"cut":Y.value={mode:"cut",items:G,sourcePath:x.value},F("Kes → Yapıştır hazır");break;case"copy":Y.value={mode:"copy",items:G,sourcePath:x.value},F("Kopyala → Yapıştır hazır");break;case"paste":await H3();break;case"delete":oe.value=!0;break;case"restore":G.length>0&&await ta(G);break;case"new-folder":he.value=!0;break;case"duplicate":G[0]&&await hM(G[0]);break}}function fM(){j.isEmpty.value||(Y.value={mode:"cut",items:j.nodes.value,sourcePath:x.value},F("Kesildi"))}function dM(){j.isEmpty.value||(Y.value={mode:"copy",items:j.nodes.value,sourcePath:x.value},F("Kopyalandı"))}async function H3(){const U=Y.value;if(!(!U.mode||U.items.length===0))try{const G=U.items.map(_t=>_t.path),Ae=U.sourcePath||"";if(U.mode==="cut"&&Ae===x.value){F("Aynı klasöre kesilemez");return}if(U.mode==="cut"){const{op:_t}=await i.moveAsync(G,je(x.value),je(Ae)||void 0);d.register(_t),F("Taşıma kuyruğa alındı")}else{const{op:_t}=await i.copy(G,je(x.value));d.register(_t),F("Kopyalama kuyruğa alındı")}Y.value={mode:null,items:[],sourcePath:null}}catch(G){a("error",{message:G.message,context:{op:"paste"}})}}async function hM(U){try{const{op:G}=await i.copy([U.path],je(x.value));d.register(G)}catch(G){a("error",{message:G.message,context:{op:"duplicate"}})}}function pM(U){const G=i.downloadUrl(U.path);window.open(G,"_blank")}async function vM(U){try{await i.newFolder(je(x.value),U),he.value=!1,await I()}catch(G){a("error",{message:G.message,context:{op:"newfolder"}})}}async function mM(U){const G=Se.value;if(G)try{await i.rename(je(x.value),G.path,U),le.value=!1,Se.value=null,await I()}catch(Ae){a("error",{message:Ae.message,context:{op:"rename"}})}}async function gM(){if(_.value){oe.value=!1,F("Çöpteki öğeler saklama süresi sonunda otomatik silinir. Kalıcı silme yönetici panelinden yapılır.");return}const U=j.nodes.value.map(G=>G.path);if(U.length===0){oe.value=!1;return}try{if(i.endpoints.deleteAsync){const{op:G}=await i.deleteAsync(U,je(x.value));d.register(G),F("Silme kuyruğa alındı")}else await i.deleteItems(je(x.value),U),await I();oe.value=!1,j.clear()}catch(G){a("error",{message:G.message,context:{op:"delete"}})}}function bM(U){we.value=U,Ve.value=null,ue.value=!0}function yM(U){it.value=U,Xe.value=!0}function xM(U){F(z.value==="en"?`Converted → ${U}`:`Dönüştürüldü → ${U}`),I()}async function _M(U){const G=we.value;if(G)try{const{share:Ae}=await i.createShare({path:G.path,password:U.password,expires_at:U.expires_at,max_downloads:U.max_downloads});Ve.value=Ae,a("share-created",{path:G.path,url:Ae.url,pin:Ae.password_pin??null})}catch(Ae){a("error",{message:Ae.message,context:{op:"share"}})}}function wM(){ue.value=!1,we.value=null,Ve.value=null}function kM(){var U;if(!D.value){F(z.value==="en"?"Read-only here":"Burada yazma yetkiniz yok");return}(U=fe.value)==null||U.click()}function SM(U){const G=U.target,Ae=G.files?Array.from(G.files):[];G.value="",j3(Ae)}async function j3(U){if(U.length===0)return;const G=!!(i.endpoints.uploadInit&&i.endpoints.uploadFinalize);for(const Ae of U)G&&Ae.size>=10*1024*1024&&await AM(Ae)||await CM(Ae);await I()}async function CM(U){const G=crypto.randomUUID(),Ae=je(x.value);$.value=[...$.value,{id:G,file:U,path:Ae,totalBytes:U.size,uploadedBytes:0,percent:0,status:"uploading",cancel(){}}];const Pe=_t=>{const lt=$.value.findIndex(Ur=>Ur.id===G);if(lt===-1)return;const ir=[...$.value];ir[lt]={...ir[lt],..._t},$.value=ir};try{await i.uploadMultipart(Ae,[U],_t=>{Pe({percent:_t,uploadedBytes:Math.round(_t/100*U.size)}),a("upload-progress",{uploadId:G,percent:_t,done:_t>=100})}),Pe({percent:100,uploadedBytes:U.size,status:"done"}),a("upload-progress",{uploadId:G,percent:100,done:!0})}catch(_t){Pe({status:"error"}),a("error",{message:_t.message,context:{op:"upload",file:U.name}})}}async function AM(U){const G=crypto.randomUUID();let Ae=!1;try{return await c.uploadFile({path:je(x.value),file:U,onProgress:Pe=>{if(Ae){const _t=$.value.findIndex(lt=>lt.id===G);if(_t!==-1){const lt=[...$.value];lt[_t]={...Pe,id:G},$.value=lt}}else{if(Pe.status!=="uploading"&&Pe.uploadedBytes<=0)return;$.value=[...$.value,{...Pe,id:G}],Ae=!0}a("upload-progress",{uploadId:Pe.uploadId??G,percent:Pe.percent,done:Pe.status==="done"})}}),!0}catch{return Ae&&($.value=$.value.filter(Pe=>Pe.id!==G)),!1}}const Ji=de(0),Qi=de(!1);function Bd(U){const G=U.dataTransfer;if(!G||G.types&&G.types.includes(Al))return!1;if(G.items&&G.items.length>0){let Ae=!1;for(const Pe of Array.from(G.items))if(Pe.kind==="file"){Ae=!0;break}return Ae}return G.types?G.types.includes("Files"):!1}function EM(U){Bd(U)&&(U.preventDefault(),Ji.value++,Qi.value=!0)}function TM(){Ji.value=Math.max(0,Ji.value-1),Ji.value===0&&(Qi.value=!1)}function MM(U){Bd(U)&&U.preventDefault()}function DM(U){var Ae,Pe;if((Ae=U.dataTransfer)!=null&&Ae.types.includes(Al)){Ji.value=0,Qi.value=!1;return}if(!Bd(U)){Ji.value=0,Qi.value=!1;return}if(U.preventDefault(),Ji.value=0,Qi.value=!1,!D.value){F(z.value==="en"?"Read-only here":"Burada yazma yetkiniz yok");return}const G=(Pe=U.dataTransfer)!=null&&Pe.files?Array.from(U.dataTransfer.files):[];G.length!==0&&j3(G)}function G3(U){var G;(G=U.dataTransfer)!=null&&G.types.includes("Files")&&U.preventDefault()}function V3(U){const G=ke.value,Ae=U.target;G&&Ae&&!G.contains(Ae)&&U.preventDefault()}vr(()=>{window.addEventListener("dragover",G3),window.addEventListener("drop",V3)}),Br(()=>{window.removeEventListener("dragover",G3),window.removeEventListener("drop",V3),window.removeEventListener("hashchange",Zi)});const Nd=mt(()=>Y.value.mode!=="cut"?new Set:new Set(Y.value.items.map(U=>U.path)));function q3(U,G){if(!G.dataTransfer)return;if(U.basename===".trash"){G.preventDefault();return}j.has(U.path)||j.click(U.path);const Ae=j.nodes.value.filter(Pe=>!Nd.value.has(Pe.path)).filter(Pe=>Pe.basename!==".trash").map(Pe=>({path:Pe.path,basename:Pe.basename,type:Pe.type}));G.dataTransfer.setData(Al,JSON.stringify(Ae)),G.dataTransfer.setData("text/plain",Ae.map(Pe=>Pe.path).join(`
23
- `)),G.dataTransfer.effectAllowed="move"}async function W3(U,G,Ae){try{if(i.endpoints.moveAsync){const{op:Pe}=await i.moveAsync(U,G,je(x.value));d.register(Pe),F("Taşıma kuyruğa alındı")}else await i.move(je(x.value),U,G),await I();j.clear()}catch(Pe){a("error",{message:Pe.message,context:{op:Ae,targetDir:G}})}}async function K3(U,G){var ir;if(U.type!=="dir")return;const Ae=(ir=G.dataTransfer)==null?void 0:ir.getData(Al);if(!Ae)return;let Pe=[];try{Pe=JSON.parse(Ae)}catch{return}if(Pe.length===0)return;const _t=U.path,lt=Pe.map(Ur=>Ur.path).filter(Ur=>Ur&&Ur!==_t&&!_t.startsWith(Ur+"/"));if(lt.length===0){F("Aynı klasöre taşınamaz");return}await W3(lt,_t,"move-dnd")}async function IM(U,G){var ir;const Ae=(ir=G.dataTransfer)==null?void 0:ir.getData(Al);if(!Ae)return;let Pe=[];try{Pe=JSON.parse(Ae)}catch{return}if(Pe.length===0)return;const _t=U,lt=Pe.map(Ur=>Ur.path).filter(Ur=>Ur&&Ur!==_t&&!_t.startsWith(Ur+"/"));lt.length!==0&&await W3(lt,_t,"move-dnd-crumb")}function zM(U){U.cancel()}function FM(U){$.value=$.value.filter(G=>G.id!==U.id)}function OM(U){if(Te.value&&!U){I("");return}if(Te.value){I(W(U));return}I(Q(U))}async function X3(U){try{await navigator.clipboard.writeText(U),F(X("breadcrumb.copy_path"))}catch{}}function el(U={}){return i.authHeadersSync({...U})}return(U,G)=>{var Ae,Pe,_t;return J(),ne("div",{ref_key:"rootEl",ref:ke,class:Kt(["fe",{"fe--theme-light":e.config.theme==="light","fe--theme-dark":e.config.theme==="dark","fe--is-dragover":Qi.value}]),tabindex:"-1",onDragenter:EM,onDragover:MM,onDragleave:TM,onDrop:DM,onContextmenu:oM},[Bt(F8,{ref_key:"toolbarRef",ref:Fe,"view-mode":A.value,"search-query":S.value,"trash-active":M.value,actions:uM.value,"selection-mode":aM.value,"paste-enabled":!!Y.value.mode,"convert-enabled":!!P.value,"can-go-up":N.value,"at-virtual-root":R.value,"can-write":D.value,locale:z.value,"onUpdate:viewMode":G[0]||(G[0]=lt=>A.value=lt),"onUpdate:searchQuery":G[1]||(G[1]=lt=>S.value=lt),onNewFolder:G[2]||(G[2]=lt=>he.value=!0),onUpload:kM,onRefresh:G[3]||(G[3]=()=>I()),onGoUp:V,onAction:iM,onOpenRecents:G[4]||(G[4]=lt=>_e.value=!0)},null,8,["view-mode","search-query","trash-active","actions","selection-mode","paste-enabled","convert-enabled","can-go-up","at-virtual-root","can-write","locale"]),Bt(Y8,{dirname:v.value,adapter:b.value,"root-label":b.value,locale:z.value,"multi-storage-root":Te.value,"root-path":Le(h),onNavigate:OM,onCopyPath:X3,onCrumbContext:lM,onCrumbDrop:IM},null,8,["dirname","adapter","root-label","locale","multi-storage-root","root-path"]),Le(l).length?(J(),ne("div",fw,[Bt(p8,{users:Le(l),locale:z.value},null,8,["users","locale"])])):tt("",!0),L("div",{class:"fe__body",onClick:G[7]||(G[7]=gr(lt=>Le(j).clear(),["self"]))},[f.value&&g.value.length===0?(J(),ne("div",dw,[G[23]||(G[23]=L("span",{class:"fe__spinner","aria-hidden":"true"},null,-1)),L("p",hw,ie(Le(X)("loading")),1)])):C.value?(J(),ne("div",pw,[G[24]||(G[24]=L("span",{class:"fe__notfound-icon","aria-hidden":"true"},"📁",-1)),L("p",vw,ie(Le(X)("notFound.title")),1),L("p",mw,ie(C.value),1),L("p",gw,ie(Le(X)("notFound.desc")),1),L("button",{type:"button",class:"fe-btn",onClick:K},ie(Le(X)("notFound.goRoot")),1)])):A.value==="list"?(J(),kr(m7,{key:2,files:g.value,selected:Le(j).selected.value,clipped:Nd.value,"show-parent-path":!!S.value,locale:z.value,loading:f.value,"starred-ids":ae.value,"api-base":n.config.apiBase??"","auth-headers":()=>el(),onClickRow:G[5]||(G[5]=(lt,ir)=>Le(j).click(lt.path,ir)),onDblRow:Jt,onContextRow:N3,onItemDragStart:q3,onItemDropInto:K3,onStarChange:Ce},null,8,["files","selected","clipped","show-parent-path","locale","loading","starred-ids","api-base","auth-headers"])):(J(),kr(C7,{key:3,files:g.value,selected:Le(j).selected.value,clipped:Nd.value,"show-parent-path":!!S.value,locale:z.value,loading:f.value,"thumb-src":Le(u).src,onClickCard:G[6]||(G[6]=(lt,ir)=>Le(j).click(lt.path,ir)),onDblCard:Jt,onContextCard:N3,onItemDragStart:q3,onItemDropInto:K3},null,8,["files","selected","clipped","show-parent-path","locale","loading","thumb-src"]))]),Qi.value?(J(),ne("div",bw,[...G[25]||(G[25]=[L("div",{class:"fe__dragover-card"},[L("span",{class:"fe-icon"},"⬆"),L("p",null,"Dosyaları buraya bırak")],-1)])])):tt("",!0),Bt(U7,{jobs:$.value,locale:z.value,onCancel:zM,onDismiss:FM},null,8,["jobs","locale"]),Bt(W7,{ops:Le(d).ops.value,locale:z.value,onDismiss:G[8]||(G[8]=lt=>Le(d).dismiss(lt))},null,8,["ops","locale"]),Bt(I7,{ref_key:"ctxRef",ref:se,locale:z.value,theme:e.config.theme||"auto",actions:sM.value,onSelect:cM},null,8,["locale","theme","actions"]),Bt(ey,{open:he.value,locale:z.value,onClose:G[9]||(G[9]=lt=>he.value=!1),onSubmit:vM},null,8,["open","locale"]),Bt(ry,{open:le.value,locale:z.value,"current-name":((Ae=Se.value)==null?void 0:Ae.basename)||"",onClose:G[10]||(G[10]=lt=>le.value=!1),onSubmit:mM},null,8,["open","locale","current-name"]),Bt(ny,{open:oe.value,locale:z.value,count:Le(j).size.value,onClose:G[11]||(G[11]=lt=>oe.value=!1),onConfirm:gM},null,8,["open","locale","count"]),Bt(gy,{open:ue.value,locale:z.value,share:Ve.value,onClose:wM,onSubmit:_M,onToast:F},null,8,["open","locale","share"]),Bt(ux,{open:me.value,locale:z.value,file:He.value,theme:e.config.theme||"auto","preview-url":lt=>Le(i).previewUrl(lt),"download-url":lt=>Le(i).downloadUrl(lt),"only-office-base":Ne.value,"only-office-config-endpoint":ge.value,"save-text-endpoint":Le(i).endpoints.saveText||null,"open-mode":$e.value,"auth-headers":()=>el({"Content-Type":"application/json"}),"auth-credentials":Le(i).credentialsMode(),"drawio-url":be.value,"pdf-worker-url":n.config.pdfWorkerUrl||null,"pdf-save-url":n.config.pdfSaveUrl||null,"viewer-base-url":n.config.viewerBaseUrl||null,onClose:G[12]||(G[12]=lt=>me.value=!1)},null,8,["open","locale","file","theme","preview-url","download-url","only-office-base","only-office-config-endpoint","save-text-endpoint","open-mode","auth-headers","auth-credentials","drawio-url","pdf-worker-url","pdf-save-url","viewer-base-url"]),Xe.value&&it.value&&P.value?(J(),kr(kx,{key:2,"convert-url":P.value,"file-name":((Pe=it.value)==null?void 0:Pe.basename)||((_t=it.value)==null?void 0:_t.path)||"","fetch-bytes":()=>{var lt;return Le(i).fetchArrayBuffer(((lt=it.value)==null?void 0:lt.path)??"")},upload:lt=>Le(i).uploadMultipart(je(x.value),[lt]).then(()=>{}),onClose:G[13]||(G[13]=lt=>Xe.value=!1),onDone:xM},null,8,["convert-url","file-name","fetch-bytes","upload"])):tt("",!0),ct.value&&ot.value?(J(),kr(cw,{key:3,api:Le(i),path:ot.value.path,"is-dir":ot.value.type==="dir",size:typeof ot.value.size=="number"?ot.value.size:void 0,locale:z.value==="en"?"en":"tr",onClose:G[14]||(G[14]=lt=>ct.value=!1)},null,8,["api","path","is-dir","size","locale"])):tt("",!0),Bt(ho,{name:"fe-modal"},{default:Tr(()=>[_e.value?(J(),ne("div",{key:0,class:Kt(["fe fe-modal__backdrop fe-recents__backdrop",{"fe--theme-light":e.config.theme==="light","fe--theme-dark":e.config.theme==="dark"}]),onClick:G[18]||(G[18]=lt=>_e.value=!1)},[L("div",{class:"fe-recents__panel",onClick:G[17]||(G[17]=gr(()=>{},["stop"]))},[L("div",yw,[L("strong",null,ie(z.value==="en"?"Recently opened":"Son açılanlar"),1),L("button",{class:"fe-recents__close","aria-label":"Close",onClick:G[15]||(G[15]=lt=>_e.value=!1)},"×")]),Bt(G8,{"api-base":n.config.apiBase??"","auth-headers":()=>el(),limit:20,"refresh-key":ve.value,onOpen:Ee,onError:G[16]||(G[16]=lt=>a("error",{message:lt,context:{op:"recents"}}))},null,8,["api-base","auth-headers","refresh-key"])])],2)):tt("",!0)]),_:1}),Bt(ho,{name:"fe-modal"},{default:Tr(()=>[pe.value&&ye.value&&typeof ye.value.id=="number"?(J(),ne("div",{key:0,class:"fe-modal__backdrop",onClick:G[22]||(G[22]=lt=>pe.value=!1)},[L("div",{class:"fe-modal__card fe-modal__card--md",onClick:G[21]||(G[21]=gr(()=>{},["stop"]))},[L("header",xw,[L("h2",_w,ie(z.value==="en"?"Tags":"Etiketler")+" — "+ie(ye.value.basename),1),L("button",{class:"fe-modal__close","aria-label":"Close",onClick:G[19]||(G[19]=lt=>pe.value=!1)},"×")]),L("div",ww,[Bt(P8,{"node-id":ye.value.id,"api-base":n.config.apiBase??"","auth-headers":()=>el(),onError:G[20]||(G[20]=lt=>a("error",{message:lt,context:{op:"tags"}}))},null,8,["node-id","api-base","auth-headers"])])])])):tt("",!0)]),_:1}),L("input",{ref_key:"fileInputEl",ref:fe,type:"file",multiple:"",class:"fe__file-input",onChange:SM},null,544),Bt(ho,{name:"fe-toast"},{default:Tr(()=>[re.value?(J(),ne("div",kw,ie(re.value),1)):tt("",!0)]),_:1})],34)}}}),Cw='.fx-presence[data-v-f9ddf216]{display:inline-flex;align-items:center;gap:.5rem;max-width:100%}.fx-presence-avatars[data-v-f9ddf216]{display:inline-flex;align-items:center}.fx-presence-avatar[data-v-f9ddf216]{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-left:-.4rem;border-radius:9999px;border:2px solid var(--fx-presence-ring, #ffffff);color:#fff;font-size:.6rem;font-weight:600;line-height:1;-webkit-user-select:none;user-select:none}.fx-presence-avatar[data-v-f9ddf216]:first-child{margin-left:0}.fx-presence-dot[data-v-f9ddf216]{position:absolute;right:-1px;bottom:-1px;width:.5rem;height:.5rem;border-radius:9999px;background:#22c55e;border:1.5px solid var(--fx-presence-ring, #ffffff)}.fx-presence-more[data-v-f9ddf216]{margin-left:.15rem;font-size:.7rem;color:#71717a}.fx-presence--wide[data-v-f9ddf216]{flex:1 1 auto;min-width:0}.fx-presence-chips[data-v-f9ddf216]{display:flex;align-items:center;gap:.4rem;overflow-x:auto;min-width:0;padding-bottom:2px;scrollbar-width:thin}.fx-presence-chip[data-v-f9ddf216]{display:inline-flex;align-items:center;gap:.35rem;flex:0 0 auto;padding:.15rem .5rem .15rem .2rem;border-radius:9999px;background:#f4f4f5;font-size:.75rem;color:#3f3f46;white-space:nowrap}.fx-presence-chip .fx-presence-avatar[data-v-f9ddf216]{margin-left:0}.fx-presence-chip-name[data-v-f9ddf216]{font-weight:500}.fx-presence-chip-file[data-v-f9ddf216]{color:#71717a;max-width:12rem;overflow:hidden;text-overflow:ellipsis}.fx-presence-toggle[data-v-f9ddf216]{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:none;border-radius:9999px;background:transparent;color:#71717a;font-size:.9rem;line-height:1;cursor:pointer}.fx-presence-toggle[data-v-f9ddf216]:hover{background:#e4e4e7;color:#3f3f46}.dark{background:#27272a;color:#d4d4d8}.fx-presence-text[data-v-f9ddf216]{font-size:.75rem;color:#71717a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:14rem}.fx-presence-file[data-v-f9ddf216]{color:#52525b;font-weight:500}.dark{--fx-presence-ring: #18181b}.filex-tag-picker[data-v-7040583c]{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.filex-tag-picker.is-loading[data-v-7040583c]{opacity:.6;pointer-events:none}.filex-tag[data-v-7040583c]{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500;color:#fff;background:var(--filex-tag-color)}.filex-tag-x[data-v-7040583c]{background:transparent;border:none;color:#ffffffd9;cursor:pointer;padding:0 2px;font-size:14px;line-height:1}.filex-tag-x[data-v-7040583c]:hover{color:#fff}.filex-tag-add input[data-v-7040583c]{border:1px solid var(--filex-border, #d1d5db);border-radius:12px;padding:2px 10px;font-size:12px;width:110px}.filex-tag-add-btn[data-v-7040583c]{border:1px dashed var(--filex-border, #d1d5db);background:transparent;border-radius:999px;padding:2px 10px;font-size:12px;color:var(--filex-text-muted, #6b7280);cursor:pointer}.filex-tag-add-btn[data-v-7040583c]:hover{border-color:var(--filex-accent, #6366f1);color:var(--filex-accent, #6366f1)}.filex-recent[data-v-559f2c71]{background:var(--fe-bg-elev, var(--filex-bg-card, #ffffff));border:1px solid var(--fe-border, var(--filex-border, #e5e7eb));border-radius:8px;padding:12px;font-size:13px}.filex-recent header[data-v-559f2c71]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.filex-recent h3[data-v-559f2c71]{margin:0;font-size:13px;font-weight:600;color:var(--fe-text, var(--filex-text, #111827))}.filex-recent-refresh[data-v-559f2c71]{background:transparent;border:none;color:var(--fe-text-muted, var(--filex-text-muted, #9ca3af));cursor:pointer;font-size:14px;padding:2px 6px}.filex-recent ul[data-v-559f2c71]{list-style:none;margin:0;padding:0}.filex-recent-item[data-v-559f2c71]{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:none;padding:6px 8px;cursor:pointer;border-radius:4px;text-align:left}.filex-recent-item[data-v-559f2c71]:hover{background:var(--fe-bg-hover, var(--filex-bg-soft, #f3f4f6))}.filex-recent-name[data-v-559f2c71]{color:var(--fe-text, var(--filex-text, #111827));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filex-recent-meta[data-v-559f2c71]{color:var(--fe-text-muted, var(--filex-text-muted, #9ca3af));font-size:11px;margin-left:8px;flex-shrink:0}.filex-recent-empty[data-v-559f2c71]{color:var(--fe-text-muted, var(--filex-text-muted, #9ca3af));margin:4px 0 0}.filex-star-btn[data-v-12a2f9c5]{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid transparent;border-radius:6px;padding:4px 8px;color:var(--filex-text-muted, #9ca3af);cursor:pointer;transition:color .12s,background .12s}.filex-star-btn[data-v-12a2f9c5]:hover{color:var(--filex-accent-amber, #f59e0b);background:var(--filex-bg-soft, rgba(0, 0, 0, .04))}.filex-star-btn.is-starred[data-v-12a2f9c5]{color:var(--filex-accent-amber, #f59e0b)}.filex-star-btn.is-compact[data-v-12a2f9c5]{padding:4px}.filex-star-label[data-v-12a2f9c5]{font-size:13px}.fe-preview__code-editor.is-hidden{display:none}.fe-preview__viewer{width:100%;height:100%;min-height:70vh;display:flex;flex-direction:column}.fe-preview .fe-preview__viewer{align-self:stretch}.fe-preview__md-mermaid{display:flex;justify-content:center;margin:16px 0}.fe-preview__md-mermaid svg{max-width:100%;height:auto}.fe-preview__md-math{margin:16px 0;text-align:center;overflow-x:auto}.filex-cv__bg[data-v-4363f1ac]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0000008c;display:flex;align-items:center;justify-content:center}.filex-cv[data-v-4363f1ac]{width:min(560px,92vw);max-height:80vh;overflow:hidden;display:flex;flex-direction:column;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1f29);border:1px solid var(--fe-border, #e2e6ed);border-radius:12px;box-shadow:0 20px 60px #00000059}.filex-cv__head[data-v-4363f1ac]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--fe-border, #e2e6ed)}.filex-cv__head h3[data-v-4363f1ac]{margin:0;font-size:14px;font-weight:600}.filex-cv__x[data-v-4363f1ac]{border:0;background:none;cursor:pointer;font-size:16px;color:var(--fe-text-muted, #5a6475)}.filex-cv__msg[data-v-4363f1ac]{padding:28px;text-align:center;color:var(--fe-text-muted, #5a6475)}.filex-cv__ok[data-v-4363f1ac]{color:#059669}.filex-cv__src[data-v-4363f1ac]{padding:12px 16px 0;font-size:13px;color:var(--fe-text-muted, #5a6475)}.filex-cv__search[data-v-4363f1ac]{margin:8px 16px;padding:8px 10px;border:1px solid var(--fe-border, #e2e6ed);border-radius:8px;background:var(--fe-bg-elev, #f7f8fa);color:inherit;font-size:13px}.filex-cv__list[data-v-4363f1ac]{flex:1;overflow-y:auto;padding:4px 12px 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.filex-cv__fmt[data-v-4363f1ac]{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:8px 10px;cursor:pointer;text-align:left;border:1px solid var(--fe-border, #e2e6ed);border-radius:8px;background:var(--fe-bg-elev, #f7f8fa);color:inherit}.filex-cv__fmt small[data-v-4363f1ac]{color:var(--fe-text-muted, #5a6475);font-size:11px}.filex-cv__fmt.is-sel[data-v-4363f1ac]{border-color:#44c878;background:#44c8781f}.filex-cv__empty[data-v-4363f1ac]{grid-column:1 / -1;text-align:center;color:var(--fe-text-muted, #5a6475);padding:16px}.filex-cv__err[data-v-4363f1ac]{padding:0 16px;color:var(--fe-danger, #dc2626);font-size:13px}.filex-cv__foot[data-v-4363f1ac]{padding:12px 16px;border-top:1px solid var(--fe-border, #e2e6ed);text-align:right}.filex-cv__convert[data-v-4363f1ac]{padding:8px 18px;border:0;border-radius:8px;cursor:pointer;background:#44c878;color:#03200f;font-weight:600;font-size:13px}.filex-cv__convert[data-v-4363f1ac]:disabled{opacity:.5;cursor:default}.filex-cv__frame[data-v-4363f1ac]{position:absolute;width:0;height:0;border:0;left:-9999px}.fx-perm-overlay[data-v-23e7820c]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;font-family:var(--fe-font)}.fx-perm-modal[data-v-23e7820c]{display:flex;flex-direction:column;background:var(--fe-bg);color:var(--fe-text);width:min(520px,94vw);max-height:86vh;border:1px solid var(--fe-border);border-radius:var(--fe-radius-lg, 14px);box-shadow:var(--fe-shadow);font-size:14px;overflow:hidden}.fx-perm-head[data-v-23e7820c]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px 12px;flex:none}.fx-perm-title[data-v-23e7820c]{display:flex;align-items:center;gap:10px;min-width:0}.fx-perm-ico[data-v-23e7820c]{font-size:22px;line-height:1}.fx-perm-titletext[data-v-23e7820c]{display:flex;flex-direction:column;min-width:0}.fx-perm-title h3[data-v-23e7820c]{margin:0;font-size:15px;font-weight:600;color:var(--fe-text)}.fx-perm-sub[data-v-23e7820c]{font-size:12px;color:var(--fe-text);max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-perm-subdim[data-v-23e7820c]{color:var(--fe-text-muted)}.fx-perm-x[data-v-23e7820c]{background:none;border:none;font-size:17px;cursor:pointer;color:var(--fe-text-muted);flex:none;line-height:1;padding:2px 4px;border-radius:6px}.fx-perm-x[data-v-23e7820c]:hover{color:var(--fe-text);background:var(--fe-bg-hover)}.fx-perm-tabs[data-v-23e7820c]{display:flex;gap:2px;padding:0 18px;border-bottom:1px solid var(--fe-border);flex:none}.fx-perm-tab[data-v-23e7820c]{background:none;border:none;border-bottom:2px solid transparent;padding:8px 12px;cursor:pointer;color:var(--fe-text-muted);font-size:13px;font-family:inherit;font-weight:500}.fx-perm-tab[data-v-23e7820c]:hover{color:var(--fe-text)}.fx-perm-tab.is-active[data-v-23e7820c]{color:var(--fe-primary);border-bottom-color:var(--fe-primary)}.fx-perm-body[data-v-23e7820c]{flex:1 1 auto;overflow-y:auto;padding:14px 18px 18px}.fx-perm-addcard[data-v-23e7820c]{padding:12px;border-radius:var(--fe-radius-md, 10px);background:var(--fe-bg-elev);border:1px solid var(--fe-border)}.fx-perm-section[data-v-23e7820c]{margin-top:16px}.fx-perm-section h4[data-v-23e7820c]{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fe-text-muted)}.fx-perm-empty[data-v-23e7820c]{color:var(--fe-text-muted);font-size:13px;padding:8px 2px}.fx-perm-person[data-v-23e7820c]{display:flex;align-items:center;gap:10px;padding:7px 2px}.fx-perm-person+.fx-perm-person[data-v-23e7820c]{border-top:1px solid var(--fe-border)}.fx-perm-inh[data-v-23e7820c]{color:var(--fe-text-muted)}.fx-perm-av[data-v-23e7820c]{width:28px;height:28px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--fe-primary);color:var(--fe-text-on-primary, #fff);font-size:12px;font-weight:600}.fx-perm-av--dim[data-v-23e7820c]{background:var(--fe-bg-hover);color:var(--fe-text-muted)}.fx-perm-user[data-v-23e7820c]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fe-text);min-width:0}.fx-perm-from[data-v-23e7820c]{font-size:11px;color:var(--fe-text-muted);white-space:nowrap}.fx-perm-badge[data-v-23e7820c]{font-size:11px;padding:2px 9px;border-radius:999px;background:var(--fe-bg-hover);color:var(--fe-text)}.fx-perm-sel[data-v-23e7820c],.fx-perm-input[data-v-23e7820c]{padding:7px 9px;border-radius:var(--fe-radius-sm, 7px);border:1px solid var(--fe-border);background:var(--fe-bg);color:var(--fe-text);font-size:13px;font-family:inherit}.fx-perm-sel--sm[data-v-23e7820c]{padding:5px 7px;font-size:12px}.fx-perm-sel[data-v-23e7820c]:focus,.fx-perm-input[data-v-23e7820c]:focus{outline:none;border-color:var(--fe-primary)}.fx-perm-add[data-v-23e7820c]{display:flex;gap:8px;align-items:stretch}.fx-perm-emailwrap[data-v-23e7820c]{position:relative;flex:1;min-width:120px}.fx-perm-input[data-v-23e7820c]{width:100%;box-sizing:border-box}.fx-perm-suggest[data-v-23e7820c]{position:absolute;top:calc(100% + 3px);left:0;right:0;z-index:5;margin:0;padding:4px;list-style:none;background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm, 7px);box-shadow:var(--fe-shadow);max-height:210px;overflow:auto}.fx-perm-suggest li[data-v-23e7820c]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer}.fx-perm-suggest li[data-v-23e7820c]:hover{background:var(--fe-bg-hover)}.fx-perm-suggest-av[data-v-23e7820c]{width:24px;height:24px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--fe-bg-hover);color:var(--fe-text);font-size:11px;font-weight:600}.fx-perm-suggest-txt[data-v-23e7820c]{display:flex;flex-direction:column;min-width:0}.fx-perm-suggest-name[data-v-23e7820c]{color:var(--fe-text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-perm-suggest-meta[data-v-23e7820c]{color:var(--fe-text-muted);font-size:11px}.fx-perm-check[data-v-23e7820c]{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--fe-text);cursor:pointer}.fx-perm-btn[data-v-23e7820c]{padding:7px 13px;border-radius:var(--fe-radius-sm, 7px);border:1px solid var(--fe-border);background:var(--fe-bg);color:var(--fe-text);font-size:13px;font-family:inherit;cursor:pointer;white-space:nowrap}.fx-perm-btn[data-v-23e7820c]:hover:not(:disabled){background:var(--fe-bg-hover)}.fx-perm-btn[data-v-23e7820c]:disabled{opacity:.55;cursor:default}.fx-perm-btn--sm[data-v-23e7820c]{padding:5px 10px;font-size:12px}.fx-perm-btn--primary[data-v-23e7820c]{background:var(--fe-primary);border-color:var(--fe-primary);color:var(--fe-text-on-primary, #fff)}.fx-perm-btn--primary[data-v-23e7820c]:hover:not(:disabled){background:var(--fe-primary-hover, var(--fe-primary));filter:brightness(1.05)}.fx-perm-btn--ghost[data-v-23e7820c]{background:none;border-color:transparent;color:var(--fe-primary);padding-left:2px}.fx-perm-btn--ghost[data-v-23e7820c]:hover:not(:disabled){background:none;text-decoration:underline}.fx-perm-del[data-v-23e7820c]{background:none;border:none;color:var(--fe-danger);cursor:pointer;font-size:14px;flex:none;padding:2px 4px}.fx-perm-del[data-v-23e7820c]:hover:not(:disabled){filter:brightness(1.15)}.fx-perm-invite[data-v-23e7820c]{margin-top:10px;padding-top:10px;border-top:1px dashed var(--fe-border)}.fx-perm-invite-actions[data-v-23e7820c]{display:flex;flex-direction:column;gap:8px;margin-top:6px}.fx-perm-invite-row[data-v-23e7820c]{display:flex;gap:8px;align-items:stretch}.fx-perm-invite-row .fx-perm-btn--primary[data-v-23e7820c]{flex:1}.fx-perm-share-opts[data-v-23e7820c]{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.fx-perm-expiry[data-v-23e7820c]{display:inline-flex;gap:6px;align-items:center;font-size:13px}.fx-perm-share-opts .fx-perm-btn--primary[data-v-23e7820c]{margin-left:auto}.fx-perm-result[data-v-23e7820c]{margin-top:12px;padding-top:12px;border-top:1px solid var(--fe-border)}.fx-perm-linkrow[data-v-23e7820c]{display:flex;gap:8px;align-items:center}.fx-perm-link[data-v-23e7820c]{color:var(--fe-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;text-decoration:none}.fx-perm-link[data-v-23e7820c]:hover{text-decoration:underline}.fx-perm-pin[data-v-23e7820c]{margin:8px 0 0;font-size:13px;color:var(--fe-text);display:flex;align-items:center;gap:8px}.fx-perm-pin code[data-v-23e7820c],.fx-perm-reveal code[data-v-23e7820c]{font-family:var(--fe-font-mono, monospace);background:var(--fe-bg-hover);padding:1px 6px;border-radius:5px}.fx-perm-mailrow[data-v-23e7820c]{display:flex;gap:8px;margin-top:10px}.fx-perm-mailrow .fx-perm-input[data-v-23e7820c]{flex:1}.fx-perm-hint[data-v-23e7820c]{font-size:13px;color:var(--fe-text-muted);margin:10px 0 0}.fx-perm-sharebtn[data-v-23e7820c]{display:flex;width:100%;align-items:center;justify-content:center;gap:6px;margin-top:8px}.fx-perm-dropintro[data-v-23e7820c]{margin:0 0 12px;line-height:1.4}.fx-perm-advtoggle[data-v-23e7820c]{margin-top:10px;padding-left:2px}.fx-perm-adv[data-v-23e7820c]{margin-top:8px;padding-top:10px;border-top:1px dashed var(--fe-border);display:flex;flex-direction:column;gap:8px}.fx-perm-adv-row[data-v-23e7820c]{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.fx-perm-input--sm[data-v-23e7820c]{width:130px;padding:5px 8px;font-size:12px}.fx-perm-warn[data-v-23e7820c]{background:#f59e0b24;border:1px solid rgba(245,158,11,.4);border-radius:var(--fe-radius-sm, 7px);padding:8px 10px;font-size:13px;margin-bottom:10px;color:var(--fe-text)}.fx-perm-notice[data-v-23e7820c]{margin-top:8px;font-size:13px;color:var(--fe-text-muted)}.fx-perm-reveal[data-v-23e7820c]{margin-top:8px;font-size:13px;word-break:break-all;color:var(--fe-text)}.fx-perm-muted[data-v-23e7820c]{color:var(--fe-text-muted);font-size:13px}:root{--fe-bg: #ffffff;--fe-bg-elev: #f7f8fa;--fe-bg-hover: #edf0f5;--fe-bg-selected: #dfe8ff;--fe-border: #e2e6ed;--fe-border-strong: #c7ced9;--fe-text: #1a1e27;--fe-text-muted: #5a6475;--fe-text-on-primary: #ffffff;--fe-primary: #3b82f6;--fe-primary-hover: #2563eb;--fe-danger: #dc2626;--fe-danger-hover: #b91c1c;--fe-shadow: 0 10px 32px rgba(15, 23, 42, .14);--fe-shadow-sm: 0 2px 6px rgba(15, 23, 42, .08);--fe-radius: 8px;--fe-radius-sm: 4px;--fe-radius-lg: 12px;--fe-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fe-font-mono: ui-monospace, "SF Mono", Consolas, Menlo, monospace;--fe-gap: 12px}.fe--theme-dark,:root[data-theme=dark] .fe,.fe.fe--theme-dark,:root.dark,.dark,:root.dark .fe,.dark .fe,.fe-ctx-backdrop--theme-dark,.fe-ctx-backdrop--theme-auto[data-prefers-dark="1"]{--fe-bg: #0f1419;--fe-bg-elev: #161c25;--fe-bg-hover: #1f2733;--fe-bg-selected: #23324a;--fe-border: #2a323e;--fe-border-strong: #3a4453;--fe-text: #e5e9f0;--fe-text-muted: #8b95a7;--fe-primary: #60a5fa;--fe-primary-hover: #3b82f6;--fe-danger: #f87171;--fe-danger-hover: #ef4444;--fe-shadow: 0 12px 32px rgba(0, 0, 0, .45);--fe-shadow-sm: 0 2px 6px rgba(0, 0, 0, .25)}@media (prefers-color-scheme: dark){.fe:not(.fe--theme-light),.fe-ctx-backdrop--theme-auto:not(.fe-ctx-backdrop--theme-light){--fe-bg: #0f1419;--fe-bg-elev: #161c25;--fe-bg-hover: #1f2733;--fe-bg-selected: #23324a;--fe-border: #2a323e;--fe-border-strong: #3a4453;--fe-text: #e5e9f0;--fe-text-muted: #8b95a7;--fe-primary: #60a5fa;--fe-primary-hover: #3b82f6;--fe-danger: #f87171;--fe-danger-hover: #ef4444;--fe-shadow: 0 12px 32px rgba(0, 0, 0, .45);--fe-shadow-sm: 0 2px 6px rgba(0, 0, 0, .25)}}.fe{position:relative;display:flex;flex-direction:column;min-height:420px;height:100%;background:var(--fe-bg);color:var(--fe-text);font-family:var(--fe-font);font-size:14px;border:1px solid var(--fe-border);border-radius:var(--fe-radius);overflow:hidden;outline:none}.fe *{box-sizing:border-box}.fe__body{flex:1 1 auto;overflow:auto;background:var(--fe-bg)}.fe__presence{flex:0 0 auto;padding:.25rem .75rem;border-bottom:1px solid var(--fe-border, rgba(0, 0, 0, .06))}.fe__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:240px;height:100%;color:var(--fe-text-muted)}.fe__spinner{width:34px;height:34px;border-radius:50%;border:3px solid color-mix(in srgb,var(--fe-text-muted) 30%,transparent);border-top-color:var(--fe-primary);animation:fe-spin .7s linear infinite}.fe__loading-text{margin:0;font-size:13px}@keyframes fe-spin{to{transform:rotate(360deg)}}.fe__notfound{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:240px;height:100%;color:var(--fe-text-muted);text-align:center;padding:24px}.fe__notfound-icon{font-size:40px;filter:grayscale(1);opacity:.6}.fe__notfound-title{margin:4px 0 0;font-size:15px;font-weight:600;color:var(--fe-text)}.fe__notfound-path{margin:0;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;word-break:break-all;max-width:480px}.fe__notfound-desc{margin:0 0 10px;font-size:13px}.fe__file-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.fe-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--fe-bg-elev);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);color:var(--fe-text);font:inherit;cursor:pointer;transition:background .12s,border-color .12s;white-space:nowrap}.fe-btn:hover:not(:disabled){background:var(--fe-bg-hover);border-color:var(--fe-border-strong)}.fe-btn:disabled{opacity:.5;cursor:not-allowed}.fe-btn--primary{background:var(--fe-primary);border-color:var(--fe-primary);color:var(--fe-text-on-primary)}.fe-btn--primary:hover:not(:disabled){background:var(--fe-primary-hover);border-color:var(--fe-primary-hover)}.fe-btn--danger{background:var(--fe-danger);border-color:var(--fe-danger);color:var(--fe-text-on-primary)}.fe-btn--danger:hover:not(:disabled){background:var(--fe-danger-hover);border-color:var(--fe-danger-hover)}.fe-btn--icon-only{padding:6px 8px}.fe-btn.is-active{background:var(--fe-bg-selected);border-color:var(--fe-primary)}.fe-btn__label{line-height:1}.fe-icon{font-size:1.05em;line-height:1}.fe-toolbar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--fe-bg-elev);border-bottom:1px solid var(--fe-border);flex-wrap:wrap}.fe-toolbar__primary{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.fe-toolbar__spacer{flex:1 1 auto}.fe-toolbar__search-group{display:inline-flex;align-items:center;gap:4px;background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);padding:2px}.fe-toolbar__search-group .fe-search__input{border:0;background:transparent;padding:4px 8px}.fe-toolbar__search-group .fe-btn{border:0;background:transparent;padding:4px 6px}.fe-toolbar__search-group .fe-btn:hover:not(:disabled){background:var(--fe-bg-hover)}.fe-toolbar__view{display:inline-flex;gap:2px;padding:2px;background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm)}.fe-toolbar__view .fe-btn{border:0;background:transparent}.fe-toolbar__view .fe-btn.is-active{background:var(--fe-bg-selected)}.fe-search{position:relative}.fe-search__input{background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);padding:6px 10px;font:inherit;color:var(--fe-text);min-width:200px}.fe-search__input:focus-visible{outline:2px solid var(--fe-primary);outline-offset:1px}.fe-breadcrumb{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:6px 12px;background:var(--fe-bg);border-bottom:1px solid var(--fe-border);font-size:13px;color:var(--fe-text-muted)}.fe-breadcrumb__crumb{display:inline-flex;align-items:center;gap:4px;background:transparent;border:0;color:inherit;padding:2px 6px;border-radius:var(--fe-radius-sm);cursor:pointer;font:inherit}.fe-breadcrumb__crumb:hover{background:var(--fe-bg-hover);color:var(--fe-text)}.fe-breadcrumb__crumb.is-last{color:var(--fe-text);font-weight:600}.fe-breadcrumb__sep{color:var(--fe-text-muted)}.fe-breadcrumb__edit{margin-left:auto;background:none;border:1px solid transparent;color:var(--fe-text-muted);cursor:pointer;font-size:14px;line-height:1;padding:4px 8px;border-radius:4px}.fe-breadcrumb__edit:hover{background:var(--fe-bg-hover);color:var(--fe-text);border-color:var(--fe-border)}.fe-breadcrumb__input{flex:1;background:var(--fe-bg);color:var(--fe-text);border:1px solid var(--fe-accent, #2563eb);border-radius:4px;padding:4px 8px;font-family:var(--fe-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:13px;outline:none}.fe-list{display:flex;flex-direction:column}.fe-list__head{display:grid;grid-template-columns:32px minmax(0,1fr) 120px 180px;gap:8px;padding:8px 12px;font-weight:600;color:var(--fe-text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;background:var(--fe-bg-elev);border-bottom:1px solid var(--fe-border)}.fe-list__body{display:flex;flex-direction:column}.fe-list__row{display:grid;grid-template-columns:32px minmax(0,1fr) 120px 180px;gap:8px;padding:8px 12px;align-items:center;cursor:pointer;border-bottom:1px solid var(--fe-border);transition:background .08s;-webkit-user-select:none;user-select:none}.fe-list__row:hover{background:var(--fe-bg-hover)}.fe-list__row.is-selected{background:var(--fe-bg-selected)}.fe-list__row.is-trash{opacity:.7}.fe-list__row.is-clipped,.fe-grid__card.is-clipped{opacity:.45;font-style:italic}.fe-list__row:focus-visible{outline:2px solid var(--fe-primary);outline-offset:-2px}.fe-list__col--star{display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s}.fe-list__row:hover .fe-list__col--star,.fe-list__row:focus-within .fe-list__col--star,.fe-list__col--star:has(.is-starred){opacity:1}.fe-list__col--star .filex-star-btn.is-starred{color:var(--fe-warning, #f59e0b)}.fe-list__col--name{display:flex;align-items:center;gap:8px;min-width:0}.fe-list__icon{flex-shrink:0;font-size:16px}.fe-list__name-wrap{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.fe-list__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fe-list__parent{font-size:11px;color:var(--fe-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.fe-list__col--size,.fe-list__col--mod{color:var(--fe-text-muted);font-size:13px}.fe-list__empty{padding:40px 20px;text-align:center;color:var(--fe-text-muted)}.fe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--fe-gap);padding:var(--fe-gap)}.fe-grid__card{display:flex;flex-direction:column;align-items:stretch;padding:8px;border:1px solid var(--fe-border);border-radius:var(--fe-radius);background:var(--fe-bg-elev);cursor:pointer;transition:background .08s,border-color .08s;-webkit-user-select:none;user-select:none}.fe-grid__card:hover{background:var(--fe-bg-hover);border-color:var(--fe-border-strong)}.fe-grid__card.is-selected{background:var(--fe-bg-selected);border-color:var(--fe-primary)}.fe-grid__card.is-trash{opacity:.7}.fe-grid__thumb{display:flex;align-items:center;justify-content:center;aspect-ratio:1 / 1;background:var(--fe-bg);border-radius:var(--fe-radius-sm);margin-bottom:8px;overflow:hidden}.fe-grid__thumb img{width:100%;height:100%;object-fit:cover}.fe-grid__icon{font-size:32px}.fe-grid__label{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fe-grid__meta{font-size:11px;color:var(--fe-text-muted);margin-top:2px}.fe-grid__parent{font-size:11px;color:var(--fe-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-style:italic}.fe-grid__empty{grid-column:1 / -1;padding:40px 20px;text-align:center;color:var(--fe-text-muted)}.fe__dragover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#3b82f61f;border:3px dashed var(--fe-primary);pointer-events:none}.fe__dragover-card{background:var(--fe-bg);border-radius:var(--fe-radius-lg);padding:24px 40px;box-shadow:var(--fe-shadow);text-align:center}.fe__dragover-card .fe-icon{font-size:32px;display:block;margin-bottom:8px}.fe-upload{position:absolute;right:16px;bottom:16px;width:min(360px,calc(100% - 32px));background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius);box-shadow:var(--fe-shadow);z-index:40;max-height:40vh;display:flex;flex-direction:column;overflow:hidden}.fe-upload__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--fe-bg-elev);border-bottom:1px solid var(--fe-border);font-size:13px}.fe-upload__count{background:var(--fe-primary);color:var(--fe-text-on-primary);font-size:12px;padding:1px 7px;border-radius:999px}.fe-upload__list{list-style:none;padding:0;margin:0;overflow:auto}.fe-upload__item{padding:10px 14px;border-bottom:1px solid var(--fe-border)}.fe-upload__item:last-child{border-bottom:0}.fe-upload__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;margin-bottom:4px}.fe-upload__bar{background:var(--fe-bg-elev);border-radius:99px;height:6px;overflow:hidden;margin-bottom:4px}.fe-upload__bar-fill{background:var(--fe-primary);height:100%;transition:width .2s}.fe-upload__item.is-error .fe-upload__bar-fill,.fe-upload__item.is-aborted .fe-upload__bar-fill{background:var(--fe-danger)}.fe-upload__item.is-done .fe-upload__bar-fill{background:#16a34a}.fe-upload__meta{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;color:var(--fe-text-muted)}.fe-upload__cancel{background:transparent;border:0;color:var(--fe-primary);cursor:pointer;font:inherit}.fe-upload-slide-enter-active,.fe-upload-slide-leave-active{transition:transform .2s,opacity .2s}.fe-upload-slide-enter-from,.fe-upload-slide-leave-to{opacity:0;transform:translateY(10px)}.fe-ops{position:absolute;left:16px;bottom:16px;width:min(320px,calc(100% - 32px));display:flex;flex-direction:column;gap:8px;z-index:40}.fe-ops__item{background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius);box-shadow:var(--fe-shadow);padding:10px 14px;font-size:13px}.fe-ops__item.is-done{border-color:#16a34a}.fe-ops__item.is-error{border-color:var(--fe-danger)}.fe-ops__row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.fe-ops__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.fe-ops__dismiss{background:transparent;border:0;color:var(--fe-text-muted);cursor:pointer;font-size:18px;line-height:1;padding:0 4px}.fe-ops__bar{background:var(--fe-bg-elev);border-radius:99px;height:6px;overflow:hidden}.fe-ops__bar-fill{background:var(--fe-primary);height:100%;transition:width .25s}.fe-ops__item.is-done .fe-ops__bar-fill{background:#16a34a}.fe-ops__item.is-error .fe-ops__bar-fill{background:var(--fe-danger)}.fe-ops__error{margin-top:6px;font-size:11px;color:var(--fe-danger)}.fe-ops-slide-enter-active,.fe-ops-slide-leave-active{transition:transform .2s,opacity .2s}.fe-ops-slide-enter-from,.fe-ops-slide-leave-to{opacity:0;transform:translateY(10px)}.fe-ctx-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;color:var(--fe-text);font-family:var(--fe-font);font-size:14px}.fe-ctx{position:absolute;min-width:180px;background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius);box-shadow:var(--fe-shadow);padding:4px;z-index:90;color:var(--fe-text)}.fe-ctx__item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--fe-radius-sm);border:0;background:transparent;color:var(--fe-text);font:inherit;width:100%;text-align:left;cursor:pointer}.fe-ctx__item:hover:not(.is-disabled){background:var(--fe-bg-hover)}.fe-ctx__item.is-danger{color:var(--fe-danger)}.fe-ctx__item.is-disabled{opacity:.45;cursor:not-allowed}.fe-ctx__icon{width:1.2em;text-align:center}.fe-ctx__sep{height:1px;background:var(--fe-border);margin:4px 0}.fe-ctx-enter-active,.fe-ctx-leave-active{transition:opacity .1s}.fe-ctx-enter-from,.fe-ctx-leave-to{opacity:0}.fe-modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;background:#0d131b7a;padding:16px}.fe-modal__card{background:var(--fe-bg);border-radius:var(--fe-radius);box-shadow:var(--fe-shadow);width:100%;max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden}.fe-modal__card--sm{max-width:420px}.fe-modal__card--md{max-width:560px}.fe-modal__card--lg{max-width:800px}.fe-modal__card--xl{max-width:1080px;height:calc(100vh - 64px)}.fe-recents__backdrop{align-items:flex-start!important;padding-top:60px}.fe-recents__panel{background:var(--fe-bg, #fff);border-radius:var(--fe-radius, 8px);box-shadow:var(--fe-shadow, 0 6px 24px rgba(0, 0, 0, .18));width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 96px);display:flex;flex-direction:column;overflow:hidden}.fe-recents__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--fe-border, #e2e6ed)}.fe-recents__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;font-size:22px;line-height:1;cursor:pointer;color:var(--fe-text-muted, #6b7280);padding:0 4px}.fe-recents__close:hover{color:var(--fe-text, #111)}.fe-preview__md-split{display:flex;flex-direction:column;height:100%;width:100%;min-height:0}.fe-preview__md-split-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:var(--fe-bg-elev, #f6f7f9);border-bottom:1px solid var(--fe-border, #e2e6ed);flex:0 0 auto}.fe-preview__md-split-label{font-family:var(--fe-font-mono, ui-monospace, monospace);font-size:11px;letter-spacing:.06em;color:var(--fe-text-muted, #6b7280)}.fe-preview__md-split-error{flex:1 1 auto;font-size:12px;color:var(--fe-danger, #dc2626);text-align:center}.fe-preview__md-split-body{flex:1 1 auto;display:grid;grid-template-columns:1fr 1fr;min-height:0}.fe-preview__md-split-input{resize:none;border:0;outline:0;padding:16px 20px;font-family:var(--fe-font-mono, ui-monospace, monospace);font-size:13px;line-height:1.6;background:var(--fe-bg, #fff);color:var(--fe-text, #111);border-right:1px solid var(--fe-border, #e2e6ed);overflow:auto;-moz-tab-size:2;tab-size:2}.fe-preview__md-split-output{overflow:auto;padding:16px 24px;background:var(--fe-bg, #fff)}.fe-preview__md-split-output.fe-preview__md{max-height:none;min-height:0;height:100%}@media (max-width: 900px){.fe-preview__md-split-body{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.fe-preview__md-split-input{border-right:0;border-bottom:1px solid var(--fe-border, #e2e6ed)}}.fe-modal__backdrop--chromeless{background:transparent;padding:0}.fe-modal__card--chromeless{max-width:none;width:100vw;height:100vh;max-height:100vh;border-radius:0;box-shadow:none}.fe-modal__card--chromeless .fe-modal__body{flex:1 1 auto;min-height:0;padding:0}.fe-modal__card--chromeless .fe-preview{align-items:stretch;justify-content:stretch;min-height:0;flex:1 1 auto}.fe-modal__card--chromeless .fe-preview>*{width:100%;height:100%}.fe-modal__head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--fe-border)}.fe-modal__title{font-size:16px;font-weight:600;margin:0}.fe-modal__close{background:transparent;border:0;color:var(--fe-text-muted);font-size:22px;cursor:pointer;padding:0 4px;line-height:1}.fe-modal__body{padding:16px;overflow:auto;flex:1 1 auto}.fe-modal__actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--fe-border);background:var(--fe-bg-elev)}.fe-modal-enter-active,.fe-modal-leave-active{transition:opacity .15s}.fe-modal-enter-from,.fe-modal-leave-to{opacity:0}.fe-input{width:100%;padding:8px 10px;background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);font:inherit;color:var(--fe-text)}.fe-input:focus-visible{outline:2px solid var(--fe-primary);outline-offset:1px}.fe-input--mono{font-family:var(--fe-font-mono);letter-spacing:.1em}.fe-form{display:flex;flex-direction:column;gap:12px}.fe-form__row{display:flex;align-items:center;gap:8px}.fe-form__row--stack{flex-direction:column;align-items:stretch}.fe-form__error{color:var(--fe-danger);font-size:12px;margin:6px 0 0}.fe-share-result{display:flex;flex-direction:column;gap:12px}.fe-share-result__row label{display:block;font-size:12px;font-weight:600;color:var(--fe-text-muted);margin-bottom:4px}.fe-share-result__copy{display:flex;gap:6px}.fe-preview{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:50vh;background:var(--fe-bg-elev)}.fe-preview__image{max-width:100%;max-height:70vh;object-fit:contain}.fe-preview__video,.fe-preview__audio{max-width:100%;max-height:70vh}.fe-preview__iframe{width:100%;height:70vh;border:0;background:#fff}.fe-preview__office{width:100%;height:78vh;background:var(--fe-bg)}.fe-preview__code-wrap{display:flex;flex-direction:column;width:100%;height:78vh}.fe-preview__code-toolbar{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--fe-bg-hover, #f3f4f6);border-bottom:1px solid var(--fe-border, #e5e7eb);font-size:12px}.fe-preview__code-lang{font-family:var(--fe-font-mono, ui-monospace, monospace);color:var(--fe-text-muted);text-transform:uppercase;letter-spacing:.04em}.fe-preview__code-toolbar>.fe-btn{margin-left:auto}.fe-preview__code-status{font-size:12px;font-weight:500}.fe-preview__code-status--ok{color:#059669}.fe-preview__code-status--err{color:#dc2626;cursor:help}.fe-preview__code-editor{flex:1;min-height:0;overflow:hidden}.fe-preview__code-editor .cm-editor{height:100%;font-size:13px}.fe-preview__code-editor .cm-scroller{font-family:var(--fe-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)}.fe-preview__fallback{text-align:center;color:var(--fe-text-muted);padding:40px 20px}.fe-preview__fallback-icon{font-size:48px;display:block;margin-bottom:12px}.fe-preview__pre{margin:0;padding:16px;width:100%;max-height:70vh;overflow:auto;background:var(--fe-bg);color:var(--fe-text);font-family:var(--fe-font-mono);font-size:13px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.fe-preview__code{white-space:pre;word-wrap:normal}.hljs{background:var(--fe-bg);color:var(--fe-text)}.hljs-comment,.hljs-quote{color:var(--fe-text-muted);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-section,.hljs-meta{color:#c678dd}.hljs-string,.hljs-attr,.hljs-symbol,.hljs-bullet,.hljs-addition,.hljs-link{color:#98c379}.hljs-number,.hljs-literal,.hljs-deletion{color:#d19a66}.hljs-title,.hljs-name,.hljs-selector-id,.hljs-selector-class,.hljs-template-tag,.hljs-template-variable{color:#61aeee}.hljs-type,.hljs-tag{color:#e06c75}.hljs-variable,.hljs-attribute{color:#d19a66}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.fe-preview__md{width:100%;max-height:70vh;overflow:auto;padding:24px 32px;background:var(--fe-bg);color:var(--fe-text);line-height:1.6;font-size:15px}.fe-preview__md h1,.fe-preview__md h2,.fe-preview__md h3,.fe-preview__md h4{margin:1.2em 0 .6em;font-weight:600}.fe-preview__md h1{font-size:1.8em;border-bottom:1px solid var(--fe-border);padding-bottom:.3em}.fe-preview__md h2{font-size:1.4em;border-bottom:1px solid var(--fe-border);padding-bottom:.3em}.fe-preview__md h3{font-size:1.2em}.fe-preview__md p{margin:.8em 0}.fe-preview__md a{color:var(--fe-primary);text-decoration:underline}.fe-preview__md code{font-family:var(--fe-font-mono);background:var(--fe-bg-elev);padding:1px 5px;border-radius:3px;font-size:.92em}.fe-preview__md pre{background:var(--fe-bg-elev);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);padding:12px 16px;overflow:auto;font-size:.9em}.fe-preview__md pre code{background:transparent;padding:0}.fe-preview__md ul,.fe-preview__md ol{padding-left:2em;margin:.8em 0}.fe-preview__md li{margin:.3em 0}.fe-preview__md blockquote{border-left:3px solid var(--fe-border-strong);padding:0 1em;color:var(--fe-text-muted);margin:.8em 0}.fe-preview__md table{border-collapse:collapse;margin:1em 0;width:100%}.fe-preview__md th,.fe-preview__md td{border:1px solid var(--fe-border);padding:6px 10px;text-align:left}.fe-preview__md th{background:var(--fe-bg-elev)}.fe-preview__md img{max-width:100%}.fe-toast{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:var(--fe-text);color:var(--fe-bg);padding:8px 14px;border-radius:var(--fe-radius);font-size:13px;box-shadow:var(--fe-shadow-sm);z-index:95}.fe-toast-enter-active,.fe-toast-leave-active{transition:opacity .2s,transform .2s}.fe-toast-enter-from,.fe-toast-leave-to{opacity:0;transform:translate(-50%,10px)}@media (max-width: 640px){.fe-list__head,.fe-list__row{grid-template-columns:28px minmax(0,1fr) 90px}.fe-list__col--mod{display:none}.fe-toolbar{padding:8px}.fe-search__input{min-width:120px}}.filex-viewer-3d[data-v-f9492fd4]{width:100%;height:100%;min-height:480px;background:#1a1a1a;display:flex;align-items:center;justify-content:center}.filex-viewer-3d[data-v-f9492fd4] model-viewer{width:100%;height:100%;min-height:480px;background:#1a1a1a;display:block}.filex-viewer-fallback[data-v-f9492fd4]{text-align:center;color:#c8cdd6;padding:32px;max-width:480px}.filex-viewer-fallback__icon[data-v-f9492fd4]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-epub__nav[data-v-12eb7133]{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:8px;padding:4px 8px;background:var(--fe-bg-elev, rgba(255, 255, 255, .9));border:1px solid var(--fe-border, #e2e6ed);border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.filex-viewer-epub[data-v-12eb7133]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);position:relative}.filex-viewer-epub__bar[data-v-12eb7133]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:13px}.filex-viewer-spacer[data-v-12eb7133]{flex:1}.filex-viewer-epub__fs[data-v-12eb7133]{display:inline-block;min-width:40px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-epub__main[data-v-12eb7133]{flex:1;min-height:0;display:flex}.filex-viewer-epub__rendition[data-v-12eb7133]{flex:1;min-height:0}.filex-viewer-epub__toc[data-v-12eb7133]{width:260px;border-right:1px solid var(--fe-border, #e2e6ed);overflow-y:auto;padding:12px 0;background:var(--fe-bg-elev, #f7f8fa)}.filex-viewer-epub__toc ul[data-v-12eb7133]{list-style:none;margin:0;padding:0}.filex-viewer-epub__toc-link[data-v-12eb7133]{display:block;width:100%;text-align:left;background:transparent;border:0;padding:6px 14px;font:inherit;color:inherit;cursor:pointer}.filex-viewer-epub__toc-link[data-v-12eb7133]:hover{background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-epub__toc-link.is-child[data-v-12eb7133]{padding-left:28px;color:var(--fe-text-muted, #5a6475);font-size:12px}.filex-viewer-epub__loading[data-v-12eb7133]{position:absolute;inset:auto 0 0 0;text-align:center;padding:6px;background:#0000000d;font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback[data-v-12eb7133]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-12eb7133]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-12eb7133]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:12px}.filex-viewer-btn[data-v-12eb7133]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn[data-v-12eb7133]:disabled{opacity:.5;cursor:not-allowed}.filex-viewer-mermaid[data-v-939eea2b]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27)}.filex-viewer-mermaid__bar[data-v-939eea2b]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:13px}.filex-viewer-mermaid__zoom[data-v-939eea2b]{min-width:50px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-mermaid__pane[data-v-939eea2b]{flex:1;overflow:hidden;position:relative;cursor:grab;background:var(--fe-bg-elev, #f7f8fa);touch-action:none}.filex-viewer-mermaid__pane[data-v-939eea2b]:active{cursor:grabbing}.filex-viewer-mermaid__surface[data-v-939eea2b]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;transform-origin:center center;transition:transform .05s linear;-webkit-user-select:none;user-select:none}.filex-viewer-mermaid__surface[data-v-939eea2b] svg{max-width:90%;max-height:90%}.filex-viewer-fallback[data-v-939eea2b]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475);width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.filex-viewer-fallback__icon[data-v-939eea2b]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-939eea2b]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:12px}.filex-viewer-btn[data-v-939eea2b]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-drawio[data-v-2e4b5f3b]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff)}.filex-viewer-drawio__bar[data-v-2e4b5f3b]{display:flex;align-items:center;gap:12px;padding:6px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-drawio__status[data-state=error][data-v-2e4b5f3b]{color:var(--fe-danger, #dc2626)}.filex-viewer-drawio__status[data-state=saved][data-v-2e4b5f3b]{color:#059669}.filex-viewer-drawio__readonly[data-v-2e4b5f3b]{font-style:italic;margin-left:auto}.filex-viewer-drawio__frame[data-v-2e4b5f3b]{flex:1;width:100%;border:0;background:#fafafa;min-height:0}.filex-viewer-fallback[data-v-2e4b5f3b]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-2e4b5f3b]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-tiff__pager[data-v-c6b84f5d]{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:4px 8px;background:var(--fe-bg-elev, rgba(255, 255, 255, .9));border:1px solid var(--fe-border, #e2e6ed);border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.filex-viewer-tiff__pages[data-v-c6b84f5d]{font-size:12px;font-variant-numeric:tabular-nums}.filex-viewer-tiff[data-v-c6b84f5d]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff)}.filex-viewer-tiff__bar[data-v-c6b84f5d]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:13px}.filex-viewer-tiff__pages[data-v-c6b84f5d]{min-width:110px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-tiff__zoom[data-v-c6b84f5d]{min-width:50px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-spacer[data-v-c6b84f5d]{flex:1}.filex-viewer-tiff__pane[data-v-c6b84f5d]{flex:1;overflow:auto;padding:16px;background:#2a2d33;display:flex;align-items:flex-start;justify-content:flex-start}.filex-viewer-tiff__pane canvas[data-v-c6b84f5d]{background:#fff;box-shadow:0 4px 16px #0000004d}.filex-viewer-fallback[data-v-c6b84f5d]{text-align:center;padding:32px;color:#c8cdd6;margin:auto}.filex-viewer-fallback__icon[data-v-c6b84f5d]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-c6b84f5d]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:12px}.filex-viewer-btn[data-v-c6b84f5d]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn[data-v-c6b84f5d]:disabled{opacity:.4;cursor:not-allowed}.filex-viewer-psd[data-v-001123c3]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff)}.filex-viewer-psd__bar[data-v-001123c3]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:13px}.filex-viewer-spacer[data-v-001123c3]{flex:1}.filex-viewer-psd__dim[data-v-001123c3]{font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-psd__zoom[data-v-001123c3]{min-width:50px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-psd__main[data-v-001123c3]{flex:1;display:flex;min-height:0}.filex-viewer-psd__layers[data-v-001123c3]{width:240px;border-right:1px solid var(--fe-border, #e2e6ed);overflow-y:auto;padding:8px 0;background:var(--fe-bg-elev, #f7f8fa)}.filex-viewer-psd__layers ul[data-v-001123c3]{list-style:none;margin:0;padding:0}.filex-viewer-psd__layers li[data-v-001123c3]{display:flex;align-items:center;gap:6px;padding:4px 12px;font-size:12px}.filex-viewer-psd__layer-vis[data-v-001123c3]{width:14px;text-align:center;color:var(--fe-text-muted, #5a6475)}.filex-viewer-psd__layer-vis[data-hidden="1"][data-v-001123c3]{color:var(--fe-border-strong, #c7ced9)}.filex-viewer-psd__layer-name[data-v-001123c3]{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filex-viewer-psd__pane[data-v-001123c3]{flex:1;overflow:auto;padding:16px;background:#2a2d33;display:flex;align-items:flex-start;justify-content:flex-start}.filex-viewer-psd__pane canvas[data-v-001123c3]{background:#fff repeating-conic-gradient(#e0e0e0 0% 25%,transparent 0% 50%) 50% / 16px 16px;box-shadow:0 4px 16px #0000004d}.filex-viewer-fallback[data-v-001123c3]{text-align:center;padding:32px;color:#c8cdd6;margin:auto}.filex-viewer-fallback__icon[data-v-001123c3]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-001123c3]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:12px}.filex-viewer-btn[data-v-001123c3]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn.is-active[data-v-001123c3]{background:var(--fe-bg-selected, #dfe8ff);border-color:var(--fe-primary, #3b82f6)}.filex-viewer-ipynb[data-v-eece712d]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27)}.filex-viewer-ipynb__bar[data-v-eece712d]{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-ipynb__lang[data-v-eece712d]{font-family:var(--fe-font-mono, monospace);text-transform:uppercase;letter-spacing:.04em}.filex-viewer-ipynb__pane[data-v-eece712d]{flex:1;overflow:auto;padding:16px 24px}.filex-viewer-ipynb__cell[data-v-eece712d]{border:1px solid var(--fe-border, #e2e6ed);border-radius:6px;margin-bottom:16px;overflow:hidden}.filex-viewer-ipynb__cell[data-type=code][data-v-eece712d]{background:var(--fe-bg-elev, #f7f8fa)}.filex-viewer-ipynb__exec[data-v-eece712d]{padding:4px 12px;font-family:var(--fe-font-mono, monospace);font-size:11px;color:var(--fe-text-muted, #5a6475);background:#0000000a}.filex-viewer-ipynb__src[data-v-eece712d]{margin:0;padding:12px;font-family:var(--fe-font-mono, monospace);font-size:12px;line-height:1.5;white-space:pre;overflow-x:auto}.filex-viewer-ipynb__outputs[data-v-eece712d]{border-top:1px dashed var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);padding:8px 12px}.filex-viewer-ipynb__out[data-v-eece712d]{margin:0;padding:4px 0;font-family:var(--fe-font-mono, monospace);font-size:12px;white-space:pre-wrap;word-wrap:break-word}.filex-viewer-ipynb__out[data-type=error][data-v-eece712d]{color:var(--fe-danger, #dc2626)}.filex-viewer-ipynb__img[data-v-eece712d]{display:block;max-width:100%;height:auto;margin:8px 0}.filex-viewer-ipynb__html[data-v-eece712d]{font-size:13px}.filex-viewer-ipynb__md[data-v-eece712d]{padding:12px 16px;font-size:14px;line-height:1.6}.filex-viewer-ipynb__md-raw[data-v-eece712d]{padding:12px;margin:0;font-family:var(--fe-font-mono, monospace);font-size:12px;white-space:pre-wrap}.filex-viewer-fallback[data-v-eece712d]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-eece712d]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-csv[data-v-db55a104]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27)}.filex-viewer-csv__bar[data-v-db55a104]{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:12px}.filex-viewer-csv__check[data-v-db55a104]{display:flex;align-items:center;gap:4px;font-size:12px}.filex-viewer-csv__select[data-v-db55a104],.filex-viewer-csv__filter[data-v-db55a104]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:inherit;padding:4px 8px;border-radius:4px;font:inherit;font-size:12px}.filex-viewer-csv__filter[data-v-db55a104]{flex:0 1 240px}.filex-viewer-spacer[data-v-db55a104]{flex:1}.filex-viewer-csv__count[data-v-db55a104]{font-size:11px;color:var(--fe-text-muted, #5a6475);font-variant-numeric:tabular-nums}.filex-viewer-csv__pane[data-v-db55a104]{flex:1;overflow:auto}.filex-viewer-csv__table[data-v-db55a104]{border-collapse:collapse;width:max-content;min-width:100%;font-size:12px;font-family:var(--fe-font-mono, monospace)}.filex-viewer-csv__table th[data-v-db55a104],.filex-viewer-csv__table td[data-v-db55a104]{padding:4px 10px;border:1px solid var(--fe-border, #e2e6ed);white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.filex-viewer-csv__table th[data-v-db55a104]{background:var(--fe-bg-elev, #f7f8fa);position:sticky;top:0;font-weight:600;text-align:left}.filex-viewer-csv__table tbody tr[data-v-db55a104]:nth-child(2n){background:var(--fe-bg-hover, rgba(0, 0, 0, .02))}.filex-viewer-csv__rownum[data-v-db55a104]{color:var(--fe-text-muted, #5a6475);text-align:right;background:var(--fe-bg-elev, #f7f8fa);font-variant-numeric:tabular-nums;position:sticky;left:0}.filex-viewer-csv__pager[data-v-db55a104]{display:flex;justify-content:center;align-items:center;gap:8px;padding:6px;background:var(--fe-bg-elev, #f7f8fa);border-top:1px solid var(--fe-border, #e2e6ed);font-size:12px}.filex-viewer-csv__pageno[data-v-db55a104]{font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-fallback[data-v-db55a104]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-db55a104]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-db55a104]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:12px}.filex-viewer-btn[data-v-db55a104]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn[data-v-db55a104]:disabled{opacity:.4;cursor:not-allowed}.filex-viewer-archive[data-v-93df7b13]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27)}.filex-viewer-archive__pane[data-v-93df7b13]{flex:1;overflow:auto;padding:16px 20px}.filex-viewer-archive__summary[data-v-93df7b13]{font-size:12px;color:var(--fe-text-muted, #5a6475);margin-bottom:12px;font-variant-numeric:tabular-nums}.filex-viewer-archive__table[data-v-93df7b13]{width:100%;border-collapse:collapse;font-size:13px;font-family:var(--fe-font-mono, monospace)}.filex-viewer-archive__table th[data-v-93df7b13],.filex-viewer-archive__table td[data-v-93df7b13]{padding:6px 12px;border-bottom:1px solid var(--fe-border, #e2e6ed);text-align:left}.filex-viewer-archive__table th[data-v-93df7b13]{background:var(--fe-bg-elev, #f7f8fa);font-weight:600;position:sticky;top:0}.filex-viewer-archive__size[data-v-93df7b13]{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--fe-text-muted, #5a6475)}.filex-viewer-archive__icon[data-v-93df7b13]{margin-right:6px}.filex-viewer-archive__table tr[data-dir="1"][data-v-93df7b13]{color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback[data-v-93df7b13]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-93df7b13]{font-size:48px;display:block;margin-bottom:12px}';let pp=!1;function Aw(){if(pp||typeof document>"u")return;const e=document.createElement("style");e.setAttribute("data-filex",""),e.textContent=Cw,document.head.appendChild(e),pp=!0}function vp(e,t){const r={};return e.apiBase&&(r.apiBase=e.apiBase),e.endpoint&&(r.endpoint=e.endpoint),(e.locale==="tr"||e.locale==="en")&&(r.locale=e.locale),(e.theme==="light"||e.theme==="dark"||e.theme==="auto")&&(r.theme=e.theme),e.trashVisible!==void 0&&(r.trashVisible=e.trashVisible===!0||e.trashVisible==="true"||e.trashVisible===""),{...r,...t??{}}}const mp=x6({props:{config:{type:Object,default:null},apiBase:{type:String,default:""},endpoint:{type:String,default:""},locale:{type:String,default:""},theme:{type:String,default:""},trashVisible:{type:[Boolean,String],default:void 0}},emits:["share-created","file-opened","error","upload-progress","selection-change"],setup(e,{emit:t}){Aw();const r=de(vp({apiBase:e.apiBase,endpoint:e.endpoint,locale:e.locale,theme:e.theme,trashVisible:e.trashVisible},e.config));return tr(()=>[e.config,e.apiBase,e.endpoint,e.locale,e.theme,e.trashVisible],()=>{r.value=vp({apiBase:e.apiBase,endpoint:e.endpoint,locale:e.locale,theme:e.theme,trashVisible:e.trashVisible},e.config)},{deep:!0}),()=>Ch(Sw,{config:r.value,onShareCreated:n=>t("share-created",n),onFileOpened:n=>t("file-opened",n),onError:n=>t("error",n),onUploadProgress:n=>t("upload-progress",n),onSelectionChange:n=>t("selection-change",n)})}},{shadowRoot:!1}),Ew=mp;typeof customElements<"u"&&!customElements.get("filex-explorer")&&customElements.define("filex-explorer",mp);const Tw={class:"filex-viewer-3d"},Mw={key:1,class:"filex-viewer-fallback"},Dw={key:2,class:"filex-viewer-fallback"},vo=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"Viewer3D",props:{url:{},mime:{},ext:{},t:{type:Function}},setup(e){const t=e,r=new Set(["glb","gltf","usdz"]),n=mt(()=>r.has((t.ext||"").toLowerCase())),a=de(null),i=de(!1);async function o(){if(i.value=!1,a.value=null,!n.value){a.value=t.t?t.t("viewer.format_unsupported_3d"):`3D format ".${t.ext}" not supported in browser preview — please download.`;return}try{await import("@google/model-viewer"),i.value=!0}catch{a.value=t.t?t.t("viewer.peer_not_installed"):"3D viewer requires `@google/model-viewer` — install or use download."}}return vr(o),tr(()=>t.url,()=>{o()}),(l,s)=>{const u=f5("model-viewer");return J(),ne("div",Tw,[i.value&&!a.value?(J(),kr(u,{key:0,src:e.url,"auto-rotate":"","camera-controls":"","touch-action":"pan-y","shadow-intensity":"1",alt:e.ext+" model",style:{width:"100%",height:"100%","min-height":"480px",display:"block"}},null,8,["src","alt"])):a.value?(J(),ne("div",Mw,[s[0]||(s[0]=L("span",{class:"filex-viewer-fallback__icon"},"📦",-1)),L("p",null,ie(a.value),1)])):(J(),ne("div",Dw,[s[1]||(s[1]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(e.t?e.t("viewer.loading"):"Loading…"),1)]))])}}}),[["__scopeId","data-v-299b3816"]])},Symbol.toStringTag,{value:"Module"})),Iw={key:0,class:"filex-viewer-fallback"},zw={key:0,class:"filex-viewer-epub__nav"},Fw=["disabled"],Ow=["disabled"],Pw={key:1,class:"filex-viewer-epub__loading"},Rw=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"EpubViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de(null),n=de(null),a=de(null),i=de([]),o=de(100),l=de(!1),s=de(!0);let u=null,c=null;async function d(){s.value=!0,l.value=!1,a.value=null;let x=null;try{x=await import("epubjs")}catch{a.value=t.t?t.t("viewer.peer_not_installed"):"EPUB viewer requires `epubjs` — install or use download.",s.value=!1;return}try{const b=x.default??x;let v=t.url;if(t.authHeaders){const m=t.authHeaders(),C=await fetch(t.url,{headers:m,credentials:t.authCredentials||"same-origin"});if(!C.ok)throw new Error(`${C.status} ${C.statusText}`);v=await C.arrayBuffer()}if(u=b(v),!n.value)throw new Error("EPUB mount target missing");c=u.renderTo(n.value,{width:"100%",height:"100%",flow:"paginated",manager:"default"}),await c.display(),c.themes.fontSize(o.value+"%");const g=await u.loaded.navigation;i.value=(g==null?void 0:g.toc)??[],l.value=!0}catch(b){a.value=b instanceof Error?b.message:"EPUB load failed"}finally{s.value=!1}}function f(){var x;(x=c==null?void 0:c.next)==null||x.call(c)}function h(){var x;(x=c==null?void 0:c.prev)==null||x.call(c)}function y(x){x.key==="ArrowRight"||x.key==="PageDown"?f():(x.key==="ArrowLeft"||x.key==="PageUp")&&h()}vr(()=>{d(),window.addEventListener("keydown",y)}),Br(()=>{var x,b;window.removeEventListener("keydown",y);try{(x=c==null?void 0:c.destroy)==null||x.call(c)}catch{}try{(b=u==null?void 0:u.destroy)==null||b.call(u)}catch{}c=null,u=null}),tr(()=>t.url,()=>{if(c)try{c.destroy()}catch{}if(u)try{u.destroy()}catch{}u=null,c=null,d()});function p(x,b){return t.t?t.t(x):b}return(x,b)=>(J(),ne("div",{ref_key:"root",ref:r,class:"filex-viewer-epub"},[a.value?(J(),ne("div",Iw,[b[0]||(b[0]=L("span",{class:"filex-viewer-fallback__icon"},"📖",-1)),L("p",null,ie(a.value),1)])):(J(),ne(gt,{key:1},[L("div",{ref_key:"containerRef",ref:n,class:"filex-viewer-epub__rendition"},null,512),l.value?(J(),ne("div",zw,[L("button",{type:"button",class:"filex-viewer-btn",onClick:h,disabled:!l.value},"‹",8,Fw),L("button",{type:"button",class:"filex-viewer-btn",onClick:f,disabled:!l.value},"›",8,Ow)])):tt("",!0),s.value?(J(),ne("div",Pw,ie(p("viewer.loading","Loading…")),1)):tt("",!0)],64))],512))}}),[["__scopeId","data-v-639afd99"]])},Symbol.toStringTag,{value:"Module"}));async function gp(e){const t=await fetch(e.url,{headers:e.headers??{},credentials:e.credentials??"same-origin",signal:e.signal});if(!t.ok){const r=await t.text().catch(()=>"");throw new Error(`${t.status} ${t.statusText}${r?" — "+r.slice(0,200):""}`)}return t}async function bp(e){return(await gp(e)).arrayBuffer()}async function Zs(e){return(await gp(e)).text()}const Lw={class:"filex-viewer-mermaid"},Bw={key:0,class:"filex-viewer-fallback"},Nw={key:1,class:"filex-viewer-fallback"},yp=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"MermaidViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de(null),n=de(null),a=de(!0),i=de(1),o=de(0),l=de(0);let s=!1,u=null,c=0,d=null;async function f(){var g,m;if(d)return d;try{const C=await import("mermaid");return d=C.default??C,(m=d.initialize)==null||m.call(d,{startOnLoad:!1,securityLevel:"strict",theme:(g=window.matchMedia)!=null&&g.call(window,"(prefers-color-scheme: dark)").matches?"dark":"default"}),d}catch{return null}}async function h(){var A;a.value=!0,n.value=null;const g=++c,m=await f();if(g!==c)return;if(!m){n.value=t.t?t.t("viewer.peer_not_installed"):"Mermaid viewer requires `mermaid` — install or use download.",a.value=!1;return}let C;try{C=await Zs({url:t.url,headers:((A=t.authHeaders)==null?void 0:A.call(t))??{},credentials:t.authCredentials})}catch(S){n.value=S instanceof Error?S.message:"fetch failed",a.value=!1;return}if(g===c)try{const S=`filex-mermaid-${Date.now()}`,{svg:_}=await m.render(S,C);if(g!==c)return;if(r.value){r.value.innerHTML=_;const E=r.value.querySelector("svg");E&&(E.style.maxWidth="100%",E.style.height="auto")}}catch(S){n.value=S instanceof Error?S.message:"render failed"}finally{a.value=!1}}function y(g){if(!g.ctrlKey&&!g.metaKey)return;g.preventDefault();const C=-g.deltaY>0?1.1:1/1.1;i.value=Math.max(.2,Math.min(8,i.value*C))}function p(g){var m,C;s=!0,u={x:g.clientX,y:g.clientY,tx:o.value,ty:l.value},(C=(m=g.target).setPointerCapture)==null||C.call(m,g.pointerId)}function x(g){!s||!u||(o.value=u.tx+(g.clientX-u.x),l.value=u.ty+(g.clientY-u.y))}function b(){s=!1,u=null}vr(h),Br(()=>{c++});function v(g,m){return t.t?t.t(g):m}return(g,m)=>(J(),ne("div",Lw,[L("div",{class:"filex-viewer-mermaid__pane",onWheel:y,onPointerdown:p,onPointermove:x,onPointerup:b,onPointercancel:b},[n.value?(J(),ne("div",Bw,[m[0]||(m[0]=L("span",{class:"filex-viewer-fallback__icon"},"📊",-1)),L("p",null,ie(n.value),1)])):a.value?(J(),ne("div",Nw,[m[1]||(m[1]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(v("viewer.loading","Loading…")),1)])):tt("",!0),ar(L("div",{ref_key:"surface",ref:r,class:"filex-viewer-mermaid__surface",style:ia({transform:`translate(${o.value}px, ${l.value}px) scale(${i.value})`})},null,4),[[dc,!a.value&&!n.value]])],32)]))}}),[["__scopeId","data-v-e19076c3"]])},Symbol.toStringTag,{value:"Module"})),$w={class:"filex-viewer-drawio"},Uw={key:0,class:"filex-viewer-fallback"},Hw=["src"],xp=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"DrawioViewer",props:{url:{},filePath:{},ext:{},drawioUrl:{},saveUrl:{},readOnly:{type:Boolean},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de(null),n=de(null),a=de("loading"),i=de(!!t.readOnly||!t.saveUrl),o=mt(()=>t.drawioUrl?t.drawioUrl.replace(/\/$/,""):null),l=mt(()=>{if(!o.value)return"";const p=new URLSearchParams({embed:"1",proto:"json",spin:"1",saveAndExit:"0",noSaveBtn:i.value?"1":"0",noExitBtn:"1",ui:"kennedy",modified:"unsavedChanges"});return`${o.value}/?${p.toString()}`});let s="";async function u(){var p;a.value="loading",n.value=null;try{s=await Zs({url:t.url,headers:((p=t.authHeaders)==null?void 0:p.call(t))??{},credentials:t.authCredentials})}catch(x){n.value=x instanceof Error?x.message:"fetch failed",a.value="error"}}function c(p){var x,b;(b=(x=r.value)==null?void 0:x.contentWindow)==null||b.postMessage(JSON.stringify(p),"*")}async function d(p){var x;if(t.saveUrl){a.value="saving";try{const b={"Content-Type":"application/json",...((x=t.authHeaders)==null?void 0:x.call(t))??{}},v=await fetch(t.saveUrl,{method:"POST",headers:b,credentials:t.authCredentials||"same-origin",body:JSON.stringify({path:t.filePath,content:p})});if(!v.ok)throw new Error(`${v.status} ${v.statusText}`);a.value="saved",setTimeout(()=>{a.value==="saved"&&(a.value="ready")},2500)}catch(b){n.value=b instanceof Error?b.message:"save failed",a.value="error"}}}function f(p){if(typeof p.data!="string"||p.data.length===0)return;const x=p.data[0];if(x!=="{"&&x!=="<")return;let b;try{b=JSON.parse(p.data)}catch{return}if(!(!b||typeof b!="object"))switch(b.event){case"init":c({action:"load",xml:s,autosave:0}),a.value="ready";break;case"save":typeof b.xml=="string"&&d(b.xml);break;case"export":break;case"autosave":typeof b.xml=="string"&&!i.value&&d(b.xml);break}}function h(){if(!o.value){n.value=y("viewer.drawio.disabled","Drawio (diagrams.net) yapılandırılmamış."),a.value="error";return}n.value===y("viewer.drawio.disabled","Drawio (diagrams.net) yapılandırılmamış.")&&(n.value=null,a.value="loading"),u()}vr(()=>{window.addEventListener("message",f),h()}),tr(()=>t.drawioUrl,h),Br(()=>{window.removeEventListener("message",f)});function y(p,x){return t.t?t.t(p):x}return(p,x)=>(J(),ne("div",$w,[n.value?(J(),ne("div",Uw,[x[0]||(x[0]=L("span",{class:"filex-viewer-fallback__icon"},"📐",-1)),L("p",null,ie(n.value),1)])):(J(),ne("iframe",{key:1,ref_key:"iframeRef",ref:r,src:l.value,class:"filex-viewer-drawio__frame",title:"diagrams.net editor"},null,8,Hw))]))}}),[["__scopeId","data-v-680c72a8"]])},Symbol.toStringTag,{value:"Module"})),jw={class:"filex-viewer-tiff"},Gw={class:"filex-viewer-tiff__pane"},Vw={key:0,class:"filex-viewer-fallback"},qw={key:1,class:"filex-viewer-fallback"},Ww={key:2,class:"filex-viewer-tiff__pager"},Kw=["disabled"],Xw={class:"filex-viewer-tiff__pages"},Yw=["disabled"],_p=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"TiffViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de(null),n=de(null),a=de(!0),i=de(0),o=de(0),l=de({width:0,height:0});let s=null,u=null,c=0;async function d(){if(s)return s;try{const v=await Promise.resolve().then(()=>LS);return s=v.default??v,s}catch{return null}}async function f(){var m;a.value=!0,n.value=null,u=null,i.value=0,o.value=0;const v=++c,g=await d();if(v===c){if(!g){n.value=t.t?t.t("viewer.peer_not_installed"):"TIFF viewer requires `utif` — install or use download.",a.value=!1;return}try{const C=await bp({url:t.url,headers:((m=t.authHeaders)==null?void 0:m.call(t))??{},credentials:t.authCredentials});if(v!==c)return;if(u=g.decode(C),o.value=(u==null?void 0:u.length)??0,o.value===0)throw new Error("No pages decoded");h()}catch(C){n.value=C instanceof Error?C.message:"TIFF decode failed"}finally{a.value=!1}}}function h(){if(!s||!u||!r.value)return;const v=Math.max(0,Math.min(i.value,u.length-1)),g=u[v];try{s.decodeImage(void 0,g)}catch{}const m=s.toRGBA8(g),C=g.width,A=g.height;l.value={width:C,height:A};const S=r.value;S.width=C,S.height=A;const _=S.getContext("2d");if(!_)return;const E=_.createImageData(C,A);E.data.set(m),_.putImageData(E,0,0)}function y(){i.value<o.value-1&&(i.value++,h())}function p(){i.value>0&&(i.value--,h())}vr(f),Br(()=>{c++,u=null}),tr(()=>t.url,f);const x=mt(()=>(t.t&&t.t("viewer.page_n_of_m")||"Page {n} of {m}").replace("{n}",String(i.value+1)).replace("{m}",String(o.value)));function b(v,g){return t.t?t.t(v):g}return(v,g)=>(J(),ne("div",jw,[L("div",Gw,[n.value?(J(),ne("div",Vw,[g[0]||(g[0]=L("span",{class:"filex-viewer-fallback__icon"},"🖼️",-1)),L("p",null,ie(n.value),1)])):a.value?(J(),ne("div",qw,[g[1]||(g[1]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(b("viewer.loading","Loading…")),1)])):tt("",!0),ar(L("canvas",{ref_key:"canvasEl",ref:r,style:{imageRendering:"pixelated"}},null,512),[[dc,!a.value&&!n.value]]),!a.value&&!n.value&&o.value>1?(J(),ne("div",Ww,[L("button",{type:"button",class:"filex-viewer-btn",disabled:i.value===0,onClick:p},"‹",8,Kw),L("span",Xw,ie(x.value),1),L("button",{type:"button",class:"filex-viewer-btn",disabled:i.value>=o.value-1,onClick:y},"›",8,Yw)])):tt("",!0)])]))}}),[["__scopeId","data-v-11c3469a"]])},Symbol.toStringTag,{value:"Module"})),Zw={class:"filex-viewer-psd"},Jw={class:"filex-viewer-psd__pane"},Qw={key:0,class:"filex-viewer-fallback"},e9={key:1,class:"filex-viewer-fallback"},t9=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"PsdViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de(null),n=de([]),a=de(null),i=de(!0),o=de({width:0,height:0});let l=0,s=null;async function u(){if(s)return s;try{return s=await Promise.resolve().then(()=>tM),s}catch{return null}}function c(h,y){if(h&&Array.isArray(h.children))for(const p of h.children)y.push({index:y.length,name:p.name??"(unnamed)",hidden:!!p.hidden}),p.children&&c(p,y)}async function d(){var p;i.value=!0,a.value=null,n.value=[];const h=++l,y=await u();if(h===l){if(!y){a.value=t.t?t.t("viewer.peer_not_installed"):"PSD viewer requires `ag-psd` — install or use download.",i.value=!1;return}try{const x=await bp({url:t.url,headers:((p=t.authHeaders)==null?void 0:p.call(t))??{},credentials:t.authCredentials});if(h!==l)return;const b=y.readPsd(x,{skipLayerImageData:!1,skipCompositeImageData:!1,skipThumbnail:!0});o.value={width:b.width,height:b.height};const v=b.canvas;if(v&&r.value){const m=r.value;m.width=b.width,m.height=b.height;const C=m.getContext("2d");C==null||C.drawImage(v,0,0)}else throw new Error("PSD has no composite image (skipCompositeImageData?)");const g=[];c(b,g),n.value=g}catch(x){a.value=x instanceof Error?x.message:"PSD decode failed"}finally{i.value=!1}}}vr(d),Br(()=>{l++}),tr(()=>t.url,d);function f(h,y){return t.t?t.t(h):y}return(h,y)=>(J(),ne("div",Zw,[L("div",Jw,[a.value?(J(),ne("div",Qw,[y[0]||(y[0]=L("span",{class:"filex-viewer-fallback__icon"},"🎨",-1)),L("p",null,ie(a.value),1)])):i.value?(J(),ne("div",e9,[y[1]||(y[1]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(f("viewer.loading","Loading…")),1)])):tt("",!0),ar(L("canvas",{ref_key:"canvasEl",ref:r},null,512),[[dc,!i.value&&!a.value]])])]))}}),[["__scopeId","data-v-46b5b3c2"]])},Symbol.toStringTag,{value:"Module"})),r9={class:"filex-viewer-ipynb"},n9={class:"filex-viewer-ipynb__pane"},a9={key:0,class:"filex-viewer-fallback"},i9={key:1,class:"filex-viewer-fallback"},o9={key:2},l9=["data-type"],s9={class:"filex-viewer-ipynb__exec"},u9={class:"filex-viewer-ipynb__src hljs"},c9=["innerHTML"],f9={key:1},d9={key:0,class:"filex-viewer-ipynb__outputs"},h9=["src","alt"],p9=["innerHTML"],v9=["data-type"],m9=["innerHTML"],g9={key:1,class:"filex-viewer-ipynb__md-raw"},b9={key:2,class:"filex-viewer-ipynb__src"},y9=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"IpynbViewer",props:{url:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de([]),n=de("python"),a=de(null),i=de(!0),o=de(new Map),l=de(new Map);let s=0,u=null,c=null;async function d(){if(c!==null)return c||null;try{const v=await import("markdown-it"),g=v.default??v;return c=new g({html:!1,linkify:!0,breaks:!0}),c}catch{return c=!1,null}}function f(v){return Array.isArray(v)?v.join(""):v??""}async function h(){var A,S,_,E;i.value=!0,a.value=null,r.value=[],o.value=new Map,l.value=new Map;const v=++s;let g;try{g=await Zs({url:t.url,headers:((A=t.authHeaders)==null?void 0:A.call(t))??{},credentials:t.authCredentials})}catch(M){a.value=M instanceof Error?M.message:"fetch failed",i.value=!1;return}if(v!==s)return;let m;try{m=JSON.parse(g)}catch{a.value="Invalid notebook JSON",i.value=!1;return}if(r.value=Array.isArray(m.cells)?m.cells:[],n.value=((_=(S=m.metadata)==null?void 0:S.kernelspec)==null?void 0:_.language)||"python",u=await cp(),v!==s)return;if(u){const M=u.default??u,z=(E=M.getLanguage)!=null&&E.call(M,n.value)?n.value:null;r.value.forEach((N,R)=>{if(N.cell_type==="code"){const V=f(N.source);try{const X=z?M.highlight(V,{language:z,ignoreIllegals:!0}):M.highlightAuto(V);o.value.set(R,X.value)}catch{}}})}const C=await d();v===s&&(C&&r.value.forEach((M,z)=>{if(M.cell_type==="markdown")try{l.value.set(z,C.render(f(M.source)))}catch{}}),i.value=!1)}function y(v){var g;return v?v.output_type==="stream"?f(v.text):v.output_type==="error"?[v.ename,v.evalue,...v.traceback||[]].filter(Boolean).join(`
23
+ `)),G.dataTransfer.effectAllowed="move"}async function W3(U,G,Ae){try{if(i.endpoints.moveAsync){const{op:Pe}=await i.moveAsync(U,G,je(x.value));d.register(Pe),F("Taşıma kuyruğa alındı")}else await i.move(je(x.value),U,G),await I();j.clear()}catch(Pe){a("error",{message:Pe.message,context:{op:Ae,targetDir:G}})}}async function K3(U,G){var ir;if(U.type!=="dir")return;const Ae=(ir=G.dataTransfer)==null?void 0:ir.getData(Al);if(!Ae)return;let Pe=[];try{Pe=JSON.parse(Ae)}catch{return}if(Pe.length===0)return;const _t=U.path,lt=Pe.map(Ur=>Ur.path).filter(Ur=>Ur&&Ur!==_t&&!_t.startsWith(Ur+"/"));if(lt.length===0){F("Aynı klasöre taşınamaz");return}await W3(lt,_t,"move-dnd")}async function IM(U,G){var ir;const Ae=(ir=G.dataTransfer)==null?void 0:ir.getData(Al);if(!Ae)return;let Pe=[];try{Pe=JSON.parse(Ae)}catch{return}if(Pe.length===0)return;const _t=U,lt=Pe.map(Ur=>Ur.path).filter(Ur=>Ur&&Ur!==_t&&!_t.startsWith(Ur+"/"));lt.length!==0&&await W3(lt,_t,"move-dnd-crumb")}function zM(U){U.cancel()}function FM(U){$.value=$.value.filter(G=>G.id!==U.id)}function OM(U){if(Te.value&&!U){I("");return}if(Te.value){I(W(U));return}I(Q(U))}async function X3(U){try{await navigator.clipboard.writeText(U),F(X("breadcrumb.copy_path"))}catch{}}function el(U={}){return i.authHeadersSync({...U})}return(U,G)=>{var Ae,Pe,_t;return J(),ne("div",{ref_key:"rootEl",ref:ke,class:Kt(["fe",{"fe--theme-light":e.config.theme==="light","fe--theme-dark":e.config.theme==="dark","fe--is-dragover":Qi.value}]),tabindex:"-1",onDragenter:EM,onDragover:MM,onDragleave:TM,onDrop:DM,onContextmenu:oM},[Bt(F8,{ref_key:"toolbarRef",ref:Fe,"view-mode":A.value,"search-query":S.value,"trash-active":M.value,actions:uM.value,"selection-mode":aM.value,"paste-enabled":!!Y.value.mode,"convert-enabled":!!P.value,"can-go-up":N.value,"at-virtual-root":R.value,"can-write":D.value,locale:z.value,"onUpdate:viewMode":G[0]||(G[0]=lt=>A.value=lt),"onUpdate:searchQuery":G[1]||(G[1]=lt=>S.value=lt),onNewFolder:G[2]||(G[2]=lt=>he.value=!0),onUpload:kM,onRefresh:G[3]||(G[3]=()=>I()),onGoUp:V,onAction:iM,onOpenRecents:G[4]||(G[4]=lt=>_e.value=!0)},null,8,["view-mode","search-query","trash-active","actions","selection-mode","paste-enabled","convert-enabled","can-go-up","at-virtual-root","can-write","locale"]),Bt(Y8,{dirname:v.value,adapter:b.value,"root-label":b.value,locale:z.value,"multi-storage-root":Te.value,"root-path":Le(h),onNavigate:OM,onCopyPath:X3,onCrumbContext:lM,onCrumbDrop:IM},null,8,["dirname","adapter","root-label","locale","multi-storage-root","root-path"]),Le(l).length?(J(),ne("div",fw,[Bt(p8,{users:Le(l),locale:z.value},null,8,["users","locale"])])):tt("",!0),L("div",{class:"fe__body",onClick:G[7]||(G[7]=gr(lt=>Le(j).clear(),["self"]))},[f.value&&g.value.length===0?(J(),ne("div",dw,[G[23]||(G[23]=L("span",{class:"fe__spinner","aria-hidden":"true"},null,-1)),L("p",hw,ie(Le(X)("loading")),1)])):C.value?(J(),ne("div",pw,[G[24]||(G[24]=L("span",{class:"fe__notfound-icon","aria-hidden":"true"},"📁",-1)),L("p",vw,ie(Le(X)("notFound.title")),1),L("p",mw,ie(C.value),1),L("p",gw,ie(Le(X)("notFound.desc")),1),L("button",{type:"button",class:"fe-btn",onClick:K},ie(Le(X)("notFound.goRoot")),1)])):A.value==="list"?(J(),kr(m7,{key:2,files:g.value,selected:Le(j).selected.value,clipped:Nd.value,"show-parent-path":!!S.value,locale:z.value,loading:f.value,"starred-ids":ae.value,"api-base":n.config.apiBase??"","auth-headers":()=>el(),onClickRow:G[5]||(G[5]=(lt,ir)=>Le(j).click(lt.path,ir)),onDblRow:Jt,onContextRow:N3,onItemDragStart:q3,onItemDropInto:K3,onStarChange:Ce},null,8,["files","selected","clipped","show-parent-path","locale","loading","starred-ids","api-base","auth-headers"])):(J(),kr(C7,{key:3,files:g.value,selected:Le(j).selected.value,clipped:Nd.value,"show-parent-path":!!S.value,locale:z.value,loading:f.value,"thumb-src":Le(u).src,onClickCard:G[6]||(G[6]=(lt,ir)=>Le(j).click(lt.path,ir)),onDblCard:Jt,onContextCard:N3,onItemDragStart:q3,onItemDropInto:K3},null,8,["files","selected","clipped","show-parent-path","locale","loading","thumb-src"]))]),Qi.value?(J(),ne("div",bw,[...G[25]||(G[25]=[L("div",{class:"fe__dragover-card"},[L("span",{class:"fe-icon"},"⬆"),L("p",null,"Dosyaları buraya bırak")],-1)])])):tt("",!0),Bt(U7,{jobs:$.value,locale:z.value,onCancel:zM,onDismiss:FM},null,8,["jobs","locale"]),Bt(W7,{ops:Le(d).ops.value,locale:z.value,onDismiss:G[8]||(G[8]=lt=>Le(d).dismiss(lt))},null,8,["ops","locale"]),Bt(I7,{ref_key:"ctxRef",ref:se,locale:z.value,theme:e.config.theme||"auto",actions:sM.value,onSelect:cM},null,8,["locale","theme","actions"]),Bt(ey,{open:he.value,locale:z.value,onClose:G[9]||(G[9]=lt=>he.value=!1),onSubmit:vM},null,8,["open","locale"]),Bt(ry,{open:le.value,locale:z.value,"current-name":((Ae=Se.value)==null?void 0:Ae.basename)||"",onClose:G[10]||(G[10]=lt=>le.value=!1),onSubmit:mM},null,8,["open","locale","current-name"]),Bt(ny,{open:oe.value,locale:z.value,count:Le(j).size.value,onClose:G[11]||(G[11]=lt=>oe.value=!1),onConfirm:gM},null,8,["open","locale","count"]),Bt(gy,{open:ue.value,locale:z.value,share:Ve.value,onClose:wM,onSubmit:_M,onToast:F},null,8,["open","locale","share"]),Bt(ux,{open:me.value,locale:z.value,file:He.value,theme:e.config.theme||"auto","preview-url":lt=>Le(i).previewUrl(lt),"download-url":lt=>Le(i).downloadUrl(lt),"only-office-base":Ne.value,"only-office-config-endpoint":ge.value,"save-text-endpoint":Le(i).endpoints.saveText||null,"open-mode":$e.value,"auth-headers":()=>el({"Content-Type":"application/json"}),"auth-credentials":Le(i).credentialsMode(),"drawio-url":be.value,"pdf-worker-url":n.config.pdfWorkerUrl||null,"pdf-save-url":n.config.pdfSaveUrl||null,"viewer-base-url":n.config.viewerBaseUrl||null,onClose:G[12]||(G[12]=lt=>me.value=!1)},null,8,["open","locale","file","theme","preview-url","download-url","only-office-base","only-office-config-endpoint","save-text-endpoint","open-mode","auth-headers","auth-credentials","drawio-url","pdf-worker-url","pdf-save-url","viewer-base-url"]),Xe.value&&it.value&&P.value?(J(),kr(kx,{key:2,"convert-url":P.value,"file-name":((Pe=it.value)==null?void 0:Pe.basename)||((_t=it.value)==null?void 0:_t.path)||"","fetch-bytes":()=>{var lt;return Le(i).fetchArrayBuffer(((lt=it.value)==null?void 0:lt.path)??"")},upload:lt=>Le(i).uploadMultipart(je(x.value),[lt]).then(()=>{}),onClose:G[13]||(G[13]=lt=>Xe.value=!1),onDone:xM},null,8,["convert-url","file-name","fetch-bytes","upload"])):tt("",!0),ct.value&&ot.value?(J(),kr(cw,{key:3,api:Le(i),path:ot.value.path,"is-dir":ot.value.type==="dir",size:typeof ot.value.size=="number"?ot.value.size:void 0,locale:z.value==="en"?"en":"tr",onClose:G[14]||(G[14]=lt=>ct.value=!1)},null,8,["api","path","is-dir","size","locale"])):tt("",!0),Bt(ho,{name:"fe-modal"},{default:Tr(()=>[_e.value?(J(),ne("div",{key:0,class:Kt(["fe fe-modal__backdrop fe-recents__backdrop",{"fe--theme-light":e.config.theme==="light","fe--theme-dark":e.config.theme==="dark"}]),onClick:G[18]||(G[18]=lt=>_e.value=!1)},[L("div",{class:"fe-recents__panel",onClick:G[17]||(G[17]=gr(()=>{},["stop"]))},[L("div",yw,[L("strong",null,ie(z.value==="en"?"Recently opened":"Son açılanlar"),1),L("button",{class:"fe-recents__close","aria-label":"Close",onClick:G[15]||(G[15]=lt=>_e.value=!1)},"×")]),Bt(G8,{"api-base":n.config.apiBase??"","auth-headers":()=>el(),limit:20,"refresh-key":ve.value,onOpen:Ee,onError:G[16]||(G[16]=lt=>a("error",{message:lt,context:{op:"recents"}}))},null,8,["api-base","auth-headers","refresh-key"])])],2)):tt("",!0)]),_:1}),Bt(ho,{name:"fe-modal"},{default:Tr(()=>[pe.value&&ye.value&&typeof ye.value.id=="number"?(J(),ne("div",{key:0,class:"fe-modal__backdrop",onClick:G[22]||(G[22]=lt=>pe.value=!1)},[L("div",{class:"fe-modal__card fe-modal__card--md",onClick:G[21]||(G[21]=gr(()=>{},["stop"]))},[L("header",xw,[L("h2",_w,ie(z.value==="en"?"Tags":"Etiketler")+" — "+ie(ye.value.basename),1),L("button",{class:"fe-modal__close","aria-label":"Close",onClick:G[19]||(G[19]=lt=>pe.value=!1)},"×")]),L("div",ww,[Bt(P8,{"node-id":ye.value.id,"api-base":n.config.apiBase??"","auth-headers":()=>el(),onError:G[20]||(G[20]=lt=>a("error",{message:lt,context:{op:"tags"}}))},null,8,["node-id","api-base","auth-headers"])])])])):tt("",!0)]),_:1}),L("input",{ref_key:"fileInputEl",ref:fe,type:"file",multiple:"",class:"fe__file-input",onChange:SM},null,544),Bt(ho,{name:"fe-toast"},{default:Tr(()=>[re.value?(J(),ne("div",kw,ie(re.value),1)):tt("",!0)]),_:1})],34)}}}),Cw='.fx-presence[data-v-f9ddf216]{display:inline-flex;align-items:center;gap:.5rem;max-width:100%}.fx-presence-avatars[data-v-f9ddf216]{display:inline-flex;align-items:center}.fx-presence-avatar[data-v-f9ddf216]{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-left:-.4rem;border-radius:9999px;border:2px solid var(--fx-presence-ring, #ffffff);color:#fff;font-size:.6rem;font-weight:600;line-height:1;-webkit-user-select:none;user-select:none}.fx-presence-avatar[data-v-f9ddf216]:first-child{margin-left:0}.fx-presence-dot[data-v-f9ddf216]{position:absolute;right:-1px;bottom:-1px;width:.5rem;height:.5rem;border-radius:9999px;background:#22c55e;border:1.5px solid var(--fx-presence-ring, #ffffff)}.fx-presence-more[data-v-f9ddf216]{margin-left:.15rem;font-size:.7rem;color:#71717a}.fx-presence--wide[data-v-f9ddf216]{flex:1 1 auto;min-width:0}.fx-presence-chips[data-v-f9ddf216]{display:flex;align-items:center;gap:.4rem;overflow-x:auto;min-width:0;padding-bottom:2px;scrollbar-width:thin}.fx-presence-chip[data-v-f9ddf216]{display:inline-flex;align-items:center;gap:.35rem;flex:0 0 auto;padding:.15rem .5rem .15rem .2rem;border-radius:9999px;background:#f4f4f5;font-size:.75rem;color:#3f3f46;white-space:nowrap}.fx-presence-chip .fx-presence-avatar[data-v-f9ddf216]{margin-left:0}.fx-presence-chip-name[data-v-f9ddf216]{font-weight:500}.fx-presence-chip-file[data-v-f9ddf216]{color:#71717a;max-width:12rem;overflow:hidden;text-overflow:ellipsis}.fx-presence-toggle[data-v-f9ddf216]{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border:none;border-radius:9999px;background:transparent;color:#71717a;font-size:.9rem;line-height:1;cursor:pointer}.fx-presence-toggle[data-v-f9ddf216]:hover{background:#e4e4e7;color:#3f3f46}.dark{background:#27272a;color:#d4d4d8}.fx-presence-text[data-v-f9ddf216]{font-size:.75rem;color:#71717a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:14rem}.fx-presence-file[data-v-f9ddf216]{color:#52525b;font-weight:500}.dark{--fx-presence-ring: #18181b}.filex-tag-picker[data-v-7040583c]{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.filex-tag-picker.is-loading[data-v-7040583c]{opacity:.6;pointer-events:none}.filex-tag[data-v-7040583c]{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500;color:#fff;background:var(--filex-tag-color)}.filex-tag-x[data-v-7040583c]{background:transparent;border:none;color:#ffffffd9;cursor:pointer;padding:0 2px;font-size:14px;line-height:1}.filex-tag-x[data-v-7040583c]:hover{color:#fff}.filex-tag-add input[data-v-7040583c]{border:1px solid var(--filex-border, #d1d5db);border-radius:12px;padding:2px 10px;font-size:12px;width:110px}.filex-tag-add-btn[data-v-7040583c]{border:1px dashed var(--filex-border, #d1d5db);background:transparent;border-radius:999px;padding:2px 10px;font-size:12px;color:var(--filex-text-muted, #6b7280);cursor:pointer}.filex-tag-add-btn[data-v-7040583c]:hover{border-color:var(--filex-accent, #6366f1);color:var(--filex-accent, #6366f1)}.filex-recent[data-v-559f2c71]{background:var(--fe-bg-elev, var(--filex-bg-card, #ffffff));border:1px solid var(--fe-border, var(--filex-border, #e5e7eb));border-radius:8px;padding:12px;font-size:13px}.filex-recent header[data-v-559f2c71]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.filex-recent h3[data-v-559f2c71]{margin:0;font-size:13px;font-weight:600;color:var(--fe-text, var(--filex-text, #111827))}.filex-recent-refresh[data-v-559f2c71]{background:transparent;border:none;color:var(--fe-text-muted, var(--filex-text-muted, #9ca3af));cursor:pointer;font-size:14px;padding:2px 6px}.filex-recent ul[data-v-559f2c71]{list-style:none;margin:0;padding:0}.filex-recent-item[data-v-559f2c71]{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;border:none;padding:6px 8px;cursor:pointer;border-radius:4px;text-align:left}.filex-recent-item[data-v-559f2c71]:hover{background:var(--fe-bg-hover, var(--filex-bg-soft, #f3f4f6))}.filex-recent-name[data-v-559f2c71]{color:var(--fe-text, var(--filex-text, #111827));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filex-recent-meta[data-v-559f2c71]{color:var(--fe-text-muted, var(--filex-text-muted, #9ca3af));font-size:11px;margin-left:8px;flex-shrink:0}.filex-recent-empty[data-v-559f2c71]{color:var(--fe-text-muted, var(--filex-text-muted, #9ca3af));margin:4px 0 0}.filex-star-btn[data-v-12a2f9c5]{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid transparent;border-radius:6px;padding:4px 8px;color:var(--filex-text-muted, #9ca3af);cursor:pointer;transition:color .12s,background .12s}.filex-star-btn[data-v-12a2f9c5]:hover{color:var(--filex-accent-amber, #f59e0b);background:var(--filex-bg-soft, rgba(0, 0, 0, .04))}.filex-star-btn.is-starred[data-v-12a2f9c5]{color:var(--filex-accent-amber, #f59e0b)}.filex-star-btn.is-compact[data-v-12a2f9c5]{padding:4px}.filex-star-label[data-v-12a2f9c5]{font-size:13px}.fe-preview__code-editor.is-hidden{display:none}.fe-preview__viewer{width:100%;height:100%;min-height:70vh;display:flex;flex-direction:column}.fe-preview .fe-preview__viewer{align-self:stretch}.fe-preview__md-mermaid{display:flex;justify-content:center;margin:16px 0}.fe-preview__md-mermaid svg{max-width:100%;height:auto}.fe-preview__md-math{margin:16px 0;text-align:center;overflow-x:auto}.filex-cv__bg[data-v-4363f1ac]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0000008c;display:flex;align-items:center;justify-content:center}.filex-cv[data-v-4363f1ac]{width:min(560px,92vw);max-height:80vh;overflow:hidden;display:flex;flex-direction:column;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1f29);border:1px solid var(--fe-border, #e2e6ed);border-radius:12px;box-shadow:0 20px 60px #00000059}.filex-cv__head[data-v-4363f1ac]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--fe-border, #e2e6ed)}.filex-cv__head h3[data-v-4363f1ac]{margin:0;font-size:14px;font-weight:600}.filex-cv__x[data-v-4363f1ac]{border:0;background:none;cursor:pointer;font-size:16px;color:var(--fe-text-muted, #5a6475)}.filex-cv__msg[data-v-4363f1ac]{padding:28px;text-align:center;color:var(--fe-text-muted, #5a6475)}.filex-cv__ok[data-v-4363f1ac]{color:#059669}.filex-cv__src[data-v-4363f1ac]{padding:12px 16px 0;font-size:13px;color:var(--fe-text-muted, #5a6475)}.filex-cv__search[data-v-4363f1ac]{margin:8px 16px;padding:8px 10px;border:1px solid var(--fe-border, #e2e6ed);border-radius:8px;background:var(--fe-bg-elev, #f7f8fa);color:inherit;font-size:13px}.filex-cv__list[data-v-4363f1ac]{flex:1;overflow-y:auto;padding:4px 12px 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.filex-cv__fmt[data-v-4363f1ac]{display:flex;flex-direction:column;gap:2px;align-items:flex-start;padding:8px 10px;cursor:pointer;text-align:left;border:1px solid var(--fe-border, #e2e6ed);border-radius:8px;background:var(--fe-bg-elev, #f7f8fa);color:inherit}.filex-cv__fmt small[data-v-4363f1ac]{color:var(--fe-text-muted, #5a6475);font-size:11px}.filex-cv__fmt.is-sel[data-v-4363f1ac]{border-color:#44c878;background:#44c8781f}.filex-cv__empty[data-v-4363f1ac]{grid-column:1 / -1;text-align:center;color:var(--fe-text-muted, #5a6475);padding:16px}.filex-cv__err[data-v-4363f1ac]{padding:0 16px;color:var(--fe-danger, #dc2626);font-size:13px}.filex-cv__foot[data-v-4363f1ac]{padding:12px 16px;border-top:1px solid var(--fe-border, #e2e6ed);text-align:right}.filex-cv__convert[data-v-4363f1ac]{padding:8px 18px;border:0;border-radius:8px;cursor:pointer;background:#44c878;color:#03200f;font-weight:600;font-size:13px}.filex-cv__convert[data-v-4363f1ac]:disabled{opacity:.5;cursor:default}.filex-cv__frame[data-v-4363f1ac]{position:absolute;width:0;height:0;border:0;left:-9999px}.fx-perm-overlay[data-v-23e7820c]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;font-family:var(--fe-font)}.fx-perm-modal[data-v-23e7820c]{display:flex;flex-direction:column;background:var(--fe-bg);color:var(--fe-text);width:min(520px,94vw);max-height:86vh;border:1px solid var(--fe-border);border-radius:var(--fe-radius-lg, 14px);box-shadow:var(--fe-shadow);font-size:14px;overflow:hidden}.fx-perm-head[data-v-23e7820c]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px 12px;flex:none}.fx-perm-title[data-v-23e7820c]{display:flex;align-items:center;gap:10px;min-width:0}.fx-perm-ico[data-v-23e7820c]{font-size:22px;line-height:1}.fx-perm-titletext[data-v-23e7820c]{display:flex;flex-direction:column;min-width:0}.fx-perm-title h3[data-v-23e7820c]{margin:0;font-size:15px;font-weight:600;color:var(--fe-text)}.fx-perm-sub[data-v-23e7820c]{font-size:12px;color:var(--fe-text);max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-perm-subdim[data-v-23e7820c]{color:var(--fe-text-muted)}.fx-perm-x[data-v-23e7820c]{background:none;border:none;font-size:17px;cursor:pointer;color:var(--fe-text-muted);flex:none;line-height:1;padding:2px 4px;border-radius:6px}.fx-perm-x[data-v-23e7820c]:hover{color:var(--fe-text);background:var(--fe-bg-hover)}.fx-perm-tabs[data-v-23e7820c]{display:flex;gap:2px;padding:0 18px;border-bottom:1px solid var(--fe-border);flex:none}.fx-perm-tab[data-v-23e7820c]{background:none;border:none;border-bottom:2px solid transparent;padding:8px 12px;cursor:pointer;color:var(--fe-text-muted);font-size:13px;font-family:inherit;font-weight:500}.fx-perm-tab[data-v-23e7820c]:hover{color:var(--fe-text)}.fx-perm-tab.is-active[data-v-23e7820c]{color:var(--fe-primary);border-bottom-color:var(--fe-primary)}.fx-perm-body[data-v-23e7820c]{flex:1 1 auto;overflow-y:auto;padding:14px 18px 18px}.fx-perm-addcard[data-v-23e7820c]{padding:12px;border-radius:var(--fe-radius-md, 10px);background:var(--fe-bg-elev);border:1px solid var(--fe-border)}.fx-perm-section[data-v-23e7820c]{margin-top:16px}.fx-perm-section h4[data-v-23e7820c]{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fe-text-muted)}.fx-perm-empty[data-v-23e7820c]{color:var(--fe-text-muted);font-size:13px;padding:8px 2px}.fx-perm-person[data-v-23e7820c]{display:flex;align-items:center;gap:10px;padding:7px 2px}.fx-perm-person+.fx-perm-person[data-v-23e7820c]{border-top:1px solid var(--fe-border)}.fx-perm-inh[data-v-23e7820c]{color:var(--fe-text-muted)}.fx-perm-av[data-v-23e7820c]{width:28px;height:28px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--fe-primary);color:var(--fe-text-on-primary, #fff);font-size:12px;font-weight:600}.fx-perm-av--dim[data-v-23e7820c]{background:var(--fe-bg-hover);color:var(--fe-text-muted)}.fx-perm-user[data-v-23e7820c]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fe-text);min-width:0}.fx-perm-from[data-v-23e7820c]{font-size:11px;color:var(--fe-text-muted);white-space:nowrap}.fx-perm-badge[data-v-23e7820c]{font-size:11px;padding:2px 9px;border-radius:999px;background:var(--fe-bg-hover);color:var(--fe-text)}.fx-perm-sel[data-v-23e7820c],.fx-perm-input[data-v-23e7820c]{padding:7px 9px;border-radius:var(--fe-radius-sm, 7px);border:1px solid var(--fe-border);background:var(--fe-bg);color:var(--fe-text);font-size:13px;font-family:inherit}.fx-perm-sel--sm[data-v-23e7820c]{padding:5px 7px;font-size:12px}.fx-perm-sel[data-v-23e7820c]:focus,.fx-perm-input[data-v-23e7820c]:focus{outline:none;border-color:var(--fe-primary)}.fx-perm-add[data-v-23e7820c]{display:flex;gap:8px;align-items:stretch}.fx-perm-emailwrap[data-v-23e7820c]{position:relative;flex:1;min-width:120px}.fx-perm-input[data-v-23e7820c]{width:100%;box-sizing:border-box}.fx-perm-suggest[data-v-23e7820c]{position:absolute;top:calc(100% + 3px);left:0;right:0;z-index:5;margin:0;padding:4px;list-style:none;background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm, 7px);box-shadow:var(--fe-shadow);max-height:210px;overflow:auto}.fx-perm-suggest li[data-v-23e7820c]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer}.fx-perm-suggest li[data-v-23e7820c]:hover{background:var(--fe-bg-hover)}.fx-perm-suggest-av[data-v-23e7820c]{width:24px;height:24px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--fe-bg-hover);color:var(--fe-text);font-size:11px;font-weight:600}.fx-perm-suggest-txt[data-v-23e7820c]{display:flex;flex-direction:column;min-width:0}.fx-perm-suggest-name[data-v-23e7820c]{color:var(--fe-text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-perm-suggest-meta[data-v-23e7820c]{color:var(--fe-text-muted);font-size:11px}.fx-perm-check[data-v-23e7820c]{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--fe-text);cursor:pointer}.fx-perm-btn[data-v-23e7820c]{padding:7px 13px;border-radius:var(--fe-radius-sm, 7px);border:1px solid var(--fe-border);background:var(--fe-bg);color:var(--fe-text);font-size:13px;font-family:inherit;cursor:pointer;white-space:nowrap}.fx-perm-btn[data-v-23e7820c]:hover:not(:disabled){background:var(--fe-bg-hover)}.fx-perm-btn[data-v-23e7820c]:disabled{opacity:.55;cursor:default}.fx-perm-btn--sm[data-v-23e7820c]{padding:5px 10px;font-size:12px}.fx-perm-btn--primary[data-v-23e7820c]{background:var(--fe-primary);border-color:var(--fe-primary);color:var(--fe-text-on-primary, #fff)}.fx-perm-btn--primary[data-v-23e7820c]:hover:not(:disabled){background:var(--fe-primary-hover, var(--fe-primary));filter:brightness(1.05)}.fx-perm-btn--ghost[data-v-23e7820c]{background:none;border-color:transparent;color:var(--fe-primary);padding-left:2px}.fx-perm-btn--ghost[data-v-23e7820c]:hover:not(:disabled){background:none;text-decoration:underline}.fx-perm-del[data-v-23e7820c]{background:none;border:none;color:var(--fe-danger);cursor:pointer;font-size:14px;flex:none;padding:2px 4px}.fx-perm-del[data-v-23e7820c]:hover:not(:disabled){filter:brightness(1.15)}.fx-perm-invite[data-v-23e7820c]{margin-top:10px;padding-top:10px;border-top:1px dashed var(--fe-border)}.fx-perm-invite-actions[data-v-23e7820c]{display:flex;flex-direction:column;gap:8px;margin-top:6px}.fx-perm-invite-row[data-v-23e7820c]{display:flex;gap:8px;align-items:stretch}.fx-perm-invite-row .fx-perm-btn--primary[data-v-23e7820c]{flex:1}.fx-perm-share-opts[data-v-23e7820c]{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.fx-perm-expiry[data-v-23e7820c]{display:inline-flex;gap:6px;align-items:center;font-size:13px}.fx-perm-share-opts .fx-perm-btn--primary[data-v-23e7820c]{margin-left:auto}.fx-perm-result[data-v-23e7820c]{margin-top:12px;padding-top:12px;border-top:1px solid var(--fe-border)}.fx-perm-linkrow[data-v-23e7820c]{display:flex;gap:8px;align-items:center}.fx-perm-link[data-v-23e7820c]{color:var(--fe-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;text-decoration:none}.fx-perm-link[data-v-23e7820c]:hover{text-decoration:underline}.fx-perm-pin[data-v-23e7820c]{margin:8px 0 0;font-size:13px;color:var(--fe-text);display:flex;align-items:center;gap:8px}.fx-perm-pin code[data-v-23e7820c],.fx-perm-reveal code[data-v-23e7820c]{font-family:var(--fe-font-mono, monospace);background:var(--fe-bg-hover);padding:1px 6px;border-radius:5px}.fx-perm-mailrow[data-v-23e7820c]{display:flex;gap:8px;margin-top:10px}.fx-perm-mailrow .fx-perm-input[data-v-23e7820c]{flex:1}.fx-perm-hint[data-v-23e7820c]{font-size:13px;color:var(--fe-text-muted);margin:10px 0 0}.fx-perm-sharebtn[data-v-23e7820c]{display:flex;width:100%;align-items:center;justify-content:center;gap:6px;margin-top:8px}.fx-perm-dropintro[data-v-23e7820c]{margin:0 0 12px;line-height:1.4}.fx-perm-advtoggle[data-v-23e7820c]{margin-top:10px;padding-left:2px}.fx-perm-adv[data-v-23e7820c]{margin-top:8px;padding-top:10px;border-top:1px dashed var(--fe-border);display:flex;flex-direction:column;gap:8px}.fx-perm-adv-row[data-v-23e7820c]{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.fx-perm-input--sm[data-v-23e7820c]{width:130px;padding:5px 8px;font-size:12px}.fx-perm-warn[data-v-23e7820c]{background:#f59e0b24;border:1px solid rgba(245,158,11,.4);border-radius:var(--fe-radius-sm, 7px);padding:8px 10px;font-size:13px;margin-bottom:10px;color:var(--fe-text)}.fx-perm-notice[data-v-23e7820c]{margin-top:8px;font-size:13px;color:var(--fe-text-muted)}.fx-perm-reveal[data-v-23e7820c]{margin-top:8px;font-size:13px;word-break:break-all;color:var(--fe-text)}.fx-perm-muted[data-v-23e7820c]{color:var(--fe-text-muted);font-size:13px}:root{--fe-bg: #ffffff;--fe-bg-elev: #f7f8fa;--fe-bg-hover: #edf0f5;--fe-bg-selected: #dfe8ff;--fe-border: #e2e6ed;--fe-border-strong: #c7ced9;--fe-text: #1a1e27;--fe-text-muted: #5a6475;--fe-text-on-primary: #ffffff;--fe-primary: #3b82f6;--fe-primary-hover: #2563eb;--fe-danger: #dc2626;--fe-danger-hover: #b91c1c;--fe-shadow: 0 10px 32px rgba(15, 23, 42, .14);--fe-shadow-sm: 0 2px 6px rgba(15, 23, 42, .08);--fe-radius: 8px;--fe-radius-sm: 4px;--fe-radius-lg: 12px;--fe-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--fe-font-mono: ui-monospace, "SF Mono", Consolas, Menlo, monospace;--fe-gap: 12px}.fe--theme-dark,:root[data-theme=dark] .fe,.fe.fe--theme-dark,:root.dark,.dark,:root.dark .fe,.dark .fe,.fe-ctx-backdrop--theme-dark,.fe-ctx-backdrop--theme-auto[data-prefers-dark="1"]{--fe-bg: #0f1419;--fe-bg-elev: #161c25;--fe-bg-hover: #1f2733;--fe-bg-selected: #23324a;--fe-border: #2a323e;--fe-border-strong: #3a4453;--fe-text: #e5e9f0;--fe-text-muted: #8b95a7;--fe-primary: #60a5fa;--fe-primary-hover: #3b82f6;--fe-danger: #f87171;--fe-danger-hover: #ef4444;--fe-shadow: 0 12px 32px rgba(0, 0, 0, .45);--fe-shadow-sm: 0 2px 6px rgba(0, 0, 0, .25)}@media (prefers-color-scheme: dark){.fe:not(.fe--theme-light),.fe-ctx-backdrop--theme-auto:not(.fe-ctx-backdrop--theme-light){--fe-bg: #0f1419;--fe-bg-elev: #161c25;--fe-bg-hover: #1f2733;--fe-bg-selected: #23324a;--fe-border: #2a323e;--fe-border-strong: #3a4453;--fe-text: #e5e9f0;--fe-text-muted: #8b95a7;--fe-primary: #60a5fa;--fe-primary-hover: #3b82f6;--fe-danger: #f87171;--fe-danger-hover: #ef4444;--fe-shadow: 0 12px 32px rgba(0, 0, 0, .45);--fe-shadow-sm: 0 2px 6px rgba(0, 0, 0, .25)}}.fe{position:relative;display:flex;flex-direction:column;min-height:420px;height:100%;background:var(--fe-bg);color:var(--fe-text);font-family:var(--fe-font);font-size:14px;border:1px solid var(--fe-border);border-radius:var(--fe-radius);overflow:hidden;outline:none}.fe *{box-sizing:border-box}.fe__body{flex:1 1 auto;overflow:auto;min-height:0;background:var(--fe-bg)}filex-explorer{display:block;height:100%}.fe__presence{flex:0 0 auto;padding:.25rem .75rem;border-bottom:1px solid var(--fe-border, rgba(0, 0, 0, .06))}.fe__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:240px;height:100%;color:var(--fe-text-muted)}.fe__spinner{width:34px;height:34px;border-radius:50%;border:3px solid color-mix(in srgb,var(--fe-text-muted) 30%,transparent);border-top-color:var(--fe-primary);animation:fe-spin .7s linear infinite}.fe__loading-text{margin:0;font-size:13px}@keyframes fe-spin{to{transform:rotate(360deg)}}.fe__notfound{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:240px;height:100%;color:var(--fe-text-muted);text-align:center;padding:24px}.fe__notfound-icon{font-size:40px;filter:grayscale(1);opacity:.6}.fe__notfound-title{margin:4px 0 0;font-size:15px;font-weight:600;color:var(--fe-text)}.fe__notfound-path{margin:0;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;word-break:break-all;max-width:480px}.fe__notfound-desc{margin:0 0 10px;font-size:13px}.fe__file-input{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.fe-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--fe-bg-elev);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);color:var(--fe-text);font:inherit;cursor:pointer;transition:background .12s,border-color .12s;white-space:nowrap}.fe-btn:hover:not(:disabled){background:var(--fe-bg-hover);border-color:var(--fe-border-strong)}.fe-btn:disabled{opacity:.5;cursor:not-allowed}.fe-btn--primary{background:var(--fe-primary);border-color:var(--fe-primary);color:var(--fe-text-on-primary)}.fe-btn--primary:hover:not(:disabled){background:var(--fe-primary-hover);border-color:var(--fe-primary-hover)}.fe-btn--danger{background:var(--fe-danger);border-color:var(--fe-danger);color:var(--fe-text-on-primary)}.fe-btn--danger:hover:not(:disabled){background:var(--fe-danger-hover);border-color:var(--fe-danger-hover)}.fe-btn--icon-only{padding:6px 8px}.fe-btn.is-active{background:var(--fe-bg-selected);border-color:var(--fe-primary)}.fe-btn__label{line-height:1}.fe-icon{font-size:1.05em;line-height:1}.fe-toolbar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--fe-bg-elev);border-bottom:1px solid var(--fe-border);flex-wrap:wrap}.fe-toolbar__primary{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.fe-toolbar__spacer{flex:1 1 auto}.fe-toolbar__search-group{display:inline-flex;align-items:center;gap:4px;background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);padding:2px}.fe-toolbar__search-group .fe-search__input{border:0;background:transparent;padding:4px 8px}.fe-toolbar__search-group .fe-btn{border:0;background:transparent;padding:4px 6px}.fe-toolbar__search-group .fe-btn:hover:not(:disabled){background:var(--fe-bg-hover)}.fe-toolbar__view{display:inline-flex;gap:2px;padding:2px;background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm)}.fe-toolbar__view .fe-btn{border:0;background:transparent}.fe-toolbar__view .fe-btn.is-active{background:var(--fe-bg-selected)}.fe-search{position:relative}.fe-search__input{background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);padding:6px 10px;font:inherit;color:var(--fe-text);min-width:200px}.fe-search__input:focus-visible{outline:2px solid var(--fe-primary);outline-offset:1px}.fe-breadcrumb{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:6px 12px;background:var(--fe-bg);border-bottom:1px solid var(--fe-border);font-size:13px;color:var(--fe-text-muted)}.fe-breadcrumb__crumb{display:inline-flex;align-items:center;gap:4px;background:transparent;border:0;color:inherit;padding:2px 6px;border-radius:var(--fe-radius-sm);cursor:pointer;font:inherit}.fe-breadcrumb__crumb:hover{background:var(--fe-bg-hover);color:var(--fe-text)}.fe-breadcrumb__crumb.is-last{color:var(--fe-text);font-weight:600}.fe-breadcrumb__sep{color:var(--fe-text-muted)}.fe-breadcrumb__edit{margin-left:auto;background:none;border:1px solid transparent;color:var(--fe-text-muted);cursor:pointer;font-size:14px;line-height:1;padding:4px 8px;border-radius:4px}.fe-breadcrumb__edit:hover{background:var(--fe-bg-hover);color:var(--fe-text);border-color:var(--fe-border)}.fe-breadcrumb__input{flex:1;background:var(--fe-bg);color:var(--fe-text);border:1px solid var(--fe-accent, #2563eb);border-radius:4px;padding:4px 8px;font-family:var(--fe-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-size:13px;outline:none}.fe-list{display:flex;flex-direction:column}.fe-list__head{display:grid;grid-template-columns:32px minmax(0,1fr) 120px 180px;gap:8px;padding:8px 12px;font-weight:600;color:var(--fe-text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;background:var(--fe-bg-elev);border-bottom:1px solid var(--fe-border)}.fe-list__body{display:flex;flex-direction:column}.fe-list__row{display:grid;grid-template-columns:32px minmax(0,1fr) 120px 180px;gap:8px;padding:8px 12px;align-items:center;cursor:pointer;border-bottom:1px solid var(--fe-border);transition:background .08s;-webkit-user-select:none;user-select:none}.fe-list__row:hover{background:var(--fe-bg-hover)}.fe-list__row.is-selected{background:var(--fe-bg-selected)}.fe-list__row.is-trash{opacity:.7}.fe-list__row.is-clipped,.fe-grid__card.is-clipped{opacity:.45;font-style:italic}.fe-list__row:focus-visible{outline:2px solid var(--fe-primary);outline-offset:-2px}.fe-list__col--star{display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s}.fe-list__row:hover .fe-list__col--star,.fe-list__row:focus-within .fe-list__col--star,.fe-list__col--star:has(.is-starred){opacity:1}.fe-list__col--star .filex-star-btn.is-starred{color:var(--fe-warning, #f59e0b)}.fe-list__col--name{display:flex;align-items:center;gap:8px;min-width:0}.fe-list__icon{flex-shrink:0;font-size:16px}.fe-list__name-wrap{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.fe-list__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fe-list__parent{font-size:11px;color:var(--fe-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}.fe-list__col--size,.fe-list__col--mod{color:var(--fe-text-muted);font-size:13px}.fe-list__empty{padding:40px 20px;text-align:center;color:var(--fe-text-muted)}.fe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--fe-gap);padding:var(--fe-gap)}.fe-grid__card{display:flex;flex-direction:column;align-items:stretch;padding:8px;border:1px solid var(--fe-border);border-radius:var(--fe-radius);background:var(--fe-bg-elev);cursor:pointer;transition:background .08s,border-color .08s;-webkit-user-select:none;user-select:none}.fe-grid__card:hover{background:var(--fe-bg-hover);border-color:var(--fe-border-strong)}.fe-grid__card.is-selected{background:var(--fe-bg-selected);border-color:var(--fe-primary)}.fe-grid__card.is-trash{opacity:.7}.fe-grid__thumb{display:flex;align-items:center;justify-content:center;aspect-ratio:1 / 1;background:var(--fe-bg);border-radius:var(--fe-radius-sm);margin-bottom:8px;overflow:hidden}.fe-grid__thumb img{width:100%;height:100%;object-fit:cover}.fe-grid__icon{font-size:32px}.fe-grid__label{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fe-grid__meta{font-size:11px;color:var(--fe-text-muted);margin-top:2px}.fe-grid__parent{font-size:11px;color:var(--fe-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-style:italic}.fe-grid__empty{grid-column:1 / -1;padding:40px 20px;text-align:center;color:var(--fe-text-muted)}.fe__dragover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#3b82f61f;border:3px dashed var(--fe-primary);pointer-events:none}.fe__dragover-card{background:var(--fe-bg);border-radius:var(--fe-radius-lg);padding:24px 40px;box-shadow:var(--fe-shadow);text-align:center}.fe__dragover-card .fe-icon{font-size:32px;display:block;margin-bottom:8px}.fe-upload{position:absolute;right:16px;bottom:16px;width:min(360px,calc(100% - 32px));background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius);box-shadow:var(--fe-shadow);z-index:40;max-height:40vh;display:flex;flex-direction:column;overflow:hidden}.fe-upload__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--fe-bg-elev);border-bottom:1px solid var(--fe-border);font-size:13px}.fe-upload__count{background:var(--fe-primary);color:var(--fe-text-on-primary);font-size:12px;padding:1px 7px;border-radius:999px}.fe-upload__list{list-style:none;padding:0;margin:0;overflow:auto}.fe-upload__item{padding:10px 14px;border-bottom:1px solid var(--fe-border)}.fe-upload__item:last-child{border-bottom:0}.fe-upload__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;margin-bottom:4px}.fe-upload__bar{background:var(--fe-bg-elev);border-radius:99px;height:6px;overflow:hidden;margin-bottom:4px}.fe-upload__bar-fill{background:var(--fe-primary);height:100%;transition:width .2s}.fe-upload__item.is-error .fe-upload__bar-fill,.fe-upload__item.is-aborted .fe-upload__bar-fill{background:var(--fe-danger)}.fe-upload__item.is-done .fe-upload__bar-fill{background:#16a34a}.fe-upload__meta{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;color:var(--fe-text-muted)}.fe-upload__cancel{background:transparent;border:0;color:var(--fe-primary);cursor:pointer;font:inherit}.fe-upload-slide-enter-active,.fe-upload-slide-leave-active{transition:transform .2s,opacity .2s}.fe-upload-slide-enter-from,.fe-upload-slide-leave-to{opacity:0;transform:translateY(10px)}.fe-ops{position:absolute;left:16px;bottom:16px;width:min(320px,calc(100% - 32px));display:flex;flex-direction:column;gap:8px;z-index:40}.fe-ops__item{background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius);box-shadow:var(--fe-shadow);padding:10px 14px;font-size:13px}.fe-ops__item.is-done{border-color:#16a34a}.fe-ops__item.is-error{border-color:var(--fe-danger)}.fe-ops__row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.fe-ops__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.fe-ops__dismiss{background:transparent;border:0;color:var(--fe-text-muted);cursor:pointer;font-size:18px;line-height:1;padding:0 4px}.fe-ops__bar{background:var(--fe-bg-elev);border-radius:99px;height:6px;overflow:hidden}.fe-ops__bar-fill{background:var(--fe-primary);height:100%;transition:width .25s}.fe-ops__item.is-done .fe-ops__bar-fill{background:#16a34a}.fe-ops__item.is-error .fe-ops__bar-fill{background:var(--fe-danger)}.fe-ops__error{margin-top:6px;font-size:11px;color:var(--fe-danger)}.fe-ops-slide-enter-active,.fe-ops-slide-leave-active{transition:transform .2s,opacity .2s}.fe-ops-slide-enter-from,.fe-ops-slide-leave-to{opacity:0;transform:translateY(10px)}.fe-ctx-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;color:var(--fe-text);font-family:var(--fe-font);font-size:14px}.fe-ctx{position:absolute;min-width:180px;background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius);box-shadow:var(--fe-shadow);padding:4px;z-index:90;color:var(--fe-text)}.fe-ctx__item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--fe-radius-sm);border:0;background:transparent;color:var(--fe-text);font:inherit;width:100%;text-align:left;cursor:pointer}.fe-ctx__item:hover:not(.is-disabled){background:var(--fe-bg-hover)}.fe-ctx__item.is-danger{color:var(--fe-danger)}.fe-ctx__item.is-disabled{opacity:.45;cursor:not-allowed}.fe-ctx__icon{width:1.2em;text-align:center}.fe-ctx__sep{height:1px;background:var(--fe-border);margin:4px 0}.fe-ctx-enter-active,.fe-ctx-leave-active{transition:opacity .1s}.fe-ctx-enter-from,.fe-ctx-leave-to{opacity:0}.fe-modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;background:#0d131b7a;padding:16px}.fe-modal__card{background:var(--fe-bg);border-radius:var(--fe-radius);box-shadow:var(--fe-shadow);width:100%;max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden}.fe-modal__card--sm{max-width:420px}.fe-modal__card--md{max-width:560px}.fe-modal__card--lg{max-width:800px}.fe-modal__card--xl{max-width:1080px;height:calc(100vh - 64px)}.fe-recents__backdrop{align-items:flex-start!important;padding-top:60px}.fe-recents__panel{background:var(--fe-bg, #fff);border-radius:var(--fe-radius, 8px);box-shadow:var(--fe-shadow, 0 6px 24px rgba(0, 0, 0, .18));width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 96px);display:flex;flex-direction:column;overflow:hidden}.fe-recents__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--fe-border, #e2e6ed)}.fe-recents__close{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;font-size:22px;line-height:1;cursor:pointer;color:var(--fe-text-muted, #6b7280);padding:0 4px}.fe-recents__close:hover{color:var(--fe-text, #111)}.fe-preview__md-split{display:flex;flex-direction:column;height:100%;width:100%;min-height:0}.fe-preview__md-split-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:var(--fe-bg-elev, #f6f7f9);border-bottom:1px solid var(--fe-border, #e2e6ed);flex:0 0 auto}.fe-preview__md-split-label{font-family:var(--fe-font-mono, ui-monospace, monospace);font-size:11px;letter-spacing:.06em;color:var(--fe-text-muted, #6b7280)}.fe-preview__md-split-error{flex:1 1 auto;font-size:12px;color:var(--fe-danger, #dc2626);text-align:center}.fe-preview__md-split-body{flex:1 1 auto;display:grid;grid-template-columns:1fr 1fr;min-height:0}.fe-preview__md-split-input{resize:none;border:0;outline:0;padding:16px 20px;font-family:var(--fe-font-mono, ui-monospace, monospace);font-size:13px;line-height:1.6;background:var(--fe-bg, #fff);color:var(--fe-text, #111);border-right:1px solid var(--fe-border, #e2e6ed);overflow:auto;-moz-tab-size:2;tab-size:2}.fe-preview__md-split-output{overflow:auto;padding:16px 24px;background:var(--fe-bg, #fff)}.fe-preview__md-split-output.fe-preview__md{max-height:none;min-height:0;height:100%}@media (max-width: 900px){.fe-preview__md-split-body{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.fe-preview__md-split-input{border-right:0;border-bottom:1px solid var(--fe-border, #e2e6ed)}}.fe-modal__backdrop--chromeless{background:transparent;padding:0}.fe-modal__card--chromeless{max-width:none;width:100vw;height:100vh;max-height:100vh;border-radius:0;box-shadow:none}.fe-modal__card--chromeless .fe-modal__body{flex:1 1 auto;min-height:0;padding:0}.fe-modal__card--chromeless .fe-preview{align-items:stretch;justify-content:stretch;min-height:0;flex:1 1 auto}.fe-modal__card--chromeless .fe-preview>*{width:100%;height:100%}.fe-modal__head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--fe-border)}.fe-modal__title{font-size:16px;font-weight:600;margin:0}.fe-modal__close{background:transparent;border:0;color:var(--fe-text-muted);font-size:22px;cursor:pointer;padding:0 4px;line-height:1}.fe-modal__body{padding:16px;overflow:auto;flex:1 1 auto}.fe-modal__actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--fe-border);background:var(--fe-bg-elev)}.fe-modal-enter-active,.fe-modal-leave-active{transition:opacity .15s}.fe-modal-enter-from,.fe-modal-leave-to{opacity:0}.fe-input{width:100%;padding:8px 10px;background:var(--fe-bg);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);font:inherit;color:var(--fe-text)}.fe-input:focus-visible{outline:2px solid var(--fe-primary);outline-offset:1px}.fe-input--mono{font-family:var(--fe-font-mono);letter-spacing:.1em}.fe-form{display:flex;flex-direction:column;gap:12px}.fe-form__row{display:flex;align-items:center;gap:8px}.fe-form__row--stack{flex-direction:column;align-items:stretch}.fe-form__error{color:var(--fe-danger);font-size:12px;margin:6px 0 0}.fe-share-result{display:flex;flex-direction:column;gap:12px}.fe-share-result__row label{display:block;font-size:12px;font-weight:600;color:var(--fe-text-muted);margin-bottom:4px}.fe-share-result__copy{display:flex;gap:6px}.fe-preview{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:50vh;background:var(--fe-bg-elev)}.fe-preview__image{max-width:100%;max-height:70vh;object-fit:contain}.fe-preview__video,.fe-preview__audio{max-width:100%;max-height:70vh}.fe-preview__iframe{width:100%;height:70vh;border:0;background:#fff}.fe-preview__office{width:100%;height:78vh;background:var(--fe-bg)}.fe-preview__code-wrap{display:flex;flex-direction:column;width:100%;height:78vh}.fe-preview__code-toolbar{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--fe-bg-hover, #f3f4f6);border-bottom:1px solid var(--fe-border, #e5e7eb);font-size:12px}.fe-preview__code-lang{font-family:var(--fe-font-mono, ui-monospace, monospace);color:var(--fe-text-muted);text-transform:uppercase;letter-spacing:.04em}.fe-preview__code-toolbar>.fe-btn{margin-left:auto}.fe-preview__code-status{font-size:12px;font-weight:500}.fe-preview__code-status--ok{color:#059669}.fe-preview__code-status--err{color:#dc2626;cursor:help}.fe-preview__code-editor{flex:1;min-height:0;overflow:hidden}.fe-preview__code-editor .cm-editor{height:100%;font-size:13px}.fe-preview__code-editor .cm-scroller{font-family:var(--fe-font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace)}.fe-preview__fallback{text-align:center;color:var(--fe-text-muted);padding:40px 20px}.fe-preview__fallback-icon{font-size:48px;display:block;margin-bottom:12px}.fe-preview__pre{margin:0;padding:16px;width:100%;max-height:70vh;overflow:auto;background:var(--fe-bg);color:var(--fe-text);font-family:var(--fe-font-mono);font-size:13px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}.fe-preview__code{white-space:pre;word-wrap:normal}.hljs{background:var(--fe-bg);color:var(--fe-text)}.hljs-comment,.hljs-quote{color:var(--fe-text-muted);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-section,.hljs-meta{color:#c678dd}.hljs-string,.hljs-attr,.hljs-symbol,.hljs-bullet,.hljs-addition,.hljs-link{color:#98c379}.hljs-number,.hljs-literal,.hljs-deletion{color:#d19a66}.hljs-title,.hljs-name,.hljs-selector-id,.hljs-selector-class,.hljs-template-tag,.hljs-template-variable{color:#61aeee}.hljs-type,.hljs-tag{color:#e06c75}.hljs-variable,.hljs-attribute{color:#d19a66}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.fe-preview__md{width:100%;max-height:70vh;overflow:auto;padding:24px 32px;background:var(--fe-bg);color:var(--fe-text);line-height:1.6;font-size:15px}.fe-preview__md h1,.fe-preview__md h2,.fe-preview__md h3,.fe-preview__md h4{margin:1.2em 0 .6em;font-weight:600}.fe-preview__md h1{font-size:1.8em;border-bottom:1px solid var(--fe-border);padding-bottom:.3em}.fe-preview__md h2{font-size:1.4em;border-bottom:1px solid var(--fe-border);padding-bottom:.3em}.fe-preview__md h3{font-size:1.2em}.fe-preview__md p{margin:.8em 0}.fe-preview__md a{color:var(--fe-primary);text-decoration:underline}.fe-preview__md code{font-family:var(--fe-font-mono);background:var(--fe-bg-elev);padding:1px 5px;border-radius:3px;font-size:.92em}.fe-preview__md pre{background:var(--fe-bg-elev);border:1px solid var(--fe-border);border-radius:var(--fe-radius-sm);padding:12px 16px;overflow:auto;font-size:.9em}.fe-preview__md pre code{background:transparent;padding:0}.fe-preview__md ul,.fe-preview__md ol{padding-left:2em;margin:.8em 0}.fe-preview__md li{margin:.3em 0}.fe-preview__md blockquote{border-left:3px solid var(--fe-border-strong);padding:0 1em;color:var(--fe-text-muted);margin:.8em 0}.fe-preview__md table{border-collapse:collapse;margin:1em 0;width:100%}.fe-preview__md th,.fe-preview__md td{border:1px solid var(--fe-border);padding:6px 10px;text-align:left}.fe-preview__md th{background:var(--fe-bg-elev)}.fe-preview__md img{max-width:100%}.fe-toast{position:absolute;bottom:24px;left:50%;transform:translate(-50%);background:var(--fe-text);color:var(--fe-bg);padding:8px 14px;border-radius:var(--fe-radius);font-size:13px;box-shadow:var(--fe-shadow-sm);z-index:95}.fe-toast-enter-active,.fe-toast-leave-active{transition:opacity .2s,transform .2s}.fe-toast-enter-from,.fe-toast-leave-to{opacity:0;transform:translate(-50%,10px)}@media (max-width: 640px){.fe-list__head,.fe-list__row{grid-template-columns:28px minmax(0,1fr) 90px}.fe-list__col--mod{display:none}.fe-toolbar{padding:8px}.fe-search__input{min-width:120px}}.filex-viewer-3d[data-v-f9492fd4]{width:100%;height:100%;min-height:480px;background:#1a1a1a;display:flex;align-items:center;justify-content:center}.filex-viewer-3d[data-v-f9492fd4] model-viewer{width:100%;height:100%;min-height:480px;background:#1a1a1a;display:block}.filex-viewer-fallback[data-v-f9492fd4]{text-align:center;color:#c8cdd6;padding:32px;max-width:480px}.filex-viewer-fallback__icon[data-v-f9492fd4]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-epub__nav[data-v-12eb7133]{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:8px;padding:4px 8px;background:var(--fe-bg-elev, rgba(255, 255, 255, .9));border:1px solid var(--fe-border, #e2e6ed);border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.filex-viewer-epub[data-v-12eb7133]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);position:relative}.filex-viewer-epub__bar[data-v-12eb7133]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:13px}.filex-viewer-spacer[data-v-12eb7133]{flex:1}.filex-viewer-epub__fs[data-v-12eb7133]{display:inline-block;min-width:40px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-epub__main[data-v-12eb7133]{flex:1;min-height:0;display:flex}.filex-viewer-epub__rendition[data-v-12eb7133]{flex:1;min-height:0}.filex-viewer-epub__toc[data-v-12eb7133]{width:260px;border-right:1px solid var(--fe-border, #e2e6ed);overflow-y:auto;padding:12px 0;background:var(--fe-bg-elev, #f7f8fa)}.filex-viewer-epub__toc ul[data-v-12eb7133]{list-style:none;margin:0;padding:0}.filex-viewer-epub__toc-link[data-v-12eb7133]{display:block;width:100%;text-align:left;background:transparent;border:0;padding:6px 14px;font:inherit;color:inherit;cursor:pointer}.filex-viewer-epub__toc-link[data-v-12eb7133]:hover{background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-epub__toc-link.is-child[data-v-12eb7133]{padding-left:28px;color:var(--fe-text-muted, #5a6475);font-size:12px}.filex-viewer-epub__loading[data-v-12eb7133]{position:absolute;inset:auto 0 0 0;text-align:center;padding:6px;background:#0000000d;font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback[data-v-12eb7133]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-12eb7133]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-12eb7133]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:12px}.filex-viewer-btn[data-v-12eb7133]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn[data-v-12eb7133]:disabled{opacity:.5;cursor:not-allowed}.filex-viewer-mermaid[data-v-939eea2b]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27)}.filex-viewer-mermaid__bar[data-v-939eea2b]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:13px}.filex-viewer-mermaid__zoom[data-v-939eea2b]{min-width:50px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-mermaid__pane[data-v-939eea2b]{flex:1;overflow:hidden;position:relative;cursor:grab;background:var(--fe-bg-elev, #f7f8fa);touch-action:none}.filex-viewer-mermaid__pane[data-v-939eea2b]:active{cursor:grabbing}.filex-viewer-mermaid__surface[data-v-939eea2b]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;transform-origin:center center;transition:transform .05s linear;-webkit-user-select:none;user-select:none}.filex-viewer-mermaid__surface[data-v-939eea2b] svg{max-width:90%;max-height:90%}.filex-viewer-fallback[data-v-939eea2b]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475);width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.filex-viewer-fallback__icon[data-v-939eea2b]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-939eea2b]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:12px}.filex-viewer-btn[data-v-939eea2b]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-drawio[data-v-2e4b5f3b]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff)}.filex-viewer-drawio__bar[data-v-2e4b5f3b]{display:flex;align-items:center;gap:12px;padding:6px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-drawio__status[data-state=error][data-v-2e4b5f3b]{color:var(--fe-danger, #dc2626)}.filex-viewer-drawio__status[data-state=saved][data-v-2e4b5f3b]{color:#059669}.filex-viewer-drawio__readonly[data-v-2e4b5f3b]{font-style:italic;margin-left:auto}.filex-viewer-drawio__frame[data-v-2e4b5f3b]{flex:1;width:100%;border:0;background:#fafafa;min-height:0}.filex-viewer-fallback[data-v-2e4b5f3b]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-2e4b5f3b]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-tiff__pager[data-v-c6b84f5d]{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:4px 8px;background:var(--fe-bg-elev, rgba(255, 255, 255, .9));border:1px solid var(--fe-border, #e2e6ed);border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.filex-viewer-tiff__pages[data-v-c6b84f5d]{font-size:12px;font-variant-numeric:tabular-nums}.filex-viewer-tiff[data-v-c6b84f5d]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff)}.filex-viewer-tiff__bar[data-v-c6b84f5d]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:13px}.filex-viewer-tiff__pages[data-v-c6b84f5d]{min-width:110px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-tiff__zoom[data-v-c6b84f5d]{min-width:50px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-spacer[data-v-c6b84f5d]{flex:1}.filex-viewer-tiff__pane[data-v-c6b84f5d]{flex:1;overflow:auto;padding:16px;background:#2a2d33;display:flex;align-items:flex-start;justify-content:flex-start}.filex-viewer-tiff__pane canvas[data-v-c6b84f5d]{background:#fff;box-shadow:0 4px 16px #0000004d}.filex-viewer-fallback[data-v-c6b84f5d]{text-align:center;padding:32px;color:#c8cdd6;margin:auto}.filex-viewer-fallback__icon[data-v-c6b84f5d]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-c6b84f5d]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:12px}.filex-viewer-btn[data-v-c6b84f5d]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn[data-v-c6b84f5d]:disabled{opacity:.4;cursor:not-allowed}.filex-viewer-psd[data-v-001123c3]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff)}.filex-viewer-psd__bar[data-v-001123c3]{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:13px}.filex-viewer-spacer[data-v-001123c3]{flex:1}.filex-viewer-psd__dim[data-v-001123c3]{font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-psd__zoom[data-v-001123c3]{min-width:50px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-psd__main[data-v-001123c3]{flex:1;display:flex;min-height:0}.filex-viewer-psd__layers[data-v-001123c3]{width:240px;border-right:1px solid var(--fe-border, #e2e6ed);overflow-y:auto;padding:8px 0;background:var(--fe-bg-elev, #f7f8fa)}.filex-viewer-psd__layers ul[data-v-001123c3]{list-style:none;margin:0;padding:0}.filex-viewer-psd__layers li[data-v-001123c3]{display:flex;align-items:center;gap:6px;padding:4px 12px;font-size:12px}.filex-viewer-psd__layer-vis[data-v-001123c3]{width:14px;text-align:center;color:var(--fe-text-muted, #5a6475)}.filex-viewer-psd__layer-vis[data-hidden="1"][data-v-001123c3]{color:var(--fe-border-strong, #c7ced9)}.filex-viewer-psd__layer-name[data-v-001123c3]{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filex-viewer-psd__pane[data-v-001123c3]{flex:1;overflow:auto;padding:16px;background:#2a2d33;display:flex;align-items:flex-start;justify-content:flex-start}.filex-viewer-psd__pane canvas[data-v-001123c3]{background:#fff repeating-conic-gradient(#e0e0e0 0% 25%,transparent 0% 50%) 50% / 16px 16px;box-shadow:0 4px 16px #0000004d}.filex-viewer-fallback[data-v-001123c3]{text-align:center;padding:32px;color:#c8cdd6;margin:auto}.filex-viewer-fallback__icon[data-v-001123c3]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-001123c3]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:12px}.filex-viewer-btn[data-v-001123c3]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn.is-active[data-v-001123c3]{background:var(--fe-bg-selected, #dfe8ff);border-color:var(--fe-primary, #3b82f6)}.filex-viewer-ipynb[data-v-eece712d]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27)}.filex-viewer-ipynb__bar[data-v-eece712d]{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-ipynb__lang[data-v-eece712d]{font-family:var(--fe-font-mono, monospace);text-transform:uppercase;letter-spacing:.04em}.filex-viewer-ipynb__pane[data-v-eece712d]{flex:1;overflow:auto;padding:16px 24px}.filex-viewer-ipynb__cell[data-v-eece712d]{border:1px solid var(--fe-border, #e2e6ed);border-radius:6px;margin-bottom:16px;overflow:hidden}.filex-viewer-ipynb__cell[data-type=code][data-v-eece712d]{background:var(--fe-bg-elev, #f7f8fa)}.filex-viewer-ipynb__exec[data-v-eece712d]{padding:4px 12px;font-family:var(--fe-font-mono, monospace);font-size:11px;color:var(--fe-text-muted, #5a6475);background:#0000000a}.filex-viewer-ipynb__src[data-v-eece712d]{margin:0;padding:12px;font-family:var(--fe-font-mono, monospace);font-size:12px;line-height:1.5;white-space:pre;overflow-x:auto}.filex-viewer-ipynb__outputs[data-v-eece712d]{border-top:1px dashed var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);padding:8px 12px}.filex-viewer-ipynb__out[data-v-eece712d]{margin:0;padding:4px 0;font-family:var(--fe-font-mono, monospace);font-size:12px;white-space:pre-wrap;word-wrap:break-word}.filex-viewer-ipynb__out[data-type=error][data-v-eece712d]{color:var(--fe-danger, #dc2626)}.filex-viewer-ipynb__img[data-v-eece712d]{display:block;max-width:100%;height:auto;margin:8px 0}.filex-viewer-ipynb__html[data-v-eece712d]{font-size:13px}.filex-viewer-ipynb__md[data-v-eece712d]{padding:12px 16px;font-size:14px;line-height:1.6}.filex-viewer-ipynb__md-raw[data-v-eece712d]{padding:12px;margin:0;font-family:var(--fe-font-mono, monospace);font-size:12px;white-space:pre-wrap}.filex-viewer-fallback[data-v-eece712d]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-eece712d]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-csv[data-v-db55a104]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27)}.filex-viewer-csv__bar[data-v-db55a104]{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--fe-bg-elev, #f7f8fa);border-bottom:1px solid var(--fe-border, #e2e6ed);font-size:12px}.filex-viewer-csv__check[data-v-db55a104]{display:flex;align-items:center;gap:4px;font-size:12px}.filex-viewer-csv__select[data-v-db55a104],.filex-viewer-csv__filter[data-v-db55a104]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:inherit;padding:4px 8px;border-radius:4px;font:inherit;font-size:12px}.filex-viewer-csv__filter[data-v-db55a104]{flex:0 1 240px}.filex-viewer-spacer[data-v-db55a104]{flex:1}.filex-viewer-csv__count[data-v-db55a104]{font-size:11px;color:var(--fe-text-muted, #5a6475);font-variant-numeric:tabular-nums}.filex-viewer-csv__pane[data-v-db55a104]{flex:1;overflow:auto}.filex-viewer-csv__table[data-v-db55a104]{border-collapse:collapse;width:max-content;min-width:100%;font-size:12px;font-family:var(--fe-font-mono, monospace)}.filex-viewer-csv__table th[data-v-db55a104],.filex-viewer-csv__table td[data-v-db55a104]{padding:4px 10px;border:1px solid var(--fe-border, #e2e6ed);white-space:nowrap;max-width:320px;overflow:hidden;text-overflow:ellipsis}.filex-viewer-csv__table th[data-v-db55a104]{background:var(--fe-bg-elev, #f7f8fa);position:sticky;top:0;font-weight:600;text-align:left}.filex-viewer-csv__table tbody tr[data-v-db55a104]:nth-child(2n){background:var(--fe-bg-hover, rgba(0, 0, 0, .02))}.filex-viewer-csv__rownum[data-v-db55a104]{color:var(--fe-text-muted, #5a6475);text-align:right;background:var(--fe-bg-elev, #f7f8fa);font-variant-numeric:tabular-nums;position:sticky;left:0}.filex-viewer-csv__pager[data-v-db55a104]{display:flex;justify-content:center;align-items:center;gap:8px;padding:6px;background:var(--fe-bg-elev, #f7f8fa);border-top:1px solid var(--fe-border, #e2e6ed);font-size:12px}.filex-viewer-csv__pageno[data-v-db55a104]{font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-fallback[data-v-db55a104]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-db55a104]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-db55a104]{border:1px solid var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27);padding:4px 10px;border-radius:4px;cursor:pointer;font:inherit;font-size:12px}.filex-viewer-btn[data-v-db55a104]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn[data-v-db55a104]:disabled{opacity:.4;cursor:not-allowed}.filex-viewer-archive[data-v-93df7b13]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff);color:var(--fe-text, #1a1e27)}.filex-viewer-archive__pane[data-v-93df7b13]{flex:1;overflow:auto;padding:16px 20px}.filex-viewer-archive__summary[data-v-93df7b13]{font-size:12px;color:var(--fe-text-muted, #5a6475);margin-bottom:12px;font-variant-numeric:tabular-nums}.filex-viewer-archive__table[data-v-93df7b13]{width:100%;border-collapse:collapse;font-size:13px;font-family:var(--fe-font-mono, monospace)}.filex-viewer-archive__table th[data-v-93df7b13],.filex-viewer-archive__table td[data-v-93df7b13]{padding:6px 12px;border-bottom:1px solid var(--fe-border, #e2e6ed);text-align:left}.filex-viewer-archive__table th[data-v-93df7b13]{background:var(--fe-bg-elev, #f7f8fa);font-weight:600;position:sticky;top:0}.filex-viewer-archive__size[data-v-93df7b13]{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--fe-text-muted, #5a6475)}.filex-viewer-archive__icon[data-v-93df7b13]{margin-right:6px}.filex-viewer-archive__table tr[data-dir="1"][data-v-93df7b13]{color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback[data-v-93df7b13]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-93df7b13]{font-size:48px;display:block;margin-bottom:12px}';let pp=!1;function Aw(){if(pp||typeof document>"u")return;const e=document.createElement("style");e.setAttribute("data-filex",""),e.textContent=Cw,document.head.appendChild(e),pp=!0}function vp(e,t){const r={};return e.apiBase&&(r.apiBase=e.apiBase),e.endpoint&&(r.endpoint=e.endpoint),(e.locale==="tr"||e.locale==="en")&&(r.locale=e.locale),(e.theme==="light"||e.theme==="dark"||e.theme==="auto")&&(r.theme=e.theme),e.trashVisible!==void 0&&(r.trashVisible=e.trashVisible===!0||e.trashVisible==="true"||e.trashVisible===""),{...r,...t??{}}}const mp=x6({inheritAttrs:!1,props:{config:{type:Object,default:null},apiBase:{type:String,default:""},endpoint:{type:String,default:""},locale:{type:String,default:""},theme:{type:String,default:""},trashVisible:{type:[Boolean,String],default:void 0}},emits:["share-created","file-opened","error","upload-progress","selection-change"],setup(e,{emit:t}){Aw();const r=de(vp({apiBase:e.apiBase,endpoint:e.endpoint,locale:e.locale,theme:e.theme,trashVisible:e.trashVisible},e.config));return tr(()=>[e.config,e.apiBase,e.endpoint,e.locale,e.theme,e.trashVisible],()=>{r.value=vp({apiBase:e.apiBase,endpoint:e.endpoint,locale:e.locale,theme:e.theme,trashVisible:e.trashVisible},e.config)},{deep:!0}),()=>Ch(Sw,{config:r.value,onShareCreated:n=>t("share-created",n),onFileOpened:n=>t("file-opened",n),onError:n=>t("error",n),onUploadProgress:n=>t("upload-progress",n),onSelectionChange:n=>t("selection-change",n)})}},{shadowRoot:!1}),Ew=mp;typeof customElements<"u"&&!customElements.get("filex-explorer")&&customElements.define("filex-explorer",mp);const Tw={class:"filex-viewer-3d"},Mw={key:1,class:"filex-viewer-fallback"},Dw={key:2,class:"filex-viewer-fallback"},vo=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"Viewer3D",props:{url:{},mime:{},ext:{},t:{type:Function}},setup(e){const t=e,r=new Set(["glb","gltf","usdz"]),n=mt(()=>r.has((t.ext||"").toLowerCase())),a=de(null),i=de(!1);async function o(){if(i.value=!1,a.value=null,!n.value){a.value=t.t?t.t("viewer.format_unsupported_3d"):`3D format ".${t.ext}" not supported in browser preview — please download.`;return}try{await import("@google/model-viewer"),i.value=!0}catch{a.value=t.t?t.t("viewer.peer_not_installed"):"3D viewer requires `@google/model-viewer` — install or use download."}}return vr(o),tr(()=>t.url,()=>{o()}),(l,s)=>{const u=f5("model-viewer");return J(),ne("div",Tw,[i.value&&!a.value?(J(),kr(u,{key:0,src:e.url,"auto-rotate":"","camera-controls":"","touch-action":"pan-y","shadow-intensity":"1",alt:e.ext+" model",style:{width:"100%",height:"100%","min-height":"480px",display:"block"}},null,8,["src","alt"])):a.value?(J(),ne("div",Mw,[s[0]||(s[0]=L("span",{class:"filex-viewer-fallback__icon"},"📦",-1)),L("p",null,ie(a.value),1)])):(J(),ne("div",Dw,[s[1]||(s[1]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(e.t?e.t("viewer.loading"):"Loading…"),1)]))])}}}),[["__scopeId","data-v-299b3816"]])},Symbol.toStringTag,{value:"Module"})),Iw={key:0,class:"filex-viewer-fallback"},zw={key:0,class:"filex-viewer-epub__nav"},Fw=["disabled"],Ow=["disabled"],Pw={key:1,class:"filex-viewer-epub__loading"},Rw=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"EpubViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de(null),n=de(null),a=de(null),i=de([]),o=de(100),l=de(!1),s=de(!0);let u=null,c=null;async function d(){s.value=!0,l.value=!1,a.value=null;let x=null;try{x=await import("epubjs")}catch{a.value=t.t?t.t("viewer.peer_not_installed"):"EPUB viewer requires `epubjs` — install or use download.",s.value=!1;return}try{const b=x.default??x;let v=t.url;if(t.authHeaders){const m=t.authHeaders(),C=await fetch(t.url,{headers:m,credentials:t.authCredentials||"same-origin"});if(!C.ok)throw new Error(`${C.status} ${C.statusText}`);v=await C.arrayBuffer()}if(u=b(v),!n.value)throw new Error("EPUB mount target missing");c=u.renderTo(n.value,{width:"100%",height:"100%",flow:"paginated",manager:"default"}),await c.display(),c.themes.fontSize(o.value+"%");const g=await u.loaded.navigation;i.value=(g==null?void 0:g.toc)??[],l.value=!0}catch(b){a.value=b instanceof Error?b.message:"EPUB load failed"}finally{s.value=!1}}function f(){var x;(x=c==null?void 0:c.next)==null||x.call(c)}function h(){var x;(x=c==null?void 0:c.prev)==null||x.call(c)}function y(x){x.key==="ArrowRight"||x.key==="PageDown"?f():(x.key==="ArrowLeft"||x.key==="PageUp")&&h()}vr(()=>{d(),window.addEventListener("keydown",y)}),Br(()=>{var x,b;window.removeEventListener("keydown",y);try{(x=c==null?void 0:c.destroy)==null||x.call(c)}catch{}try{(b=u==null?void 0:u.destroy)==null||b.call(u)}catch{}c=null,u=null}),tr(()=>t.url,()=>{if(c)try{c.destroy()}catch{}if(u)try{u.destroy()}catch{}u=null,c=null,d()});function p(x,b){return t.t?t.t(x):b}return(x,b)=>(J(),ne("div",{ref_key:"root",ref:r,class:"filex-viewer-epub"},[a.value?(J(),ne("div",Iw,[b[0]||(b[0]=L("span",{class:"filex-viewer-fallback__icon"},"📖",-1)),L("p",null,ie(a.value),1)])):(J(),ne(gt,{key:1},[L("div",{ref_key:"containerRef",ref:n,class:"filex-viewer-epub__rendition"},null,512),l.value?(J(),ne("div",zw,[L("button",{type:"button",class:"filex-viewer-btn",onClick:h,disabled:!l.value},"‹",8,Fw),L("button",{type:"button",class:"filex-viewer-btn",onClick:f,disabled:!l.value},"›",8,Ow)])):tt("",!0),s.value?(J(),ne("div",Pw,ie(p("viewer.loading","Loading…")),1)):tt("",!0)],64))],512))}}),[["__scopeId","data-v-639afd99"]])},Symbol.toStringTag,{value:"Module"}));async function gp(e){const t=await fetch(e.url,{headers:e.headers??{},credentials:e.credentials??"same-origin",signal:e.signal});if(!t.ok){const r=await t.text().catch(()=>"");throw new Error(`${t.status} ${t.statusText}${r?" — "+r.slice(0,200):""}`)}return t}async function bp(e){return(await gp(e)).arrayBuffer()}async function Zs(e){return(await gp(e)).text()}const Lw={class:"filex-viewer-mermaid"},Bw={key:0,class:"filex-viewer-fallback"},Nw={key:1,class:"filex-viewer-fallback"},yp=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"MermaidViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de(null),n=de(null),a=de(!0),i=de(1),o=de(0),l=de(0);let s=!1,u=null,c=0,d=null;async function f(){var g,m;if(d)return d;try{const C=await import("mermaid");return d=C.default??C,(m=d.initialize)==null||m.call(d,{startOnLoad:!1,securityLevel:"strict",theme:(g=window.matchMedia)!=null&&g.call(window,"(prefers-color-scheme: dark)").matches?"dark":"default"}),d}catch{return null}}async function h(){var A;a.value=!0,n.value=null;const g=++c,m=await f();if(g!==c)return;if(!m){n.value=t.t?t.t("viewer.peer_not_installed"):"Mermaid viewer requires `mermaid` — install or use download.",a.value=!1;return}let C;try{C=await Zs({url:t.url,headers:((A=t.authHeaders)==null?void 0:A.call(t))??{},credentials:t.authCredentials})}catch(S){n.value=S instanceof Error?S.message:"fetch failed",a.value=!1;return}if(g===c)try{const S=`filex-mermaid-${Date.now()}`,{svg:_}=await m.render(S,C);if(g!==c)return;if(r.value){r.value.innerHTML=_;const E=r.value.querySelector("svg");E&&(E.style.maxWidth="100%",E.style.height="auto")}}catch(S){n.value=S instanceof Error?S.message:"render failed"}finally{a.value=!1}}function y(g){if(!g.ctrlKey&&!g.metaKey)return;g.preventDefault();const C=-g.deltaY>0?1.1:1/1.1;i.value=Math.max(.2,Math.min(8,i.value*C))}function p(g){var m,C;s=!0,u={x:g.clientX,y:g.clientY,tx:o.value,ty:l.value},(C=(m=g.target).setPointerCapture)==null||C.call(m,g.pointerId)}function x(g){!s||!u||(o.value=u.tx+(g.clientX-u.x),l.value=u.ty+(g.clientY-u.y))}function b(){s=!1,u=null}vr(h),Br(()=>{c++});function v(g,m){return t.t?t.t(g):m}return(g,m)=>(J(),ne("div",Lw,[L("div",{class:"filex-viewer-mermaid__pane",onWheel:y,onPointerdown:p,onPointermove:x,onPointerup:b,onPointercancel:b},[n.value?(J(),ne("div",Bw,[m[0]||(m[0]=L("span",{class:"filex-viewer-fallback__icon"},"📊",-1)),L("p",null,ie(n.value),1)])):a.value?(J(),ne("div",Nw,[m[1]||(m[1]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(v("viewer.loading","Loading…")),1)])):tt("",!0),ar(L("div",{ref_key:"surface",ref:r,class:"filex-viewer-mermaid__surface",style:ia({transform:`translate(${o.value}px, ${l.value}px) scale(${i.value})`})},null,4),[[dc,!a.value&&!n.value]])],32)]))}}),[["__scopeId","data-v-e19076c3"]])},Symbol.toStringTag,{value:"Module"})),$w={class:"filex-viewer-drawio"},Uw={key:0,class:"filex-viewer-fallback"},Hw=["src"],xp=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"DrawioViewer",props:{url:{},filePath:{},ext:{},drawioUrl:{},saveUrl:{},readOnly:{type:Boolean},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de(null),n=de(null),a=de("loading"),i=de(!!t.readOnly||!t.saveUrl),o=mt(()=>t.drawioUrl?t.drawioUrl.replace(/\/$/,""):null),l=mt(()=>{if(!o.value)return"";const p=new URLSearchParams({embed:"1",proto:"json",spin:"1",saveAndExit:"0",noSaveBtn:i.value?"1":"0",noExitBtn:"1",ui:"kennedy",modified:"unsavedChanges"});return`${o.value}/?${p.toString()}`});let s="";async function u(){var p;a.value="loading",n.value=null;try{s=await Zs({url:t.url,headers:((p=t.authHeaders)==null?void 0:p.call(t))??{},credentials:t.authCredentials})}catch(x){n.value=x instanceof Error?x.message:"fetch failed",a.value="error"}}function c(p){var x,b;(b=(x=r.value)==null?void 0:x.contentWindow)==null||b.postMessage(JSON.stringify(p),"*")}async function d(p){var x;if(t.saveUrl){a.value="saving";try{const b={"Content-Type":"application/json",...((x=t.authHeaders)==null?void 0:x.call(t))??{}},v=await fetch(t.saveUrl,{method:"POST",headers:b,credentials:t.authCredentials||"same-origin",body:JSON.stringify({path:t.filePath,content:p})});if(!v.ok)throw new Error(`${v.status} ${v.statusText}`);a.value="saved",setTimeout(()=>{a.value==="saved"&&(a.value="ready")},2500)}catch(b){n.value=b instanceof Error?b.message:"save failed",a.value="error"}}}function f(p){if(typeof p.data!="string"||p.data.length===0)return;const x=p.data[0];if(x!=="{"&&x!=="<")return;let b;try{b=JSON.parse(p.data)}catch{return}if(!(!b||typeof b!="object"))switch(b.event){case"init":c({action:"load",xml:s,autosave:0}),a.value="ready";break;case"save":typeof b.xml=="string"&&d(b.xml);break;case"export":break;case"autosave":typeof b.xml=="string"&&!i.value&&d(b.xml);break}}function h(){if(!o.value){n.value=y("viewer.drawio.disabled","Drawio (diagrams.net) yapılandırılmamış."),a.value="error";return}n.value===y("viewer.drawio.disabled","Drawio (diagrams.net) yapılandırılmamış.")&&(n.value=null,a.value="loading"),u()}vr(()=>{window.addEventListener("message",f),h()}),tr(()=>t.drawioUrl,h),Br(()=>{window.removeEventListener("message",f)});function y(p,x){return t.t?t.t(p):x}return(p,x)=>(J(),ne("div",$w,[n.value?(J(),ne("div",Uw,[x[0]||(x[0]=L("span",{class:"filex-viewer-fallback__icon"},"📐",-1)),L("p",null,ie(n.value),1)])):(J(),ne("iframe",{key:1,ref_key:"iframeRef",ref:r,src:l.value,class:"filex-viewer-drawio__frame",title:"diagrams.net editor"},null,8,Hw))]))}}),[["__scopeId","data-v-680c72a8"]])},Symbol.toStringTag,{value:"Module"})),jw={class:"filex-viewer-tiff"},Gw={class:"filex-viewer-tiff__pane"},Vw={key:0,class:"filex-viewer-fallback"},qw={key:1,class:"filex-viewer-fallback"},Ww={key:2,class:"filex-viewer-tiff__pager"},Kw=["disabled"],Xw={class:"filex-viewer-tiff__pages"},Yw=["disabled"],_p=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"TiffViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de(null),n=de(null),a=de(!0),i=de(0),o=de(0),l=de({width:0,height:0});let s=null,u=null,c=0;async function d(){if(s)return s;try{const v=await Promise.resolve().then(()=>LS);return s=v.default??v,s}catch{return null}}async function f(){var m;a.value=!0,n.value=null,u=null,i.value=0,o.value=0;const v=++c,g=await d();if(v===c){if(!g){n.value=t.t?t.t("viewer.peer_not_installed"):"TIFF viewer requires `utif` — install or use download.",a.value=!1;return}try{const C=await bp({url:t.url,headers:((m=t.authHeaders)==null?void 0:m.call(t))??{},credentials:t.authCredentials});if(v!==c)return;if(u=g.decode(C),o.value=(u==null?void 0:u.length)??0,o.value===0)throw new Error("No pages decoded");h()}catch(C){n.value=C instanceof Error?C.message:"TIFF decode failed"}finally{a.value=!1}}}function h(){if(!s||!u||!r.value)return;const v=Math.max(0,Math.min(i.value,u.length-1)),g=u[v];try{s.decodeImage(void 0,g)}catch{}const m=s.toRGBA8(g),C=g.width,A=g.height;l.value={width:C,height:A};const S=r.value;S.width=C,S.height=A;const _=S.getContext("2d");if(!_)return;const E=_.createImageData(C,A);E.data.set(m),_.putImageData(E,0,0)}function y(){i.value<o.value-1&&(i.value++,h())}function p(){i.value>0&&(i.value--,h())}vr(f),Br(()=>{c++,u=null}),tr(()=>t.url,f);const x=mt(()=>(t.t&&t.t("viewer.page_n_of_m")||"Page {n} of {m}").replace("{n}",String(i.value+1)).replace("{m}",String(o.value)));function b(v,g){return t.t?t.t(v):g}return(v,g)=>(J(),ne("div",jw,[L("div",Gw,[n.value?(J(),ne("div",Vw,[g[0]||(g[0]=L("span",{class:"filex-viewer-fallback__icon"},"🖼️",-1)),L("p",null,ie(n.value),1)])):a.value?(J(),ne("div",qw,[g[1]||(g[1]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(b("viewer.loading","Loading…")),1)])):tt("",!0),ar(L("canvas",{ref_key:"canvasEl",ref:r,style:{imageRendering:"pixelated"}},null,512),[[dc,!a.value&&!n.value]]),!a.value&&!n.value&&o.value>1?(J(),ne("div",Ww,[L("button",{type:"button",class:"filex-viewer-btn",disabled:i.value===0,onClick:p},"‹",8,Kw),L("span",Xw,ie(x.value),1),L("button",{type:"button",class:"filex-viewer-btn",disabled:i.value>=o.value-1,onClick:y},"›",8,Yw)])):tt("",!0)])]))}}),[["__scopeId","data-v-11c3469a"]])},Symbol.toStringTag,{value:"Module"})),Zw={class:"filex-viewer-psd"},Jw={class:"filex-viewer-psd__pane"},Qw={key:0,class:"filex-viewer-fallback"},e9={key:1,class:"filex-viewer-fallback"},t9=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"PsdViewer",props:{url:{},mime:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de(null),n=de([]),a=de(null),i=de(!0),o=de({width:0,height:0});let l=0,s=null;async function u(){if(s)return s;try{return s=await Promise.resolve().then(()=>tM),s}catch{return null}}function c(h,y){if(h&&Array.isArray(h.children))for(const p of h.children)y.push({index:y.length,name:p.name??"(unnamed)",hidden:!!p.hidden}),p.children&&c(p,y)}async function d(){var p;i.value=!0,a.value=null,n.value=[];const h=++l,y=await u();if(h===l){if(!y){a.value=t.t?t.t("viewer.peer_not_installed"):"PSD viewer requires `ag-psd` — install or use download.",i.value=!1;return}try{const x=await bp({url:t.url,headers:((p=t.authHeaders)==null?void 0:p.call(t))??{},credentials:t.authCredentials});if(h!==l)return;const b=y.readPsd(x,{skipLayerImageData:!1,skipCompositeImageData:!1,skipThumbnail:!0});o.value={width:b.width,height:b.height};const v=b.canvas;if(v&&r.value){const m=r.value;m.width=b.width,m.height=b.height;const C=m.getContext("2d");C==null||C.drawImage(v,0,0)}else throw new Error("PSD has no composite image (skipCompositeImageData?)");const g=[];c(b,g),n.value=g}catch(x){a.value=x instanceof Error?x.message:"PSD decode failed"}finally{i.value=!1}}}vr(d),Br(()=>{l++}),tr(()=>t.url,d);function f(h,y){return t.t?t.t(h):y}return(h,y)=>(J(),ne("div",Zw,[L("div",Jw,[a.value?(J(),ne("div",Qw,[y[0]||(y[0]=L("span",{class:"filex-viewer-fallback__icon"},"🎨",-1)),L("p",null,ie(a.value),1)])):i.value?(J(),ne("div",e9,[y[1]||(y[1]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(f("viewer.loading","Loading…")),1)])):tt("",!0),ar(L("canvas",{ref_key:"canvasEl",ref:r},null,512),[[dc,!i.value&&!a.value]])])]))}}),[["__scopeId","data-v-46b5b3c2"]])},Symbol.toStringTag,{value:"Module"})),r9={class:"filex-viewer-ipynb"},n9={class:"filex-viewer-ipynb__pane"},a9={key:0,class:"filex-viewer-fallback"},i9={key:1,class:"filex-viewer-fallback"},o9={key:2},l9=["data-type"],s9={class:"filex-viewer-ipynb__exec"},u9={class:"filex-viewer-ipynb__src hljs"},c9=["innerHTML"],f9={key:1},d9={key:0,class:"filex-viewer-ipynb__outputs"},h9=["src","alt"],p9=["innerHTML"],v9=["data-type"],m9=["innerHTML"],g9={key:1,class:"filex-viewer-ipynb__md-raw"},b9={key:2,class:"filex-viewer-ipynb__src"},y9=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"IpynbViewer",props:{url:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de([]),n=de("python"),a=de(null),i=de(!0),o=de(new Map),l=de(new Map);let s=0,u=null,c=null;async function d(){if(c!==null)return c||null;try{const v=await import("markdown-it"),g=v.default??v;return c=new g({html:!1,linkify:!0,breaks:!0}),c}catch{return c=!1,null}}function f(v){return Array.isArray(v)?v.join(""):v??""}async function h(){var A,S,_,E;i.value=!0,a.value=null,r.value=[],o.value=new Map,l.value=new Map;const v=++s;let g;try{g=await Zs({url:t.url,headers:((A=t.authHeaders)==null?void 0:A.call(t))??{},credentials:t.authCredentials})}catch(M){a.value=M instanceof Error?M.message:"fetch failed",i.value=!1;return}if(v!==s)return;let m;try{m=JSON.parse(g)}catch{a.value="Invalid notebook JSON",i.value=!1;return}if(r.value=Array.isArray(m.cells)?m.cells:[],n.value=((_=(S=m.metadata)==null?void 0:S.kernelspec)==null?void 0:_.language)||"python",u=await cp(),v!==s)return;if(u){const M=u.default??u,z=(E=M.getLanguage)!=null&&E.call(M,n.value)?n.value:null;r.value.forEach((N,R)=>{if(N.cell_type==="code"){const V=f(N.source);try{const X=z?M.highlight(V,{language:z,ignoreIllegals:!0}):M.highlightAuto(V);o.value.set(R,X.value)}catch{}}})}const C=await d();v===s&&(C&&r.value.forEach((M,z)=>{if(M.cell_type==="markdown")try{l.value.set(z,C.render(f(M.source)))}catch{}}),i.value=!1)}function y(v){var g;return v?v.output_type==="stream"?f(v.text):v.output_type==="error"?[v.ename,v.evalue,...v.traceback||[]].filter(Boolean).join(`
24
24
  `):(v.output_type==="execute_result"||v.output_type==="display_data")&&(g=v.data)!=null&&g["text/plain"]?f(v.data["text/plain"]):null:null}function p(v){if(!(v!=null&&v.data))return null;if(v.data["image/png"])return`data:image/png;base64,${v.data["image/png"]}`;if(v.data["image/jpeg"])return`data:image/jpeg;base64,${v.data["image/jpeg"]}`;if(v.data["image/svg+xml"]){const g=f(v.data["image/svg+xml"]);return`data:image/svg+xml;utf8,${encodeURIComponent(g)}`}return null}function x(v){return v!=null&&v.data&&v.data["text/html"]?f(v.data["text/html"]).replace(/<script[\s\S]*?<\/script>/gi,""):null}vr(h),Br(()=>{s++}),tr(()=>t.url,h);function b(v,g){return t.t?t.t(v):g}return(v,g)=>(J(),ne("div",r9,[L("div",n9,[a.value?(J(),ne("div",a9,[g[0]||(g[0]=L("span",{class:"filex-viewer-fallback__icon"},"📓",-1)),L("p",null,ie(a.value),1)])):i.value?(J(),ne("div",i9,[g[1]||(g[1]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(b("viewer.loading","Loading…")),1)])):(J(),ne("div",o9,[(J(!0),ne(gt,null,rr(r.value,(m,C)=>(J(),ne("div",{key:C,class:"filex-viewer-ipynb__cell","data-type":m.cell_type},[m.cell_type==="code"?(J(),ne(gt,{key:0},[L("div",s9," In ["+ie(m.execution_count??" ")+"]: ",1),L("pre",u9,[o.value.get(C)?(J(),ne("code",{key:0,innerHTML:o.value.get(C)},null,8,c9)):(J(),ne("code",f9,ie(f(m.source)),1))]),m.outputs&&m.outputs.length?(J(),ne("div",d9,[(J(!0),ne(gt,null,rr(m.outputs,(A,S)=>(J(),ne(gt,{key:S},[p(A)?(J(),ne("img",{key:0,src:p(A)||"",class:"filex-viewer-ipynb__img",alt:`output ${S}`},null,8,h9)):x(A)?(J(),ne("div",{key:1,class:"filex-viewer-ipynb__html",innerHTML:x(A)},null,8,p9)):y(A)?(J(),ne("pre",{key:2,class:"filex-viewer-ipynb__out","data-type":A.output_type},ie(y(A)),9,v9)):tt("",!0)],64))),128))])):tt("",!0)],64)):m.cell_type==="markdown"?(J(),ne(gt,{key:1},[l.value.get(C)?(J(),ne("div",{key:0,class:"filex-viewer-ipynb__md",innerHTML:l.value.get(C)},null,8,m9)):(J(),ne("pre",g9,ie(f(m.source)),1))],64)):(J(),ne("pre",b9,ie(f(m.source)),1))],8,l9))),128))]))])]))}}),[["__scopeId","data-v-10bd637a"]])},Symbol.toStringTag,{value:"Module"})),x9={class:"filex-viewer-csv"},_9={class:"filex-viewer-csv__pane"},w9={key:0,class:"filex-viewer-fallback"},k9={key:1,class:"filex-viewer-fallback"},S9={key:2,class:"filex-viewer-csv__table"},C9={class:"filex-viewer-csv__rownum"},A9={key:0,class:"filex-viewer-csv__pager"},E9=["disabled"],T9={class:"filex-viewer-csv__pageno"},M9=["disabled"],xc=100,wp=1e3,kp=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"CsvViewer",props:{url:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de([]),n=de(null),a=de(!0),i=de(!0),o=de(""),l=de(1),s=de(","),u=de("auto");let c=0;function d(m){const C=m.split(/\r?\n/).slice(0,5).join(`
25
25
  `),A=(C.match(/\t/g)||[]).length,S=(C.match(/;/g)||[]).length,_=(C.match(/,/g)||[]).length;return A>_&&A>S?" ":S>_&&S>A?";":","}async function f(m,C){try{const A=await Promise.resolve().then(()=>rM);return(A.default??A).parse(m,{delimiter:C,skipEmptyLines:!0,header:!1}).data.slice(0,wp)}catch{return m.split(/\r?\n/).filter(A=>A.length>0).slice(0,wp).map(A=>A.split(C))}}async function h(){var S;a.value=!0,n.value=null,r.value=[],l.value=1;const m=++c;let C;try{C=await Zs({url:t.url,headers:((S=t.authHeaders)==null?void 0:S.call(t))??{},credentials:t.authCredentials})}catch(_){n.value=_ instanceof Error?_.message:"fetch failed",a.value=!1;return}if(m!==c)return;t.ext==="tsv"?s.value=" ":s.value=d(C.slice(0,4096));const A=u.value==="auto"?s.value:u.value;r.value=await f(C,A),a.value=!1}vr(h),tr(()=>t.url,h),tr(()=>u.value,()=>{r.value.length!==0&&h()});const y=mt(()=>!i.value||r.value.length===0?r.value.length===0?[]:r.value[0].map((m,C)=>`Col ${C+1}`):r.value[0]),p=mt(()=>i.value?r.value.slice(1):r.value),x=mt(()=>{const m=o.value.trim().toLowerCase();return m?p.value.filter(C=>C.some(A=>(A||"").toLowerCase().includes(m))):p.value}),b=mt(()=>Math.max(1,Math.ceil(x.value.length/xc))),v=mt(()=>{const m=(l.value-1)*xc;return x.value.slice(m,m+xc)});tr(o,()=>{l.value=1});function g(m,C){return t.t?t.t(m):C}return(m,C)=>(J(),ne("div",x9,[L("div",_9,[n.value?(J(),ne("div",w9,[C[2]||(C[2]=L("span",{class:"filex-viewer-fallback__icon"},"📊",-1)),L("p",null,ie(n.value),1)])):a.value?(J(),ne("div",k9,[C[3]||(C[3]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(g("viewer.loading","Loading…")),1)])):(J(),ne("table",S9,[L("thead",null,[L("tr",null,[C[4]||(C[4]=L("th",{class:"filex-viewer-csv__rownum"},"#",-1)),(J(!0),ne(gt,null,rr(y.value,(A,S)=>(J(),ne("th",{key:S},ie(A),1))),128))])]),L("tbody",null,[(J(!0),ne(gt,null,rr(v.value,(A,S)=>(J(),ne("tr",{key:S},[L("td",C9,ie((l.value-1)*100+S+1),1),(J(!0),ne(gt,null,rr(A,(_,E)=>(J(),ne("td",{key:E},ie(_),1))),128))]))),128))])]))]),!a.value&&!n.value&&b.value>1?(J(),ne("div",A9,[L("button",{type:"button",class:"filex-viewer-btn",disabled:l.value<=1,onClick:C[0]||(C[0]=A=>l.value--)},"‹",8,E9),L("span",T9,ie(l.value)+" / "+ie(b.value)+" ("+ie(x.value.length)+" satır)",1),L("button",{type:"button",class:"filex-viewer-btn",disabled:l.value>=b.value,onClick:C[1]||(C[1]=A=>l.value++)},"›",8,M9)])):tt("",!0)]))}}),[["__scopeId","data-v-1a0b9c8e"]])},Symbol.toStringTag,{value:"Module"})),D9={class:"filex-viewer-archive"},I9={key:0,class:"filex-viewer-fallback"},z9={key:1,class:"filex-viewer-fallback"},F9={key:2,class:"filex-viewer-fallback"},O9={key:3,class:"filex-viewer-archive__pane"},P9={class:"filex-viewer-archive__summary"},R9={class:"filex-viewer-archive__table"},L9={class:"filex-viewer-archive__size"},B9=["data-dir"],N9={class:"filex-viewer-archive__icon"},$9={class:"filex-viewer-archive__size"},U9=Object.freeze(Object.defineProperty({__proto__:null,default:Jr(qt({__name:"ArchiveViewer",props:{url:{},filePath:{},ext:{},t:{type:Function},authHeaders:{type:Function},authCredentials:{}},setup(e){const t=e,r=de([]),n=de(!0),a=de(null);function i(c,d){return t.t?t.t(c):d}function o(c){return c<1024?`${c} B`:c<1024*1024?`${(c/1024).toFixed(1)} KB`:c<1024*1024*1024?`${(c/(1024*1024)).toFixed(1)} MB`:`${(c/(1024*1024*1024)).toFixed(2)} GB`}async function l(){if(n.value=!0,a.value=null,r.value=[],!t.filePath){a.value=i("viewer.archive.error","Could not read archive contents."),n.value=!1;return}try{const c=await fetch("/api/files/archive/list",{method:"POST",credentials:t.authCredentials||"include",headers:{"Content-Type":"application/json",...t.authHeaders?t.authHeaders():{}},body:JSON.stringify({path:t.filePath})});if(!c.ok)throw new Error(`${c.status} ${c.statusText}`);const d=await c.json();r.value=d.entries??[]}catch(c){a.value=c instanceof Error?c.message:i("viewer.archive.error","Could not read archive contents.")}finally{n.value=!1}}vr(l),tr(()=>t.filePath,l);const s=mt(()=>r.value.reduce((c,d)=>c+(d.size||0),0)),u=mt(()=>r.value.filter(c=>!c.is_dir).length);return(c,d)=>(J(),ne("div",D9,[a.value?(J(),ne("div",I9,[d[0]||(d[0]=L("span",{class:"filex-viewer-fallback__icon"},"🗜️",-1)),L("p",null,ie(a.value),1)])):n.value?(J(),ne("div",z9,[d[1]||(d[1]=L("span",{class:"filex-viewer-fallback__icon"},"⏳",-1)),L("p",null,ie(i("viewer.loading","Loading…")),1)])):r.value.length===0?(J(),ne("div",F9,[d[2]||(d[2]=L("span",{class:"filex-viewer-fallback__icon"},"🗜️",-1)),L("p",null,ie(i("viewer.archive.empty","Archive is empty.")),1)])):(J(),ne("div",O9,[L("div",P9,ie(u.value)+" "+ie(i("viewer.archive.entries","{n} files").replace("{n}",String(u.value)))+" · "+ie(o(s.value)),1),L("table",R9,[L("thead",null,[L("tr",null,[L("th",null,ie(i("viewer.name","Name")),1),L("th",L9,ie(i("viewer.size","Size")),1)])]),L("tbody",null,[(J(!0),ne(gt,null,rr(r.value,(f,h)=>(J(),ne("tr",{key:h,"data-dir":f.is_dir?"1":"0"},[L("td",null,[L("span",N9,ie(f.is_dir?"📁":"📄"),1),mr(" "+ie(f.name),1)]),L("td",$9,ie(f.is_dir?"":o(f.size)),1)],8,B9))),128))])])]))]))}}),[["__scopeId","data-v-d3ad0fc4"]])},Symbol.toStringTag,{value:"Module"}));class Ge extends Error{constructor(t,r){var n="KaTeX parse error: "+t,a,i,o=r&&r.loc;if(o&&o.start<=o.end){var l=o.lexer.input;a=o.start,i=o.end,a===l.length?n+=" at end of input: ":n+=" at position "+(a+1)+": ";var s=l.slice(a,i).replace(/[^]/g,"$&̲"),u;a>15?u="…"+l.slice(a-15,a):u=l.slice(0,a);var c;i+15<l.length?c=l.slice(i,i+15)+"…":c=l.slice(i),n+=u+s+c}super(n),this.name="ParseError",Object.setPrototypeOf(this,Ge.prototype),this.position=a,a!=null&&i!=null&&(this.length=i-a),this.rawMessage=t}}var H9=/([A-Z])/g,_c=e=>e.replace(H9,"-$1").toLowerCase(),j9={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},G9=/[&><"']/g,Vr=e=>String(e).replace(G9,t=>j9[t]),Js=e=>e.type==="ordgroup"||e.type==="color"?e.body.length===1?Js(e.body[0]):e:e.type==="font"?Js(e.body):e,V9=new Set(["mathord","textord","atom"]),Ra=e=>V9.has(Js(e).type),q9=e=>{var t=/^[\x00-\x20]*([^\\/#?]*?)(:|&#0*58|&#x0*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},Qs={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format <type>"},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color <color>",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro <def>",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness <size>",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size <n>",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand <n>",cliProcessor:e=>e==="Infinity"?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function W9(e){if("default"in e)return e.default;var t=e.type,r=Array.isArray(t)?t[0]:t;if(typeof r!="string")return r.enum[0];switch(r){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class wc{constructor(t){t===void 0&&(t={}),t=t||{};for(var r of Object.keys(Qs)){var n=Qs[r],a=t[r];this[r]=a!==void 0?n.processor?n.processor(a):a:W9(n)}}reportNonstrict(t,r,n){var a=this.strict;if(typeof a=="function"&&(a=a(t,r,n)),!(!a||a==="ignore")){if(a===!0||a==="error")throw new Ge("LaTeX-incompatible input and strict mode is set to 'error': "+(r+" ["+t+"]"),n);a==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+r+" ["+t+"]"))}}useStrictBehavior(t,r,n){var a=this.strict;if(typeof a=="function")try{a=a(t,r,n)}catch{a="error"}return!a||a==="ignore"?!1:a===!0||a==="error"?!0:a==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(r+" ["+t+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+a+"': "+r+" ["+t+"]")),!1)}isTrusted(t){if("url"in t&&t.url&&!t.protocol){var r=q9(t.url);if(r==null)return!1;t.protocol=r}var n=typeof this.trust=="function"?this.trust(t):this.trust;return!!n}}class oi{constructor(t,r,n){this.id=t,this.size=r,this.cramped=n}sup(){return va[K9[this.id]]}sub(){return va[X9[this.id]]}fracNum(){return va[Y9[this.id]]}fracDen(){return va[Z9[this.id]]}cramp(){return va[J9[this.id]]}text(){return va[Q9[this.id]]}isTight(){return this.size>=2}}var kc=0,e0=1,mo=2,La=3,El=4,Fn=5,go=6,Qr=7,va=[new oi(kc,0,!1),new oi(e0,0,!0),new oi(mo,1,!1),new oi(La,1,!0),new oi(El,2,!1),new oi(Fn,2,!0),new oi(go,3,!1),new oi(Qr,3,!0)],K9=[El,Fn,El,Fn,go,Qr,go,Qr],X9=[Fn,Fn,Fn,Fn,Qr,Qr,Qr,Qr],Y9=[mo,La,El,Fn,go,Qr,go,Qr],Z9=[La,La,Fn,Fn,Qr,Qr,Qr,Qr],J9=[e0,e0,La,La,Fn,Fn,Qr,Qr],Q9=[kc,e0,mo,La,mo,La,mo,La],Ct={DISPLAY:va[kc],TEXT:va[mo],SCRIPT:va[El],SCRIPTSCRIPT:va[go]},Sc=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function ek(e){for(var t=0;t<Sc.length;t++)for(var r=Sc[t],n=0;n<r.blocks.length;n++){var a=r.blocks[n];if(e>=a[0]&&e<=a[1])return r.name}return null}var t0=[];Sc.forEach(e=>e.blocks.forEach(t=>t0.push(...t)));function Sp(e){for(var t=0;t<t0.length;t+=2)if(e>=t0[t]&&e<=t0[t+1])return!0;return!1}var Sr=e=>e+" "+e,bo=80,tk=function(t,r){return"M95,"+(622+t+r)+`
26
26
  c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14