@floegence/floe-webapp-core 0.35.21 → 0.35.23
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/chat.css +33 -7
- package/dist/components/chat/blocks/FileBlock.js +42 -27
- package/dist/components/chat/blocks/ToolCallBlock.js +150 -149
- package/dist/components/file-browser/Breadcrumb.js +73 -72
- package/dist/components/file-browser/DragPreview.d.ts +2 -2
- package/dist/components/file-browser/DragPreview.js +15 -15
- package/dist/components/file-browser/FileBrowser.js +13 -13
- package/dist/components/file-browser/index.d.ts +1 -0
- package/dist/components/layout/ActivityBar.d.ts +1 -0
- package/dist/components/layout/ActivityBar.js +51 -45
- package/dist/components/layout/MobileTabBar.d.ts +1 -0
- package/dist/components/layout/MobileTabBar.js +109 -65
- package/dist/components/layout/Shell.js +190 -158
- package/dist/components/layout/Sidebar.d.ts +1 -0
- package/dist/components/layout/Sidebar.js +33 -31
- package/dist/components/layout/SidebarPane.d.ts +1 -0
- package/dist/components/layout/SidebarPane.js +40 -37
- package/dist/components/layout/TopBar.d.ts +1 -0
- package/dist/components/layout/TopBar.js +23 -22
- package/dist/components/ui/Dropdown.d.ts +13 -0
- package/dist/components/ui/Dropdown.js +263 -145
- package/dist/components/ui/Tabs.d.ts +4 -0
- package/dist/components/ui/Tabs.js +207 -149
- package/dist/context/FloeConfigContext.d.ts +17 -0
- package/dist/context/FloeConfigContext.js +34 -25
- package/dist/context/NotificationContext.js +76 -69
- package/dist/file-browser.js +19 -17
- package/dist/full.js +302 -300
- package/dist/styles/tokens.d.ts +4 -4
- package/dist/styles/tokens.js +55 -14
- package/dist/styles.css +1 -1
- package/dist/themes/light.css +2 -2
- package/package.json +1 -1
|
@@ -1,237 +1,354 @@
|
|
|
1
|
-
import { setAttribute as
|
|
2
|
-
import { createSignal as
|
|
3
|
-
import { cn as
|
|
4
|
-
import { deferNonBlocking as
|
|
5
|
-
import { ChevronDown as
|
|
6
|
-
var
|
|
7
|
-
const h = 8;
|
|
8
|
-
let
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { setAttribute as b, insert as w, createComponent as m, Portal as U, use as P, effect as D, className as I, setStyleProperty as F, template as C, memo as j, delegateEvents as Y } from "solid-js/web";
|
|
2
|
+
import { createSignal as _, createEffect as Z, onCleanup as R, Show as S, Index as z } from "solid-js";
|
|
3
|
+
import { cn as A } from "../../utils/cn.js";
|
|
4
|
+
import { deferNonBlocking as ee } from "../../utils/defer.js";
|
|
5
|
+
import { ChevronDown as te, Check as ne, ChevronRight as re } from "../icons/index.js";
|
|
6
|
+
var G = /* @__PURE__ */ C("<div role=menu>"), ie = /* @__PURE__ */ C("<div><div role=button aria-haspopup=menu data-floe-dropdown-trigger>"), V = /* @__PURE__ */ C('<div class="my-1 h-px bg-border"role=separator>'), oe = /* @__PURE__ */ C("<div>"), le = /* @__PURE__ */ C('<button type=button role=menuitem><span class="w-3.5 h-3.5 flex items-center justify-center"></span><span class="flex-1 text-left">'), ae = /* @__PURE__ */ C("<div class=relative>"), ue = /* @__PURE__ */ C('<span class="w-3.5 h-3.5 flex items-center justify-center">'), de = /* @__PURE__ */ C("<span>");
|
|
7
|
+
const h = 8, J = '[role="menuitem"]:not([disabled]):not([aria-disabled="true"])';
|
|
8
|
+
let se = 0, ce = 0;
|
|
9
|
+
function fe(e, r) {
|
|
10
|
+
switch (e) {
|
|
11
|
+
case "Enter":
|
|
12
|
+
case " ":
|
|
13
|
+
return r.open ? {
|
|
14
|
+
nextOpen: !1
|
|
15
|
+
} : {
|
|
16
|
+
nextOpen: !0,
|
|
17
|
+
focusMode: r.hasSelection ? "selected" : "first"
|
|
18
|
+
};
|
|
19
|
+
case "ArrowDown":
|
|
20
|
+
return {
|
|
21
|
+
nextOpen: !0,
|
|
22
|
+
focusMode: r.hasSelection ? "selected" : "first"
|
|
23
|
+
};
|
|
24
|
+
case "ArrowUp":
|
|
25
|
+
return {
|
|
26
|
+
nextOpen: !0,
|
|
27
|
+
focusMode: "last"
|
|
28
|
+
};
|
|
29
|
+
default:
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function me(e, r, i) {
|
|
34
|
+
return e <= 0 ? null : r < 0 ? i > 0 ? 0 : e - 1 : (r + i + e) % e;
|
|
35
|
+
}
|
|
36
|
+
function ve(e, r, i) {
|
|
37
|
+
const o = window.innerWidth, f = window.innerHeight;
|
|
38
|
+
let a;
|
|
39
|
+
switch (i) {
|
|
13
40
|
case "center":
|
|
14
|
-
|
|
41
|
+
a = e.left + e.width / 2 - r.width / 2;
|
|
15
42
|
break;
|
|
16
43
|
case "end":
|
|
17
|
-
|
|
44
|
+
a = e.right - r.width;
|
|
18
45
|
break;
|
|
19
46
|
default:
|
|
20
|
-
|
|
47
|
+
a = e.left;
|
|
21
48
|
}
|
|
22
|
-
let
|
|
23
|
-
if (
|
|
24
|
-
const
|
|
25
|
-
|
|
49
|
+
let c = e.bottom + 4;
|
|
50
|
+
if (a + r.width > o - h && (a = o - r.width - h), a = Math.max(h, a), c + r.height > f - h) {
|
|
51
|
+
const g = e.top - h, k = f - e.bottom - h;
|
|
52
|
+
g > k && g >= r.height ? c = e.top - r.height - 4 : c = f - r.height - h;
|
|
26
53
|
}
|
|
27
|
-
return
|
|
28
|
-
x:
|
|
29
|
-
y:
|
|
54
|
+
return c = Math.max(h, c), {
|
|
55
|
+
x: a,
|
|
56
|
+
y: c
|
|
30
57
|
};
|
|
31
58
|
}
|
|
32
|
-
function
|
|
33
|
-
const
|
|
34
|
-
let
|
|
35
|
-
if (
|
|
36
|
-
const
|
|
37
|
-
|
|
59
|
+
function he(e, r) {
|
|
60
|
+
const i = window.innerWidth, o = window.innerHeight;
|
|
61
|
+
let f = e.right, a = e.top;
|
|
62
|
+
if (f + r.width > i - h) {
|
|
63
|
+
const c = e.left - r.width;
|
|
64
|
+
c >= h ? f = c : f = i - r.width - h;
|
|
38
65
|
}
|
|
39
|
-
return
|
|
40
|
-
x:
|
|
41
|
-
y:
|
|
66
|
+
return a + r.height > o - h && (a = o - r.height - h), f = Math.max(h, f), a = Math.max(h, a), {
|
|
67
|
+
x: f,
|
|
68
|
+
y: a
|
|
42
69
|
};
|
|
43
70
|
}
|
|
44
|
-
function
|
|
45
|
-
|
|
71
|
+
function Q(e) {
|
|
72
|
+
return !e || typeof HTMLElement > "u" ? [] : Array.from(e.querySelectorAll(J)).filter((r) => r instanceof HTMLElement);
|
|
73
|
+
}
|
|
74
|
+
function p(e, r = "first") {
|
|
75
|
+
const i = Q(e);
|
|
76
|
+
if (!i.length) return !1;
|
|
77
|
+
let o = i[0];
|
|
78
|
+
return r === "last" ? o = i[i.length - 1] : r === "selected" && (o = i.find((f) => f.getAttribute("data-floe-selected") === "true") ?? i[0]), o.focus(), !0;
|
|
79
|
+
}
|
|
80
|
+
function K(e, r, i) {
|
|
81
|
+
const o = Q(e);
|
|
82
|
+
if (!o.length) return !1;
|
|
83
|
+
const f = r ? o.indexOf(r) : -1, a = me(o.length, f, i);
|
|
84
|
+
return a === null ? !1 : (o[a]?.focus(), !0);
|
|
85
|
+
}
|
|
86
|
+
function ge(e) {
|
|
87
|
+
const [r, i] = _(!1), [o, f] = _({
|
|
46
88
|
x: -9999,
|
|
47
89
|
y: -9999
|
|
48
90
|
});
|
|
49
|
-
let
|
|
50
|
-
const
|
|
51
|
-
if (!
|
|
52
|
-
const
|
|
53
|
-
|
|
91
|
+
let a, c;
|
|
92
|
+
const g = `floe-dropdown-${se += 1}`, k = `${g}-menu`, L = () => {
|
|
93
|
+
if (!a || !c) return;
|
|
94
|
+
const u = a.getBoundingClientRect(), l = c.getBoundingClientRect(), v = ve(u, l, e.align ?? "start");
|
|
95
|
+
f(v);
|
|
54
96
|
};
|
|
55
|
-
|
|
97
|
+
Z(() => {
|
|
56
98
|
if (!r()) {
|
|
57
|
-
|
|
99
|
+
f({
|
|
58
100
|
x: -9999,
|
|
59
101
|
y: -9999
|
|
60
102
|
});
|
|
61
103
|
return;
|
|
62
104
|
}
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
},
|
|
67
|
-
|
|
105
|
+
const u = (v) => {
|
|
106
|
+
const n = v.target;
|
|
107
|
+
n && typeof n.closest == "function" && n.closest(`[data-floe-dropdown="${g}"]`) || i(!1);
|
|
108
|
+
}, l = (v) => {
|
|
109
|
+
v.key === "Escape" && (i(!1), requestAnimationFrame(() => a?.focus()));
|
|
68
110
|
};
|
|
69
|
-
document.addEventListener("mousedown",
|
|
70
|
-
|
|
111
|
+
document.addEventListener("mousedown", u), document.addEventListener("keydown", l), requestAnimationFrame(() => {
|
|
112
|
+
L(), p(c, e.value ? "selected" : "first");
|
|
113
|
+
}), R(() => {
|
|
114
|
+
document.removeEventListener("mousedown", u), document.removeEventListener("keydown", l);
|
|
71
115
|
});
|
|
72
116
|
});
|
|
73
|
-
const
|
|
74
|
-
const
|
|
75
|
-
|
|
117
|
+
const x = (u) => {
|
|
118
|
+
const l = e.onSelect;
|
|
119
|
+
u.keepOpen || i(!1), ee(() => l(u.id));
|
|
120
|
+
}, O = (u, l = "first") => {
|
|
121
|
+
e.disabled || (i(u), requestAnimationFrame(() => {
|
|
122
|
+
L(), p(c, l);
|
|
123
|
+
}));
|
|
124
|
+
}, B = (u) => {
|
|
125
|
+
if (e.disabled) return;
|
|
126
|
+
const l = fe(u.key, {
|
|
127
|
+
open: r(),
|
|
128
|
+
hasSelection: !!e.value
|
|
129
|
+
});
|
|
130
|
+
if (l) {
|
|
131
|
+
if (u.preventDefault(), !l.nextOpen) {
|
|
132
|
+
i(!1);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
O(!0, l.focusMode ?? "first");
|
|
136
|
+
}
|
|
137
|
+
}, q = (u) => {
|
|
138
|
+
const l = u.target, v = l?.closest('[role="menu"]'), n = l?.closest(J);
|
|
139
|
+
switch (u.key) {
|
|
140
|
+
case "ArrowDown":
|
|
141
|
+
u.preventDefault(), K(v, n, 1);
|
|
142
|
+
return;
|
|
143
|
+
case "ArrowUp":
|
|
144
|
+
u.preventDefault(), K(v, n, -1);
|
|
145
|
+
return;
|
|
146
|
+
case "Home":
|
|
147
|
+
u.preventDefault(), p(v, "first");
|
|
148
|
+
return;
|
|
149
|
+
case "End":
|
|
150
|
+
u.preventDefault(), p(v, "last");
|
|
151
|
+
return;
|
|
152
|
+
case "Tab":
|
|
153
|
+
i(!1);
|
|
154
|
+
return;
|
|
155
|
+
default:
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
76
158
|
};
|
|
77
159
|
return (() => {
|
|
78
|
-
var
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
160
|
+
var u = ie(), l = u.firstChild;
|
|
161
|
+
b(u, "data-floe-dropdown", g), l.$$keydown = B, l.$$click = () => {
|
|
162
|
+
if (!e.disabled) {
|
|
163
|
+
if (r()) {
|
|
164
|
+
i(!1);
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
O(!0, e.value ? "selected" : "first");
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
var v = a;
|
|
171
|
+
return typeof v == "function" ? P(v, l) : a = l, b(l, "aria-controls", k), w(l, () => e.trigger), w(u, m(S, {
|
|
82
172
|
get when() {
|
|
83
173
|
return r();
|
|
84
174
|
},
|
|
85
175
|
get children() {
|
|
86
|
-
return
|
|
176
|
+
return m(U, {
|
|
87
177
|
get children() {
|
|
88
|
-
var
|
|
89
|
-
|
|
178
|
+
var n = G();
|
|
179
|
+
n.$$keydown = q;
|
|
180
|
+
var y = c;
|
|
181
|
+
return typeof y == "function" ? P(y, n) : c = n, b(n, "data-floe-dropdown", g), b(n, "id", k), w(n, m(z, {
|
|
90
182
|
get each() {
|
|
91
183
|
return e.items;
|
|
92
184
|
},
|
|
93
|
-
children: (t) =>
|
|
185
|
+
children: (t) => m(S, {
|
|
94
186
|
get when() {
|
|
95
187
|
return !t().separator;
|
|
96
188
|
},
|
|
97
189
|
get fallback() {
|
|
98
|
-
return
|
|
190
|
+
return V();
|
|
99
191
|
},
|
|
100
192
|
get children() {
|
|
101
|
-
return
|
|
193
|
+
return m(X, {
|
|
102
194
|
get item() {
|
|
103
195
|
return t();
|
|
104
196
|
},
|
|
105
197
|
get selected() {
|
|
106
198
|
return e.value === t().id;
|
|
107
199
|
},
|
|
108
|
-
onSelect:
|
|
109
|
-
onCloseMenu: () =>
|
|
110
|
-
dropdownId:
|
|
200
|
+
onSelect: x,
|
|
201
|
+
onCloseMenu: () => i(!1),
|
|
202
|
+
dropdownId: g
|
|
111
203
|
});
|
|
112
204
|
}
|
|
113
205
|
})
|
|
114
|
-
})),
|
|
115
|
-
var
|
|
116
|
-
return
|
|
206
|
+
})), D((t) => {
|
|
207
|
+
var M = A("fixed z-50 min-w-36 py-0.5", "bg-popover text-popover-foreground", "rounded border border-border shadow-md", "animate-in fade-in slide-in-from-top-2"), d = `${o().x}px`, $ = `${o().y}px`;
|
|
208
|
+
return M !== t.e && I(n, t.e = M), d !== t.t && F(n, "left", t.t = d), $ !== t.a && F(n, "top", t.a = $), t;
|
|
117
209
|
}, {
|
|
118
210
|
e: void 0,
|
|
119
211
|
t: void 0,
|
|
120
212
|
a: void 0
|
|
121
|
-
}),
|
|
213
|
+
}), n;
|
|
122
214
|
}
|
|
123
215
|
});
|
|
124
216
|
}
|
|
125
|
-
}), null),
|
|
217
|
+
}), null), D((n) => {
|
|
218
|
+
var y = A("relative inline-block", e.class), t = A("cursor-pointer focus:outline-none focus-visible:ring-1 focus-visible:ring-ring", e.triggerClass, e.disabled && "pointer-events-none opacity-50"), M = e.disabled ? -1 : 0, d = r(), $ = e.triggerAriaLabel, s = e.disabled ? "true" : void 0;
|
|
219
|
+
return y !== n.e && I(u, n.e = y), t !== n.t && I(l, n.t = t), M !== n.a && b(l, "tabindex", n.a = M), d !== n.o && b(l, "aria-expanded", n.o = d), $ !== n.i && b(l, "aria-label", n.i = $), s !== n.n && b(l, "aria-disabled", n.n = s), n;
|
|
220
|
+
}, {
|
|
221
|
+
e: void 0,
|
|
222
|
+
t: void 0,
|
|
223
|
+
a: void 0,
|
|
224
|
+
o: void 0,
|
|
225
|
+
i: void 0,
|
|
226
|
+
n: void 0
|
|
227
|
+
}), u;
|
|
126
228
|
})();
|
|
127
229
|
}
|
|
128
|
-
function
|
|
129
|
-
const [r,
|
|
230
|
+
function X(e) {
|
|
231
|
+
const [r, i] = _(!1), [o, f] = _({
|
|
130
232
|
x: -9999,
|
|
131
233
|
y: -9999
|
|
132
234
|
});
|
|
133
|
-
let
|
|
134
|
-
const
|
|
135
|
-
if (!
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
},
|
|
139
|
-
|
|
140
|
-
|
|
235
|
+
let a, c, g, k;
|
|
236
|
+
const L = `floe-dropdown-item-${ce += 1}`, x = () => e.item.children && e.item.children.length > 0, O = () => {
|
|
237
|
+
if (!a || !g) return;
|
|
238
|
+
const n = a.getBoundingClientRect(), y = g.getBoundingClientRect(), t = he(n, y);
|
|
239
|
+
f(t);
|
|
240
|
+
}, B = () => {
|
|
241
|
+
x() && (clearTimeout(k), k = setTimeout(() => {
|
|
242
|
+
i(!0), requestAnimationFrame(O);
|
|
141
243
|
}, 100));
|
|
142
|
-
},
|
|
143
|
-
|
|
144
|
-
|
|
244
|
+
}, q = () => {
|
|
245
|
+
x() && (clearTimeout(k), k = void 0, !e.item.keepOpen && (k = setTimeout(() => {
|
|
246
|
+
i(!1);
|
|
145
247
|
}, 150)));
|
|
146
|
-
},
|
|
248
|
+
}, u = (n) => {
|
|
147
249
|
if (!e.item.disabled) {
|
|
148
250
|
if (e.item.content && e.item.keepOpen) {
|
|
149
|
-
|
|
251
|
+
n.stopPropagation();
|
|
150
252
|
return;
|
|
151
253
|
}
|
|
152
|
-
|
|
254
|
+
x() ? (i((y) => !y), requestAnimationFrame(O)) : e.item.content || e.onSelect(e.item);
|
|
153
255
|
}
|
|
256
|
+
}, l = (n = "first") => {
|
|
257
|
+
x() && (i(!0), requestAnimationFrame(() => {
|
|
258
|
+
O(), p(g, n);
|
|
259
|
+
}));
|
|
260
|
+
}, v = () => {
|
|
261
|
+
i(!1), requestAnimationFrame(() => c?.focus());
|
|
154
262
|
};
|
|
155
263
|
return (() => {
|
|
156
|
-
var
|
|
157
|
-
|
|
158
|
-
var
|
|
159
|
-
return typeof
|
|
264
|
+
var n = ae();
|
|
265
|
+
n.addEventListener("mouseleave", q), n.addEventListener("mouseenter", B);
|
|
266
|
+
var y = a;
|
|
267
|
+
return typeof y == "function" ? P(y, n) : a = n, w(n, m(S, {
|
|
160
268
|
get when() {
|
|
161
269
|
return e.item.content;
|
|
162
270
|
},
|
|
163
271
|
get children() {
|
|
164
|
-
var t =
|
|
165
|
-
return t.$$click =
|
|
272
|
+
var t = oe();
|
|
273
|
+
return t.$$click = u, w(t, e.item.content), D(() => I(t, A("w-full px-2 py-1.5", e.item.disabled && "opacity-50 pointer-events-none"))), t;
|
|
166
274
|
}
|
|
167
|
-
}), null),
|
|
275
|
+
}), null), w(n, m(S, {
|
|
168
276
|
get when() {
|
|
169
277
|
return !e.item.content;
|
|
170
278
|
},
|
|
171
279
|
get children() {
|
|
172
|
-
var t =
|
|
173
|
-
|
|
280
|
+
var t = le(), M = t.firstChild, d = M.nextSibling;
|
|
281
|
+
t.$$keydown = (s) => {
|
|
282
|
+
e.item.disabled || x() && ((s.key === "ArrowRight" || s.key === "Enter" || s.key === " ") && (s.preventDefault(), l("first")), s.key === "ArrowLeft" && (s.preventDefault(), v()));
|
|
283
|
+
}, t.$$click = u;
|
|
284
|
+
var $ = c;
|
|
285
|
+
return typeof $ == "function" ? P($, t) : c = t, b(t, "id", L), w(M, m(S, {
|
|
174
286
|
get when() {
|
|
175
|
-
return
|
|
287
|
+
return j(() => !!e.selected)() && !x();
|
|
176
288
|
},
|
|
177
289
|
get children() {
|
|
178
|
-
return
|
|
290
|
+
return m(ne, {
|
|
179
291
|
class: "w-3 h-3"
|
|
180
292
|
});
|
|
181
293
|
}
|
|
182
|
-
})),
|
|
294
|
+
})), w(t, m(S, {
|
|
183
295
|
get when() {
|
|
184
296
|
return e.item.icon;
|
|
185
297
|
},
|
|
186
298
|
keyed: !0,
|
|
187
|
-
children: (
|
|
188
|
-
var
|
|
189
|
-
return
|
|
299
|
+
children: (s) => (() => {
|
|
300
|
+
var E = ue();
|
|
301
|
+
return w(E, s), E;
|
|
190
302
|
})()
|
|
191
|
-
}),
|
|
303
|
+
}), d), w(d, () => e.item.label), w(t, m(S, {
|
|
192
304
|
get when() {
|
|
193
|
-
return
|
|
305
|
+
return x();
|
|
194
306
|
},
|
|
195
307
|
get children() {
|
|
196
|
-
return
|
|
308
|
+
return m(re, {
|
|
197
309
|
class: "w-3 h-3 text-muted-foreground"
|
|
198
310
|
});
|
|
199
311
|
}
|
|
200
|
-
}), null),
|
|
201
|
-
var
|
|
202
|
-
return
|
|
312
|
+
}), null), D((s) => {
|
|
313
|
+
var E = A("w-full flex items-center gap-1.5 px-2 py-1 text-xs", "transition-colors duration-75", "focus:outline-none focus:bg-accent", e.item.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-accent cursor-pointer"), T = e.item.disabled, H = x() ? "menu" : void 0, W = x() ? r() : void 0, N = e.selected && !x() ? "true" : void 0;
|
|
314
|
+
return E !== s.e && I(t, s.e = E), T !== s.t && (t.disabled = s.t = T), H !== s.a && b(t, "aria-haspopup", s.a = H), W !== s.o && b(t, "aria-expanded", s.o = W), N !== s.i && b(t, "data-floe-selected", s.i = N), s;
|
|
203
315
|
}, {
|
|
204
316
|
e: void 0,
|
|
205
|
-
t: void 0
|
|
317
|
+
t: void 0,
|
|
318
|
+
a: void 0,
|
|
319
|
+
o: void 0,
|
|
320
|
+
i: void 0
|
|
206
321
|
}), t;
|
|
207
322
|
}
|
|
208
|
-
}), null),
|
|
323
|
+
}), null), w(n, m(S, {
|
|
209
324
|
get when() {
|
|
210
|
-
return
|
|
325
|
+
return j(() => !!r())() && x();
|
|
211
326
|
},
|
|
212
327
|
get children() {
|
|
213
|
-
return
|
|
328
|
+
return m(U, {
|
|
214
329
|
get children() {
|
|
215
|
-
var t =
|
|
216
|
-
t
|
|
217
|
-
|
|
330
|
+
var t = G();
|
|
331
|
+
t.$$keydown = (d) => {
|
|
332
|
+
d.key !== "ArrowLeft" && d.key !== "Escape" || (d.preventDefault(), d.stopPropagation(), v());
|
|
333
|
+
}, t.addEventListener("mouseleave", q), t.addEventListener("mouseenter", () => {
|
|
334
|
+
clearTimeout(k);
|
|
218
335
|
});
|
|
219
|
-
var
|
|
220
|
-
return typeof
|
|
336
|
+
var M = g;
|
|
337
|
+
return typeof M == "function" ? P(M, t) : g = t, b(t, "aria-labelledby", L), w(t, m(z, {
|
|
221
338
|
get each() {
|
|
222
339
|
return e.item.children;
|
|
223
340
|
},
|
|
224
|
-
children: (
|
|
341
|
+
children: (d) => m(S, {
|
|
225
342
|
get when() {
|
|
226
|
-
return !
|
|
343
|
+
return !d().separator;
|
|
227
344
|
},
|
|
228
345
|
get fallback() {
|
|
229
|
-
return
|
|
346
|
+
return V();
|
|
230
347
|
},
|
|
231
348
|
get children() {
|
|
232
|
-
return
|
|
349
|
+
return m(X, {
|
|
233
350
|
get item() {
|
|
234
|
-
return
|
|
351
|
+
return d();
|
|
235
352
|
},
|
|
236
353
|
selected: !1,
|
|
237
354
|
get onSelect() {
|
|
@@ -246,9 +363,9 @@ function j(e) {
|
|
|
246
363
|
});
|
|
247
364
|
}
|
|
248
365
|
})
|
|
249
|
-
})),
|
|
250
|
-
var
|
|
251
|
-
return
|
|
366
|
+
})), D((d) => {
|
|
367
|
+
var $ = A("fixed z-50 min-w-36 py-0.5", "bg-popover text-popover-foreground", "rounded border border-border shadow-md", "animate-in fade-in slide-in-from-left-1"), s = e.dropdownId, E = `${o().x}px`, T = `${o().y}px`;
|
|
368
|
+
return $ !== d.e && I(t, d.e = $), s !== d.t && b(t, "data-floe-dropdown", d.t = s), E !== d.a && F(t, "left", d.a = E), T !== d.o && F(t, "top", d.o = T), d;
|
|
252
369
|
}, {
|
|
253
370
|
e: void 0,
|
|
254
371
|
t: void 0,
|
|
@@ -258,43 +375,44 @@ function j(e) {
|
|
|
258
375
|
}
|
|
259
376
|
});
|
|
260
377
|
}
|
|
261
|
-
}), null),
|
|
378
|
+
}), null), n;
|
|
262
379
|
})();
|
|
263
380
|
}
|
|
264
|
-
function
|
|
265
|
-
const r = () => e.options.find((
|
|
266
|
-
id:
|
|
267
|
-
label:
|
|
381
|
+
function Me(e) {
|
|
382
|
+
const r = () => e.options.find((o) => o.value === e.value), i = () => e.options.map((o) => ({
|
|
383
|
+
id: o.value,
|
|
384
|
+
label: o.label
|
|
268
385
|
}));
|
|
269
|
-
return
|
|
386
|
+
return m(ge, {
|
|
387
|
+
get triggerClass() {
|
|
388
|
+
return A("flex items-center justify-between gap-2 h-8 px-2.5 w-full", "rounded border border-input bg-background text-xs shadow-sm", "transition-colors duration-100", e.class);
|
|
389
|
+
},
|
|
270
390
|
get trigger() {
|
|
271
|
-
return (() => {
|
|
272
|
-
var
|
|
273
|
-
return
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
return l !== n.e && S(i, n.e = l), s !== n.t && (i.disabled = n.t = s), g !== n.a && S(a, n.a = g), n;
|
|
278
|
-
}, {
|
|
279
|
-
e: void 0,
|
|
280
|
-
t: void 0,
|
|
281
|
-
a: void 0
|
|
282
|
-
}), i;
|
|
283
|
-
})();
|
|
391
|
+
return [(() => {
|
|
392
|
+
var o = de();
|
|
393
|
+
return w(o, () => r()?.label ?? e.placeholder ?? "Select..."), D(() => I(o, A("truncate", !r() && "text-muted-foreground"))), o;
|
|
394
|
+
})(), m(te, {
|
|
395
|
+
class: "w-3.5 h-3.5 text-muted-foreground"
|
|
396
|
+
})];
|
|
284
397
|
},
|
|
285
398
|
get items() {
|
|
286
|
-
return
|
|
399
|
+
return i();
|
|
287
400
|
},
|
|
288
401
|
get value() {
|
|
289
402
|
return e.value;
|
|
290
403
|
},
|
|
291
404
|
get onSelect() {
|
|
292
405
|
return e.onChange;
|
|
406
|
+
},
|
|
407
|
+
get disabled() {
|
|
408
|
+
return e.disabled;
|
|
293
409
|
}
|
|
294
410
|
});
|
|
295
411
|
}
|
|
296
|
-
|
|
412
|
+
Y(["click", "keydown"]);
|
|
297
413
|
export {
|
|
298
|
-
|
|
299
|
-
|
|
414
|
+
ge as Dropdown,
|
|
415
|
+
Me as Select,
|
|
416
|
+
me as getWrappedMenuItemIndex,
|
|
417
|
+
fe as resolveDropdownTriggerKeyAction
|
|
300
418
|
};
|
|
@@ -77,10 +77,14 @@ export interface TabsProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, 'onC
|
|
|
77
77
|
features?: TabsFeatures;
|
|
78
78
|
/** Optional class overrides for each visual slot */
|
|
79
79
|
slotClassNames?: TabsSlotClassNames;
|
|
80
|
+
/** Accessible name for the tablist container. */
|
|
81
|
+
ariaLabel?: string;
|
|
80
82
|
}
|
|
83
|
+
export declare function resolveTabNavigationTargetId(items: Pick<TabItem, 'id' | 'disabled'>[], currentId: string, key: string): string | null;
|
|
81
84
|
export declare function Tabs(props: TabsProps): JSX.Element;
|
|
82
85
|
export interface TabPanelProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
83
86
|
active?: boolean;
|
|
84
87
|
keepMounted?: boolean;
|
|
88
|
+
labelledBy?: string;
|
|
85
89
|
}
|
|
86
90
|
export declare function TabPanel(props: TabPanelProps): JSX.Element;
|