@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,5 +1,5 @@
|
|
|
1
|
-
import { createComponent as r, Dynamic as V, insert as d, use as j, effect as P, setStyleProperty as G, memo as k, className as A, setAttribute as w, mergeProps as ze, template as
|
|
2
|
-
import { createSignal as M, onMount as He, onCleanup as Ee, createEffect as B, createMemo as
|
|
1
|
+
import { createComponent as r, Dynamic as V, insert as d, use as j, effect as P, setStyleProperty as G, memo as k, className as A, setAttribute as w, mergeProps as ze, template as h, delegateEvents as Fe } from "solid-js/web";
|
|
2
|
+
import { createSignal as M, onMount as He, onCleanup as Ee, createEffect as B, createMemo as I, For as J, Show as g, batch as Ve } from "solid-js";
|
|
3
3
|
import { observeViewport as _e } from "../../viewport.js";
|
|
4
4
|
import { useLayout as De } from "../../context/LayoutContext.js";
|
|
5
5
|
import { useResolvedFloeConfig as qe } from "../../context/FloeConfigContext.js";
|
|
@@ -9,7 +9,7 @@ import { useResizeObserver as je } from "../../hooks/useResizeObserver.js";
|
|
|
9
9
|
import { Dialog as Ge } from "../ui/Dialog.js";
|
|
10
10
|
import { DialogPlacementProvider as Je } from "../ui/DialogPlacementContext.js";
|
|
11
11
|
import { useOverlayMask as Qe } from "../../hooks/useOverlayMask.js";
|
|
12
|
-
import { cn as
|
|
12
|
+
import { cn as x } from "../../utils/cn.js";
|
|
13
13
|
import { deferAfterPaint as Xe, deferNonBlocking as Ye } from "../../utils/defer.js";
|
|
14
14
|
import { useComponentRegistry as Ze } from "../../context/ComponentRegistry.js";
|
|
15
15
|
import { Sidebar as et } from "./Sidebar.js";
|
|
@@ -24,15 +24,15 @@ import { resolveMobileTabActiveId as lt, resolveMobileTabSelect as st } from "./
|
|
|
24
24
|
import { KeepAliveStack as dt } from "./KeepAliveStack.js";
|
|
25
25
|
import { resolveShellSidebarActiveTabChange as ct } from "./sidebarVisibilityMotion.js";
|
|
26
26
|
import { createUIFirstSelection as bt } from "../../utils/uiFirstSelection.js";
|
|
27
|
-
var de = /* @__PURE__ */
|
|
27
|
+
var de = /* @__PURE__ */ h('<div class="flex items-center gap-2">'), ut = /* @__PURE__ */ h('<div class="h-full min-h-0 overflow-auto">'), ft = /* @__PURE__ */ h('<div class="flex shrink-0 min-h-0">'), mt = /* @__PURE__ */ h('<div class="h-full min-h-0"style=max-width:100%>'), vt = /* @__PURE__ */ h("<div data-floe-shell-slot=mobile-sidebar-backdrop>"), gt = /* @__PURE__ */ h('<div data-floe-shell-slot=mobile-sidebar-drawer tabindex=-1 role=dialog aria-modal=true><div class="h-full overflow-auto overscroll-contain">'), ht = /* @__PURE__ */ h("<div data-floe-shell-slot=terminal-panel style=border-top-color:var(--terminal-panel-border)>"), St = /* @__PURE__ */ h('<div data-floe-shell-slot=mobile-accessory class="relative shrink-0">'), yt = /* @__PURE__ */ h('<div data-floe-shell><a></a><div class="relative flex min-h-0 flex-1 flex-col overflow-hidden"data-floe-shell-slot=mobile-content-boundary><div data-floe-shell-slot=main-layout class="flex-1 min-h-0 flex overflow-hidden relative"><div data-floe-shell-slot=content-area><main data-floe-shell-slot=main tabindex=-1>');
|
|
28
28
|
function Ut(i) {
|
|
29
29
|
const [ce, be] = M(!1);
|
|
30
30
|
He(() => {
|
|
31
31
|
Ee(_e(window, (e) => be(e.keyboardOpen)));
|
|
32
32
|
});
|
|
33
|
-
const o = De(), ue = qe(), l = o.isMobile, [
|
|
34
|
-
container:
|
|
35
|
-
sidebarWidth: () => (D() ?? o.sidebarWidth()) + (
|
|
33
|
+
const o = De(), ue = qe(), l = o.isMobile, [fe, me] = M(), [ve, ge] = M(), he = je(ve), W = /* @__PURE__ */ new Map(), [_, L] = M(!1), [Se, ye] = M(!1), Ce = Ue({
|
|
34
|
+
container: fe,
|
|
35
|
+
sidebarWidth: () => (D() ?? o.sidebarWidth()) + (he()?.width ?? 0),
|
|
36
36
|
minContentWidth: () => i.sidebarMinContentWidth ?? 0
|
|
37
37
|
}), S = () => !l() && !!i.sidebarMinContentWidth && !u() && Ce() === "overlay";
|
|
38
38
|
B(() => {
|
|
@@ -100,13 +100,13 @@ function Ut(i) {
|
|
|
100
100
|
const e = o.sidebarVisibilityMotion(), a = o.sidebarVisibilityMotionRevision();
|
|
101
101
|
e === "instant" && Xe(() => o.clearSidebarVisibilityMotion(a));
|
|
102
102
|
});
|
|
103
|
-
const T =
|
|
103
|
+
const T = I(() => i.activityItems ? i.activityItems : c ? c.sidebarItems().filter((e) => !!e.icon).filter((e) => !(l() && e.sidebar?.hiddenOnMobile)).map((e) => ({
|
|
104
104
|
id: e.id,
|
|
105
105
|
icon: e.icon,
|
|
106
106
|
label: e.name,
|
|
107
107
|
badge: e.sidebar?.badge,
|
|
108
108
|
collapseBehavior: e.sidebar?.collapseBehavior ?? (e.sidebar?.fullScreen ? "preserve" : "toggle")
|
|
109
|
-
})) : []), Ae =
|
|
109
|
+
})) : []), Ae = I(() => T().map((e) => ({
|
|
110
110
|
...e,
|
|
111
111
|
buttonRef: (a) => {
|
|
112
112
|
a ? W.set(e.id, a) : W.delete(e.id), e.buttonRef?.(a);
|
|
@@ -119,25 +119,25 @@ function Ut(i) {
|
|
|
119
119
|
S() ? (e || W.get(o.sidebarActiveTab())?.focus({
|
|
120
120
|
preventScroll: !0
|
|
121
121
|
}), L(!e)) : o.setSidebarCollapsed(e);
|
|
122
|
-
},
|
|
122
|
+
}, Ie = I(() => u() ? [] : i.sidebarContent ? [] : c ? c.sidebarItems().filter((e) => !(l() && e.sidebar?.hiddenOnMobile)).filter((e) => e.sidebar?.fullScreen !== !0 && e.sidebar?.renderIn !== "main").map((e) => ({
|
|
123
123
|
id: e.id,
|
|
124
124
|
render: () => r(V, {
|
|
125
125
|
get component() {
|
|
126
126
|
return e.component;
|
|
127
127
|
}
|
|
128
128
|
})
|
|
129
|
-
})) : []),
|
|
129
|
+
})) : []), xe = (e) => {
|
|
130
130
|
if (!u()) {
|
|
131
131
|
if (i.sidebarContent) return i.sidebarContent(e);
|
|
132
132
|
if (c)
|
|
133
133
|
return r(dt, {
|
|
134
134
|
get views() {
|
|
135
|
-
return
|
|
135
|
+
return Ie();
|
|
136
136
|
},
|
|
137
137
|
activeId: e
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
|
-
}, N =
|
|
140
|
+
}, N = I(() => u() ? !0 : c ? c.getComponent(o.sidebarActiveTab())?.sidebar?.fullScreen ?? !1 : !1), Pe = I(() => {
|
|
141
141
|
if (u()) return !0;
|
|
142
142
|
if (!c) return !1;
|
|
143
143
|
const e = c.getComponent(o.sidebarActiveTab());
|
|
@@ -146,7 +146,7 @@ function Ut(i) {
|
|
|
146
146
|
B(() => {
|
|
147
147
|
l() && N() && y(!1);
|
|
148
148
|
});
|
|
149
|
-
const Te =
|
|
149
|
+
const Te = I(() => {
|
|
150
150
|
if (l() || i.bottomBarMode === "hidden") return;
|
|
151
151
|
if (i.bottomBarItems) return i.bottomBarItems;
|
|
152
152
|
if (!c) return;
|
|
@@ -209,7 +209,7 @@ function Ut(i) {
|
|
|
209
209
|
return;
|
|
210
210
|
}
|
|
211
211
|
X(e.id);
|
|
212
|
-
}, Oe =
|
|
212
|
+
}, Oe = I(() => {
|
|
213
213
|
const e = i.topBarActions;
|
|
214
214
|
if (!l() || (i.activityBottomItemsMobileMode ?? "hidden") !== "topBar") return e;
|
|
215
215
|
const s = i.activityBottomItems ?? [];
|
|
@@ -230,7 +230,7 @@ function Ut(i) {
|
|
|
230
230
|
}
|
|
231
231
|
})
|
|
232
232
|
}), e] : e;
|
|
233
|
-
}), Re = () => u() || (S() ? !_() : o.sidebarCollapsed()), Y = () => D() ?? o.sidebarWidth(),
|
|
233
|
+
}), Re = () => u() || (S() ? !_() : o.sidebarCollapsed()), Y = () => D() ?? o.sidebarWidth(), m = () => ue.config.accessibility, We = () => {
|
|
234
234
|
q(o.sidebarWidth());
|
|
235
235
|
}, Le = (e) => {
|
|
236
236
|
q((a) => o.clampSidebarWidth((a ?? o.sidebarWidth()) + e));
|
|
@@ -253,7 +253,7 @@ function Ut(i) {
|
|
|
253
253
|
});
|
|
254
254
|
const pe = () => {
|
|
255
255
|
if (typeof document > "u") return;
|
|
256
|
-
const e = document.getElementById(
|
|
256
|
+
const e = document.getElementById(m().mainContentId);
|
|
257
257
|
if (!(!e || !(e instanceof HTMLElement)))
|
|
258
258
|
try {
|
|
259
259
|
e.focus();
|
|
@@ -261,11 +261,11 @@ function Ut(i) {
|
|
|
261
261
|
}
|
|
262
262
|
}, U = Ke(() => (() => {
|
|
263
263
|
var e = ut();
|
|
264
|
-
return d(e, () =>
|
|
264
|
+
return d(e, () => xe(o.sidebarActiveTab())), e;
|
|
265
265
|
})());
|
|
266
266
|
return (() => {
|
|
267
267
|
var e = yt(), a = e.firstChild, s = a.nextSibling, n = s.firstChild, b = n.firstChild, E = b.firstChild;
|
|
268
|
-
return a.$$click = () => pe(), d(a, () =>
|
|
268
|
+
return a.$$click = () => pe(), d(a, () => m().skipLinkLabel), d(e, r(g, {
|
|
269
269
|
get when() {
|
|
270
270
|
return !l() || i.topBarMobileMode !== "hidden";
|
|
271
271
|
},
|
|
@@ -278,25 +278,25 @@ function Ut(i) {
|
|
|
278
278
|
return Oe();
|
|
279
279
|
},
|
|
280
280
|
get ariaLabel() {
|
|
281
|
-
return
|
|
281
|
+
return m().topBarLabel;
|
|
282
282
|
},
|
|
283
283
|
get class() {
|
|
284
284
|
return i.slotClassNames?.topBar;
|
|
285
285
|
}
|
|
286
286
|
});
|
|
287
287
|
}
|
|
288
|
-
}), s), j(
|
|
288
|
+
}), s), j(me, n), d(n, r(g, {
|
|
289
289
|
get when() {
|
|
290
290
|
return !l();
|
|
291
291
|
},
|
|
292
292
|
get children() {
|
|
293
|
-
return [r(
|
|
293
|
+
return [r(g, {
|
|
294
294
|
get when() {
|
|
295
295
|
return T().length > 0;
|
|
296
296
|
},
|
|
297
297
|
get children() {
|
|
298
|
-
var t =
|
|
299
|
-
return j(
|
|
298
|
+
var t = ft();
|
|
299
|
+
return j(ge, t), d(t, r(at, {
|
|
300
300
|
get items() {
|
|
301
301
|
return Ae();
|
|
302
302
|
},
|
|
@@ -314,19 +314,19 @@ function Ut(i) {
|
|
|
314
314
|
return u() ? void 0 : Be;
|
|
315
315
|
},
|
|
316
316
|
get ariaLabel() {
|
|
317
|
-
return
|
|
317
|
+
return m().primaryNavigationLabel;
|
|
318
318
|
},
|
|
319
319
|
get class() {
|
|
320
320
|
return i.slotClassNames?.activityBar;
|
|
321
321
|
}
|
|
322
322
|
})), t;
|
|
323
323
|
}
|
|
324
|
-
}), r(
|
|
324
|
+
}), r(g, {
|
|
325
325
|
get when() {
|
|
326
326
|
return !u();
|
|
327
327
|
},
|
|
328
328
|
get children() {
|
|
329
|
-
return r(
|
|
329
|
+
return r(g, {
|
|
330
330
|
get when() {
|
|
331
331
|
return S();
|
|
332
332
|
},
|
|
@@ -342,7 +342,7 @@ function Ut(i) {
|
|
|
342
342
|
return o.sidebarVisibilityMotion();
|
|
343
343
|
},
|
|
344
344
|
get ariaLabel() {
|
|
345
|
-
return
|
|
345
|
+
return m().sidebarLabel;
|
|
346
346
|
},
|
|
347
347
|
get resizer() {
|
|
348
348
|
return r(se, {
|
|
@@ -373,13 +373,13 @@ function Ut(i) {
|
|
|
373
373
|
presentation: "side-drawer",
|
|
374
374
|
drawerSide: "left",
|
|
375
375
|
get title() {
|
|
376
|
-
return
|
|
376
|
+
return m().sidebarLabel;
|
|
377
377
|
},
|
|
378
378
|
class: "floe-adaptive-shell-sidebar w-fit max-w-[calc(100%-48px)]",
|
|
379
379
|
contentClass: "flex-1 min-h-0 overflow-hidden p-0",
|
|
380
380
|
get children() {
|
|
381
|
-
var t =
|
|
382
|
-
return d(t, r(U, {})), P((
|
|
381
|
+
var t = mt();
|
|
382
|
+
return d(t, r(U, {})), P((f) => G(t, "width", `${Y()}px`)), t;
|
|
383
383
|
}
|
|
384
384
|
});
|
|
385
385
|
}
|
|
@@ -389,18 +389,18 @@ function Ut(i) {
|
|
|
389
389
|
}
|
|
390
390
|
})];
|
|
391
391
|
}
|
|
392
|
-
}), b), d(n, r(
|
|
392
|
+
}), b), d(n, r(g, {
|
|
393
393
|
get when() {
|
|
394
394
|
return k(() => !!(l() && $()))() && !u();
|
|
395
395
|
},
|
|
396
396
|
get children() {
|
|
397
397
|
return [(() => {
|
|
398
398
|
var t = vt();
|
|
399
|
-
return t.$$click = () => y(!1), P(() => A(t,
|
|
399
|
+
return t.$$click = () => y(!1), P(() => A(t, x("absolute inset-0 z-40 bg-black/30 cursor-pointer", i.slotClassNames?.mobileSidebarBackdrop))), t;
|
|
400
400
|
})(), (() => {
|
|
401
|
-
var t =
|
|
402
|
-
return typeof C == "function" ? j(C, t) : K = t, d(
|
|
403
|
-
var O =
|
|
401
|
+
var t = gt(), f = t.firstChild, C = K;
|
|
402
|
+
return typeof C == "function" ? j(C, t) : K = t, d(f, r(U, {})), P((v) => {
|
|
403
|
+
var O = x("absolute left-0 top-0 bottom-0 z-50", "w-72 max-w-[80vw]", "bg-sidebar border-r border-sidebar-border", "shadow-[var(--floe-elevation-float-strong)]", "animate-in slide-in-from-left duration-[var(--floe-duration-base)]", i.slotClassNames?.mobileSidebarDrawer), R = m().sidebarLabel;
|
|
404
404
|
return O !== v.e && A(t, v.e = O), R !== v.t && w(t, "aria-label", v.t = R), v;
|
|
405
405
|
}, {
|
|
406
406
|
e: void 0,
|
|
@@ -408,24 +408,24 @@ function Ut(i) {
|
|
|
408
408
|
}), t;
|
|
409
409
|
})()];
|
|
410
410
|
}
|
|
411
|
-
}), b), d(E, () => i.children), d(b, r(
|
|
411
|
+
}), b), d(E, () => i.children), d(b, r(g, {
|
|
412
412
|
get when() {
|
|
413
413
|
return k(() => !!(!l() && o.terminalOpened()))() && i.terminalPanel;
|
|
414
414
|
},
|
|
415
415
|
get children() {
|
|
416
|
-
var t =
|
|
416
|
+
var t = ht();
|
|
417
417
|
return d(t, r(se, {
|
|
418
418
|
direction: "vertical",
|
|
419
|
-
onResize: (
|
|
420
|
-
}), null), d(t, () => i.terminalPanel, null), P((
|
|
421
|
-
var C =
|
|
422
|
-
return C !==
|
|
419
|
+
onResize: (f) => o.setTerminalHeight(o.terminalHeight() - f)
|
|
420
|
+
}), null), d(t, () => i.terminalPanel, null), P((f) => {
|
|
421
|
+
var C = x("relative shrink-0 border-t border-[var(--floe-line)] bg-terminal-background overflow-hidden", i.slotClassNames?.terminalPanel), v = `${o.terminalHeight()}px`;
|
|
422
|
+
return C !== f.e && A(t, f.e = C), v !== f.t && G(t, "height", f.t = v), f;
|
|
423
423
|
}, {
|
|
424
424
|
e: void 0,
|
|
425
425
|
t: void 0
|
|
426
426
|
}), t;
|
|
427
427
|
}
|
|
428
|
-
}), null), d(s, r(
|
|
428
|
+
}), null), d(s, r(g, {
|
|
429
429
|
get when() {
|
|
430
430
|
return k(() => !!l())() && i.mobileAccessory;
|
|
431
431
|
},
|
|
@@ -433,7 +433,7 @@ function Ut(i) {
|
|
|
433
433
|
var t = St();
|
|
434
434
|
return d(t, () => i.mobileAccessory), P(() => t.inert = p()), t;
|
|
435
435
|
}
|
|
436
|
-
}), null), d(s, r(
|
|
436
|
+
}), null), d(s, r(g, {
|
|
437
437
|
get when() {
|
|
438
438
|
return k(() => !!l())() && i.mobileNavigationPanel;
|
|
439
439
|
},
|
|
@@ -445,7 +445,7 @@ function Ut(i) {
|
|
|
445
445
|
}
|
|
446
446
|
}));
|
|
447
447
|
}
|
|
448
|
-
}), null), d(e, r(
|
|
448
|
+
}), null), d(e, r(g, {
|
|
449
449
|
get when() {
|
|
450
450
|
return k(() => !l())() && i.bottomBarMode !== "hidden";
|
|
451
451
|
},
|
|
@@ -462,7 +462,7 @@ function Ut(i) {
|
|
|
462
462
|
}
|
|
463
463
|
});
|
|
464
464
|
}
|
|
465
|
-
}), null), d(e, r(
|
|
465
|
+
}), null), d(e, r(g, {
|
|
466
466
|
get when() {
|
|
467
467
|
return k(() => !!l())() && (T().length > 0 || i.mobileNavigationActions?.length);
|
|
468
468
|
},
|
|
@@ -493,7 +493,7 @@ function Ut(i) {
|
|
|
493
493
|
},
|
|
494
494
|
onSelect: X,
|
|
495
495
|
get ariaLabel() {
|
|
496
|
-
return
|
|
496
|
+
return m().mobileNavigationLabel;
|
|
497
497
|
},
|
|
498
498
|
get class() {
|
|
499
499
|
return i.slotClassNames?.mobileTabBar;
|
|
@@ -501,7 +501,7 @@ function Ut(i) {
|
|
|
501
501
|
});
|
|
502
502
|
}
|
|
503
503
|
}), null), P((t) => {
|
|
504
|
-
var
|
|
504
|
+
var f = i.fillParent ? "100%" : void 0, C = x(
|
|
505
505
|
// Use dvh when supported to avoid mobile browser UI causing layout jumps.
|
|
506
506
|
"h-screen h-[100dvh] w-full flex flex-col overflow-hidden",
|
|
507
507
|
"bg-background text-foreground",
|
|
@@ -510,8 +510,8 @@ function Ut(i) {
|
|
|
510
510
|
l() && i.topBarMobileMode === "hidden" && "safe-top",
|
|
511
511
|
i.slotClassNames?.root,
|
|
512
512
|
i.class
|
|
513
|
-
), v = `#${
|
|
514
|
-
return
|
|
513
|
+
), v = `#${m().mainContentId}`, O = x("fixed left-3 top-3 z-[120] rounded-md bg-primary px-3 py-2 text-xs font-medium text-primary-foreground shadow-[var(--floe-elevation-raised)]", "transition-transform duration-[var(--floe-duration-fast)] motion-reduce:transition-none", "-translate-y-[200%] focus:translate-y-0"), R = p(), Z = p() ? "true" : void 0, ee = i.sidebarMinContentWidth ? "true" : void 0, te = i.sidebarMinContentWidth ? "true" : void 0, ie = S() ? "overlay" : "inline", re = Se(), ne = x("flex-1 min-w-0 flex flex-col overflow-hidden", i.slotClassNames?.contentArea), oe = x("flex-1 min-h-0 overflow-auto overscroll-contain", i.slotClassNames?.main), ae = m().mainContentId, le = m().mainLabel;
|
|
514
|
+
return f !== t.e && G(e, "height", t.e = f), C !== t.t && A(e, t.t = C), v !== t.a && w(a, "href", t.a = v), O !== t.o && A(a, t.o = O), R !== t.i && (n.inert = t.i = R), Z !== t.n && w(n, "aria-hidden", t.n = Z), ee !== t.s && w(n, "data-floe-dialog-surface-host", t.s = ee), te !== t.h && w(n, "data-floe-surface-portal-layer", t.h = te), ie !== t.r && w(n, "data-floe-shell-sidebar-presentation", t.r = ie), re !== t.d && (b.inert = t.d = re), ne !== t.l && A(b, t.l = ne), oe !== t.u && A(E, t.u = oe), ae !== t.c && w(E, "id", t.c = ae), le !== t.w && w(E, "aria-label", t.w = le), t;
|
|
515
515
|
}, {
|
|
516
516
|
e: void 0,
|
|
517
517
|
t: void 0,
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { insert as
|
|
1
|
+
import { insert as n, effect as d, setAttribute as f, className as s, setStyleProperty as u, memo as $, template as c, delegateEvents as _ } from "solid-js/web";
|
|
2
2
|
import "solid-js";
|
|
3
3
|
import { cn as v } from "../../utils/cn.js";
|
|
4
|
-
var
|
|
5
|
-
function
|
|
6
|
-
const t = () => e.collapsed ?? !1, a = () => e.width ?? 350,
|
|
4
|
+
var S = /* @__PURE__ */ c('<aside data-floe-shell-slot=sidebar data-floe-geometry-surface=shell-sidebar><div class="flex-1 overflow-auto overscroll-contain">'), k = /* @__PURE__ */ c("<div>"), C = /* @__PURE__ */ c("<section><div class=flex-1>"), q = /* @__PURE__ */ c('<div class="flex items-center justify-between px-2.5 py-2 text-caption font-semibold uppercase tracking-wider text-[var(--floe-ink-quiet)]"><span>'), I = /* @__PURE__ */ c('<button type=button data-floe-interactive=row><span class="flex-1 truncate text-left">'), L = /* @__PURE__ */ c("<span>");
|
|
5
|
+
function A(e) {
|
|
6
|
+
const t = () => e.collapsed ?? !1, a = () => e.width ?? 350, l = () => e.visibilityMotion ?? "animated";
|
|
7
7
|
return (() => {
|
|
8
|
-
var i =
|
|
9
|
-
return
|
|
10
|
-
var b =
|
|
11
|
-
return b !== r.e && f(i, "data-floe-sidebar-visibility-motion", r.e = b), h !== r.t &&
|
|
8
|
+
var i = S(), o = i.firstChild;
|
|
9
|
+
return n(o, () => e.children), n(i, () => e.resizer, null), d((r) => {
|
|
10
|
+
var b = l(), h = v("relative h-full flex flex-col shrink-0 min-h-0", "bg-sidebar text-sidebar-foreground", "border-r border-sidebar-border", "overflow-hidden", l() === "animated" && "transition-[width] duration-[var(--floe-duration-fast)] ease-out", e.class), m = t() ? "0px" : `${a()}px`, x = t() ? "hidden" : "visible", g = t() ? "0px" : void 0, w = e.ariaLabel, y = t() ? "true" : void 0;
|
|
11
|
+
return b !== r.e && f(i, "data-floe-sidebar-visibility-motion", r.e = b), h !== r.t && s(i, r.t = h), m !== r.a && u(i, "width", r.a = m), x !== r.o && u(i, "visibility", r.o = x), g !== r.i && u(i, "border-right-width", r.i = g), w !== r.n && f(i, "aria-label", r.n = w), y !== r.s && f(i, "aria-hidden", r.s = y), r;
|
|
12
12
|
}, {
|
|
13
13
|
e: void 0,
|
|
14
14
|
t: void 0,
|
|
@@ -20,53 +20,54 @@ function E(e) {
|
|
|
20
20
|
}), i;
|
|
21
21
|
})();
|
|
22
22
|
}
|
|
23
|
-
function
|
|
23
|
+
function E(e) {
|
|
24
24
|
return (() => {
|
|
25
|
-
var t =
|
|
26
|
-
return
|
|
25
|
+
var t = k();
|
|
26
|
+
return n(t, () => e.children), d(() => s(t, v("p-2.5 space-y-3", e.class))), t;
|
|
27
27
|
})();
|
|
28
28
|
}
|
|
29
|
-
function
|
|
29
|
+
function N(e) {
|
|
30
30
|
return (() => {
|
|
31
|
-
var t =
|
|
32
|
-
return
|
|
31
|
+
var t = k();
|
|
32
|
+
return n(t, () => e.children), d(() => s(t, v("space-y-0.5", e.class))), t;
|
|
33
33
|
})();
|
|
34
34
|
}
|
|
35
|
-
function
|
|
35
|
+
function P(e) {
|
|
36
36
|
return (() => {
|
|
37
37
|
var t = C(), a = t.firstChild;
|
|
38
|
-
return
|
|
39
|
-
var
|
|
40
|
-
return () =>
|
|
41
|
-
var i =
|
|
42
|
-
return
|
|
38
|
+
return n(t, (() => {
|
|
39
|
+
var l = $(() => !!e.title);
|
|
40
|
+
return () => l() && (() => {
|
|
41
|
+
var i = q(), o = i.firstChild;
|
|
42
|
+
return n(o, () => e.title), n(i, () => e.actions, null), i;
|
|
43
43
|
})();
|
|
44
|
-
})(), a),
|
|
44
|
+
})(), a), n(a, () => e.children), d(() => s(t, v("flex flex-col", e.class))), t;
|
|
45
45
|
})();
|
|
46
46
|
}
|
|
47
47
|
function B(e) {
|
|
48
48
|
return (() => {
|
|
49
|
-
var t =
|
|
50
|
-
return t.$$click = () => e.onClick?.(),
|
|
51
|
-
var
|
|
52
|
-
return () =>
|
|
53
|
-
var i =
|
|
54
|
-
return
|
|
49
|
+
var t = I(), a = t.firstChild;
|
|
50
|
+
return t.$$click = () => e.onClick?.(), n(t, (() => {
|
|
51
|
+
var l = $(() => !!e.icon);
|
|
52
|
+
return () => l() && (() => {
|
|
53
|
+
var i = L();
|
|
54
|
+
return n(i, () => e.icon), d(() => s(i, v("flex-shrink-0 w-4 h-4 transition-colors duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", e.active ? "text-[var(--floe-ink-soft)]" : "text-[var(--floe-ink-quiet)] group-hover:text-[var(--floe-ink)]"))), i;
|
|
55
55
|
})();
|
|
56
|
-
})(), a),
|
|
57
|
-
var i = v("w-full min-h-[var(--floe-row-height)] flex items-center gap-2
|
|
58
|
-
return i !==
|
|
56
|
+
})(), a), n(a, () => e.children), d((l) => {
|
|
57
|
+
var i = e.active ? "true" : void 0, o = v("group w-full min-h-[var(--floe-row-height)] flex items-center gap-2 pl-2.5 pr-2 mx-1 rounded-sm", "text-[length:var(--floe-type-control)] leading-[var(--floe-line-control)] cursor-pointer", "text-[var(--floe-ink-soft)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-ring", e.active && "text-foreground font-medium", e.class), r = e.indent ? `${10 + e.indent * 10}px` : void 0;
|
|
58
|
+
return i !== l.e && f(t, "data-selected", l.e = i), o !== l.t && s(t, l.t = o), r !== l.a && u(t, "padding-left", l.a = r), l;
|
|
59
59
|
}, {
|
|
60
60
|
e: void 0,
|
|
61
|
-
t: void 0
|
|
61
|
+
t: void 0,
|
|
62
|
+
a: void 0
|
|
62
63
|
}), t;
|
|
63
64
|
})();
|
|
64
65
|
}
|
|
65
|
-
|
|
66
|
+
_(["click"]);
|
|
66
67
|
export {
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
A as Sidebar,
|
|
69
|
+
E as SidebarContent,
|
|
69
70
|
B as SidebarItem,
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
N as SidebarItemList,
|
|
72
|
+
P as SidebarSection
|
|
72
73
|
};
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import { insert as
|
|
2
|
-
import { Show as
|
|
1
|
+
import { insert as o, createComponent as r, use as E, effect as S, className as d, setStyleProperty as _, setAttribute as b, template as s, delegateEvents as L } from "solid-js/web";
|
|
2
|
+
import { Show as a } from "solid-js";
|
|
3
3
|
import { useLayout as O } from "../../context/LayoutContext.js";
|
|
4
4
|
import { cn as c } from "../../utils/cn.js";
|
|
5
5
|
import { ResizeHandle as P } from "./ResizeHandle.js";
|
|
6
|
-
var
|
|
6
|
+
var q = /* @__PURE__ */ s('<div class="min-w-0 flex items-center gap-1.5">'), H = /* @__PURE__ */ s('<button type=button class="flex items-center justify-center w-5 h-5 rounded-xs cursor-pointer hover:bg-[var(--floe-state-hover)] focus:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset"aria-label="Close sidebar"><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 class="w-3.5 h-3.5"><path d="M18 6 6 18"></path><path d="m6 6 12 12">'), N = /* @__PURE__ */ s('<div class="flex min-w-0 items-center gap-1.5">'), D = /* @__PURE__ */ s('<aside data-floe-geometry-surface=sidebar-pane><div><div class="flex items-center justify-between px-3 py-2 border-b border-sidebar-border"><span class="text-caption font-semibold uppercase tracking-wider text-[var(--floe-ink-quiet)]"></span></div><div>'), F = /* @__PURE__ */ s("<div>");
|
|
7
7
|
function T(t) {
|
|
8
|
-
const A = O(), m = () => A.isMobile(),
|
|
8
|
+
const A = O(), m = () => A.isMobile(), w = () => t.width ?? 240, u = () => t.open ?? !0, l = () => m() && t.mobileOverlay !== !1 && u(), g = () => l() && typeof t.onClose == "function", B = () => l() && t.mobileBackdrop !== !1 && typeof t.onClose == "function", M = () => t.resizable && u() && !m() && typeof t.onResize == "function";
|
|
9
9
|
return [(() => {
|
|
10
|
-
var i = D(),
|
|
11
|
-
return
|
|
10
|
+
var i = D(), v = i.firstChild, f = v.firstChild, j = f.firstChild, h = f.nextSibling;
|
|
11
|
+
return o(j, () => t.title), o(f, r(a, {
|
|
12
12
|
get when() {
|
|
13
|
-
return t.headerActions ||
|
|
13
|
+
return t.headerActions || g();
|
|
14
14
|
},
|
|
15
15
|
get children() {
|
|
16
|
-
var e =
|
|
17
|
-
return
|
|
16
|
+
var e = N();
|
|
17
|
+
return o(e, r(a, {
|
|
18
18
|
get when() {
|
|
19
19
|
return t.headerActions;
|
|
20
20
|
},
|
|
21
21
|
get children() {
|
|
22
|
-
var n =
|
|
23
|
-
return
|
|
22
|
+
var n = q();
|
|
23
|
+
return o(n, () => t.headerActions), n;
|
|
24
24
|
}
|
|
25
|
-
}), null),
|
|
25
|
+
}), null), o(e, r(a, {
|
|
26
26
|
get when() {
|
|
27
|
-
return
|
|
27
|
+
return g();
|
|
28
28
|
},
|
|
29
29
|
get children() {
|
|
30
|
-
var n =
|
|
30
|
+
var n = H();
|
|
31
31
|
return n.$$click = () => t.onClose?.(), n;
|
|
32
32
|
}
|
|
33
33
|
}), null), e;
|
|
34
34
|
}
|
|
35
|
-
}), null), E((e) => t.bodyRef?.(e),
|
|
35
|
+
}), null), E((e) => t.bodyRef?.(e), h), o(h, () => t.children), o(i, r(a, {
|
|
36
36
|
get when() {
|
|
37
37
|
return M();
|
|
38
38
|
},
|
|
39
39
|
get children() {
|
|
40
|
-
return
|
|
40
|
+
return r(P, {
|
|
41
41
|
direction: "horizontal",
|
|
42
42
|
onResize: (e) => t.onResize?.(e),
|
|
43
43
|
get onResizeStart() {
|
|
@@ -49,8 +49,8 @@ function T(t) {
|
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
}), null), S((e) => {
|
|
52
|
-
var n = c("flex-shrink-0 border-r border-
|
|
53
|
-
return n !== e.e && d(i, e.e = n), x !== e.t && _(i, "width", e.t = x), y !== e.a &&
|
|
52
|
+
var n = c("flex-shrink-0 border-r border-[var(--floe-line)] bg-sidebar relative", "transition-[width,transform,box-shadow] duration-[var(--floe-duration-base)] ease-out", "overflow-hidden", l() && "absolute inset-y-0 left-0 z-10 shadow-[var(--floe-elevation-float)]", t.class), x = u() ? `${w()}px` : "0px", y = l() ? "dialog" : void 0, k = l() ? "true" : void 0, C = t.ariaLabel, z = c("h-full flex flex-col", t.innerClass), $ = `${w()}px`, R = c("flex-1 min-h-0 overflow-auto", t.bodyClass);
|
|
53
|
+
return n !== e.e && d(i, e.e = n), x !== e.t && _(i, "width", e.t = x), y !== e.a && b(i, "role", e.a = y), k !== e.o && b(i, "aria-modal", e.o = k), C !== e.i && b(i, "aria-label", e.i = C), z !== e.n && d(v, e.n = z), $ !== e.s && _(v, "width", e.s = $), R !== e.h && d(h, e.h = R), e;
|
|
54
54
|
}, {
|
|
55
55
|
e: void 0,
|
|
56
56
|
t: void 0,
|
|
@@ -61,7 +61,7 @@ function T(t) {
|
|
|
61
61
|
s: void 0,
|
|
62
62
|
h: void 0
|
|
63
63
|
}), i;
|
|
64
|
-
})(),
|
|
64
|
+
})(), r(a, {
|
|
65
65
|
get when() {
|
|
66
66
|
return B();
|
|
67
67
|
},
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { insert as t, createComponent as
|
|
2
|
-
import { Show as
|
|
3
|
-
import { cn as
|
|
4
|
-
import { useCommand as
|
|
1
|
+
import { insert as t, createComponent as d, effect as y, className as v, setAttribute as $, template as i, delegateEvents as w } from "solid-js/web";
|
|
2
|
+
import { Show as h } from "solid-js";
|
|
3
|
+
import { cn as p } from "../../utils/cn.js";
|
|
4
|
+
import { useCommand as _ } from "../../context/CommandContext.js";
|
|
5
5
|
import { Search as C } from "../icons/index.js";
|
|
6
6
|
import { useResolvedFloeConfig as S } from "../../context/FloeConfigContext.js";
|
|
7
|
-
var B = /* @__PURE__ */
|
|
7
|
+
var B = /* @__PURE__ */ i('<span class="font-medium text-caption tracking-tight hidden sm:inline">'), E = /* @__PURE__ */ i('<kbd class="hidden md:inline text-caption px-1 py-0.5 rounded-xs bg-background/60 border border-[var(--floe-line)] font-mono shrink-0 leading-none">'), F = /* @__PURE__ */ i('<header data-floe-shell-slot=top-bar style=background-color:var(--activity-bar);border-bottom-color:var(--top-bar-border)><div class="h-10 flex items-center gap-2 px-3"><div class="flex items-center gap-2 flex-shrink-0"></div><button type=button><span class="flex-1 text-left hidden sm:inline truncate"></span></button><div class="flex items-center gap-0.5">'), j = /* @__PURE__ */ i('<div class="w-6 h-6 rounded-xs bg-primary flex items-center justify-center text-primary-foreground text-xs font-bold">F');
|
|
8
8
|
function R(o) {
|
|
9
|
-
const c =
|
|
9
|
+
const c = _(), a = S(), n = () => a.config.commands.palette.enabled;
|
|
10
10
|
return (() => {
|
|
11
|
-
var
|
|
12
|
-
return t(
|
|
11
|
+
var l = F(), x = l.firstChild, s = x.firstChild, r = s.nextSibling, f = r.firstChild, k = r.nextSibling;
|
|
12
|
+
return t(s, () => o.logo || j(), null), t(s, d(h, {
|
|
13
13
|
get when() {
|
|
14
14
|
return o.title;
|
|
15
15
|
},
|
|
@@ -17,9 +17,9 @@ function R(o) {
|
|
|
17
17
|
var e = B();
|
|
18
18
|
return t(e, () => o.title), e;
|
|
19
19
|
}
|
|
20
|
-
}), null), r.$$click = () => n() && c.open(), t(r,
|
|
20
|
+
}), null), r.$$click = () => n() && c.open(), t(r, d(C, {
|
|
21
21
|
class: "w-3 h-3 shrink-0"
|
|
22
|
-
}),
|
|
22
|
+
}), f), t(f, () => a.config.strings.topBar.searchPlaceholder), t(r, d(h, {
|
|
23
23
|
get when() {
|
|
24
24
|
return n();
|
|
25
25
|
},
|
|
@@ -28,22 +28,22 @@ function R(o) {
|
|
|
28
28
|
return t(e, () => c.getKeybindDisplay(a.config.commands.palette.keybind)), e;
|
|
29
29
|
}
|
|
30
30
|
}), null), t(k, () => o.actions), y((e) => {
|
|
31
|
-
var
|
|
31
|
+
var m = p(
|
|
32
32
|
// Safe-area padding must not be applied on a fixed-height element (border-box),
|
|
33
33
|
// otherwise the content gets squeezed on iOS notch devices.
|
|
34
|
-
"shrink-0 bg-background border-b border-
|
|
34
|
+
"shrink-0 bg-background border-b border-[var(--floe-line)] safe-top safe-left safe-right",
|
|
35
35
|
o.class
|
|
36
|
-
),
|
|
37
|
-
return
|
|
36
|
+
), b = o.ariaLabel, g = !n(), u = p("flex-1 max-w-sm flex items-center gap-2 h-[26px] px-2.5", n() ? "cursor-pointer" : "cursor-not-allowed", "text-caption text-[var(--floe-ink-soft)] tracking-tight", "bg-[var(--floe-well)] hover:bg-[var(--floe-well-strong)] rounded-control", "border border-[var(--floe-line)]", "transition-[background-color,border-color,color] duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-in-out)]", "focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", !n() && "opacity-50 hover:bg-transparent");
|
|
37
|
+
return m !== e.e && v(l, e.e = m), b !== e.t && $(l, "aria-label", e.t = b), g !== e.a && (r.disabled = e.a = g), u !== e.o && v(r, e.o = u), e;
|
|
38
38
|
}, {
|
|
39
39
|
e: void 0,
|
|
40
40
|
t: void 0,
|
|
41
41
|
a: void 0,
|
|
42
42
|
o: void 0
|
|
43
|
-
}),
|
|
43
|
+
}), l;
|
|
44
44
|
})();
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
w(["click"]);
|
|
47
47
|
export {
|
|
48
48
|
R as TopBar
|
|
49
49
|
};
|