@floegence/floe-webapp-core 0.51.0 → 0.52.1
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/ui/Dialog.d.ts +7 -0
- package/dist/components/ui/Dialog.js +160 -114
- package/dist/components/ui/Dropdown.js +192 -172
- package/dist/floe.css +31 -0
- package/dist/hooks/useOverlayMask.js +95 -83
- package/dist/styles.css +1 -1
- package/dist/surface.css +2 -2
- package/package.json +1 -1
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import { setAttribute as
|
|
2
|
-
import { createSignal as
|
|
3
|
-
import { cn as
|
|
1
|
+
import { setAttribute as f, insert as g, createComponent as l, Portal as W, use as I, spread as G, mergeProps as J, effect as F, className as O, template as P, memo as z, delegateEvents as te } from "solid-js/web";
|
|
2
|
+
import { createSignal as _, createMemo as ne, createEffect as Q, onCleanup as re, Show as y, Index as V } from "solid-js";
|
|
3
|
+
import { cn as M } from "../../utils/cn.js";
|
|
4
4
|
import { deferNonBlocking as oe } from "../../utils/defer.js";
|
|
5
|
-
import { ChevronDown as
|
|
6
|
-
import { focusMenuItem as
|
|
5
|
+
import { ChevronDown as ae, Check as ie, ChevronRight as ue } from "../icons/index.js";
|
|
6
|
+
import { focusMenuItem as p, MENU_ITEM_SELECTOR as le, moveMenuFocus as U, calculateMenuPosition as se, calculateSubmenuPosition as de } from "./menuUtils.js";
|
|
7
7
|
import { LOCAL_INTERACTION_SURFACE_ATTR as X } from "./localInteractionSurface.js";
|
|
8
8
|
import { createFloatingPresence as Y } from "./floatingPresence.js";
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
import { useOverlayMask as ce } from "../../hooks/useOverlayMask.js";
|
|
10
|
+
import { resolveSurfacePortalHost as fe, projectSurfacePortalPosition as me, resolveSurfacePortalBoundaryRect as ge, isSurfacePortalMode as ve, resolveSurfacePortalMount as be } from "./dialogSurfaceScope.js";
|
|
11
|
+
var H = /* @__PURE__ */ P("<div>"), he = /* @__PURE__ */ P("<div><div role=button aria-haspopup=menu data-floe-dropdown-trigger>"), Z = /* @__PURE__ */ P('<div class="my-1 h-px bg-border"role=separator>'), we = /* @__PURE__ */ P('<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">'), ye = /* @__PURE__ */ P("<div class=relative>"), xe = /* @__PURE__ */ P('<span class="w-3.5 h-3.5 flex items-center justify-center">'), Se = /* @__PURE__ */ P("<span>");
|
|
12
|
+
let Me = 0, ke = 0;
|
|
13
|
+
function Pe(e, c) {
|
|
13
14
|
switch (e) {
|
|
14
15
|
case "Enter":
|
|
15
16
|
case " ":
|
|
16
|
-
return
|
|
17
|
+
return c.open ? {
|
|
17
18
|
nextOpen: !1
|
|
18
19
|
} : {
|
|
19
20
|
nextOpen: !0,
|
|
20
|
-
focusMode:
|
|
21
|
+
focusMode: c.hasSelection ? "selected" : "first"
|
|
21
22
|
};
|
|
22
23
|
case "ArrowDown":
|
|
23
24
|
return {
|
|
24
25
|
nextOpen: !0,
|
|
25
|
-
focusMode:
|
|
26
|
+
focusMode: c.hasSelection ? "selected" : "first"
|
|
26
27
|
};
|
|
27
28
|
case "ArrowUp":
|
|
28
29
|
return {
|
|
@@ -33,146 +34,165 @@ function ke(e, f) {
|
|
|
33
34
|
return null;
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
|
-
function
|
|
37
|
-
const [
|
|
38
|
-
open:
|
|
37
|
+
function $e(e) {
|
|
38
|
+
const [c, d] = _(!1), o = Y({
|
|
39
|
+
open: c,
|
|
39
40
|
exitDurationMs: 100
|
|
40
|
-
}), [
|
|
41
|
+
}), [B, k] = _({
|
|
41
42
|
x: -9999,
|
|
42
43
|
y: -9999
|
|
43
44
|
});
|
|
44
|
-
let
|
|
45
|
-
const
|
|
45
|
+
let v, h;
|
|
46
|
+
const b = `floe-dropdown-${Me += 1}`, $ = `${b}-menu`, w = ne(() => o.mounted() ? fe({
|
|
47
|
+
owner: v
|
|
48
|
+
}) : {
|
|
46
49
|
host: null,
|
|
47
50
|
boundaryHost: null,
|
|
48
51
|
mountHost: null,
|
|
49
52
|
mode: "global"
|
|
50
|
-
}),
|
|
51
|
-
mount: () =>
|
|
52
|
-
isSurfaceMode: () =>
|
|
53
|
-
boundaryRect: () =>
|
|
54
|
-
projectPosition: (
|
|
53
|
+
}), m = {
|
|
54
|
+
mount: () => be(w()),
|
|
55
|
+
isSurfaceMode: () => ve(w()),
|
|
56
|
+
boundaryRect: () => ge(w()),
|
|
57
|
+
projectPosition: (r) => me(r, w())
|
|
55
58
|
}, A = () => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
d(!1), requestAnimationFrame(() => v?.focus());
|
|
60
|
+
};
|
|
61
|
+
ce({
|
|
62
|
+
open: o.mounted,
|
|
63
|
+
root: () => h,
|
|
64
|
+
containsTarget: (r) => !!(r instanceof Element ? r : document.activeElement)?.closest(`[data-floe-dropdown="${b}"]`),
|
|
65
|
+
onClose: A,
|
|
66
|
+
onEscapeOutside: A,
|
|
67
|
+
lockBodyScroll: !1,
|
|
68
|
+
trapFocus: !1,
|
|
69
|
+
autoFocus: !1,
|
|
70
|
+
restoreFocus: !1,
|
|
71
|
+
blockHotkeys: !1,
|
|
72
|
+
closeOnEscape: "inside",
|
|
73
|
+
escapeKeyPhase: "bubble"
|
|
74
|
+
});
|
|
75
|
+
const C = () => {
|
|
76
|
+
if (!v || !h) return;
|
|
77
|
+
const r = v.getBoundingClientRect(), n = h.getBoundingClientRect(), i = se(r, n, e.align ?? "start", m.boundaryRect());
|
|
78
|
+
k(i);
|
|
59
79
|
};
|
|
60
80
|
Q(() => {
|
|
61
|
-
if (!
|
|
62
|
-
|
|
81
|
+
if (!o.mounted()) {
|
|
82
|
+
k({
|
|
63
83
|
x: -9999,
|
|
64
84
|
y: -9999
|
|
65
85
|
});
|
|
66
86
|
return;
|
|
67
87
|
}
|
|
68
|
-
if (!
|
|
69
|
-
const
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
}, r = (i) => {
|
|
73
|
-
i.key === "Escape" && (c(!1), requestAnimationFrame(() => x?.focus()));
|
|
88
|
+
if (!c()) return;
|
|
89
|
+
const r = (n) => {
|
|
90
|
+
const i = n.target;
|
|
91
|
+
i && typeof i.closest == "function" && i.closest(`[data-floe-dropdown="${b}"]`) || d(!1);
|
|
74
92
|
};
|
|
75
|
-
document.addEventListener("pointerdown",
|
|
76
|
-
|
|
93
|
+
document.addEventListener("pointerdown", r, !0), requestAnimationFrame(() => {
|
|
94
|
+
C(), p(h, e.value ? "selected" : "first");
|
|
77
95
|
}), re(() => {
|
|
78
|
-
document.removeEventListener("pointerdown",
|
|
96
|
+
document.removeEventListener("pointerdown", r, !0);
|
|
79
97
|
});
|
|
80
98
|
});
|
|
81
|
-
const
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
99
|
+
const j = (r) => {
|
|
100
|
+
const n = e.onSelect;
|
|
101
|
+
r.keepOpen || (d(!1), v?.focus({
|
|
102
|
+
preventScroll: !0
|
|
103
|
+
})), oe(() => n(r.id));
|
|
104
|
+
}, R = (r, n = "first") => {
|
|
105
|
+
e.disabled || (d(r), requestAnimationFrame(() => {
|
|
106
|
+
C(), p(h, n);
|
|
87
107
|
}));
|
|
88
|
-
},
|
|
108
|
+
}, T = (r) => {
|
|
89
109
|
if (e.disabled) return;
|
|
90
|
-
const
|
|
91
|
-
open:
|
|
110
|
+
const n = Pe(r.key, {
|
|
111
|
+
open: c(),
|
|
92
112
|
hasSelection: !!e.value
|
|
93
113
|
});
|
|
94
|
-
if (
|
|
95
|
-
if (
|
|
96
|
-
|
|
114
|
+
if (n) {
|
|
115
|
+
if (r.preventDefault(), !n.nextOpen) {
|
|
116
|
+
d(!1);
|
|
97
117
|
return;
|
|
98
118
|
}
|
|
99
|
-
|
|
119
|
+
R(!0, n.focusMode ?? "first");
|
|
100
120
|
}
|
|
101
|
-
},
|
|
102
|
-
const
|
|
103
|
-
switch (
|
|
121
|
+
}, q = (r) => {
|
|
122
|
+
const n = r.target, i = n?.closest('[role="menu"]'), t = n?.closest(le);
|
|
123
|
+
switch (r.key) {
|
|
104
124
|
case "ArrowDown":
|
|
105
|
-
|
|
125
|
+
r.preventDefault(), U(i, t, 1);
|
|
106
126
|
return;
|
|
107
127
|
case "ArrowUp":
|
|
108
|
-
|
|
128
|
+
r.preventDefault(), U(i, t, -1);
|
|
109
129
|
return;
|
|
110
130
|
case "Home":
|
|
111
|
-
|
|
131
|
+
r.preventDefault(), p(i, "first");
|
|
112
132
|
return;
|
|
113
133
|
case "End":
|
|
114
|
-
|
|
134
|
+
r.preventDefault(), p(i, "last");
|
|
115
135
|
return;
|
|
116
136
|
case "Tab":
|
|
117
|
-
|
|
137
|
+
r.preventDefault(), d(!1), v?.focus();
|
|
118
138
|
return;
|
|
119
139
|
default:
|
|
120
140
|
return;
|
|
121
141
|
}
|
|
122
142
|
};
|
|
123
143
|
return (() => {
|
|
124
|
-
var
|
|
125
|
-
|
|
144
|
+
var r = he(), n = r.firstChild;
|
|
145
|
+
f(r, "data-floe-dropdown", b), n.$$keydown = T, n.$$click = () => {
|
|
126
146
|
if (!e.disabled) {
|
|
127
|
-
if (
|
|
128
|
-
|
|
147
|
+
if (c()) {
|
|
148
|
+
d(!1);
|
|
129
149
|
return;
|
|
130
150
|
}
|
|
131
|
-
|
|
151
|
+
R(!0, e.value ? "selected" : "first");
|
|
132
152
|
}
|
|
133
153
|
};
|
|
134
|
-
var i =
|
|
135
|
-
return typeof i == "function" ? I(i,
|
|
154
|
+
var i = v;
|
|
155
|
+
return typeof i == "function" ? I(i, n) : v = n, f(n, "aria-controls", $), g(n, () => e.trigger), g(r, l(y, {
|
|
136
156
|
get when() {
|
|
137
|
-
return
|
|
157
|
+
return o.mounted();
|
|
138
158
|
},
|
|
139
159
|
get children() {
|
|
140
160
|
return l(W, {
|
|
141
161
|
get mount() {
|
|
142
|
-
return
|
|
162
|
+
return m.mount();
|
|
143
163
|
},
|
|
144
164
|
get children() {
|
|
145
|
-
var t =
|
|
146
|
-
return typeof
|
|
165
|
+
var t = H(), s = h;
|
|
166
|
+
return typeof s == "function" ? I(s, t) : h = t, f(t, "data-floe-dropdown", b), G(t, J({
|
|
147
167
|
get class() {
|
|
148
|
-
return
|
|
168
|
+
return M(m.isSurfaceMode() ? "absolute z-20 min-w-36 py-0.5" : "fixed z-50 min-w-36 py-0.5", "bg-popover text-popover-foreground", "rounded border border-border shadow-md", "floe-floating-presence floe-floating-menu");
|
|
149
169
|
},
|
|
150
170
|
get "data-floating-presence"() {
|
|
151
|
-
return
|
|
171
|
+
return o.state();
|
|
152
172
|
},
|
|
153
173
|
get "aria-hidden"() {
|
|
154
|
-
return
|
|
174
|
+
return o.exiting() ? "true" : void 0;
|
|
155
175
|
}
|
|
156
176
|
}, () => ({
|
|
157
|
-
[X]:
|
|
177
|
+
[X]: m.isSurfaceMode() ? "true" : void 0
|
|
158
178
|
}), {
|
|
159
179
|
get style() {
|
|
160
180
|
return {
|
|
161
|
-
left: `${
|
|
162
|
-
top: `${
|
|
181
|
+
left: `${m.projectPosition(B()).x}px`,
|
|
182
|
+
top: `${m.projectPosition(B()).y}px`
|
|
163
183
|
};
|
|
164
184
|
},
|
|
165
185
|
role: "menu",
|
|
166
186
|
"data-floe-surface": "floating",
|
|
167
|
-
id:
|
|
168
|
-
onKeyDown:
|
|
169
|
-
}), !1, !0),
|
|
187
|
+
id: $,
|
|
188
|
+
onKeyDown: q
|
|
189
|
+
}), !1, !0), g(t, l(V, {
|
|
170
190
|
get each() {
|
|
171
191
|
return e.items;
|
|
172
192
|
},
|
|
173
|
-
children: (
|
|
193
|
+
children: (u) => l(y, {
|
|
174
194
|
get when() {
|
|
175
|
-
return !
|
|
195
|
+
return !u().separator;
|
|
176
196
|
},
|
|
177
197
|
get fallback() {
|
|
178
198
|
return Z();
|
|
@@ -180,15 +200,15 @@ function Pe(e) {
|
|
|
180
200
|
get children() {
|
|
181
201
|
return l(ee, {
|
|
182
202
|
get item() {
|
|
183
|
-
return
|
|
203
|
+
return u();
|
|
184
204
|
},
|
|
185
205
|
get selected() {
|
|
186
|
-
return e.value ===
|
|
206
|
+
return e.value === u().id;
|
|
187
207
|
},
|
|
188
|
-
onSelect:
|
|
189
|
-
onCloseMenu: () =>
|
|
190
|
-
dropdownId:
|
|
191
|
-
portalLayout:
|
|
208
|
+
onSelect: j,
|
|
209
|
+
onCloseMenu: () => d(!1),
|
|
210
|
+
dropdownId: b,
|
|
211
|
+
portalLayout: m
|
|
192
212
|
});
|
|
193
213
|
}
|
|
194
214
|
})
|
|
@@ -197,8 +217,8 @@ function Pe(e) {
|
|
|
197
217
|
});
|
|
198
218
|
}
|
|
199
219
|
}), null), F((t) => {
|
|
200
|
-
var
|
|
201
|
-
return
|
|
220
|
+
var s = M("relative inline-block", e.class), u = M("cursor-pointer", e.triggerClass, e.disabled && "pointer-events-none opacity-50"), x = e.disabled ? -1 : 0, a = c(), S = e.triggerAriaLabel, E = e.disabled ? "true" : void 0, D = e.triggerInputSurface ? "true" : void 0, L = e.triggerInputSurface ? "inset" : void 0;
|
|
221
|
+
return s !== t.e && O(r, t.e = s), u !== t.t && O(n, t.t = u), x !== t.a && f(n, "tabindex", t.a = x), a !== t.o && f(n, "aria-expanded", t.o = a), S !== t.i && f(n, "aria-label", t.i = S), E !== t.n && f(n, "aria-disabled", t.n = E), D !== t.s && f(n, "data-floe-input-surface", t.s = D), L !== t.h && f(n, "data-floe-surface", t.h = L), t;
|
|
202
222
|
}, {
|
|
203
223
|
e: void 0,
|
|
204
224
|
t: void 0,
|
|
@@ -208,110 +228,110 @@ function Pe(e) {
|
|
|
208
228
|
n: void 0,
|
|
209
229
|
s: void 0,
|
|
210
230
|
h: void 0
|
|
211
|
-
}),
|
|
231
|
+
}), r;
|
|
212
232
|
})();
|
|
213
233
|
}
|
|
214
234
|
function ee(e) {
|
|
215
|
-
const [
|
|
216
|
-
open: () => !!(
|
|
235
|
+
const [c, d] = _(!1), o = () => e.item.children && e.item.children.length > 0, k = Y({
|
|
236
|
+
open: () => !!(c() && o()),
|
|
217
237
|
exitDurationMs: 100
|
|
218
|
-
}), [
|
|
238
|
+
}), [v, h] = _({
|
|
219
239
|
x: -9999,
|
|
220
240
|
y: -9999
|
|
221
241
|
});
|
|
222
|
-
let
|
|
223
|
-
const A = `floe-dropdown-item-${
|
|
242
|
+
let b, $, w, m;
|
|
243
|
+
const A = `floe-dropdown-item-${ke += 1}`;
|
|
224
244
|
Q(() => {
|
|
225
|
-
|
|
245
|
+
k.mounted() || h({
|
|
226
246
|
x: -9999,
|
|
227
247
|
y: -9999
|
|
228
248
|
});
|
|
229
249
|
});
|
|
230
|
-
const
|
|
231
|
-
if (!
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
},
|
|
235
|
-
|
|
236
|
-
|
|
250
|
+
const C = () => {
|
|
251
|
+
if (!b || !w) return;
|
|
252
|
+
const n = b.getBoundingClientRect(), i = w.getBoundingClientRect(), t = de(n, i, e.portalLayout.boundaryRect());
|
|
253
|
+
h(t);
|
|
254
|
+
}, j = () => {
|
|
255
|
+
o() && (clearTimeout(m), m = setTimeout(() => {
|
|
256
|
+
d(!0), requestAnimationFrame(C);
|
|
237
257
|
}, 100));
|
|
238
|
-
},
|
|
239
|
-
|
|
240
|
-
|
|
258
|
+
}, R = () => {
|
|
259
|
+
o() && (clearTimeout(m), m = void 0, !e.item.keepOpen && (m = setTimeout(() => {
|
|
260
|
+
d(!1);
|
|
241
261
|
}, 150)));
|
|
242
|
-
},
|
|
262
|
+
}, T = (n) => {
|
|
243
263
|
if (!e.item.disabled) {
|
|
244
264
|
if (e.item.content && e.item.keepOpen) {
|
|
245
|
-
|
|
265
|
+
n.stopPropagation();
|
|
246
266
|
return;
|
|
247
267
|
}
|
|
248
|
-
|
|
268
|
+
o() ? (d((i) => !i), requestAnimationFrame(C)) : e.item.content || e.onSelect(e.item);
|
|
249
269
|
}
|
|
250
|
-
},
|
|
251
|
-
|
|
252
|
-
|
|
270
|
+
}, q = (n = "first") => {
|
|
271
|
+
o() && (d(!0), requestAnimationFrame(() => {
|
|
272
|
+
C(), p(w, n);
|
|
253
273
|
}));
|
|
254
274
|
}, r = () => {
|
|
255
|
-
|
|
275
|
+
d(!1), requestAnimationFrame(() => $?.focus());
|
|
256
276
|
};
|
|
257
277
|
return (() => {
|
|
258
|
-
var
|
|
259
|
-
|
|
260
|
-
var
|
|
261
|
-
return typeof
|
|
278
|
+
var n = ye();
|
|
279
|
+
n.addEventListener("mouseleave", R), n.addEventListener("mouseenter", j);
|
|
280
|
+
var i = b;
|
|
281
|
+
return typeof i == "function" ? I(i, n) : b = n, g(n, l(y, {
|
|
262
282
|
get when() {
|
|
263
283
|
return e.item.content;
|
|
264
284
|
},
|
|
265
285
|
get children() {
|
|
266
|
-
var
|
|
267
|
-
return
|
|
268
|
-
var
|
|
269
|
-
return
|
|
286
|
+
var t = H();
|
|
287
|
+
return t.$$click = T, g(t, e.item.content), F((s) => {
|
|
288
|
+
var u = M("w-full px-2 py-1.5", e.item.tone === "danger" && "text-destructive", e.item.disabled && "opacity-50 pointer-events-none"), x = e.item.tone ?? "default";
|
|
289
|
+
return u !== s.e && O(t, s.e = u), x !== s.t && f(t, "data-tone", s.t = x), s;
|
|
270
290
|
}, {
|
|
271
291
|
e: void 0,
|
|
272
292
|
t: void 0
|
|
273
|
-
}),
|
|
293
|
+
}), t;
|
|
274
294
|
}
|
|
275
|
-
}), null),
|
|
295
|
+
}), null), g(n, l(y, {
|
|
276
296
|
get when() {
|
|
277
297
|
return !e.item.content;
|
|
278
298
|
},
|
|
279
299
|
get children() {
|
|
280
|
-
var
|
|
281
|
-
|
|
282
|
-
e.item.disabled ||
|
|
283
|
-
},
|
|
284
|
-
var
|
|
285
|
-
return typeof
|
|
300
|
+
var t = we(), s = t.firstChild, u = s.nextSibling;
|
|
301
|
+
t.$$keydown = (a) => {
|
|
302
|
+
e.item.disabled || o() && ((a.key === "ArrowRight" || a.key === "Enter" || a.key === " ") && (a.preventDefault(), q("first")), a.key === "ArrowLeft" && (a.preventDefault(), r()));
|
|
303
|
+
}, t.$$click = T;
|
|
304
|
+
var x = $;
|
|
305
|
+
return typeof x == "function" ? I(x, t) : $ = t, f(t, "id", A), g(s, l(y, {
|
|
286
306
|
get when() {
|
|
287
|
-
return z(() => !!e.selected)() && !
|
|
307
|
+
return z(() => !!e.selected)() && !o();
|
|
288
308
|
},
|
|
289
309
|
get children() {
|
|
290
|
-
return l(
|
|
310
|
+
return l(ie, {
|
|
291
311
|
class: "w-3 h-3"
|
|
292
312
|
});
|
|
293
313
|
}
|
|
294
|
-
})),
|
|
314
|
+
})), g(t, l(y, {
|
|
295
315
|
get when() {
|
|
296
316
|
return e.item.icon;
|
|
297
317
|
},
|
|
298
318
|
keyed: !0,
|
|
299
|
-
children: (
|
|
300
|
-
var
|
|
301
|
-
return
|
|
319
|
+
children: (a) => (() => {
|
|
320
|
+
var S = xe();
|
|
321
|
+
return g(S, a), S;
|
|
302
322
|
})()
|
|
303
|
-
}),
|
|
323
|
+
}), u), g(u, () => e.item.label), g(t, l(y, {
|
|
304
324
|
get when() {
|
|
305
|
-
return
|
|
325
|
+
return o();
|
|
306
326
|
},
|
|
307
327
|
get children() {
|
|
308
328
|
return l(ue, {
|
|
309
329
|
class: "w-3 h-3 text-muted-foreground"
|
|
310
330
|
});
|
|
311
331
|
}
|
|
312
|
-
}), null), F((
|
|
313
|
-
var
|
|
314
|
-
return
|
|
332
|
+
}), null), F((a) => {
|
|
333
|
+
var S = M("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.tone === "danger" && "text-destructive", e.item.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-accent cursor-pointer"), E = e.item.disabled, D = o() ? "menu" : void 0, L = o() ? c() : void 0, K = e.selected && !o() ? "true" : void 0, N = e.item.tone ?? "default";
|
|
334
|
+
return S !== a.e && O(t, a.e = S), E !== a.t && (t.disabled = a.t = E), D !== a.a && f(t, "aria-haspopup", a.a = D), L !== a.o && f(t, "aria-expanded", a.o = L), K !== a.i && f(t, "data-floe-selected", a.i = K), N !== a.n && f(t, "data-tone", a.n = N), a;
|
|
315
335
|
}, {
|
|
316
336
|
e: void 0,
|
|
317
337
|
t: void 0,
|
|
@@ -319,11 +339,11 @@ function ee(e) {
|
|
|
319
339
|
o: void 0,
|
|
320
340
|
i: void 0,
|
|
321
341
|
n: void 0
|
|
322
|
-
}),
|
|
342
|
+
}), t;
|
|
323
343
|
}
|
|
324
|
-
}), null),
|
|
344
|
+
}), null), g(n, l(y, {
|
|
325
345
|
get when() {
|
|
326
|
-
return z(() => !!
|
|
346
|
+
return z(() => !!k.mounted())() && o();
|
|
327
347
|
},
|
|
328
348
|
get children() {
|
|
329
349
|
return l(W, {
|
|
@@ -331,46 +351,46 @@ function ee(e) {
|
|
|
331
351
|
return e.portalLayout.mount();
|
|
332
352
|
},
|
|
333
353
|
get children() {
|
|
334
|
-
var
|
|
335
|
-
return typeof
|
|
354
|
+
var t = H(), s = w;
|
|
355
|
+
return typeof s == "function" ? I(s, t) : w = t, G(t, J({
|
|
336
356
|
get class() {
|
|
337
|
-
return
|
|
357
|
+
return M(e.portalLayout.isSurfaceMode() ? "absolute z-20 min-w-36 py-0.5" : "fixed z-50 min-w-36 py-0.5", "bg-popover text-popover-foreground", "rounded border border-border shadow-md", "floe-floating-presence floe-floating-menu floe-floating-submenu");
|
|
338
358
|
},
|
|
339
359
|
get "data-floe-dropdown"() {
|
|
340
360
|
return e.dropdownId;
|
|
341
361
|
},
|
|
342
362
|
get "data-floating-presence"() {
|
|
343
|
-
return
|
|
363
|
+
return k.state();
|
|
344
364
|
},
|
|
345
365
|
get "aria-hidden"() {
|
|
346
|
-
return
|
|
366
|
+
return k.exiting() ? "true" : void 0;
|
|
347
367
|
}
|
|
348
368
|
}, () => ({
|
|
349
369
|
[X]: e.portalLayout.isSurfaceMode() ? "true" : void 0
|
|
350
370
|
}), {
|
|
351
371
|
get style() {
|
|
352
372
|
return {
|
|
353
|
-
left: `${e.portalLayout.projectPosition(
|
|
354
|
-
top: `${e.portalLayout.projectPosition(
|
|
373
|
+
left: `${e.portalLayout.projectPosition(v()).x}px`,
|
|
374
|
+
top: `${e.portalLayout.projectPosition(v()).y}px`
|
|
355
375
|
};
|
|
356
376
|
},
|
|
357
377
|
role: "menu",
|
|
358
378
|
"data-floe-surface": "floating",
|
|
359
379
|
"aria-labelledby": A,
|
|
360
380
|
onMouseEnter: () => {
|
|
361
|
-
clearTimeout(
|
|
381
|
+
clearTimeout(m);
|
|
362
382
|
},
|
|
363
|
-
onMouseLeave:
|
|
364
|
-
onKeyDown: (
|
|
365
|
-
|
|
383
|
+
onMouseLeave: R,
|
|
384
|
+
onKeyDown: (u) => {
|
|
385
|
+
u.key !== "ArrowLeft" && u.key !== "Escape" || (u.preventDefault(), u.stopPropagation(), r());
|
|
366
386
|
}
|
|
367
|
-
}), !1, !0),
|
|
387
|
+
}), !1, !0), g(t, l(V, {
|
|
368
388
|
get each() {
|
|
369
389
|
return e.item.children;
|
|
370
390
|
},
|
|
371
|
-
children: (
|
|
391
|
+
children: (u) => l(y, {
|
|
372
392
|
get when() {
|
|
373
|
-
return !
|
|
393
|
+
return !u().separator;
|
|
374
394
|
},
|
|
375
395
|
get fallback() {
|
|
376
396
|
return Z();
|
|
@@ -378,7 +398,7 @@ function ee(e) {
|
|
|
378
398
|
get children() {
|
|
379
399
|
return l(ee, {
|
|
380
400
|
get item() {
|
|
381
|
-
return
|
|
401
|
+
return u();
|
|
382
402
|
},
|
|
383
403
|
selected: !1,
|
|
384
404
|
get onSelect() {
|
|
@@ -396,33 +416,33 @@ function ee(e) {
|
|
|
396
416
|
});
|
|
397
417
|
}
|
|
398
418
|
})
|
|
399
|
-
})),
|
|
419
|
+
})), t;
|
|
400
420
|
}
|
|
401
421
|
});
|
|
402
422
|
}
|
|
403
|
-
}), null),
|
|
423
|
+
}), null), n;
|
|
404
424
|
})();
|
|
405
425
|
}
|
|
406
|
-
function
|
|
407
|
-
const
|
|
408
|
-
id:
|
|
409
|
-
label:
|
|
426
|
+
function Fe(e) {
|
|
427
|
+
const c = () => e.options.find((o) => o.value === e.value), d = () => e.options.map((o) => ({
|
|
428
|
+
id: o.value,
|
|
429
|
+
label: o.label
|
|
410
430
|
}));
|
|
411
|
-
return l(
|
|
431
|
+
return l($e, {
|
|
412
432
|
triggerInputSurface: !0,
|
|
413
433
|
get triggerClass() {
|
|
414
|
-
return
|
|
434
|
+
return M("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);
|
|
415
435
|
},
|
|
416
436
|
get trigger() {
|
|
417
437
|
return [(() => {
|
|
418
|
-
var
|
|
419
|
-
return
|
|
420
|
-
})(), l(
|
|
438
|
+
var o = Se();
|
|
439
|
+
return g(o, () => c()?.label ?? e.placeholder ?? "Select..."), F(() => O(o, M("truncate", !c() && "text-muted-foreground"))), o;
|
|
440
|
+
})(), l(ae, {
|
|
421
441
|
class: "w-3.5 h-3.5 text-muted-foreground"
|
|
422
442
|
})];
|
|
423
443
|
},
|
|
424
444
|
get items() {
|
|
425
|
-
return
|
|
445
|
+
return d();
|
|
426
446
|
},
|
|
427
447
|
get value() {
|
|
428
448
|
return e.value;
|
|
@@ -437,7 +457,7 @@ function Te(e) {
|
|
|
437
457
|
}
|
|
438
458
|
te(["click", "keydown"]);
|
|
439
459
|
export {
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
460
|
+
$e as Dropdown,
|
|
461
|
+
Fe as Select,
|
|
462
|
+
Pe as resolveDropdownTriggerKeyAction
|
|
443
463
|
};
|