@floegence/floe-webapp-core 0.86.60 → 0.86.63
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/app/FloeRegistryContributions.js +0 -3
- 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/ActivityRailIcons.d.ts +30 -0
- package/dist/components/icons/ActivityRailIcons.js +68 -0
- package/dist/components/icons/index.d.ts +1 -0
- 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 +61 -63
- package/dist/components/layout/DisplayModeSwitcher.d.ts +10 -0
- package/dist/components/layout/DisplayModeSwitcher.js +102 -33
- 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.d.ts +0 -6
- package/dist/components/layout/Shell.js +208 -254
- package/dist/components/layout/Sidebar.js +37 -36
- package/dist/components/layout/SidebarPane.js +19 -19
- package/dist/components/layout/ThemeToggle.d.ts +19 -0
- package/dist/components/layout/ThemeToggle.js +39 -0
- package/dist/components/layout/TopBar.js +16 -16
- package/dist/components/layout/TopBarIconButton.js +15 -15
- package/dist/components/layout/index.d.ts +1 -1
- package/dist/components/loading/LoadingOverlay.js +9 -9
- package/dist/components/loading/Skeleton.js +11 -11
- package/dist/components/ui/Button.js +44 -36
- package/dist/components/ui/Card.d.ts +11 -62
- package/dist/components/ui/Card.js +64 -237
- package/dist/components/ui/Checkbox.js +79 -79
- package/dist/components/ui/CommandPalette.js +56 -55
- package/dist/components/ui/Dialog.js +91 -93
- package/dist/components/ui/DirectoryInput.js +22 -22
- package/dist/components/ui/DirectoryPicker.js +8 -8
- package/dist/components/ui/Dropdown.js +89 -87
- package/dist/components/ui/FeedbackIndicator.js +57 -57
- package/dist/components/ui/FileOpenPicker.js +37 -37
- package/dist/components/ui/FileSavePicker.js +41 -41
- package/dist/components/ui/FloatingWindow.js +213 -205
- package/dist/components/ui/Form.js +76 -76
- package/dist/components/ui/HighlightBlock.js +14 -14
- package/dist/components/ui/Input.js +106 -109
- package/dist/components/ui/Pagination.js +86 -86
- package/dist/components/ui/Popover.d.ts +33 -0
- package/dist/components/ui/Popover.js +133 -0
- package/dist/components/ui/ProcessingIndicator.js +344 -345
- package/dist/components/ui/Progress.js +94 -97
- package/dist/components/ui/QuoteBlock.js +25 -25
- package/dist/components/ui/Radio.js +91 -91
- package/dist/components/ui/SegmentedControl.js +24 -24
- package/dist/components/ui/Stepper.js +68 -60
- package/dist/components/ui/Switch.js +25 -25
- package/dist/components/ui/Tabs.js +188 -163
- 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/ComponentRegistry.d.ts +0 -8
- package/dist/context/ComponentRegistry.js +61 -67
- package/dist/context/FloeConfigContext.d.ts +0 -6
- package/dist/context/FloeConfigContext.js +9 -15
- package/dist/context/NotificationContext.js +4 -4
- package/dist/context/ThemeContext.js +71 -70
- package/dist/context/index.d.ts +1 -1
- package/dist/display-mode.css +2 -45
- package/dist/floe.css +205 -43
- package/dist/full.js +701 -695
- package/dist/icons.js +112 -102
- package/dist/language.css +320 -0
- package/dist/layout.js +33 -35
- 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 +214 -117
- 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
- package/dist/components/layout/BottomBar.d.ts +0 -29
- package/dist/components/layout/BottomBar.js +0 -70
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { createComponent as v, spread as ue, mergeProps as fe, insert as f, effect as
|
|
2
|
-
import { splitProps as ve, Show as
|
|
3
|
-
import { cn as
|
|
4
|
-
import { deferAfterPaint as
|
|
5
|
-
import { KeyedFor as
|
|
6
|
-
import { createUIFirstSelection as
|
|
1
|
+
import { createComponent as v, spread as ue, mergeProps as fe, insert as f, effect as x, className as B, setStyleProperty as le, memo as ae, use as ie, setAttribute as m, template as C, delegateEvents as ze } from "solid-js/web";
|
|
2
|
+
import { splitProps as ve, Show as I, createSignal as L, untrack as de, createEffect as K, onCleanup as ce } from "solid-js";
|
|
3
|
+
import { cn as h } from "../../utils/cn.js";
|
|
4
|
+
import { deferAfterPaint as O } from "../../utils/defer.js";
|
|
5
|
+
import { KeyedFor as Re } from "./KeyedFor.js";
|
|
6
|
+
import { createUIFirstSelection as Te } from "../../utils/uiFirstSelection.js";
|
|
7
7
|
import { useViewActivation as Ee } from "../../context/ViewActivationContext.js";
|
|
8
8
|
import { X as He, Plus as Pe, ChevronRight as De } from "../icons/index.js";
|
|
9
|
-
var Me = /* @__PURE__ */
|
|
10
|
-
const
|
|
9
|
+
var Me = /* @__PURE__ */ C('<svg xmlns=http://www.w3.org/2000/svg width=24 height=24 viewBox="0 0 24 24"fill=none stroke=currentColor stroke-width=2 stroke-linecap=round stroke-linejoin=round><path d="m15 18-6-6 6-6">'), Oe = /* @__PURE__ */ C('<button type=button data-floe-interactive=icon aria-label="Scroll left">'), We = /* @__PURE__ */ C("<div>"), Fe = /* @__PURE__ */ C('<button type=button data-floe-interactive=icon aria-label="Add new tab">'), _e = /* @__PURE__ */ C('<button type=button data-floe-interactive=icon aria-label="Scroll right">'), je = /* @__PURE__ */ C("<div><div role=tablist data-floe-surface=inset data-floe-surface-part=tab-rail aria-orientation=horizontal>"), qe = /* @__PURE__ */ C("<span class=flex-shrink-0>"), Ge = /* @__PURE__ */ C("<button type=button data-floe-interactive=icon>"), Ue = /* @__PURE__ */ C('<div role=tab data-floe-surface-part=tab data-floe-interactive=item><span class="truncate max-w-32">'), Xe = /* @__PURE__ */ C("<div role=tabpanel>");
|
|
10
|
+
const V = {
|
|
11
11
|
x: 0,
|
|
12
12
|
width: 0,
|
|
13
13
|
visible: !1
|
|
14
14
|
};
|
|
15
|
-
function
|
|
16
|
-
const d = i.filter((
|
|
15
|
+
function Ke(i, t, b) {
|
|
16
|
+
const d = i.filter((k) => !k.disabled);
|
|
17
17
|
if (!d.length) return null;
|
|
18
|
-
const
|
|
19
|
-
if (
|
|
20
|
-
let
|
|
21
|
-
switch (
|
|
18
|
+
const p = d.findIndex((k) => k.id === t);
|
|
19
|
+
if (p < 0) return null;
|
|
20
|
+
let g = null;
|
|
21
|
+
switch (b) {
|
|
22
22
|
case "ArrowRight":
|
|
23
23
|
case "ArrowDown":
|
|
24
|
-
|
|
24
|
+
g = (p + 1) % d.length;
|
|
25
25
|
break;
|
|
26
26
|
case "ArrowLeft":
|
|
27
27
|
case "ArrowUp":
|
|
28
|
-
|
|
28
|
+
g = (p - 1 + d.length) % d.length;
|
|
29
29
|
break;
|
|
30
30
|
case "Home":
|
|
31
|
-
|
|
31
|
+
g = 0;
|
|
32
32
|
break;
|
|
33
33
|
case "End":
|
|
34
|
-
|
|
34
|
+
g = d.length - 1;
|
|
35
35
|
break;
|
|
36
36
|
default:
|
|
37
37
|
return null;
|
|
38
38
|
}
|
|
39
|
-
return d[
|
|
39
|
+
return d[g]?.id ?? null;
|
|
40
40
|
}
|
|
41
|
-
function
|
|
41
|
+
function Ve(i) {
|
|
42
42
|
return i === 1 || i === 2 || i === 3 || i === 4 ? i : 2;
|
|
43
43
|
}
|
|
44
44
|
function Ye(i) {
|
|
@@ -69,97 +69,97 @@ function Je(i) {
|
|
|
69
69
|
switch (i) {
|
|
70
70
|
case "border":
|
|
71
71
|
return {
|
|
72
|
-
tabBorderClass: "border-
|
|
73
|
-
sliderBgClass: "bg-
|
|
72
|
+
tabBorderClass: "border-[var(--floe-line)]",
|
|
73
|
+
sliderBgClass: "bg-[var(--floe-line)]"
|
|
74
74
|
};
|
|
75
75
|
case "muted-foreground":
|
|
76
76
|
return {
|
|
77
77
|
tabBorderClass: "border-muted-foreground",
|
|
78
|
-
sliderBgClass: "bg-
|
|
78
|
+
sliderBgClass: "bg-[var(--floe-ink-ghost)]"
|
|
79
79
|
};
|
|
80
80
|
default:
|
|
81
81
|
return {
|
|
82
|
-
tabBorderClass: "border-
|
|
83
|
-
sliderBgClass: "bg-
|
|
82
|
+
tabBorderClass: "border-[var(--floe-accent-ink)]",
|
|
83
|
+
sliderBgClass: "bg-[var(--floe-accent-ink)]"
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
const Qe = (i) => (() => {
|
|
88
|
-
var
|
|
89
|
-
return
|
|
88
|
+
var t = Me();
|
|
89
|
+
return x(() => m(t, "class", i.class)), t;
|
|
90
90
|
})();
|
|
91
91
|
function Ze(i) {
|
|
92
92
|
const {
|
|
93
|
-
container:
|
|
94
|
-
tab:
|
|
95
|
-
} = i, d =
|
|
96
|
-
if (d ===
|
|
93
|
+
container: t,
|
|
94
|
+
tab: b
|
|
95
|
+
} = i, d = b.offsetParent, p = b.offsetWidth;
|
|
96
|
+
if (d === t && Number.isFinite(b.offsetLeft) && Number.isFinite(p))
|
|
97
97
|
return {
|
|
98
|
-
x:
|
|
99
|
-
width:
|
|
100
|
-
visible:
|
|
98
|
+
x: b.offsetLeft,
|
|
99
|
+
width: p,
|
|
100
|
+
visible: p > 0
|
|
101
101
|
};
|
|
102
|
-
const
|
|
102
|
+
const g = t.getBoundingClientRect(), k = b.getBoundingClientRect(), z = t.offsetWidth || t.clientWidth, S = g.width > 0 && z > 0 ? g.width / z : 1, R = Number.isFinite(S) && S > 0 ? S : 1, T = k.width / R;
|
|
103
103
|
return {
|
|
104
|
-
x: (
|
|
105
|
-
width:
|
|
106
|
-
visible:
|
|
104
|
+
x: (k.left - g.left + t.scrollLeft) / R,
|
|
105
|
+
width: T,
|
|
106
|
+
visible: T > 0
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
109
|
function dt(i) {
|
|
110
|
-
const [
|
|
110
|
+
const [t, b] = ve(i, ["items", "activeId", "defaultActiveId", "onChange", "onActiveIdChange", "onClose", "onAdd", "showAdd", "closable", "size", "features", "slotClassNames", "ariaLabel", "class"]), d = () => t.features?.indicator?.mode ?? "activeBorder", p = () => Ve(t.features?.indicator?.thicknessPx), g = () => t.features?.indicator?.colorToken ?? "primary", k = () => t.features?.indicator?.animated ?? !0, z = () => t.features?.containerBorder ?? !0, S = () => t.features?.scrollButtons ?? "auto", R = () => t.features?.closeButton?.dangerHover ?? !0, T = () => t.features?.closeButton?.enabledByDefault ?? t.closable ?? !1, he = () => t.features?.addButton?.enabled ?? t.showAdd ?? !1, Y = () => Ye(p()), W = () => Je(g());
|
|
111
111
|
let u;
|
|
112
|
-
const
|
|
112
|
+
const J = (() => {
|
|
113
113
|
try {
|
|
114
114
|
return Ee();
|
|
115
115
|
} catch {
|
|
116
116
|
return null;
|
|
117
117
|
}
|
|
118
|
-
})(),
|
|
119
|
-
let
|
|
120
|
-
const [E,
|
|
118
|
+
})(), A = () => J ? J.active() : !0;
|
|
119
|
+
let F = !1;
|
|
120
|
+
const [E, _] = L(V), H = /* @__PURE__ */ new Map();
|
|
121
121
|
let j = !1;
|
|
122
|
-
const P = () => d() === "slider",
|
|
122
|
+
const P = () => d() === "slider", Q = (s) => {
|
|
123
123
|
if (!u || !P()) return !1;
|
|
124
|
-
const
|
|
125
|
-
if (!
|
|
124
|
+
const r = H.get(s);
|
|
125
|
+
if (!r) return !1;
|
|
126
126
|
const a = Ze({
|
|
127
127
|
container: u,
|
|
128
|
-
tab:
|
|
128
|
+
tab: r
|
|
129
129
|
});
|
|
130
|
-
return
|
|
130
|
+
return _(a), a.visible;
|
|
131
131
|
}, be = () => {
|
|
132
132
|
if (!P()) {
|
|
133
|
-
|
|
133
|
+
_(V);
|
|
134
134
|
return;
|
|
135
135
|
}
|
|
136
|
-
|
|
136
|
+
Q(q()) || _(V);
|
|
137
137
|
}, D = () => {
|
|
138
|
-
j || (j = !0,
|
|
138
|
+
j || (j = !0, O(() => {
|
|
139
139
|
j = !1, de(() => {
|
|
140
|
-
|
|
140
|
+
A() && be();
|
|
141
141
|
});
|
|
142
142
|
}));
|
|
143
|
-
},
|
|
144
|
-
committed: () =>
|
|
143
|
+
}, Z = () => t.activeId !== void 0, ge = () => t.onChange ?? t.onActiveIdChange, [me, we] = L(de(() => t.defaultActiveId ?? t.items[0]?.id ?? "")), ee = Te({
|
|
144
|
+
committed: () => Z() ? t.activeId : me(),
|
|
145
145
|
commit: (s) => {
|
|
146
|
-
|
|
146
|
+
Z() || we(s), ge()?.(s);
|
|
147
147
|
}
|
|
148
|
-
}),
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
}), q = ee.visual;
|
|
149
|
+
K(() => {
|
|
150
|
+
A() && (d(), q(), D());
|
|
151
151
|
});
|
|
152
|
-
const [
|
|
152
|
+
const [G, Ce] = L(!1), [U, pe] = L(!1), [ke, ye] = L(!1), te = () => S() === "auto" && ke(), xe = () => {
|
|
153
153
|
if (!u) return;
|
|
154
154
|
const {
|
|
155
155
|
scrollLeft: s,
|
|
156
|
-
scrollWidth:
|
|
156
|
+
scrollWidth: r,
|
|
157
157
|
clientWidth: a
|
|
158
|
-
} = u,
|
|
159
|
-
ye(
|
|
158
|
+
} = u, e = r > a;
|
|
159
|
+
ye(e), Ce(s > 0), pe(s + a < r - 1);
|
|
160
160
|
}, M = () => {
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
F || (F = !0, O(() => {
|
|
162
|
+
F = !1, A() && xe();
|
|
163
163
|
}));
|
|
164
164
|
}, Be = () => {
|
|
165
165
|
u && u.scrollBy({
|
|
@@ -172,136 +172,159 @@ function dt(i) {
|
|
|
172
172
|
behavior: "smooth"
|
|
173
173
|
});
|
|
174
174
|
};
|
|
175
|
-
|
|
176
|
-
if (!u || !
|
|
175
|
+
K(() => {
|
|
176
|
+
if (!u || !A()) return;
|
|
177
177
|
M(), D();
|
|
178
178
|
const s = () => M();
|
|
179
179
|
u.addEventListener("scroll", s);
|
|
180
|
-
const
|
|
180
|
+
const r = () => {
|
|
181
181
|
M(), D();
|
|
182
182
|
};
|
|
183
183
|
let a;
|
|
184
|
-
typeof ResizeObserver < "u" ? (a = new ResizeObserver(
|
|
185
|
-
u?.removeEventListener("scroll", s), a?.disconnect(), typeof window < "u" && window.removeEventListener("resize",
|
|
184
|
+
typeof ResizeObserver < "u" ? (a = new ResizeObserver(r), a.observe(u)) : typeof window < "u" && window.addEventListener("resize", r), ce(() => {
|
|
185
|
+
u?.removeEventListener("scroll", s), a?.disconnect(), typeof window < "u" && window.removeEventListener("resize", r);
|
|
186
186
|
});
|
|
187
|
-
}),
|
|
188
|
-
|
|
187
|
+
}), K(() => {
|
|
188
|
+
A() && (t.items.length, M(), D());
|
|
189
189
|
});
|
|
190
|
-
const
|
|
191
|
-
|
|
190
|
+
const X = (s, r) => {
|
|
191
|
+
r || (ee.request(s), P() && Q(s));
|
|
192
192
|
}, Se = (s) => {
|
|
193
|
-
const
|
|
194
|
-
if (!
|
|
195
|
-
|
|
196
|
-
const a = H.get(
|
|
193
|
+
const r = t.items.find((e) => e.id === s);
|
|
194
|
+
if (!r) return;
|
|
195
|
+
X(r.id, r.disabled);
|
|
196
|
+
const a = H.get(r.id);
|
|
197
197
|
a?.focus({
|
|
198
198
|
preventScroll: !0
|
|
199
199
|
}), a?.scrollIntoView({
|
|
200
200
|
block: "nearest",
|
|
201
201
|
inline: "nearest"
|
|
202
202
|
});
|
|
203
|
-
}, Ae = (s,
|
|
204
|
-
const a =
|
|
203
|
+
}, Ae = (s, r) => {
|
|
204
|
+
const a = Ke(t.items, r.id, s.key);
|
|
205
205
|
a && (s.preventDefault(), Se(a));
|
|
206
|
-
},
|
|
206
|
+
}, Ne = (s, r) => {
|
|
207
207
|
s.stopPropagation();
|
|
208
|
-
const a =
|
|
208
|
+
const a = t.onClose;
|
|
209
209
|
if (!a) return;
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
},
|
|
213
|
-
sm: "h-
|
|
214
|
-
md: "h-
|
|
215
|
-
}, Le = (s,
|
|
216
|
-
const a = "inline-flex items-center gap-1.5
|
|
210
|
+
const e = r;
|
|
211
|
+
O(() => a(e));
|
|
212
|
+
}, $e = {
|
|
213
|
+
sm: "h-[var(--floe-control-height-sm)] px-[var(--floe-control-padding-sm)]",
|
|
214
|
+
md: "h-[var(--floe-control-height-md)] px-[var(--floe-control-padding-md)]"
|
|
215
|
+
}, Le = (s, r) => {
|
|
216
|
+
const a = h("inline-flex items-center gap-1.5 whitespace-nowrap", "text-[length:var(--floe-type-control)] leading-[var(--floe-line-control)]"), e = r ? "cursor-not-allowed opacity-50" : "cursor-pointer", o = (() => {
|
|
217
217
|
const c = d();
|
|
218
|
-
return c === "none" || c === "slider" && E().visible ? "border-transparent" :
|
|
218
|
+
return c === "none" || c === "slider" && E().visible ? "border-transparent" : W().tabBorderClass;
|
|
219
219
|
})();
|
|
220
|
-
return
|
|
220
|
+
return h(
|
|
221
|
+
a,
|
|
222
|
+
e,
|
|
223
|
+
$e[t.size ?? "md"],
|
|
224
|
+
"rounded-control",
|
|
225
|
+
Y().tabBorderClass,
|
|
226
|
+
/* The selected face is painted by the surface layer (`data-floe-surface`
|
|
227
|
+
* plus `aria-selected`), which keeps the fill, hairline and first
|
|
228
|
+
* elevation step identical to every other selected control. */
|
|
229
|
+
s ? h(o, "text-foreground", t.slotClassNames?.tabActive) : h("border-transparent text-[var(--floe-ink-soft)]", t.slotClassNames?.tabInactive),
|
|
230
|
+
r && "opacity-50",
|
|
231
|
+
t.slotClassNames?.tab
|
|
232
|
+
);
|
|
221
233
|
};
|
|
222
234
|
return (() => {
|
|
223
|
-
var s = je(),
|
|
235
|
+
var s = je(), r = s.firstChild;
|
|
224
236
|
ue(s, fe({
|
|
225
237
|
get class() {
|
|
226
|
-
return
|
|
238
|
+
return h(
|
|
239
|
+
/* One strip, one baseline: the rail, the scroll buttons and the add
|
|
240
|
+
* button all take their height from the row, so nothing floats above
|
|
241
|
+
* the rule. The rail's fill is carried onto those trailing controls,
|
|
242
|
+
* otherwise the band stops short and leaves a notch beside the last
|
|
243
|
+
* control. */
|
|
244
|
+
"relative flex items-stretch",
|
|
245
|
+
t.size === "sm" ? "min-h-[var(--floe-control-height-sm)]" : "min-h-[var(--floe-control-height-md)]",
|
|
246
|
+
z() && "border-b border-[var(--floe-line)]",
|
|
247
|
+
t.slotClassNames?.root,
|
|
248
|
+
t.class
|
|
249
|
+
);
|
|
227
250
|
}
|
|
228
|
-
},
|
|
251
|
+
}, b), !1, !0), f(s, v(I, {
|
|
229
252
|
get when() {
|
|
230
253
|
return te();
|
|
231
254
|
},
|
|
232
255
|
get children() {
|
|
233
|
-
var
|
|
234
|
-
return
|
|
256
|
+
var e = Oe();
|
|
257
|
+
return e.$$click = Be, f(e, v(Qe, {
|
|
235
258
|
class: "w-4 h-4"
|
|
236
|
-
})),
|
|
237
|
-
var c = !
|
|
238
|
-
return c !==
|
|
259
|
+
})), x((o) => {
|
|
260
|
+
var c = !G(), l = h("flex-shrink-0 flex items-center justify-center", "w-6 rounded-control cursor-pointer bg-[var(--floe-well)] border border-[var(--floe-line)]", "transition-opacity duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", G() ? "text-[var(--floe-ink-quiet)] hover:bg-[var(--floe-state-hover)] opacity-100" : "opacity-0 pointer-events-none", t.slotClassNames?.scrollButton);
|
|
261
|
+
return c !== o.e && (e.disabled = o.e = c), l !== o.t && B(e, o.t = l), o;
|
|
239
262
|
}, {
|
|
240
263
|
e: void 0,
|
|
241
264
|
t: void 0
|
|
242
|
-
}),
|
|
265
|
+
}), e;
|
|
243
266
|
}
|
|
244
|
-
}),
|
|
267
|
+
}), r);
|
|
245
268
|
var a = u;
|
|
246
|
-
return typeof a == "function" ? ie(a,
|
|
269
|
+
return typeof a == "function" ? ie(a, r) : u = r, f(r, v(I, {
|
|
247
270
|
get when() {
|
|
248
|
-
return
|
|
271
|
+
return ae(() => !!P())() && E().visible;
|
|
249
272
|
},
|
|
250
273
|
get children() {
|
|
251
|
-
var
|
|
252
|
-
return
|
|
253
|
-
var c =
|
|
254
|
-
return c !==
|
|
274
|
+
var e = We();
|
|
275
|
+
return x((o) => {
|
|
276
|
+
var c = h("pointer-events-none absolute bottom-0 left-0 z-10", Y().sliderHeightClass, W().sliderBgClass, k() ? "transition-[transform,width] duration-[var(--floe-duration-base)] ease-out motion-reduce:transition-none" : "transition-none", "will-change-transform", t.slotClassNames?.indicator), l = `translate3d(${E().x}px, 0, 0)`, y = `${E().width}px`;
|
|
277
|
+
return c !== o.e && B(e, o.e = c), l !== o.t && le(e, "transform", o.t = l), y !== o.a && le(e, "width", o.a = y), o;
|
|
255
278
|
}, {
|
|
256
279
|
e: void 0,
|
|
257
280
|
t: void 0,
|
|
258
281
|
a: void 0
|
|
259
|
-
}),
|
|
282
|
+
}), e;
|
|
260
283
|
}
|
|
261
|
-
}), null), f(
|
|
284
|
+
}), null), f(r, v(Re, {
|
|
262
285
|
get each() {
|
|
263
|
-
return
|
|
286
|
+
return t.items;
|
|
264
287
|
},
|
|
265
|
-
by: (
|
|
266
|
-
children: (
|
|
267
|
-
const
|
|
288
|
+
by: (e) => e.id,
|
|
289
|
+
children: (e) => {
|
|
290
|
+
const o = () => e().id === q(), c = () => e().closable ?? T();
|
|
268
291
|
return (() => {
|
|
269
|
-
var l =
|
|
292
|
+
var l = Ue(), y = l.firstChild;
|
|
270
293
|
return l.$$keydown = (n) => {
|
|
271
294
|
if (n.key === "Enter" || n.key === " ") {
|
|
272
|
-
n.preventDefault(),
|
|
295
|
+
n.preventDefault(), X(e().id, e().disabled);
|
|
273
296
|
return;
|
|
274
297
|
}
|
|
275
|
-
Ae(n,
|
|
276
|
-
}, l.$$click = () =>
|
|
277
|
-
H.set(
|
|
278
|
-
}, l), f(l, v(
|
|
298
|
+
Ae(n, e());
|
|
299
|
+
}, l.$$click = () => X(e().id, e().disabled), ie((n) => {
|
|
300
|
+
H.set(e().id, n), ce(() => H.delete(e().id));
|
|
301
|
+
}, l), f(l, v(I, {
|
|
279
302
|
get when() {
|
|
280
|
-
return
|
|
303
|
+
return e().icon;
|
|
281
304
|
},
|
|
282
305
|
get children() {
|
|
283
|
-
var n =
|
|
284
|
-
return f(n, () =>
|
|
306
|
+
var n = qe();
|
|
307
|
+
return f(n, () => e().icon), n;
|
|
285
308
|
}
|
|
286
|
-
}),
|
|
309
|
+
}), y), f(y, () => e().label), f(l, v(I, {
|
|
287
310
|
get when() {
|
|
288
|
-
return
|
|
311
|
+
return ae(() => !!c())() && !e().disabled;
|
|
289
312
|
},
|
|
290
313
|
get children() {
|
|
291
|
-
var n =
|
|
292
|
-
return n.$$click = (
|
|
314
|
+
var n = Ge();
|
|
315
|
+
return n.$$click = (w) => Ne(w, e().id), f(n, v(He, {
|
|
293
316
|
class: "w-3 h-3"
|
|
294
|
-
})),
|
|
295
|
-
var
|
|
296
|
-
return
|
|
317
|
+
})), x((w) => {
|
|
318
|
+
var N = h("flex-shrink-0 flex items-center justify-center", "w-5 h-5 rounded-control cursor-pointer", "bg-transparent text-[var(--floe-ink-quiet)]", R() ? "hover:bg-error hover:text-error-foreground" : "hover:bg-[var(--floe-state-hover)]", "ml-1.5", t.slotClassNames?.closeButton), $ = `Close ${e().label}`;
|
|
319
|
+
return N !== w.e && B(n, w.e = N), $ !== w.t && m(n, "aria-label", w.t = $), w;
|
|
297
320
|
}, {
|
|
298
321
|
e: void 0,
|
|
299
322
|
t: void 0
|
|
300
323
|
}), n;
|
|
301
324
|
}
|
|
302
|
-
}), null),
|
|
303
|
-
var
|
|
304
|
-
return
|
|
325
|
+
}), null), x((n) => {
|
|
326
|
+
var w = Le(o(), e().disabled), N = e().domId, $ = e().panelId, re = o() ? "raised" : "flat", oe = o(), ne = e().disabled, se = e().disabled ? -1 : o() ? 0 : -1;
|
|
327
|
+
return w !== n.e && B(l, n.e = w), N !== n.t && m(l, "id", n.t = N), $ !== n.a && m(l, "aria-controls", n.a = $), re !== n.o && m(l, "data-floe-surface", n.o = re), oe !== n.i && m(l, "aria-selected", n.i = oe), ne !== n.n && m(l, "aria-disabled", n.n = ne), se !== n.s && m(l, "tabindex", n.s = se), n;
|
|
305
328
|
}, {
|
|
306
329
|
e: void 0,
|
|
307
330
|
t: void 0,
|
|
@@ -313,80 +336,82 @@ function dt(i) {
|
|
|
313
336
|
}), l;
|
|
314
337
|
})();
|
|
315
338
|
}
|
|
316
|
-
}), null), f(s, v(
|
|
339
|
+
}), null), f(s, v(I, {
|
|
317
340
|
get when() {
|
|
318
341
|
return he();
|
|
319
342
|
},
|
|
320
343
|
get children() {
|
|
321
|
-
var
|
|
322
|
-
return
|
|
323
|
-
const
|
|
324
|
-
|
|
325
|
-
}, f(
|
|
344
|
+
var e = Fe();
|
|
345
|
+
return e.$$click = () => {
|
|
346
|
+
const o = t.onAdd;
|
|
347
|
+
o && O(() => o());
|
|
348
|
+
}, f(e, v(Pe, {
|
|
326
349
|
get class() {
|
|
327
|
-
return
|
|
350
|
+
return t.size === "sm" ? "w-3.5 h-3.5" : "w-4 h-4";
|
|
328
351
|
}
|
|
329
|
-
})),
|
|
352
|
+
})), x(() => B(e, h("flex-shrink-0 flex items-center justify-center", "rounded-control cursor-pointer bg-[var(--floe-well)] border border-[var(--floe-line)]", "text-[var(--floe-ink-quiet)] hover:bg-[var(--floe-state-hover)] hover:text-foreground", t.size === "sm" ? "w-7" : "w-8", t.slotClassNames?.addButton))), e;
|
|
330
353
|
}
|
|
331
|
-
}), null), f(s, v(
|
|
354
|
+
}), null), f(s, v(I, {
|
|
332
355
|
get when() {
|
|
333
356
|
return te();
|
|
334
357
|
},
|
|
335
358
|
get children() {
|
|
336
|
-
var
|
|
337
|
-
return
|
|
359
|
+
var e = _e();
|
|
360
|
+
return e.$$click = Ie, f(e, v(De, {
|
|
338
361
|
class: "w-4 h-4"
|
|
339
|
-
})),
|
|
340
|
-
var c = !
|
|
341
|
-
return c !==
|
|
362
|
+
})), x((o) => {
|
|
363
|
+
var c = !U(), l = h("flex-shrink-0 flex items-center justify-center", "w-6 rounded-control cursor-pointer bg-[var(--floe-well)] border border-[var(--floe-line)]", "transition-opacity duration-[var(--floe-duration-fast)] ease-[var(--floe-ease-out)]", U() ? "text-[var(--floe-ink-quiet)] hover:bg-[var(--floe-state-hover)] opacity-100" : "opacity-0 pointer-events-none", t.slotClassNames?.scrollButton);
|
|
364
|
+
return c !== o.e && (e.disabled = o.e = c), l !== o.t && B(e, o.t = l), o;
|
|
342
365
|
}, {
|
|
343
366
|
e: void 0,
|
|
344
367
|
t: void 0
|
|
345
|
-
}),
|
|
368
|
+
}), e;
|
|
346
369
|
}
|
|
347
|
-
}), null),
|
|
348
|
-
var
|
|
370
|
+
}), null), x((e) => {
|
|
371
|
+
var o = h(
|
|
349
372
|
"relative flex-1 flex items-end gap-0.5 overflow-x-auto",
|
|
350
373
|
"scrollbar-none",
|
|
351
374
|
// Hide scrollbar for all browsers
|
|
352
375
|
"[&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]",
|
|
353
|
-
|
|
354
|
-
), c =
|
|
355
|
-
return
|
|
376
|
+
t.slotClassNames?.scrollContainer
|
|
377
|
+
), c = G() ? "" : void 0, l = U() ? "" : void 0, y = t.ariaLabel;
|
|
378
|
+
return o !== e.e && B(r, e.e = o), c !== e.t && m(r, "data-floe-overflow-start", e.t = c), l !== e.a && m(r, "data-floe-overflow-end", e.a = l), y !== e.o && m(r, "aria-label", e.o = y), e;
|
|
356
379
|
}, {
|
|
357
380
|
e: void 0,
|
|
358
|
-
t: void 0
|
|
381
|
+
t: void 0,
|
|
382
|
+
a: void 0,
|
|
383
|
+
o: void 0
|
|
359
384
|
}), s;
|
|
360
385
|
})();
|
|
361
386
|
}
|
|
362
387
|
function ct(i) {
|
|
363
|
-
const [
|
|
364
|
-
return v(
|
|
388
|
+
const [t, b] = ve(i, ["active", "keepMounted", "labelledBy", "class", "children"]);
|
|
389
|
+
return v(I, {
|
|
365
390
|
get when() {
|
|
366
|
-
return
|
|
391
|
+
return t.keepMounted || t.active;
|
|
367
392
|
},
|
|
368
393
|
get children() {
|
|
369
|
-
var d =
|
|
394
|
+
var d = Xe();
|
|
370
395
|
return ue(d, fe({
|
|
371
396
|
get "aria-labelledby"() {
|
|
372
|
-
return
|
|
397
|
+
return t.labelledBy;
|
|
373
398
|
},
|
|
374
399
|
get "aria-hidden"() {
|
|
375
|
-
return !
|
|
400
|
+
return !t.active && t.keepMounted ? "true" : void 0;
|
|
376
401
|
},
|
|
377
402
|
get tabIndex() {
|
|
378
|
-
return
|
|
403
|
+
return t.active ? 0 : -1;
|
|
379
404
|
},
|
|
380
405
|
get class() {
|
|
381
|
-
return
|
|
406
|
+
return h(!t.active && t.keepMounted && "hidden", t.class);
|
|
382
407
|
}
|
|
383
|
-
},
|
|
408
|
+
}, b), !1, !0), f(d, () => t.children), d;
|
|
384
409
|
}
|
|
385
410
|
});
|
|
386
411
|
}
|
|
387
|
-
|
|
412
|
+
ze(["click", "keydown"]);
|
|
388
413
|
export {
|
|
389
414
|
ct as TabPanel,
|
|
390
415
|
dt as Tabs,
|
|
391
|
-
|
|
416
|
+
Ke as resolveTabNavigationTargetId
|
|
392
417
|
};
|
|
@@ -1,24 +1,27 @@
|
|
|
1
|
-
import { spread as i, mergeProps as u, insert as a, memo as n, createComponent as
|
|
2
|
-
import { splitProps as
|
|
3
|
-
import { cn as
|
|
4
|
-
var
|
|
1
|
+
import { spread as i, mergeProps as u, insert as a, memo as n, createComponent as f, Dynamic as p, template as l } from "solid-js/web";
|
|
2
|
+
import { splitProps as d } from "solid-js";
|
|
3
|
+
import { cn as m } from "../../utils/cn.js";
|
|
4
|
+
var g = /* @__PURE__ */ l("<span data-floe-surface-part=badge>"), _ = /* @__PURE__ */ l("<span class=floe-tag__dot aria-hidden=true>"), $ = /* @__PURE__ */ l("<span class=floe-tag__label>");
|
|
5
5
|
function z(s) {
|
|
6
|
-
const [e, c] =
|
|
6
|
+
const [e, c] = d(s, ["variant", "size", "tone", "icon", "dot", "class", "children"]);
|
|
7
7
|
return (() => {
|
|
8
|
-
var t =
|
|
8
|
+
var t = g();
|
|
9
9
|
return i(t, u({
|
|
10
10
|
get "data-floe-surface"() {
|
|
11
11
|
return e.tone === "soft" ? "inset" : "raised";
|
|
12
12
|
},
|
|
13
|
+
get "data-floe-tone"() {
|
|
14
|
+
return e.tone ?? "solid";
|
|
15
|
+
},
|
|
13
16
|
get class() {
|
|
14
|
-
return
|
|
17
|
+
return m("floe-tag", `floe-tag--${e.variant ?? "neutral"}`, `floe-tag--${e.size ?? "md"}`, `floe-tag--${e.tone ?? "solid"}`, e.class);
|
|
15
18
|
}
|
|
16
19
|
}, c), !1, !0), a(t, (() => {
|
|
17
20
|
var r = n(() => !!e.dot);
|
|
18
|
-
return () => r() &&
|
|
21
|
+
return () => r() && _();
|
|
19
22
|
})(), null), a(t, (() => {
|
|
20
23
|
var r = n(() => !!e.icon);
|
|
21
|
-
return () => r() && p
|
|
24
|
+
return () => r() && f(p, {
|
|
22
25
|
get component() {
|
|
23
26
|
return e.icon;
|
|
24
27
|
},
|