@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,49 +1,49 @@
|
|
|
1
|
-
import { createComponent as
|
|
2
|
-
import { createUniqueId as
|
|
1
|
+
import { createComponent as h, use as j, setAttribute as a, insert as f, effect as S, memo as q, className as _, template as b, delegateEvents as A } from "solid-js/web";
|
|
2
|
+
import { createUniqueId as D, createEffect as E, onCleanup as F, createMemo as M, Show as B, untrack as K } from "solid-js";
|
|
3
3
|
import { useOverlayMask as O } from "../../hooks/useOverlayMask.js";
|
|
4
4
|
import { createFloatingPresence as z } from "../ui/floatingPresence.js";
|
|
5
|
-
import { cn as
|
|
5
|
+
import { cn as I } from "../../utils/cn.js";
|
|
6
6
|
import { deferAfterPaint as L } from "../../utils/defer.js";
|
|
7
7
|
import { X as R } from "../icons/index.js";
|
|
8
|
-
var U = /* @__PURE__ */
|
|
8
|
+
var U = /* @__PURE__ */ b('<header class="flex shrink-0 items-center gap-2 border-b px-4 py-2"><h2 class="min-w-0 flex-1 text-base font-semibold"></h2><button type=button data-floe-autofocus class="flex h-11 w-11 shrink-0 items-center justify-center rounded-control hover:bg-[var(--floe-state-hover)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring">'), W = /* @__PURE__ */ b('<div data-floe-mobile-navigation-overlay class="absolute inset-0 z-50 overflow-hidden p-2"><div class="absolute inset-0 floe-floating-presence floe-floating-backdrop floe-bottom-drawer-backdrop"data-floe-mobile-navigation-backdrop></div><div class="relative pointer-events-none flex h-full min-h-0 items-end justify-center"><div role=dialog tabindex=-1 data-floe-mobile-navigation-panel data-floe-surface=floating data-floe-surface-portal-layer=true style="max-height:min(680px, 86%);border-radius:24px"><div>'), X = /* @__PURE__ */ b("<h2 class=sr-only>");
|
|
9
9
|
function p(t) {
|
|
10
|
-
const v = `mobile-navigation-${
|
|
10
|
+
const v = `mobile-navigation-${D()}`, r = z({
|
|
11
11
|
open: () => t.open,
|
|
12
|
-
|
|
12
|
+
element: () => o
|
|
13
13
|
});
|
|
14
|
-
let
|
|
14
|
+
let o, d = null;
|
|
15
15
|
const m = () => {
|
|
16
16
|
d = t.trigger ?? null, t.onOpenChange(!1);
|
|
17
17
|
};
|
|
18
|
-
|
|
18
|
+
E(() => {
|
|
19
19
|
const n = r.mounted();
|
|
20
20
|
if (t.onPresenceChange?.(n), !n && d) {
|
|
21
|
-
const
|
|
22
|
-
d = null,
|
|
21
|
+
const i = d;
|
|
22
|
+
d = null, i.isConnected && !i.closest("[hidden], [inert]") && i.focus({
|
|
23
23
|
preventScroll: !0
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
-
}),
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
const n =
|
|
26
|
+
}), F(() => t.onPresenceChange?.(!1));
|
|
27
|
+
const N = M(() => t.open ? t.id : null);
|
|
28
|
+
E(() => {
|
|
29
|
+
const n = N();
|
|
30
30
|
if (n === null) return;
|
|
31
31
|
d = null;
|
|
32
|
-
let
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
let i = !0;
|
|
33
|
+
F(() => {
|
|
34
|
+
i = !1;
|
|
35
35
|
}), L(() => K(() => {
|
|
36
|
-
if (!
|
|
37
|
-
const u =
|
|
38
|
-
u &&
|
|
36
|
+
if (!i || !t.open || t.id !== n || !o?.isConnected) return;
|
|
37
|
+
const u = o.ownerDocument.activeElement;
|
|
38
|
+
u && o.contains(u) || (o.querySelector("[data-floe-autofocus]") ?? o).focus({
|
|
39
39
|
preventScroll: !0
|
|
40
40
|
});
|
|
41
41
|
}));
|
|
42
42
|
}), O({
|
|
43
43
|
open: r.mounted,
|
|
44
|
-
root: () =>
|
|
45
|
-
focusRoots: () => [
|
|
46
|
-
containsTarget: (n) => n instanceof Node && !!(
|
|
44
|
+
root: () => o,
|
|
45
|
+
focusRoots: () => [o, t.navigation()].filter((n) => !!n),
|
|
46
|
+
containsTarget: (n) => n instanceof Node && !!(o?.contains(n) || t.navigation()?.contains(n)),
|
|
47
47
|
onClose: m,
|
|
48
48
|
lockBodyScroll: !1,
|
|
49
49
|
trapFocus: !0,
|
|
@@ -53,18 +53,18 @@ function p(t) {
|
|
|
53
53
|
autoFocus: !1,
|
|
54
54
|
restoreFocus: !1
|
|
55
55
|
});
|
|
56
|
-
const
|
|
57
|
-
return
|
|
56
|
+
const T = M(() => t.children);
|
|
57
|
+
return h(B, {
|
|
58
58
|
get when() {
|
|
59
59
|
return r.mounted();
|
|
60
60
|
},
|
|
61
61
|
get children() {
|
|
62
|
-
var n = W(),
|
|
63
|
-
|
|
62
|
+
var n = W(), i = n.firstChild, u = i.nextSibling, l = u.firstChild, g = l.firstChild;
|
|
63
|
+
i.$$click = () => {
|
|
64
64
|
t.open && m();
|
|
65
|
-
},
|
|
66
|
-
var x =
|
|
67
|
-
return typeof x == "function" ?
|
|
65
|
+
}, l.$$keydown = (e) => t.onKeyDown?.(e);
|
|
66
|
+
var x = o;
|
|
67
|
+
return typeof x == "function" ? j(x, l) : o = l, a(l, "aria-labelledby", v), f(l, h(B, {
|
|
68
68
|
get when() {
|
|
69
69
|
return t.header === void 0;
|
|
70
70
|
},
|
|
@@ -72,17 +72,17 @@ function p(t) {
|
|
|
72
72
|
return [(() => {
|
|
73
73
|
var e = X();
|
|
74
74
|
return a(e, "id", v), f(e, () => t.title), e;
|
|
75
|
-
})(),
|
|
75
|
+
})(), q(() => t.header)];
|
|
76
76
|
},
|
|
77
77
|
get children() {
|
|
78
78
|
var e = U(), s = e.firstChild, c = s.nextSibling;
|
|
79
|
-
return a(s, "id", v), f(s, () => t.title), c.$$click = m, f(c,
|
|
79
|
+
return a(s, "id", v), f(s, () => t.title), c.$$click = m, f(c, h(R, {
|
|
80
80
|
class: "h-5 w-5"
|
|
81
81
|
})), S(() => a(c, "aria-label", t.closeLabel ?? "Close")), e;
|
|
82
82
|
}
|
|
83
|
-
}),
|
|
84
|
-
var s = r.state(), c = r.state(), y = t.id, w = r.state(), k = r.exiting(), C = r.exiting() ? "true" : void 0, $ =
|
|
85
|
-
return s !== e.e && a(n, "data-floating-presence", e.e = s), c !== e.t && a(
|
|
83
|
+
}), g), f(g, T), S((e) => {
|
|
84
|
+
var s = r.state(), c = r.state(), y = t.id, w = r.state(), k = r.exiting(), C = r.exiting() ? "true" : void 0, $ = I("pointer-events-auto relative flex min-h-0 w-full max-w-[640px] flex-col border border-[var(--floe-line)] bg-card text-card-foreground shadow-[var(--floe-elevation-float-strong)] floe-floating-presence floe-bottom-drawer-panel", t.class), P = I("flex min-h-0 flex-col overflow-auto overscroll-contain", t.contentClass);
|
|
85
|
+
return s !== e.e && a(n, "data-floating-presence", e.e = s), c !== e.t && a(i, "data-floating-presence", e.t = c), y !== e.a && a(l, "id", e.a = y), w !== e.o && a(l, "data-floating-presence", e.o = w), k !== e.i && (l.inert = e.i = k), C !== e.n && a(l, "aria-hidden", e.n = C), $ !== e.s && _(l, e.s = $), P !== e.h && _(g, e.h = P), e;
|
|
86
86
|
}, {
|
|
87
87
|
e: void 0,
|
|
88
88
|
t: void 0,
|
|
@@ -96,7 +96,7 @@ function p(t) {
|
|
|
96
96
|
}
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
|
-
|
|
99
|
+
A(["click", "keydown"]);
|
|
100
100
|
export {
|
|
101
101
|
p as MobileNavigationPanel
|
|
102
102
|
};
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import { use as R, insert as
|
|
1
|
+
import { use as R, insert as f, createComponent as d, effect as _, className as y, setAttribute as v, template as m, Dynamic as j, memo as q, delegateEvents as B } from "solid-js/web";
|
|
2
2
|
import { createSignal as E, onMount as z, onCleanup as D, Show as S, For as F } from "solid-js";
|
|
3
3
|
import { cn as A } from "../../utils/cn.js";
|
|
4
4
|
import { deferNonBlocking as W } from "../../utils/defer.js";
|
|
5
|
-
var H = /* @__PURE__ */
|
|
5
|
+
var H = /* @__PURE__ */ m('<div class="absolute left-0 top-0 bottom-0 w-8 bg-gradient-to-r from-background to-transparent z-10 pointer-events-none">'), N = /* @__PURE__ */ m('<div class="absolute right-0 top-0 bottom-0 w-8 bg-gradient-to-l from-background to-transparent z-10 pointer-events-none">'), T = /* @__PURE__ */ m('<div data-floe-mobile-navigation-actions class="flex shrink-0 border-l border-[var(--floe-line)]">'), P = /* @__PURE__ */ m('<nav data-floe-shell-slot=mobile-tab-bar style=border-top-color:var(--bottom-bar-border)><div class="relative flex h-14"><div class="relative min-w-0 flex-1"><div class="h-full flex items-center overflow-x-auto scrollbar-hide snap-x snap-mandatory"role=tablist aria-orientation=horizontal style=-webkit-overflow-scrolling:touch>'), U = /* @__PURE__ */ m("<span>"), V = /* @__PURE__ */ m('<div class="absolute bottom-0 left-1/2 -translate-x-1/2 w-8 h-0.5 bg-primary rounded-t">'), G = /* @__PURE__ */ m("<button type=button><div></div><span>");
|
|
6
6
|
function Y(e) {
|
|
7
|
-
let
|
|
7
|
+
let a;
|
|
8
8
|
const [$, b] = E(!1), [i, h] = E(!1);
|
|
9
|
-
let
|
|
9
|
+
let u = null;
|
|
10
10
|
const g = () => {
|
|
11
|
-
|
|
11
|
+
a && (b(a.scrollLeft > 0), h(a.scrollLeft < a.scrollWidth - a.clientWidth - 1));
|
|
12
12
|
}, t = () => {
|
|
13
|
-
if (
|
|
13
|
+
if (u === null) {
|
|
14
14
|
if (typeof requestAnimationFrame > "u") {
|
|
15
15
|
g();
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
u = requestAnimationFrame(() => {
|
|
19
|
+
u = null, g();
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
}, o = () => e.items, I = (l) => {
|
|
23
|
-
const
|
|
24
|
-
if (
|
|
25
|
-
if (
|
|
26
|
-
W(() =>
|
|
23
|
+
const r = o()[l];
|
|
24
|
+
if (r) {
|
|
25
|
+
if (r.onClick) {
|
|
26
|
+
W(() => r.onClick());
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
|
-
e.onSelect(
|
|
29
|
+
e.onSelect(r.id);
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
return z(() => {
|
|
33
33
|
g();
|
|
34
|
-
const l = e.items.findIndex((
|
|
35
|
-
if (l > 0 &&
|
|
36
|
-
const
|
|
37
|
-
|
|
34
|
+
const l = e.items.findIndex((r) => r.id === e.activeId);
|
|
35
|
+
if (l > 0 && a) {
|
|
36
|
+
const r = a.scrollWidth / e.items.length;
|
|
37
|
+
a.scrollLeft = Math.max(0, r * l - a.clientWidth / 2 + r / 2);
|
|
38
38
|
}
|
|
39
39
|
}), D(() => {
|
|
40
|
-
|
|
40
|
+
u !== null && typeof cancelAnimationFrame < "u" && (cancelAnimationFrame(u), u = null);
|
|
41
41
|
}), (() => {
|
|
42
|
-
var l = P(),
|
|
43
|
-
typeof w == "function" ? R(w, l) : e.ref = l,
|
|
42
|
+
var l = P(), r = l.firstChild, x = r.firstChild, s = x.firstChild, w = e.ref;
|
|
43
|
+
typeof w == "function" ? R(w, l) : e.ref = l, f(x, d(S, {
|
|
44
44
|
get when() {
|
|
45
45
|
return $();
|
|
46
46
|
},
|
|
47
47
|
get children() {
|
|
48
48
|
return H();
|
|
49
49
|
}
|
|
50
|
-
}),
|
|
50
|
+
}), s), f(x, d(S, {
|
|
51
51
|
get when() {
|
|
52
52
|
return i();
|
|
53
53
|
},
|
|
54
54
|
get children() {
|
|
55
55
|
return N();
|
|
56
56
|
}
|
|
57
|
-
}),
|
|
58
|
-
var
|
|
59
|
-
return typeof
|
|
57
|
+
}), s), s.addEventListener("scroll", t);
|
|
58
|
+
var C = a;
|
|
59
|
+
return typeof C == "function" ? R(C, s) : a = s, f(s, d(F, {
|
|
60
60
|
get each() {
|
|
61
61
|
return e.items;
|
|
62
62
|
},
|
|
@@ -78,13 +78,13 @@ function Y(e) {
|
|
|
78
78
|
},
|
|
79
79
|
onKeyboardSelect: (k) => I(k)
|
|
80
80
|
})
|
|
81
|
-
})),
|
|
81
|
+
})), f(r, d(S, {
|
|
82
82
|
get when() {
|
|
83
83
|
return e.actions?.length;
|
|
84
84
|
},
|
|
85
85
|
get children() {
|
|
86
86
|
var n = T();
|
|
87
|
-
return
|
|
87
|
+
return f(n, d(F, {
|
|
88
88
|
get each() {
|
|
89
89
|
return e.actions;
|
|
90
90
|
},
|
|
@@ -104,10 +104,10 @@ function Y(e) {
|
|
|
104
104
|
var c = e.hidden, k = A(
|
|
105
105
|
// Same safe-area rule as TopBar: keep the visual bar height stable, and
|
|
106
106
|
// add safe-area padding on an outer wrapper (avoid squeezing content).
|
|
107
|
-
"relative shrink-0 bg-background border-t border-
|
|
107
|
+
"relative shrink-0 bg-background border-t border-[var(--floe-line)] safe-bottom safe-left safe-right",
|
|
108
108
|
e.class
|
|
109
109
|
), L = e.ariaLabel;
|
|
110
|
-
return c !== n.e && (l.hidden = n.e = c), k !== n.t &&
|
|
110
|
+
return c !== n.e && (l.hidden = n.e = c), k !== n.t && y(l, n.t = k), L !== n.a && v(l, "aria-label", n.a = L), n;
|
|
111
111
|
}, {
|
|
112
112
|
e: void 0,
|
|
113
113
|
t: void 0,
|
|
@@ -116,12 +116,12 @@ function Y(e) {
|
|
|
116
116
|
})();
|
|
117
117
|
}
|
|
118
118
|
function M(e) {
|
|
119
|
-
let
|
|
119
|
+
let a;
|
|
120
120
|
const $ = () => typeof e.item.ariaExpanded == "function" ? e.item.ariaExpanded() : e.item.ariaExpanded;
|
|
121
|
-
z(() => e.item.buttonRef?.(
|
|
121
|
+
z(() => e.item.buttonRef?.(a ?? null)), D(() => e.item.buttonRef?.(null));
|
|
122
122
|
const b = () => typeof e.item.badge == "function" ? e.item.badge() : e.item.badge;
|
|
123
123
|
return (() => {
|
|
124
|
-
var i = G(), h = i.firstChild,
|
|
124
|
+
var i = G(), h = i.firstChild, u = h.nextSibling;
|
|
125
125
|
i.$$keydown = (t) => {
|
|
126
126
|
if (e.action) return;
|
|
127
127
|
let o = null;
|
|
@@ -145,24 +145,24 @@ function M(e) {
|
|
|
145
145
|
}
|
|
146
146
|
t.preventDefault(), e.onKeyboardSelect(o);
|
|
147
147
|
}, i.$$click = () => e.onClick();
|
|
148
|
-
var g =
|
|
149
|
-
return typeof g == "function" ? R(g, i) :
|
|
148
|
+
var g = a;
|
|
149
|
+
return typeof g == "function" ? R(g, i) : a = i, f(h, d(j, {
|
|
150
150
|
get component() {
|
|
151
151
|
return e.item.icon;
|
|
152
152
|
},
|
|
153
153
|
class: "w-6 h-6"
|
|
154
|
-
}), null),
|
|
154
|
+
}), null), f(h, d(S, {
|
|
155
155
|
get when() {
|
|
156
156
|
return b();
|
|
157
157
|
},
|
|
158
158
|
get children() {
|
|
159
159
|
var t = U();
|
|
160
|
-
return
|
|
160
|
+
return f(t, (() => {
|
|
161
161
|
var o = q(() => typeof b() == "number" && b() > 99);
|
|
162
162
|
return () => o() ? "99+" : b();
|
|
163
|
-
})()), _(() =>
|
|
163
|
+
})()), _(() => y(t, A("absolute -top-1 -right-2 min-w-4 h-4 px-1", "flex items-center justify-center", "text-caption font-medium rounded-full", "bg-primary text-primary-foreground"))), t;
|
|
164
164
|
}
|
|
165
|
-
}), null), u
|
|
165
|
+
}), null), f(u, () => e.item.label), f(i, d(S, {
|
|
166
166
|
get when() {
|
|
167
167
|
return e.isActive;
|
|
168
168
|
},
|
|
@@ -170,8 +170,8 @@ function M(e) {
|
|
|
170
170
|
return V();
|
|
171
171
|
}
|
|
172
172
|
}), null), _((t) => {
|
|
173
|
-
var o = A("relative flex-shrink-0 flex flex-col items-center justify-center", "min-w-16 h-full px-4 snap-center", "transition-[color] duration-
|
|
174
|
-
return o !== t.e &&
|
|
173
|
+
var o = A("relative flex-shrink-0 flex flex-col items-center justify-center", "min-w-16 h-full px-4 snap-center", "transition-[color,background-color] duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", "hover:bg-[var(--floe-state-hover)] focus:outline-none focus-visible:bg-[var(--floe-state-press)]", e.action && "w-16 px-1", $() && "bg-[var(--floe-state-selected)] text-foreground", e.isActive ? "text-[var(--floe-accent-ink)]" : "text-[var(--floe-ink-soft)] active:text-foreground"), I = e.item.label, l = e.action ? void 0 : e.isActive, r = $(), x = e.item.ariaControls, s = e.item.ariaHasPopup, w = e.action ? void 0 : "tab", C = e.action || e.isActive ? 0 : -1, n = A("relative transition-transform duration-[var(--floe-duration-fast)]", e.isActive && "scale-110"), c = A("mt-1 text-caption font-medium truncate max-w-full", e.isActive && "font-semibold");
|
|
174
|
+
return o !== t.e && y(i, t.e = o), I !== t.t && v(i, "aria-label", t.t = I), l !== t.a && v(i, "aria-selected", t.a = l), r !== t.o && v(i, "aria-expanded", t.o = r), x !== t.i && v(i, "aria-controls", t.i = x), s !== t.n && v(i, "aria-haspopup", t.n = s), w !== t.s && v(i, "role", t.s = w), C !== t.h && v(i, "tabindex", t.h = C), n !== t.r && y(h, t.r = n), c !== t.d && y(u, t.d = c), t;
|
|
175
175
|
}, {
|
|
176
176
|
e: void 0,
|
|
177
177
|
t: void 0,
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { insert as
|
|
1
|
+
import { insert as r, effect as n, className as l, memo as u, template as a } from "solid-js/web";
|
|
2
2
|
import "solid-js";
|
|
3
3
|
import { cn as i } from "../../utils/cn.js";
|
|
4
|
-
var
|
|
5
|
-
function $(
|
|
4
|
+
var f = /* @__PURE__ */ a("<div>"), m = /* @__PURE__ */ a("<div><span class=truncate>"), s = /* @__PURE__ */ a('<div class="flex items-center gap-1 ml-2">');
|
|
5
|
+
function $(t) {
|
|
6
6
|
return (() => {
|
|
7
|
-
var e =
|
|
8
|
-
return
|
|
7
|
+
var e = f();
|
|
8
|
+
return r(e, () => t.children), n(() => l(e, i("flex flex-col h-full overflow-hidden", "bg-card text-card-foreground", t.class))), e;
|
|
9
9
|
})();
|
|
10
10
|
}
|
|
11
|
-
function h(
|
|
11
|
+
function h(t) {
|
|
12
12
|
return (() => {
|
|
13
|
-
var e = m(),
|
|
14
|
-
return
|
|
15
|
-
var
|
|
16
|
-
return () =>
|
|
13
|
+
var e = m(), o = e.firstChild;
|
|
14
|
+
return r(o, () => t.children), r(e, (() => {
|
|
15
|
+
var d = u(() => !!t.actions);
|
|
16
|
+
return () => d() && (() => {
|
|
17
17
|
var c = s();
|
|
18
|
-
return
|
|
18
|
+
return r(c, () => t.actions), c;
|
|
19
19
|
})();
|
|
20
|
-
})(), null), n(() => l(e, i("flex items-center justify-between px-3 py-1.5", "border-b border-
|
|
20
|
+
})(), null), n(() => l(e, i("flex items-center justify-between px-3 py-1.5", "border-b border-[var(--floe-line)]", "text-xs font-medium tracking-tight", t.class))), e;
|
|
21
21
|
})();
|
|
22
22
|
}
|
|
23
|
-
function
|
|
23
|
+
function g(t) {
|
|
24
24
|
return (() => {
|
|
25
|
-
var e =
|
|
26
|
-
return
|
|
25
|
+
var e = f();
|
|
26
|
+
return r(e, () => t.children), n(() => l(e, i("flex-1 overflow-auto", !t.noPadding && "p-3", t.class))), e;
|
|
27
27
|
})();
|
|
28
28
|
}
|
|
29
29
|
export {
|
|
30
30
|
$ as Panel,
|
|
31
|
-
|
|
31
|
+
g as PanelContent,
|
|
32
32
|
h as PanelHeader
|
|
33
33
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { effect as D, className as f, setAttribute as A, template as C, use as S, delegateEvents as k } from "solid-js/web";
|
|
2
2
|
import { createSignal as F, onCleanup as H } from "solid-js";
|
|
3
|
-
import { cn as
|
|
3
|
+
import { cn as v } from "../../utils/cn.js";
|
|
4
4
|
import { startHotInteraction as E } from "../../utils/hotInteraction.js";
|
|
5
5
|
var q = /* @__PURE__ */ C("<div role=separator style=touch-action:none><div></div><div>");
|
|
6
6
|
function N(e) {
|
|
7
7
|
const [a, p] = F(!1);
|
|
8
|
-
let
|
|
9
|
-
const
|
|
8
|
+
let r = 0, n = 0, s = null, u, l = null, c = null;
|
|
9
|
+
const g = (t) => {
|
|
10
10
|
if (!t) {
|
|
11
11
|
c?.(), c = null;
|
|
12
12
|
return;
|
|
@@ -16,24 +16,24 @@ function N(e) {
|
|
|
16
16
|
cursor: e.direction === "horizontal" ? "col-resize" : "row-resize",
|
|
17
17
|
lockUserSelect: !0
|
|
18
18
|
});
|
|
19
|
-
},
|
|
19
|
+
}, h = () => {
|
|
20
20
|
if (!a()) return;
|
|
21
21
|
l !== null && typeof cancelAnimationFrame < "u" && (cancelAnimationFrame(l), l = null);
|
|
22
|
-
const t =
|
|
23
|
-
t !== 0 && (e.onResize(t),
|
|
24
|
-
},
|
|
25
|
-
t.pointerType === "mouse" && t.button !== 0 || (t.preventDefault(), s = t.pointerId, p(!0),
|
|
22
|
+
const t = n - r;
|
|
23
|
+
t !== 0 && (e.onResize(t), r = n), p(!1), s = null, g(!1), e.onResizeEnd?.();
|
|
24
|
+
}, m = (t) => e.direction === "horizontal" ? t.clientX : t.clientY, P = (t) => {
|
|
25
|
+
t.pointerType === "mouse" && t.button !== 0 || (t.preventDefault(), s = t.pointerId, p(!0), r = m(t), n = r, g(!0), e.onResizeStart?.(), u?.setPointerCapture(t.pointerId));
|
|
26
26
|
}, R = (t) => {
|
|
27
|
-
if (!(!a() || s !== t.pointerId) && (
|
|
27
|
+
if (!(!a() || s !== t.pointerId) && (n = m(t), l === null)) {
|
|
28
28
|
if (typeof requestAnimationFrame > "u") {
|
|
29
|
-
const i =
|
|
30
|
-
i !== 0 && (e.onResize(i),
|
|
29
|
+
const i = n - r;
|
|
30
|
+
i !== 0 && (e.onResize(i), r = n);
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
33
|
l = requestAnimationFrame(() => {
|
|
34
34
|
if (l = null, !a()) return;
|
|
35
|
-
const i =
|
|
36
|
-
i !== 0 && (e.onResize(i),
|
|
35
|
+
const i = n - r;
|
|
36
|
+
i !== 0 && (e.onResize(i), r = n);
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
}, y = (t) => {
|
|
@@ -42,18 +42,18 @@ function N(e) {
|
|
|
42
42
|
u?.releasePointerCapture(t.pointerId);
|
|
43
43
|
} catch {
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
h();
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
H(() =>
|
|
48
|
+
H(() => h());
|
|
49
49
|
const d = () => e.direction === "horizontal";
|
|
50
50
|
return (() => {
|
|
51
51
|
var t = q(), i = t.firstChild, $ = i.nextSibling;
|
|
52
|
-
t.addEventListener("pointercancel", y), t.$$pointerup = y, t.$$pointermove = R, t.$$pointerdown =
|
|
52
|
+
t.addEventListener("pointercancel", y), t.$$pointerup = y, t.$$pointermove = R, t.$$pointerdown = P;
|
|
53
53
|
var z = u;
|
|
54
|
-
return typeof z == "function" ? S(z, t) : u = t, D((
|
|
55
|
-
var b =
|
|
56
|
-
return b !==
|
|
54
|
+
return typeof z == "function" ? S(z, t) : u = t, D((o) => {
|
|
55
|
+
var b = v("absolute z-20 group", d() ? "top-0 right-0 w-1 h-full cursor-col-resize hover:w-1.5 transition-[background-color,width] duration-[var(--floe-duration-fast)]" : "left-0 top-0 h-1 w-full cursor-row-resize hover:h-1.5 transition-[background-color,height] duration-[var(--floe-duration-fast)]", a() && "bg-primary", !a() && "hover:bg-[var(--floe-accent-line)]", e.class), w = d() ? "vertical" : "horizontal", I = v("absolute pointer-events-none", d() ? "top-0 bottom-0 left-1/2 w-px -translate-x-1/2" : "left-0 right-0 top-1/2 h-px -translate-y-1/2", a() && "bg-primary opacity-100", !a() && "bg-primary/50 opacity-0 group-hover:opacity-100"), x = v("absolute opacity-0 group-hover:opacity-100 transition-opacity duration-[var(--floe-duration-fast)]", d() ? "top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-px h-8 rounded-full bg-[var(--floe-control-edge)]" : "left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 h-px w-8 rounded-full bg-[var(--floe-control-edge)]");
|
|
56
|
+
return b !== o.e && f(t, o.e = b), w !== o.t && A(t, "aria-orientation", o.t = w), I !== o.a && f(i, o.a = I), x !== o.o && f($, o.o = x), o;
|
|
57
57
|
}, {
|
|
58
58
|
e: void 0,
|
|
59
59
|
t: void 0,
|