@brftech/filex 0.1.56 → 0.1.60
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.
- package/LICENSE +21 -21
- package/dist/{ArchiveViewer-CMaBM4yZ.js → ArchiveViewer-BotnnnoW.js} +13 -13
- package/dist/ArchiveViewer-BotnnnoW.js.map +1 -0
- package/dist/{CsvViewer-D5_c7bkP.js → CsvViewer-CrwZZqmq.js} +3 -3
- package/dist/CsvViewer-CrwZZqmq.js.map +1 -0
- package/dist/{DrawioViewer-CBOqWzaj.js → DrawioViewer-uEJbt6hj.js} +3 -3
- package/dist/DrawioViewer-uEJbt6hj.js.map +1 -0
- package/dist/{EpubViewer-Cs6yZIP2.js → EpubViewer-mCV3ZEXb.js} +3 -3
- package/dist/EpubViewer-mCV3ZEXb.js.map +1 -0
- package/dist/{IpynbViewer-wJhbhUla.js → IpynbViewer-B3g-lJfV.js} +3 -3
- package/dist/IpynbViewer-B3g-lJfV.js.map +1 -0
- package/dist/{MermaidViewer-k_XVXoc5.js → MermaidViewer-B0Q0ghbV.js} +3 -3
- package/dist/MermaidViewer-B0Q0ghbV.js.map +1 -0
- package/dist/{PsdViewer-Bo4imBCF.js → PsdViewer-lk6xrjRB.js} +8 -8
- package/dist/PsdViewer-lk6xrjRB.js.map +1 -0
- package/dist/{TiffViewer-D73-Gyt-.js → TiffViewer-PXjYKqzo.js} +3 -3
- package/dist/TiffViewer-PXjYKqzo.js.map +1 -0
- package/dist/{Viewer3D-Ba-RPIRz.js → Viewer3D-DtT-hBa3.js} +4 -4
- package/dist/Viewer3D-DtT-hBa3.js.map +1 -0
- package/dist/filex.js +1 -1
- package/dist/filex.umd.cjs +13 -13
- package/dist/filex.umd.cjs.map +1 -1
- package/dist/{index-idz8Cz5t.js → index-BNs90VaG.js} +378 -378
- package/dist/index-BNs90VaG.js.map +1 -0
- package/dist/style.css +1 -1
- package/dist/useViewerFetch-czqbd2Lj.js.map +1 -1
- package/package.json +2 -2
- package/dist/ArchiveViewer-CMaBM4yZ.js.map +0 -1
- package/dist/CsvViewer-D5_c7bkP.js.map +0 -1
- package/dist/DrawioViewer-CBOqWzaj.js.map +0 -1
- package/dist/EpubViewer-Cs6yZIP2.js.map +0 -1
- package/dist/IpynbViewer-wJhbhUla.js.map +0 -1
- package/dist/MermaidViewer-k_XVXoc5.js.map +0 -1
- package/dist/PsdViewer-Bo4imBCF.js.map +0 -1
- package/dist/TiffViewer-D73-Gyt-.js.map +0 -1
- package/dist/Viewer3D-Ba-RPIRz.js.map +0 -1
- package/dist/index-idz8Cz5t.js.map +0 -1
|
@@ -1072,40 +1072,40 @@ function Ql(e, t, r = Ie) {
|
|
|
1072
1072
|
lr = x;
|
|
1073
1073
|
}
|
|
1074
1074
|
} : h = It, t && o) {
|
|
1075
|
-
const x = h,
|
|
1076
|
-
h = () => Ut(x(),
|
|
1075
|
+
const x = h, _ = o === !0 ? 1 / 0 : o;
|
|
1076
|
+
h = () => Ut(x(), _);
|
|
1077
1077
|
}
|
|
1078
1078
|
const R = kl(), L = () => {
|
|
1079
1079
|
f.stop(), R && R.active && wo(R.effects, f);
|
|
1080
1080
|
};
|
|
1081
1081
|
if (a && t) {
|
|
1082
1082
|
const x = t;
|
|
1083
|
-
t = (...
|
|
1084
|
-
x(...
|
|
1083
|
+
t = (..._) => {
|
|
1084
|
+
x(..._), L();
|
|
1085
1085
|
};
|
|
1086
1086
|
}
|
|
1087
1087
|
let M = b ? new Array(e.length).fill(sn) : sn;
|
|
1088
1088
|
const Q = (x) => {
|
|
1089
1089
|
if (!(!(f.flags & 1) || !f.dirty && !x))
|
|
1090
1090
|
if (t) {
|
|
1091
|
-
const
|
|
1092
|
-
if (o || w || (b ?
|
|
1091
|
+
const _ = f.run();
|
|
1092
|
+
if (o || w || (b ? _.some((y, $) => zt(y, M[$])) : zt(_, M))) {
|
|
1093
1093
|
g && g();
|
|
1094
|
-
const
|
|
1094
|
+
const y = lr;
|
|
1095
1095
|
lr = f;
|
|
1096
1096
|
try {
|
|
1097
|
-
const
|
|
1098
|
-
|
|
1097
|
+
const $ = [
|
|
1098
|
+
_,
|
|
1099
1099
|
// pass undefined as the old value when it's changed for the first time
|
|
1100
1100
|
M === sn ? void 0 : b && M[0] === sn ? [] : M,
|
|
1101
1101
|
C
|
|
1102
1102
|
];
|
|
1103
|
-
M =
|
|
1103
|
+
M = _, l ? l(t, 3, $) : (
|
|
1104
1104
|
// @ts-expect-error
|
|
1105
|
-
t(
|
|
1105
|
+
t(...$)
|
|
1106
1106
|
);
|
|
1107
1107
|
} finally {
|
|
1108
|
-
lr =
|
|
1108
|
+
lr = y;
|
|
1109
1109
|
}
|
|
1110
1110
|
}
|
|
1111
1111
|
} else
|
|
@@ -1117,7 +1117,7 @@ function Ql(e, t, r = Ie) {
|
|
|
1117
1117
|
if (l)
|
|
1118
1118
|
l(x, 4);
|
|
1119
1119
|
else
|
|
1120
|
-
for (const
|
|
1120
|
+
for (const _ of x) _();
|
|
1121
1121
|
hn.delete(f);
|
|
1122
1122
|
}
|
|
1123
1123
|
}, t ? n ? Q(!0) : M = f.run() : i ? i(Q.bind(null, !0), !0) : f.run(), L.pause = f.pause.bind(f), L.resume = f.resume.bind(f), L.stop = L, L;
|
|
@@ -1406,10 +1406,10 @@ const Xt = /* @__PURE__ */ new WeakMap(), Mi = /* @__PURE__ */ Symbol("_vte"), D
|
|
|
1406
1406
|
o: { insert: C, querySelector: w, createText: b, createComment: R, parentNode: L }
|
|
1407
1407
|
} = c, M = cr(t.props);
|
|
1408
1408
|
let { dynamicChildren: Q } = t;
|
|
1409
|
-
const x = (T,
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1409
|
+
const x = ($, T, O) => {
|
|
1410
|
+
$.shapeFlag & 16 && f(
|
|
1411
|
+
$.children,
|
|
1412
|
+
T,
|
|
1413
1413
|
O,
|
|
1414
1414
|
o,
|
|
1415
1415
|
a,
|
|
@@ -1417,37 +1417,37 @@ const Xt = /* @__PURE__ */ new WeakMap(), Mi = /* @__PURE__ */ Symbol("_vte"), D
|
|
|
1417
1417
|
s,
|
|
1418
1418
|
l
|
|
1419
1419
|
);
|
|
1420
|
-
},
|
|
1421
|
-
const
|
|
1422
|
-
O && (i !== "svg" && sa(O) ? i = "svg" : i !== "mathml" && la(O) && (i = "mathml"), o && o.isCE && (o.ce._teleportTargets || (o.ce._teleportTargets = /* @__PURE__ */ new Set())).add(O),
|
|
1423
|
-
},
|
|
1424
|
-
const
|
|
1425
|
-
if (Xt.get(
|
|
1426
|
-
if (Xt.delete(
|
|
1427
|
-
const O = L(
|
|
1428
|
-
x(
|
|
1420
|
+
}, _ = ($ = t) => {
|
|
1421
|
+
const T = cr($.props), O = $.target = uo($.props, w), U = po(O, $, b, C);
|
|
1422
|
+
O && (i !== "svg" && sa(O) ? i = "svg" : i !== "mathml" && la(O) && (i = "mathml"), o && o.isCE && (o.ce._teleportTargets || (o.ce._teleportTargets = /* @__PURE__ */ new Set())).add(O), T || (x($, O, U), Rr($, !1)));
|
|
1423
|
+
}, y = ($) => {
|
|
1424
|
+
const T = () => {
|
|
1425
|
+
if (Xt.get($) === T) {
|
|
1426
|
+
if (Xt.delete($), cr($.props)) {
|
|
1427
|
+
const O = L($.el) || r;
|
|
1428
|
+
x($, O, $.anchor), Rr($, !0);
|
|
1429
1429
|
}
|
|
1430
|
-
|
|
1430
|
+
_($);
|
|
1431
1431
|
}
|
|
1432
1432
|
};
|
|
1433
|
-
Xt.set(T
|
|
1433
|
+
Xt.set($, T), ut(T, a);
|
|
1434
1434
|
};
|
|
1435
1435
|
if (e == null) {
|
|
1436
|
-
const
|
|
1437
|
-
if (C(
|
|
1438
|
-
|
|
1436
|
+
const $ = t.el = b(""), T = t.anchor = b("");
|
|
1437
|
+
if (C($, r, n), C(T, r, n), ic(t.props) || a && a.pendingBranch) {
|
|
1438
|
+
y(t);
|
|
1439
1439
|
return;
|
|
1440
1440
|
}
|
|
1441
|
-
M && (x(t, r,
|
|
1441
|
+
M && (x(t, r, T), Rr(t, !0)), _();
|
|
1442
1442
|
} else {
|
|
1443
1443
|
t.el = e.el;
|
|
1444
|
-
const
|
|
1445
|
-
if (
|
|
1446
|
-
|
|
1444
|
+
const $ = t.anchor = e.anchor, T = Xt.get(e);
|
|
1445
|
+
if (T) {
|
|
1446
|
+
T.flags |= 8, Xt.delete(e), y(t);
|
|
1447
1447
|
return;
|
|
1448
1448
|
}
|
|
1449
1449
|
t.targetStart = e.targetStart;
|
|
1450
|
-
const O = t.target = e.target, U = t.targetAnchor = e.targetAnchor, ee = cr(e.props), X = ee ? r : O, ue = ee ?
|
|
1450
|
+
const O = t.target = e.target, U = t.targetAnchor = e.targetAnchor, ee = cr(e.props), X = ee ? r : O, ue = ee ? $ : U;
|
|
1451
1451
|
if (i === "svg" || sa(O) ? i = "svg" : (i === "mathml" || la(O)) && (i = "mathml"), Q ? (g(
|
|
1452
1452
|
e.dynamicChildren,
|
|
1453
1453
|
Q,
|
|
@@ -1470,7 +1470,7 @@ const Xt = /* @__PURE__ */ new WeakMap(), Mi = /* @__PURE__ */ Symbol("_vte"), D
|
|
|
1470
1470
|
ee ? t.props && e.props && t.props.to !== e.props.to && (t.props.to = e.props.to) : ln(
|
|
1471
1471
|
t,
|
|
1472
1472
|
r,
|
|
1473
|
-
|
|
1473
|
+
$,
|
|
1474
1474
|
c,
|
|
1475
1475
|
1
|
|
1476
1476
|
);
|
|
@@ -1730,17 +1730,17 @@ function Yr(e, t, r, n, o) {
|
|
|
1730
1730
|
onAppear: L,
|
|
1731
1731
|
onAfterAppear: M,
|
|
1732
1732
|
onAppearCancelled: Q
|
|
1733
|
-
} = t, x = String(e.key),
|
|
1733
|
+
} = t, x = String(e.key), _ = Li(r, e), y = (O, U) => {
|
|
1734
1734
|
O && $t(
|
|
1735
1735
|
O,
|
|
1736
1736
|
n,
|
|
1737
1737
|
9,
|
|
1738
1738
|
U
|
|
1739
1739
|
);
|
|
1740
|
-
},
|
|
1740
|
+
}, $ = (O, U) => {
|
|
1741
1741
|
const ee = U[1];
|
|
1742
|
-
|
|
1743
|
-
},
|
|
1742
|
+
y(O, U), ve(O) ? O.every((X) => X.length <= 1) && ee() : O.length <= 1 && ee();
|
|
1743
|
+
}, T = {
|
|
1744
1744
|
mode: i,
|
|
1745
1745
|
persisted: s,
|
|
1746
1746
|
beforeEnter(O) {
|
|
@@ -1754,11 +1754,11 @@ function Yr(e, t, r, n, o) {
|
|
|
1754
1754
|
!0
|
|
1755
1755
|
/* cancelled */
|
|
1756
1756
|
);
|
|
1757
|
-
const ee =
|
|
1758
|
-
ee && fr(e, ee) && ee.el[Mt] && ee.el[Mt](),
|
|
1757
|
+
const ee = _[x];
|
|
1758
|
+
ee && fr(e, ee) && ee.el[Mt] && ee.el[Mt](), y(U, [O]);
|
|
1759
1759
|
},
|
|
1760
1760
|
enter(O) {
|
|
1761
|
-
if (
|
|
1761
|
+
if (_[x] === e) return;
|
|
1762
1762
|
let U = c, ee = f, X = h;
|
|
1763
1763
|
if (!r.isMounted)
|
|
1764
1764
|
if (a)
|
|
@@ -1767,10 +1767,10 @@ function Yr(e, t, r, n, o) {
|
|
|
1767
1767
|
return;
|
|
1768
1768
|
let ue = !1;
|
|
1769
1769
|
O[Dr] = (Se) => {
|
|
1770
|
-
ue || (ue = !0, Se ?
|
|
1770
|
+
ue || (ue = !0, Se ? y(X, [O]) : y(ee, [O]), T.delayedLeave && T.delayedLeave(), O[Dr] = void 0);
|
|
1771
1771
|
};
|
|
1772
1772
|
const fe = O[Dr].bind(null, !1);
|
|
1773
|
-
U ?
|
|
1773
|
+
U ? $(U, [O, fe]) : fe();
|
|
1774
1774
|
},
|
|
1775
1775
|
leave(O, U) {
|
|
1776
1776
|
const ee = String(e.key);
|
|
@@ -1779,13 +1779,13 @@ function Yr(e, t, r, n, o) {
|
|
|
1779
1779
|
/* cancelled */
|
|
1780
1780
|
), r.isUnmounting)
|
|
1781
1781
|
return U();
|
|
1782
|
-
|
|
1782
|
+
y(g, [O]);
|
|
1783
1783
|
let X = !1;
|
|
1784
1784
|
O[Mt] = (fe) => {
|
|
1785
|
-
X || (X = !0, U(), fe ?
|
|
1785
|
+
X || (X = !0, U(), fe ? y(b, [O]) : y(w, [O]), O[Mt] = void 0, _[ee] === e && delete _[ee]);
|
|
1786
1786
|
};
|
|
1787
1787
|
const ue = O[Mt].bind(null, !1);
|
|
1788
|
-
|
|
1788
|
+
_[ee] = e, C ? $(C, [O, ue]) : ue();
|
|
1789
1789
|
},
|
|
1790
1790
|
clone(O) {
|
|
1791
1791
|
const U = Yr(
|
|
@@ -1798,7 +1798,7 @@ function Yr(e, t, r, n, o) {
|
|
|
1798
1798
|
return o && o(U), U;
|
|
1799
1799
|
}
|
|
1800
1800
|
};
|
|
1801
|
-
return
|
|
1801
|
+
return T;
|
|
1802
1802
|
}
|
|
1803
1803
|
function Gn(e) {
|
|
1804
1804
|
if (Rn(e))
|
|
@@ -2178,10 +2178,10 @@ function kc(e) {
|
|
|
2178
2178
|
beforeUnmount: M,
|
|
2179
2179
|
destroyed: Q,
|
|
2180
2180
|
unmounted: x,
|
|
2181
|
-
render:
|
|
2182
|
-
renderTracked:
|
|
2183
|
-
renderTriggered:
|
|
2184
|
-
errorCaptured:
|
|
2181
|
+
render: _,
|
|
2182
|
+
renderTracked: y,
|
|
2183
|
+
renderTriggered: $,
|
|
2184
|
+
errorCaptured: T,
|
|
2185
2185
|
serverPrefetch: O,
|
|
2186
2186
|
// public API
|
|
2187
2187
|
expose: U,
|
|
@@ -2226,7 +2226,7 @@ function kc(e) {
|
|
|
2226
2226
|
function ge(pe, he) {
|
|
2227
2227
|
ve(he) ? he.forEach((Pe) => pe(Pe.bind(r))) : he && pe(he.bind(r));
|
|
2228
2228
|
}
|
|
2229
|
-
if (ge(hc, h), ge(Tt, g), ge(mc, C), ge(Bi, w), ge(uc, b), ge(pc, R), ge(_c,
|
|
2229
|
+
if (ge(hc, h), ge(Tt, g), ge(mc, C), ge(Bi, w), ge(uc, b), ge(pc, R), ge(_c, T), ge(xc, y), ge(bc, $), ge(Lt, M), ge(Fi, x), ge(gc, O), ve(U))
|
|
2230
2230
|
if (U.length) {
|
|
2231
2231
|
const pe = e.exposed || (e.exposed = {});
|
|
2232
2232
|
U.forEach((he) => {
|
|
@@ -2237,7 +2237,7 @@ function kc(e) {
|
|
|
2237
2237
|
});
|
|
2238
2238
|
});
|
|
2239
2239
|
} else e.exposed || (e.exposed = {});
|
|
2240
|
-
|
|
2240
|
+
_ && e.render === It && (e.render = _), ee != null && (e.inheritAttrs = ee), X && (e.components = X), ue && (e.directives = ue), O && Ni(e);
|
|
2241
2241
|
}
|
|
2242
2242
|
function Cc(e, t, r = It) {
|
|
2243
2243
|
ve(e) && (e = mo(e));
|
|
@@ -2527,10 +2527,10 @@ function ba(e) {
|
|
|
2527
2527
|
let L, M;
|
|
2528
2528
|
try {
|
|
2529
2529
|
if (r.shapeFlag & 4) {
|
|
2530
|
-
const x = o || n,
|
|
2530
|
+
const x = o || n, _ = x;
|
|
2531
2531
|
L = Ot(
|
|
2532
2532
|
c.call(
|
|
2533
|
-
|
|
2533
|
+
_,
|
|
2534
2534
|
x,
|
|
2535
2535
|
f,
|
|
2536
2536
|
h,
|
|
@@ -2556,8 +2556,8 @@ function ba(e) {
|
|
|
2556
2556
|
}
|
|
2557
2557
|
let Q = L;
|
|
2558
2558
|
if (M && b !== !1) {
|
|
2559
|
-
const x = Object.keys(M), { shapeFlag:
|
|
2560
|
-
x.length &&
|
|
2559
|
+
const x = Object.keys(M), { shapeFlag: _ } = Q;
|
|
2560
|
+
x.length && _ & 7 && (a && x.some(Tn) && (M = zc(
|
|
2561
2561
|
M,
|
|
2562
2562
|
a
|
|
2563
2563
|
)), Q = tr(Q, M, !1, !0));
|
|
@@ -2889,7 +2889,7 @@ function Vc(e, t) {
|
|
|
2889
2889
|
);
|
|
2890
2890
|
break;
|
|
2891
2891
|
default:
|
|
2892
|
-
re & 1 ?
|
|
2892
|
+
re & 1 ? _(
|
|
2893
2893
|
p,
|
|
2894
2894
|
m,
|
|
2895
2895
|
E,
|
|
@@ -2959,9 +2959,9 @@ function Vc(e, t) {
|
|
|
2959
2959
|
for (; p && p !== m; )
|
|
2960
2960
|
E = g(p), o(p), p = E;
|
|
2961
2961
|
o(m);
|
|
2962
|
-
},
|
|
2962
|
+
}, _ = (p, m, E, F, z, N, te, Z, G) => {
|
|
2963
2963
|
if (m.type === "svg" ? te = "svg" : m.type === "math" && (te = "mathml"), p == null)
|
|
2964
|
-
|
|
2964
|
+
y(
|
|
2965
2965
|
m,
|
|
2966
2966
|
E,
|
|
2967
2967
|
F,
|
|
@@ -2987,7 +2987,7 @@ function Vc(e, t) {
|
|
|
2987
2987
|
K && K._endPatch();
|
|
2988
2988
|
}
|
|
2989
2989
|
}
|
|
2990
|
-
},
|
|
2990
|
+
}, y = (p, m, E, F, z, N, te, Z) => {
|
|
2991
2991
|
let G, K;
|
|
2992
2992
|
const { props: ce, shapeFlag: re, transition: se, dirs: de } = p;
|
|
2993
2993
|
if (G = p.el = i(
|
|
@@ -2995,7 +2995,7 @@ function Vc(e, t) {
|
|
|
2995
2995
|
N,
|
|
2996
2996
|
ce && ce.is,
|
|
2997
2997
|
ce
|
|
2998
|
-
), re & 8 ? f(G, p.children) : re & 16 &&
|
|
2998
|
+
), re & 8 ? f(G, p.children) : re & 16 && T(
|
|
2999
2999
|
p.children,
|
|
3000
3000
|
G,
|
|
3001
3001
|
null,
|
|
@@ -3004,7 +3004,7 @@ function Vc(e, t) {
|
|
|
3004
3004
|
Xn(p, N),
|
|
3005
3005
|
te,
|
|
3006
3006
|
Z
|
|
3007
|
-
), de && ar(p, null, F, "created"),
|
|
3007
|
+
), de && ar(p, null, F, "created"), $(G, p, p.scopeId, te, F), ce) {
|
|
3008
3008
|
for (const Ce in ce)
|
|
3009
3009
|
Ce !== "value" && !jr(Ce) && a(G, Ce, null, ce[Ce], N, F);
|
|
3010
3010
|
"value" in ce && a(G, "value", null, ce.value, N), (K = ce.onVnodeBeforeMount) && Et(K, F, p);
|
|
@@ -3017,7 +3017,7 @@ function Vc(e, t) {
|
|
|
3017
3017
|
} finally {
|
|
3018
3018
|
}
|
|
3019
3019
|
}, z);
|
|
3020
|
-
},
|
|
3020
|
+
}, $ = (p, m, E, F, z) => {
|
|
3021
3021
|
if (E && C(p, E), F)
|
|
3022
3022
|
for (let N = 0; N < F.length; N++)
|
|
3023
3023
|
C(p, F[N]);
|
|
@@ -3025,7 +3025,7 @@ function Vc(e, t) {
|
|
|
3025
3025
|
let N = z.subTree;
|
|
3026
3026
|
if (m === N || ss(N.type) && (N.ssContent === m || N.ssFallback === m)) {
|
|
3027
3027
|
const te = z.vnode;
|
|
3028
|
-
|
|
3028
|
+
$(
|
|
3029
3029
|
p,
|
|
3030
3030
|
te,
|
|
3031
3031
|
te.scopeId,
|
|
@@ -3034,7 +3034,7 @@ function Vc(e, t) {
|
|
|
3034
3034
|
);
|
|
3035
3035
|
}
|
|
3036
3036
|
}
|
|
3037
|
-
},
|
|
3037
|
+
}, T = (p, m, E, F, z, N, te, Z, G = 0) => {
|
|
3038
3038
|
for (let K = G; K < p.length; K++) {
|
|
3039
3039
|
const ce = p[K] = Z ? Bt(p[K]) : Ot(p[K]);
|
|
3040
3040
|
b(
|
|
@@ -3138,7 +3138,7 @@ function Vc(e, t) {
|
|
|
3138
3138
|
}, X = (p, m, E, F, z, N, te, Z, G) => {
|
|
3139
3139
|
const K = m.el = p ? p.el : s(""), ce = m.anchor = p ? p.anchor : s("");
|
|
3140
3140
|
let { patchFlag: re, dynamicChildren: se, slotScopeIds: de } = m;
|
|
3141
|
-
de && (Z = Z ? Z.concat(de) : de), p == null ? (n(K, E, F), n(ce, E, F),
|
|
3141
|
+
de && (Z = Z ? Z.concat(de) : de), p == null ? (n(K, E, F), n(ce, E, F), T(
|
|
3142
3142
|
// #10007
|
|
3143
3143
|
// such fragment like `<></>` will be compiled into
|
|
3144
3144
|
// a fragment which doesn't have a children.
|
|
@@ -3340,7 +3340,7 @@ function Vc(e, t) {
|
|
|
3340
3340
|
te,
|
|
3341
3341
|
Z,
|
|
3342
3342
|
G
|
|
3343
|
-
) : Je(K, z, N, !0) : (ce & 8 && f(E, ""), de & 16 &&
|
|
3343
|
+
) : Je(K, z, N, !0) : (ce & 8 && f(E, ""), de & 16 && T(
|
|
3344
3344
|
re,
|
|
3345
3345
|
E,
|
|
3346
3346
|
F,
|
|
@@ -3375,7 +3375,7 @@ function Vc(e, t) {
|
|
|
3375
3375
|
!0,
|
|
3376
3376
|
!1,
|
|
3377
3377
|
re
|
|
3378
|
-
) :
|
|
3378
|
+
) : T(
|
|
3379
3379
|
m,
|
|
3380
3380
|
E,
|
|
3381
3381
|
F,
|
|
@@ -3652,7 +3652,7 @@ function Vc(e, t) {
|
|
|
3652
3652
|
m: qe,
|
|
3653
3653
|
r: Ye,
|
|
3654
3654
|
mt: fe,
|
|
3655
|
-
mc:
|
|
3655
|
+
mc: T,
|
|
3656
3656
|
pc: he,
|
|
3657
3657
|
pbc: U,
|
|
3658
3658
|
n: ze,
|
|
@@ -4282,16 +4282,16 @@ function gs(e) {
|
|
|
4282
4282
|
onEnter: M,
|
|
4283
4283
|
onEnterCancelled: Q,
|
|
4284
4284
|
onLeave: x,
|
|
4285
|
-
onLeaveCancelled:
|
|
4286
|
-
onBeforeAppear:
|
|
4287
|
-
onAppear:
|
|
4288
|
-
onAppearCancelled:
|
|
4285
|
+
onLeaveCancelled: _,
|
|
4286
|
+
onBeforeAppear: y = L,
|
|
4287
|
+
onAppear: $ = M,
|
|
4288
|
+
onAppearCancelled: T = Q
|
|
4289
4289
|
} = t, O = (X, ue, fe, Se) => {
|
|
4290
4290
|
X._enterCancelled = Se, Qt(X, ue ? f : s), Qt(X, ue ? c : i), fe && fe();
|
|
4291
4291
|
}, U = (X, ue) => {
|
|
4292
4292
|
X._isLeaving = !1, Qt(X, h), Qt(X, C), Qt(X, g), ue && ue();
|
|
4293
4293
|
}, ee = (X) => (ue, fe) => {
|
|
4294
|
-
const Se = X ?
|
|
4294
|
+
const Se = X ? $ : M, ge = () => O(ue, X, fe);
|
|
4295
4295
|
sr(Se, [ue, ge]), Ta(() => {
|
|
4296
4296
|
Qt(ue, X ? l : a), At(ue, X ? f : s), $a(Se) || Ea(ue, n, b, ge);
|
|
4297
4297
|
});
|
|
@@ -4301,7 +4301,7 @@ function gs(e) {
|
|
|
4301
4301
|
sr(L, [X]), At(X, a), At(X, i);
|
|
4302
4302
|
},
|
|
4303
4303
|
onBeforeAppear(X) {
|
|
4304
|
-
sr(
|
|
4304
|
+
sr(y, [X]), At(X, l), At(X, c);
|
|
4305
4305
|
},
|
|
4306
4306
|
onEnter: ee(!1),
|
|
4307
4307
|
onAppear: ee(!0),
|
|
@@ -4316,10 +4316,10 @@ function gs(e) {
|
|
|
4316
4316
|
O(X, !1, void 0, !0), sr(Q, [X]);
|
|
4317
4317
|
},
|
|
4318
4318
|
onAppearCancelled(X) {
|
|
4319
|
-
O(X, !0, void 0, !0), sr(
|
|
4319
|
+
O(X, !0, void 0, !0), sr(T, [X]);
|
|
4320
4320
|
},
|
|
4321
4321
|
onLeaveCancelled(X) {
|
|
4322
|
-
U(X), sr(
|
|
4322
|
+
U(X), sr(_, [X]);
|
|
4323
4323
|
}
|
|
4324
4324
|
});
|
|
4325
4325
|
}
|
|
@@ -5307,24 +5307,24 @@ function Jf(e) {
|
|
|
5307
5307
|
async function x(H, J) {
|
|
5308
5308
|
return s(M("search", { path: H, filter: J }));
|
|
5309
5309
|
}
|
|
5310
|
-
async function
|
|
5310
|
+
async function _(H) {
|
|
5311
5311
|
return s(M("subfolders", { path: H }));
|
|
5312
5312
|
}
|
|
5313
|
-
async function
|
|
5313
|
+
async function y(H, J) {
|
|
5314
5314
|
return s(M("newfolder"), {
|
|
5315
5315
|
method: "POST",
|
|
5316
5316
|
headers: { "Content-Type": "application/json" },
|
|
5317
5317
|
body: JSON.stringify({ path: H, name: J })
|
|
5318
5318
|
});
|
|
5319
5319
|
}
|
|
5320
|
-
async function
|
|
5320
|
+
async function $(H, J, ae) {
|
|
5321
5321
|
return s(M("rename"), {
|
|
5322
5322
|
method: "POST",
|
|
5323
5323
|
headers: { "Content-Type": "application/json" },
|
|
5324
5324
|
body: JSON.stringify({ path: H, item: J, name: ae })
|
|
5325
5325
|
});
|
|
5326
5326
|
}
|
|
5327
|
-
async function
|
|
5327
|
+
async function T(H, J, ae) {
|
|
5328
5328
|
return s(M("move"), {
|
|
5329
5329
|
method: "POST",
|
|
5330
5330
|
headers: { "Content-Type": "application/json" },
|
|
@@ -5519,10 +5519,10 @@ function Jf(e) {
|
|
|
5519
5519
|
// Manager
|
|
5520
5520
|
index: Q,
|
|
5521
5521
|
search: x,
|
|
5522
|
-
subfolders:
|
|
5523
|
-
newFolder:
|
|
5524
|
-
rename:
|
|
5525
|
-
move:
|
|
5522
|
+
subfolders: _,
|
|
5523
|
+
newFolder: y,
|
|
5524
|
+
rename: $,
|
|
5525
|
+
move: T,
|
|
5526
5526
|
copy: U,
|
|
5527
5527
|
moveAsync: ee,
|
|
5528
5528
|
deleteAsync: X,
|
|
@@ -5631,7 +5631,7 @@ function Xf(e, t) {
|
|
|
5631
5631
|
});
|
|
5632
5632
|
}
|
|
5633
5633
|
const x = 2;
|
|
5634
|
-
async function
|
|
5634
|
+
async function _(O, U = 0) {
|
|
5635
5635
|
try {
|
|
5636
5636
|
await Q(O);
|
|
5637
5637
|
} catch (ee) {
|
|
@@ -5641,28 +5641,28 @@ function Xf(e, t) {
|
|
|
5641
5641
|
const ue = R.get(O.partNumber) ?? 0;
|
|
5642
5642
|
ue > 0 && (l.uploadedBytes = Math.max(0, l.uploadedBytes - ue), R.delete(O.partNumber), h());
|
|
5643
5643
|
const fe = 500 * (U + 1) + Math.floor(Math.random() * 250);
|
|
5644
|
-
return await new Promise((Se) => setTimeout(Se, fe)),
|
|
5644
|
+
return await new Promise((Se) => setTimeout(Se, fe)), _(O, U + 1);
|
|
5645
5645
|
}
|
|
5646
5646
|
}
|
|
5647
|
-
async function
|
|
5647
|
+
async function y() {
|
|
5648
5648
|
for (; !c && M < w.parts.length; ) {
|
|
5649
5649
|
const O = w.parts[M++];
|
|
5650
|
-
await
|
|
5650
|
+
await _(O);
|
|
5651
5651
|
}
|
|
5652
5652
|
}
|
|
5653
|
-
const
|
|
5653
|
+
const $ = [];
|
|
5654
5654
|
for (let O = 0; O < s; O++)
|
|
5655
|
-
|
|
5656
|
-
if (await Promise.all(
|
|
5655
|
+
$.push(y());
|
|
5656
|
+
if (await Promise.all($), c)
|
|
5657
5657
|
throw new DOMException("Aborted by user", "AbortError");
|
|
5658
5658
|
if (!t.endpoints.uploadFinalize) throw new Error("uploadFinalize not configured");
|
|
5659
5659
|
l.status = "finalizing", L.sort((O, U) => O.partNumber - U.partNumber);
|
|
5660
|
-
const
|
|
5660
|
+
const T = await t.jsonFetch(t.endpoints.uploadFinalize, {
|
|
5661
5661
|
method: "POST",
|
|
5662
5662
|
headers: { "Content-Type": "application/json" },
|
|
5663
5663
|
body: JSON.stringify({ uploadId: w.uploadId, parts: L })
|
|
5664
5664
|
});
|
|
5665
|
-
return l.status = "done", l.uploadedBytes = l.totalBytes, l.percent = 100, h(), (g = a.onDone) == null || g.call(a, l,
|
|
5665
|
+
return l.status = "done", l.uploadedBytes = l.totalBytes, l.percent = 100, h(), (g = a.onDone) == null || g.call(a, l, T), T;
|
|
5666
5666
|
} catch (w) {
|
|
5667
5667
|
const b = w instanceof Error ? w : new Error(String(w));
|
|
5668
5668
|
if (l.status = b.name === "AbortError" ? "aborted" : "error", l.error = b.message, h(), l.uploadId && t.endpoints.uploadAbort && l.status === "aborted")
|
|
@@ -6072,16 +6072,16 @@ function od(e, t, r = {}) {
|
|
|
6072
6072
|
if (t.endpoints.opsList)
|
|
6073
6073
|
try {
|
|
6074
6074
|
const R = ((await t.jsonFetch(t.endpoints.opsList)).ops || []).map(Ga);
|
|
6075
|
-
for (const
|
|
6076
|
-
(
|
|
6077
|
-
const L = new Set(n.value.map((
|
|
6075
|
+
for (const T of R)
|
|
6076
|
+
(T.status === "done" || T.status === "error") && !o.has(T.id) && (o.add(T.id), a.set(T.id, Date.now()), i && ((w = r.onSettled) == null || w.call(r, T)));
|
|
6077
|
+
const L = new Set(n.value.map((T) => T.id)), M = R.filter((T) => T.status === "pending" || T.status === "running" ? !0 : i ? L.has(T.id) : !1), Q = new Set(M.map((T) => T.id)), x = n.value.filter((T) => !Q.has(T.id)), _ = [...M, ...x];
|
|
6078
6078
|
i = !0;
|
|
6079
|
-
const
|
|
6080
|
-
if (
|
|
6081
|
-
const O = a.get(
|
|
6082
|
-
return O !== void 0 &&
|
|
6079
|
+
const y = Date.now(), $ = _.filter((T) => {
|
|
6080
|
+
if (T.status === "pending" || T.status === "running") return !0;
|
|
6081
|
+
const O = a.get(T.id);
|
|
6082
|
+
return O !== void 0 && y - O < nd;
|
|
6083
6083
|
});
|
|
6084
|
-
n.value =
|
|
6084
|
+
n.value = $, !s.value && $.length === 0 && f();
|
|
6085
6085
|
} catch (b) {
|
|
6086
6086
|
console.warn("[usePendingOps] poll failed:", b);
|
|
6087
6087
|
}
|
|
@@ -6381,7 +6381,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6381
6381
|
for (const [n, o] of t)
|
|
6382
6382
|
r[n] = o;
|
|
6383
6383
|
return r;
|
|
6384
|
-
}, Ed = /* @__PURE__ */ rn(Td, [["__scopeId", "data-v-
|
|
6384
|
+
}, Ed = /* @__PURE__ */ rn(Td, [["__scopeId", "data-v-f2104118"]]), Ad = { class: "filex-recent" }, Pd = ["disabled"], Md = { key: 0 }, Dd = ["onClick"], Od = { class: "filex-recent-name" }, zd = { class: "filex-recent-meta" }, Id = {
|
|
6385
6385
|
key: 1,
|
|
6386
6386
|
class: "filex-recent-empty"
|
|
6387
6387
|
}, Rd = {
|
|
@@ -6448,7 +6448,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6448
6448
|
])) : a.value ? (k(), A("p", Rd, "Loading…")) : (k(), A("p", Id, "Nothing here yet."))
|
|
6449
6449
|
]));
|
|
6450
6450
|
}
|
|
6451
|
-
}), Nd = /* @__PURE__ */ rn(Ld, [["__scopeId", "data-v-
|
|
6451
|
+
}), Nd = /* @__PURE__ */ rn(Ld, [["__scopeId", "data-v-ff50baed"]]), jd = {
|
|
6452
6452
|
class: "fe-breadcrumb",
|
|
6453
6453
|
"aria-label": "Breadcrumb"
|
|
6454
6454
|
}, Bd = ["aria-current", "onClick", "onContextmenu", "onDrop"], Fd = {
|
|
@@ -6477,26 +6477,26 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6477
6477
|
const Q = M.split("/");
|
|
6478
6478
|
return Q[Q.length - 1] || r.rootLabel || r.adapter;
|
|
6479
6479
|
}), { t: a } = wt(() => r.locale), i = t, s = xe(() => {
|
|
6480
|
-
const M = `${r.adapter}://`, Q = r.dirname.startsWith(M) ? r.dirname.slice(M.length) : r.dirname, x = Q.split("/").filter(Boolean),
|
|
6480
|
+
const M = `${r.adapter}://`, Q = r.dirname.startsWith(M) ? r.dirname.slice(M.length) : r.dirname, x = Q.split("/").filter(Boolean), _ = [];
|
|
6481
6481
|
if (r.rootPath) {
|
|
6482
|
-
const
|
|
6483
|
-
|
|
6484
|
-
let U =
|
|
6482
|
+
const $ = n.value, T = Q.replace(/^\/+|\/+$/g, ""), O = $ && (T === $ || T.startsWith($ + "/")) ? T.slice($.length).replace(/^\/+/, "") : "";
|
|
6483
|
+
_.push({ label: o.value, adapterPath: r.rootPath });
|
|
6484
|
+
let U = $;
|
|
6485
6485
|
for (const ee of O.split("/").filter(Boolean))
|
|
6486
|
-
U = U ? `${U}/${ee}` : ee,
|
|
6487
|
-
return
|
|
6486
|
+
U = U ? `${U}/${ee}` : ee, _.push({ label: ee === ".trash" ? a("node.trash") : ee, adapterPath: `${M}${U}` });
|
|
6487
|
+
return _;
|
|
6488
6488
|
}
|
|
6489
|
-
r.multiStorageRoot ? (
|
|
6489
|
+
r.multiStorageRoot ? (_.push({ label: "/", adapterPath: "" }), r.adapter && _.push({ label: r.rootLabel || r.adapter, adapterPath: M })) : _.push({
|
|
6490
6490
|
label: r.rootLabel || r.adapter,
|
|
6491
6491
|
adapterPath: M
|
|
6492
6492
|
});
|
|
6493
|
-
let
|
|
6494
|
-
for (const
|
|
6495
|
-
|
|
6496
|
-
const
|
|
6497
|
-
|
|
6493
|
+
let y = "";
|
|
6494
|
+
for (const $ of x) {
|
|
6495
|
+
y = y ? `${y}/${$}` : $;
|
|
6496
|
+
const T = $ === ".trash" ? a("node.trash") : $;
|
|
6497
|
+
_.push({ label: T, adapterPath: `${M}${y}` });
|
|
6498
6498
|
}
|
|
6499
|
-
return
|
|
6499
|
+
return _;
|
|
6500
6500
|
});
|
|
6501
6501
|
function l(M) {
|
|
6502
6502
|
i("navigate", M.adapterPath);
|
|
@@ -6521,10 +6521,10 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6521
6521
|
function b() {
|
|
6522
6522
|
const M = `${r.adapter}://`, Q = r.dirname.startsWith(M) ? r.dirname.slice(M.length) : r.dirname;
|
|
6523
6523
|
if (r.rootPath) {
|
|
6524
|
-
const x = n.value,
|
|
6525
|
-
C.value =
|
|
6526
|
-
var T
|
|
6527
|
-
(
|
|
6524
|
+
const x = n.value, _ = Q.replace(/^\/+|\/+$/g, ""), y = x && (_ === x || _.startsWith(x + "/")) ? _.slice(x.length).replace(/^\/+/, "") : "";
|
|
6525
|
+
C.value = y ? `/${y}` : "/", g.value = !0, qt(() => {
|
|
6526
|
+
var $, T;
|
|
6527
|
+
($ = w.value) == null || $.focus(), (T = w.value) == null || T.select();
|
|
6528
6528
|
});
|
|
6529
6529
|
return;
|
|
6530
6530
|
}
|
|
@@ -6538,15 +6538,15 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6538
6538
|
else
|
|
6539
6539
|
C.value = Q;
|
|
6540
6540
|
g.value = !0, qt(() => {
|
|
6541
|
-
var x,
|
|
6542
|
-
(x = w.value) == null || x.focus(), (
|
|
6541
|
+
var x, _;
|
|
6542
|
+
(x = w.value) == null || x.focus(), (_ = w.value) == null || _.select();
|
|
6543
6543
|
});
|
|
6544
6544
|
}
|
|
6545
6545
|
function R() {
|
|
6546
6546
|
const M = C.value.trim();
|
|
6547
6547
|
if (g.value = !1, r.rootPath) {
|
|
6548
|
-
const x = M.replace(/^\/+|\/+$/g, ""),
|
|
6549
|
-
i("navigate",
|
|
6548
|
+
const x = M.replace(/^\/+|\/+$/g, ""), _ = n.value, y = x ? _ ? `${_}/${x}` : x : _;
|
|
6549
|
+
i("navigate", y ? `${r.adapter}://${y}` : `${r.adapter}://`);
|
|
6550
6550
|
return;
|
|
6551
6551
|
}
|
|
6552
6552
|
if (r.multiStorageRoot) {
|
|
@@ -6555,8 +6555,8 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6555
6555
|
i("navigate", "");
|
|
6556
6556
|
return;
|
|
6557
6557
|
}
|
|
6558
|
-
const
|
|
6559
|
-
i("navigate",
|
|
6558
|
+
const _ = x.indexOf("/"), y = _ === -1 ? x : x.slice(0, _), $ = _ === -1 ? "" : x.slice(_ + 1);
|
|
6559
|
+
i("navigate", $ ? `${y}://${$}` : `${y}://`);
|
|
6560
6560
|
return;
|
|
6561
6561
|
}
|
|
6562
6562
|
const Q = M.replace(/^\/+|\/+$/g, "");
|
|
@@ -6584,18 +6584,18 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6584
6584
|
}, null, 40, Kd)), [
|
|
6585
6585
|
[mt, C.value]
|
|
6586
6586
|
]) : (k(), A(ke, { key: 0 }, [
|
|
6587
|
-
(k(!0), A(ke, null, Qe(s.value, (x,
|
|
6587
|
+
(k(!0), A(ke, null, Qe(s.value, (x, _) => (k(), A("button", {
|
|
6588
6588
|
key: x.adapterPath,
|
|
6589
|
-
class: Re(["fe-breadcrumb__crumb", { "is-last":
|
|
6589
|
+
class: Re(["fe-breadcrumb__crumb", { "is-last": _ === s.value.length - 1 }]),
|
|
6590
6590
|
type: "button",
|
|
6591
|
-
"aria-current":
|
|
6592
|
-
onClick: (
|
|
6593
|
-
onContextmenu: (
|
|
6591
|
+
"aria-current": _ === s.value.length - 1 ? "page" : void 0,
|
|
6592
|
+
onClick: (y) => l(x),
|
|
6593
|
+
onContextmenu: (y) => c(y, x),
|
|
6594
6594
|
onDragover: f,
|
|
6595
|
-
onDrop: (
|
|
6595
|
+
onDrop: (y) => h(y, x)
|
|
6596
6596
|
}, [
|
|
6597
6597
|
v("span", null, S(x.label), 1),
|
|
6598
|
-
|
|
6598
|
+
_ < s.value.length - 1 ? (k(), A("span", Fd, "›")) : le("", !0)
|
|
6599
6599
|
], 42, Bd))), 128)),
|
|
6600
6600
|
v("button", {
|
|
6601
6601
|
type: "button",
|
|
@@ -6668,7 +6668,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6668
6668
|
e.compact ? le("", !0) : (k(), A("span", Yd, S(o.value ? "Starred" : "Star"), 1))
|
|
6669
6669
|
], 10, Hd));
|
|
6670
6670
|
}
|
|
6671
|
-
}), Jd = /* @__PURE__ */ rn(Gd, [["__scopeId", "data-v-
|
|
6671
|
+
}), Jd = /* @__PURE__ */ rn(Gd, [["__scopeId", "data-v-1b788147"]]), Xd = {
|
|
6672
6672
|
class: "fe-list__head",
|
|
6673
6673
|
role: "row"
|
|
6674
6674
|
}, Qd = {
|
|
@@ -6705,37 +6705,37 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6705
6705
|
emits: ["click-row", "dbl-row", "context-row", "item-drag-start", "item-drop-into", "star-change"],
|
|
6706
6706
|
setup(e, { emit: t }) {
|
|
6707
6707
|
const r = e, n = t, { t: o, formatSize: a, nodeDisplayName: i } = wt(() => r.locale);
|
|
6708
|
-
function s(
|
|
6709
|
-
return r.selected.has(
|
|
6708
|
+
function s(y) {
|
|
6709
|
+
return r.selected.has(y.path);
|
|
6710
6710
|
}
|
|
6711
|
-
function l(
|
|
6712
|
-
n("click-row",
|
|
6711
|
+
function l(y, $) {
|
|
6712
|
+
n("click-row", y, { ctrl: $.ctrlKey || $.metaKey, shift: $.shiftKey });
|
|
6713
6713
|
}
|
|
6714
|
-
function c(
|
|
6715
|
-
n("dbl-row",
|
|
6714
|
+
function c(y) {
|
|
6715
|
+
n("dbl-row", y);
|
|
6716
6716
|
}
|
|
6717
|
-
function f(
|
|
6718
|
-
|
|
6717
|
+
function f(y, $) {
|
|
6718
|
+
$.preventDefault(), $.stopPropagation(), n("context-row", y, $);
|
|
6719
6719
|
}
|
|
6720
|
-
function h(
|
|
6721
|
-
n("item-drag-start",
|
|
6720
|
+
function h(y, $) {
|
|
6721
|
+
n("item-drag-start", y, $);
|
|
6722
6722
|
}
|
|
6723
|
-
function g(
|
|
6724
|
-
var
|
|
6725
|
-
|
|
6723
|
+
function g(y, $) {
|
|
6724
|
+
var T;
|
|
6725
|
+
y.type === "dir" && (T = $.dataTransfer) != null && T.types.includes("application/x-brf-files") && ($.preventDefault(), $.stopPropagation(), $.dataTransfer && ($.dataTransfer.dropEffect = "move"));
|
|
6726
6726
|
}
|
|
6727
|
-
function C(
|
|
6728
|
-
var
|
|
6729
|
-
|
|
6727
|
+
function C(y, $) {
|
|
6728
|
+
var T;
|
|
6729
|
+
y.type === "dir" && (T = $.dataTransfer) != null && T.types.includes("application/x-brf-files") && ($.preventDefault(), $.stopPropagation(), n("item-drop-into", y, $));
|
|
6730
6730
|
}
|
|
6731
6731
|
let w, b = null;
|
|
6732
|
-
function R(
|
|
6733
|
-
b =
|
|
6732
|
+
function R(y, $) {
|
|
6733
|
+
b = y, w && clearTimeout(w), w = setTimeout(() => {
|
|
6734
6734
|
if (b) {
|
|
6735
|
-
const
|
|
6735
|
+
const T = $.touches[0];
|
|
6736
6736
|
n("context-row", b, {
|
|
6737
|
-
clientX:
|
|
6738
|
-
clientY:
|
|
6737
|
+
clientX: T.clientX,
|
|
6738
|
+
clientY: T.clientY,
|
|
6739
6739
|
preventDefault: () => {
|
|
6740
6740
|
}
|
|
6741
6741
|
});
|
|
@@ -6745,25 +6745,25 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6745
6745
|
function L() {
|
|
6746
6746
|
w && clearTimeout(w), b = null;
|
|
6747
6747
|
}
|
|
6748
|
-
function M(
|
|
6749
|
-
if (
|
|
6750
|
-
if (
|
|
6751
|
-
const
|
|
6752
|
-
return ["jpg", "jpeg", "png", "webp", "gif", "bmp", "avif", "heic", "svg"].includes(
|
|
6748
|
+
function M(y) {
|
|
6749
|
+
if (y.mime_type === "inode/storage") return "💾";
|
|
6750
|
+
if (y.type === "dir") return "📁";
|
|
6751
|
+
const $ = (y.extension || "").toLowerCase();
|
|
6752
|
+
return ["jpg", "jpeg", "png", "webp", "gif", "bmp", "avif", "heic", "svg"].includes($) ? "🖼" : ["mp4", "webm", "mov", "mkv", "avi", "ogv", "m4v"].includes($) ? "🎞" : ["mp3", "wav", "flac", "ogg", "m4a", "aac", "opus"].includes($) ? "🎵" : $ === "pdf" ? "📕" : ["doc", "docx", "odt", "rtf"].includes($) ? "📄" : ["xls", "xlsx", "ods", "csv"].includes($) ? "📊" : ["ppt", "pptx", "odp"].includes($) ? "📽" : ["zip", "tar", "gz", "bz2", "7z", "rar"].includes($) ? "🗜" : ["txt", "md", "log", "json", "yml", "yaml", "xml"].includes($) ? "📝" : "📎";
|
|
6753
6753
|
}
|
|
6754
|
-
function Q(
|
|
6755
|
-
return
|
|
6754
|
+
function Q(y) {
|
|
6755
|
+
return y ? new Date(y * (y < 1e12 ? 1e3 : 1)).toLocaleString() : "—";
|
|
6756
6756
|
}
|
|
6757
|
-
function x(
|
|
6758
|
-
const
|
|
6759
|
-
return
|
|
6757
|
+
function x(y) {
|
|
6758
|
+
const $ = y.replace(/^[a-z][a-z0-9+.-]*:\/\//i, ""), T = $.lastIndexOf("/");
|
|
6759
|
+
return T === -1 ? "" : $.slice(0, T);
|
|
6760
6760
|
}
|
|
6761
|
-
const
|
|
6762
|
-
return (
|
|
6761
|
+
const _ = xe(() => r.files);
|
|
6762
|
+
return (y, $) => (k(), A("div", {
|
|
6763
6763
|
class: Re(["fe-list", { "is-loading": e.loading, "has-star-col": !!e.apiBase || e.apiBase === "" }])
|
|
6764
6764
|
}, [
|
|
6765
6765
|
v("div", Xd, [
|
|
6766
|
-
|
|
6766
|
+
$[1] || ($[1] = v("div", {
|
|
6767
6767
|
class: "fe-list__col fe-list__col--star",
|
|
6768
6768
|
role: "columnheader",
|
|
6769
6769
|
"aria-label": "Star"
|
|
@@ -6773,63 +6773,63 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6773
6773
|
v("div", eu, S(ne(o)("col.modified")), 1)
|
|
6774
6774
|
]),
|
|
6775
6775
|
v("div", tu, [
|
|
6776
|
-
(k(!0), A(ke, null, Qe(
|
|
6776
|
+
(k(!0), A(ke, null, Qe(_.value, (T) => {
|
|
6777
6777
|
var O, U;
|
|
6778
6778
|
return k(), A("div", {
|
|
6779
|
-
key:
|
|
6779
|
+
key: T.path,
|
|
6780
6780
|
class: Re(["fe-list__row", {
|
|
6781
|
-
"is-selected": s(
|
|
6782
|
-
"is-dir":
|
|
6783
|
-
"is-trash":
|
|
6784
|
-
"is-clipped": (O = e.clipped) == null ? void 0 : O.has(
|
|
6781
|
+
"is-selected": s(T),
|
|
6782
|
+
"is-dir": T.type === "dir",
|
|
6783
|
+
"is-trash": T.trashed,
|
|
6784
|
+
"is-clipped": (O = e.clipped) == null ? void 0 : O.has(T.path)
|
|
6785
6785
|
}]),
|
|
6786
6786
|
role: "row",
|
|
6787
6787
|
tabindex: "0",
|
|
6788
6788
|
draggable: "true",
|
|
6789
|
-
onClick: (ee) => l(
|
|
6790
|
-
onDblclick: (ee) => c(
|
|
6791
|
-
onContextmenu: (ee) => f(
|
|
6792
|
-
onDragstart: (ee) => h(
|
|
6793
|
-
onDragover: (ee) => g(
|
|
6794
|
-
onDrop: (ee) => C(
|
|
6795
|
-
onTouchstartPassive: (ee) => R(
|
|
6789
|
+
onClick: (ee) => l(T, ee),
|
|
6790
|
+
onDblclick: (ee) => c(T),
|
|
6791
|
+
onContextmenu: (ee) => f(T, ee),
|
|
6792
|
+
onDragstart: (ee) => h(T, ee),
|
|
6793
|
+
onDragover: (ee) => g(T, ee),
|
|
6794
|
+
onDrop: (ee) => C(T, ee),
|
|
6795
|
+
onTouchstartPassive: (ee) => R(T, ee),
|
|
6796
6796
|
onTouchend: L,
|
|
6797
6797
|
onTouchmove: L
|
|
6798
6798
|
}, [
|
|
6799
6799
|
v("div", {
|
|
6800
6800
|
class: "fe-list__col fe-list__col--star",
|
|
6801
|
-
onClick:
|
|
6801
|
+
onClick: $[0] || ($[0] = He(() => {
|
|
6802
6802
|
}, ["stop"]))
|
|
6803
6803
|
}, [
|
|
6804
|
-
typeof
|
|
6804
|
+
typeof T.id == "number" && T.type === "file" ? (k(), Ze(Jd, {
|
|
6805
6805
|
key: 0,
|
|
6806
|
-
starred: !!((U = e.starredIds) != null && U.has(
|
|
6807
|
-
"node-id":
|
|
6806
|
+
starred: !!((U = e.starredIds) != null && U.has(T.id)),
|
|
6807
|
+
"node-id": T.id,
|
|
6808
6808
|
"api-base": e.apiBase,
|
|
6809
6809
|
"auth-headers": e.authHeaders,
|
|
6810
6810
|
compact: "",
|
|
6811
|
-
onChange: (ee) => n("star-change",
|
|
6811
|
+
onChange: (ee) => n("star-change", T, ee)
|
|
6812
6812
|
}, null, 8, ["starred", "node-id", "api-base", "auth-headers", "onChange"])) : le("", !0)
|
|
6813
6813
|
]),
|
|
6814
6814
|
v("div", nu, [
|
|
6815
|
-
v("span", ou, S(M(
|
|
6815
|
+
v("span", ou, S(M(T)), 1),
|
|
6816
6816
|
v("div", au, [
|
|
6817
6817
|
v("span", {
|
|
6818
6818
|
class: "fe-list__name",
|
|
6819
|
-
title:
|
|
6820
|
-
}, S(ne(i)(
|
|
6819
|
+
title: T.basename
|
|
6820
|
+
}, S(ne(i)(T)), 9, iu),
|
|
6821
6821
|
e.showParentPath ? (k(), A("span", {
|
|
6822
6822
|
key: 0,
|
|
6823
6823
|
class: "fe-list__parent",
|
|
6824
|
-
title: x(
|
|
6825
|
-
}, S(x(
|
|
6824
|
+
title: x(T.path)
|
|
6825
|
+
}, S(x(T.path) || "—"), 9, su)) : le("", !0)
|
|
6826
6826
|
])
|
|
6827
6827
|
]),
|
|
6828
|
-
v("div", lu, S(
|
|
6829
|
-
v("div", cu, S(Q(
|
|
6828
|
+
v("div", lu, S(ne(a)(T.size)), 1),
|
|
6829
|
+
v("div", cu, S(Q(T.last_modified)), 1)
|
|
6830
6830
|
], 42, ru);
|
|
6831
6831
|
}), 128)),
|
|
6832
|
-
!e.loading &&
|
|
6832
|
+
!e.loading && _.value.length === 0 ? (k(), A("div", fu, S(ne(o)("empty.folder")), 1)) : le("", !0)
|
|
6833
6833
|
])
|
|
6834
6834
|
], 2));
|
|
6835
6835
|
}
|
|
@@ -6855,34 +6855,34 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6855
6855
|
function s(x) {
|
|
6856
6856
|
return r.selected.has(x.path);
|
|
6857
6857
|
}
|
|
6858
|
-
function l(x,
|
|
6859
|
-
n("click-card", x, { ctrl:
|
|
6858
|
+
function l(x, _) {
|
|
6859
|
+
n("click-card", x, { ctrl: _.ctrlKey || _.metaKey, shift: _.shiftKey });
|
|
6860
6860
|
}
|
|
6861
6861
|
function c(x) {
|
|
6862
6862
|
n("dbl-card", x);
|
|
6863
6863
|
}
|
|
6864
|
-
function f(x,
|
|
6865
|
-
|
|
6864
|
+
function f(x, _) {
|
|
6865
|
+
_.preventDefault(), _.stopPropagation(), n("context-card", x, _);
|
|
6866
6866
|
}
|
|
6867
|
-
function h(x,
|
|
6868
|
-
n("item-drag-start", x,
|
|
6867
|
+
function h(x, _) {
|
|
6868
|
+
n("item-drag-start", x, _);
|
|
6869
6869
|
}
|
|
6870
|
-
function g(x,
|
|
6871
|
-
var
|
|
6872
|
-
x.type === "dir" && (
|
|
6870
|
+
function g(x, _) {
|
|
6871
|
+
var y;
|
|
6872
|
+
x.type === "dir" && (y = _.dataTransfer) != null && y.types.includes("application/x-brf-files") && (_.preventDefault(), _.stopPropagation(), _.dataTransfer && (_.dataTransfer.dropEffect = "move"));
|
|
6873
6873
|
}
|
|
6874
|
-
function C(x,
|
|
6875
|
-
var
|
|
6876
|
-
x.type === "dir" && (
|
|
6874
|
+
function C(x, _) {
|
|
6875
|
+
var y;
|
|
6876
|
+
x.type === "dir" && (y = _.dataTransfer) != null && y.types.includes("application/x-brf-files") && (_.preventDefault(), _.stopPropagation(), n("item-drop-into", x, _));
|
|
6877
6877
|
}
|
|
6878
6878
|
let w, b = null;
|
|
6879
|
-
function R(x,
|
|
6879
|
+
function R(x, _) {
|
|
6880
6880
|
b = x, w && clearTimeout(w), w = setTimeout(() => {
|
|
6881
6881
|
if (b) {
|
|
6882
|
-
const
|
|
6882
|
+
const y = _.touches[0];
|
|
6883
6883
|
n("context-card", b, {
|
|
6884
|
-
clientX:
|
|
6885
|
-
clientY:
|
|
6884
|
+
clientX: y.clientX,
|
|
6885
|
+
clientY: y.clientY,
|
|
6886
6886
|
preventDefault: () => {
|
|
6887
6887
|
}
|
|
6888
6888
|
});
|
|
@@ -6893,59 +6893,59 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6893
6893
|
w && clearTimeout(w), b = null;
|
|
6894
6894
|
}
|
|
6895
6895
|
function M(x) {
|
|
6896
|
-
const
|
|
6897
|
-
return
|
|
6896
|
+
const _ = x.replace(/^[a-z][a-z0-9+.-]*:\/\//i, ""), y = _.lastIndexOf("/");
|
|
6897
|
+
return y === -1 ? "" : _.slice(0, y);
|
|
6898
6898
|
}
|
|
6899
6899
|
function Q(x) {
|
|
6900
6900
|
if (x.mime_type === "inode/storage") return "💾";
|
|
6901
6901
|
if (x.type === "dir") return "📁";
|
|
6902
|
-
const
|
|
6903
|
-
return ["jpg", "jpeg", "png", "webp", "gif", "bmp", "svg"].includes(
|
|
6902
|
+
const _ = (x.extension || "").toLowerCase();
|
|
6903
|
+
return ["jpg", "jpeg", "png", "webp", "gif", "bmp", "svg"].includes(_) ? "🖼" : ["mp4", "webm", "mov", "mkv"].includes(_) ? "🎞" : ["mp3", "wav", "flac", "ogg"].includes(_) ? "🎵" : _ === "pdf" ? "📕" : ["doc", "docx", "odt"].includes(_) ? "📄" : ["xls", "xlsx", "csv"].includes(_) ? "📊" : ["ppt", "pptx"].includes(_) ? "📽" : ["zip", "tar", "gz", "7z"].includes(_) ? "🗜" : "📎";
|
|
6904
6904
|
}
|
|
6905
|
-
return (x,
|
|
6905
|
+
return (x, _) => (k(), A("div", {
|
|
6906
6906
|
class: Re(["fe-grid", { "is-loading": e.loading }])
|
|
6907
6907
|
}, [
|
|
6908
|
-
(k(!0), A(ke, null, Qe(e.files, (
|
|
6909
|
-
var
|
|
6908
|
+
(k(!0), A(ke, null, Qe(e.files, (y) => {
|
|
6909
|
+
var $;
|
|
6910
6910
|
return k(), A("div", {
|
|
6911
|
-
key:
|
|
6911
|
+
key: y.path,
|
|
6912
6912
|
class: Re(["fe-grid__card", {
|
|
6913
|
-
"is-selected": s(
|
|
6914
|
-
"is-dir":
|
|
6915
|
-
"is-trash":
|
|
6916
|
-
"is-clipped": (
|
|
6913
|
+
"is-selected": s(y),
|
|
6914
|
+
"is-dir": y.type === "dir",
|
|
6915
|
+
"is-trash": y.trashed,
|
|
6916
|
+
"is-clipped": ($ = e.clipped) == null ? void 0 : $.has(y.path)
|
|
6917
6917
|
}]),
|
|
6918
6918
|
tabindex: "0",
|
|
6919
6919
|
draggable: "true",
|
|
6920
|
-
onClick: (
|
|
6921
|
-
onDblclick: (
|
|
6922
|
-
onContextmenu: (
|
|
6923
|
-
onDragstart: (
|
|
6924
|
-
onDragover: (
|
|
6925
|
-
onDrop: (
|
|
6926
|
-
onTouchstartPassive: (
|
|
6920
|
+
onClick: (T) => l(y, T),
|
|
6921
|
+
onDblclick: (T) => c(y),
|
|
6922
|
+
onContextmenu: (T) => f(y, T),
|
|
6923
|
+
onDragstart: (T) => h(y, T),
|
|
6924
|
+
onDragover: (T) => g(y, T),
|
|
6925
|
+
onDrop: (T) => C(y, T),
|
|
6926
|
+
onTouchstartPassive: (T) => R(y, T),
|
|
6927
6927
|
onTouchend: L,
|
|
6928
6928
|
onTouchmove: L
|
|
6929
6929
|
}, [
|
|
6930
6930
|
v("div", pu, [
|
|
6931
|
-
|
|
6931
|
+
y.thumb_url ? (k(), A("img", {
|
|
6932
6932
|
key: 0,
|
|
6933
|
-
src:
|
|
6934
|
-
alt:
|
|
6933
|
+
src: y.thumb_url,
|
|
6934
|
+
alt: y.basename,
|
|
6935
6935
|
loading: "lazy",
|
|
6936
6936
|
draggable: "false"
|
|
6937
|
-
}, null, 8, vu)) : (k(), A("span", hu, S(Q(
|
|
6937
|
+
}, null, 8, vu)) : (k(), A("span", hu, S(Q(y)), 1))
|
|
6938
6938
|
]),
|
|
6939
6939
|
v("div", {
|
|
6940
6940
|
class: "fe-grid__label",
|
|
6941
|
-
title:
|
|
6942
|
-
}, S(ne(i)(
|
|
6941
|
+
title: y.basename
|
|
6942
|
+
}, S(ne(i)(y)), 9, mu),
|
|
6943
6943
|
e.showParentPath ? (k(), A("div", {
|
|
6944
6944
|
key: 0,
|
|
6945
6945
|
class: "fe-grid__parent",
|
|
6946
|
-
title: M(
|
|
6947
|
-
}, S(M(
|
|
6948
|
-
v("div", bu, S(
|
|
6946
|
+
title: M(y.path)
|
|
6947
|
+
}, S(M(y.path) || "—"), 9, gu)) : le("", !0),
|
|
6948
|
+
v("div", bu, S(ne(a)(y.size)), 1)
|
|
6949
6949
|
], 42, uu);
|
|
6950
6950
|
}), 128)),
|
|
6951
6951
|
!e.loading && e.files.length === 0 ? (k(), A("div", xu, S(ne(o)("empty.folder")), 1)) : le("", !0)
|
|
@@ -6968,14 +6968,14 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6968
6968
|
emits: ["select"],
|
|
6969
6969
|
setup(e, { expose: t, emit: r }) {
|
|
6970
6970
|
const n = e, o = r, a = /* @__PURE__ */ D(!1), i = /* @__PURE__ */ D(0), s = /* @__PURE__ */ D(0), l = /* @__PURE__ */ D([]), c = /* @__PURE__ */ D(null);
|
|
6971
|
-
async function f(x,
|
|
6972
|
-
a.value = !0, i.value = x.clientX, s.value = x.clientY, l.value =
|
|
6971
|
+
async function f(x, _) {
|
|
6972
|
+
a.value = !0, i.value = x.clientX, s.value = x.clientY, l.value = _, await qt(), h();
|
|
6973
6973
|
}
|
|
6974
6974
|
function h() {
|
|
6975
6975
|
const x = c.value;
|
|
6976
6976
|
if (!x || typeof window > "u") return;
|
|
6977
|
-
const
|
|
6978
|
-
s.value +
|
|
6977
|
+
const _ = x.getBoundingClientRect(), y = 8, $ = window.innerWidth, T = window.innerHeight;
|
|
6978
|
+
s.value + _.height > T - y && (s.value = Math.max(y, T - _.height - y)), i.value + _.width > $ - y && (i.value = Math.max(y, $ - _.width - y));
|
|
6979
6979
|
}
|
|
6980
6980
|
function g() {
|
|
6981
6981
|
a.value = !1;
|
|
@@ -6999,7 +6999,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
6999
6999
|
(x = L == null ? void 0 : L.removeEventListener) == null || x.call(L, "change", M);
|
|
7000
7000
|
});
|
|
7001
7001
|
const Q = xe(() => `fe-ctx-backdrop--theme-${n.theme || "auto"}`);
|
|
7002
|
-
return t({ show: f, hide: g }), (x,
|
|
7002
|
+
return t({ show: f, hide: g }), (x, _) => (k(), Ze(cc, { to: "body" }, [
|
|
7003
7003
|
Ee(Cr, { name: "fe-ctx" }, {
|
|
7004
7004
|
default: tt(() => [
|
|
7005
7005
|
a.value ? (k(), A("div", {
|
|
@@ -7016,22 +7016,22 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
7016
7016
|
class: "fe-ctx",
|
|
7017
7017
|
role: "menu",
|
|
7018
7018
|
style: vr({ top: s.value + "px", left: i.value + "px" }),
|
|
7019
|
-
onClick:
|
|
7019
|
+
onClick: _[0] || (_[0] = He(() => {
|
|
7020
7020
|
}, ["stop"]))
|
|
7021
7021
|
}, [
|
|
7022
|
-
(k(!0), A(ke, null, Qe(b.value, (
|
|
7023
|
-
key:
|
|
7022
|
+
(k(!0), A(ke, null, Qe(b.value, (y, $) => (k(), A(ke, {
|
|
7023
|
+
key: y.key || $
|
|
7024
7024
|
}, [
|
|
7025
|
-
|
|
7025
|
+
y.divider ? (k(), A("div", wu)) : (k(), A("button", {
|
|
7026
7026
|
key: 1,
|
|
7027
7027
|
type: "button",
|
|
7028
|
-
class: Re(["fe-ctx__item", { "is-danger":
|
|
7029
|
-
disabled:
|
|
7028
|
+
class: Re(["fe-ctx__item", { "is-danger": y.danger, "is-disabled": y.disabled }]),
|
|
7029
|
+
disabled: y.disabled,
|
|
7030
7030
|
role: "menuitem",
|
|
7031
|
-
onClick: (
|
|
7031
|
+
onClick: (T) => C(y)
|
|
7032
7032
|
}, [
|
|
7033
|
-
|
|
7034
|
-
v("span", Su, S(
|
|
7033
|
+
y.icon ? (k(), A("span", Cu, S(y.icon), 1)) : le("", !0),
|
|
7034
|
+
v("span", Su, S(y.label), 1)
|
|
7035
7035
|
], 10, ku))
|
|
7036
7036
|
], 64))), 128))
|
|
7037
7037
|
], 4)
|
|
@@ -7696,28 +7696,28 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
7696
7696
|
diff: "diff",
|
|
7697
7697
|
patch: "diff"
|
|
7698
7698
|
}, f = ["txt", "log"], h = ["docx", "doc", "xlsx", "xls", "pptx", "ppt", "odt", "ods", "odp", "rtf"], g = {
|
|
7699
|
-
glb: () => import("./Viewer3D-
|
|
7700
|
-
gltf: () => import("./Viewer3D-
|
|
7701
|
-
obj: () => import("./Viewer3D-
|
|
7702
|
-
stl: () => import("./Viewer3D-
|
|
7703
|
-
fbx: () => import("./Viewer3D-
|
|
7704
|
-
"3ds": () => import("./Viewer3D-
|
|
7705
|
-
epub: () => import("./EpubViewer-
|
|
7706
|
-
mmd: () => import("./MermaidViewer-
|
|
7707
|
-
mermaid: () => import("./MermaidViewer-
|
|
7708
|
-
drawio: () => import("./DrawioViewer-
|
|
7709
|
-
dio: () => import("./DrawioViewer-
|
|
7710
|
-
tif: () => import("./TiffViewer-
|
|
7711
|
-
tiff: () => import("./TiffViewer-
|
|
7712
|
-
psd: () => import("./PsdViewer-
|
|
7699
|
+
glb: () => import("./Viewer3D-DtT-hBa3.js"),
|
|
7700
|
+
gltf: () => import("./Viewer3D-DtT-hBa3.js"),
|
|
7701
|
+
obj: () => import("./Viewer3D-DtT-hBa3.js"),
|
|
7702
|
+
stl: () => import("./Viewer3D-DtT-hBa3.js"),
|
|
7703
|
+
fbx: () => import("./Viewer3D-DtT-hBa3.js"),
|
|
7704
|
+
"3ds": () => import("./Viewer3D-DtT-hBa3.js"),
|
|
7705
|
+
epub: () => import("./EpubViewer-mCV3ZEXb.js"),
|
|
7706
|
+
mmd: () => import("./MermaidViewer-B0Q0ghbV.js"),
|
|
7707
|
+
mermaid: () => import("./MermaidViewer-B0Q0ghbV.js"),
|
|
7708
|
+
drawio: () => import("./DrawioViewer-uEJbt6hj.js"),
|
|
7709
|
+
dio: () => import("./DrawioViewer-uEJbt6hj.js"),
|
|
7710
|
+
tif: () => import("./TiffViewer-PXjYKqzo.js"),
|
|
7711
|
+
tiff: () => import("./TiffViewer-PXjYKqzo.js"),
|
|
7712
|
+
psd: () => import("./PsdViewer-lk6xrjRB.js"),
|
|
7713
7713
|
// PDF deliberately uses the native browser viewer (`kind === 'pdf'`
|
|
7714
7714
|
// branch in the template). PdfViewer.vue still exists for callers
|
|
7715
7715
|
// that want the rich custom UI but the SFC default keeps things
|
|
7716
7716
|
// minimal — the browser already paints search/zoom/page UI for free.
|
|
7717
|
-
ipynb: () => import("./IpynbViewer-
|
|
7718
|
-
csv: () => import("./CsvViewer-
|
|
7719
|
-
tsv: () => import("./CsvViewer-
|
|
7720
|
-
zip: () => import("./ArchiveViewer-
|
|
7717
|
+
ipynb: () => import("./IpynbViewer-B3g-lJfV.js"),
|
|
7718
|
+
csv: () => import("./CsvViewer-CrwZZqmq.js"),
|
|
7719
|
+
tsv: () => import("./CsvViewer-CrwZZqmq.js"),
|
|
7720
|
+
zip: () => import("./ArchiveViewer-BotnnnoW.js")
|
|
7721
7721
|
}, C = xe(() => {
|
|
7722
7722
|
const V = a(r.file);
|
|
7723
7723
|
if (!V) return "other";
|
|
@@ -7755,17 +7755,17 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
7755
7755
|
return r.file && (P.filePath = ee(r.file.path), (V === "zip" || V === "rar" || V === "7z" || V === "tar" || V === "gz" || V === "tgz") && (P.filePath = r.file.path)), (V === "drawio" || V === "dio") && (P.drawioUrl = r.drawioUrl ?? void 0, P.saveUrl = r.saveTextEndpoint ?? void 0, P.readOnly = r.openMode === "view"), V === "pdf" && (P.pdfWorkerUrl = r.pdfWorkerUrl ?? void 0, P.pdfSaveUrl = r.pdfSaveUrl ?? void 0), P;
|
|
7756
7756
|
});
|
|
7757
7757
|
function x() {
|
|
7758
|
-
|
|
7758
|
+
y(r.openMode || "edit");
|
|
7759
7759
|
}
|
|
7760
|
-
function
|
|
7761
|
-
|
|
7760
|
+
function _() {
|
|
7761
|
+
y("edit");
|
|
7762
7762
|
}
|
|
7763
|
-
function
|
|
7763
|
+
function y(V) {
|
|
7764
7764
|
if (!r.file) return;
|
|
7765
7765
|
const P = a(r.file), W = r.viewerBaseUrl || "/files/edit", be = W.includes("?") ? "&" : "?", we = `${W}${be}path=${encodeURIComponent(r.file.path)}&type=${encodeURIComponent(P)}&mode=${encodeURIComponent(V)}`;
|
|
7766
7766
|
window.open(we, "_blank", "noopener");
|
|
7767
7767
|
}
|
|
7768
|
-
const
|
|
7768
|
+
const $ = /* @__PURE__ */ new Set([
|
|
7769
7769
|
// OnlyOffice — open the in-page office editor (or new tab) with
|
|
7770
7770
|
// edit permissions.
|
|
7771
7771
|
"docx",
|
|
@@ -7833,8 +7833,8 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
7833
7833
|
"dockerfile",
|
|
7834
7834
|
"graphql",
|
|
7835
7835
|
"gql"
|
|
7836
|
-
]),
|
|
7837
|
-
() => !!r.file &&
|
|
7836
|
+
]), T = xe(
|
|
7837
|
+
() => !!r.file && $.has(a(r.file))
|
|
7838
7838
|
), O = xe(() => r.file ? r.previewUrl(r.file.path) : ""), U = xe(() => r.file ? r.downloadUrl(r.file.path) : "");
|
|
7839
7839
|
function ee(V) {
|
|
7840
7840
|
const P = V.indexOf("://");
|
|
@@ -8231,11 +8231,11 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
8231
8231
|
onClose: P[2] || (P[2] = (be) => n("close"))
|
|
8232
8232
|
}, {
|
|
8233
8233
|
actions: tt(() => [
|
|
8234
|
-
e.file && e.openMode === "view" &&
|
|
8234
|
+
e.file && e.openMode === "view" && T.value ? (k(), A("button", {
|
|
8235
8235
|
key: 0,
|
|
8236
8236
|
type: "button",
|
|
8237
8237
|
class: "fe-btn fe-btn--primary",
|
|
8238
|
-
onClick:
|
|
8238
|
+
onClick: _
|
|
8239
8239
|
}, "✏ Düzenle")) : le("", !0),
|
|
8240
8240
|
e.file ? (k(), A("button", {
|
|
8241
8241
|
key: 1,
|
|
@@ -8454,83 +8454,83 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
8454
8454
|
emits: ["close", "done"],
|
|
8455
8455
|
setup(e, { emit: t }) {
|
|
8456
8456
|
const r = e, n = t, o = /* @__PURE__ */ D(null), a = /* @__PURE__ */ D("loading"), i = /* @__PURE__ */ D(null), s = /* @__PURE__ */ D([]), l = /* @__PURE__ */ D(""), c = /* @__PURE__ */ D(null), f = xe(() => (r.fileName.split(".").pop() || "").toLowerCase()), h = xe(() => {
|
|
8457
|
-
const
|
|
8458
|
-
return
|
|
8457
|
+
const _ = s.value.filter((y) => y.from);
|
|
8458
|
+
return _.find((y) => (y.ext || "").toLowerCase() === f.value) || _.find((y) => (y.format || "").toLowerCase() === f.value) || null;
|
|
8459
8459
|
}), g = xe(() => {
|
|
8460
|
-
const
|
|
8461
|
-
for (const
|
|
8462
|
-
if (
|
|
8463
|
-
const O = (
|
|
8464
|
-
!O ||
|
|
8465
|
-
}
|
|
8466
|
-
return
|
|
8467
|
-
(
|
|
8468
|
-
) :
|
|
8460
|
+
const _ = l.value.trim().toLowerCase(), y = /* @__PURE__ */ new Set(), $ = [];
|
|
8461
|
+
for (const T of s.value) {
|
|
8462
|
+
if (!T.to) continue;
|
|
8463
|
+
const O = (T.ext || T.format || "").toLowerCase();
|
|
8464
|
+
!O || y.has(O) || (y.add(O), $.push(T));
|
|
8465
|
+
}
|
|
8466
|
+
return $.sort((T, O) => (T.ext || T.format).localeCompare(O.ext || O.format)), _ ? $.filter(
|
|
8467
|
+
(T) => (T.ext || "").toLowerCase().includes(_) || (T.format || "").toLowerCase().includes(_) || (T.name || "").toLowerCase().includes(_) || (T.mime || "").toLowerCase().includes(_)
|
|
8468
|
+
) : $;
|
|
8469
8469
|
}), C = xe(() => `${r.convertUrl.replace(/\/$/, "")}/?embed=1`);
|
|
8470
8470
|
let w = 0;
|
|
8471
8471
|
const b = /* @__PURE__ */ new Map();
|
|
8472
|
-
function R(
|
|
8473
|
-
const
|
|
8472
|
+
function R(_, y = {}, $ = []) {
|
|
8473
|
+
const T = ++w;
|
|
8474
8474
|
return new Promise((O, U) => {
|
|
8475
8475
|
var ee, X;
|
|
8476
|
-
b.set(
|
|
8477
|
-
b.has(
|
|
8476
|
+
b.set(T, { resolve: O, reject: U }), (X = (ee = o.value) == null ? void 0 : ee.contentWindow) == null || X.postMessage({ target: "convert-embed", id: T, cmd: _, ...y }, "*", $), setTimeout(() => {
|
|
8477
|
+
b.has(T) && (b.delete(T), U(new Error("convert timeout")));
|
|
8478
8478
|
}, 18e4);
|
|
8479
8479
|
});
|
|
8480
8480
|
}
|
|
8481
|
-
function L(
|
|
8482
|
-
const
|
|
8483
|
-
if (!
|
|
8484
|
-
if (
|
|
8481
|
+
function L(_) {
|
|
8482
|
+
const y = _.data;
|
|
8483
|
+
if (!y || y.source !== "convert-embed") return;
|
|
8484
|
+
if (y.event === "ready") {
|
|
8485
8485
|
M();
|
|
8486
8486
|
return;
|
|
8487
8487
|
}
|
|
8488
|
-
const
|
|
8489
|
-
|
|
8488
|
+
const $ = b.get(y.id);
|
|
8489
|
+
$ && (b.delete(y.id), y.ok ? $.resolve(y) : $.reject(new Error(y.error || "convert error")));
|
|
8490
8490
|
}
|
|
8491
8491
|
async function M() {
|
|
8492
8492
|
try {
|
|
8493
|
-
const
|
|
8494
|
-
s.value =
|
|
8495
|
-
} catch (
|
|
8496
|
-
i.value =
|
|
8493
|
+
const _ = await R("listFormats");
|
|
8494
|
+
s.value = _.formats || [], a.value = "ready", h.value || (i.value = x("convert.unsupportedInput", "Bu dosya tipi için kaynak format bulunamadı."));
|
|
8495
|
+
} catch (_) {
|
|
8496
|
+
i.value = _.message, a.value = "error";
|
|
8497
8497
|
}
|
|
8498
8498
|
}
|
|
8499
8499
|
async function Q() {
|
|
8500
8500
|
if (!(!c.value || !h.value)) {
|
|
8501
8501
|
a.value = "converting", i.value = null;
|
|
8502
8502
|
try {
|
|
8503
|
-
const
|
|
8503
|
+
const _ = await r.fetchBytes(), y = await R(
|
|
8504
8504
|
"convert",
|
|
8505
|
-
{ name: r.fileName, bytes:
|
|
8506
|
-
[
|
|
8507
|
-
),
|
|
8505
|
+
{ name: r.fileName, bytes: _, fromIndex: h.value.index, toIndex: c.value.index },
|
|
8506
|
+
[_]
|
|
8507
|
+
), $ = r.fileName.replace(/\.[^.]+$/, ""), T = y.ext || c.value.ext || c.value.format, O = `${$}.${T}`, U = new File([y.bytes], O, { type: c.value.mime || "application/octet-stream" });
|
|
8508
8508
|
await r.upload(U), a.value = "done", n("done", O);
|
|
8509
|
-
} catch (
|
|
8510
|
-
i.value =
|
|
8509
|
+
} catch (_) {
|
|
8510
|
+
i.value = _.message, a.value = "error";
|
|
8511
8511
|
}
|
|
8512
8512
|
}
|
|
8513
8513
|
}
|
|
8514
|
-
function x(
|
|
8515
|
-
return r.t ? r.t(
|
|
8514
|
+
function x(_, y) {
|
|
8515
|
+
return r.t ? r.t(_, y) : y;
|
|
8516
8516
|
}
|
|
8517
|
-
return Tt(() => window.addEventListener("message", L)), Lt(() => window.removeEventListener("message", L)), (
|
|
8517
|
+
return Tt(() => window.addEventListener("message", L)), Lt(() => window.removeEventListener("message", L)), (_, y) => (k(), A("div", {
|
|
8518
8518
|
class: "filex-cv__bg",
|
|
8519
|
-
onClick:
|
|
8519
|
+
onClick: y[3] || (y[3] = He(($) => n("close"), ["self"]))
|
|
8520
8520
|
}, [
|
|
8521
8521
|
v("div", av, [
|
|
8522
8522
|
v("header", iv, [
|
|
8523
8523
|
v("h3", null, S(x("convert.title", "Dönüştür")) + " — " + S(e.fileName), 1),
|
|
8524
8524
|
v("button", {
|
|
8525
8525
|
class: "filex-cv__x",
|
|
8526
|
-
onClick:
|
|
8526
|
+
onClick: y[0] || (y[0] = ($) => n("close"))
|
|
8527
8527
|
}, "✕")
|
|
8528
8528
|
]),
|
|
8529
8529
|
a.value === "loading" ? (k(), A("div", sv, S(x("convert.loading", "Dönüştürücü yükleniyor…")), 1)) : a.value === "done" ? (k(), A("div", lv, [
|
|
8530
8530
|
v("p", null, "✓ " + S(x("convert.done", "Dönüştürüldü ve klasöre yüklendi.")), 1),
|
|
8531
8531
|
v("button", {
|
|
8532
8532
|
class: "filex-cv__convert",
|
|
8533
|
-
onClick:
|
|
8533
|
+
onClick: y[1] || (y[1] = ($) => n("close"))
|
|
8534
8534
|
}, S(x("convert.close", "Kapat")), 1)
|
|
8535
8535
|
])) : (k(), A(ke, { key: 2 }, [
|
|
8536
8536
|
v("p", cv, [
|
|
@@ -8538,22 +8538,22 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
8538
8538
|
v("b", null, S(f.value || "?"), 1)
|
|
8539
8539
|
]),
|
|
8540
8540
|
Ke(v("input", {
|
|
8541
|
-
"onUpdate:modelValue":
|
|
8541
|
+
"onUpdate:modelValue": y[2] || (y[2] = ($) => l.value = $),
|
|
8542
8542
|
class: "filex-cv__search",
|
|
8543
8543
|
placeholder: x("convert.searchFmt", "Hedef format ara (pdf, mp4, png…)")
|
|
8544
8544
|
}, null, 8, fv), [
|
|
8545
8545
|
[mt, l.value]
|
|
8546
8546
|
]),
|
|
8547
8547
|
v("div", dv, [
|
|
8548
|
-
(k(!0), A(ke, null, Qe(g.value, (
|
|
8549
|
-
var
|
|
8548
|
+
(k(!0), A(ke, null, Qe(g.value, ($) => {
|
|
8549
|
+
var T;
|
|
8550
8550
|
return k(), A("button", {
|
|
8551
|
-
key:
|
|
8552
|
-
class: Re(["filex-cv__fmt", { "is-sel": ((
|
|
8553
|
-
onClick: (O) => c.value =
|
|
8551
|
+
key: $.index,
|
|
8552
|
+
class: Re(["filex-cv__fmt", { "is-sel": ((T = c.value) == null ? void 0 : T.index) === $.index }]),
|
|
8553
|
+
onClick: (O) => c.value = $
|
|
8554
8554
|
}, [
|
|
8555
|
-
v("b", null, S((
|
|
8556
|
-
v("small", null, S(
|
|
8555
|
+
v("b", null, S(($.ext || $.format).toUpperCase()), 1),
|
|
8556
|
+
v("small", null, S($.name), 1)
|
|
8557
8557
|
], 10, uv);
|
|
8558
8558
|
}), 128)),
|
|
8559
8559
|
g.value.length === 0 ? (k(), A("div", pv, S(x("convert.noFmt", "Eşleşen format yok.")), 1)) : le("", !0)
|
|
@@ -8658,16 +8658,16 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
8658
8658
|
const i = xe(() => {
|
|
8659
8659
|
const j = /^([^:]+):\/\/(.*)$/.exec(r.path), I = j ? j[1] : "", oe = j ? j[2] : r.path, Te = oe.split("/").filter(Boolean);
|
|
8660
8660
|
return { adapter: I, name: Te.length ? Te[Te.length - 1] : I, rel: oe };
|
|
8661
|
-
}), s = /* @__PURE__ */ D("perms"), l = /* @__PURE__ */ D(!1), c = /* @__PURE__ */ D(!0), f = /* @__PURE__ */ D(""), h = /* @__PURE__ */ D([]), g = /* @__PURE__ */ D([]), C = /* @__PURE__ */ D(!0), w = /* @__PURE__ */ D(""), b = /* @__PURE__ */ D("viewer"), R = /* @__PURE__ */ D(!1), L = /* @__PURE__ */ D(""), M = /* @__PURE__ */ D(!1), Q = /* @__PURE__ */ D("user"), x = /* @__PURE__ */ D(null),
|
|
8662
|
-
let
|
|
8663
|
-
const
|
|
8661
|
+
}), s = /* @__PURE__ */ D("perms"), l = /* @__PURE__ */ D(!1), c = /* @__PURE__ */ D(!0), f = /* @__PURE__ */ D(""), h = /* @__PURE__ */ D([]), g = /* @__PURE__ */ D([]), C = /* @__PURE__ */ D(!0), w = /* @__PURE__ */ D(""), b = /* @__PURE__ */ D("viewer"), R = /* @__PURE__ */ D(!1), L = /* @__PURE__ */ D(""), M = /* @__PURE__ */ D(!1), Q = /* @__PURE__ */ D("user"), x = /* @__PURE__ */ D(null), _ = /* @__PURE__ */ D([]), y = /* @__PURE__ */ D(!1);
|
|
8662
|
+
let $;
|
|
8663
|
+
const T = [
|
|
8664
8664
|
{ v: "viewer", l: a("Görüntüleyen", "Viewer"), d: a("görüntüle + indir", "view + download") },
|
|
8665
8665
|
{ v: "editor", l: a("Düzenleyen", "Editor"), d: a("oku + yaz + sil", "read + write + delete") },
|
|
8666
8666
|
{ v: "owner", l: a("Sahip", "Owner"), d: a("düzenle + izin yönet", "edit + manage access") }
|
|
8667
8667
|
];
|
|
8668
8668
|
function O(j) {
|
|
8669
8669
|
var I;
|
|
8670
|
-
return ((I =
|
|
8670
|
+
return ((I = T.find((oe) => oe.v === j)) == null ? void 0 : I.l) ?? j;
|
|
8671
8671
|
}
|
|
8672
8672
|
const U = /* @__PURE__ */ D([]), ee = /* @__PURE__ */ D(!1), X = /* @__PURE__ */ D(!1), ue = /* @__PURE__ */ D(0), fe = /* @__PURE__ */ D(null), Se = /* @__PURE__ */ D(""), ge = /* @__PURE__ */ D(""), pe = /* @__PURE__ */ D(""), he = /* @__PURE__ */ D(!1), Pe = /* @__PURE__ */ D(""), We = [
|
|
8673
8673
|
{ v: 0, l: a("Süresiz", "Never") },
|
|
@@ -8710,30 +8710,30 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
8710
8710
|
Tt(async () => {
|
|
8711
8711
|
await z(), await N();
|
|
8712
8712
|
}), Lt(() => {
|
|
8713
|
-
|
|
8713
|
+
$ && clearTimeout($);
|
|
8714
8714
|
});
|
|
8715
8715
|
function te() {
|
|
8716
8716
|
M.value = !1, x.value = null, L.value = "";
|
|
8717
8717
|
const j = w.value.trim();
|
|
8718
|
-
if (
|
|
8719
|
-
|
|
8718
|
+
if ($ && clearTimeout($), j.length < 1) {
|
|
8719
|
+
_.value = [], y.value = !1;
|
|
8720
8720
|
return;
|
|
8721
8721
|
}
|
|
8722
|
-
|
|
8722
|
+
$ = setTimeout(async () => {
|
|
8723
8723
|
try {
|
|
8724
8724
|
const I = await r.api.searchUsers(j);
|
|
8725
|
-
|
|
8725
|
+
_.value = I.users ?? [], y.value = _.value.length > 0;
|
|
8726
8726
|
} catch {
|
|
8727
|
-
|
|
8727
|
+
y.value = !1;
|
|
8728
8728
|
}
|
|
8729
8729
|
}, 180);
|
|
8730
8730
|
}
|
|
8731
8731
|
async function Z(j) {
|
|
8732
|
-
|
|
8732
|
+
y.value = !1, w.value = j.email;
|
|
8733
8733
|
let I = b.value;
|
|
8734
8734
|
j.role === "viewer" && I !== "viewer" && (I = "viewer"), R.value = !0, L.value = "";
|
|
8735
8735
|
try {
|
|
8736
|
-
await r.api.addPermission({ path: r.path, user_id: j.id, level: I, is_dir: !!r.isDir }), w.value = "",
|
|
8736
|
+
await r.api.addPermission({ path: r.path, user_id: j.id, level: I, is_dir: !!r.isDir }), w.value = "", _.value = [], await z(), L.value = a("Yetki verildi.", "Access granted.");
|
|
8737
8737
|
} catch (oe) {
|
|
8738
8738
|
L.value = oe instanceof Error ? oe.message : String(oe);
|
|
8739
8739
|
} finally {
|
|
@@ -8746,7 +8746,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
8746
8746
|
L.value = a("Geçerli bir e-posta girin.", "Enter a valid email.");
|
|
8747
8747
|
return;
|
|
8748
8748
|
}
|
|
8749
|
-
|
|
8749
|
+
y.value = !1, R.value = !0, L.value = "", x.value = null;
|
|
8750
8750
|
try {
|
|
8751
8751
|
const I = await r.api.resolveEmail(j);
|
|
8752
8752
|
if (I.found && I.user) {
|
|
@@ -8988,8 +8988,8 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
8988
8988
|
}, null, 40, Iv), [
|
|
8989
8989
|
[mt, w.value]
|
|
8990
8990
|
]),
|
|
8991
|
-
|
|
8992
|
-
(k(!0), A(ke, null, Qe(
|
|
8991
|
+
y.value ? (k(), A("ul", Rv, [
|
|
8992
|
+
(k(!0), A(ke, null, Qe(_.value, (Y) => (k(), A("li", {
|
|
8993
8993
|
key: Y.id,
|
|
8994
8994
|
onMousedown: He((Le) => Z(Y), ["prevent"])
|
|
8995
8995
|
}, [
|
|
@@ -9004,9 +9004,9 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
9004
9004
|
Ke(v("select", {
|
|
9005
9005
|
"onUpdate:modelValue": I[5] || (I[5] = (Y) => b.value = Y),
|
|
9006
9006
|
class: "fx-perm-sel",
|
|
9007
|
-
title: (oe =
|
|
9007
|
+
title: (oe = T.find((Y) => Y.v === b.value)) == null ? void 0 : oe.d
|
|
9008
9008
|
}, [
|
|
9009
|
-
(k(), A(ke, null, Qe(
|
|
9009
|
+
(k(), A(ke, null, Qe(T, (Y) => v("option", {
|
|
9010
9010
|
key: Y.v,
|
|
9011
9011
|
value: Y.v
|
|
9012
9012
|
}, S(Y.l), 9, Kv)), 64))
|
|
@@ -9068,7 +9068,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
9068
9068
|
value: Y.level,
|
|
9069
9069
|
onChange: (Le) => re(Y, Le.target.value)
|
|
9070
9070
|
}, [
|
|
9071
|
-
(k(), A(ke, null, Qe(
|
|
9071
|
+
(k(), A(ke, null, Qe(T, (Le) => v("option", {
|
|
9072
9072
|
key: Le.v,
|
|
9073
9073
|
value: Le.v
|
|
9074
9074
|
}, S(Le.l), 9, ih)), 64))
|
|
@@ -9344,7 +9344,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
9344
9344
|
]);
|
|
9345
9345
|
};
|
|
9346
9346
|
}
|
|
9347
|
-
}), sm = /* @__PURE__ */ rn(im, [["__scopeId", "data-v-
|
|
9347
|
+
}), sm = /* @__PURE__ */ rn(im, [["__scopeId", "data-v-2f29f6ce"]]), lm = {
|
|
9348
9348
|
key: 0,
|
|
9349
9349
|
class: "fe__loading"
|
|
9350
9350
|
}, cm = { class: "fe__loading-text" }, fm = {
|
|
@@ -9394,11 +9394,11 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
9394
9394
|
}
|
|
9395
9395
|
}
|
|
9396
9396
|
};
|
|
9397
|
-
}), L = /* @__PURE__ */ D(""), M = /* @__PURE__ */ D(!1), Q = /* @__PURE__ */ D(""), x = xe(() => M.value),
|
|
9397
|
+
}), L = /* @__PURE__ */ D(""), M = /* @__PURE__ */ D(!1), Q = /* @__PURE__ */ D(""), x = xe(() => M.value), _ = xe(() => r.config.locale || "tr"), y = xe(() => {
|
|
9398
9398
|
const d = (h.value ?? "").replace(/^\/+|\/+$/g, "");
|
|
9399
9399
|
return c && d === c ? !1 : d.length > 0;
|
|
9400
|
-
}),
|
|
9401
|
-
function
|
|
9400
|
+
}), $ = xe(() => W.value ? !(h.value ?? "").replace(/^\/+|\/+$/g, "") : !1);
|
|
9401
|
+
function T() {
|
|
9402
9402
|
if (M.value) {
|
|
9403
9403
|
oe(Q.value);
|
|
9404
9404
|
return;
|
|
@@ -9409,7 +9409,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
9409
9409
|
let B = u === -1 ? "" : d.slice(0, u);
|
|
9410
9410
|
c && !(B === c || B.startsWith(c + "/")) && (B = c), oe(B);
|
|
9411
9411
|
}
|
|
9412
|
-
const { t: O } = wt(
|
|
9412
|
+
const { t: O } = wt(_), U = Qf(() => w.value);
|
|
9413
9413
|
ct(
|
|
9414
9414
|
() => [...U.selected.value],
|
|
9415
9415
|
() => {
|
|
@@ -9673,7 +9673,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
9673
9673
|
onCut: () => Bs(),
|
|
9674
9674
|
onCopy: () => Fs(),
|
|
9675
9675
|
onPaste: () => Wo(),
|
|
9676
|
-
onGoUp: () =>
|
|
9676
|
+
onGoUp: () => T(),
|
|
9677
9677
|
hasSelection: () => !U.isEmpty.value
|
|
9678
9678
|
});
|
|
9679
9679
|
const Ts = /* @__PURE__ */ new Set([
|
|
@@ -9834,7 +9834,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
9834
9834
|
});
|
|
9835
9835
|
function Vo(d) {
|
|
9836
9836
|
var ea, ta;
|
|
9837
|
-
const u = d.length > 0, B = d.length === 1, q = B && ((ea = d[0]) == null ? void 0 : ea.type) === "file", me =
|
|
9837
|
+
const u = d.length > 0, B = d.length === 1, q = B && ((ea = d[0]) == null ? void 0 : ea.type) === "file", me = _.value === "en" ? "Tags…" : "Etiketler…", ie = B && typeof ((ta = d[0]) == null ? void 0 : ta.id) == "number", Ve = _.value === "en" ? "Copy node id" : "Node id'yi kopyala", rt = se(d), Xe = re(rt), fl = _.value === "en" ? "Share / Permissions" : "Paylaş / İzinler";
|
|
9838
9838
|
return [
|
|
9839
9839
|
{ key: "open", label: O("ctx.open"), icon: "↗", hidden: !B },
|
|
9840
9840
|
{ key: "preview", label: O("ctx.preview"), icon: "👁", hidden: !B, disabled: !q },
|
|
@@ -9895,7 +9895,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
9895
9895
|
if (u[0] && typeof u[0].id == "number") {
|
|
9896
9896
|
const q = u[0].id;
|
|
9897
9897
|
(B = navigator.clipboard) == null || B.writeText(String(q)).then(
|
|
9898
|
-
() => P(
|
|
9898
|
+
() => P(_.value === "en" ? `Node id ${q} copied` : `Node id ${q} kopyalandı`),
|
|
9899
9899
|
() => P(`#${q}`)
|
|
9900
9900
|
);
|
|
9901
9901
|
}
|
|
@@ -10012,7 +10012,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10012
10012
|
G.value = d, Z.value = !0;
|
|
10013
10013
|
}
|
|
10014
10014
|
function Gs(d) {
|
|
10015
|
-
P(
|
|
10015
|
+
P(_.value === "en" ? `Converted → ${d}` : `Dönüştürüldü → ${d}`), oe();
|
|
10016
10016
|
}
|
|
10017
10017
|
async function Js(d) {
|
|
10018
10018
|
const u = F.value;
|
|
@@ -10036,7 +10036,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10036
10036
|
function Qs() {
|
|
10037
10037
|
var d;
|
|
10038
10038
|
if (!de.value) {
|
|
10039
|
-
P(
|
|
10039
|
+
P(_.value === "en" ? "Read-only here" : "Burada yazma yetkiniz yok");
|
|
10040
10040
|
return;
|
|
10041
10041
|
}
|
|
10042
10042
|
(d = Ue.value) == null || d.click();
|
|
@@ -10140,7 +10140,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10140
10140
|
return;
|
|
10141
10141
|
}
|
|
10142
10142
|
if (d.preventDefault(), nr.value = 0, or.value = !1, !de.value) {
|
|
10143
|
-
P(
|
|
10143
|
+
P(_.value === "en" ? "Read-only here" : "Burada yazma yetkiniz yok");
|
|
10144
10144
|
return;
|
|
10145
10145
|
}
|
|
10146
10146
|
const u = (q = d.dataTransfer) != null && q.files ? Array.from(d.dataTransfer.files) : [];
|
|
@@ -10269,16 +10269,16 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10269
10269
|
"selection-mode": Os.value,
|
|
10270
10270
|
"paste-enabled": !!ee.value.mode,
|
|
10271
10271
|
"convert-enabled": !!Je.value,
|
|
10272
|
-
"can-go-up":
|
|
10273
|
-
"at-virtual-root":
|
|
10272
|
+
"can-go-up": y.value,
|
|
10273
|
+
"at-virtual-root": $.value,
|
|
10274
10274
|
"can-write": de.value,
|
|
10275
|
-
locale:
|
|
10275
|
+
locale: _.value,
|
|
10276
10276
|
"onUpdate:viewMode": u[0] || (u[0] = (ie) => R.value = ie),
|
|
10277
10277
|
"onUpdate:searchQuery": u[1] || (u[1] = (ie) => L.value = ie),
|
|
10278
10278
|
onNewFolder: u[2] || (u[2] = (ie) => H.value = !0),
|
|
10279
10279
|
onUpload: Qs,
|
|
10280
10280
|
onRefresh: u[3] || (u[3] = () => oe()),
|
|
10281
|
-
onGoUp:
|
|
10281
|
+
onGoUp: T,
|
|
10282
10282
|
onAction: zs,
|
|
10283
10283
|
onOpenRecents: u[4] || (u[4] = (ie) => fe.value = !0)
|
|
10284
10284
|
}, null, 8, ["view-mode", "search-query", "trash-active", "actions", "selection-mode", "paste-enabled", "convert-enabled", "can-go-up", "at-virtual-root", "can-write", "locale"]),
|
|
@@ -10286,7 +10286,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10286
10286
|
dirname: C.value,
|
|
10287
10287
|
adapter: g.value,
|
|
10288
10288
|
"root-label": g.value,
|
|
10289
|
-
locale:
|
|
10289
|
+
locale: _.value,
|
|
10290
10290
|
"multi-storage-root": W.value,
|
|
10291
10291
|
"root-path": ne(l),
|
|
10292
10292
|
onNavigate: cl,
|
|
@@ -10310,7 +10310,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10310
10310
|
selected: ne(U).selected.value,
|
|
10311
10311
|
clipped: Kn.value,
|
|
10312
10312
|
"show-parent-path": !!L.value,
|
|
10313
|
-
locale:
|
|
10313
|
+
locale: _.value,
|
|
10314
10314
|
loading: s.value,
|
|
10315
10315
|
"starred-ids": ue.value,
|
|
10316
10316
|
"api-base": r.config.apiBase ?? "",
|
|
@@ -10327,7 +10327,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10327
10327
|
selected: ne(U).selected.value,
|
|
10328
10328
|
clipped: Kn.value,
|
|
10329
10329
|
"show-parent-path": !!L.value,
|
|
10330
|
-
locale:
|
|
10330
|
+
locale: _.value,
|
|
10331
10331
|
loading: s.value,
|
|
10332
10332
|
onClickCard: u[6] || (u[6] = (ie, Ve) => ne(U).click(ie.path, Ve)),
|
|
10333
10333
|
onDblCard: hr,
|
|
@@ -10344,46 +10344,46 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10344
10344
|
])])) : le("", !0),
|
|
10345
10345
|
Ee(Ru, {
|
|
10346
10346
|
jobs: ze.value,
|
|
10347
|
-
locale:
|
|
10347
|
+
locale: _.value,
|
|
10348
10348
|
onCancel: sl,
|
|
10349
10349
|
onDismiss: ll
|
|
10350
10350
|
}, null, 8, ["jobs", "locale"]),
|
|
10351
10351
|
Ee(Uu, {
|
|
10352
10352
|
ops: ne(i).ops.value,
|
|
10353
|
-
locale:
|
|
10353
|
+
locale: _.value,
|
|
10354
10354
|
onDismiss: u[8] || (u[8] = (ie) => ne(i).dismiss(ie))
|
|
10355
10355
|
}, null, 8, ["ops", "locale"]),
|
|
10356
10356
|
Ee($u, {
|
|
10357
10357
|
ref_key: "ctxRef",
|
|
10358
10358
|
ref: ye,
|
|
10359
|
-
locale:
|
|
10359
|
+
locale: _.value,
|
|
10360
10360
|
theme: e.config.theme || "auto",
|
|
10361
10361
|
actions: Ls.value,
|
|
10362
10362
|
onSelect: js
|
|
10363
10363
|
}, null, 8, ["locale", "theme", "actions"]),
|
|
10364
10364
|
Ee(Gu, {
|
|
10365
10365
|
open: H.value,
|
|
10366
|
-
locale:
|
|
10366
|
+
locale: _.value,
|
|
10367
10367
|
onClose: u[9] || (u[9] = (ie) => H.value = !1),
|
|
10368
10368
|
onSubmit: Vs
|
|
10369
10369
|
}, null, 8, ["open", "locale"]),
|
|
10370
10370
|
Ee(Xu, {
|
|
10371
10371
|
open: J.value,
|
|
10372
|
-
locale:
|
|
10372
|
+
locale: _.value,
|
|
10373
10373
|
"current-name": ((B = E.value) == null ? void 0 : B.basename) || "",
|
|
10374
10374
|
onClose: u[10] || (u[10] = (ie) => J.value = !1),
|
|
10375
10375
|
onSubmit: Hs
|
|
10376
10376
|
}, null, 8, ["open", "locale", "current-name"]),
|
|
10377
10377
|
Ee(Qu, {
|
|
10378
10378
|
open: ae.value,
|
|
10379
|
-
locale:
|
|
10379
|
+
locale: _.value,
|
|
10380
10380
|
count: ne(U).size.value,
|
|
10381
10381
|
onClose: u[11] || (u[11] = (ie) => ae.value = !1),
|
|
10382
10382
|
onConfirm: Ws
|
|
10383
10383
|
}, null, 8, ["open", "locale", "count"]),
|
|
10384
10384
|
Ee(up, {
|
|
10385
10385
|
open: p.value,
|
|
10386
|
-
locale:
|
|
10386
|
+
locale: _.value,
|
|
10387
10387
|
share: z.value,
|
|
10388
10388
|
onClose: Xs,
|
|
10389
10389
|
onSubmit: Js,
|
|
@@ -10391,7 +10391,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10391
10391
|
}, null, 8, ["open", "locale", "share"]),
|
|
10392
10392
|
Ee(ov, {
|
|
10393
10393
|
open: m.value,
|
|
10394
|
-
locale:
|
|
10394
|
+
locale: _.value,
|
|
10395
10395
|
file: N.value,
|
|
10396
10396
|
theme: e.config.theme || "auto",
|
|
10397
10397
|
"preview-url": (ie) => ne(o).previewUrl(ie),
|
|
@@ -10427,7 +10427,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10427
10427
|
path: ce.value.path,
|
|
10428
10428
|
"is-dir": ce.value.type === "dir",
|
|
10429
10429
|
size: typeof ce.value.size == "number" ? ce.value.size : void 0,
|
|
10430
|
-
locale:
|
|
10430
|
+
locale: _.value === "en" ? "en" : "tr",
|
|
10431
10431
|
onClose: u[14] || (u[14] = (ie) => K.value = !1)
|
|
10432
10432
|
}, null, 8, ["api", "path", "is-dir", "size", "locale"])) : le("", !0),
|
|
10433
10433
|
Ee(Cr, { name: "fe-modal" }, {
|
|
@@ -10446,7 +10446,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10446
10446
|
}, ["stop"]))
|
|
10447
10447
|
}, [
|
|
10448
10448
|
v("div", dm, [
|
|
10449
|
-
v("strong", null, S(
|
|
10449
|
+
v("strong", null, S(_.value === "en" ? "Recently opened" : "Son açılanlar"), 1),
|
|
10450
10450
|
v("button", {
|
|
10451
10451
|
class: "fe-recents__close",
|
|
10452
10452
|
"aria-label": "Close",
|
|
@@ -10479,7 +10479,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10479
10479
|
}, ["stop"]))
|
|
10480
10480
|
}, [
|
|
10481
10481
|
v("header", um, [
|
|
10482
|
-
v("h2", pm, S(
|
|
10482
|
+
v("h2", pm, S(_.value === "en" ? "Tags" : "Etiketler") + " — " + S(ge.value.basename), 1),
|
|
10483
10483
|
v("button", {
|
|
10484
10484
|
class: "fe-modal__close",
|
|
10485
10485
|
"aria-label": "Close",
|
|
@@ -10516,7 +10516,7 @@ const sd = { class: "fe-toolbar" }, ld = { class: "fe-toolbar__primary" }, cd =
|
|
|
10516
10516
|
], 34);
|
|
10517
10517
|
};
|
|
10518
10518
|
}
|
|
10519
|
-
}), gm = '.filex-tag-picker[data-v-629745b7]{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.filex-tag-picker.is-loading[data-v-629745b7]{opacity:.6;pointer-events:none}.filex-tag[data-v-629745b7]{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-629745b7]{background:transparent;border:none;color:#ffffffd9;cursor:pointer;padding:0 2px;font-size:14px;line-height:1}.filex-tag-x[data-v-629745b7]:hover{color:#fff}.filex-tag-add input[data-v-629745b7]{border:1px solid var(--filex-border, #d1d5db);border-radius:12px;padding:2px 10px;font-size:12px;width:110px}.filex-tag-add-btn[data-v-629745b7]{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-629745b7]:hover{border-color:var(--filex-accent, #6366f1);color:var(--filex-accent, #6366f1)}.filex-recent[data-v-be8c9080]{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-be8c9080]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.filex-recent h3[data-v-be8c9080]{margin:0;font-size:13px;font-weight:600;color:var(--fe-text, var(--filex-text, #111827))}.filex-recent-refresh[data-v-be8c9080]{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-be8c9080]{list-style:none;margin:0;padding:0}.filex-recent-item[data-v-be8c9080]{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-be8c9080]:hover{background:var(--fe-bg-hover, var(--filex-bg-soft, #f3f4f6))}.filex-recent-name[data-v-be8c9080]{color:var(--fe-text, var(--filex-text, #111827));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filex-recent-meta[data-v-be8c9080]{color:var(--fe-text-muted, var(--filex-text-muted, #9ca3af));font-size:11px;margin-left:8px;flex-shrink:0}.filex-recent-empty[data-v-be8c9080]{color:var(--fe-text-muted, var(--filex-text-muted, #9ca3af));margin:4px 0 0}.filex-star-btn[data-v-bf2ee8db]{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-bf2ee8db]:hover{color:var(--filex-accent-amber, #f59e0b);background:var(--filex-bg-soft, rgba(0, 0, 0, .04))}.filex-star-btn.is-starred[data-v-bf2ee8db]{color:var(--filex-accent-amber, #f59e0b)}.filex-star-btn.is-compact[data-v-bf2ee8db]{padding:4px}.filex-star-label[data-v-bf2ee8db]{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-4c90f457]{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-4c90f457]{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-4c90f457]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px 12px;flex:none}.fx-perm-title[data-v-4c90f457]{display:flex;align-items:center;gap:10px;min-width:0}.fx-perm-ico[data-v-4c90f457]{font-size:22px;line-height:1}.fx-perm-titletext[data-v-4c90f457]{display:flex;flex-direction:column;min-width:0}.fx-perm-title h3[data-v-4c90f457]{margin:0;font-size:15px;font-weight:600;color:var(--fe-text)}.fx-perm-sub[data-v-4c90f457]{font-size:12px;color:var(--fe-text);max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-perm-subdim[data-v-4c90f457]{color:var(--fe-text-muted)}.fx-perm-x[data-v-4c90f457]{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-4c90f457]:hover{color:var(--fe-text);background:var(--fe-bg-hover)}.fx-perm-tabs[data-v-4c90f457]{display:flex;gap:2px;padding:0 18px;border-bottom:1px solid var(--fe-border);flex:none}.fx-perm-tab[data-v-4c90f457]{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-4c90f457]:hover{color:var(--fe-text)}.fx-perm-tab.is-active[data-v-4c90f457]{color:var(--fe-primary);border-bottom-color:var(--fe-primary)}.fx-perm-body[data-v-4c90f457]{flex:1 1 auto;overflow-y:auto;padding:14px 18px 18px}.fx-perm-addcard[data-v-4c90f457]{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-4c90f457]{margin-top:16px}.fx-perm-section h4[data-v-4c90f457]{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fe-text-muted)}.fx-perm-empty[data-v-4c90f457]{color:var(--fe-text-muted);font-size:13px;padding:8px 2px}.fx-perm-person[data-v-4c90f457]{display:flex;align-items:center;gap:10px;padding:7px 2px}.fx-perm-person+.fx-perm-person[data-v-4c90f457]{border-top:1px solid var(--fe-border)}.fx-perm-inh[data-v-4c90f457]{color:var(--fe-text-muted)}.fx-perm-av[data-v-4c90f457]{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-4c90f457]{background:var(--fe-bg-hover);color:var(--fe-text-muted)}.fx-perm-user[data-v-4c90f457]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fe-text);min-width:0}.fx-perm-from[data-v-4c90f457]{font-size:11px;color:var(--fe-text-muted);white-space:nowrap}.fx-perm-badge[data-v-4c90f457]{font-size:11px;padding:2px 9px;border-radius:999px;background:var(--fe-bg-hover);color:var(--fe-text)}.fx-perm-sel[data-v-4c90f457],.fx-perm-input[data-v-4c90f457]{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-4c90f457]{padding:5px 7px;font-size:12px}.fx-perm-sel[data-v-4c90f457]:focus,.fx-perm-input[data-v-4c90f457]:focus{outline:none;border-color:var(--fe-primary)}.fx-perm-add[data-v-4c90f457]{display:flex;gap:8px;align-items:stretch}.fx-perm-emailwrap[data-v-4c90f457]{position:relative;flex:1;min-width:120px}.fx-perm-input[data-v-4c90f457]{width:100%;box-sizing:border-box}.fx-perm-suggest[data-v-4c90f457]{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-4c90f457]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer}.fx-perm-suggest li[data-v-4c90f457]:hover{background:var(--fe-bg-hover)}.fx-perm-suggest-av[data-v-4c90f457]{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-4c90f457]{display:flex;flex-direction:column;min-width:0}.fx-perm-suggest-name[data-v-4c90f457]{color:var(--fe-text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-perm-suggest-meta[data-v-4c90f457]{color:var(--fe-text-muted);font-size:11px}.fx-perm-check[data-v-4c90f457]{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--fe-text);cursor:pointer}.fx-perm-btn[data-v-4c90f457]{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-4c90f457]:hover:not(:disabled){background:var(--fe-bg-hover)}.fx-perm-btn[data-v-4c90f457]:disabled{opacity:.55;cursor:default}.fx-perm-btn--sm[data-v-4c90f457]{padding:5px 10px;font-size:12px}.fx-perm-btn--primary[data-v-4c90f457]{background:var(--fe-primary);border-color:var(--fe-primary);color:var(--fe-text-on-primary, #fff)}.fx-perm-btn--primary[data-v-4c90f457]:hover:not(:disabled){background:var(--fe-primary-hover, var(--fe-primary));filter:brightness(1.05)}.fx-perm-btn--ghost[data-v-4c90f457]{background:none;border-color:transparent;color:var(--fe-primary);padding-left:2px}.fx-perm-btn--ghost[data-v-4c90f457]:hover:not(:disabled){background:none;text-decoration:underline}.fx-perm-del[data-v-4c90f457]{background:none;border:none;color:var(--fe-danger);cursor:pointer;font-size:14px;flex:none;padding:2px 4px}.fx-perm-del[data-v-4c90f457]:hover:not(:disabled){filter:brightness(1.15)}.fx-perm-invite[data-v-4c90f457]{margin-top:10px;padding-top:10px;border-top:1px dashed var(--fe-border)}.fx-perm-invite-actions[data-v-4c90f457]{display:flex;flex-direction:column;gap:8px;margin-top:6px}.fx-perm-invite-row[data-v-4c90f457]{display:flex;gap:8px;align-items:stretch}.fx-perm-invite-row .fx-perm-btn--primary[data-v-4c90f457]{flex:1}.fx-perm-share-opts[data-v-4c90f457]{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.fx-perm-expiry[data-v-4c90f457]{display:inline-flex;gap:6px;align-items:center;font-size:13px}.fx-perm-share-opts .fx-perm-btn--primary[data-v-4c90f457]{margin-left:auto}.fx-perm-result[data-v-4c90f457]{margin-top:12px;padding-top:12px;border-top:1px solid var(--fe-border)}.fx-perm-linkrow[data-v-4c90f457]{display:flex;gap:8px;align-items:center}.fx-perm-link[data-v-4c90f457]{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-4c90f457]:hover{text-decoration:underline}.fx-perm-pin[data-v-4c90f457]{margin:8px 0 0;font-size:13px;color:var(--fe-text);display:flex;align-items:center;gap:8px}.fx-perm-pin code[data-v-4c90f457],.fx-perm-reveal code[data-v-4c90f457]{font-family:var(--fe-font-mono, monospace);background:var(--fe-bg-hover);padding:1px 6px;border-radius:5px}.fx-perm-mailrow[data-v-4c90f457]{display:flex;gap:8px;margin-top:10px}.fx-perm-mailrow .fx-perm-input[data-v-4c90f457]{flex:1}.fx-perm-hint[data-v-4c90f457]{font-size:13px;color:var(--fe-text-muted);margin:10px 0 0}.fx-perm-dropintro[data-v-4c90f457]{margin:0 0 12px;line-height:1.4}.fx-perm-advtoggle[data-v-4c90f457]{margin-top:10px;padding-left:2px}.fx-perm-adv[data-v-4c90f457]{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-4c90f457]{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.fx-perm-input--sm[data-v-4c90f457]{width:130px;padding:5px 8px;font-size:12px}.fx-perm-warn[data-v-4c90f457]{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-4c90f457]{margin-top:8px;font-size:13px;color:var(--fe-text-muted)}.fx-perm-reveal[data-v-4c90f457]{margin-top:8px;font-size:13px;word-break:break-all;color:var(--fe-text)}.fx-perm-muted[data-v-4c90f457]{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__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__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-78bcf18b]{width:100%;height:100%;min-height:480px;background:#1a1a1a;display:flex;align-items:center;justify-content:center}.filex-viewer-3d[data-v-78bcf18b] model-viewer{width:100%;height:100%;min-height:480px;background:#1a1a1a;display:block}.filex-viewer-fallback[data-v-78bcf18b]{text-align:center;color:#c8cdd6;padding:32px;max-width:480px}.filex-viewer-fallback__icon[data-v-78bcf18b]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-epub__nav[data-v-f9b72a2c]{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-f9b72a2c]{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-f9b72a2c]{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-f9b72a2c]{flex:1}.filex-viewer-epub__fs[data-v-f9b72a2c]{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-f9b72a2c]{flex:1;min-height:0;display:flex}.filex-viewer-epub__rendition[data-v-f9b72a2c]{flex:1;min-height:0}.filex-viewer-epub__toc[data-v-f9b72a2c]{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-f9b72a2c]{list-style:none;margin:0;padding:0}.filex-viewer-epub__toc-link[data-v-f9b72a2c]{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-f9b72a2c]:hover{background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-epub__toc-link.is-child[data-v-f9b72a2c]{padding-left:28px;color:var(--fe-text-muted, #5a6475);font-size:12px}.filex-viewer-epub__loading[data-v-f9b72a2c]{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-f9b72a2c]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-f9b72a2c]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-f9b72a2c]{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-f9b72a2c]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn[data-v-f9b72a2c]:disabled{opacity:.5;cursor:not-allowed}.filex-viewer-mermaid[data-v-fe0bf99e]{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-fe0bf99e]{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-fe0bf99e]{min-width:50px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-mermaid__pane[data-v-fe0bf99e]{flex:1;overflow:hidden;position:relative;cursor:grab;background:var(--fe-bg-elev, #f7f8fa);touch-action:none}.filex-viewer-mermaid__pane[data-v-fe0bf99e]:active{cursor:grabbing}.filex-viewer-mermaid__surface[data-v-fe0bf99e]{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-fe0bf99e] svg{max-width:90%;max-height:90%}.filex-viewer-fallback[data-v-fe0bf99e]{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-fe0bf99e]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-fe0bf99e]{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-fe0bf99e]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-drawio[data-v-2a88618e]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff)}.filex-viewer-drawio__bar[data-v-2a88618e]{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-2a88618e]{color:var(--fe-danger, #dc2626)}.filex-viewer-drawio__status[data-state=saved][data-v-2a88618e]{color:#059669}.filex-viewer-drawio__readonly[data-v-2a88618e]{font-style:italic;margin-left:auto}.filex-viewer-drawio__frame[data-v-2a88618e]{flex:1;width:100%;border:0;background:#fafafa;min-height:0}.filex-viewer-fallback[data-v-2a88618e]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-2a88618e]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-tiff__pager[data-v-e6d0bdb2]{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-e6d0bdb2]{font-size:12px;font-variant-numeric:tabular-nums}.filex-viewer-tiff[data-v-e6d0bdb2]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff)}.filex-viewer-tiff__bar[data-v-e6d0bdb2]{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-e6d0bdb2]{min-width:110px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-tiff__zoom[data-v-e6d0bdb2]{min-width:50px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-spacer[data-v-e6d0bdb2]{flex:1}.filex-viewer-tiff__pane[data-v-e6d0bdb2]{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-e6d0bdb2]{background:#fff;box-shadow:0 4px 16px #0000004d}.filex-viewer-fallback[data-v-e6d0bdb2]{text-align:center;padding:32px;color:#c8cdd6;margin:auto}.filex-viewer-fallback__icon[data-v-e6d0bdb2]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-e6d0bdb2]{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-e6d0bdb2]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn[data-v-e6d0bdb2]:disabled{opacity:.4;cursor:not-allowed}.filex-viewer-psd[data-v-d23e4974]{display:flex;flex-direction:column;width:100%;height:100%;min-height:70vh;background:var(--fe-bg, #fff)}.filex-viewer-psd__bar[data-v-d23e4974]{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-d23e4974]{flex:1}.filex-viewer-psd__dim[data-v-d23e4974]{font-size:12px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-psd__zoom[data-v-d23e4974]{min-width:50px;text-align:center;font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-psd__main[data-v-d23e4974]{flex:1;display:flex;min-height:0}.filex-viewer-psd__layers[data-v-d23e4974]{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-d23e4974]{list-style:none;margin:0;padding:0}.filex-viewer-psd__layers li[data-v-d23e4974]{display:flex;align-items:center;gap:6px;padding:4px 12px;font-size:12px}.filex-viewer-psd__layer-vis[data-v-d23e4974]{width:14px;text-align:center;color:var(--fe-text-muted, #5a6475)}.filex-viewer-psd__layer-vis[data-hidden="1"][data-v-d23e4974]{color:var(--fe-border-strong, #c7ced9)}.filex-viewer-psd__layer-name[data-v-d23e4974]{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filex-viewer-psd__pane[data-v-d23e4974]{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-d23e4974]{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-d23e4974]{text-align:center;padding:32px;color:#c8cdd6;margin:auto}.filex-viewer-fallback__icon[data-v-d23e4974]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-d23e4974]{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-d23e4974]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn.is-active[data-v-d23e4974]{background:var(--fe-bg-selected, #dfe8ff);border-color:var(--fe-primary, #3b82f6)}.filex-viewer-ipynb[data-v-631b8223]{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-631b8223]{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-631b8223]{font-family:var(--fe-font-mono, monospace);text-transform:uppercase;letter-spacing:.04em}.filex-viewer-ipynb__pane[data-v-631b8223]{flex:1;overflow:auto;padding:16px 24px}.filex-viewer-ipynb__cell[data-v-631b8223]{border:1px solid var(--fe-border, #e2e6ed);border-radius:6px;margin-bottom:16px;overflow:hidden}.filex-viewer-ipynb__cell[data-type=code][data-v-631b8223]{background:var(--fe-bg-elev, #f7f8fa)}.filex-viewer-ipynb__exec[data-v-631b8223]{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-631b8223]{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-631b8223]{border-top:1px dashed var(--fe-border, #e2e6ed);background:var(--fe-bg, #fff);padding:8px 12px}.filex-viewer-ipynb__out[data-v-631b8223]{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-631b8223]{color:var(--fe-danger, #dc2626)}.filex-viewer-ipynb__img[data-v-631b8223]{display:block;max-width:100%;height:auto;margin:8px 0}.filex-viewer-ipynb__html[data-v-631b8223]{font-size:13px}.filex-viewer-ipynb__md[data-v-631b8223]{padding:12px 16px;font-size:14px;line-height:1.6}.filex-viewer-ipynb__md-raw[data-v-631b8223]{padding:12px;margin:0;font-family:var(--fe-font-mono, monospace);font-size:12px;white-space:pre-wrap}.filex-viewer-fallback[data-v-631b8223]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-631b8223]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-csv[data-v-fc457b26]{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-fc457b26]{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-fc457b26]{display:flex;align-items:center;gap:4px;font-size:12px}.filex-viewer-csv__select[data-v-fc457b26],.filex-viewer-csv__filter[data-v-fc457b26]{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-fc457b26]{flex:0 1 240px}.filex-viewer-spacer[data-v-fc457b26]{flex:1}.filex-viewer-csv__count[data-v-fc457b26]{font-size:11px;color:var(--fe-text-muted, #5a6475);font-variant-numeric:tabular-nums}.filex-viewer-csv__pane[data-v-fc457b26]{flex:1;overflow:auto}.filex-viewer-csv__table[data-v-fc457b26]{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-fc457b26],.filex-viewer-csv__table td[data-v-fc457b26]{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-fc457b26]{background:var(--fe-bg-elev, #f7f8fa);position:sticky;top:0;font-weight:600;text-align:left}.filex-viewer-csv__table tbody tr[data-v-fc457b26]:nth-child(2n){background:var(--fe-bg-hover, rgba(0, 0, 0, .02))}.filex-viewer-csv__rownum[data-v-fc457b26]{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-fc457b26]{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-fc457b26]{font-variant-numeric:tabular-nums;font-size:12px}.filex-viewer-fallback[data-v-fc457b26]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-fc457b26]{font-size:48px;display:block;margin-bottom:12px}.filex-viewer-btn[data-v-fc457b26]{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-fc457b26]:hover:not(:disabled){background:var(--fe-bg-hover, #edf0f5)}.filex-viewer-btn[data-v-fc457b26]:disabled{opacity:.4;cursor:not-allowed}.filex-viewer-archive[data-v-6b42eacd]{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-6b42eacd]{flex:1;overflow:auto;padding:16px 20px}.filex-viewer-archive__summary[data-v-6b42eacd]{font-size:12px;color:var(--fe-text-muted, #5a6475);margin-bottom:12px;font-variant-numeric:tabular-nums}.filex-viewer-archive__table[data-v-6b42eacd]{width:100%;border-collapse:collapse;font-size:13px;font-family:var(--fe-font-mono, monospace)}.filex-viewer-archive__table th[data-v-6b42eacd],.filex-viewer-archive__table td[data-v-6b42eacd]{padding:6px 12px;border-bottom:1px solid var(--fe-border, #e2e6ed);text-align:left}.filex-viewer-archive__table th[data-v-6b42eacd]{background:var(--fe-bg-elev, #f7f8fa);font-weight:600;position:sticky;top:0}.filex-viewer-archive__size[data-v-6b42eacd]{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--fe-text-muted, #5a6475)}.filex-viewer-archive__icon[data-v-6b42eacd]{margin-right:6px}.filex-viewer-archive__table tr[data-dir="1"][data-v-6b42eacd]{color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback[data-v-6b42eacd]{text-align:center;padding:32px;color:var(--fe-text-muted, #5a6475)}.filex-viewer-fallback__icon[data-v-6b42eacd]{font-size:48px;display:block;margin-bottom:12px}';
|
|
10519
|
+
}), gm = '.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-cc43fc18]{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-cc43fc18]{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-cc43fc18]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px 12px;flex:none}.fx-perm-title[data-v-cc43fc18]{display:flex;align-items:center;gap:10px;min-width:0}.fx-perm-ico[data-v-cc43fc18]{font-size:22px;line-height:1}.fx-perm-titletext[data-v-cc43fc18]{display:flex;flex-direction:column;min-width:0}.fx-perm-title h3[data-v-cc43fc18]{margin:0;font-size:15px;font-weight:600;color:var(--fe-text)}.fx-perm-sub[data-v-cc43fc18]{font-size:12px;color:var(--fe-text);max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-perm-subdim[data-v-cc43fc18]{color:var(--fe-text-muted)}.fx-perm-x[data-v-cc43fc18]{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-cc43fc18]:hover{color:var(--fe-text);background:var(--fe-bg-hover)}.fx-perm-tabs[data-v-cc43fc18]{display:flex;gap:2px;padding:0 18px;border-bottom:1px solid var(--fe-border);flex:none}.fx-perm-tab[data-v-cc43fc18]{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-cc43fc18]:hover{color:var(--fe-text)}.fx-perm-tab.is-active[data-v-cc43fc18]{color:var(--fe-primary);border-bottom-color:var(--fe-primary)}.fx-perm-body[data-v-cc43fc18]{flex:1 1 auto;overflow-y:auto;padding:14px 18px 18px}.fx-perm-addcard[data-v-cc43fc18]{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-cc43fc18]{margin-top:16px}.fx-perm-section h4[data-v-cc43fc18]{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fe-text-muted)}.fx-perm-empty[data-v-cc43fc18]{color:var(--fe-text-muted);font-size:13px;padding:8px 2px}.fx-perm-person[data-v-cc43fc18]{display:flex;align-items:center;gap:10px;padding:7px 2px}.fx-perm-person+.fx-perm-person[data-v-cc43fc18]{border-top:1px solid var(--fe-border)}.fx-perm-inh[data-v-cc43fc18]{color:var(--fe-text-muted)}.fx-perm-av[data-v-cc43fc18]{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-cc43fc18]{background:var(--fe-bg-hover);color:var(--fe-text-muted)}.fx-perm-user[data-v-cc43fc18]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fe-text);min-width:0}.fx-perm-from[data-v-cc43fc18]{font-size:11px;color:var(--fe-text-muted);white-space:nowrap}.fx-perm-badge[data-v-cc43fc18]{font-size:11px;padding:2px 9px;border-radius:999px;background:var(--fe-bg-hover);color:var(--fe-text)}.fx-perm-sel[data-v-cc43fc18],.fx-perm-input[data-v-cc43fc18]{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-cc43fc18]{padding:5px 7px;font-size:12px}.fx-perm-sel[data-v-cc43fc18]:focus,.fx-perm-input[data-v-cc43fc18]:focus{outline:none;border-color:var(--fe-primary)}.fx-perm-add[data-v-cc43fc18]{display:flex;gap:8px;align-items:stretch}.fx-perm-emailwrap[data-v-cc43fc18]{position:relative;flex:1;min-width:120px}.fx-perm-input[data-v-cc43fc18]{width:100%;box-sizing:border-box}.fx-perm-suggest[data-v-cc43fc18]{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-cc43fc18]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer}.fx-perm-suggest li[data-v-cc43fc18]:hover{background:var(--fe-bg-hover)}.fx-perm-suggest-av[data-v-cc43fc18]{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-cc43fc18]{display:flex;flex-direction:column;min-width:0}.fx-perm-suggest-name[data-v-cc43fc18]{color:var(--fe-text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-perm-suggest-meta[data-v-cc43fc18]{color:var(--fe-text-muted);font-size:11px}.fx-perm-check[data-v-cc43fc18]{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--fe-text);cursor:pointer}.fx-perm-btn[data-v-cc43fc18]{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-cc43fc18]:hover:not(:disabled){background:var(--fe-bg-hover)}.fx-perm-btn[data-v-cc43fc18]:disabled{opacity:.55;cursor:default}.fx-perm-btn--sm[data-v-cc43fc18]{padding:5px 10px;font-size:12px}.fx-perm-btn--primary[data-v-cc43fc18]{background:var(--fe-primary);border-color:var(--fe-primary);color:var(--fe-text-on-primary, #fff)}.fx-perm-btn--primary[data-v-cc43fc18]:hover:not(:disabled){background:var(--fe-primary-hover, var(--fe-primary));filter:brightness(1.05)}.fx-perm-btn--ghost[data-v-cc43fc18]{background:none;border-color:transparent;color:var(--fe-primary);padding-left:2px}.fx-perm-btn--ghost[data-v-cc43fc18]:hover:not(:disabled){background:none;text-decoration:underline}.fx-perm-del[data-v-cc43fc18]{background:none;border:none;color:var(--fe-danger);cursor:pointer;font-size:14px;flex:none;padding:2px 4px}.fx-perm-del[data-v-cc43fc18]:hover:not(:disabled){filter:brightness(1.15)}.fx-perm-invite[data-v-cc43fc18]{margin-top:10px;padding-top:10px;border-top:1px dashed var(--fe-border)}.fx-perm-invite-actions[data-v-cc43fc18]{display:flex;flex-direction:column;gap:8px;margin-top:6px}.fx-perm-invite-row[data-v-cc43fc18]{display:flex;gap:8px;align-items:stretch}.fx-perm-invite-row .fx-perm-btn--primary[data-v-cc43fc18]{flex:1}.fx-perm-share-opts[data-v-cc43fc18]{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.fx-perm-expiry[data-v-cc43fc18]{display:inline-flex;gap:6px;align-items:center;font-size:13px}.fx-perm-share-opts .fx-perm-btn--primary[data-v-cc43fc18]{margin-left:auto}.fx-perm-result[data-v-cc43fc18]{margin-top:12px;padding-top:12px;border-top:1px solid var(--fe-border)}.fx-perm-linkrow[data-v-cc43fc18]{display:flex;gap:8px;align-items:center}.fx-perm-link[data-v-cc43fc18]{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-cc43fc18]:hover{text-decoration:underline}.fx-perm-pin[data-v-cc43fc18]{margin:8px 0 0;font-size:13px;color:var(--fe-text);display:flex;align-items:center;gap:8px}.fx-perm-pin code[data-v-cc43fc18],.fx-perm-reveal code[data-v-cc43fc18]{font-family:var(--fe-font-mono, monospace);background:var(--fe-bg-hover);padding:1px 6px;border-radius:5px}.fx-perm-mailrow[data-v-cc43fc18]{display:flex;gap:8px;margin-top:10px}.fx-perm-mailrow .fx-perm-input[data-v-cc43fc18]{flex:1}.fx-perm-hint[data-v-cc43fc18]{font-size:13px;color:var(--fe-text-muted);margin:10px 0 0}.fx-perm-dropintro[data-v-cc43fc18]{margin:0 0 12px;line-height:1.4}.fx-perm-advtoggle[data-v-cc43fc18]{margin-top:10px;padding-left:2px}.fx-perm-adv[data-v-cc43fc18]{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-cc43fc18]{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.fx-perm-input--sm[data-v-cc43fc18]{width:130px;padding:5px 8px;font-size:12px}.fx-perm-warn[data-v-cc43fc18]{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-cc43fc18]{margin-top:8px;font-size:13px;color:var(--fe-text-muted)}.fx-perm-reveal[data-v-cc43fc18]{margin-top:8px;font-size:13px;word-break:break-all;color:var(--fe-text)}.fx-perm-muted[data-v-cc43fc18]{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__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__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}';
|
|
10520
10520
|
let Za = !1;
|
|
10521
10521
|
function bm() {
|
|
10522
10522
|
if (Za || typeof document > "u") return;
|
|
@@ -10620,4 +10620,4 @@ export {
|
|
|
10620
10620
|
_m as v,
|
|
10621
10621
|
ct as w
|
|
10622
10622
|
};
|
|
10623
|
-
//# sourceMappingURL=index-
|
|
10623
|
+
//# sourceMappingURL=index-BNs90VaG.js.map
|