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