laif-ds 1.1.3 → 1.1.5
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/CHANGELOG.md +27 -0
- package/dist/agent-docs/adoption-report.json +39 -45
- package/dist/agent-docs/components/AppSelect.md +305 -90
- package/dist/agent-docs/components/FilePreview.md +24 -0
- package/dist/agent-docs/manifest.json +35 -18
- package/dist/components/ui/app-select.js +566 -366
- package/dist/components/ui/file-preview/index.js +262 -218
- package/dist/index.d.ts +52 -27
- package/dist/styles.css +1 -1
- package/dist/styles.v3.css +1 -1
- package/package.json +2 -1
|
@@ -1,452 +1,651 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs as
|
|
3
|
-
import { useState as
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
2
|
+
import { jsxs as h, jsx as n } from "react/jsx-runtime";
|
|
3
|
+
import { useState as I, useRef as O, useId as tt, useCallback as T, useMemo as R, useLayoutEffect as re } from "react";
|
|
4
|
+
import rt from "../../node_modules/react-remove-scroll/dist/es2015/Combination.js";
|
|
5
|
+
import { designTokens as c } from "../design-tokens.js";
|
|
6
|
+
import { Badge as at } from "./badge.js";
|
|
7
|
+
import { Command as nt, CommandInput as lt, CommandList as it, CommandEmpty as ot, CommandGroup as ge, CommandItem as be } from "./command.js";
|
|
8
|
+
import { Label as st } from "./label.js";
|
|
9
|
+
import { cn as g } from "../../lib/utils.js";
|
|
10
|
+
import { Button as dt } from "./button.js";
|
|
11
|
+
import { Checkbox as ct } from "./checkbox.js";
|
|
12
|
+
import { Icon as E } from "./icon.js";
|
|
13
|
+
import { Popover as ut, PopoverTrigger as ft, PopoverContent as mt } from "./popover.js";
|
|
14
|
+
import pt from "../../node_modules/lucide-react/dist/esm/icons/chevron-down.js";
|
|
15
|
+
const ve = {
|
|
16
|
+
sm: c.sizes.sm,
|
|
17
|
+
default: c.sizes.default,
|
|
18
|
+
lg: c.sizes.lg
|
|
19
|
+
}, ht = 24, xe = g(
|
|
20
|
+
c.motion.duration,
|
|
21
|
+
"-mx-1 flex shrink-0 cursor-pointer items-center rounded-sm p-1 opacity-50 outline-none transition-opacity enabled:hover:opacity-100 focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-d-ring disabled:cursor-not-allowed"
|
|
22
|
+
), gt = {
|
|
23
|
+
width: 0,
|
|
24
|
+
height: 0,
|
|
25
|
+
innerHeight: 0,
|
|
26
|
+
paddingLeft: 0,
|
|
27
|
+
paddingRight: 0
|
|
28
|
+
}, ye = (u) => typeof u.label == "string" ? u.label : u.keywords?.[0] ?? String(u.value), we = (u) => {
|
|
29
|
+
const z = typeof u.label == "string" ? [u.label] : [];
|
|
30
|
+
return u.keywords && z.push(...u.keywords), z.length > 0 ? z : [String(u.value)];
|
|
18
31
|
};
|
|
19
|
-
function
|
|
20
|
-
const {
|
|
32
|
+
function Lt(u) {
|
|
33
|
+
const z = u, {
|
|
21
34
|
multiple: a = !1,
|
|
22
|
-
options:
|
|
23
|
-
value:
|
|
24
|
-
defaultValue:
|
|
25
|
-
renderValue:
|
|
26
|
-
onValueChange:
|
|
27
|
-
onClear:
|
|
28
|
-
placeholder:
|
|
29
|
-
emptyPlaceholder:
|
|
30
|
-
searchPlaceholder:
|
|
31
|
-
addItemPlaceholder:
|
|
32
|
-
itemCountMessage:
|
|
33
|
-
maxSelectedMessage:
|
|
35
|
+
options: f,
|
|
36
|
+
value: Ce,
|
|
37
|
+
defaultValue: Ne,
|
|
38
|
+
renderValue: B,
|
|
39
|
+
onValueChange: $,
|
|
40
|
+
onClear: j,
|
|
41
|
+
placeholder: D = "Seleziona...",
|
|
42
|
+
emptyPlaceholder: Se = "Nessun risultato",
|
|
43
|
+
searchPlaceholder: Ie = "Cerca...",
|
|
44
|
+
addItemPlaceholder: ke = "Aggiungi",
|
|
45
|
+
itemCountMessage: Re = (e) => e === 1 ? "1 elemento selezionato" : `${e} elementi selezionati`,
|
|
46
|
+
maxSelectedMessage: ze = (e) => `Puoi selezionare fino a ${e} elementi`,
|
|
34
47
|
label: b,
|
|
35
|
-
className:
|
|
36
|
-
labelClassName:
|
|
37
|
-
wrpClassName:
|
|
38
|
-
searchable:
|
|
39
|
-
creatable:
|
|
40
|
-
noGroupLabel:
|
|
41
|
-
maxSelected:
|
|
42
|
-
showChipsInsteadOfCount:
|
|
43
|
-
disabled:
|
|
44
|
-
size:
|
|
45
|
-
isSingleSelectClearable:
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
48
|
+
className: De = "",
|
|
49
|
+
labelClassName: Le = "",
|
|
50
|
+
wrpClassName: Ae = "",
|
|
51
|
+
searchable: H = !1,
|
|
52
|
+
creatable: Pe = !1,
|
|
53
|
+
noGroupLabel: ae = "Nessun gruppo",
|
|
54
|
+
maxSelected: m,
|
|
55
|
+
showChipsInsteadOfCount: K = !1,
|
|
56
|
+
disabled: d,
|
|
57
|
+
size: ne = "default",
|
|
58
|
+
isSingleSelectClearable: Oe = !1,
|
|
59
|
+
required: le = !1,
|
|
60
|
+
"aria-invalid": M = !1,
|
|
61
|
+
id: Te,
|
|
62
|
+
"data-testid": Be,
|
|
63
|
+
selectableAll: He,
|
|
64
|
+
"aria-label": G,
|
|
65
|
+
"aria-labelledby": L,
|
|
66
|
+
portalContainer: Me,
|
|
67
|
+
// Caller attributes that are merged with the trigger's own, not replaced.
|
|
68
|
+
"aria-describedby": _e,
|
|
69
|
+
onKeyDown: Ve,
|
|
70
|
+
// Every remaining prop is an HTML attribute for the trigger.
|
|
71
|
+
...Fe
|
|
72
|
+
} = z, _ = a ? He ?? !0 : !1, [C, V] = I(!1), qe = C && document.body.hasAttribute("data-scroll-locked"), [N, W] = I(""), X = O(null), Y = O(null), F = O(null), ie = O(null), Z = O(!1), [y, Ee] = I(
|
|
73
|
+
gt
|
|
74
|
+
), [$e, je] = I(0), [Ke, oe] = I(!1), [Ge, se] = I(
|
|
75
|
+
Number.POSITIVE_INFINITY
|
|
76
|
+
), J = tt(), A = `${J}-label`, q = `${J}-value`, de = `${J}-summary`, Q = Object.prototype.hasOwnProperty.call(u, "value"), [We, Xe] = I(Ne), k = Q ? Ce : We, v = T(
|
|
59
77
|
(e) => {
|
|
60
|
-
|
|
78
|
+
Q || Xe(e), $?.(
|
|
61
79
|
a ? Array.isArray(e) ? e : [] : Array.isArray(e) ? e[0] : e
|
|
62
80
|
);
|
|
63
81
|
},
|
|
64
|
-
[
|
|
65
|
-
),
|
|
66
|
-
const e =
|
|
82
|
+
[Q, a, $]
|
|
83
|
+
), i = R(() => {
|
|
84
|
+
const e = a ? Array.isArray(k) ? k : [] : k != null ? [k] : [];
|
|
85
|
+
return f.some((t) => t.value === "") ? e : e.filter((t) => t !== "");
|
|
86
|
+
}, [k, a, f]), s = R(() => {
|
|
87
|
+
const e = f.filter((t) => i.includes(t.value));
|
|
67
88
|
if (a) {
|
|
68
|
-
const
|
|
69
|
-
return [...e, ...
|
|
70
|
-
} else if (
|
|
71
|
-
return [{ value:
|
|
89
|
+
const t = i.filter((r) => !e.find((l) => l.value === r)).map((r) => ({ value: r, label: r }));
|
|
90
|
+
return [...e, ...t];
|
|
91
|
+
} else if (i.length && !e.length)
|
|
92
|
+
return [{ value: i[0], label: i[0] }];
|
|
72
93
|
return e;
|
|
73
|
-
}, [
|
|
74
|
-
|
|
75
|
-
if (e)
|
|
76
|
-
return String(e.value).trim();
|
|
77
|
-
}, [f]), [ze, V] = x(void 0), ee = C(() => {
|
|
78
|
-
V(H), I(!0);
|
|
79
|
-
}, [H]), te = (e) => {
|
|
80
|
-
if (!e.disabled)
|
|
94
|
+
}, [f, i, a]), ce = (e) => {
|
|
95
|
+
if (!(d || e.disabled))
|
|
81
96
|
if (a) {
|
|
82
|
-
const
|
|
83
|
-
if (!
|
|
97
|
+
const t = i.includes(e.value);
|
|
98
|
+
if (t && e.fixed || !t && m !== void 0 && i.length >= m)
|
|
84
99
|
return;
|
|
85
|
-
|
|
86
|
-
|
|
100
|
+
v(
|
|
101
|
+
t ? i.filter((r) => r !== e.value) : [...i, e.value]
|
|
87
102
|
);
|
|
88
103
|
} else
|
|
89
|
-
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
if (e.key === "Enter" || e.key === " ") {
|
|
108
|
-
if (e.preventDefault(), !u) {
|
|
109
|
-
ee();
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
if (e.key === "Enter") {
|
|
113
|
-
Oe();
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
I(!1);
|
|
104
|
+
v(e.value), V(!1);
|
|
105
|
+
}, ue = T(() => {
|
|
106
|
+
if (!d) {
|
|
107
|
+
if (a) {
|
|
108
|
+
const e = new Set(
|
|
109
|
+
f.filter((t) => t.fixed).map((t) => t.value)
|
|
110
|
+
);
|
|
111
|
+
v(i.filter((t) => e.has(t)));
|
|
112
|
+
} else
|
|
113
|
+
v(void 0);
|
|
114
|
+
W(""), j && j();
|
|
115
|
+
}
|
|
116
|
+
}, [d, a, f, i, v, j]), Ye = s.some((e) => !e.fixed), U = () => {
|
|
117
|
+
(F.current?.querySelector("input") ?? F.current)?.focus();
|
|
118
|
+
}, Ze = (e) => {
|
|
119
|
+
if (!(d || e.target !== e.currentTarget) && ["Enter", " ", "ArrowDown"].includes(e.key)) {
|
|
120
|
+
if (e.preventDefault(), C) {
|
|
121
|
+
U();
|
|
117
122
|
return;
|
|
118
123
|
}
|
|
119
|
-
|
|
120
|
-
if (e.preventDefault(), !u) {
|
|
121
|
-
ee();
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
Ve(e.key);
|
|
125
|
-
}
|
|
124
|
+
Z.current = !0, V(!0);
|
|
126
125
|
}
|
|
127
|
-
},
|
|
126
|
+
}, fe = T(
|
|
128
127
|
(e) => {
|
|
129
|
-
const
|
|
130
|
-
return
|
|
128
|
+
const t = N.toLocaleLowerCase();
|
|
129
|
+
return t ? we(e).some(
|
|
130
|
+
(r) => r.toLocaleLowerCase().includes(t)
|
|
131
|
+
) : !0;
|
|
131
132
|
},
|
|
132
|
-
[
|
|
133
|
-
),
|
|
134
|
-
() =>
|
|
135
|
-
[
|
|
136
|
-
),
|
|
137
|
-
() =>
|
|
138
|
-
[
|
|
139
|
-
),
|
|
140
|
-
if (
|
|
141
|
-
const e =
|
|
142
|
-
return
|
|
133
|
+
[N]
|
|
134
|
+
), w = R(
|
|
135
|
+
() => f.filter((e) => !e.disabled && fe(e)),
|
|
136
|
+
[f, fe]
|
|
137
|
+
), ee = R(
|
|
138
|
+
() => w.filter((e) => i.includes(e.value)).length,
|
|
139
|
+
[w, i]
|
|
140
|
+
), S = R(() => {
|
|
141
|
+
if (ee === 0) return "none";
|
|
142
|
+
const e = m !== void 0 && i.length >= m;
|
|
143
|
+
return ee >= w.length || e ? "all" : "some";
|
|
143
144
|
}, [
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
]),
|
|
145
|
+
ee,
|
|
146
|
+
w.length,
|
|
147
|
+
i.length,
|
|
148
|
+
m
|
|
149
|
+
]), Je = T(() => {
|
|
149
150
|
if (!a) return;
|
|
150
|
-
if (
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
),
|
|
154
|
-
(o) => !
|
|
151
|
+
if (S === "all") {
|
|
152
|
+
const r = new Set(w.map((o) => o.value)), l = new Set(
|
|
153
|
+
f.filter((o) => o.fixed).map((o) => o.value)
|
|
154
|
+
), p = i.filter(
|
|
155
|
+
(o) => !r.has(o) || l.has(o)
|
|
155
156
|
);
|
|
156
|
-
|
|
157
|
+
v(p);
|
|
157
158
|
return;
|
|
158
159
|
}
|
|
159
|
-
const e = new Set(
|
|
160
|
-
for (const
|
|
161
|
-
if (!e.has(
|
|
162
|
-
if (
|
|
163
|
-
|
|
160
|
+
const e = new Set(i), t = [...i];
|
|
161
|
+
for (const r of w)
|
|
162
|
+
if (!e.has(r.value)) {
|
|
163
|
+
if (m !== void 0 && t.length >= m) break;
|
|
164
|
+
t.push(r.value), e.add(r.value);
|
|
164
165
|
}
|
|
165
|
-
|
|
166
|
+
v(t);
|
|
166
167
|
}, [
|
|
167
168
|
a,
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
n,
|
|
171
|
-
h,
|
|
169
|
+
S,
|
|
170
|
+
f,
|
|
172
171
|
i,
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
172
|
+
w,
|
|
173
|
+
m,
|
|
174
|
+
v
|
|
175
|
+
]), Qe = R(() => {
|
|
176
|
+
const e = f.some((t) => t.group);
|
|
177
|
+
return f.reduce((t, r) => {
|
|
178
|
+
const l = e ? r.group || ae : "";
|
|
179
|
+
return t[l] = t[l] || [], t[l].push(r), t;
|
|
179
180
|
}, {});
|
|
180
|
-
}, [
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
181
|
+
}, [f, ae]);
|
|
182
|
+
re(() => {
|
|
183
|
+
const e = X.current;
|
|
184
|
+
if (!e) return;
|
|
185
|
+
const t = () => {
|
|
186
|
+
const l = e.getBoundingClientRect(), p = window.getComputedStyle(e);
|
|
187
|
+
Ee({
|
|
188
|
+
width: l.width,
|
|
189
|
+
height: l.height,
|
|
190
|
+
innerHeight: e.clientHeight,
|
|
191
|
+
paddingLeft: parseFloat(p.paddingLeft),
|
|
192
|
+
paddingRight: parseFloat(p.paddingRight)
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
if (t(), typeof ResizeObserver > "u") return;
|
|
196
|
+
const r = new ResizeObserver(t);
|
|
197
|
+
return r.observe(e), () => r.disconnect();
|
|
198
|
+
}, [C]);
|
|
199
|
+
const me = s.length > 0, Ue = s.some(
|
|
200
|
+
(e) => !e.fixed && !e.disabled
|
|
201
|
+
), et = T((e) => {
|
|
202
|
+
const t = e?.querySelector('[data-slot="badge"]');
|
|
203
|
+
t && je(t.offsetHeight);
|
|
204
|
+
}, []);
|
|
205
|
+
re(() => {
|
|
206
|
+
if (!C || a) return;
|
|
185
207
|
const e = requestAnimationFrame(() => {
|
|
186
|
-
|
|
208
|
+
Y.current && Y.current?.scrollIntoView({
|
|
187
209
|
behavior: "instant",
|
|
188
210
|
block: "center"
|
|
189
211
|
});
|
|
190
212
|
});
|
|
191
213
|
return () => cancelAnimationFrame(e);
|
|
192
|
-
}, [
|
|
193
|
-
const e =
|
|
194
|
-
if (!
|
|
195
|
-
|
|
214
|
+
}, [C, a]), re(() => {
|
|
215
|
+
const e = ie.current;
|
|
216
|
+
if (!e || !K) {
|
|
217
|
+
oe(!1), se(Number.POSITIVE_INFINITY);
|
|
196
218
|
return;
|
|
197
219
|
}
|
|
198
|
-
const
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
220
|
+
const t = () => {
|
|
221
|
+
const l = e.scrollWidth > e.clientWidth, p = Array.from(e.children).filter(
|
|
222
|
+
(x) => x instanceof HTMLElement
|
|
223
|
+
);
|
|
224
|
+
let o = p.length;
|
|
225
|
+
if (l) {
|
|
226
|
+
const x = e.clientWidth - ht, P = p.findIndex(
|
|
227
|
+
(he) => he.offsetLeft + he.offsetWidth > x
|
|
228
|
+
);
|
|
229
|
+
P !== -1 && (o = Math.max(1, P));
|
|
230
|
+
}
|
|
231
|
+
oe(l), se(o);
|
|
232
|
+
};
|
|
233
|
+
if (t(), typeof ResizeObserver > "u") return;
|
|
234
|
+
const r = new ResizeObserver(t);
|
|
235
|
+
r.observe(e);
|
|
236
|
+
for (const l of Array.from(e.children))
|
|
237
|
+
r.observe(l);
|
|
238
|
+
return () => r.disconnect();
|
|
239
|
+
}, [s, K]);
|
|
240
|
+
const pe = (e, t) => /* @__PURE__ */ h(
|
|
241
|
+
at,
|
|
242
|
+
{
|
|
243
|
+
variant: "secondary",
|
|
244
|
+
className: "bg-d-secondary/50 border-d-border flex max-w-full items-center gap-1 border",
|
|
245
|
+
children: [
|
|
246
|
+
/* @__PURE__ */ n("span", { className: "min-w-0 truncate", children: e.label }),
|
|
247
|
+
!e.fixed && !e.disabled && /* @__PURE__ */ n(
|
|
248
|
+
"button",
|
|
249
|
+
{
|
|
250
|
+
type: "button",
|
|
251
|
+
tabIndex: t ? void 0 : -1,
|
|
252
|
+
disabled: d,
|
|
253
|
+
"aria-label": `Rimuovi ${ye(e)}`,
|
|
254
|
+
className: "hover:bg-d-secondary focus-visible:ring-d-ring -my-0.5 -mr-1.5 flex shrink-0 cursor-pointer items-center rounded-sm p-0.5 outline-none focus-visible:ring-2 focus-visible:ring-inset",
|
|
255
|
+
onMouseDown: (r) => r.preventDefault(),
|
|
256
|
+
onClick: (r) => {
|
|
257
|
+
r.stopPropagation(), r.preventDefault();
|
|
258
|
+
const l = r.currentTarget, p = t && document.activeElement === l, o = p ? Array.from(
|
|
259
|
+
l.closest('[role="list"]')?.querySelectorAll("button") ?? []
|
|
260
|
+
) : [], x = o.indexOf(l);
|
|
261
|
+
if (ce(e), !p) return;
|
|
262
|
+
const P = o[x + 1] ?? o[x - 1];
|
|
263
|
+
requestAnimationFrame(() => {
|
|
264
|
+
P?.isConnected ? P.focus() : U();
|
|
265
|
+
});
|
|
266
|
+
},
|
|
267
|
+
children: /* @__PURE__ */ n(E, { name: "X", size: "xs" })
|
|
268
|
+
}
|
|
269
|
+
)
|
|
270
|
+
]
|
|
271
|
+
}
|
|
272
|
+
), te = a && s.length > 0 ? `${s.length} ${s.length === 1 ? "selezionato" : "selezionati"}: ${s.map(ye).join(", ")}` : void 0;
|
|
273
|
+
return /* @__PURE__ */ h("div", { className: g("flex flex-col gap-1.5", Ae), children: [
|
|
274
|
+
b && // The trigger is a div, so `htmlFor` cannot bind to it: it is named via
|
|
275
|
+
// aria-labelledby and a click here focuses it, like a native <select>.
|
|
276
|
+
/* @__PURE__ */ h(
|
|
277
|
+
st,
|
|
211
278
|
{
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
279
|
+
id: A,
|
|
280
|
+
className: g(
|
|
281
|
+
"gap-0.5",
|
|
282
|
+
!d && "cursor-pointer",
|
|
283
|
+
Le
|
|
284
|
+
),
|
|
285
|
+
onClick: () => {
|
|
286
|
+
d || X.current?.focus();
|
|
215
287
|
},
|
|
288
|
+
children: [
|
|
289
|
+
b,
|
|
290
|
+
le && !M && /* @__PURE__ */ n("span", { "aria-hidden": !0, children: "*" }),
|
|
291
|
+
M && /* @__PURE__ */ n("span", { "aria-hidden": !0, className: "text-d-destructive", children: "*" })
|
|
292
|
+
]
|
|
293
|
+
}
|
|
294
|
+
),
|
|
295
|
+
/* @__PURE__ */ h(
|
|
296
|
+
ut,
|
|
297
|
+
{
|
|
298
|
+
open: d ? !1 : C,
|
|
299
|
+
onOpenChange: (e) => !d && V(e),
|
|
216
300
|
modal: !1,
|
|
217
301
|
children: [
|
|
218
|
-
/* @__PURE__ */
|
|
302
|
+
/* @__PURE__ */ n(ft, { asChild: !0, children: /* @__PURE__ */ h(
|
|
219
303
|
"div",
|
|
220
304
|
{
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
305
|
+
...Fe,
|
|
306
|
+
ref: X,
|
|
307
|
+
id: Te,
|
|
308
|
+
"data-testid": Be,
|
|
224
309
|
role: "combobox",
|
|
225
|
-
|
|
226
|
-
"aria-haspopup": "
|
|
227
|
-
"aria-
|
|
228
|
-
"aria-
|
|
229
|
-
"aria-
|
|
230
|
-
"aria-
|
|
231
|
-
"aria-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
310
|
+
"aria-expanded": C,
|
|
311
|
+
"aria-haspopup": "dialog",
|
|
312
|
+
"aria-disabled": d || void 0,
|
|
313
|
+
"aria-required": le || void 0,
|
|
314
|
+
"aria-invalid": M || void 0,
|
|
315
|
+
"aria-labelledby": b ? a ? A : `${A} ${q}` : L || void 0,
|
|
316
|
+
"aria-label": b || L ? void 0 : G ?? D,
|
|
317
|
+
"aria-describedby": [_e, te && de].filter(Boolean).join(" ") || void 0,
|
|
318
|
+
tabIndex: d ? -1 : 0,
|
|
319
|
+
onKeyDown: (e) => {
|
|
320
|
+
Ve?.(e), e.defaultPrevented || Ze(e);
|
|
321
|
+
},
|
|
322
|
+
className: g(
|
|
323
|
+
c.input.base,
|
|
324
|
+
c.radius.default,
|
|
325
|
+
// focus-visible, not focus-within: the trigger is the focusable
|
|
326
|
+
// element, and focus-within would keep the ring after a mouse
|
|
327
|
+
// pick and light it when an inner clear button is focused.
|
|
328
|
+
c.focusRing,
|
|
237
329
|
"flex w-full min-w-[100px] cursor-pointer items-center justify-between gap-2",
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
330
|
+
// Multiple: the open popover covers the trigger, and its ring
|
|
331
|
+
// would only show as a halo around the popover's edge.
|
|
332
|
+
C && !a && c.activeRing,
|
|
333
|
+
// aria-invalid: out-specifies activeRing and sorts after
|
|
334
|
+
// focus-visible, so the error wins while open or focused.
|
|
335
|
+
c.input.invalid,
|
|
336
|
+
ve[ne],
|
|
337
|
+
d && "cursor-not-allowed opacity-50",
|
|
338
|
+
De
|
|
242
339
|
),
|
|
243
340
|
children: [
|
|
244
|
-
|
|
245
|
-
/* @__PURE__ */
|
|
341
|
+
s.length === 0 ? /* @__PURE__ */ n("span", { id: q, className: "text-d-muted-foreground", children: D }) : a ? /* @__PURE__ */ h("div", { className: "flex h-full w-full min-w-0 items-center justify-between gap-2", children: [
|
|
342
|
+
/* @__PURE__ */ n(
|
|
246
343
|
"div",
|
|
247
344
|
{
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
) : /* @__PURE__ */
|
|
345
|
+
ref: ie,
|
|
346
|
+
id: q,
|
|
347
|
+
"aria-hidden": !0,
|
|
348
|
+
className: g(
|
|
349
|
+
"relative flex min-w-0 flex-1 flex-nowrap items-center gap-1 overflow-hidden",
|
|
350
|
+
// mask-image instead of a colored gradient: the trigger
|
|
351
|
+
// background can be overridden via className and turns
|
|
352
|
+
// translucent when disabled.
|
|
353
|
+
Ke && "[mask-image:linear-gradient(to_right,#000_calc(100%-1.5rem),transparent)]"
|
|
354
|
+
),
|
|
355
|
+
children: K ? s.map((e, t) => /* @__PURE__ */ n(
|
|
356
|
+
"span",
|
|
357
|
+
{
|
|
358
|
+
inert: t >= Ge,
|
|
359
|
+
className: "flex max-w-full min-w-0 shrink-0",
|
|
360
|
+
children: B ? B(e) : pe(e, !1)
|
|
361
|
+
},
|
|
362
|
+
e.value
|
|
363
|
+
)) : /* @__PURE__ */ n("div", { className: "truncate", children: Re(s.length) })
|
|
267
364
|
}
|
|
268
365
|
),
|
|
269
|
-
|
|
270
|
-
"
|
|
366
|
+
Ye && /* @__PURE__ */ n(
|
|
367
|
+
"button",
|
|
271
368
|
{
|
|
272
|
-
|
|
369
|
+
type: "button",
|
|
370
|
+
disabled: d,
|
|
371
|
+
className: xe,
|
|
273
372
|
onClick: (e) => {
|
|
274
|
-
e.stopPropagation(), e.preventDefault(),
|
|
373
|
+
e.stopPropagation(), e.preventDefault(), ue();
|
|
275
374
|
},
|
|
276
375
|
onMouseDown: (e) => e.preventDefault(),
|
|
277
|
-
"aria-label": "
|
|
278
|
-
children: /* @__PURE__ */
|
|
279
|
-
O,
|
|
280
|
-
{
|
|
281
|
-
name: "X",
|
|
282
|
-
size: "xs",
|
|
283
|
-
className: "!text-d-foreground opacity-50"
|
|
284
|
-
}
|
|
285
|
-
)
|
|
376
|
+
"aria-label": "Rimuovi tutte le selezioni",
|
|
377
|
+
children: /* @__PURE__ */ n(E, { name: "X", size: "xs", className: "!text-d-foreground" })
|
|
286
378
|
}
|
|
287
379
|
)
|
|
288
|
-
] }) : /* @__PURE__ */
|
|
289
|
-
/* @__PURE__ */
|
|
290
|
-
|
|
291
|
-
"
|
|
380
|
+
] }) : /* @__PURE__ */ h("div", { className: "flex h-full w-full min-w-0 items-center justify-between gap-2", children: [
|
|
381
|
+
/* @__PURE__ */ n("div", { id: q, className: "min-w-0 flex-1 truncate", children: B ? B(s[0]) : typeof s[0]?.label == "string" ? /* @__PURE__ */ n("span", { children: s[0]?.label }) : s[0]?.label }),
|
|
382
|
+
Oe && s.length > 0 && /* @__PURE__ */ n(
|
|
383
|
+
"button",
|
|
292
384
|
{
|
|
293
|
-
|
|
294
|
-
|
|
385
|
+
type: "button",
|
|
386
|
+
disabled: d,
|
|
387
|
+
className: xe,
|
|
295
388
|
onClick: (e) => {
|
|
296
|
-
e.stopPropagation(), e.preventDefault(),
|
|
389
|
+
e.stopPropagation(), e.preventDefault(), ue();
|
|
297
390
|
},
|
|
298
391
|
onMouseDown: (e) => e.preventDefault(),
|
|
299
|
-
"aria-label": "
|
|
300
|
-
children: /* @__PURE__ */
|
|
301
|
-
O,
|
|
302
|
-
{
|
|
303
|
-
name: "X",
|
|
304
|
-
size: "xs",
|
|
305
|
-
className: "!text-d-foreground opacity-50"
|
|
306
|
-
}
|
|
307
|
-
)
|
|
392
|
+
"aria-label": "Rimuovi selezione",
|
|
393
|
+
children: /* @__PURE__ */ n(E, { name: "X", size: "xs", className: "!text-d-foreground" })
|
|
308
394
|
}
|
|
309
395
|
)
|
|
310
396
|
] }),
|
|
311
|
-
/* @__PURE__ */
|
|
397
|
+
/* @__PURE__ */ n(pt, { className: "h-4 w-4 opacity-50" })
|
|
312
398
|
]
|
|
313
399
|
}
|
|
314
400
|
) }),
|
|
315
|
-
/* @__PURE__ */
|
|
316
|
-
|
|
401
|
+
/* @__PURE__ */ n(
|
|
402
|
+
mt,
|
|
317
403
|
{
|
|
318
|
-
container:
|
|
319
|
-
|
|
320
|
-
|
|
404
|
+
container: Me,
|
|
405
|
+
"aria-labelledby": b ? A : L || void 0,
|
|
406
|
+
"aria-label": b || L ? void 0 : G ?? D,
|
|
407
|
+
className: g(
|
|
408
|
+
"p-0",
|
|
409
|
+
// Multiple: the popover covers the trigger (see sideOffset), so it
|
|
410
|
+
// only fades — sliding or zooming would move the chips it lands
|
|
411
|
+
// on. The overrides beat tw-animate-css's zoom/slide variables.
|
|
412
|
+
// The height cap keeps it inside the viewport: the list shrinks.
|
|
413
|
+
// Flipped above the trigger (data-side=top, set by Radix after
|
|
414
|
+
// measuring), the order is reversed so that the top row still lands
|
|
415
|
+
// on the trigger, now at the bottom. Variants rather than React
|
|
416
|
+
// state: the side is known only once positioned, so no wrong frame.
|
|
417
|
+
a && "group/select-popover flex max-h-[var(--radix-popover-content-available-height)] flex-col ![--tw-enter-scale:1] ![--tw-enter-translate-x:0] ![--tw-enter-translate-y:0] ![--tw-exit-scale:1] data-[side=top]:flex-col-reverse",
|
|
418
|
+
a && M && "border-d-destructive"
|
|
419
|
+
),
|
|
420
|
+
style: {
|
|
421
|
+
width: y.width > 0 ? y.width : "auto"
|
|
422
|
+
},
|
|
321
423
|
align: "start",
|
|
322
|
-
sideOffset: 4,
|
|
424
|
+
sideOffset: a ? -y.height : 4,
|
|
323
425
|
avoidCollisions: !0,
|
|
324
426
|
collisionPadding: 8,
|
|
325
|
-
onOpenAutoFocus: (e) =>
|
|
326
|
-
|
|
327
|
-
|
|
427
|
+
onOpenAutoFocus: (e) => {
|
|
428
|
+
e.preventDefault();
|
|
429
|
+
const t = Z.current;
|
|
430
|
+
Z.current = !1, H || t ? U() : a && F.current?.focus();
|
|
431
|
+
},
|
|
432
|
+
children: /* @__PURE__ */ h(
|
|
433
|
+
rt,
|
|
328
434
|
{
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
filter: (e, l, t) => {
|
|
334
|
-
const s = l.toLocaleLowerCase();
|
|
335
|
-
return s ? [e, ...t ?? []].some(
|
|
336
|
-
(o) => o.toLocaleLowerCase().includes(s)
|
|
337
|
-
) ? 1 : 0 : 1;
|
|
338
|
-
},
|
|
339
|
-
className: "w-full",
|
|
435
|
+
allowPinchZoom: !0,
|
|
436
|
+
noIsolation: !qe,
|
|
437
|
+
removeScrollBar: !1,
|
|
438
|
+
className: "contents",
|
|
340
439
|
children: [
|
|
341
|
-
|
|
440
|
+
a && // The top row lines up with the covered trigger: same horizontal
|
|
441
|
+
// padding and a trigger-high first row. The popover border is 1px
|
|
442
|
+
// like the trigger's, so the content starts at the same point.
|
|
443
|
+
// bg-d-input and the corner radius on the trigger's side: some
|
|
444
|
+
// themes give the input a different surface than the popover.
|
|
445
|
+
/* @__PURE__ */ n(
|
|
342
446
|
"div",
|
|
343
447
|
{
|
|
344
|
-
className:
|
|
345
|
-
|
|
346
|
-
|
|
448
|
+
className: g(
|
|
449
|
+
ve[ne],
|
|
450
|
+
c.radius.default,
|
|
451
|
+
// box-content: the one-row min-height below excludes the 1px
|
|
452
|
+
// separator, so the row can shrink down to exactly the trigger.
|
|
453
|
+
"border-d-border bg-d-input box-content flex h-auto flex-col border-b py-0",
|
|
454
|
+
"rounded-b-none group-data-[side=top]/select-popover:rounded-t-none group-data-[side=top]/select-popover:rounded-b-md group-data-[side=top]/select-popover:border-t group-data-[side=top]/select-popover:border-b-0"
|
|
347
455
|
),
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
"
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
onClick: (e) => {
|
|
376
|
-
e.stopPropagation(), e.preventDefault(), Re();
|
|
377
|
-
},
|
|
378
|
-
children: /* @__PURE__ */ r(
|
|
379
|
-
O,
|
|
380
|
-
{
|
|
381
|
-
name: h.length === 0 ? "SquareDot" : y === "all" ? "SquareCheck" : y === "some" ? "SquareMinus" : "Square",
|
|
382
|
-
size: "xs"
|
|
383
|
-
}
|
|
456
|
+
style: {
|
|
457
|
+
paddingLeft: y.paddingLeft,
|
|
458
|
+
// With badges the right padding moves into the scrolling list,
|
|
459
|
+
// so its scrollbar sits against the popover edge.
|
|
460
|
+
paddingRight: me ? 0 : y.paddingRight,
|
|
461
|
+
// One row: on a short viewport the badge area shrinks down to
|
|
462
|
+
// its first row (and scrolls) instead of squeezing the list.
|
|
463
|
+
minHeight: y.innerHeight
|
|
464
|
+
},
|
|
465
|
+
children: me ? /* @__PURE__ */ n(
|
|
466
|
+
"div",
|
|
467
|
+
{
|
|
468
|
+
ref: et,
|
|
469
|
+
role: "list",
|
|
470
|
+
"aria-label": "Selezionati",
|
|
471
|
+
tabIndex: Ue ? void 0 : 0,
|
|
472
|
+
className: g(
|
|
473
|
+
c.focusRing,
|
|
474
|
+
c.radius.sm,
|
|
475
|
+
// Flipped: the first row goes at the bottom, on the trigger.
|
|
476
|
+
"flex max-h-24 flex-wrap gap-1 overflow-y-auto overscroll-contain group-data-[side=top]/select-popover:flex-wrap-reverse"
|
|
477
|
+
),
|
|
478
|
+
style: {
|
|
479
|
+
paddingRight: y.paddingRight,
|
|
480
|
+
paddingBlock: Math.max(
|
|
481
|
+
0,
|
|
482
|
+
(y.innerHeight - $e) / 2
|
|
384
483
|
)
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
|
|
484
|
+
},
|
|
485
|
+
children: s.map((e) => /* @__PURE__ */ n(
|
|
486
|
+
"span",
|
|
487
|
+
{
|
|
488
|
+
role: "listitem",
|
|
489
|
+
className: "flex max-w-full min-w-0",
|
|
490
|
+
children: pe(e, !0)
|
|
491
|
+
},
|
|
492
|
+
e.value
|
|
493
|
+
))
|
|
494
|
+
}
|
|
495
|
+
) : /* @__PURE__ */ n(
|
|
496
|
+
"div",
|
|
497
|
+
{
|
|
498
|
+
"aria-hidden": !0,
|
|
499
|
+
className: "text-d-muted-foreground flex items-center",
|
|
500
|
+
style: { minHeight: y.innerHeight },
|
|
501
|
+
children: D
|
|
502
|
+
}
|
|
503
|
+
)
|
|
388
504
|
}
|
|
389
505
|
),
|
|
390
|
-
/* @__PURE__ */
|
|
391
|
-
|
|
506
|
+
/* @__PURE__ */ h(
|
|
507
|
+
nt,
|
|
392
508
|
{
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
509
|
+
ref: F,
|
|
510
|
+
defaultValue: "__none__",
|
|
511
|
+
shouldFilter: H,
|
|
512
|
+
filter: (e, t, r) => {
|
|
513
|
+
const l = t.toLocaleLowerCase();
|
|
514
|
+
return (r?.length ? r : [e]).some(
|
|
515
|
+
(o) => o.toLocaleLowerCase().includes(l)
|
|
516
|
+
) ? 1 : 0;
|
|
517
|
+
},
|
|
518
|
+
className: g(
|
|
519
|
+
"w-full",
|
|
520
|
+
// Flipped: search next to the top row (now at the bottom), list
|
|
521
|
+
// above it; separators move to the other side.
|
|
522
|
+
a && "min-h-0 group-data-[side=top]/select-popover:flex-col-reverse"
|
|
523
|
+
),
|
|
396
524
|
children: [
|
|
397
|
-
/* @__PURE__ */
|
|
398
|
-
|
|
399
|
-
se,
|
|
525
|
+
(H || a && _) && /* @__PURE__ */ h(
|
|
526
|
+
"div",
|
|
400
527
|
{
|
|
401
|
-
className:
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
528
|
+
className: g(
|
|
529
|
+
"relative",
|
|
530
|
+
a && _ && "[&_[data-slot=command-d-input-wrapper]>svg]:hidden",
|
|
531
|
+
a && "group-data-[side=top]/select-popover:[&>[data-slot=command-d-input-wrapper]]:border-t group-data-[side=top]/select-popover:[&>[data-slot=command-d-input-wrapper]]:border-b-0"
|
|
532
|
+
),
|
|
533
|
+
children: [
|
|
534
|
+
H ? /* @__PURE__ */ n(
|
|
535
|
+
lt,
|
|
536
|
+
{
|
|
537
|
+
placeholder: Ie,
|
|
538
|
+
className: g(
|
|
539
|
+
"placeholder:text-d-muted-foreground",
|
|
540
|
+
a && _ && "pl-7"
|
|
541
|
+
),
|
|
542
|
+
value: N,
|
|
543
|
+
onValueChange: W
|
|
544
|
+
}
|
|
545
|
+
) : /* @__PURE__ */ n("div", { className: "border-d-border h-9 border-b group-data-[side=top]/select-popover:border-t group-data-[side=top]/select-popover:border-b-0" }),
|
|
546
|
+
a && _ && /* @__PURE__ */ n(
|
|
547
|
+
dt,
|
|
548
|
+
{
|
|
549
|
+
type: "button",
|
|
550
|
+
variant: "ghost",
|
|
551
|
+
size: "sm",
|
|
552
|
+
disabled: w.length === 0,
|
|
553
|
+
"aria-label": S === "all" ? "Deseleziona tutto" : "Seleziona tutto",
|
|
554
|
+
"aria-checked": S === "all" ? !0 : S === "some" ? "mixed" : !1,
|
|
555
|
+
role: "checkbox",
|
|
556
|
+
className: g(
|
|
557
|
+
"text-d-muted-foreground hover:text-d-foreground absolute inset-y-0 left-2 my-auto size-6 px-0",
|
|
558
|
+
S === "all" && "text-d-primary hover:text-d-primary interactive:hover:text-d-primary"
|
|
559
|
+
),
|
|
560
|
+
onMouseDown: (e) => {
|
|
561
|
+
e.stopPropagation(), e.preventDefault();
|
|
562
|
+
},
|
|
563
|
+
onClick: (e) => {
|
|
564
|
+
e.stopPropagation(), e.preventDefault(), Je();
|
|
565
|
+
},
|
|
566
|
+
children: /* @__PURE__ */ n(
|
|
567
|
+
E,
|
|
568
|
+
{
|
|
569
|
+
name: w.length === 0 ? "SquareDot" : S === "all" ? "SquareCheck" : S === "some" ? "SquareMinus" : "Square",
|
|
570
|
+
size: "xs"
|
|
571
|
+
}
|
|
572
|
+
)
|
|
573
|
+
}
|
|
574
|
+
)
|
|
575
|
+
]
|
|
411
576
|
}
|
|
412
|
-
)
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
577
|
+
),
|
|
578
|
+
/* @__PURE__ */ h(
|
|
579
|
+
it,
|
|
580
|
+
{
|
|
581
|
+
"aria-labelledby": b ? A : L || void 0,
|
|
582
|
+
label: typeof b == "string" && b ? b : G ?? D,
|
|
583
|
+
className: "max-h-60 overflow-auto overscroll-contain",
|
|
584
|
+
children: [
|
|
585
|
+
/* @__PURE__ */ n(ot, { children: Se }),
|
|
586
|
+
Pe && N && /* @__PURE__ */ n(ge, { children: /* @__PURE__ */ n(
|
|
587
|
+
be,
|
|
588
|
+
{
|
|
589
|
+
className: "cursor-pointer",
|
|
590
|
+
onSelect: () => {
|
|
591
|
+
N && (v(a ? [...i, N] : N), W(""), a || V(!1));
|
|
592
|
+
},
|
|
593
|
+
children: /* @__PURE__ */ h("div", { className: "text-d-foreground text-xs", children: [
|
|
594
|
+
ke,
|
|
595
|
+
" “",
|
|
596
|
+
N,
|
|
597
|
+
"”"
|
|
598
|
+
] })
|
|
599
|
+
}
|
|
600
|
+
) }),
|
|
601
|
+
Object.entries(Qe).map(([e, t]) => /* @__PURE__ */ n(
|
|
602
|
+
ge,
|
|
603
|
+
{
|
|
604
|
+
heading: e || void 0,
|
|
605
|
+
className: "[&_[cmdk-group-heading]]:bg-d-muted [&_[cmdk-group-heading]]:rounded-sm",
|
|
606
|
+
children: t.map((r) => {
|
|
607
|
+
const l = i.includes(r.value), p = a && m !== void 0 && !l && i.length >= m, o = a && l && r.fixed, x = r.disabled || p || o;
|
|
608
|
+
return /* @__PURE__ */ h(
|
|
609
|
+
be,
|
|
610
|
+
{
|
|
611
|
+
ref: !a && l ? Y : null,
|
|
612
|
+
value: String(r.value).trim(),
|
|
613
|
+
keywords: we(r),
|
|
614
|
+
disabled: x || void 0,
|
|
615
|
+
"aria-checked": a ? l : void 0,
|
|
616
|
+
onSelect: () => !x && ce(r),
|
|
617
|
+
className: g(
|
|
618
|
+
"cursor-pointer",
|
|
619
|
+
c.dropdownItem.hover,
|
|
620
|
+
x && "cursor-not-allowed opacity-50",
|
|
621
|
+
!a && l && c.dropdownItem.selected
|
|
622
|
+
),
|
|
623
|
+
children: [
|
|
624
|
+
a && /* @__PURE__ */ n(
|
|
625
|
+
ct,
|
|
626
|
+
{
|
|
627
|
+
checked: l,
|
|
628
|
+
"aria-hidden": "true",
|
|
629
|
+
tabIndex: -1,
|
|
630
|
+
className: "mr-1"
|
|
631
|
+
}
|
|
632
|
+
),
|
|
633
|
+
typeof r.label == "string" ? /* @__PURE__ */ n("span", { children: r.label }) : r.label
|
|
634
|
+
]
|
|
635
|
+
},
|
|
636
|
+
r.value
|
|
637
|
+
);
|
|
638
|
+
})
|
|
639
|
+
},
|
|
640
|
+
e
|
|
641
|
+
))
|
|
642
|
+
]
|
|
643
|
+
}
|
|
644
|
+
),
|
|
645
|
+
a && m !== void 0 && i.length >= m && /* @__PURE__ */ n("div", { className: "border-d-border text-d-muted-foreground border-t px-2 py-1 text-xs group-data-[side=top]/select-popover:border-t-0 group-data-[side=top]/select-popover:border-b", children: ze(m) })
|
|
446
646
|
]
|
|
447
647
|
}
|
|
448
|
-
)
|
|
449
|
-
a && i !== void 0 && n.length >= i && /* @__PURE__ */ r("div", { className: "border-d-border text-d-muted-foreground border-t px-2 py-1 text-xs", children: fe(i) })
|
|
648
|
+
)
|
|
450
649
|
]
|
|
451
650
|
}
|
|
452
651
|
)
|
|
@@ -454,9 +653,10 @@ function ut(A) {
|
|
|
454
653
|
)
|
|
455
654
|
]
|
|
456
655
|
}
|
|
457
|
-
)
|
|
656
|
+
),
|
|
657
|
+
te && /* @__PURE__ */ n("span", { id: de, className: "sr-only", children: te })
|
|
458
658
|
] });
|
|
459
659
|
}
|
|
460
660
|
export {
|
|
461
|
-
|
|
661
|
+
Lt as AppSelect
|
|
462
662
|
};
|