@floegence/floe-webapp-core 0.86.60 → 0.86.62
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/dist/components/chat/blocks/BlockRenderer.js +1 -1
- package/dist/components/chat/blocks/CodeDiffBlock.js +56 -56
- package/dist/components/chat/blocks/ImageBlock.js +1 -1
- package/dist/components/chat/blocks/ToolCallBlock.js +57 -57
- package/dist/components/chat/status/ConnectionStatus.js +10 -10
- package/dist/components/deck/DeckCell.js +25 -25
- package/dist/components/deck/DeckContextMenu.js +20 -20
- package/dist/components/deck/DeckGrid.js +1 -1
- package/dist/components/deck/DeckTopBar.js +42 -42
- package/dist/components/deck/DropZonePreview.js +6 -6
- package/dist/components/deck/LayoutSelector.js +53 -53
- package/dist/components/deck/WidgetFrame.js +28 -28
- package/dist/components/deck/WidgetPalette.js +31 -31
- package/dist/components/deck/WidgetTypeSwitcher.js +31 -31
- package/dist/components/file-browser/Breadcrumb.js +27 -27
- package/dist/components/file-browser/DirectoryTree.js +15 -15
- package/dist/components/file-browser/DragPreview.js +58 -58
- package/dist/components/file-browser/FileBrowser.js +17 -17
- package/dist/components/file-browser/FileBrowserStatusBar.js +18 -18
- package/dist/components/file-browser/FileBrowserToolbar.js +27 -27
- package/dist/components/file-browser/FileContextMenu.js +47 -47
- package/dist/components/file-browser/FileGridView.js +53 -51
- package/dist/components/file-browser/FileItemDecorations.js +30 -27
- package/dist/components/file-browser/FileListView.js +114 -114
- package/dist/components/icons/index.js +1357 -1357
- package/dist/components/launchpad/Launchpad.js +14 -14
- package/dist/components/launchpad/LaunchpadGrid.js +7 -7
- package/dist/components/launchpad/LaunchpadItem.js +11 -11
- package/dist/components/launchpad/LaunchpadPagination.js +16 -16
- package/dist/components/launchpad/LaunchpadSearch.js +9 -9
- package/dist/components/layout/ActivityBar.js +52 -55
- package/dist/components/layout/BottomBar.js +17 -17
- package/dist/components/layout/MobileNavigationPanel.js +36 -36
- package/dist/components/layout/MobileTabBar.js +39 -39
- package/dist/components/layout/Panel.js +16 -16
- package/dist/components/layout/ResizeHandle.js +19 -19
- package/dist/components/layout/Shell.js +50 -50
- package/dist/components/layout/Sidebar.js +37 -36
- package/dist/components/layout/SidebarPane.js +19 -19
- package/dist/components/layout/TopBar.js +16 -16
- package/dist/components/layout/TopBarIconButton.js +15 -15
- package/dist/components/loading/LoadingOverlay.js +9 -9
- package/dist/components/loading/Skeleton.js +11 -11
- package/dist/components/ui/Button.js +36 -36
- package/dist/components/ui/Card.d.ts +11 -62
- package/dist/components/ui/Card.js +64 -237
- package/dist/components/ui/Checkbox.js +79 -79
- package/dist/components/ui/CommandPalette.js +56 -55
- package/dist/components/ui/Dialog.js +91 -93
- package/dist/components/ui/DirectoryInput.js +22 -22
- package/dist/components/ui/DirectoryPicker.js +8 -8
- package/dist/components/ui/Dropdown.js +89 -87
- package/dist/components/ui/FeedbackIndicator.js +57 -57
- package/dist/components/ui/FileOpenPicker.js +37 -37
- package/dist/components/ui/FileSavePicker.js +41 -41
- package/dist/components/ui/FloatingWindow.js +213 -205
- package/dist/components/ui/Form.js +76 -76
- package/dist/components/ui/HighlightBlock.js +14 -14
- package/dist/components/ui/Input.js +106 -109
- package/dist/components/ui/Pagination.js +86 -86
- package/dist/components/ui/Popover.d.ts +33 -0
- package/dist/components/ui/Popover.js +133 -0
- package/dist/components/ui/ProcessingIndicator.js +344 -345
- package/dist/components/ui/Progress.js +94 -97
- package/dist/components/ui/QuoteBlock.js +25 -25
- package/dist/components/ui/Radio.js +91 -91
- package/dist/components/ui/SegmentedControl.js +24 -24
- package/dist/components/ui/Stepper.js +68 -60
- package/dist/components/ui/Switch.js +25 -25
- package/dist/components/ui/Tabs.js +99 -87
- package/dist/components/ui/Tag.js +12 -9
- package/dist/components/ui/Tooltip.js +30 -30
- package/dist/components/ui/floatingPresence.d.ts +7 -0
- package/dist/components/ui/floatingPresence.js +80 -39
- package/dist/components/ui/index.d.ts +2 -1
- package/dist/components/ui/picker/DirectoryFavorites.js +27 -27
- package/dist/components/ui/picker/PickerBase.js +107 -107
- package/dist/context/NotificationContext.js +4 -4
- package/dist/context/ThemeContext.js +71 -70
- package/dist/floe.css +205 -43
- package/dist/full.js +650 -652
- package/dist/language.css +320 -0
- package/dist/primitives.css +23 -17
- package/dist/standalone.css +1 -0
- package/dist/styles/themes/classicSemanticTokens.d.ts +122 -122
- package/dist/styles/themes/classicSemanticTokens.js +140 -138
- package/dist/styles/themes/index.d.ts +3 -1
- package/dist/styles/themes/index.js +10 -10
- package/dist/styles/themes/presets.d.ts +2 -2
- package/dist/styles/themes/presets.js +34 -34
- package/dist/styles/tokens.d.ts +152 -68
- package/dist/styles/tokens.js +87 -49
- package/dist/styles.css +1 -1
- package/dist/surface.css +161 -116
- package/dist/themes/dark.css +64 -64
- package/dist/themes/light.css +64 -64
- package/dist/ui.css +171 -255
- package/dist/ui.js +176 -178
- package/dist/utils/hotInteraction.d.ts +7 -0
- package/dist/utils/hotInteraction.js +12 -12
- package/dist/widgets/TerminalWidget.js +28 -28
- package/dist/workbench-composition.css +15 -15
- package/package.json +1 -1
|
@@ -1,50 +1,53 @@
|
|
|
1
|
-
import { createComponent as
|
|
2
|
-
import { Show as
|
|
3
|
-
import { cn as
|
|
4
|
-
var
|
|
5
|
-
const
|
|
1
|
+
import { createComponent as m, insert as u, effect as x, setAttribute as s, className as v, template as b } from "solid-js/web";
|
|
2
|
+
import { Show as w } from "solid-js";
|
|
3
|
+
import { cn as S } from "../../utils/cn.js";
|
|
4
|
+
var p = /* @__PURE__ */ b("<span aria-hidden=true>");
|
|
5
|
+
const h = ["default", "primary", "info", "success", "warning", "error", "muted"], E = {
|
|
6
6
|
default: "bg-foreground text-background",
|
|
7
7
|
primary: "bg-primary text-primary-foreground",
|
|
8
8
|
info: "bg-info text-info-foreground",
|
|
9
9
|
success: "bg-success text-success-foreground",
|
|
10
10
|
warning: "bg-warning text-warning-foreground",
|
|
11
11
|
error: "bg-error text-error-foreground",
|
|
12
|
-
muted: "bg-
|
|
13
|
-
},
|
|
12
|
+
muted: "bg-[var(--floe-well)] text-[var(--floe-ink-soft)]"
|
|
13
|
+
}, y = {
|
|
14
14
|
default: "",
|
|
15
|
-
primary: "text-
|
|
15
|
+
primary: "text-[var(--floe-accent-ink)]",
|
|
16
16
|
info: "text-info",
|
|
17
17
|
success: "text-success",
|
|
18
18
|
warning: "text-warning",
|
|
19
19
|
error: "text-error",
|
|
20
|
-
muted: "text-
|
|
21
|
-
},
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
muted: "text-[var(--floe-ink-soft)]"
|
|
21
|
+
}, A = {
|
|
22
|
+
/* Chip type is a ladder step, not a per-size invention: 5/7/8px were three
|
|
23
|
+
* hand-picked values below the caption floor. `nano` for the smallest chip,
|
|
24
|
+
* `micro` above it. */
|
|
25
|
+
xs: "-left-0.5 -top-0.5 h-2 min-w-2 px-[1px] text-[length:var(--floe-type-nano)] ring-[0.5px]",
|
|
26
|
+
sm: "-left-1 -top-1 h-3.5 min-w-3.5 px-[3px] text-[length:var(--floe-type-micro)] ring-1 shadow-[var(--floe-elevation-raised)]",
|
|
27
|
+
md: "-left-1 -top-1 h-4 min-w-4 px-1 text-[length:var(--floe-type-micro)] ring-1 shadow-[var(--floe-elevation-raised)]"
|
|
25
28
|
};
|
|
26
|
-
function
|
|
29
|
+
function c(e) {
|
|
27
30
|
const r = String(e ?? "").trim();
|
|
28
|
-
return
|
|
31
|
+
return h.includes(r) ? r : "default";
|
|
29
32
|
}
|
|
30
33
|
function C(e) {
|
|
31
34
|
return String(e.decoration?.badge?.label ?? "").trim().slice(0, 2).toUpperCase();
|
|
32
35
|
}
|
|
33
|
-
function
|
|
34
|
-
const r =
|
|
35
|
-
return
|
|
36
|
+
function T(e) {
|
|
37
|
+
const r = c(e.decoration?.nameTone);
|
|
38
|
+
return y[r];
|
|
36
39
|
}
|
|
37
|
-
function
|
|
38
|
-
const r = () => C(e.item), o = () =>
|
|
39
|
-
return
|
|
40
|
+
function _(e) {
|
|
41
|
+
const r = () => C(e.item), o = () => c(e.item.decoration?.badge?.tone), f = () => String(e.item.decoration?.badge?.title ?? "").trim() || void 0, d = () => e.size ?? "sm";
|
|
42
|
+
return m(w, {
|
|
40
43
|
get when() {
|
|
41
44
|
return r();
|
|
42
45
|
},
|
|
43
46
|
children: (g) => (() => {
|
|
44
|
-
var n =
|
|
45
|
-
return
|
|
46
|
-
var i =
|
|
47
|
-
return i !== t.e &&
|
|
47
|
+
var n = p();
|
|
48
|
+
return u(n, g), x((t) => {
|
|
49
|
+
var i = f(), a = o(), l = S("pointer-events-none absolute z-10 inline-flex items-center justify-center rounded-full ring-background/90", "font-black leading-none", A[d()], E[o()], e.class);
|
|
50
|
+
return i !== t.e && s(n, "title", t.e = i), a !== t.t && s(n, "data-file-browser-decoration-badge", t.t = a), l !== t.a && v(n, t.a = l), t;
|
|
48
51
|
}, {
|
|
49
52
|
e: void 0,
|
|
50
53
|
t: void 0,
|
|
@@ -54,6 +57,6 @@ function z(e) {
|
|
|
54
57
|
});
|
|
55
58
|
}
|
|
56
59
|
export {
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
_ as FileItemDecorationBadge,
|
|
61
|
+
T as fileItemDecorationNameClass
|
|
59
62
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { use as K, insert as f, createComponent as d, effect as p, className as N, setStyleProperty as T, addEventListener as ue, style as _e, setAttribute as
|
|
2
|
-
import { createSignal as J, createEffect as me, onCleanup as
|
|
1
|
+
import { use as K, insert as f, createComponent as d, effect as p, className as N, setStyleProperty as T, addEventListener as ue, style as _e, setAttribute as ye, template as I, spread as ze, mergeProps as Re, memo as xe, delegateEvents as Pe } from "solid-js/web";
|
|
2
|
+
import { createSignal as J, createEffect as me, onCleanup as le, createMemo as se, Show as _, For as ce, untrack as pe } from "solid-js";
|
|
3
3
|
import { Skeleton as j } from "../loading/Skeleton.js";
|
|
4
4
|
import { cn as W } from "../../utils/cn.js";
|
|
5
5
|
import { useMediaQuery as fe } from "../../hooks/useMediaQuery.js";
|
|
6
|
-
import { useResizeObserver as
|
|
7
|
-
import { useVirtualWindow as
|
|
6
|
+
import { useResizeObserver as ke } from "../../hooks/useResizeObserver.js";
|
|
7
|
+
import { useVirtualWindow as Fe } from "../../hooks/useVirtualWindow.js";
|
|
8
8
|
import { useFileBrowser as we } from "./FileBrowserContext.js";
|
|
9
9
|
import { useFileBrowserDrag as Te } from "../../context/FileBrowserDragContext.js";
|
|
10
10
|
import { FileItemIcon as Ae } from "./FileIcons.js";
|
|
@@ -16,19 +16,19 @@ import { fileBrowserTouchTargetAttrs as Be } from "./touchInteractionGuard.js";
|
|
|
16
16
|
import { createItemContextMenuEvent as Ne } from "./contextMenuEvent.js";
|
|
17
17
|
import { createFileBrowserMarqueeSelection as Oe, FILE_BROWSER_MARQUEE_OVERLAY_CLASS as qe } from "./useFileBrowserMarqueeSelection.js";
|
|
18
18
|
import { isPrimaryModKeyPressed as he } from "../../utils/keybind.js";
|
|
19
|
-
var be = /* @__PURE__ */ I("<span>"), Xe = /* @__PURE__ */ I('<mark class="bg-warning/40 text-inherit rounded-sm">'), Ye = /* @__PURE__ */ I('<div><button type=button class="group w-full flex items-center justify-start text-left px-3 py-2 cursor-pointer hover:bg-
|
|
19
|
+
var be = /* @__PURE__ */ I("<span>"), Xe = /* @__PURE__ */ I('<mark class="bg-warning/40 text-inherit rounded-sm">'), Ye = /* @__PURE__ */ I('<div><button type=button class="group w-full flex items-center justify-start text-left px-3 py-2 cursor-pointer hover:bg-[var(--floe-state-hover)] transition-colors">Modified'), Ve = /* @__PURE__ */ I('<div class=shrink-0><button type=button class="group w-full flex items-center justify-start text-left px-3 py-2 cursor-pointer hover:bg-[var(--floe-state-hover)] transition-colors">Size'), ve = /* @__PURE__ */ I("<div>"), Ge = /* @__PURE__ */ I('<div><div aria-hidden=true class="absolute invisible pointer-events-none w-px h-[var(--floe-row-height)]"></div><div data-file-list-header class="flex items-center border-b border-[var(--floe-line)] text-caption text-[var(--floe-ink-soft)] font-medium"><div><button type=button class="group w-full flex items-center min-w-0 px-3 py-2 cursor-pointer hover:bg-[var(--floe-state-hover)] transition-colors"><span class="flex items-center gap-2 min-w-0"><span class="flex-shrink-0 w-4 h-4"aria-hidden=true></span><span class="flex items-center min-w-0"><span class=truncate>Name</span></span></span></button></div></div><div class="relative flex-1 min-h-0 overflow-auto">'), Ue = /* @__PURE__ */ I("<div aria-hidden=true>"), Z = /* @__PURE__ */ I('<div class="shrink-0 px-3 py-1 text-left text-[var(--floe-ink-soft)] truncate">'), Qe = /* @__PURE__ */ I('<div data-file-browser-placeholder data-file-list-row class="w-full h-[var(--floe-row-height)] flex items-center text-[length:var(--floe-type-control)] leading-[var(--floe-line-control)]"><div class="flex items-center gap-2 flex-1 min-w-0 px-3 py-1">'), je = /* @__PURE__ */ I('<span>No files matching "<!>"'), Ke = /* @__PURE__ */ I('<button type=button class="px-2 py-1 rounded-xs bg-[var(--floe-well)] hover:bg-[var(--floe-state-press)] transition-colors">Clear Filter'), Je = /* @__PURE__ */ I('<div class="flex flex-col items-center justify-center h-32 gap-2 text-xs text-[var(--floe-ink-soft)]">'), Ze = /* @__PURE__ */ I("<span>This folder is empty"), et = /* @__PURE__ */ I('<button type=button data-file-list-row><div class="flex items-center gap-2 flex-1 min-w-0 px-3 py-1"><span class="relative flex-shrink-0 w-4 h-4">');
|
|
20
20
|
const tt = "w-full h-[var(--floe-row-height)] flex items-center text-[length:var(--floe-type-control)] leading-[var(--floe-line-control)]";
|
|
21
21
|
function nt(e) {
|
|
22
|
-
const
|
|
22
|
+
const a = se(() => {
|
|
23
23
|
if (!e.match || e.match.matchedIndices.length === 0)
|
|
24
24
|
return [{
|
|
25
25
|
text: e.name,
|
|
26
26
|
highlight: !1
|
|
27
27
|
}];
|
|
28
|
-
const w = [],
|
|
28
|
+
const w = [], F = new Set(e.match.matchedIndices);
|
|
29
29
|
let M = "", D = !1;
|
|
30
30
|
for (let b = 0; b < e.name.length; b++) {
|
|
31
|
-
const S =
|
|
31
|
+
const S = F.has(b);
|
|
32
32
|
b === 0 ? (D = S, M = e.name[b]) : S === D ? M += e.name[b] : (w.push({
|
|
33
33
|
text: M,
|
|
34
34
|
highlight: D
|
|
@@ -43,25 +43,25 @@ function nt(e) {
|
|
|
43
43
|
var w = be();
|
|
44
44
|
return f(w, d(ce, {
|
|
45
45
|
get each() {
|
|
46
|
-
return
|
|
46
|
+
return a();
|
|
47
47
|
},
|
|
48
|
-
children: (
|
|
48
|
+
children: (F) => d(_, {
|
|
49
49
|
get when() {
|
|
50
|
-
return
|
|
50
|
+
return F.highlight;
|
|
51
51
|
},
|
|
52
52
|
get fallback() {
|
|
53
|
-
return xe(() =>
|
|
53
|
+
return xe(() => F.text);
|
|
54
54
|
},
|
|
55
55
|
get children() {
|
|
56
56
|
var M = Xe();
|
|
57
|
-
return f(M, () =>
|
|
57
|
+
return f(M, () => F.text), M;
|
|
58
58
|
}
|
|
59
59
|
})
|
|
60
60
|
})), p(() => N(w, W("truncate", e.class))), w;
|
|
61
61
|
})();
|
|
62
62
|
}
|
|
63
63
|
function $t(e) {
|
|
64
|
-
const
|
|
64
|
+
const a = we(), w = Te(), F = () => (e.enableDragDrop ?? !0) && !!w, M = () => e.instanceId ?? "default", [D, b] = J(null), [S, O] = J(28);
|
|
65
65
|
me(() => {
|
|
66
66
|
const t = D();
|
|
67
67
|
if (!t) return;
|
|
@@ -71,21 +71,21 @@ function $t(e) {
|
|
|
71
71
|
u > 0 && O(u);
|
|
72
72
|
};
|
|
73
73
|
if (o(), typeof ResizeObserver > "u") return;
|
|
74
|
-
const
|
|
75
|
-
|
|
74
|
+
const l = new ResizeObserver(o);
|
|
75
|
+
l.observe(t), le(() => l.disconnect());
|
|
76
76
|
});
|
|
77
|
-
const
|
|
78
|
-
count: () =>
|
|
77
|
+
const z = Fe({
|
|
78
|
+
count: () => a.currentFiles().length,
|
|
79
79
|
itemSize: S,
|
|
80
80
|
overscan: 12
|
|
81
81
|
}), C = se(() => {
|
|
82
82
|
const {
|
|
83
83
|
start: t,
|
|
84
84
|
end: o
|
|
85
|
-
} =
|
|
86
|
-
return
|
|
85
|
+
} = z.range();
|
|
86
|
+
return a.currentFiles().slice(t, o);
|
|
87
87
|
}), A = /* @__PURE__ */ new Map();
|
|
88
|
-
let R = null,
|
|
88
|
+
let R = null, y = 0;
|
|
89
89
|
const ee = (t, o) => {
|
|
90
90
|
if (o) {
|
|
91
91
|
A.set(t, o);
|
|
@@ -94,42 +94,42 @@ function $t(e) {
|
|
|
94
94
|
A.delete(t);
|
|
95
95
|
}, G = (t) => {
|
|
96
96
|
if (!R) return;
|
|
97
|
-
const o = t * S(),
|
|
97
|
+
const o = t * S(), l = o + S(), u = R.scrollTop, g = u + R.clientHeight;
|
|
98
98
|
if (o < u) {
|
|
99
|
-
R.scrollTop = o,
|
|
99
|
+
R.scrollTop = o, z.onScroll();
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
|
-
|
|
102
|
+
l > g && (R.scrollTop = Math.max(0, l - R.clientHeight), z.onScroll());
|
|
103
103
|
};
|
|
104
104
|
me(() => {
|
|
105
|
-
const t =
|
|
105
|
+
const t = a.revealRequest(), o = a.currentFiles();
|
|
106
106
|
if (C(), !t) return;
|
|
107
|
-
const
|
|
108
|
-
if (
|
|
107
|
+
const l = o.findIndex((h) => h.id === t.targetId);
|
|
108
|
+
if (l < 0) return;
|
|
109
109
|
if (!A.get(t.targetId)) {
|
|
110
|
-
G(
|
|
110
|
+
G(l);
|
|
111
111
|
return;
|
|
112
112
|
}
|
|
113
|
-
typeof cancelAnimationFrame == "function" &&
|
|
113
|
+
typeof cancelAnimationFrame == "function" && y && (cancelAnimationFrame(y), y = 0);
|
|
114
114
|
const g = () => {
|
|
115
|
-
|
|
115
|
+
a.revealRequest()?.requestId === t.requestId && (A.get(t.targetId)?.scrollIntoView({
|
|
116
116
|
block: "nearest",
|
|
117
117
|
inline: "nearest"
|
|
118
|
-
}),
|
|
118
|
+
}), a.selectItem(t.targetId, !1), a.consumeRevealRequest(t.requestId));
|
|
119
119
|
};
|
|
120
120
|
if (typeof requestAnimationFrame == "function") {
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
y = requestAnimationFrame(() => {
|
|
122
|
+
y = 0, g();
|
|
123
123
|
});
|
|
124
124
|
return;
|
|
125
125
|
}
|
|
126
126
|
queueMicrotask(g);
|
|
127
|
-
}),
|
|
128
|
-
typeof cancelAnimationFrame == "function" &&
|
|
127
|
+
}), le(() => {
|
|
128
|
+
typeof cancelAnimationFrame == "function" && y && cancelAnimationFrame(y);
|
|
129
129
|
});
|
|
130
130
|
const P = (t) => {
|
|
131
|
-
const o =
|
|
132
|
-
|
|
131
|
+
const o = a.sortConfig();
|
|
132
|
+
a.setSortConfig({
|
|
133
133
|
field: t,
|
|
134
134
|
direction: o.field === t && o.direction === "asc" ? "desc" : "asc"
|
|
135
135
|
});
|
|
@@ -140,60 +140,60 @@ function $t(e) {
|
|
|
140
140
|
}) : "-", X = Oe({
|
|
141
141
|
getContainer: () => R,
|
|
142
142
|
getOverlayHost: () => R,
|
|
143
|
-
getVisibleItemIdsInOrder: () =>
|
|
143
|
+
getVisibleItemIdsInOrder: () => a.currentFiles().map((t) => t.id),
|
|
144
144
|
getElementForId: (t) => A.get(t) ?? null,
|
|
145
|
-
getSelectedIds: () => [...
|
|
146
|
-
replaceSelection: (t, o) =>
|
|
147
|
-
clearSelection:
|
|
145
|
+
getSelectedIds: () => [...a.selectedItems()],
|
|
146
|
+
replaceSelection: (t, o) => a.replaceSelection(t, o),
|
|
147
|
+
clearSelection: a.clearSelection
|
|
148
148
|
}), Y = (t) => {
|
|
149
|
-
const o = () =>
|
|
149
|
+
const o = () => a.sortConfig(), l = () => o().field === t.field;
|
|
150
150
|
return (() => {
|
|
151
151
|
var u = be();
|
|
152
152
|
return f(u, d(We, {
|
|
153
153
|
get class() {
|
|
154
|
-
return W("w-3 h-3 transition-transform duration-
|
|
154
|
+
return W("w-3 h-3 transition-transform duration-[var(--floe-duration-fast)]", l() && o().direction === "asc" && "rotate-180");
|
|
155
155
|
}
|
|
156
|
-
})), p(() => N(u, W("ml-1 transition-
|
|
156
|
+
})), p(() => N(u, W("ml-1 transition-opacity duration-[var(--floe-duration-fast)]", l() ? "opacity-100" : "opacity-0 group-hover:opacity-40"))), u;
|
|
157
157
|
})();
|
|
158
|
-
}, U = fe("(min-width: 640px)"), ne = fe("(min-width: 768px)"), [ie, H] = J(null), Q =
|
|
158
|
+
}, U = fe("(min-width: 640px)"), ne = fe("(min-width: 768px)"), [ie, H] = J(null), Q = ke(ie, {
|
|
159
159
|
preserveWhenHidden: !0
|
|
160
|
-
}), L = (t, o,
|
|
161
|
-
const t = Q()?.width ?? 0, o = U(),
|
|
160
|
+
}), L = (t, o, l) => Math.max(o, Math.min(l, t)), v = se(() => {
|
|
161
|
+
const t = Q()?.width ?? 0, o = U(), l = ne(), u = a.listColumnRatios(), g = 160, h = 120, x = 80, n = 128, s = 96;
|
|
162
162
|
if (!o || t <= 0)
|
|
163
163
|
return {
|
|
164
164
|
width: t,
|
|
165
165
|
showModified: o,
|
|
166
|
-
showSize:
|
|
166
|
+
showSize: l,
|
|
167
167
|
minName: g,
|
|
168
168
|
minModified: h,
|
|
169
169
|
minSize: x,
|
|
170
170
|
modifiedWidth: n,
|
|
171
171
|
sizeWidth: s
|
|
172
172
|
};
|
|
173
|
-
if (!
|
|
173
|
+
if (!l) {
|
|
174
174
|
const m = u.size, $ = Math.max(0, 1 - m);
|
|
175
|
-
let
|
|
176
|
-
return
|
|
175
|
+
let k = ($ > 0 ? u.modifiedAt / $ : u.modifiedAt) * t;
|
|
176
|
+
return k = L(k, h, Math.max(h, t - g)), {
|
|
177
177
|
width: t,
|
|
178
178
|
showModified: o,
|
|
179
|
-
showSize:
|
|
179
|
+
showSize: l,
|
|
180
180
|
minName: g,
|
|
181
181
|
minModified: h,
|
|
182
182
|
minSize: x,
|
|
183
|
-
modifiedWidth:
|
|
183
|
+
modifiedWidth: k,
|
|
184
184
|
sizeWidth: 0
|
|
185
185
|
};
|
|
186
186
|
}
|
|
187
187
|
let r = Math.max(h, u.modifiedAt * t), i = Math.max(x, u.size * t);
|
|
188
188
|
const c = Math.max(0, t - g);
|
|
189
189
|
if (r + i > c) {
|
|
190
|
-
const m = r + i - c, $ = Math.max(0, r - h),
|
|
191
|
-
E > 0 && (r -= m * ($ / E), i -= m * (
|
|
190
|
+
const m = r + i - c, $ = Math.max(0, r - h), k = Math.max(0, i - x), E = $ + k;
|
|
191
|
+
E > 0 && (r -= m * ($ / E), i -= m * (k / E));
|
|
192
192
|
}
|
|
193
193
|
return r = Math.max(h, r), i = Math.max(x, i), {
|
|
194
194
|
width: t,
|
|
195
195
|
showModified: o,
|
|
196
|
-
showSize:
|
|
196
|
+
showSize: l,
|
|
197
197
|
minName: g,
|
|
198
198
|
minModified: h,
|
|
199
199
|
minSize: x,
|
|
@@ -204,43 +204,43 @@ function $t(e) {
|
|
|
204
204
|
const o = v();
|
|
205
205
|
if (!o.showModified || o.width <= 0) return;
|
|
206
206
|
if (!o.showSize) {
|
|
207
|
-
const m =
|
|
207
|
+
const m = a.listColumnRatios().size, $ = Math.max(0, 1 - m);
|
|
208
208
|
if ($ <= 0) return;
|
|
209
|
-
const
|
|
210
|
-
if (
|
|
211
|
-
const $e = de +
|
|
212
|
-
|
|
209
|
+
const k = o.width, E = o.modifiedWidth, de = Math.max(0, k - E), Se = o.minName - de, Ce = E - o.minModified, ae = L(t, Se, Ce);
|
|
210
|
+
if (ae === 0) return;
|
|
211
|
+
const $e = de + ae, Ie = E - ae, Me = $e / k * $, De = Ie / k * $;
|
|
212
|
+
a.setListColumnRatios({
|
|
213
213
|
name: Me,
|
|
214
214
|
modifiedAt: De,
|
|
215
215
|
size: m
|
|
216
216
|
});
|
|
217
217
|
return;
|
|
218
218
|
}
|
|
219
|
-
const
|
|
219
|
+
const l = o.width, u = o.modifiedWidth, g = o.sizeWidth, h = Math.max(0, l - u - g), x = o.minName - h, n = u - o.minModified, s = L(t, x, n);
|
|
220
220
|
if (s === 0) return;
|
|
221
221
|
const r = h + s, i = u - s;
|
|
222
|
-
|
|
223
|
-
name: r /
|
|
224
|
-
modifiedAt: i /
|
|
225
|
-
size: g /
|
|
222
|
+
a.setListColumnRatios({
|
|
223
|
+
name: r / l,
|
|
224
|
+
modifiedAt: i / l,
|
|
225
|
+
size: g / l
|
|
226
226
|
});
|
|
227
227
|
}, oe = (t) => {
|
|
228
228
|
const o = v();
|
|
229
229
|
if (!o.showSize || o.width <= 0) return;
|
|
230
|
-
const
|
|
230
|
+
const l = o.width, u = o.modifiedWidth, g = o.sizeWidth, h = o.minModified - u, x = g - o.minSize, n = L(t, h, x);
|
|
231
231
|
if (n === 0) return;
|
|
232
|
-
const s = u + n, r = g - n, i = Math.max(0,
|
|
233
|
-
|
|
234
|
-
name: i /
|
|
235
|
-
modifiedAt: s /
|
|
236
|
-
size: r /
|
|
232
|
+
const s = u + n, r = g - n, i = Math.max(0, l - s - r);
|
|
233
|
+
a.setListColumnRatios({
|
|
234
|
+
name: i / l,
|
|
235
|
+
modifiedAt: s / l,
|
|
236
|
+
size: r / l
|
|
237
237
|
});
|
|
238
238
|
};
|
|
239
239
|
return (() => {
|
|
240
|
-
var t = Ge(), o = t.firstChild,
|
|
240
|
+
var t = Ge(), o = t.firstChild, l = o.nextSibling, u = l.firstChild, g = u.firstChild, h = g.firstChild, x = h.firstChild, n = x.nextSibling;
|
|
241
241
|
n.firstChild;
|
|
242
|
-
var s =
|
|
243
|
-
return K(b, o), K(H,
|
|
242
|
+
var s = l.nextSibling;
|
|
243
|
+
return K(b, o), K(H, l), g.$$click = () => P("name"), f(n, d(Y, {
|
|
244
244
|
field: "name"
|
|
245
245
|
}), null), f(u, d(_, {
|
|
246
246
|
get when() {
|
|
@@ -252,7 +252,7 @@ function $t(e) {
|
|
|
252
252
|
onResize: re
|
|
253
253
|
});
|
|
254
254
|
}
|
|
255
|
-
}), null), f(
|
|
255
|
+
}), null), f(l, d(_, {
|
|
256
256
|
get when() {
|
|
257
257
|
return v().showModified;
|
|
258
258
|
},
|
|
@@ -271,14 +271,14 @@ function $t(e) {
|
|
|
271
271
|
});
|
|
272
272
|
}
|
|
273
273
|
}), null), p((c) => {
|
|
274
|
-
var m = W("relative shrink-0", v().showSize && "border-r border-
|
|
274
|
+
var m = W("relative shrink-0", v().showSize && "border-r border-[var(--floe-line)]"), $ = `${B()}px`;
|
|
275
275
|
return m !== c.e && N(r, c.e = m), $ !== c.t && T(r, "width", c.t = $), c;
|
|
276
276
|
}, {
|
|
277
277
|
e: void 0,
|
|
278
278
|
t: void 0
|
|
279
279
|
}), r;
|
|
280
280
|
}
|
|
281
|
-
}), null), f(
|
|
281
|
+
}), null), f(l, d(_, {
|
|
282
282
|
get when() {
|
|
283
283
|
return v().showSize;
|
|
284
284
|
},
|
|
@@ -288,8 +288,8 @@ function $t(e) {
|
|
|
288
288
|
field: "size"
|
|
289
289
|
}), null), p((c) => T(r, "width", `${V()}px`)), r;
|
|
290
290
|
}
|
|
291
|
-
}), null), ue(s, "pointerdown", X.onPointerDown, !0), ue(s, "scroll",
|
|
292
|
-
R = r,
|
|
291
|
+
}), null), ue(s, "pointerdown", X.onPointerDown, !0), ue(s, "scroll", z.onScroll), K((r) => {
|
|
292
|
+
R = r, z.scrollRef(r), a.setScrollContainer(r);
|
|
293
293
|
}, s), f(s, d(_, {
|
|
294
294
|
get when() {
|
|
295
295
|
return !e.initializing;
|
|
@@ -337,14 +337,14 @@ function $t(e) {
|
|
|
337
337
|
get children() {
|
|
338
338
|
return d(_, {
|
|
339
339
|
get when() {
|
|
340
|
-
return
|
|
340
|
+
return a.currentFiles().length > 0;
|
|
341
341
|
},
|
|
342
342
|
get fallback() {
|
|
343
343
|
return (() => {
|
|
344
344
|
var r = Je();
|
|
345
345
|
return f(r, d(_, {
|
|
346
346
|
get when() {
|
|
347
|
-
return
|
|
347
|
+
return a.filterQueryApplied().trim();
|
|
348
348
|
},
|
|
349
349
|
get fallback() {
|
|
350
350
|
return Ze();
|
|
@@ -352,10 +352,10 @@ function $t(e) {
|
|
|
352
352
|
get children() {
|
|
353
353
|
return [(() => {
|
|
354
354
|
var i = je(), c = i.firstChild, m = c.nextSibling;
|
|
355
|
-
return m.nextSibling, f(i, () =>
|
|
355
|
+
return m.nextSibling, f(i, () => a.filterQueryApplied(), m), i;
|
|
356
356
|
})(), (() => {
|
|
357
357
|
var i = Ke();
|
|
358
|
-
return i.$$click = () =>
|
|
358
|
+
return i.$$click = () => a.setFilterQuery(""), i;
|
|
359
359
|
})()];
|
|
360
360
|
}
|
|
361
361
|
})), r;
|
|
@@ -387,13 +387,13 @@ function $t(e) {
|
|
|
387
387
|
return M();
|
|
388
388
|
},
|
|
389
389
|
get enableDragDrop() {
|
|
390
|
-
return
|
|
390
|
+
return F();
|
|
391
391
|
},
|
|
392
392
|
dragContext: w,
|
|
393
393
|
registerRow: ee
|
|
394
394
|
})
|
|
395
395
|
})), p((i) => {
|
|
396
|
-
var c = `${
|
|
396
|
+
var c = `${z.paddingTop()}px`, m = `${z.paddingBottom()}px`;
|
|
397
397
|
return c !== i.e && T(r, "padding-top", i.e = c), m !== i.t && T(r, "padding-bottom", i.t = m), i;
|
|
398
398
|
}, {
|
|
399
399
|
e: void 0,
|
|
@@ -411,8 +411,8 @@ function $t(e) {
|
|
|
411
411
|
return N(i, qe), p((c) => _e(i, r(), c)), i;
|
|
412
412
|
})()
|
|
413
413
|
}), null), p((r) => {
|
|
414
|
-
var i = W("relative flex flex-col h-full min-h-0", e.class), c = e.initializing || void 0, m = W("relative flex-1 min-w-0", v().showModified && "border-r border-
|
|
415
|
-
return i !== r.e && N(t, r.e = i), c !== r.t &&
|
|
414
|
+
var i = W("relative flex flex-col h-full min-h-0", e.class), c = e.initializing || void 0, m = W("relative flex-1 min-w-0", v().showModified && "border-r border-[var(--floe-line)]");
|
|
415
|
+
return i !== r.e && N(t, r.e = i), c !== r.t && ye(t, "aria-busy", r.t = c), m !== r.a && N(u, r.a = m), r;
|
|
416
416
|
}, {
|
|
417
417
|
e: void 0,
|
|
418
418
|
t: void 0,
|
|
@@ -421,12 +421,12 @@ function $t(e) {
|
|
|
421
421
|
})();
|
|
422
422
|
}
|
|
423
423
|
function it(e) {
|
|
424
|
-
const
|
|
424
|
+
const a = we(), w = () => a.isSelected(e.item.id), F = () => a.getFilterMatchForId(e.item.id), M = pe(() => e.item), D = He(a, M, {
|
|
425
425
|
source: "list"
|
|
426
426
|
});
|
|
427
|
-
let b, S = null, O = 0,
|
|
427
|
+
let b, S = null, O = 0, z = 0, C = !1;
|
|
428
428
|
const A = 5, R = 500;
|
|
429
|
-
let
|
|
429
|
+
let y = null;
|
|
430
430
|
const [ee, G] = J(!1), P = () => b === "touch" || b === "pen", te = () => e.item.type === "folder", q = () => te() && e.enableDragDrop && e.dragContext, X = () => {
|
|
431
431
|
if (!q() || !e.dragContext) return !1;
|
|
432
432
|
const n = e.dragContext.dragState();
|
|
@@ -436,7 +436,7 @@ function it(e) {
|
|
|
436
436
|
const n = e.dragContext.dragState();
|
|
437
437
|
return n.isDragging ? n.draggedItems.some((s) => s.item.id === e.item.id) : !1;
|
|
438
438
|
}, U = () => {
|
|
439
|
-
|
|
439
|
+
y !== null && (clearTimeout(y), y = null);
|
|
440
440
|
}, ne = () => {
|
|
441
441
|
typeof document > "u" || (document.removeEventListener("pointermove", L, !0), document.removeEventListener("pointerup", v, !0), document.removeEventListener("pointercancel", B, !0));
|
|
442
442
|
}, ie = () => {
|
|
@@ -444,16 +444,16 @@ function it(e) {
|
|
|
444
444
|
}, H = (n) => {
|
|
445
445
|
U(), ne(), C && e.dragContext && e.dragContext.endDrag(n), S = null, C = !1;
|
|
446
446
|
};
|
|
447
|
-
|
|
447
|
+
le(() => {
|
|
448
448
|
e.registerRow(e.item.id, null), H(!1);
|
|
449
449
|
});
|
|
450
450
|
const Q = (n, s) => {
|
|
451
451
|
if (!e.enableDragDrop || !e.dragContext || C) return;
|
|
452
|
-
C = !0, w() ||
|
|
453
|
-
const r =
|
|
452
|
+
C = !0, w() || a.selectItem(e.item.id, !1);
|
|
453
|
+
const r = a.getSelectedItemsList(), c = (r.length > 0 && w() ? r : [e.item]).map((m) => ({
|
|
454
454
|
item: m,
|
|
455
455
|
sourceInstanceId: e.instanceId,
|
|
456
|
-
sourcePath:
|
|
456
|
+
sourcePath: a.currentPath()
|
|
457
457
|
}));
|
|
458
458
|
if (P() && "vibrate" in navigator)
|
|
459
459
|
try {
|
|
@@ -463,7 +463,7 @@ function it(e) {
|
|
|
463
463
|
e.dragContext.startDrag(c, n, s);
|
|
464
464
|
}, L = (n) => {
|
|
465
465
|
if (S !== n.pointerId) return;
|
|
466
|
-
const s = n.clientX - O, r = n.clientY -
|
|
466
|
+
const s = n.clientX - O, r = n.clientY - z, i = Math.sqrt(s * s + r * r);
|
|
467
467
|
if (P() && !C && i > 10) {
|
|
468
468
|
H(!1);
|
|
469
469
|
return;
|
|
@@ -474,8 +474,8 @@ function it(e) {
|
|
|
474
474
|
}, B = (n) => {
|
|
475
475
|
S === n.pointerId && (D.onPointerCancel(), H(!1));
|
|
476
476
|
}, V = (n) => {
|
|
477
|
-
b = n.pointerType, D.onPointerDown(n), !(n.pointerType === "mouse" && n.button !== 0) && (!e.enableDragDrop || !e.dragContext || (S = n.pointerId, O = n.clientX,
|
|
478
|
-
S !== null && !C && Q(O,
|
|
477
|
+
b = n.pointerType, D.onPointerDown(n), !(n.pointerType === "mouse" && n.button !== 0) && (!e.enableDragDrop || !e.dragContext || (S = n.pointerId, O = n.clientX, z = n.clientY, C = !1, ie(), P() && (U(), y = setTimeout(() => {
|
|
478
|
+
S !== null && !C && Q(O, z);
|
|
479
479
|
}, R))));
|
|
480
480
|
}, re = (n) => {
|
|
481
481
|
b = n.pointerType, D.onPointerMove(n);
|
|
@@ -502,22 +502,22 @@ function it(e) {
|
|
|
502
502
|
}
|
|
503
503
|
if (!D.consumeClickSuppression(n)) {
|
|
504
504
|
if (P()) {
|
|
505
|
-
|
|
505
|
+
a.openItem(e.item);
|
|
506
506
|
return;
|
|
507
507
|
}
|
|
508
508
|
if (n.shiftKey) {
|
|
509
|
-
|
|
509
|
+
a.selectRangeTo(e.item.id, he(n));
|
|
510
510
|
return;
|
|
511
511
|
}
|
|
512
|
-
|
|
512
|
+
a.selectItem(e.item.id, he(n));
|
|
513
513
|
}
|
|
514
|
-
},
|
|
515
|
-
P() ||
|
|
514
|
+
}, l = () => {
|
|
515
|
+
P() || a.openItem(e.item);
|
|
516
516
|
}, u = (n) => {
|
|
517
517
|
if (n.preventDefault(), n.stopPropagation(), P()) return;
|
|
518
|
-
|
|
519
|
-
const s =
|
|
520
|
-
|
|
518
|
+
a.ensureContextMenuSelection(e.item.id);
|
|
519
|
+
const s = a.getSelectedItemsList(), r = s.length > 0 ? s : [e.item];
|
|
520
|
+
a.showContextMenu(Ne({
|
|
521
521
|
x: n.clientX,
|
|
522
522
|
y: n.clientY,
|
|
523
523
|
triggerItem: e.item,
|
|
@@ -529,7 +529,7 @@ function it(e) {
|
|
|
529
529
|
var n = et(), s = n.firstChild, r = s.firstChild;
|
|
530
530
|
return K((i) => {
|
|
531
531
|
e.registerRow(e.item.id, i);
|
|
532
|
-
}, n),
|
|
532
|
+
}, n), ze(n, Re({
|
|
533
533
|
get "data-file-browser-item-id"() {
|
|
534
534
|
return e.item.id;
|
|
535
535
|
},
|
|
@@ -538,7 +538,7 @@ function it(e) {
|
|
|
538
538
|
}
|
|
539
539
|
}, Be, {
|
|
540
540
|
onClick: o,
|
|
541
|
-
onDblClick:
|
|
541
|
+
onDblClick: l,
|
|
542
542
|
onContextMenu: u,
|
|
543
543
|
onPointerDown: V,
|
|
544
544
|
onPointerMove: re,
|
|
@@ -548,14 +548,14 @@ function it(e) {
|
|
|
548
548
|
return W(
|
|
549
549
|
tt,
|
|
550
550
|
"group cursor-pointer",
|
|
551
|
-
"transition-
|
|
552
|
-
"hover:bg-
|
|
551
|
+
"transition-[background-color,transform,opacity,box-shadow] duration-[var(--floe-duration-fast)] ease-out",
|
|
552
|
+
"hover:bg-[var(--floe-state-selected)]",
|
|
553
553
|
"focus:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring",
|
|
554
|
-
w() && "bg-
|
|
554
|
+
w() && "bg-[var(--floe-state-selected)] text-accent-foreground",
|
|
555
555
|
// Drag state styling - being dragged items become translucent
|
|
556
556
|
Y() && "opacity-40 scale-[0.98]",
|
|
557
557
|
// Drop target styling - enhanced visual feedback
|
|
558
|
-
x() && X() && ["bg-primary/15 outline outline-2 outline-primary/60", "scale-[1.01] shadow-
|
|
558
|
+
x() && X() && ["bg-primary/15 outline outline-2 outline-primary/60", "scale-[1.01] shadow-[var(--floe-elevation-raised)]"],
|
|
559
559
|
x() && !X() && ["bg-destructive/10 outline outline-2 outline-dashed outline-destructive/50"]
|
|
560
560
|
);
|
|
561
561
|
}
|
|
@@ -575,7 +575,7 @@ function it(e) {
|
|
|
575
575
|
return e.item.name;
|
|
576
576
|
},
|
|
577
577
|
get match() {
|
|
578
|
-
return
|
|
578
|
+
return F();
|
|
579
579
|
},
|
|
580
580
|
get class() {
|
|
581
581
|
return Ee(e.item);
|