@floegence/floe-webapp-core 0.86.58 → 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 +266 -261
- 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,41 +1,41 @@
|
|
|
1
|
-
import { createComponent as o, Portal as N, insert as
|
|
2
|
-
import { createSignal as F, createEffect as V, createMemo as d, Show as
|
|
1
|
+
import { createComponent as o, Portal as N, insert as a, effect as m, className as $, memo as B, template as l, setAttribute as A } from "solid-js/web";
|
|
2
|
+
import { createSignal as F, createEffect as V, createMemo as d, Show as u, For as j } from "solid-js";
|
|
3
3
|
import { Presence as U, Motion as X } from "../../node_modules/.pnpm/solid-motionone@1.0.4_solid-js@1.9.17/node_modules/solid-motionone/dist/index.js";
|
|
4
|
-
import { cn as
|
|
4
|
+
import { cn as p } from "../../utils/cn.js";
|
|
5
5
|
import { useFileBrowserDrag as G } from "../../context/FileBrowserDragContext.js";
|
|
6
6
|
import { FileItemIcon as W } from "./FileIcons.js";
|
|
7
|
-
var Y = /* @__PURE__ */
|
|
7
|
+
var Y = /* @__PURE__ */ l('<div class="text-caption text-[var(--floe-ink-soft)] pl-6">and <!> more...'), q = /* @__PURE__ */ l("<span>Drop to move"), y = /* @__PURE__ */ l("<div>"), H = /* @__PURE__ */ l('<div class="flex items-center gap-2.5 text-xs text-foreground"><span class="flex-shrink-0 w-4 h-4"></span><span class="truncate font-medium">'), J = /* @__PURE__ */ l("<span>Cannot drop here"), K = /* @__PURE__ */ l('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><polyline points="20 6 9 17 4 12">'), L = /* @__PURE__ */ l('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><line x1=18 y1=6 x2=6 y2=18></line><line x1=6 y1=6 x2=18 y2=18>');
|
|
8
8
|
const x = 3, P = 4, T = 4, Q = 0.2;
|
|
9
|
-
function
|
|
10
|
-
const g = G(), n = () => g?.dragState(), S = () => n()?.isDragging ?? !1, C = () => n()?.isDragEnding ?? !1, [c, h] = F(null), [
|
|
11
|
-
let
|
|
9
|
+
function ae() {
|
|
10
|
+
const g = G(), n = () => g?.dragState(), S = () => n()?.isDragging ?? !1, C = () => n()?.isDragEnding ?? !1, [c, h] = F(null), [i, v] = F(!1);
|
|
11
|
+
let w = !1;
|
|
12
12
|
V(() => {
|
|
13
13
|
const e = S(), t = C();
|
|
14
|
-
if (e && !t && !
|
|
14
|
+
if (e && !t && !w && (h(null), v(!1)), t && !w) {
|
|
15
15
|
const r = n();
|
|
16
16
|
if (r && r.draggedItems.length > 0) {
|
|
17
|
-
const
|
|
17
|
+
const s = r.pointerPosition;
|
|
18
18
|
h({
|
|
19
19
|
items: r.draggedItems.map((D) => D.item),
|
|
20
20
|
position: {
|
|
21
|
-
x:
|
|
22
|
-
y:
|
|
21
|
+
x: s.x + P,
|
|
22
|
+
y: s.y + T
|
|
23
23
|
},
|
|
24
24
|
target: r.endAnimationTarget,
|
|
25
25
|
committed: r.isDropCommitted
|
|
26
|
-
}),
|
|
26
|
+
}), v(!0);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
w = t;
|
|
30
30
|
});
|
|
31
|
-
const R = () => S() || C() ||
|
|
31
|
+
const R = () => S() || C() || i(), k = d(() => {
|
|
32
32
|
const e = c();
|
|
33
33
|
return e ? e.items.slice(0, x) : (n()?.draggedItems ?? []).slice(0, x).map((r) => r.item);
|
|
34
|
-
}),
|
|
34
|
+
}), _ = d(() => {
|
|
35
35
|
const e = c();
|
|
36
36
|
return e ? e.items.length : n()?.draggedItems?.length ?? 0;
|
|
37
|
-
}),
|
|
38
|
-
const e =
|
|
37
|
+
}), E = d(() => {
|
|
38
|
+
const e = _();
|
|
39
39
|
return e > x ? e - x : 0;
|
|
40
40
|
}), b = d(() => {
|
|
41
41
|
const e = c();
|
|
@@ -52,27 +52,27 @@ function le() {
|
|
|
52
52
|
}), z = d(() => {
|
|
53
53
|
const e = c();
|
|
54
54
|
return e?.committed && e?.target ? e.target : b();
|
|
55
|
-
}), M = d(() => c()?.committed ?? !1),
|
|
55
|
+
}), M = d(() => c()?.committed ?? !1), f = () => n()?.isValidDrop ?? !1, O = () => !!n()?.dropTarget, I = () => O() && !c();
|
|
56
56
|
return o(U, {
|
|
57
57
|
get children() {
|
|
58
|
-
return o(
|
|
58
|
+
return o(u, {
|
|
59
59
|
get when() {
|
|
60
|
-
return B(() => !!R())() &&
|
|
60
|
+
return B(() => !!R())() && k().length > 0;
|
|
61
61
|
},
|
|
62
62
|
get children() {
|
|
63
63
|
return o(N, {
|
|
64
64
|
get children() {
|
|
65
65
|
return o(X.div, {
|
|
66
66
|
get class() {
|
|
67
|
-
return
|
|
67
|
+
return p("fixed top-0 left-0 pointer-events-none z-[9999]", "will-change-transform");
|
|
68
68
|
},
|
|
69
69
|
initial: !1,
|
|
70
70
|
get animate() {
|
|
71
71
|
return {
|
|
72
|
-
x:
|
|
73
|
-
y:
|
|
74
|
-
opacity:
|
|
75
|
-
scale:
|
|
72
|
+
x: i() ? z().x : b().x,
|
|
73
|
+
y: i() ? z().y : b().y,
|
|
74
|
+
opacity: i() ? 0 : 1,
|
|
75
|
+
scale: i() ? 0.75 : 1
|
|
76
76
|
};
|
|
77
77
|
},
|
|
78
78
|
exit: {
|
|
@@ -81,45 +81,45 @@ function le() {
|
|
|
81
81
|
},
|
|
82
82
|
get transition() {
|
|
83
83
|
return {
|
|
84
|
-
duration:
|
|
84
|
+
duration: i() ? Q : 0,
|
|
85
85
|
easing: "ease-out"
|
|
86
86
|
};
|
|
87
87
|
},
|
|
88
88
|
onMotionComplete: () => {
|
|
89
|
-
|
|
89
|
+
i() && (v(!1), h(null));
|
|
90
90
|
},
|
|
91
91
|
get children() {
|
|
92
92
|
return [(() => {
|
|
93
93
|
var e = y();
|
|
94
|
-
return
|
|
94
|
+
return a(e, o(j, {
|
|
95
95
|
get each() {
|
|
96
|
-
return
|
|
96
|
+
return k();
|
|
97
97
|
},
|
|
98
98
|
children: (t) => (() => {
|
|
99
|
-
var r = H(),
|
|
100
|
-
return
|
|
99
|
+
var r = H(), s = r.firstChild, D = s.nextSibling;
|
|
100
|
+
return a(s, o(W, {
|
|
101
101
|
item: t,
|
|
102
102
|
size: 16,
|
|
103
103
|
class: "w-4 h-4"
|
|
104
|
-
})),
|
|
104
|
+
})), a(D, () => t.name), r;
|
|
105
105
|
})()
|
|
106
|
-
}), null),
|
|
106
|
+
}), null), a(e, o(u, {
|
|
107
107
|
get when() {
|
|
108
|
-
return
|
|
108
|
+
return E() > 0;
|
|
109
109
|
},
|
|
110
110
|
get children() {
|
|
111
|
-
var t = Y(), r = t.firstChild,
|
|
112
|
-
return
|
|
111
|
+
var t = Y(), r = t.firstChild, s = r.nextSibling;
|
|
112
|
+
return s.nextSibling, a(t, E, s), t;
|
|
113
113
|
}
|
|
114
|
-
}), null),
|
|
114
|
+
}), null), a(e, o(u, {
|
|
115
115
|
get when() {
|
|
116
116
|
return I();
|
|
117
117
|
},
|
|
118
118
|
get children() {
|
|
119
119
|
var t = y();
|
|
120
|
-
return
|
|
120
|
+
return a(t, o(u, {
|
|
121
121
|
get when() {
|
|
122
|
-
return
|
|
122
|
+
return f();
|
|
123
123
|
},
|
|
124
124
|
get fallback() {
|
|
125
125
|
return [o(ee, {
|
|
@@ -131,37 +131,37 @@ function le() {
|
|
|
131
131
|
class: "w-3.5 h-3.5"
|
|
132
132
|
}), q()];
|
|
133
133
|
}
|
|
134
|
-
})),
|
|
134
|
+
})), m(() => $(t, p("flex items-center gap-1.5 pt-1.5 mt-1 border-t border-[var(--floe-line)] text-caption font-medium", "transition-colors duration-[var(--floe-duration-fast)]", f() ? "text-success" : "text-error"))), t;
|
|
135
135
|
}
|
|
136
|
-
}), null),
|
|
137
|
-
"flex flex-col gap-1 p-2.5 rounded-
|
|
138
|
-
"bg-card border border-
|
|
139
|
-
"shadow-
|
|
136
|
+
}), null), m(() => $(e, p(
|
|
137
|
+
"flex flex-col gap-1 p-2.5 rounded-control",
|
|
138
|
+
"bg-card border border-[var(--floe-line)]",
|
|
139
|
+
"shadow-[var(--floe-elevation-raised)]",
|
|
140
140
|
"min-w-[150px] max-w-[220px]",
|
|
141
141
|
// Entrance animation (only when not exiting)
|
|
142
|
-
!
|
|
142
|
+
!i() && "animate-in fade-in zoom-in-95 duration-[var(--floe-duration-fast)]",
|
|
143
143
|
// Border transitions
|
|
144
|
-
"transition-[border-color,box-shadow] duration-
|
|
145
|
-
I() &&
|
|
146
|
-
I() && !
|
|
144
|
+
"transition-[border-color,box-shadow] duration-[var(--floe-duration-fast)]",
|
|
145
|
+
I() && f() && "border-success/60",
|
|
146
|
+
I() && !f() && "border-error/60",
|
|
147
147
|
// Committed state
|
|
148
|
-
|
|
148
|
+
i() && M() && "border-success/60"
|
|
149
149
|
))), e;
|
|
150
|
-
})(), o(
|
|
150
|
+
})(), o(u, {
|
|
151
151
|
get when() {
|
|
152
|
-
return
|
|
152
|
+
return _() > 1;
|
|
153
153
|
},
|
|
154
154
|
get children() {
|
|
155
155
|
var e = y();
|
|
156
|
-
return
|
|
156
|
+
return a(e, _), m(() => $(e, p(
|
|
157
157
|
"absolute -top-2 -right-2",
|
|
158
158
|
"min-w-[20px] h-5 px-1.5 rounded-full",
|
|
159
159
|
"bg-foreground text-background",
|
|
160
160
|
"flex items-center justify-center",
|
|
161
|
-
"text-
|
|
162
|
-
"shadow-
|
|
161
|
+
"text-caption font-semibold",
|
|
162
|
+
"shadow-[var(--floe-elevation-raised)]",
|
|
163
163
|
// Entrance animation (only when not exiting)
|
|
164
|
-
!
|
|
164
|
+
!i() && "animate-in zoom-in-50 duration-[var(--floe-duration-base)]"
|
|
165
165
|
))), e;
|
|
166
166
|
}
|
|
167
167
|
})];
|
|
@@ -177,15 +177,15 @@ function le() {
|
|
|
177
177
|
function Z(g) {
|
|
178
178
|
return (() => {
|
|
179
179
|
var n = K();
|
|
180
|
-
return
|
|
180
|
+
return m(() => A(n, "class", g.class)), n;
|
|
181
181
|
})();
|
|
182
182
|
}
|
|
183
183
|
function ee(g) {
|
|
184
184
|
return (() => {
|
|
185
185
|
var n = L();
|
|
186
|
-
return
|
|
186
|
+
return m(() => A(n, "class", g.class)), n;
|
|
187
187
|
})();
|
|
188
188
|
}
|
|
189
189
|
export {
|
|
190
|
-
|
|
190
|
+
ae as FileBrowserDragPreview
|
|
191
191
|
};
|
|
@@ -14,7 +14,7 @@ import { FileBrowserToolbar as U } from "./FileBrowserToolbar.js";
|
|
|
14
14
|
import { FileBrowserStatusBar as X } from "./FileBrowserStatusBar.js";
|
|
15
15
|
import { FileContextMenu as Y } from "./FileContextMenu.js";
|
|
16
16
|
import { FileBrowserDragPreview as Z } from "./DragPreview.js";
|
|
17
|
-
var p = /* @__PURE__ */ S('<div class="border-b border-
|
|
17
|
+
var p = /* @__PURE__ */ S('<div class="border-b border-[var(--floe-line)]">'), ee = /* @__PURE__ */ S('<div><div class="flex flex-1 min-h-0 relative"><div class="flex-1 min-w-0 flex flex-col"><div class="flex-1 min-h-0">');
|
|
18
18
|
function Ce(e) {
|
|
19
19
|
return n(N, {
|
|
20
20
|
get files() {
|
|
@@ -108,12 +108,12 @@ function Ce(e) {
|
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
110
|
function te(e) {
|
|
111
|
-
const r = T(), I = O(),
|
|
111
|
+
const r = T(), I = O(), o = q(), f = () => I.isMobile(), [h, c] = B(null), x = () => h() ?? r.sidebarWidth(), R = () => e.sidebarResizable ?? !0, l = () => (e.enableDragDrop ?? !0) && !!o, s = () => e.instanceId ?? `filebrowser-${Math.random().toString(36).slice(2, 9)}`;
|
|
112
112
|
let v, C = null, w = null;
|
|
113
113
|
E(() => {
|
|
114
|
-
if (!
|
|
114
|
+
if (!o || !l()) return;
|
|
115
115
|
const t = {
|
|
116
|
-
instanceId:
|
|
116
|
+
instanceId: s(),
|
|
117
117
|
currentPath: r.currentPath,
|
|
118
118
|
files: r.files,
|
|
119
119
|
onDragMove: e.onDragMove,
|
|
@@ -122,9 +122,9 @@ function te(e) {
|
|
|
122
122
|
optimisticRemove: r.optimisticRemove,
|
|
123
123
|
optimisticInsert: r.optimisticInsert
|
|
124
124
|
};
|
|
125
|
-
|
|
125
|
+
o.registerInstance(t);
|
|
126
126
|
}), L(() => {
|
|
127
|
-
|
|
127
|
+
o && l() && o.unregisterInstance(s());
|
|
128
128
|
});
|
|
129
129
|
let M = !1, g = !1;
|
|
130
130
|
_(() => {
|
|
@@ -140,13 +140,13 @@ function te(e) {
|
|
|
140
140
|
}, y = () => !r.sidebarCollapsed() || !f(), P = () => {
|
|
141
141
|
c(r.sidebarWidth());
|
|
142
142
|
}, W = (t) => {
|
|
143
|
-
c((
|
|
143
|
+
c((d) => r.clampSidebarWidth((d ?? r.sidebarWidth()) + t));
|
|
144
144
|
}, F = () => {
|
|
145
145
|
const t = h();
|
|
146
146
|
t !== null && (r.setSidebarWidth(t), c(null));
|
|
147
147
|
};
|
|
148
148
|
return (() => {
|
|
149
|
-
var t = ee(),
|
|
149
|
+
var t = ee(), d = t.firstChild, u = d.firstChild, b = u.firstChild;
|
|
150
150
|
return t.$$keydown = D, a(t, n(m, {
|
|
151
151
|
get when() {
|
|
152
152
|
return e.header;
|
|
@@ -155,7 +155,7 @@ function te(e) {
|
|
|
155
155
|
var i = p();
|
|
156
156
|
return a(i, () => e.header), i;
|
|
157
157
|
}
|
|
158
|
-
}),
|
|
158
|
+
}), d), a(d, n(G, {
|
|
159
159
|
title: "Explorer",
|
|
160
160
|
get width() {
|
|
161
161
|
return x();
|
|
@@ -182,10 +182,10 @@ function te(e) {
|
|
|
182
182
|
get children() {
|
|
183
183
|
return n(j, {
|
|
184
184
|
get instanceId() {
|
|
185
|
-
return
|
|
185
|
+
return s();
|
|
186
186
|
},
|
|
187
187
|
get enableDragDrop() {
|
|
188
|
-
return
|
|
188
|
+
return l();
|
|
189
189
|
}
|
|
190
190
|
});
|
|
191
191
|
}
|
|
@@ -203,20 +203,20 @@ function te(e) {
|
|
|
203
203
|
get fallback() {
|
|
204
204
|
return n(Q, {
|
|
205
205
|
get instanceId() {
|
|
206
|
-
return
|
|
206
|
+
return s();
|
|
207
207
|
},
|
|
208
208
|
get enableDragDrop() {
|
|
209
|
-
return
|
|
209
|
+
return l();
|
|
210
210
|
}
|
|
211
211
|
});
|
|
212
212
|
},
|
|
213
213
|
get children() {
|
|
214
214
|
return n(J, {
|
|
215
215
|
get instanceId() {
|
|
216
|
-
return
|
|
216
|
+
return s();
|
|
217
217
|
},
|
|
218
218
|
get enableDragDrop() {
|
|
219
|
-
return
|
|
219
|
+
return l();
|
|
220
220
|
}
|
|
221
221
|
});
|
|
222
222
|
}
|
|
@@ -235,12 +235,12 @@ function te(e) {
|
|
|
235
235
|
}
|
|
236
236
|
}), null), a(t, n(m, {
|
|
237
237
|
get when() {
|
|
238
|
-
return
|
|
238
|
+
return l();
|
|
239
239
|
},
|
|
240
240
|
get children() {
|
|
241
241
|
return n(Z, {});
|
|
242
242
|
}
|
|
243
|
-
}), null), A(() => $(t, K("flex flex-col h-full min-h-0 bg-background", "border border-
|
|
243
|
+
}), null), A(() => $(t, K("flex flex-col h-full min-h-0 bg-background", "border border-[var(--floe-line)] rounded-control overflow-hidden", "shadow-sm", e.class))), t;
|
|
244
244
|
})();
|
|
245
245
|
}
|
|
246
246
|
k(["keydown"]);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { insert as
|
|
2
|
-
import { Show as
|
|
1
|
+
import { insert as l, createComponent as a, effect as f, className as v, setAttribute as h, template as u } from "solid-js/web";
|
|
2
|
+
import { Show as m } from "solid-js";
|
|
3
3
|
import { Skeleton as g } from "../loading/Skeleton.js";
|
|
4
4
|
import { cn as w } from "../../utils/cn.js";
|
|
5
5
|
import { useFileBrowser as $ } from "./FileBrowserContext.js";
|
|
6
|
-
var
|
|
6
|
+
var x = /* @__PURE__ */ u("<span aria-hidden=true>·"), b = /* @__PURE__ */ u("<span>"), C = /* @__PURE__ */ u('<div class="flex flex-wrap items-center gap-1.5"><span>'), p = /* @__PURE__ */ u("<div>"), _ = /* @__PURE__ */ u("<div data-file-browser-status-bar=true>");
|
|
7
7
|
function y(t) {
|
|
8
8
|
return `${t} ${t === 1 ? "item" : "items"}`;
|
|
9
9
|
}
|
|
@@ -11,10 +11,10 @@ function S(t) {
|
|
|
11
11
|
return `${t} selected`;
|
|
12
12
|
}
|
|
13
13
|
function A(t) {
|
|
14
|
-
const
|
|
14
|
+
const i = $(), c = () => i.currentFiles().length, s = () => i.selectedItems().size;
|
|
15
15
|
return (() => {
|
|
16
16
|
var o = _();
|
|
17
|
-
return
|
|
17
|
+
return l(o, a(m, {
|
|
18
18
|
get when() {
|
|
19
19
|
return !t.initializing;
|
|
20
20
|
},
|
|
@@ -28,32 +28,32 @@ function A(t) {
|
|
|
28
28
|
get children() {
|
|
29
29
|
return [(() => {
|
|
30
30
|
var e = C(), n = e.firstChild;
|
|
31
|
-
return
|
|
31
|
+
return l(n, () => t.formatItemCount?.(c()) ?? y(c())), l(e, a(m, {
|
|
32
32
|
get when() {
|
|
33
|
-
return
|
|
33
|
+
return i.filterQueryApplied().trim();
|
|
34
34
|
},
|
|
35
35
|
get children() {
|
|
36
|
-
return [
|
|
37
|
-
var r =
|
|
38
|
-
return
|
|
36
|
+
return [x(), (() => {
|
|
37
|
+
var r = b();
|
|
38
|
+
return l(r, () => t.filteredLabel ?? "Filtered"), r;
|
|
39
39
|
})()];
|
|
40
40
|
}
|
|
41
|
-
}), null),
|
|
41
|
+
}), null), l(e, a(m, {
|
|
42
42
|
get when() {
|
|
43
43
|
return s() > 0;
|
|
44
44
|
},
|
|
45
45
|
get children() {
|
|
46
|
-
return [
|
|
47
|
-
var r =
|
|
48
|
-
return
|
|
46
|
+
return [x(), (() => {
|
|
47
|
+
var r = b();
|
|
48
|
+
return l(r, () => t.formatSelectedCount?.(s()) ?? S(s())), r;
|
|
49
49
|
})()];
|
|
50
50
|
}
|
|
51
51
|
}), null), e;
|
|
52
52
|
})(), (() => {
|
|
53
53
|
var e = p();
|
|
54
|
-
return
|
|
55
|
-
var r = w("max-w-[200px] truncate text-right", t.pathClass),
|
|
56
|
-
return r !== n.e && v(e, n.e = r),
|
|
54
|
+
return l(e, () => i.currentPath()), f((n) => {
|
|
55
|
+
var r = w("max-w-[200px] truncate text-right", t.pathClass), d = i.currentPath();
|
|
56
|
+
return r !== n.e && v(e, n.e = r), d !== n.t && h(e, "title", n.t = d), n;
|
|
57
57
|
}, {
|
|
58
58
|
e: void 0,
|
|
59
59
|
t: void 0
|
|
@@ -61,7 +61,7 @@ function A(t) {
|
|
|
61
61
|
})()];
|
|
62
62
|
}
|
|
63
63
|
})), f((e) => {
|
|
64
|
-
var n = t.initializing || void 0, r = w("flex flex-wrap items-center justify-between gap-2 border-t border-
|
|
64
|
+
var n = t.initializing || void 0, r = w("flex flex-wrap items-center justify-between gap-2 border-t border-[var(--floe-line)] px-3 py-1 text-[length:var(--floe-type-caption)] leading-4 text-[var(--floe-ink-soft)]", t.class);
|
|
65
65
|
return n !== e.e && h(o, "aria-busy", e.e = n), r !== e.t && v(o, e.t = r), e;
|
|
66
66
|
}, {
|
|
67
67
|
e: void 0,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { addEventListener as M, insert as n, createComponent as l, use as S, effect as s, className as f, template as a, setAttribute as g, delegateEvents as Q } from "solid-js/web";
|
|
2
|
-
import { onMount as R, Show as
|
|
2
|
+
import { onMount as R, Show as y } from "solid-js";
|
|
3
3
|
import { cn as v } from "../../utils/cn.js";
|
|
4
4
|
import { deferAfterPaint as E } from "../../utils/defer.js";
|
|
5
5
|
import { useFileBrowser as L } from "./FileBrowserContext.js";
|
|
6
6
|
import { Breadcrumb as T } from "./Breadcrumb.js";
|
|
7
7
|
import { Grid as V } from "../icons/index.js";
|
|
8
|
-
var N = /* @__PURE__ */ a('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><line x1=8 y1=6 x2=21 y2=6></line><line x1=8 y1=12 x2=21 y2=12></line><line x1=8 y1=18 x2=21 y2=18></line><line x1=3 y1=6 x2=3.01 y2=6></line><line x1=3 y1=12 x2=3.01 y2=12></line><line x1=3 y1=18 x2=3.01 y2=18>'), U = /* @__PURE__ */ a('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"></path><path d="M12 10v6"></path><path d="m9 13 3-3 3 3">'), G = /* @__PURE__ */ a('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><rect width=18 height=18 x=3 y=3 rx=2 ry=2></rect><line x1=9 y1=3 x2=9 y2=21>'), P = /* @__PURE__ */ a('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><circle cx=11 cy=11 r=8></circle><path d="m21 21-4.3-4.3">'),
|
|
8
|
+
var N = /* @__PURE__ */ a('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><line x1=8 y1=6 x2=21 y2=6></line><line x1=8 y1=12 x2=21 y2=12></line><line x1=8 y1=18 x2=21 y2=18></line><line x1=3 y1=6 x2=3.01 y2=6></line><line x1=3 y1=12 x2=3.01 y2=12></line><line x1=3 y1=18 x2=3.01 y2=18>'), U = /* @__PURE__ */ a('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"></path><path d="M12 10v6"></path><path d="m9 13 3-3 3 3">'), G = /* @__PURE__ */ a('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><rect width=18 height=18 x=3 y=3 rx=2 ry=2></rect><line x1=9 y1=3 x2=9 y2=21>'), P = /* @__PURE__ */ a('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><circle cx=11 cy=11 r=8></circle><path d="m21 21-4.3-4.3">'), q = /* @__PURE__ */ a('<svg xmlns=http://www.w3.org/2000/svg viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="M18 6 6 18"></path><path d="m6 6 12 12">'), D = /* @__PURE__ */ a('<button type=button aria-label="Clear filter">'), H = /* @__PURE__ */ a('<div data-floe-input-surface class="flex items-center flex-1 gap-1 px-2 py-1 bg-[var(--floe-well)] rounded-control border border-[var(--floe-line)]"><input type=text placeholder=Filter... aria-label="Filter files by name">'), K = /* @__PURE__ */ a('<div class="ml-0.5 flex shrink-0 items-center gap-1">'), X = /* @__PURE__ */ a('<div><button type=button aria-label="Toggle sidebar"></button><button type=button aria-label="Navigate to parent folder"></button><div></div><div></div><div class="flex items-center gap-0.5 p-0.5 bg-[var(--floe-well)] rounded-group">'), Z = /* @__PURE__ */ a('<button type=button aria-label="Filter files">'), z = /* @__PURE__ */ a("<button type=button>");
|
|
9
9
|
const J = (r) => (() => {
|
|
10
10
|
var e = N();
|
|
11
11
|
return s(() => g(e, "class", r.class)), e;
|
|
@@ -19,20 +19,20 @@ const J = (r) => (() => {
|
|
|
19
19
|
var e = P();
|
|
20
20
|
return s(() => g(e, "class", r.class)), e;
|
|
21
21
|
})(), Y = (r) => (() => {
|
|
22
|
-
var e =
|
|
22
|
+
var e = q();
|
|
23
23
|
return s(() => g(e, "class", r.class)), e;
|
|
24
24
|
})();
|
|
25
25
|
function se(r) {
|
|
26
26
|
const e = L();
|
|
27
27
|
let i;
|
|
28
|
-
const
|
|
28
|
+
const u = () => {
|
|
29
29
|
const d = e.currentPath();
|
|
30
30
|
return d !== "/" && d !== "";
|
|
31
|
-
},
|
|
31
|
+
}, w = () => {
|
|
32
32
|
e.isFilterActive() ? (e.setFilterQuery(""), e.setFilterActive(!1)) : (e.setFilterActive(!0), E(() => i?.focus()));
|
|
33
33
|
}, h = () => {
|
|
34
34
|
e.setFilterQuery(""), i?.focus();
|
|
35
|
-
},
|
|
35
|
+
}, x = (d) => {
|
|
36
36
|
d.key === "Escape" && (e.setFilterQuery(""), e.setFilterActive(!1));
|
|
37
37
|
}, I = () => {
|
|
38
38
|
e.filterQuery().trim() || e.setFilterActive(!1);
|
|
@@ -40,40 +40,40 @@ function se(r) {
|
|
|
40
40
|
return R(() => {
|
|
41
41
|
r.filterInputRef && i && r.filterInputRef(i);
|
|
42
42
|
}), (() => {
|
|
43
|
-
var d =
|
|
44
|
-
return M(
|
|
43
|
+
var d = X(), m = d.firstChild, b = m.nextSibling, p = b.nextSibling, k = p.nextSibling, $ = k.nextSibling;
|
|
44
|
+
return M(m, "click", e.toggleSidebar, !0), n(m, l(W, {
|
|
45
45
|
class: "w-4 h-4"
|
|
46
|
-
})), M(
|
|
46
|
+
})), M(b, "click", e.navigateUp, !0), n(b, l(O, {
|
|
47
47
|
class: "w-4 h-4"
|
|
48
|
-
})), n(p, l(T, {})), n(
|
|
48
|
+
})), n(p, l(T, {})), n(k, l(y, {
|
|
49
49
|
get when() {
|
|
50
50
|
return e.isFilterActive();
|
|
51
51
|
},
|
|
52
52
|
get fallback() {
|
|
53
53
|
return (() => {
|
|
54
|
-
var t =
|
|
55
|
-
return t.$$click =
|
|
54
|
+
var t = Z();
|
|
55
|
+
return t.$$click = w, n(t, l(j, {
|
|
56
56
|
class: "w-4 h-4"
|
|
57
|
-
})), s(() => f(t, v("flex items-center justify-center w-7 h-7 rounded cursor-pointer", "transition-colors duration-
|
|
57
|
+
})), s(() => f(t, v("flex items-center justify-center w-7 h-7 rounded-xs cursor-pointer", "transition-colors duration-[var(--floe-duration-fast)]", "hover:bg-[var(--floe-state-press)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring"))), t;
|
|
58
58
|
})();
|
|
59
59
|
},
|
|
60
60
|
get children() {
|
|
61
|
-
var t =
|
|
61
|
+
var t = H(), c = t.firstChild;
|
|
62
62
|
return n(t, l(j, {
|
|
63
|
-
class: "w-3.5 h-3.5 text-
|
|
64
|
-
}),
|
|
63
|
+
class: "w-3.5 h-3.5 text-[var(--floe-ink-soft)] flex-shrink-0"
|
|
64
|
+
}), c), c.addEventListener("blur", I), c.$$keydown = x, c.$$input = (o) => e.setFilterQuery(o.currentTarget.value), S((o) => {
|
|
65
65
|
i = o, r.filterInputRef && r.filterInputRef(o);
|
|
66
|
-
},
|
|
66
|
+
}, c), n(t, l(y, {
|
|
67
67
|
get when() {
|
|
68
68
|
return e.filterQuery();
|
|
69
69
|
},
|
|
70
70
|
get children() {
|
|
71
|
-
var o =
|
|
71
|
+
var o = D();
|
|
72
72
|
return o.$$click = h, n(o, l(Y, {
|
|
73
73
|
class: "w-3 h-3"
|
|
74
|
-
})), s(() => f(o, v("flex items-center justify-center w-4 h-4 rounded-sm cursor-pointer", "text-
|
|
74
|
+
})), s(() => f(o, v("flex items-center justify-center w-4 h-4 rounded-sm cursor-pointer", "text-[var(--floe-ink-soft)] hover:text-foreground", "transition-colors duration-[var(--floe-duration-fast)]"))), o;
|
|
75
75
|
}
|
|
76
|
-
}), null), s(() => f(
|
|
76
|
+
}), null), s(() => f(c, v("flex-1 min-w-0 bg-transparent text-xs", "outline-none border-0 ring-0 shadow-none appearance-none", "focus:outline-none focus:ring-0", "placeholder:text-[var(--floe-ink-quiet)]"))), s(() => c.value = e.filterQuery()), t;
|
|
77
77
|
}
|
|
78
78
|
})), n($, l(B, {
|
|
79
79
|
mode: "list",
|
|
@@ -91,17 +91,17 @@ function se(r) {
|
|
|
91
91
|
onClick: () => e.setViewMode("grid"),
|
|
92
92
|
icon: V,
|
|
93
93
|
label: "Grid view"
|
|
94
|
-
}), null), n(d, l(
|
|
94
|
+
}), null), n(d, l(y, {
|
|
95
95
|
get when() {
|
|
96
96
|
return r.endActions;
|
|
97
97
|
},
|
|
98
98
|
get children() {
|
|
99
|
-
var t =
|
|
99
|
+
var t = K();
|
|
100
100
|
return n(t, () => r.endActions), t;
|
|
101
101
|
}
|
|
102
102
|
}), null), s((t) => {
|
|
103
|
-
var
|
|
104
|
-
return
|
|
103
|
+
var c = v("flex items-center gap-2 px-2 py-1.5 border-b border-[var(--floe-line)]", "bg-background/50 backdrop-blur-sm", r.class), o = v("md:hidden flex items-center justify-center w-7 h-7 rounded-xs cursor-pointer", "transition-colors duration-[var(--floe-duration-fast)]", "hover:bg-[var(--floe-state-press)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", !e.sidebarCollapsed() && "bg-[var(--floe-well)]"), F = !u(), _ = v("flex items-center justify-center w-7 h-7 rounded-xs cursor-pointer", "transition-colors duration-[var(--floe-duration-fast)]", "hover:bg-[var(--floe-state-press)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-transparent"), A = v("flex-1 min-w-0 overflow-hidden transition-colors duration-[var(--floe-duration-base)]", e.isFilterActive() && "hidden sm:block sm:flex-1"), C = v("flex items-center gap-1 transition-colors duration-[var(--floe-duration-base)] ease-out", e.isFilterActive() ? "flex-1 sm:flex-none sm:w-48" : "w-7");
|
|
104
|
+
return c !== t.e && f(d, t.e = c), o !== t.t && f(m, t.t = o), F !== t.a && (b.disabled = t.a = F), _ !== t.o && f(b, t.o = _), A !== t.i && f(p, t.i = A), C !== t.n && f(k, t.n = C), t;
|
|
105
105
|
}, {
|
|
106
106
|
e: void 0,
|
|
107
107
|
t: void 0,
|
|
@@ -118,9 +118,9 @@ function B(r) {
|
|
|
118
118
|
var i = z();
|
|
119
119
|
return i.$$click = () => r.onClick(), n(i, l(r.icon, {
|
|
120
120
|
class: "w-3.5 h-3.5"
|
|
121
|
-
})), s((
|
|
122
|
-
var
|
|
123
|
-
return
|
|
121
|
+
})), s((u) => {
|
|
122
|
+
var w = v("flex items-center justify-center w-6 h-6 rounded-sm cursor-pointer", "transition-colors duration-[var(--floe-duration-fast)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", e() ? "bg-background shadow-[var(--floe-elevation-raised)] text-foreground" : "text-[var(--floe-ink-soft)] hover:text-foreground"), h = r.label, x = e();
|
|
123
|
+
return w !== u.e && f(i, u.e = w), h !== u.t && g(i, "aria-label", u.t = h), x !== u.a && g(i, "aria-pressed", u.a = x), u;
|
|
124
124
|
}, {
|
|
125
125
|
e: void 0,
|
|
126
126
|
t: void 0,
|