@keenmate/web-multiselect 2.0.0-rc11 → 2.0.0-rc12
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/README.md +13 -15
- package/custom-elements.json +28 -1
- package/dist/index.d.ts +8 -0
- package/dist/multiselect.js +870 -826
- package/dist/multiselect.umd.js +11 -11
- package/dist/style.css +1 -1
- package/docs/usage.md +1 -0
- package/package.json +104 -104
- package/src/css/controls.css +11 -5
- package/src/css/floating.css +15 -4
- package/src/css/variables.css +44 -14
- package/vscode.html-custom-data.json +5 -0
- package/web-types.json +11 -1
package/dist/multiselect.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
1
|
+
var $o = Object.defineProperty;
|
|
2
|
+
var _s = (s) => {
|
|
3
3
|
throw TypeError(s);
|
|
4
4
|
};
|
|
5
|
-
var
|
|
6
|
-
var m = (s, e, t) =>
|
|
7
|
-
var h = (s, e, t) => (
|
|
5
|
+
var Ro = (s, e, t) => e in s ? $o(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
|
|
6
|
+
var m = (s, e, t) => Ro(s, typeof e != "symbol" ? e + "" : e, t), Kt = (s, e, t) => e.has(s) || _s("Cannot " + t);
|
|
7
|
+
var h = (s, e, t) => (Kt(s, e, "read from private field"), t ? t.call(s) : e.get(s)), L = (s, e, t) => e.has(s) ? _s("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(s) : e.set(s, t), I = (s, e, t, o) => (Kt(s, e, "write to private field"), o ? o.call(s, t) : e.set(s, t), t), v = (s, e, t) => (Kt(s, e, "access private method"), t);
|
|
8
8
|
function W(s, e = {}) {
|
|
9
9
|
const t = new Set(s), o = e.shouldNullOnInvalid ? null : e.default ?? null;
|
|
10
10
|
return {
|
|
@@ -37,7 +37,7 @@ function X(s = {}) {
|
|
|
37
37
|
}
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
function
|
|
40
|
+
function z(s = {}) {
|
|
41
41
|
const e = s.isNullable === !0, t = s.default ?? (e ? null : ""), o = (i) => s.shouldTrim ? i.trim() : i;
|
|
42
42
|
return {
|
|
43
43
|
fromAttribute(i) {
|
|
@@ -54,11 +54,11 @@ function V(s = {}) {
|
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
|
-
const
|
|
57
|
+
const Bo = /* @__PURE__ */ new Set(["", "true", "1", "yes", "on"]), Ho = /* @__PURE__ */ new Set(["false", "0", "no", "off"]);
|
|
58
58
|
function B(s = "presence") {
|
|
59
59
|
const e = (t) => {
|
|
60
60
|
const o = t.trim().toLowerCase();
|
|
61
|
-
return
|
|
61
|
+
return Bo.has(o) ? !0 : Ho.has(o) ? !1 : null;
|
|
62
62
|
};
|
|
63
63
|
return {
|
|
64
64
|
fromAttribute(t) {
|
|
@@ -81,7 +81,7 @@ function B(s = "presence") {
|
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
|
-
function
|
|
84
|
+
function Fo(s = {}) {
|
|
85
85
|
const e = s.default;
|
|
86
86
|
return {
|
|
87
87
|
fromAttribute(t) {
|
|
@@ -101,7 +101,7 @@ function Vo(s = {}) {
|
|
|
101
101
|
}
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
|
-
function
|
|
104
|
+
function Ko(s = {}) {
|
|
105
105
|
const e = s.default ?? [], t = (o) => Array.isArray(o) && (!s.validateItem || o.every(s.validateItem));
|
|
106
106
|
return {
|
|
107
107
|
fromAttribute(o) {
|
|
@@ -121,22 +121,22 @@ function Do(s = {}) {
|
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
|
-
function
|
|
124
|
+
function Wo() {
|
|
125
125
|
return {
|
|
126
126
|
validate(s) {
|
|
127
127
|
return s == null || typeof s == "function";
|
|
128
128
|
}
|
|
129
129
|
};
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function jo(s, e, t) {
|
|
132
132
|
const o = s.converter, i = o != null && o.fromAttribute ? o.fromAttribute(e, t, s.attribute ?? s.configKey) : e ?? s.default;
|
|
133
133
|
return { configKey: s.configKey, field: s.field, value: i, on: s.on ?? "update" };
|
|
134
134
|
}
|
|
135
|
-
function
|
|
135
|
+
function Uo(s, e) {
|
|
136
136
|
const t = s.converter;
|
|
137
137
|
return t != null && t.validate && !t.validate(e) ? null : { configKey: s.configKey, field: s.field, value: e, on: s.on ?? "update" };
|
|
138
138
|
}
|
|
139
|
-
function
|
|
139
|
+
function Go() {
|
|
140
140
|
const s = /* @__PURE__ */ new Set();
|
|
141
141
|
let e = !1;
|
|
142
142
|
const t = () => {
|
|
@@ -164,7 +164,7 @@ function Ho() {
|
|
|
164
164
|
}
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
|
-
const
|
|
167
|
+
const Qs = {
|
|
168
168
|
pointer: "fine",
|
|
169
169
|
hasCoarsePointer: !1,
|
|
170
170
|
canHover: !0,
|
|
@@ -176,29 +176,29 @@ const Gs = {
|
|
|
176
176
|
os: "unknown",
|
|
177
177
|
isApple: !1,
|
|
178
178
|
isAndroid: !1
|
|
179
|
-
},
|
|
180
|
-
let
|
|
181
|
-
const
|
|
182
|
-
let
|
|
183
|
-
const
|
|
184
|
-
let Ee,
|
|
185
|
-
function
|
|
179
|
+
}, qo = { mobile: 640, tablet: 1024, desktop: 1 / 0 };
|
|
180
|
+
let bt = Zs(qo);
|
|
181
|
+
const st = /* @__PURE__ */ new Set(), ot = /* @__PURE__ */ new Set();
|
|
182
|
+
let Oe = null, kt = [], vt = !1;
|
|
183
|
+
const ks = 30;
|
|
184
|
+
let Ee, yt = 0;
|
|
185
|
+
function Zs(s) {
|
|
186
186
|
return Object.entries(s).sort((e, t) => e[1] - t[1]);
|
|
187
187
|
}
|
|
188
|
-
function
|
|
189
|
-
for (const [t, o] of
|
|
188
|
+
function Xo(s) {
|
|
189
|
+
for (const [t, o] of bt)
|
|
190
190
|
if (s <= o)
|
|
191
191
|
return t;
|
|
192
|
-
const e =
|
|
192
|
+
const e = bt[bt.length - 1];
|
|
193
193
|
return e ? e[0] : "desktop";
|
|
194
194
|
}
|
|
195
|
-
function
|
|
195
|
+
function us() {
|
|
196
196
|
return typeof window < "u" && typeof window.matchMedia == "function";
|
|
197
197
|
}
|
|
198
|
-
function
|
|
198
|
+
function Cs() {
|
|
199
199
|
return typeof navigator < "u" && (navigator.maxTouchPoints ?? 0) > 1;
|
|
200
200
|
}
|
|
201
|
-
function
|
|
201
|
+
function Yo() {
|
|
202
202
|
var o;
|
|
203
203
|
if (typeof navigator > "u")
|
|
204
204
|
return "unknown";
|
|
@@ -209,26 +209,26 @@ function Wo() {
|
|
|
209
209
|
if (e.includes("ios"))
|
|
210
210
|
return "ios";
|
|
211
211
|
if (e.includes("mac"))
|
|
212
|
-
return
|
|
212
|
+
return Cs() ? "ios" : "macos";
|
|
213
213
|
if (e.includes("windows"))
|
|
214
214
|
return "windows";
|
|
215
215
|
if (e.includes("linux"))
|
|
216
216
|
return "linux";
|
|
217
217
|
}
|
|
218
218
|
const t = navigator.userAgent ?? "";
|
|
219
|
-
return /android/i.test(t) ? "android" : /iphone|ipod|ipad/i.test(t) ? "ios" : /macintosh|mac os x/i.test(t) ?
|
|
219
|
+
return /android/i.test(t) ? "android" : /iphone|ipod|ipad/i.test(t) ? "ios" : /macintosh|mac os x/i.test(t) ? Cs() ? "ios" : "macos" : /windows/i.test(t) ? "windows" : /linux/i.test(t) ? "linux" : "unknown";
|
|
220
220
|
}
|
|
221
|
-
let
|
|
222
|
-
function
|
|
223
|
-
return
|
|
221
|
+
let Jo;
|
|
222
|
+
function Qo() {
|
|
223
|
+
return Jo ?? (Jo = Yo());
|
|
224
224
|
}
|
|
225
225
|
function Ue(s) {
|
|
226
|
-
return
|
|
226
|
+
return us() && window.matchMedia(s).matches;
|
|
227
227
|
}
|
|
228
|
-
function
|
|
229
|
-
if (!
|
|
230
|
-
return { ...
|
|
231
|
-
const s = Ue("(any-pointer: coarse)"), e = Ue("(pointer: coarse)"), t = Ue("(pointer: fine)"), o = Ue("(hover: hover)"), i = e ? "coarse" : t ? "fine" : "none", r = window.innerWidth, n = window.innerHeight, a =
|
|
228
|
+
function ms() {
|
|
229
|
+
if (!us())
|
|
230
|
+
return { ...Qs };
|
|
231
|
+
const s = Ue("(any-pointer: coarse)"), e = Ue("(pointer: coarse)"), t = Ue("(pointer: fine)"), o = Ue("(hover: hover)"), i = e ? "coarse" : t ? "fine" : "none", r = window.innerWidth, n = window.innerHeight, a = Qo();
|
|
232
232
|
return {
|
|
233
233
|
pointer: i,
|
|
234
234
|
hasCoarsePointer: s,
|
|
@@ -237,191 +237,191 @@ function ds() {
|
|
|
237
237
|
orientation: Ue("(orientation: portrait)") ? "portrait" : "landscape",
|
|
238
238
|
viewportWidth: r,
|
|
239
239
|
viewportHeight: n,
|
|
240
|
-
breakpoint:
|
|
240
|
+
breakpoint: Xo(r),
|
|
241
241
|
os: a,
|
|
242
242
|
isApple: a === "ios" || a === "macos",
|
|
243
243
|
isAndroid: a === "android"
|
|
244
244
|
};
|
|
245
245
|
}
|
|
246
|
-
function
|
|
246
|
+
function Zo(s, e) {
|
|
247
247
|
return s.pointer === e.pointer && s.hasCoarsePointer === e.hasCoarsePointer && s.canHover === e.canHover && s.isTouchPrimary === e.isTouchPrimary && s.orientation === e.orientation && s.breakpoint === e.breakpoint;
|
|
248
248
|
}
|
|
249
|
-
function
|
|
249
|
+
function ei(s, e) {
|
|
250
250
|
return s.viewportWidth === e.viewportWidth && s.viewportHeight === e.viewportHeight;
|
|
251
251
|
}
|
|
252
|
-
function
|
|
253
|
-
const s =
|
|
254
|
-
if (
|
|
255
|
-
for (const t of [...
|
|
252
|
+
function Ct() {
|
|
253
|
+
const s = ms(), e = Oe;
|
|
254
|
+
if (Oe = s, !e || !Zo(e, s))
|
|
255
|
+
for (const t of [...st])
|
|
256
256
|
t(s);
|
|
257
|
-
|
|
257
|
+
ot.size > 0 && (!e || !ei(e, s)) && ti();
|
|
258
258
|
}
|
|
259
|
-
function
|
|
260
|
-
const s =
|
|
259
|
+
function Ss() {
|
|
260
|
+
const s = Oe;
|
|
261
261
|
if (s)
|
|
262
|
-
for (const e of [...
|
|
262
|
+
for (const e of [...ot])
|
|
263
263
|
e(s);
|
|
264
264
|
}
|
|
265
|
-
function
|
|
265
|
+
function ti() {
|
|
266
266
|
if (Ee !== void 0)
|
|
267
267
|
return;
|
|
268
|
-
const s = Date.now() -
|
|
269
|
-
s >=
|
|
270
|
-
Ee = void 0,
|
|
271
|
-
},
|
|
268
|
+
const s = Date.now() - yt;
|
|
269
|
+
s >= ks ? (yt = Date.now(), Ss()) : Ee = setTimeout(() => {
|
|
270
|
+
Ee = void 0, yt = Date.now(), Ss();
|
|
271
|
+
}, ks - s);
|
|
272
272
|
}
|
|
273
|
-
const
|
|
273
|
+
const St = () => Ct(), eo = () => {
|
|
274
274
|
if (typeof requestAnimationFrame == "function") {
|
|
275
|
-
if (
|
|
275
|
+
if (vt)
|
|
276
276
|
return;
|
|
277
|
-
|
|
278
|
-
|
|
277
|
+
vt = !0, requestAnimationFrame(() => {
|
|
278
|
+
vt = !1, Ct();
|
|
279
279
|
});
|
|
280
280
|
} else
|
|
281
|
-
|
|
281
|
+
Ct();
|
|
282
282
|
};
|
|
283
|
-
function
|
|
284
|
-
typeof s.addEventListener == "function" ? s.addEventListener("change",
|
|
283
|
+
function si(s) {
|
|
284
|
+
typeof s.addEventListener == "function" ? s.addEventListener("change", St) : typeof s.addListener == "function" && s.addListener(St);
|
|
285
285
|
}
|
|
286
|
-
function
|
|
287
|
-
typeof s.removeEventListener == "function" ? s.removeEventListener("change",
|
|
286
|
+
function oi(s) {
|
|
287
|
+
typeof s.removeEventListener == "function" ? s.removeEventListener("change", St) : typeof s.removeListener == "function" && s.removeListener(St);
|
|
288
288
|
}
|
|
289
|
-
function
|
|
290
|
-
if (!
|
|
291
|
-
|
|
289
|
+
function to() {
|
|
290
|
+
if (!us()) {
|
|
291
|
+
Oe = { ...Qs };
|
|
292
292
|
return;
|
|
293
293
|
}
|
|
294
|
-
|
|
294
|
+
kt = [
|
|
295
295
|
window.matchMedia("(pointer: coarse)"),
|
|
296
296
|
window.matchMedia("(pointer: fine)"),
|
|
297
297
|
window.matchMedia("(any-pointer: coarse)"),
|
|
298
298
|
window.matchMedia("(hover: hover)"),
|
|
299
299
|
window.matchMedia("(orientation: portrait)")
|
|
300
300
|
];
|
|
301
|
-
for (const s of
|
|
302
|
-
|
|
303
|
-
typeof window.addEventListener == "function" && window.addEventListener("resize",
|
|
304
|
-
}
|
|
305
|
-
function Js() {
|
|
306
|
-
for (const s of _t)
|
|
307
|
-
Jo(s);
|
|
308
|
-
_t = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize", Xs), bt = !1, Ee !== void 0 && (clearTimeout(Ee), Ee = void 0), vt = 0, Pe = null;
|
|
301
|
+
for (const s of kt)
|
|
302
|
+
si(s);
|
|
303
|
+
typeof window.addEventListener == "function" && window.addEventListener("resize", eo), Oe = ms();
|
|
309
304
|
}
|
|
310
|
-
function
|
|
311
|
-
|
|
305
|
+
function so() {
|
|
306
|
+
for (const s of kt)
|
|
307
|
+
oi(s);
|
|
308
|
+
kt = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize", eo), vt = !1, Ee !== void 0 && (clearTimeout(Ee), Ee = void 0), yt = 0, Oe = null;
|
|
312
309
|
}
|
|
313
310
|
function Tt() {
|
|
314
|
-
return
|
|
311
|
+
return st.size + ot.size;
|
|
315
312
|
}
|
|
316
|
-
function
|
|
317
|
-
|
|
318
|
-
|
|
313
|
+
function It() {
|
|
314
|
+
return Oe ?? ms();
|
|
315
|
+
}
|
|
316
|
+
function ii(s, e = {}) {
|
|
317
|
+
const t = Tt() === 0;
|
|
318
|
+
st.add(s), t && to(), e.immediate !== !1 && s(It());
|
|
319
319
|
let o = !0;
|
|
320
320
|
return () => {
|
|
321
|
-
o && (o = !1,
|
|
321
|
+
o && (o = !1, st.delete(s), Tt() === 0 && so());
|
|
322
322
|
};
|
|
323
323
|
}
|
|
324
|
-
function
|
|
325
|
-
const t =
|
|
326
|
-
|
|
324
|
+
function ri(s, e = {}) {
|
|
325
|
+
const t = Tt() === 0;
|
|
326
|
+
ot.add(s), t && to(), e.immediate !== !1 && s(It());
|
|
327
327
|
let o = !0;
|
|
328
328
|
return () => {
|
|
329
|
-
o && (o = !1,
|
|
329
|
+
o && (o = !1, ot.delete(s), Tt() === 0 && so());
|
|
330
330
|
};
|
|
331
331
|
}
|
|
332
|
-
function
|
|
333
|
-
|
|
332
|
+
function _n(s) {
|
|
333
|
+
bt = Zs(s), st.size > 0 && Ct();
|
|
334
334
|
}
|
|
335
|
-
const
|
|
336
|
-
function
|
|
337
|
-
return s.isTouchPrimary ? Math.min(s.viewportWidth, s.viewportHeight) <
|
|
335
|
+
const ni = 600;
|
|
336
|
+
function ai(s) {
|
|
337
|
+
return s.isTouchPrimary ? Math.min(s.viewportWidth, s.viewportHeight) < ni ? "mobile" : "tablet" : "desktop";
|
|
338
338
|
}
|
|
339
|
-
const
|
|
339
|
+
const li = 30;
|
|
340
340
|
let oe = null;
|
|
341
|
-
const
|
|
342
|
-
let
|
|
343
|
-
function
|
|
341
|
+
const Je = /* @__PURE__ */ new WeakMap();
|
|
342
|
+
let Wt = 0;
|
|
343
|
+
function ci() {
|
|
344
344
|
return typeof ResizeObserver < "u";
|
|
345
345
|
}
|
|
346
|
-
function
|
|
346
|
+
function oo(s) {
|
|
347
347
|
if (typeof s.getBoundingClientRect != "function")
|
|
348
348
|
return { width: 0, height: 0 };
|
|
349
349
|
const e = s.getBoundingClientRect();
|
|
350
350
|
return { width: e.width, height: e.height };
|
|
351
351
|
}
|
|
352
|
-
function
|
|
352
|
+
function di(s, e) {
|
|
353
353
|
return !!s && s.width === e.width && s.height === e.height;
|
|
354
354
|
}
|
|
355
|
-
function
|
|
356
|
-
if (
|
|
355
|
+
function hi(s, e) {
|
|
356
|
+
if (di(s.lastFired, e) || (s.pendingSize = e, s.timer !== void 0))
|
|
357
357
|
return;
|
|
358
358
|
const t = Date.now() - s.lastNotify;
|
|
359
|
-
t >= s.throttleMs ? (s.lastNotify = Date.now(),
|
|
360
|
-
s.timer = void 0, s.lastNotify = Date.now(),
|
|
359
|
+
t >= s.throttleMs ? (s.lastNotify = Date.now(), Ts(s)) : s.timer = setTimeout(() => {
|
|
360
|
+
s.timer = void 0, s.lastNotify = Date.now(), Ts(s);
|
|
361
361
|
}, s.throttleMs - t);
|
|
362
362
|
}
|
|
363
|
-
function
|
|
363
|
+
function Ts(s) {
|
|
364
364
|
const e = s.pendingSize;
|
|
365
365
|
e && (s.lastFired = e, s.cb(e, s.el));
|
|
366
366
|
}
|
|
367
|
-
function
|
|
367
|
+
function ui(s) {
|
|
368
368
|
for (const e of s) {
|
|
369
|
-
const t =
|
|
369
|
+
const t = Je.get(e.target);
|
|
370
370
|
if (!t)
|
|
371
371
|
continue;
|
|
372
|
-
const o =
|
|
372
|
+
const o = oo(e.target);
|
|
373
373
|
for (const i of [...t])
|
|
374
|
-
|
|
374
|
+
hi(i, o);
|
|
375
375
|
}
|
|
376
376
|
}
|
|
377
|
-
function
|
|
378
|
-
return
|
|
377
|
+
function mi() {
|
|
378
|
+
return ci() ? (oe || (oe = new ResizeObserver(ui)), oe) : null;
|
|
379
379
|
}
|
|
380
|
-
function
|
|
380
|
+
function pi(s, e, t = {}) {
|
|
381
381
|
const o = {
|
|
382
382
|
el: s,
|
|
383
383
|
cb: e,
|
|
384
|
-
throttleMs: t.throttleMs ??
|
|
384
|
+
throttleMs: t.throttleMs ?? li,
|
|
385
385
|
lastNotify: 0
|
|
386
386
|
};
|
|
387
387
|
if (t.immediate !== !1) {
|
|
388
|
-
const n =
|
|
388
|
+
const n = oo(s);
|
|
389
389
|
o.lastFired = n, o.lastNotify = Date.now(), e(n, s);
|
|
390
390
|
}
|
|
391
|
-
const i =
|
|
391
|
+
const i = mi();
|
|
392
392
|
if (i) {
|
|
393
|
-
let n =
|
|
394
|
-
n || (
|
|
393
|
+
let n = Je.get(s);
|
|
394
|
+
n || (Je.set(s, n = /* @__PURE__ */ new Set()), Wt++, i.observe(s)), n.add(o);
|
|
395
395
|
}
|
|
396
396
|
let r = !0;
|
|
397
397
|
return () => {
|
|
398
398
|
if (!r)
|
|
399
399
|
return;
|
|
400
400
|
r = !1, o.timer !== void 0 && (clearTimeout(o.timer), o.timer = void 0);
|
|
401
|
-
const n =
|
|
402
|
-
n && (n.delete(o), n.size === 0 && (
|
|
401
|
+
const n = Je.get(s);
|
|
402
|
+
n && (n.delete(o), n.size === 0 && (Je.delete(s), oe == null || oe.unobserve(s), Wt--, Wt === 0 && oe && (oe.disconnect(), oe = null)));
|
|
403
403
|
};
|
|
404
404
|
}
|
|
405
|
-
const
|
|
406
|
-
function
|
|
407
|
-
let t =
|
|
408
|
-
t ||
|
|
405
|
+
const Ot = /* @__PURE__ */ new Map();
|
|
406
|
+
function fi(s, e) {
|
|
407
|
+
let t = Ot.get(s);
|
|
408
|
+
t || Ot.set(s, t = /* @__PURE__ */ new Set()), t.add(e);
|
|
409
409
|
}
|
|
410
|
-
function
|
|
410
|
+
function gi(s, e) {
|
|
411
411
|
var t;
|
|
412
|
-
(t =
|
|
412
|
+
(t = Ot.get(s)) == null || t.delete(e);
|
|
413
413
|
}
|
|
414
|
-
function
|
|
415
|
-
return Array.from(
|
|
414
|
+
function bi(s) {
|
|
415
|
+
return Array.from(Ot.get(s) ?? []);
|
|
416
416
|
}
|
|
417
|
-
const
|
|
418
|
-
function
|
|
419
|
-
|
|
417
|
+
const io = /* @__PURE__ */ new Map();
|
|
418
|
+
function vi(s, e) {
|
|
419
|
+
io.set(s.toLowerCase(), e);
|
|
420
420
|
}
|
|
421
|
-
function
|
|
422
|
-
return
|
|
421
|
+
function yi(s) {
|
|
422
|
+
return io.get(s.toLowerCase());
|
|
423
423
|
}
|
|
424
|
-
function
|
|
424
|
+
function wi(s, e, t, o = {}) {
|
|
425
425
|
return s.dispatchEvent(new CustomEvent(e, {
|
|
426
426
|
detail: t,
|
|
427
427
|
bubbles: o.bubbles ?? !0,
|
|
@@ -429,40 +429,40 @@ function pi(s, e, t, o = {}) {
|
|
|
429
429
|
cancelable: o.cancelable ?? !1
|
|
430
430
|
}));
|
|
431
431
|
}
|
|
432
|
-
function
|
|
432
|
+
function xi(s) {
|
|
433
433
|
return s.split(/[-_]/).filter(Boolean).map((e) => e[0].toUpperCase() + e.slice(1)).join("");
|
|
434
434
|
}
|
|
435
|
-
function
|
|
436
|
-
return `on${
|
|
435
|
+
function _i(s) {
|
|
436
|
+
return `on${xi(s)}`;
|
|
437
437
|
}
|
|
438
|
-
function
|
|
438
|
+
function ki(s) {
|
|
439
439
|
return s ? s.map((e) => {
|
|
440
|
-
const t = typeof e == "string" ? { name: e } : e, o = t.property === !1 ? null : t.property ??
|
|
440
|
+
const t = typeof e == "string" ? { name: e } : e, o = t.property === !1 ? null : t.property ?? _i(t.name);
|
|
441
441
|
return { name: t.name, property: o, bubbles: t.bubbles, composed: t.composed, cancelable: t.cancelable };
|
|
442
442
|
}) : [];
|
|
443
443
|
}
|
|
444
|
-
const
|
|
445
|
-
},
|
|
446
|
-
let
|
|
447
|
-
const
|
|
444
|
+
const Ci = typeof HTMLElement < "u" ? HTMLElement : class {
|
|
445
|
+
}, Is = /* @__PURE__ */ new WeakSet();
|
|
446
|
+
let Si = 0;
|
|
447
|
+
const Ti = { trace() {
|
|
448
448
|
}, debug() {
|
|
449
449
|
}, info() {
|
|
450
450
|
}, warn() {
|
|
451
451
|
}, error() {
|
|
452
|
-
} },
|
|
453
|
-
var me,
|
|
454
|
-
const xe = class xe extends
|
|
452
|
+
} }, Ii = new Proxy({}, { get: () => Ti });
|
|
453
|
+
var me, nt, _e, at, ke, lt, Vt, Ce, pe, Se, Te, ze, Ne, Ve, De, $e, Re, Dt, ie, Be, T, ro, no, ao, Q, lo, co, Jt, Qt, Qe, Zt, ho;
|
|
454
|
+
const xe = class xe extends Ci {
|
|
455
455
|
constructor() {
|
|
456
456
|
super();
|
|
457
457
|
L(this, T);
|
|
458
458
|
L(this, me, {});
|
|
459
|
-
L(this, rt, /* @__PURE__ */ new Map());
|
|
460
|
-
L(this, _e, /* @__PURE__ */ new Map());
|
|
461
459
|
L(this, nt, /* @__PURE__ */ new Map());
|
|
460
|
+
L(this, _e, /* @__PURE__ */ new Map());
|
|
461
|
+
L(this, at, /* @__PURE__ */ new Map());
|
|
462
462
|
/** Live handler currently bound via each managed `on<Name>` property, keyed by event name. */
|
|
463
463
|
L(this, ke, /* @__PURE__ */ new Map());
|
|
464
|
-
L(this,
|
|
465
|
-
L(this,
|
|
464
|
+
L(this, lt, Go());
|
|
465
|
+
L(this, Vt, () => v(this, T, Zt).call(this));
|
|
466
466
|
L(this, Ce, null);
|
|
467
467
|
L(this, pe, !1);
|
|
468
468
|
L(this, Se, []);
|
|
@@ -485,16 +485,16 @@ const xe = class xe extends vi {
|
|
|
485
485
|
/** Unsubscribe from the per-element ResizeObserver; set only while connected AND `resized` is overridden. */
|
|
486
486
|
L(this, $e);
|
|
487
487
|
L(this, Re);
|
|
488
|
-
L(this,
|
|
488
|
+
L(this, Dt);
|
|
489
489
|
L(this, ie);
|
|
490
490
|
L(this, Be);
|
|
491
|
-
const t = this.constructor, o = t.inputs ?? [], i =
|
|
492
|
-
v(this, T,
|
|
491
|
+
const t = this.constructor, o = t.inputs ?? [], i = ki(t.events);
|
|
492
|
+
v(this, T, ao).call(this, o, i);
|
|
493
493
|
for (const r of o)
|
|
494
|
-
h(this,
|
|
494
|
+
h(this, nt).set(r.configKey, r), r.attribute && h(this, _e).set(r.attribute, r);
|
|
495
495
|
for (const r of i)
|
|
496
|
-
h(this,
|
|
497
|
-
v(this, T,
|
|
496
|
+
h(this, at).set(r.name, r);
|
|
497
|
+
v(this, T, ro).call(this, o), v(this, T, lo).call(this, o), v(this, T, co).call(this, i);
|
|
498
498
|
}
|
|
499
499
|
static get observedAttributes() {
|
|
500
500
|
const t = (this.inputs ?? []).filter((o) => o.attribute).map((o) => o.attribute);
|
|
@@ -514,31 +514,31 @@ const xe = class xe extends vi {
|
|
|
514
514
|
return;
|
|
515
515
|
let n;
|
|
516
516
|
try {
|
|
517
|
-
n =
|
|
517
|
+
n = jo(r, i, this);
|
|
518
518
|
} catch (l) {
|
|
519
|
-
v(this, T, Q).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = v(this, T,
|
|
519
|
+
v(this, T, Q).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = v(this, T, no).call(this, r);
|
|
520
520
|
}
|
|
521
|
-
v(this, T,
|
|
521
|
+
v(this, T, Qt).call(this, n);
|
|
522
522
|
}
|
|
523
523
|
connectedCallback() {
|
|
524
|
-
|
|
524
|
+
fi(this.localName, this), h(this, Te) || (I(this, Te, !0), I(this, ze, null), I(this, pe, !0)), v(this, T, Qe).call(this), this.connect(), this.environmentChanged !== xe.prototype.environmentChanged && I(this, Ve, ii((t) => this.environmentChanged(t))), this.viewportChanged !== xe.prototype.viewportChanged && I(this, De, ri((t) => this.viewportChanged(t))), this.resized !== xe.prototype.resized && I(this, $e, pi(this, (t) => this.resized(t), { immediate: !1 }));
|
|
525
525
|
}
|
|
526
526
|
disconnectedCallback() {
|
|
527
527
|
var t, o, i;
|
|
528
|
-
|
|
528
|
+
gi(this.localName, this), (t = h(this, Ve)) == null || t.call(this), I(this, Ve, void 0), (o = h(this, De)) == null || o.call(this), I(this, De, void 0), (i = h(this, $e)) == null || i.call(this), I(this, $e, void 0), this.disconnect();
|
|
529
529
|
}
|
|
530
530
|
// ── public batching API ─────────────────────────────────────────────────
|
|
531
531
|
/** Apply many inputs (by `configKey` or attribute name) as ONE reinit/update. */
|
|
532
532
|
setAttributes(t) {
|
|
533
533
|
for (const [o, i] of Object.entries(t)) {
|
|
534
|
-
const r = h(this,
|
|
535
|
-
r && v(this, T,
|
|
534
|
+
const r = h(this, nt).get(o) ?? h(this, _e).get(o);
|
|
535
|
+
r && v(this, T, Jt).call(this, r, i);
|
|
536
536
|
}
|
|
537
|
-
v(this, T,
|
|
537
|
+
v(this, T, Qe).call(this);
|
|
538
538
|
}
|
|
539
539
|
/** Run `fn` and coalesce every input change it makes into a single reinit/update. */
|
|
540
540
|
batch(t) {
|
|
541
|
-
t(), v(this, T,
|
|
541
|
+
t(), v(this, T, Qe).call(this);
|
|
542
542
|
}
|
|
543
543
|
/**
|
|
544
544
|
* Apply any pending input writes **synchronously, now** — running the
|
|
@@ -554,7 +554,7 @@ const xe = class xe extends vi {
|
|
|
554
554
|
* `await whenSettled()` between the two.
|
|
555
555
|
*/
|
|
556
556
|
flush() {
|
|
557
|
-
v(this, T,
|
|
557
|
+
v(this, T, Qe).call(this);
|
|
558
558
|
}
|
|
559
559
|
/**
|
|
560
560
|
* Resolves once the element is **settled** — i.e. every staged input change
|
|
@@ -592,10 +592,10 @@ const xe = class xe extends vi {
|
|
|
592
592
|
get log() {
|
|
593
593
|
if (h(this, Be))
|
|
594
594
|
return h(this, Be);
|
|
595
|
-
const t =
|
|
595
|
+
const t = yi(this.localName);
|
|
596
596
|
if (!t)
|
|
597
|
-
return
|
|
598
|
-
const o = h(this,
|
|
597
|
+
return Ii;
|
|
598
|
+
const o = h(this, Dt) ?? I(this, Dt, `${this.localName}#${this.id || ++Si}`);
|
|
599
599
|
return I(this, Be, t.forInstance(o, () => h(this, ie)));
|
|
600
600
|
}
|
|
601
601
|
/**
|
|
@@ -762,8 +762,8 @@ const xe = class xe extends vi {
|
|
|
762
762
|
* `emit` does not call it separately.
|
|
763
763
|
*/
|
|
764
764
|
emit(t, o, i) {
|
|
765
|
-
const r = h(this,
|
|
766
|
-
return
|
|
765
|
+
const r = h(this, at).get(t);
|
|
766
|
+
return wi(this, t, o, {
|
|
767
767
|
bubbles: (i == null ? void 0 : i.bubbles) ?? (r == null ? void 0 : r.bubbles),
|
|
768
768
|
composed: (i == null ? void 0 : i.composed) ?? (r == null ? void 0 : r.composed),
|
|
769
769
|
cancelable: (i == null ? void 0 : i.cancelable) ?? (r == null ? void 0 : r.cancelable)
|
|
@@ -801,8 +801,8 @@ const xe = class xe extends vi {
|
|
|
801
801
|
}
|
|
802
802
|
}
|
|
803
803
|
};
|
|
804
|
-
me = new WeakMap(),
|
|
805
|
-
|
|
804
|
+
me = new WeakMap(), nt = new WeakMap(), _e = new WeakMap(), at = new WeakMap(), ke = new WeakMap(), lt = new WeakMap(), Vt = new WeakMap(), Ce = new WeakMap(), pe = new WeakMap(), Se = new WeakMap(), Te = new WeakMap(), ze = new WeakMap(), Ne = new WeakMap(), Ve = new WeakMap(), De = new WeakMap(), $e = new WeakMap(), Re = new WeakMap(), Dt = new WeakMap(), ie = new WeakMap(), Be = new WeakMap(), T = new WeakSet(), // ── internals ─────────────────────────────────────────────────────────────
|
|
805
|
+
ro = function(t) {
|
|
806
806
|
var o;
|
|
807
807
|
for (const i of t) {
|
|
808
808
|
let r = i.default;
|
|
@@ -814,15 +814,15 @@ eo = function(t) {
|
|
|
814
814
|
}
|
|
815
815
|
h(this, me)[i.configKey] = r, i.field && (this[i.field] = r);
|
|
816
816
|
}
|
|
817
|
-
},
|
|
817
|
+
}, no = function(t) {
|
|
818
818
|
return { configKey: t.configKey, field: t.field, value: t.default, on: t.on ?? "update" };
|
|
819
819
|
}, /** Sanity-check the input + event tables once per class; warn (never throw) on mistakes. */
|
|
820
|
-
|
|
820
|
+
ao = function(t, o) {
|
|
821
821
|
var l;
|
|
822
822
|
const i = this.constructor;
|
|
823
|
-
if (
|
|
823
|
+
if (Is.has(i))
|
|
824
824
|
return;
|
|
825
|
-
|
|
825
|
+
Is.add(i);
|
|
826
826
|
const r = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
827
827
|
for (const c of t)
|
|
828
828
|
r.has(c.configKey) && v(this, T, Q).call(this, `invalid input table: duplicate configKey "${c.configKey}"`), r.add(c.configKey), c.attribute && (n.has(c.attribute) && v(this, T, Q).call(this, `invalid input table: duplicate attribute "${c.attribute}"`), n.add(c.attribute)), c.reflect && !c.attribute && v(this, T, Q).call(this, `invalid input table: "${c.configKey}" has reflect:true but no attribute to reflect to`), c.reflect && !((l = c.converter) != null && l.toAttribute) && v(this, T, Q).call(this, `invalid input table: "${c.configKey}" has reflect:true but its converter has no toAttribute`);
|
|
@@ -836,14 +836,14 @@ so = function(t, o) {
|
|
|
836
836
|
*/
|
|
837
837
|
Q = function(t, ...o) {
|
|
838
838
|
console.warn(`[BlissElement] <${this.localName ?? "unknown"}> ${t}`, ...o);
|
|
839
|
-
},
|
|
839
|
+
}, lo = function(t) {
|
|
840
840
|
for (const o of t) {
|
|
841
841
|
const i = o.configKey, r = Object.prototype.hasOwnProperty.call(this, i), n = r ? this[i] : void 0;
|
|
842
842
|
r && delete this[i], Object.defineProperty(this, i, {
|
|
843
843
|
configurable: !0,
|
|
844
844
|
enumerable: !0,
|
|
845
845
|
get: () => h(this, me)[i],
|
|
846
|
-
set: (a) => v(this, T,
|
|
846
|
+
set: (a) => v(this, T, Jt).call(this, o, a)
|
|
847
847
|
}), r && ((h(this, ze) ?? I(this, ze, /* @__PURE__ */ new Set())).add(i), this[i] = n);
|
|
848
848
|
}
|
|
849
849
|
}, /**
|
|
@@ -851,7 +851,7 @@ Q = function(t, ...o) {
|
|
|
851
851
|
* (de)registers a real listener for the event, so the property behaves like
|
|
852
852
|
* `addEventListener(name, …)` and its handler receives the `CustomEvent`.
|
|
853
853
|
*/
|
|
854
|
-
|
|
854
|
+
co = function(t) {
|
|
855
855
|
for (const o of t) {
|
|
856
856
|
const i = o.property;
|
|
857
857
|
if (!i)
|
|
@@ -871,14 +871,14 @@ io = function(t) {
|
|
|
871
871
|
}
|
|
872
872
|
}), n && (this[i] = a);
|
|
873
873
|
}
|
|
874
|
-
},
|
|
874
|
+
}, Jt = function(t, o) {
|
|
875
875
|
var r;
|
|
876
|
-
const i =
|
|
876
|
+
const i = Uo(t, o);
|
|
877
877
|
if (!i) {
|
|
878
878
|
v(this, T, Q).call(this, `rejected invalid value for property "${t.configKey}"; keeping previous value`, o);
|
|
879
879
|
return;
|
|
880
880
|
}
|
|
881
|
-
if (v(this, T,
|
|
881
|
+
if (v(this, T, Qt).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
|
|
882
882
|
const n = t.converter.toAttribute(i.value);
|
|
883
883
|
I(this, Ne, !0);
|
|
884
884
|
try {
|
|
@@ -887,18 +887,18 @@ io = function(t) {
|
|
|
887
887
|
I(this, Ne, !1);
|
|
888
888
|
}
|
|
889
889
|
}
|
|
890
|
-
},
|
|
891
|
-
h(this, me)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" && I(this, pe, !0), (h(this, Ce) ?? I(this, Ce, {}))[t.configKey] = t.value, h(this,
|
|
890
|
+
}, Qt = function(t) {
|
|
891
|
+
h(this, me)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" && I(this, pe, !0), (h(this, Ce) ?? I(this, Ce, {}))[t.configKey] = t.value, h(this, lt).schedule(h(this, Vt)));
|
|
892
892
|
}, /** Cancel any queued microtask and flush pending changes synchronously now. */
|
|
893
|
-
|
|
894
|
-
h(this,
|
|
895
|
-
},
|
|
893
|
+
Qe = function() {
|
|
894
|
+
h(this, lt).cancel(), v(this, T, Zt).call(this);
|
|
895
|
+
}, Zt = function() {
|
|
896
896
|
if (!this.isConnected)
|
|
897
897
|
return;
|
|
898
898
|
const t = h(this, pe), o = h(this, Ce);
|
|
899
|
-
I(this, pe, !1), I(this, Ce, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), v(this, T,
|
|
899
|
+
I(this, pe, !1), I(this, Ce, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), v(this, T, ho).call(this);
|
|
900
900
|
}, /** Resolve everyone awaiting {@link whenSettled} for the flush that just ran. */
|
|
901
|
-
|
|
901
|
+
ho = function() {
|
|
902
902
|
if (h(this, Se).length === 0)
|
|
903
903
|
return;
|
|
904
904
|
const t = h(this, Se);
|
|
@@ -912,11 +912,11 @@ m(xe, "inputs"), /**
|
|
|
912
912
|
* {@link emit} can fire and installs a managed `on<Name>` handler property.
|
|
913
913
|
*/
|
|
914
914
|
m(xe, "events");
|
|
915
|
-
let
|
|
916
|
-
function
|
|
915
|
+
let Yt = xe;
|
|
916
|
+
function Os(s, e, t) {
|
|
917
917
|
typeof customElements > "u" || customElements.get(s) || customElements.define(s, e, t);
|
|
918
918
|
}
|
|
919
|
-
function
|
|
919
|
+
function Oi(s) {
|
|
920
920
|
return {
|
|
921
921
|
enableLogging: (e) => s.enableLogging(e),
|
|
922
922
|
disableLogging: () => s.disableLogging(),
|
|
@@ -925,45 +925,45 @@ function _i(s) {
|
|
|
925
925
|
getCategories: () => [...s.LOGGING_CATEGORIES]
|
|
926
926
|
};
|
|
927
927
|
}
|
|
928
|
-
function
|
|
928
|
+
function Pi(s, e, t) {
|
|
929
929
|
const { config: o, logging: i, shouldAutoDefine: r = !0 } = t;
|
|
930
|
-
i &&
|
|
930
|
+
i && vi(s, i);
|
|
931
931
|
const n = {
|
|
932
932
|
version: () => o.version,
|
|
933
933
|
config: o,
|
|
934
|
-
...i ? { logging:
|
|
935
|
-
register: () =>
|
|
936
|
-
getInstances: () =>
|
|
934
|
+
...i ? { logging: Oi(i) } : {},
|
|
935
|
+
register: () => Os(s, e),
|
|
936
|
+
getInstances: () => bi(s)
|
|
937
937
|
};
|
|
938
|
-
return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r &&
|
|
938
|
+
return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && Os(s, e), n;
|
|
939
939
|
}
|
|
940
|
-
const
|
|
941
|
-
let
|
|
942
|
-
function
|
|
940
|
+
const Ps = /* @__PURE__ */ new Map(), Ms = /* @__PURE__ */ new WeakMap();
|
|
941
|
+
let ut;
|
|
942
|
+
function Mi(s) {
|
|
943
943
|
if (typeof CSSStyleSheet > "u" || !("adoptedStyleSheets" in s))
|
|
944
944
|
return !1;
|
|
945
|
-
if (
|
|
945
|
+
if (ut === void 0)
|
|
946
946
|
try {
|
|
947
|
-
new CSSStyleSheet().replaceSync(""),
|
|
947
|
+
new CSSStyleSheet().replaceSync(""), ut = !0;
|
|
948
948
|
} catch {
|
|
949
|
-
|
|
949
|
+
ut = !1;
|
|
950
950
|
}
|
|
951
|
-
return
|
|
951
|
+
return ut;
|
|
952
952
|
}
|
|
953
|
-
function
|
|
953
|
+
function Li(s, ...e) {
|
|
954
954
|
if (typeof document > "u")
|
|
955
955
|
return;
|
|
956
|
-
let t =
|
|
957
|
-
t ||
|
|
956
|
+
let t = Ms.get(s);
|
|
957
|
+
t || Ms.set(s, t = /* @__PURE__ */ new Set());
|
|
958
958
|
const o = e.filter((r) => r && !t.has(r));
|
|
959
959
|
if (o.length === 0)
|
|
960
960
|
return;
|
|
961
961
|
for (const r of o)
|
|
962
962
|
t.add(r);
|
|
963
|
-
if (
|
|
963
|
+
if (Mi(s)) {
|
|
964
964
|
const r = o.map((n) => {
|
|
965
|
-
let a =
|
|
966
|
-
return a || (a = new CSSStyleSheet(), a.replaceSync(n),
|
|
965
|
+
let a = Ps.get(n);
|
|
966
|
+
return a || (a = new CSSStyleSheet(), a.replaceSync(n), Ps.set(n, a)), a;
|
|
967
967
|
});
|
|
968
968
|
s.adoptedStyleSheets = [...s.adoptedStyleSheets, ...r];
|
|
969
969
|
return;
|
|
@@ -974,7 +974,7 @@ function Si(s, ...e) {
|
|
|
974
974
|
n.textContent = r, i.appendChild(n);
|
|
975
975
|
}
|
|
976
976
|
}
|
|
977
|
-
function
|
|
977
|
+
function Ei(s, e = {}) {
|
|
978
978
|
const t = e.position ?? "last", o = s.head ?? s;
|
|
979
979
|
let i = null;
|
|
980
980
|
const r = () => typeof document > "u" ? null : (i || (i = document.createElement("style"), e.className && (i.className = e.className)), i.parentNode !== o && (t === "first" && o.firstChild ? o.insertBefore(i, o.firstChild) : o.appendChild(i)), i), n = () => {
|
|
@@ -995,65 +995,65 @@ function Ti(s, e = {}) {
|
|
|
995
995
|
}
|
|
996
996
|
};
|
|
997
997
|
}
|
|
998
|
-
function
|
|
998
|
+
function uo(s) {
|
|
999
999
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
1000
1000
|
}
|
|
1001
|
-
function
|
|
1002
|
-
const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${
|
|
1001
|
+
function Ai(s, e) {
|
|
1002
|
+
const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${uo(e)}[a-z0-9-]+)`, "gi");
|
|
1003
1003
|
let i;
|
|
1004
1004
|
for (; i = o.exec(s); )
|
|
1005
1005
|
i[1] && t.add(i[1]);
|
|
1006
1006
|
return t;
|
|
1007
1007
|
}
|
|
1008
|
-
function
|
|
1009
|
-
const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${
|
|
1008
|
+
function zi(s, e) {
|
|
1009
|
+
const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${uo(e)}[a-z0-9-]+)\\s*:`, "gi");
|
|
1010
1010
|
let i;
|
|
1011
1011
|
for (; i = o.exec(s); )
|
|
1012
1012
|
i[1] && t.add(i[1]);
|
|
1013
1013
|
return [...t];
|
|
1014
1014
|
}
|
|
1015
|
-
function
|
|
1015
|
+
function Ni(s, e, t = {}) {
|
|
1016
1016
|
const o = t.minScore ?? 3, i = t.limit ?? 3, r = new Set(s.split("-").filter(Boolean));
|
|
1017
1017
|
return [...e].map((n) => ({ k: n, score: n.split("-").filter((a) => r.has(a)).length })).filter((n) => n.score >= o).sort((n, a) => a.score - n.score).slice(0, i).map((n) => n.k);
|
|
1018
1018
|
}
|
|
1019
|
-
function
|
|
1019
|
+
function Vi(s, e) {
|
|
1020
1020
|
if (e.consumed.size === 0)
|
|
1021
1021
|
return [];
|
|
1022
1022
|
const t = [];
|
|
1023
|
-
for (const o of
|
|
1024
|
-
e.consumed.has(o) || t.push({ name: o, suggestions:
|
|
1023
|
+
for (const o of zi(s, e.prefix))
|
|
1024
|
+
e.consumed.has(o) || t.push({ name: o, suggestions: Ni(o, e.consumed, { minScore: e.minScore }) });
|
|
1025
1025
|
return t;
|
|
1026
1026
|
}
|
|
1027
|
-
const
|
|
1027
|
+
const Di = {
|
|
1028
1028
|
mobile: "fullscreen",
|
|
1029
1029
|
tablet: "floating",
|
|
1030
1030
|
desktop: "floating"
|
|
1031
1031
|
};
|
|
1032
|
-
function
|
|
1032
|
+
function $i(s, e, t = {}) {
|
|
1033
1033
|
if (s !== "auto")
|
|
1034
1034
|
return s;
|
|
1035
|
-
const o =
|
|
1036
|
-
return t[o] ??
|
|
1035
|
+
const o = ai(e);
|
|
1036
|
+
return t[o] ?? Di[o];
|
|
1037
1037
|
}
|
|
1038
|
-
function
|
|
1038
|
+
function jt(s) {
|
|
1039
1039
|
return {
|
|
1040
1040
|
presentation: s,
|
|
1041
1041
|
isFullscreen: s === "fullscreen",
|
|
1042
1042
|
isModal: s === "modal"
|
|
1043
1043
|
};
|
|
1044
1044
|
}
|
|
1045
|
-
let Ge = 0,
|
|
1046
|
-
function
|
|
1045
|
+
let Ge = 0, mt = null;
|
|
1046
|
+
function Ri() {
|
|
1047
1047
|
if (typeof document > "u")
|
|
1048
1048
|
return () => {
|
|
1049
1049
|
};
|
|
1050
|
-
Ge === 0 && (
|
|
1050
|
+
Ge === 0 && (mt = document.body.style.overflow, document.body.style.overflow = "hidden"), Ge++;
|
|
1051
1051
|
let s = !1;
|
|
1052
1052
|
return () => {
|
|
1053
|
-
s || (s = !0, Ge = Math.max(0, Ge - 1), Ge === 0 &&
|
|
1053
|
+
s || (s = !0, Ge = Math.max(0, Ge - 1), Ge === 0 && mt !== null && (document.body.style.overflow = mt, mt = null));
|
|
1054
1054
|
};
|
|
1055
1055
|
}
|
|
1056
|
-
function
|
|
1056
|
+
function Bi(s) {
|
|
1057
1057
|
const e = typeof window < "u" ? window.visualViewport : null;
|
|
1058
1058
|
if (!e)
|
|
1059
1059
|
return () => {
|
|
@@ -1068,6 +1068,42 @@ function zi(s) {
|
|
|
1068
1068
|
e.removeEventListener("resize", i), e.removeEventListener("scroll", i), s.style.height = "", s.style.top = "";
|
|
1069
1069
|
};
|
|
1070
1070
|
}
|
|
1071
|
+
const ps = "km-overlay-activated", Hi = Symbol("km-overlay-all-groups"), Pt = /* @__PURE__ */ new Set(), qe = /* @__PURE__ */ new Map();
|
|
1072
|
+
let Mt = !1;
|
|
1073
|
+
function fs() {
|
|
1074
|
+
return typeof document < "u";
|
|
1075
|
+
}
|
|
1076
|
+
function Fi(s, e) {
|
|
1077
|
+
return e === Hi || s === e;
|
|
1078
|
+
}
|
|
1079
|
+
function mo(s) {
|
|
1080
|
+
const e = s.detail, t = e == null ? void 0 : e.source, o = e == null ? void 0 : e.group;
|
|
1081
|
+
for (const i of Array.from(Pt))
|
|
1082
|
+
i.id !== t && Fi(i.group, o) && i.dismiss();
|
|
1083
|
+
}
|
|
1084
|
+
function Ki() {
|
|
1085
|
+
Mt || !fs() || (document.addEventListener(ps, mo), Mt = !0);
|
|
1086
|
+
}
|
|
1087
|
+
function Wi() {
|
|
1088
|
+
Mt && Pt.size === 0 && fs() && (document.removeEventListener(ps, mo), Mt = !1);
|
|
1089
|
+
}
|
|
1090
|
+
function ji(s, e) {
|
|
1091
|
+
fs() && document.dispatchEvent(new CustomEvent(ps, { detail: { source: s, group: e } }));
|
|
1092
|
+
}
|
|
1093
|
+
function Ui(s, e) {
|
|
1094
|
+
const t = { id: {}, group: e, dismiss: s };
|
|
1095
|
+
return Pt.add(t), Ki(), {
|
|
1096
|
+
activate() {
|
|
1097
|
+
qe.set(t.group, t), ji(t.id, t.group);
|
|
1098
|
+
},
|
|
1099
|
+
deactivate() {
|
|
1100
|
+
qe.get(t.group) === t && qe.delete(t.group);
|
|
1101
|
+
},
|
|
1102
|
+
dispose() {
|
|
1103
|
+
Pt.delete(t), qe.get(t.group) === t && qe.delete(t.group), Wi();
|
|
1104
|
+
}
|
|
1105
|
+
};
|
|
1106
|
+
}
|
|
1071
1107
|
const U = {
|
|
1072
1108
|
TRACE: 0,
|
|
1073
1109
|
DEBUG: 1,
|
|
@@ -1075,21 +1111,21 @@ const U = {
|
|
|
1075
1111
|
WARN: 3,
|
|
1076
1112
|
ERROR: 4,
|
|
1077
1113
|
SILENT: 5
|
|
1078
|
-
},
|
|
1114
|
+
}, Ls = ["trace", "debug", "info", "warn", "error"], Lt = () => {
|
|
1079
1115
|
};
|
|
1080
|
-
let
|
|
1081
|
-
function
|
|
1116
|
+
let Gi = "km-log";
|
|
1117
|
+
function Es(s) {
|
|
1082
1118
|
const t = console[s];
|
|
1083
|
-
return typeof t == "function" ? t.bind(console) :
|
|
1119
|
+
return typeof t == "function" ? t.bind(console) : Lt;
|
|
1084
1120
|
}
|
|
1085
|
-
function
|
|
1121
|
+
function qi(s) {
|
|
1086
1122
|
if (s === "debug" && (s = "log"), typeof console > "u")
|
|
1087
|
-
return
|
|
1123
|
+
return Lt;
|
|
1088
1124
|
const e = console;
|
|
1089
|
-
return e[s] !== void 0 ?
|
|
1125
|
+
return e[s] !== void 0 ? Es(s) : e.log !== void 0 ? Es("log") : Lt;
|
|
1090
1126
|
}
|
|
1091
|
-
const
|
|
1092
|
-
function
|
|
1127
|
+
const Xi = (s) => qi(s);
|
|
1128
|
+
function Xe(s) {
|
|
1093
1129
|
let e = s;
|
|
1094
1130
|
const t = U;
|
|
1095
1131
|
if (typeof e == "string" && t[e.toUpperCase()] !== void 0 && (e = t[e.toUpperCase()]), typeof e == "number" && e >= 0 && e <= U.SILENT)
|
|
@@ -1097,8 +1133,8 @@ function qe(s) {
|
|
|
1097
1133
|
throw new TypeError(`setLevel() called with an invalid level: ${String(s)}`);
|
|
1098
1134
|
}
|
|
1099
1135
|
let ue;
|
|
1100
|
-
const
|
|
1101
|
-
class
|
|
1136
|
+
const Et = {};
|
|
1137
|
+
class po {
|
|
1102
1138
|
constructor(e, t) {
|
|
1103
1139
|
m(this, "name");
|
|
1104
1140
|
m(this, "levels", U);
|
|
@@ -1116,18 +1152,18 @@ class ao {
|
|
|
1116
1152
|
m(this, "defaultLevel", null);
|
|
1117
1153
|
/** Optional user-set level; overrides default. */
|
|
1118
1154
|
m(this, "userLevel", null);
|
|
1119
|
-
this.name = e, this.methodFactory = t, this.inheritedLevel =
|
|
1155
|
+
this.name = e, this.methodFactory = t, this.inheritedLevel = Xe(ue ? ue.getLevel() : "WARN");
|
|
1120
1156
|
const o = this.getPersistedLevel();
|
|
1121
|
-
o != null && (this.userLevel =
|
|
1157
|
+
o != null && (this.userLevel = Xe(o)), this.replaceLoggingMethods();
|
|
1122
1158
|
}
|
|
1123
1159
|
storageKey() {
|
|
1124
|
-
return typeof this.name == "string" ? `${
|
|
1160
|
+
return typeof this.name == "string" ? `${Gi}:${this.name}` : void 0;
|
|
1125
1161
|
}
|
|
1126
1162
|
persist(e) {
|
|
1127
1163
|
const t = this.storageKey();
|
|
1128
1164
|
if (typeof window > "u" || !t)
|
|
1129
1165
|
return;
|
|
1130
|
-
const o = (
|
|
1166
|
+
const o = (Ls[e] ?? "silent").toUpperCase();
|
|
1131
1167
|
try {
|
|
1132
1168
|
window.localStorage[t] = o;
|
|
1133
1169
|
} catch {
|
|
@@ -1155,18 +1191,18 @@ class ao {
|
|
|
1155
1191
|
}
|
|
1156
1192
|
replaceLoggingMethods() {
|
|
1157
1193
|
const e = this.getLevel();
|
|
1158
|
-
|
|
1159
|
-
this[t] = o < e ?
|
|
1194
|
+
Ls.forEach((t, o) => {
|
|
1195
|
+
this[t] = o < e ? Lt : this.methodFactory(t, e, this.name);
|
|
1160
1196
|
}), this.log = this.debug;
|
|
1161
1197
|
}
|
|
1162
1198
|
getLevel() {
|
|
1163
1199
|
return this.userLevel != null ? this.userLevel : this.defaultLevel != null ? this.defaultLevel : this.inheritedLevel;
|
|
1164
1200
|
}
|
|
1165
1201
|
setLevel(e, t) {
|
|
1166
|
-
this.userLevel =
|
|
1202
|
+
this.userLevel = Xe(e), t !== !1 && this.persist(this.userLevel), this.replaceLoggingMethods();
|
|
1167
1203
|
}
|
|
1168
1204
|
setDefaultLevel(e) {
|
|
1169
|
-
this.defaultLevel =
|
|
1205
|
+
this.defaultLevel = Xe(e), this.getPersistedLevel() || this.setLevel(e, !1);
|
|
1170
1206
|
}
|
|
1171
1207
|
resetLevel() {
|
|
1172
1208
|
this.userLevel = null, this.clearPersisted(), this.replaceLoggingMethods();
|
|
@@ -1178,19 +1214,19 @@ class ao {
|
|
|
1178
1214
|
this.setLevel(U.SILENT, e);
|
|
1179
1215
|
}
|
|
1180
1216
|
rebuild() {
|
|
1181
|
-
if (ue && ue !== this && (this.inheritedLevel =
|
|
1182
|
-
for (const e in
|
|
1183
|
-
|
|
1217
|
+
if (ue && ue !== this && (this.inheritedLevel = Xe(ue.getLevel())), this.replaceLoggingMethods(), ue === this)
|
|
1218
|
+
for (const e in Et)
|
|
1219
|
+
Et[e].rebuild();
|
|
1184
1220
|
}
|
|
1185
1221
|
}
|
|
1186
|
-
ue = new
|
|
1187
|
-
function
|
|
1222
|
+
ue = new po(void 0, Xi);
|
|
1223
|
+
function Yi(s) {
|
|
1188
1224
|
if (typeof s != "string" || s === "")
|
|
1189
1225
|
throw new TypeError("You must supply a non-empty name when creating a logger.");
|
|
1190
|
-
let e =
|
|
1191
|
-
return e || (e =
|
|
1226
|
+
let e = Et[s];
|
|
1227
|
+
return e || (e = Et[s] = new po(s, ue.methodFactory)), e;
|
|
1192
1228
|
}
|
|
1193
|
-
const
|
|
1229
|
+
const Ji = ["INIT", "DATA", "UI"], Qi = "debug", As = [
|
|
1194
1230
|
"#4c8bf5",
|
|
1195
1231
|
// blue
|
|
1196
1232
|
"#2ea043",
|
|
@@ -1207,43 +1243,43 @@ const Ri = ["INIT", "DATA", "UI"], Bi = "debug", Ps = [
|
|
|
1207
1243
|
// teal
|
|
1208
1244
|
"#8a6d3b"
|
|
1209
1245
|
// brown
|
|
1210
|
-
],
|
|
1211
|
-
function
|
|
1212
|
-
if (
|
|
1246
|
+
], zs = /* @__PURE__ */ new WeakSet();
|
|
1247
|
+
function Zi(s, e, t) {
|
|
1248
|
+
if (zs.has(s))
|
|
1213
1249
|
return;
|
|
1214
|
-
|
|
1250
|
+
zs.add(s);
|
|
1215
1251
|
const o = s.methodFactory, i = `color:${t};font-weight:bold`;
|
|
1216
1252
|
s.methodFactory = (r, n, a) => {
|
|
1217
1253
|
const l = o(r, n, a);
|
|
1218
1254
|
return (...c) => l(`%c[${e}]`, i, ...c);
|
|
1219
1255
|
}, s.setLevel(s.getLevel(), !1);
|
|
1220
1256
|
}
|
|
1221
|
-
function
|
|
1257
|
+
function er(s) {
|
|
1222
1258
|
return typeof s == "number" ? s : U[s.toUpperCase()] ?? U.SILENT;
|
|
1223
1259
|
}
|
|
1224
|
-
const
|
|
1260
|
+
const tr = [
|
|
1225
1261
|
["trace", U.TRACE, "debug"],
|
|
1226
1262
|
["debug", U.DEBUG, "debug"],
|
|
1227
1263
|
["info", U.INFO, "info"],
|
|
1228
1264
|
["warn", U.WARN, "warn"],
|
|
1229
1265
|
["error", U.ERROR, "error"]
|
|
1230
1266
|
];
|
|
1231
|
-
function
|
|
1267
|
+
function sr(s, e, t) {
|
|
1232
1268
|
const o = `color:${s.color};font-weight:bold`, i = "color:#888", r = {};
|
|
1233
|
-
for (const [n, a, l] of
|
|
1269
|
+
for (const [n, a, l] of tr)
|
|
1234
1270
|
r[n] = (...c) => {
|
|
1235
|
-
const d = t(), u = Math.min(s.logger.getLevel(), d == null ? U.SILENT :
|
|
1271
|
+
const d = t(), u = Math.min(s.logger.getLevel(), d == null ? U.SILENT : er(d));
|
|
1236
1272
|
if (a < u)
|
|
1237
1273
|
return;
|
|
1238
1274
|
(console[l] ?? console.log).bind(console)(`%c[${s.label}]%c ${e}`, o, i, ...c);
|
|
1239
1275
|
};
|
|
1240
1276
|
return r;
|
|
1241
1277
|
}
|
|
1242
|
-
function
|
|
1278
|
+
function or(s, e = Ji) {
|
|
1243
1279
|
const t = {}, o = {};
|
|
1244
1280
|
e.forEach((r, n) => {
|
|
1245
|
-
const a = `${s}:${r}`, l =
|
|
1246
|
-
|
|
1281
|
+
const a = `${s}:${r}`, l = As[n % As.length], c = Yi(a);
|
|
1282
|
+
Zi(c, a, l), t[r] = c, o[r] = { label: a, color: l, logger: c };
|
|
1247
1283
|
});
|
|
1248
1284
|
const i = (r) => {
|
|
1249
1285
|
for (const n of e)
|
|
@@ -1252,7 +1288,7 @@ function ji(s, e = Ri) {
|
|
|
1252
1288
|
return {
|
|
1253
1289
|
loggers: t,
|
|
1254
1290
|
LOGGING_CATEGORIES: e,
|
|
1255
|
-
enableLogging(r =
|
|
1291
|
+
enableLogging(r = Qi) {
|
|
1256
1292
|
i(r);
|
|
1257
1293
|
},
|
|
1258
1294
|
disableLogging() {
|
|
@@ -1268,81 +1304,81 @@ function ji(s, e = Ri) {
|
|
|
1268
1304
|
forInstance(r, n) {
|
|
1269
1305
|
const a = {};
|
|
1270
1306
|
for (const l of e)
|
|
1271
|
-
a[l] =
|
|
1307
|
+
a[l] = sr(o[l], r, n);
|
|
1272
1308
|
return a;
|
|
1273
1309
|
}
|
|
1274
1310
|
};
|
|
1275
1311
|
}
|
|
1276
|
-
const be = Math.min, ne = Math.max,
|
|
1312
|
+
const be = Math.min, ne = Math.max, At = Math.round, pt = Math.floor, ae = (s) => ({
|
|
1277
1313
|
x: s,
|
|
1278
1314
|
y: s
|
|
1279
|
-
}),
|
|
1315
|
+
}), ir = {
|
|
1280
1316
|
left: "right",
|
|
1281
1317
|
right: "left",
|
|
1282
1318
|
bottom: "top",
|
|
1283
1319
|
top: "bottom"
|
|
1284
1320
|
};
|
|
1285
|
-
function
|
|
1321
|
+
function fo(s, e, t) {
|
|
1286
1322
|
return ne(s, be(e, t));
|
|
1287
1323
|
}
|
|
1288
1324
|
function Ke(s, e) {
|
|
1289
1325
|
return typeof s == "function" ? s(e) : s;
|
|
1290
1326
|
}
|
|
1291
|
-
function
|
|
1327
|
+
function Pe(s) {
|
|
1292
1328
|
return s.split("-")[0];
|
|
1293
1329
|
}
|
|
1294
1330
|
function We(s) {
|
|
1295
1331
|
return s.split("-")[1];
|
|
1296
1332
|
}
|
|
1297
|
-
function
|
|
1333
|
+
function go(s) {
|
|
1298
1334
|
return s === "x" ? "y" : "x";
|
|
1299
1335
|
}
|
|
1300
|
-
function
|
|
1336
|
+
function gs(s) {
|
|
1301
1337
|
return s === "y" ? "height" : "width";
|
|
1302
1338
|
}
|
|
1303
1339
|
function re(s) {
|
|
1304
1340
|
const e = s[0];
|
|
1305
1341
|
return e === "t" || e === "b" ? "y" : "x";
|
|
1306
1342
|
}
|
|
1307
|
-
function
|
|
1308
|
-
return
|
|
1343
|
+
function bs(s) {
|
|
1344
|
+
return go(re(s));
|
|
1309
1345
|
}
|
|
1310
|
-
function
|
|
1346
|
+
function rr(s, e, t) {
|
|
1311
1347
|
t === void 0 && (t = !1);
|
|
1312
|
-
const o = We(s), i =
|
|
1348
|
+
const o = We(s), i = bs(s), r = gs(i);
|
|
1313
1349
|
let n = i === "x" ? o === (t ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
|
|
1314
|
-
return e.reference[r] > e.floating[r] && (n =
|
|
1350
|
+
return e.reference[r] > e.floating[r] && (n = zt(n)), [n, zt(n)];
|
|
1315
1351
|
}
|
|
1316
|
-
function
|
|
1317
|
-
const e =
|
|
1318
|
-
return [
|
|
1352
|
+
function nr(s) {
|
|
1353
|
+
const e = zt(s);
|
|
1354
|
+
return [es(s), e, es(e)];
|
|
1319
1355
|
}
|
|
1320
|
-
function
|
|
1356
|
+
function es(s) {
|
|
1321
1357
|
return s.includes("start") ? s.replace("start", "end") : s.replace("end", "start");
|
|
1322
1358
|
}
|
|
1323
|
-
const
|
|
1324
|
-
function
|
|
1359
|
+
const Ns = ["left", "right"], Vs = ["right", "left"], ar = ["top", "bottom"], lr = ["bottom", "top"];
|
|
1360
|
+
function cr(s, e, t) {
|
|
1325
1361
|
switch (s) {
|
|
1326
1362
|
case "top":
|
|
1327
1363
|
case "bottom":
|
|
1328
|
-
return t ? e ?
|
|
1364
|
+
return t ? e ? Vs : Ns : e ? Ns : Vs;
|
|
1329
1365
|
case "left":
|
|
1330
1366
|
case "right":
|
|
1331
|
-
return e ?
|
|
1367
|
+
return e ? ar : lr;
|
|
1332
1368
|
default:
|
|
1333
1369
|
return [];
|
|
1334
1370
|
}
|
|
1335
1371
|
}
|
|
1336
|
-
function
|
|
1372
|
+
function dr(s, e, t, o) {
|
|
1337
1373
|
const i = We(s);
|
|
1338
|
-
let r =
|
|
1339
|
-
return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(
|
|
1374
|
+
let r = cr(Pe(s), t === "start", o);
|
|
1375
|
+
return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(es)))), r;
|
|
1340
1376
|
}
|
|
1341
|
-
function
|
|
1342
|
-
const e =
|
|
1343
|
-
return
|
|
1377
|
+
function zt(s) {
|
|
1378
|
+
const e = Pe(s);
|
|
1379
|
+
return ir[e] + s.slice(e.length);
|
|
1344
1380
|
}
|
|
1345
|
-
function
|
|
1381
|
+
function hr(s) {
|
|
1346
1382
|
var e, t, o, i;
|
|
1347
1383
|
return {
|
|
1348
1384
|
top: (e = s.top) != null ? e : 0,
|
|
@@ -1351,15 +1387,15 @@ function Zi(s) {
|
|
|
1351
1387
|
left: (i = s.left) != null ? i : 0
|
|
1352
1388
|
};
|
|
1353
1389
|
}
|
|
1354
|
-
function
|
|
1355
|
-
return typeof s != "number" ?
|
|
1390
|
+
function bo(s) {
|
|
1391
|
+
return typeof s != "number" ? hr(s) : {
|
|
1356
1392
|
top: s,
|
|
1357
1393
|
right: s,
|
|
1358
1394
|
bottom: s,
|
|
1359
1395
|
left: s
|
|
1360
1396
|
};
|
|
1361
1397
|
}
|
|
1362
|
-
function
|
|
1398
|
+
function Nt(s) {
|
|
1363
1399
|
const {
|
|
1364
1400
|
x: e,
|
|
1365
1401
|
y: t,
|
|
@@ -1377,12 +1413,12 @@ function Et(s) {
|
|
|
1377
1413
|
y: t
|
|
1378
1414
|
};
|
|
1379
1415
|
}
|
|
1380
|
-
function
|
|
1416
|
+
function Ds(s, e, t) {
|
|
1381
1417
|
let {
|
|
1382
1418
|
reference: o,
|
|
1383
1419
|
floating: i
|
|
1384
1420
|
} = s;
|
|
1385
|
-
const r = re(e), n =
|
|
1421
|
+
const r = re(e), n = bs(e), a = gs(n), l = Pe(e), c = r === "y", d = o.x + o.width / 2 - i.width / 2, u = o.y + o.height / 2 - i.height / 2, f = o[a] / 2 - i[a] / 2;
|
|
1386
1422
|
let p;
|
|
1387
1423
|
switch (l) {
|
|
1388
1424
|
case "top":
|
|
@@ -1418,7 +1454,7 @@ function Es(s, e, t) {
|
|
|
1418
1454
|
const g = We(e);
|
|
1419
1455
|
return g && (p[n] += f * (g === "end" ? 1 : -1) * (t && c ? -1 : 1)), p;
|
|
1420
1456
|
}
|
|
1421
|
-
async function
|
|
1457
|
+
async function ur(s, e) {
|
|
1422
1458
|
var t;
|
|
1423
1459
|
e === void 0 && (e = {});
|
|
1424
1460
|
const {
|
|
@@ -1434,8 +1470,8 @@ async function er(s, e) {
|
|
|
1434
1470
|
elementContext: u = "floating",
|
|
1435
1471
|
altBoundary: f = !1,
|
|
1436
1472
|
padding: p = 0
|
|
1437
|
-
} = Ke(e, s), g =
|
|
1438
|
-
element: (t = await (r.isElement == null ? void 0 : r.isElement(
|
|
1473
|
+
} = Ke(e, s), g = bo(p), w = a[f ? u === "floating" ? "reference" : "floating" : u], b = Nt(await r.getClippingRect({
|
|
1474
|
+
element: (t = await (r.isElement == null ? void 0 : r.isElement(w))) == null || t ? w : w.contextElement || await (r.getDocumentElement == null ? void 0 : r.getDocumentElement(a.floating)),
|
|
1439
1475
|
boundary: c,
|
|
1440
1476
|
rootBoundary: d,
|
|
1441
1477
|
strategy: l
|
|
@@ -1447,7 +1483,7 @@ async function er(s, e) {
|
|
|
1447
1483
|
} : n.reference, k = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a.floating)), E = await (r.isElement == null ? void 0 : r.isElement(k)) && await (r.getScale == null ? void 0 : r.getScale(k)) || {
|
|
1448
1484
|
x: 1,
|
|
1449
1485
|
y: 1
|
|
1450
|
-
}, A =
|
|
1486
|
+
}, A = Nt(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
1451
1487
|
elements: a,
|
|
1452
1488
|
rect: _,
|
|
1453
1489
|
offsetParent: k,
|
|
@@ -1460,7 +1496,7 @@ async function er(s, e) {
|
|
|
1460
1496
|
right: (A.right - b.right + g.right) / E.x
|
|
1461
1497
|
};
|
|
1462
1498
|
}
|
|
1463
|
-
const
|
|
1499
|
+
const mr = 50, pr = async (s, e, t) => {
|
|
1464
1500
|
const {
|
|
1465
1501
|
placement: o = "bottom",
|
|
1466
1502
|
strategy: i = "absolute",
|
|
@@ -1468,7 +1504,7 @@ const tr = 50, sr = async (s, e, t) => {
|
|
|
1468
1504
|
platform: n
|
|
1469
1505
|
} = t, a = n.detectOverflow ? n : {
|
|
1470
1506
|
...n,
|
|
1471
|
-
detectOverflow:
|
|
1507
|
+
detectOverflow: ur
|
|
1472
1508
|
}, l = await (n.isRTL == null ? void 0 : n.isRTL(e));
|
|
1473
1509
|
let c = await n.getElementRects({
|
|
1474
1510
|
reference: s,
|
|
@@ -1477,16 +1513,16 @@ const tr = 50, sr = async (s, e, t) => {
|
|
|
1477
1513
|
}), {
|
|
1478
1514
|
x: d,
|
|
1479
1515
|
y: u
|
|
1480
|
-
} =
|
|
1516
|
+
} = Ds(c, o, l), f = o, p = 0;
|
|
1481
1517
|
const g = {};
|
|
1482
|
-
for (let
|
|
1483
|
-
const
|
|
1484
|
-
if (!
|
|
1518
|
+
for (let y = 0; y < r.length; y++) {
|
|
1519
|
+
const w = r[y];
|
|
1520
|
+
if (!w)
|
|
1485
1521
|
continue;
|
|
1486
1522
|
const {
|
|
1487
1523
|
name: b,
|
|
1488
1524
|
fn: _
|
|
1489
|
-
} =
|
|
1525
|
+
} = w, {
|
|
1490
1526
|
x: k,
|
|
1491
1527
|
y: E,
|
|
1492
1528
|
data: A,
|
|
@@ -1508,14 +1544,14 @@ const tr = 50, sr = async (s, e, t) => {
|
|
|
1508
1544
|
d = k ?? d, u = E ?? u, g[b] = {
|
|
1509
1545
|
...g[b],
|
|
1510
1546
|
...A
|
|
1511
|
-
}, $ && p <
|
|
1547
|
+
}, $ && p < mr && (p++, typeof $ == "object" && ($.placement && (f = $.placement), $.rects && (c = $.rects === !0 ? await n.getElementRects({
|
|
1512
1548
|
reference: s,
|
|
1513
1549
|
floating: e,
|
|
1514
1550
|
strategy: i
|
|
1515
1551
|
}) : $.rects), {
|
|
1516
1552
|
x: d,
|
|
1517
1553
|
y: u
|
|
1518
|
-
} =
|
|
1554
|
+
} = Ds(c, f, l)), y = -1);
|
|
1519
1555
|
}
|
|
1520
1556
|
return {
|
|
1521
1557
|
x: d,
|
|
@@ -1524,7 +1560,7 @@ const tr = 50, sr = async (s, e, t) => {
|
|
|
1524
1560
|
strategy: i,
|
|
1525
1561
|
middlewareData: g
|
|
1526
1562
|
};
|
|
1527
|
-
},
|
|
1563
|
+
}, fr = (s) => ({
|
|
1528
1564
|
name: "arrow",
|
|
1529
1565
|
options: s,
|
|
1530
1566
|
async fn(e) {
|
|
@@ -1542,13 +1578,13 @@ const tr = 50, sr = async (s, e, t) => {
|
|
|
1542
1578
|
} = Ke(s, e) || {};
|
|
1543
1579
|
if (c == null)
|
|
1544
1580
|
return {};
|
|
1545
|
-
const u =
|
|
1581
|
+
const u = bo(d), f = {
|
|
1546
1582
|
x: t,
|
|
1547
1583
|
y: o
|
|
1548
|
-
}, p =
|
|
1584
|
+
}, p = bs(i), g = gs(p), y = await n.getDimensions(c), w = p === "y", b = w ? "top" : "left", _ = w ? "bottom" : "right", k = w ? "clientHeight" : "clientWidth", E = r.reference[g] + r.reference[p] - f[p] - r.floating[g], A = f[p] - r.reference[p], $ = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
|
|
1549
1585
|
let F = $ ? $[k] : 0;
|
|
1550
1586
|
(!F || !await (n.isElement == null ? void 0 : n.isElement($))) && (F = a.floating[k] || r.floating[g]);
|
|
1551
|
-
const q = E / 2 - A / 2,
|
|
1587
|
+
const q = E / 2 - A / 2, V = F / 2 - y[g] / 2 - 1, C = be(u[b], V), P = be(u[_], V), M = F - y[g] - P, R = F / 2 - y[g] / 2 + q, S = fo(C, R, M), H = !l.arrow && We(i) != null && R !== S && r.reference[g] / 2 - (R < C ? C : P) - y[g] / 2 < 0, se = H ? R < C ? R - C : R - M : 0;
|
|
1552
1588
|
return {
|
|
1553
1589
|
[p]: f[p] + se,
|
|
1554
1590
|
data: {
|
|
@@ -1561,7 +1597,7 @@ const tr = 50, sr = async (s, e, t) => {
|
|
|
1561
1597
|
reset: H
|
|
1562
1598
|
};
|
|
1563
1599
|
}
|
|
1564
|
-
}),
|
|
1600
|
+
}), gr = function(s) {
|
|
1565
1601
|
return s === void 0 && (s = {}), {
|
|
1566
1602
|
name: "flip",
|
|
1567
1603
|
options: s,
|
|
@@ -1580,25 +1616,25 @@ const tr = 50, sr = async (s, e, t) => {
|
|
|
1580
1616
|
fallbackPlacements: f,
|
|
1581
1617
|
fallbackStrategy: p = "bestFit",
|
|
1582
1618
|
fallbackAxisSideDirection: g = "none",
|
|
1583
|
-
flipAlignment:
|
|
1584
|
-
...
|
|
1619
|
+
flipAlignment: y = !0,
|
|
1620
|
+
...w
|
|
1585
1621
|
} = Ke(s, e);
|
|
1586
1622
|
if ((t = r.arrow) != null && t.alignmentOffset)
|
|
1587
1623
|
return {};
|
|
1588
|
-
const b =
|
|
1589
|
-
!f && $ && A.push(...
|
|
1590
|
-
const F = [a, ...A], q = await l.detectOverflow(e,
|
|
1624
|
+
const b = Pe(i), _ = re(a), k = Pe(a) === a, E = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), A = f || (k || !y ? [zt(a)] : nr(a)), $ = g !== "none";
|
|
1625
|
+
!f && $ && A.push(...dr(a, y, g, E));
|
|
1626
|
+
const F = [a, ...A], q = await l.detectOverflow(e, w), V = [];
|
|
1591
1627
|
let C = ((o = r.flip) == null ? void 0 : o.overflows) || [];
|
|
1592
|
-
if (d &&
|
|
1593
|
-
const S =
|
|
1594
|
-
|
|
1628
|
+
if (d && V.push(q[b]), u) {
|
|
1629
|
+
const S = rr(i, n, E);
|
|
1630
|
+
V.push(q[S[0]], q[S[1]]);
|
|
1595
1631
|
}
|
|
1596
1632
|
if (C = [...C, {
|
|
1597
1633
|
placement: i,
|
|
1598
|
-
overflows:
|
|
1599
|
-
}], !
|
|
1600
|
-
var
|
|
1601
|
-
const S = (((
|
|
1634
|
+
overflows: V
|
|
1635
|
+
}], !V.every((S) => S <= 0)) {
|
|
1636
|
+
var P, M;
|
|
1637
|
+
const S = (((P = r.flip) == null ? void 0 : P.index) || 0) + 1, H = F[S];
|
|
1602
1638
|
if (H && (!(u === "alignment" ? _ !== re(H) : !1) || // We leave the current main axis only if every placement on that axis
|
|
1603
1639
|
// overflows the main axis.
|
|
1604
1640
|
C.every((Y) => re(Y.placement) === _ ? Y.overflows[0] > 0 : !0)))
|
|
@@ -1611,12 +1647,12 @@ const tr = 50, sr = async (s, e, t) => {
|
|
|
1611
1647
|
placement: H
|
|
1612
1648
|
}
|
|
1613
1649
|
};
|
|
1614
|
-
let se = (M = C.filter((
|
|
1650
|
+
let se = (M = C.filter((ye) => ye.overflows[0] <= 0).sort((ye, Y) => ye.overflows[1] - Y.overflows[1])[0]) == null ? void 0 : M.placement;
|
|
1615
1651
|
if (!se)
|
|
1616
1652
|
switch (p) {
|
|
1617
1653
|
case "bestFit": {
|
|
1618
1654
|
var R;
|
|
1619
|
-
const
|
|
1655
|
+
const ye = (R = C.filter((Y) => {
|
|
1620
1656
|
if ($) {
|
|
1621
1657
|
const de = re(Y.placement);
|
|
1622
1658
|
return de === _ || // Create a bias to the `y` side axis due to horizontal
|
|
@@ -1624,8 +1660,8 @@ const tr = 50, sr = async (s, e, t) => {
|
|
|
1624
1660
|
de === "y";
|
|
1625
1661
|
}
|
|
1626
1662
|
return !0;
|
|
1627
|
-
}).map((Y) => [Y.placement, Y.overflows.filter((de) => de > 0).reduce((de,
|
|
1628
|
-
|
|
1663
|
+
}).map((Y) => [Y.placement, Y.overflows.filter((de) => de > 0).reduce((de, Do) => de + Do, 0)]).sort((Y, de) => Y[1] - de[1])[0]) == null ? void 0 : R[0];
|
|
1664
|
+
ye && (se = ye);
|
|
1629
1665
|
break;
|
|
1630
1666
|
}
|
|
1631
1667
|
case "initialPlacement":
|
|
@@ -1642,13 +1678,13 @@ const tr = 50, sr = async (s, e, t) => {
|
|
|
1642
1678
|
return {};
|
|
1643
1679
|
}
|
|
1644
1680
|
};
|
|
1645
|
-
},
|
|
1646
|
-
async function
|
|
1681
|
+
}, br = /* @__PURE__ */ new Set(["left", "top"]);
|
|
1682
|
+
async function vr(s, e) {
|
|
1647
1683
|
const {
|
|
1648
1684
|
placement: t,
|
|
1649
1685
|
platform: o,
|
|
1650
1686
|
elements: i
|
|
1651
|
-
} = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n =
|
|
1687
|
+
} = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = Pe(t), a = We(t), l = re(t) === "y", c = br.has(n) ? -1 : 1, d = r && l ? -1 : 1, u = Ke(e, s);
|
|
1652
1688
|
let {
|
|
1653
1689
|
mainAxis: f,
|
|
1654
1690
|
crossAxis: p,
|
|
@@ -1670,7 +1706,7 @@ async function nr(s, e) {
|
|
|
1670
1706
|
y: p * d
|
|
1671
1707
|
};
|
|
1672
1708
|
}
|
|
1673
|
-
const
|
|
1709
|
+
const yr = function(s) {
|
|
1674
1710
|
return s === void 0 && (s = 0), {
|
|
1675
1711
|
name: "offset",
|
|
1676
1712
|
options: s,
|
|
@@ -1681,7 +1717,7 @@ const ar = function(s) {
|
|
|
1681
1717
|
y: r,
|
|
1682
1718
|
placement: n,
|
|
1683
1719
|
middlewareData: a
|
|
1684
|
-
} = e, l = await
|
|
1720
|
+
} = e, l = await vr(e, s);
|
|
1685
1721
|
return n === ((t = a.offset) == null ? void 0 : t.placement) && (o = a.arrow) != null && o.alignmentOffset ? {} : {
|
|
1686
1722
|
x: i + l.x,
|
|
1687
1723
|
y: r + l.y,
|
|
@@ -1692,7 +1728,7 @@ const ar = function(s) {
|
|
|
1692
1728
|
};
|
|
1693
1729
|
}
|
|
1694
1730
|
};
|
|
1695
|
-
},
|
|
1731
|
+
}, wr = function(s) {
|
|
1696
1732
|
return s === void 0 && (s = {}), {
|
|
1697
1733
|
name: "shift",
|
|
1698
1734
|
options: s,
|
|
@@ -1721,14 +1757,14 @@ const ar = function(s) {
|
|
|
1721
1757
|
} = Ke(s, e), d = {
|
|
1722
1758
|
x: t,
|
|
1723
1759
|
y: o
|
|
1724
|
-
}, u = await r.detectOverflow(e, c), f = re(i), p =
|
|
1725
|
-
let g = d[p],
|
|
1726
|
-
const
|
|
1727
|
-
n && (g =
|
|
1760
|
+
}, u = await r.detectOverflow(e, c), f = re(i), p = go(f);
|
|
1761
|
+
let g = d[p], y = d[f];
|
|
1762
|
+
const w = (_, k) => fo(k + u[_ === "y" ? "top" : "left"], k, k - u[_ === "y" ? "bottom" : "right"]);
|
|
1763
|
+
n && (g = w(p, g)), a && (y = w(f, y));
|
|
1728
1764
|
const b = l.fn({
|
|
1729
1765
|
...e,
|
|
1730
1766
|
[p]: g,
|
|
1731
|
-
[f]:
|
|
1767
|
+
[f]: y
|
|
1732
1768
|
});
|
|
1733
1769
|
return {
|
|
1734
1770
|
...b,
|
|
@@ -1743,7 +1779,7 @@ const ar = function(s) {
|
|
|
1743
1779
|
};
|
|
1744
1780
|
}
|
|
1745
1781
|
};
|
|
1746
|
-
},
|
|
1782
|
+
}, xr = function(s) {
|
|
1747
1783
|
return s === void 0 && (s = {}), {
|
|
1748
1784
|
name: "size",
|
|
1749
1785
|
options: s,
|
|
@@ -1757,15 +1793,15 @@ const ar = function(s) {
|
|
|
1757
1793
|
apply: n = () => {
|
|
1758
1794
|
},
|
|
1759
1795
|
...a
|
|
1760
|
-
} = Ke(s, e), l = await i.detectOverflow(e, a), c =
|
|
1796
|
+
} = Ke(s, e), l = await i.detectOverflow(e, a), c = Pe(t), d = We(t), u = re(t) === "y", {
|
|
1761
1797
|
width: f,
|
|
1762
1798
|
height: p
|
|
1763
1799
|
} = o.floating;
|
|
1764
|
-
let g,
|
|
1765
|
-
c === "top" || c === "bottom" ? (g = c,
|
|
1766
|
-
const
|
|
1800
|
+
let g, y;
|
|
1801
|
+
c === "top" || c === "bottom" ? (g = c, y = d === (await (i.isRTL == null ? void 0 : i.isRTL(r.floating)) ? "start" : "end") ? "left" : "right") : (y = c, g = d === "end" ? "top" : "bottom");
|
|
1802
|
+
const w = p - l.top - l.bottom, b = f - l.left - l.right, _ = be(p - l[g], w), k = be(f - l[y], b), E = e.middlewareData.shift, A = !E;
|
|
1767
1803
|
let $ = _, F = k;
|
|
1768
|
-
E != null && E.enabled.x && (F = b), E != null && E.enabled.y && ($ =
|
|
1804
|
+
E != null && E.enabled.x && (F = b), E != null && E.enabled.y && ($ = w), A && !d && (u ? F = f - 2 * ne(l.left, l.right) : $ = p - 2 * ne(l.top, l.bottom)), await n({
|
|
1769
1805
|
...e,
|
|
1770
1806
|
availableWidth: F,
|
|
1771
1807
|
availableHeight: $
|
|
@@ -1779,11 +1815,11 @@ const ar = function(s) {
|
|
|
1779
1815
|
}
|
|
1780
1816
|
};
|
|
1781
1817
|
};
|
|
1782
|
-
function
|
|
1818
|
+
function $t() {
|
|
1783
1819
|
return typeof window < "u";
|
|
1784
1820
|
}
|
|
1785
1821
|
function je(s) {
|
|
1786
|
-
return
|
|
1822
|
+
return vo(s) ? (s.nodeName || "").toLowerCase() : "#document";
|
|
1787
1823
|
}
|
|
1788
1824
|
function G(s) {
|
|
1789
1825
|
var e;
|
|
@@ -1791,21 +1827,21 @@ function G(s) {
|
|
|
1791
1827
|
}
|
|
1792
1828
|
function le(s) {
|
|
1793
1829
|
var e;
|
|
1794
|
-
return (e = (
|
|
1830
|
+
return (e = (vo(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
|
|
1795
1831
|
}
|
|
1796
|
-
function
|
|
1797
|
-
return
|
|
1832
|
+
function vo(s) {
|
|
1833
|
+
return $t() ? s instanceof Node || s instanceof G(s).Node : !1;
|
|
1798
1834
|
}
|
|
1799
1835
|
function ee(s) {
|
|
1800
|
-
return
|
|
1836
|
+
return $t() ? s instanceof Element || s instanceof G(s).Element : !1;
|
|
1801
1837
|
}
|
|
1802
1838
|
function ve(s) {
|
|
1803
|
-
return
|
|
1839
|
+
return $t() ? s instanceof HTMLElement || s instanceof G(s).HTMLElement : !1;
|
|
1804
1840
|
}
|
|
1805
|
-
function
|
|
1806
|
-
return
|
|
1841
|
+
function $s(s) {
|
|
1842
|
+
return !$t() || typeof ShadowRoot > "u" ? !1 : s instanceof ShadowRoot || s instanceof G(s).ShadowRoot;
|
|
1807
1843
|
}
|
|
1808
|
-
function
|
|
1844
|
+
function Rt(s) {
|
|
1809
1845
|
const {
|
|
1810
1846
|
overflow: e,
|
|
1811
1847
|
overflowX: t,
|
|
@@ -1814,10 +1850,10 @@ function Vt(s) {
|
|
|
1814
1850
|
} = te(s);
|
|
1815
1851
|
return /auto|scroll|overlay|hidden|clip/.test(e + o + t) && i !== "inline" && i !== "contents";
|
|
1816
1852
|
}
|
|
1817
|
-
function
|
|
1853
|
+
function _r(s) {
|
|
1818
1854
|
return /^(table|td|th)$/.test(je(s));
|
|
1819
1855
|
}
|
|
1820
|
-
function
|
|
1856
|
+
function Bt(s) {
|
|
1821
1857
|
try {
|
|
1822
1858
|
if (s.matches(":popover-open"))
|
|
1823
1859
|
return !0;
|
|
@@ -1829,33 +1865,33 @@ function Dt(s) {
|
|
|
1829
1865
|
return !1;
|
|
1830
1866
|
}
|
|
1831
1867
|
}
|
|
1832
|
-
const
|
|
1833
|
-
let
|
|
1834
|
-
function
|
|
1868
|
+
const kr = /transform|translate|scale|rotate|perspective|filter/, Cr = /paint|layout|strict|content/, we = (s) => !!s && s !== "none";
|
|
1869
|
+
let Ut;
|
|
1870
|
+
function vs(s) {
|
|
1835
1871
|
const e = ee(s) ? te(s) : s;
|
|
1836
|
-
return
|
|
1872
|
+
return we(e.transform) || we(e.translate) || we(e.scale) || we(e.rotate) || we(e.perspective) || !ys() && (we(e.backdropFilter) || we(e.filter)) || kr.test(e.willChange || "") || Cr.test(e.contain || "");
|
|
1837
1873
|
}
|
|
1838
|
-
function
|
|
1874
|
+
function Sr(s) {
|
|
1839
1875
|
let e = Me(s);
|
|
1840
|
-
for (; ve(e) && !
|
|
1841
|
-
if (
|
|
1876
|
+
for (; ve(e) && !it(e); ) {
|
|
1877
|
+
if (vs(e))
|
|
1842
1878
|
return e;
|
|
1843
|
-
if (
|
|
1879
|
+
if (Bt(e))
|
|
1844
1880
|
return null;
|
|
1845
1881
|
e = Me(e);
|
|
1846
1882
|
}
|
|
1847
1883
|
return null;
|
|
1848
1884
|
}
|
|
1849
|
-
function
|
|
1850
|
-
return
|
|
1885
|
+
function ys() {
|
|
1886
|
+
return Ut == null && (Ut = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), Ut;
|
|
1851
1887
|
}
|
|
1852
|
-
function
|
|
1888
|
+
function it(s) {
|
|
1853
1889
|
return /^(html|body|#document)$/.test(je(s));
|
|
1854
1890
|
}
|
|
1855
1891
|
function te(s) {
|
|
1856
1892
|
return G(s).getComputedStyle(s);
|
|
1857
1893
|
}
|
|
1858
|
-
function
|
|
1894
|
+
function Ht(s) {
|
|
1859
1895
|
return ee(s) ? {
|
|
1860
1896
|
scrollLeft: s.scrollLeft,
|
|
1861
1897
|
scrollTop: s.scrollTop
|
|
@@ -1871,108 +1907,108 @@ function Me(s) {
|
|
|
1871
1907
|
// Step into the shadow DOM of the parent of a slotted node.
|
|
1872
1908
|
s.assignedSlot || // DOM Element detected.
|
|
1873
1909
|
s.parentNode || // ShadowRoot detected.
|
|
1874
|
-
|
|
1910
|
+
$s(s) && s.host || // Fallback.
|
|
1875
1911
|
le(s)
|
|
1876
1912
|
);
|
|
1877
|
-
return
|
|
1913
|
+
return $s(e) ? e.host : e;
|
|
1878
1914
|
}
|
|
1879
|
-
function
|
|
1915
|
+
function yo(s) {
|
|
1880
1916
|
const e = Me(s);
|
|
1881
|
-
return
|
|
1917
|
+
return it(e) ? (s.ownerDocument || s).body : ve(e) && Rt(e) ? e : yo(e);
|
|
1882
1918
|
}
|
|
1883
|
-
function
|
|
1919
|
+
function rt(s, e, t) {
|
|
1884
1920
|
var o;
|
|
1885
1921
|
e === void 0 && (e = []), t === void 0 && (t = !0);
|
|
1886
|
-
const i =
|
|
1922
|
+
const i = yo(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = G(i);
|
|
1887
1923
|
if (r) {
|
|
1888
|
-
const a =
|
|
1889
|
-
return e.concat(n, n.visualViewport || [],
|
|
1924
|
+
const a = ts(n);
|
|
1925
|
+
return e.concat(n, n.visualViewport || [], Rt(i) ? i : [], a && t ? rt(a) : []);
|
|
1890
1926
|
} else
|
|
1891
|
-
return e.concat(i,
|
|
1927
|
+
return e.concat(i, rt(i, [], t));
|
|
1892
1928
|
}
|
|
1893
|
-
function
|
|
1929
|
+
function ts(s) {
|
|
1894
1930
|
return s.parent && Object.getPrototypeOf(s.parent) ? s.frameElement : null;
|
|
1895
1931
|
}
|
|
1896
|
-
function
|
|
1932
|
+
function wo(s) {
|
|
1897
1933
|
const e = te(s);
|
|
1898
1934
|
let t = parseFloat(e.width) || 0, o = parseFloat(e.height) || 0;
|
|
1899
|
-
const i = ve(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a =
|
|
1935
|
+
const i = ve(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a = At(t) !== r || At(o) !== n;
|
|
1900
1936
|
return a && (t = r, o = n), {
|
|
1901
1937
|
width: t,
|
|
1902
1938
|
height: o,
|
|
1903
1939
|
$: a
|
|
1904
1940
|
};
|
|
1905
1941
|
}
|
|
1906
|
-
function
|
|
1942
|
+
function ws(s) {
|
|
1907
1943
|
return ee(s) ? s : s.contextElement;
|
|
1908
1944
|
}
|
|
1909
1945
|
function Ae(s) {
|
|
1910
|
-
const e =
|
|
1946
|
+
const e = ws(s);
|
|
1911
1947
|
if (!ve(e))
|
|
1912
1948
|
return ae(1);
|
|
1913
1949
|
const t = e.getBoundingClientRect(), {
|
|
1914
1950
|
width: o,
|
|
1915
1951
|
height: i,
|
|
1916
1952
|
$: r
|
|
1917
|
-
} =
|
|
1918
|
-
let n = (r ?
|
|
1953
|
+
} = wo(e);
|
|
1954
|
+
let n = (r ? At(t.width) : t.width) / o, a = (r ? At(t.height) : t.height) / i;
|
|
1919
1955
|
return (!n || !Number.isFinite(n)) && (n = 1), (!a || !Number.isFinite(a)) && (a = 1), {
|
|
1920
1956
|
x: n,
|
|
1921
1957
|
y: a
|
|
1922
1958
|
};
|
|
1923
1959
|
}
|
|
1924
|
-
const
|
|
1925
|
-
function
|
|
1960
|
+
const Tr = /* @__PURE__ */ ae(0);
|
|
1961
|
+
function xo(s) {
|
|
1926
1962
|
const e = G(s);
|
|
1927
|
-
return !
|
|
1963
|
+
return !ys() || !e.visualViewport ? Tr : {
|
|
1928
1964
|
x: e.visualViewport.offsetLeft,
|
|
1929
1965
|
y: e.visualViewport.offsetTop
|
|
1930
1966
|
};
|
|
1931
1967
|
}
|
|
1932
|
-
function
|
|
1968
|
+
function Ir(s, e, t) {
|
|
1933
1969
|
return e === void 0 && (e = !1), !!t && e && t === G(s);
|
|
1934
1970
|
}
|
|
1935
1971
|
function Le(s, e, t, o) {
|
|
1936
1972
|
e === void 0 && (e = !1), t === void 0 && (t = !1);
|
|
1937
|
-
const i = s.getBoundingClientRect(), r =
|
|
1973
|
+
const i = s.getBoundingClientRect(), r = ws(s);
|
|
1938
1974
|
let n = ae(1);
|
|
1939
1975
|
e && (o ? ee(o) && (n = Ae(o)) : n = Ae(s));
|
|
1940
|
-
const a =
|
|
1976
|
+
const a = Ir(r, t, o) ? xo(r) : ae(0);
|
|
1941
1977
|
let l = (i.left + a.x) / n.x, c = (i.top + a.y) / n.y, d = i.width / n.x, u = i.height / n.y;
|
|
1942
1978
|
if (r && o) {
|
|
1943
1979
|
const f = G(r), p = ee(o) ? G(o) : o;
|
|
1944
|
-
let g = f,
|
|
1945
|
-
for (;
|
|
1946
|
-
const
|
|
1947
|
-
l *=
|
|
1980
|
+
let g = f, y = ts(g);
|
|
1981
|
+
for (; y && p !== g; ) {
|
|
1982
|
+
const w = Ae(y), b = y.getBoundingClientRect(), _ = te(y), k = b.left + (y.clientLeft + parseFloat(_.paddingLeft)) * w.x, E = b.top + (y.clientTop + parseFloat(_.paddingTop)) * w.y;
|
|
1983
|
+
l *= w.x, c *= w.y, d *= w.x, u *= w.y, l += k, c += E, g = G(y), y = ts(g);
|
|
1948
1984
|
}
|
|
1949
1985
|
}
|
|
1950
|
-
return
|
|
1986
|
+
return Nt({
|
|
1951
1987
|
width: d,
|
|
1952
1988
|
height: u,
|
|
1953
1989
|
x: l,
|
|
1954
1990
|
y: c
|
|
1955
1991
|
});
|
|
1956
1992
|
}
|
|
1957
|
-
function
|
|
1958
|
-
const t =
|
|
1993
|
+
function Ft(s, e) {
|
|
1994
|
+
const t = Ht(s).scrollLeft;
|
|
1959
1995
|
return e ? e.left + t : Le(le(s)).left + t;
|
|
1960
1996
|
}
|
|
1961
|
-
function
|
|
1962
|
-
const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft -
|
|
1997
|
+
function _o(s, e) {
|
|
1998
|
+
const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft - Ft(s, t), i = t.top + e.scrollTop;
|
|
1963
1999
|
return {
|
|
1964
2000
|
x: o,
|
|
1965
2001
|
y: i
|
|
1966
2002
|
};
|
|
1967
2003
|
}
|
|
1968
|
-
function
|
|
2004
|
+
function Or(s) {
|
|
1969
2005
|
let {
|
|
1970
2006
|
elements: e,
|
|
1971
2007
|
rect: t,
|
|
1972
2008
|
offsetParent: o,
|
|
1973
2009
|
strategy: i
|
|
1974
2010
|
} = s;
|
|
1975
|
-
const r = i === "fixed", n = le(o), a = e ?
|
|
2011
|
+
const r = i === "fixed", n = le(o), a = e ? Bt(e.floating) : !1;
|
|
1976
2012
|
if (o === n || a && r)
|
|
1977
2013
|
return t;
|
|
1978
2014
|
let l = {
|
|
@@ -1980,11 +2016,11 @@ function gr(s) {
|
|
|
1980
2016
|
scrollTop: 0
|
|
1981
2017
|
}, c = ae(1);
|
|
1982
2018
|
const d = ae(0), u = ve(o);
|
|
1983
|
-
if ((u || !r) && ((je(o) !== "body" ||
|
|
2019
|
+
if ((u || !r) && ((je(o) !== "body" || Rt(n)) && (l = Ht(o)), u)) {
|
|
1984
2020
|
const p = Le(o);
|
|
1985
2021
|
c = Ae(o), d.x = p.x + o.clientLeft, d.y = p.y + o.clientTop;
|
|
1986
2022
|
}
|
|
1987
|
-
const f = n && !u && !r ?
|
|
2023
|
+
const f = n && !u && !r ? _o(n, l) : ae(0);
|
|
1988
2024
|
return {
|
|
1989
2025
|
width: t.width * c.x,
|
|
1990
2026
|
height: t.height * c.y,
|
|
@@ -1992,12 +2028,12 @@ function gr(s) {
|
|
|
1992
2028
|
y: t.y * c.y - l.scrollTop * c.y + d.y + f.y
|
|
1993
2029
|
};
|
|
1994
2030
|
}
|
|
1995
|
-
function
|
|
2031
|
+
function Pr(s) {
|
|
1996
2032
|
return s.getClientRects ? Array.from(s.getClientRects()) : [];
|
|
1997
2033
|
}
|
|
1998
|
-
function
|
|
1999
|
-
const e =
|
|
2000
|
-
let r = -e.scrollLeft +
|
|
2034
|
+
function Mr(s) {
|
|
2035
|
+
const e = Ht(s), t = s.ownerDocument.body, o = ne(s.scrollWidth, s.clientWidth, t.scrollWidth, t.clientWidth), i = ne(s.scrollHeight, s.clientHeight, t.scrollHeight, t.clientHeight);
|
|
2036
|
+
let r = -e.scrollLeft + Ft(s);
|
|
2001
2037
|
const n = -e.scrollTop;
|
|
2002
2038
|
return te(t).direction === "rtl" && (r += ne(s.clientWidth, t.clientWidth) - o), {
|
|
2003
2039
|
width: o,
|
|
@@ -2006,18 +2042,18 @@ function vr(s) {
|
|
|
2006
2042
|
y: n
|
|
2007
2043
|
};
|
|
2008
2044
|
}
|
|
2009
|
-
const
|
|
2010
|
-
function
|
|
2045
|
+
const Lr = 25;
|
|
2046
|
+
function Er(s, e, t) {
|
|
2011
2047
|
t === void 0 && (t = "viewport");
|
|
2012
2048
|
const o = t === "layoutViewport", i = G(s), r = le(s), n = i.visualViewport;
|
|
2013
2049
|
let a = r.clientWidth, l = r.clientHeight, c = 0, d = 0;
|
|
2014
2050
|
if (n) {
|
|
2015
|
-
const f = !
|
|
2051
|
+
const f = !ys() || e === "fixed";
|
|
2016
2052
|
o ? f || (c = -n.offsetLeft, d = -n.offsetTop) : (a = n.width, l = n.height, f && (c = n.offsetLeft, d = n.offsetTop));
|
|
2017
2053
|
}
|
|
2018
|
-
if (
|
|
2019
|
-
const f = r.ownerDocument, p = f.body, g = getComputedStyle(p),
|
|
2020
|
-
b <=
|
|
2054
|
+
if (Ft(r) <= 0) {
|
|
2055
|
+
const f = r.ownerDocument, p = f.body, g = getComputedStyle(p), y = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, w = Math.abs(r.clientWidth - p.clientWidth - y), b = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? w / 2 : w;
|
|
2056
|
+
b <= Lr && (a -= b);
|
|
2021
2057
|
}
|
|
2022
2058
|
return {
|
|
2023
2059
|
width: a,
|
|
@@ -2026,7 +2062,7 @@ function yr(s, e, t) {
|
|
|
2026
2062
|
y: d
|
|
2027
2063
|
};
|
|
2028
2064
|
}
|
|
2029
|
-
function
|
|
2065
|
+
function Ar(s, e) {
|
|
2030
2066
|
const t = Le(s, !0, e === "fixed"), o = t.top + s.clientTop, i = t.left + s.clientLeft, r = Ae(s), n = s.clientWidth * r.x, a = s.clientHeight * r.y, l = i * r.x, c = o * r.y;
|
|
2031
2067
|
return {
|
|
2032
2068
|
width: n,
|
|
@@ -2035,16 +2071,16 @@ function xr(s, e) {
|
|
|
2035
2071
|
y: c
|
|
2036
2072
|
};
|
|
2037
2073
|
}
|
|
2038
|
-
function
|
|
2074
|
+
function Rs(s, e, t) {
|
|
2039
2075
|
let o;
|
|
2040
2076
|
if (e === "viewport" || e === "layoutViewport")
|
|
2041
|
-
o =
|
|
2077
|
+
o = Er(s, t, e);
|
|
2042
2078
|
else if (e === "document")
|
|
2043
|
-
o =
|
|
2079
|
+
o = Mr(le(s));
|
|
2044
2080
|
else if (ee(e))
|
|
2045
|
-
o =
|
|
2081
|
+
o = Ar(e, t);
|
|
2046
2082
|
else {
|
|
2047
|
-
const i =
|
|
2083
|
+
const i = xo(s);
|
|
2048
2084
|
o = {
|
|
2049
2085
|
x: e.x - i.x,
|
|
2050
2086
|
y: e.y - i.y,
|
|
@@ -2052,32 +2088,32 @@ function zs(s, e, t) {
|
|
|
2052
2088
|
height: e.height
|
|
2053
2089
|
};
|
|
2054
2090
|
}
|
|
2055
|
-
return
|
|
2091
|
+
return Nt(o);
|
|
2056
2092
|
}
|
|
2057
|
-
function
|
|
2093
|
+
function zr(s, e) {
|
|
2058
2094
|
const t = e.get(s);
|
|
2059
2095
|
if (t)
|
|
2060
2096
|
return t;
|
|
2061
|
-
let o =
|
|
2097
|
+
let o = rt(s, [], !1).filter((a) => ee(a) && je(a) !== "body"), i = null;
|
|
2062
2098
|
const r = te(s).position === "fixed";
|
|
2063
2099
|
let n = r ? Me(s) : s;
|
|
2064
|
-
for (; ee(n) && !
|
|
2065
|
-
const a = te(n), l =
|
|
2100
|
+
for (; ee(n) && !it(n); ) {
|
|
2101
|
+
const a = te(n), l = vs(n), c = i ? i.position : r ? "fixed" : "";
|
|
2066
2102
|
!l && (c === "fixed" || c === "absolute" && a.position === "static") ? o = o.filter((u) => u !== n) : i = a, n = Me(n);
|
|
2067
2103
|
}
|
|
2068
2104
|
return e.set(s, o), o;
|
|
2069
2105
|
}
|
|
2070
|
-
function
|
|
2106
|
+
function Nr(s) {
|
|
2071
2107
|
let {
|
|
2072
2108
|
element: e,
|
|
2073
2109
|
boundary: t,
|
|
2074
2110
|
rootBoundary: o,
|
|
2075
2111
|
strategy: i
|
|
2076
2112
|
} = s;
|
|
2077
|
-
const n = [...t === "clippingAncestors" ?
|
|
2113
|
+
const n = [...t === "clippingAncestors" ? Bt(e) ? [] : zr(e, this._c) : [].concat(t), o], a = Rs(e, n[0], i);
|
|
2078
2114
|
let l = a.top, c = a.right, d = a.bottom, u = a.left;
|
|
2079
2115
|
for (let f = 1; f < n.length; f++) {
|
|
2080
|
-
const p =
|
|
2116
|
+
const p = Rs(e, n[f], i);
|
|
2081
2117
|
l = ne(p.top, l), c = be(p.right, c), d = be(p.bottom, d), u = ne(p.left, u);
|
|
2082
2118
|
}
|
|
2083
2119
|
return {
|
|
@@ -2087,29 +2123,29 @@ function kr(s) {
|
|
|
2087
2123
|
y: l
|
|
2088
2124
|
};
|
|
2089
2125
|
}
|
|
2090
|
-
function
|
|
2126
|
+
function Vr(s) {
|
|
2091
2127
|
const {
|
|
2092
2128
|
width: e,
|
|
2093
2129
|
height: t
|
|
2094
|
-
} =
|
|
2130
|
+
} = wo(s);
|
|
2095
2131
|
return {
|
|
2096
2132
|
width: e,
|
|
2097
2133
|
height: t
|
|
2098
2134
|
};
|
|
2099
2135
|
}
|
|
2100
|
-
function
|
|
2136
|
+
function Dr(s, e, t) {
|
|
2101
2137
|
const o = ve(e), i = le(e), r = t === "fixed", n = Le(s, !0, r, e);
|
|
2102
2138
|
let a = {
|
|
2103
2139
|
scrollLeft: 0,
|
|
2104
2140
|
scrollTop: 0
|
|
2105
2141
|
};
|
|
2106
2142
|
const l = ae(0);
|
|
2107
|
-
if ((o || !r) && ((je(e) !== "body" ||
|
|
2143
|
+
if ((o || !r) && ((je(e) !== "body" || Rt(i)) && (a = Ht(e)), o)) {
|
|
2108
2144
|
const f = Le(e, !0, r, e);
|
|
2109
2145
|
l.x = f.x + e.clientLeft, l.y = f.y + e.clientTop;
|
|
2110
2146
|
}
|
|
2111
|
-
!o && i && (l.x =
|
|
2112
|
-
const c = i && !o && !r ?
|
|
2147
|
+
!o && i && (l.x = Ft(i));
|
|
2148
|
+
const c = i && !o && !r ? _o(i, a) : ae(0), d = n.left + a.scrollLeft - l.x - c.x, u = n.top + a.scrollTop - l.y - c.y;
|
|
2113
2149
|
return {
|
|
2114
2150
|
x: d,
|
|
2115
2151
|
y: u,
|
|
@@ -2117,10 +2153,10 @@ function Sr(s, e, t) {
|
|
|
2117
2153
|
height: n.height
|
|
2118
2154
|
};
|
|
2119
2155
|
}
|
|
2120
|
-
function
|
|
2156
|
+
function Gt(s) {
|
|
2121
2157
|
return te(s).position === "static";
|
|
2122
2158
|
}
|
|
2123
|
-
function
|
|
2159
|
+
function Bs(s, e) {
|
|
2124
2160
|
if (!ve(s) || te(s).position === "fixed")
|
|
2125
2161
|
return null;
|
|
2126
2162
|
if (e)
|
|
@@ -2128,28 +2164,28 @@ function Ns(s, e) {
|
|
|
2128
2164
|
let t = s.offsetParent;
|
|
2129
2165
|
return le(s) === t && (t = t.ownerDocument.body), t;
|
|
2130
2166
|
}
|
|
2131
|
-
function
|
|
2167
|
+
function ko(s, e) {
|
|
2132
2168
|
const t = G(s);
|
|
2133
|
-
if (
|
|
2169
|
+
if (Bt(s))
|
|
2134
2170
|
return t;
|
|
2135
2171
|
if (!ve(s)) {
|
|
2136
2172
|
let i = Me(s);
|
|
2137
|
-
for (; i && !
|
|
2138
|
-
if (ee(i) && !
|
|
2173
|
+
for (; i && !it(i); ) {
|
|
2174
|
+
if (ee(i) && !Gt(i))
|
|
2139
2175
|
return i;
|
|
2140
2176
|
i = Me(i);
|
|
2141
2177
|
}
|
|
2142
2178
|
return t;
|
|
2143
2179
|
}
|
|
2144
|
-
let o =
|
|
2145
|
-
for (; o &&
|
|
2146
|
-
o =
|
|
2147
|
-
return o &&
|
|
2180
|
+
let o = Bs(s, e);
|
|
2181
|
+
for (; o && _r(o) && Gt(o); )
|
|
2182
|
+
o = Bs(o, e);
|
|
2183
|
+
return o && it(o) && Gt(o) && !vs(o) ? t : o || Sr(s) || t;
|
|
2148
2184
|
}
|
|
2149
|
-
const
|
|
2150
|
-
const e = this.getOffsetParent ||
|
|
2185
|
+
const $r = async function(s) {
|
|
2186
|
+
const e = this.getOffsetParent || ko, t = this.getDimensions, o = await t(s.floating);
|
|
2151
2187
|
return {
|
|
2152
|
-
reference:
|
|
2188
|
+
reference: Dr(s.reference, await e(s.floating), s.strategy),
|
|
2153
2189
|
floating: {
|
|
2154
2190
|
x: 0,
|
|
2155
2191
|
y: 0,
|
|
@@ -2158,25 +2194,25 @@ const Tr = async function(s) {
|
|
|
2158
2194
|
}
|
|
2159
2195
|
};
|
|
2160
2196
|
};
|
|
2161
|
-
function
|
|
2197
|
+
function Rr(s) {
|
|
2162
2198
|
return te(s).direction === "rtl";
|
|
2163
2199
|
}
|
|
2164
|
-
const
|
|
2165
|
-
convertOffsetParentRelativeRectToViewportRelativeRect:
|
|
2200
|
+
const Co = {
|
|
2201
|
+
convertOffsetParentRelativeRectToViewportRelativeRect: Or,
|
|
2166
2202
|
getDocumentElement: le,
|
|
2167
|
-
getClippingRect:
|
|
2168
|
-
getOffsetParent:
|
|
2169
|
-
getElementRects:
|
|
2170
|
-
getClientRects:
|
|
2171
|
-
getDimensions:
|
|
2203
|
+
getClippingRect: Nr,
|
|
2204
|
+
getOffsetParent: ko,
|
|
2205
|
+
getElementRects: $r,
|
|
2206
|
+
getClientRects: Pr,
|
|
2207
|
+
getDimensions: Vr,
|
|
2172
2208
|
getScale: Ae,
|
|
2173
2209
|
isElement: ee,
|
|
2174
|
-
isRTL:
|
|
2210
|
+
isRTL: Rr
|
|
2175
2211
|
};
|
|
2176
|
-
function
|
|
2212
|
+
function So(s, e) {
|
|
2177
2213
|
return s.x === e.x && s.y === e.y && s.width === e.width && s.height === e.height;
|
|
2178
2214
|
}
|
|
2179
|
-
function
|
|
2215
|
+
function Br(s, e, t) {
|
|
2180
2216
|
let o = null, i;
|
|
2181
2217
|
const r = le(s);
|
|
2182
2218
|
function n() {
|
|
@@ -2188,19 +2224,19 @@ function Pr(s, e, t) {
|
|
|
2188
2224
|
const f = s.getBoundingClientRect(), {
|
|
2189
2225
|
left: p,
|
|
2190
2226
|
top: g,
|
|
2191
|
-
width:
|
|
2192
|
-
height:
|
|
2227
|
+
width: y,
|
|
2228
|
+
height: w
|
|
2193
2229
|
} = f;
|
|
2194
|
-
if (d || e(), !
|
|
2230
|
+
if (d || e(), !y || !w)
|
|
2195
2231
|
return;
|
|
2196
|
-
const b =
|
|
2232
|
+
const b = pt(g), _ = pt(r.clientWidth - (p + y)), k = pt(r.clientHeight - (g + w)), E = pt(p), $ = {
|
|
2197
2233
|
rootMargin: -b + "px " + -_ + "px " + -k + "px " + -E + "px",
|
|
2198
2234
|
threshold: ne(0, be(1, u)) || 1
|
|
2199
2235
|
};
|
|
2200
2236
|
let F = !0;
|
|
2201
|
-
function q(
|
|
2202
|
-
const C =
|
|
2203
|
-
if (!
|
|
2237
|
+
function q(V) {
|
|
2238
|
+
const C = V[0].intersectionRatio;
|
|
2239
|
+
if (!So(f, s.getBoundingClientRect()))
|
|
2204
2240
|
return a();
|
|
2205
2241
|
if (C !== u) {
|
|
2206
2242
|
if (!F)
|
|
@@ -2227,7 +2263,7 @@ function Pr(s, e, t) {
|
|
|
2227
2263
|
l.removeEventListener("resize", c), n();
|
|
2228
2264
|
};
|
|
2229
2265
|
}
|
|
2230
|
-
function
|
|
2266
|
+
function Hr(s, e, t, o) {
|
|
2231
2267
|
o === void 0 && (o = {});
|
|
2232
2268
|
const {
|
|
2233
2269
|
ancestorScroll: i = !0,
|
|
@@ -2235,11 +2271,11 @@ function Or(s, e, t, o) {
|
|
|
2235
2271
|
elementResize: n = typeof ResizeObserver == "function",
|
|
2236
2272
|
layoutShift: a = typeof IntersectionObserver == "function",
|
|
2237
2273
|
animationFrame: l = !1
|
|
2238
|
-
} = o, c =
|
|
2274
|
+
} = o, c = ws(s), d = i || r ? [...c ? rt(c) : [], ...e ? rt(e) : []] : [];
|
|
2239
2275
|
d.forEach((b) => {
|
|
2240
2276
|
i && b.addEventListener("scroll", t), r && b.addEventListener("resize", t);
|
|
2241
2277
|
});
|
|
2242
|
-
const u = c && a ?
|
|
2278
|
+
const u = c && a ? Br(c, t, r) : null;
|
|
2243
2279
|
let f = -1, p = null;
|
|
2244
2280
|
n && (p = new ResizeObserver((b) => {
|
|
2245
2281
|
let [_] = b;
|
|
@@ -2248,11 +2284,11 @@ function Or(s, e, t, o) {
|
|
|
2248
2284
|
(k = p) == null || k.observe(e);
|
|
2249
2285
|
})), t();
|
|
2250
2286
|
}), c && !l && p.observe(c), e && p.observe(e));
|
|
2251
|
-
let g,
|
|
2252
|
-
l &&
|
|
2253
|
-
function
|
|
2287
|
+
let g, y = l ? Le(s) : null;
|
|
2288
|
+
l && w();
|
|
2289
|
+
function w() {
|
|
2254
2290
|
const b = Le(s);
|
|
2255
|
-
|
|
2291
|
+
y && !So(y, b) && t(), y = b, g = requestAnimationFrame(w);
|
|
2256
2292
|
}
|
|
2257
2293
|
return t(), () => {
|
|
2258
2294
|
var b;
|
|
@@ -2261,37 +2297,37 @@ function Or(s, e, t, o) {
|
|
|
2261
2297
|
}), u == null || u(), (b = p) == null || b.disconnect(), p = null, l && cancelAnimationFrame(g);
|
|
2262
2298
|
};
|
|
2263
2299
|
}
|
|
2264
|
-
const
|
|
2300
|
+
const Fr = yr, Kr = wr, Wr = gr, qt = xr, jr = fr, Ur = (s, e, t) => {
|
|
2265
2301
|
const o = /* @__PURE__ */ new Map(), i = t ?? {}, r = {
|
|
2266
|
-
...
|
|
2302
|
+
...Co,
|
|
2267
2303
|
...i.platform,
|
|
2268
2304
|
_c: o
|
|
2269
2305
|
};
|
|
2270
|
-
return
|
|
2306
|
+
return pr(s, e, {
|
|
2271
2307
|
...i,
|
|
2272
2308
|
platform: r
|
|
2273
2309
|
});
|
|
2274
2310
|
};
|
|
2275
|
-
function
|
|
2311
|
+
function ss(s) {
|
|
2276
2312
|
const e = s.parentNode ?? null;
|
|
2277
2313
|
return e instanceof ShadowRoot ? e.host : e;
|
|
2278
2314
|
}
|
|
2279
|
-
function
|
|
2315
|
+
function Gr(s) {
|
|
2280
2316
|
if (s.transform !== "none" || s.perspective !== "none" || s.filter !== "none")
|
|
2281
2317
|
return !0;
|
|
2282
2318
|
const e = s.backdropFilter;
|
|
2283
2319
|
return !!(e && e !== "none" || s.willChange && /\b(transform|filter|perspective)\b/.test(s.willChange));
|
|
2284
2320
|
}
|
|
2285
|
-
function
|
|
2286
|
-
let e =
|
|
2321
|
+
function os(s) {
|
|
2322
|
+
let e = ss(s);
|
|
2287
2323
|
for (; e && !(e === document.body || e === document.documentElement); ) {
|
|
2288
|
-
if (e instanceof Element &&
|
|
2324
|
+
if (e instanceof Element && Gr(getComputedStyle(e)))
|
|
2289
2325
|
return e;
|
|
2290
|
-
e =
|
|
2326
|
+
e = ss(e);
|
|
2291
2327
|
}
|
|
2292
2328
|
return window;
|
|
2293
2329
|
}
|
|
2294
|
-
function
|
|
2330
|
+
function qr(s, e, t) {
|
|
2295
2331
|
let o = s;
|
|
2296
2332
|
for (; o && !(o === document.body || o === document.documentElement); ) {
|
|
2297
2333
|
if (o instanceof Element) {
|
|
@@ -2299,11 +2335,11 @@ function Vr(s, e, t) {
|
|
|
2299
2335
|
if (Math.abs(i.x - e) < 2 && Math.abs(i.y - t) < 2)
|
|
2300
2336
|
return o;
|
|
2301
2337
|
}
|
|
2302
|
-
o =
|
|
2338
|
+
o = ss(o);
|
|
2303
2339
|
}
|
|
2304
2340
|
return null;
|
|
2305
2341
|
}
|
|
2306
|
-
function
|
|
2342
|
+
function To(s) {
|
|
2307
2343
|
const e = getComputedStyle(s), t = [];
|
|
2308
2344
|
e.transform !== "none" && t.push(`transform: ${e.transform}`), e.perspective !== "none" && t.push(`perspective: ${e.perspective}`), e.filter !== "none" && t.push(`filter: ${e.filter}`);
|
|
2309
2345
|
const o = e.backdropFilter;
|
|
@@ -2311,11 +2347,11 @@ function yo(s) {
|
|
|
2311
2347
|
const i = e.containerType;
|
|
2312
2348
|
return i && i !== "normal" && t.push(`container-type: ${i}`), t.join("; ");
|
|
2313
2349
|
}
|
|
2314
|
-
function
|
|
2350
|
+
function Xr(s) {
|
|
2315
2351
|
const e = s.id ? `#${s.id}` : "", t = typeof s.className == "string" && s.className ? "." + s.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : "";
|
|
2316
2352
|
return `<${s.tagName.toLowerCase()}${e}${t}>`;
|
|
2317
2353
|
}
|
|
2318
|
-
function
|
|
2354
|
+
function Yr(s) {
|
|
2319
2355
|
const e = s.tolerance ?? 1.5;
|
|
2320
2356
|
let t = 0, o = 0;
|
|
2321
2357
|
if (s.offsetParent instanceof Element) {
|
|
@@ -2325,46 +2361,46 @@ function $r(s) {
|
|
|
2325
2361
|
const i = s.panel.getBoundingClientRect(), r = i.x - (t + s.expectedX), n = i.y - (o + s.expectedY);
|
|
2326
2362
|
if (Math.abs(r) < e && Math.abs(n) < e)
|
|
2327
2363
|
return null;
|
|
2328
|
-
const a =
|
|
2364
|
+
const a = qr(s.reference, r, n);
|
|
2329
2365
|
return {
|
|
2330
2366
|
driftX: r,
|
|
2331
2367
|
driftY: n,
|
|
2332
2368
|
culprit: a,
|
|
2333
|
-
culpritDescription: a ?
|
|
2334
|
-
culpritCss: a ?
|
|
2369
|
+
culpritDescription: a ? Xr(a) : "an ancestor element (could not auto-identify)",
|
|
2370
|
+
culpritCss: a ? To(a) : ""
|
|
2335
2371
|
};
|
|
2336
2372
|
}
|
|
2337
|
-
function
|
|
2373
|
+
function Jr(s, e) {
|
|
2338
2374
|
var i;
|
|
2339
2375
|
const t = (i = s.closest) == null ? void 0 : i.call(s, "[data-theme]"), o = t == null ? void 0 : t.getAttribute("data-theme");
|
|
2340
2376
|
o != null && e.setAttribute("data-theme", o);
|
|
2341
2377
|
}
|
|
2342
|
-
const
|
|
2343
|
-
function
|
|
2378
|
+
const Qr = { top: "bottom", right: "left", bottom: "top", left: "right" };
|
|
2379
|
+
function Zr(s, e, t) {
|
|
2344
2380
|
if (!t)
|
|
2345
2381
|
return;
|
|
2346
|
-
const o = e.split("-")[0], i =
|
|
2382
|
+
const o = e.split("-")[0], i = Qr[o];
|
|
2347
2383
|
s.style.left = t.x != null ? `${t.x}px` : "", s.style.top = t.y != null ? `${t.y}px` : "", s.style.right = "", s.style.bottom = "", s.style[i] = `-${s.offsetWidth / 2}px`;
|
|
2348
2384
|
}
|
|
2349
|
-
function
|
|
2350
|
-
const t = [
|
|
2385
|
+
function Hs(s, e) {
|
|
2386
|
+
const t = [Fr(s.offset ?? 4)];
|
|
2351
2387
|
if (s.matchWidth) {
|
|
2352
2388
|
const i = s.matchWidth;
|
|
2353
|
-
t.push(
|
|
2389
|
+
t.push(qt({
|
|
2354
2390
|
apply({ rects: r, elements: n }) {
|
|
2355
2391
|
const a = `${r.reference.width}px`;
|
|
2356
2392
|
i === "exact" ? n.floating.style.width = a : n.floating.style.minWidth = a;
|
|
2357
2393
|
}
|
|
2358
2394
|
}));
|
|
2359
2395
|
}
|
|
2360
|
-
e && t.push(
|
|
2396
|
+
e && t.push(Wr({
|
|
2361
2397
|
...s.lockPlacement === !0 ? { fallbackStrategy: "initialPlacement" } : {},
|
|
2362
2398
|
...s.flipPadding != null ? { padding: s.flipPadding } : {}
|
|
2363
2399
|
}));
|
|
2364
2400
|
const o = s.shift ?? 8;
|
|
2365
|
-
if (o !== !1 && t.push(
|
|
2401
|
+
if (o !== !1 && t.push(Kr({ padding: o })), s.maxHeight) {
|
|
2366
2402
|
const i = typeof s.maxHeight == "object" ? s.maxHeight.padding : void 0;
|
|
2367
|
-
t.push(
|
|
2403
|
+
t.push(qt({
|
|
2368
2404
|
padding: i,
|
|
2369
2405
|
apply({ availableHeight: r, elements: n }) {
|
|
2370
2406
|
n.floating.style.maxHeight = `${Math.max(0, r)}px`;
|
|
@@ -2373,49 +2409,49 @@ function Vs(s, e) {
|
|
|
2373
2409
|
}
|
|
2374
2410
|
if (s.maxWidth) {
|
|
2375
2411
|
const i = typeof s.maxWidth == "object" ? s.maxWidth.padding : void 0;
|
|
2376
|
-
t.push(
|
|
2412
|
+
t.push(qt({
|
|
2377
2413
|
padding: i,
|
|
2378
2414
|
apply({ availableWidth: r, elements: n }) {
|
|
2379
2415
|
n.floating.style.maxWidth = `${Math.max(0, r)}px`;
|
|
2380
2416
|
}
|
|
2381
2417
|
}));
|
|
2382
2418
|
}
|
|
2383
|
-
return s.arrow && t.push(
|
|
2419
|
+
return s.arrow && t.push(jr({ element: s.arrow.element, padding: s.arrow.padding })), t;
|
|
2384
2420
|
}
|
|
2385
|
-
function
|
|
2421
|
+
function et(s, e, t = {}) {
|
|
2386
2422
|
const o = t.strategy ?? "fixed";
|
|
2387
|
-
t.inheritThemeFrom &&
|
|
2388
|
-
let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n =
|
|
2423
|
+
t.inheritThemeFrom && Jr(t.inheritThemeFrom, s), s.style.position = o, s.style.left = "0", s.style.top = "0";
|
|
2424
|
+
let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n = Hs(t, r);
|
|
2389
2425
|
const a = t.lockPlacement === "freeze";
|
|
2390
2426
|
let l = !1;
|
|
2391
|
-
const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...
|
|
2427
|
+
const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...Co, getOffsetParent: () => os(s) } : void 0), u = () => {
|
|
2392
2428
|
var p;
|
|
2393
|
-
(p = t.beforeCompute) == null || p.call(t),
|
|
2429
|
+
(p = t.beforeCompute) == null || p.call(t), Ur(e, s, {
|
|
2394
2430
|
placement: i,
|
|
2395
2431
|
strategy: o,
|
|
2396
2432
|
middleware: n,
|
|
2397
2433
|
...d ? { platform: d } : {}
|
|
2398
|
-
}).then(({ x: g, y
|
|
2434
|
+
}).then(({ x: g, y, placement: w, middlewareData: b }) => {
|
|
2399
2435
|
var _, k;
|
|
2400
|
-
if (s.style.left = `${g}px`, s.style.top = `${
|
|
2401
|
-
const E = c ?
|
|
2436
|
+
if (s.style.left = `${g}px`, s.style.top = `${y}px`, t.arrow && Zr(t.arrow.element, w, b.arrow), a && !l && (l = !0, i = w, r = !1, n = Hs(t, !1)), (_ = t.onPlaced) == null || _.call(t, w), (k = t.onComputed) == null || k.call(t, { x: g, y, placement: w }), t.onDrift && e instanceof Element) {
|
|
2437
|
+
const E = c ? os(s) : window, A = Yr({ panel: s, reference: e, expectedX: g, expectedY: y, offsetParent: E });
|
|
2402
2438
|
A && t.onDrift(A);
|
|
2403
2439
|
}
|
|
2404
2440
|
});
|
|
2405
2441
|
};
|
|
2406
2442
|
let f;
|
|
2407
|
-
return t.autoUpdate ?? !0 ? f =
|
|
2443
|
+
return t.autoUpdate ?? !0 ? f = Hr(e, s, u, t.autoUpdateOptions) : u(), {
|
|
2408
2444
|
update: u,
|
|
2409
2445
|
destroy() {
|
|
2410
2446
|
f == null || f(), f = void 0;
|
|
2411
2447
|
}
|
|
2412
2448
|
};
|
|
2413
2449
|
}
|
|
2414
|
-
function
|
|
2450
|
+
function en(s) {
|
|
2415
2451
|
return typeof s == "number" ? { show: s, hide: s } : { show: (s == null ? void 0 : s.show) ?? 0, hide: (s == null ? void 0 : s.hide) ?? 0 };
|
|
2416
2452
|
}
|
|
2417
|
-
function
|
|
2418
|
-
const e = s.container ?? document.body, t = s.placement ?? "top", o = s.visibleClass ?? "is-visible", i =
|
|
2453
|
+
function tn(s) {
|
|
2454
|
+
const e = s.container ?? document.body, t = s.placement ?? "top", o = s.visibleClass ?? "is-visible", i = en(s.delay), r = document.createElement("div");
|
|
2419
2455
|
r.setAttribute("role", "tooltip"), s.cssClass && (r.className = s.cssClass), typeof s.content == "string" ? r.textContent = s.content : r.append(s.content);
|
|
2420
2456
|
let n, a = !1, l, c, d;
|
|
2421
2457
|
const u = {
|
|
@@ -2431,32 +2467,32 @@ function Kr(s) {
|
|
|
2431
2467
|
return;
|
|
2432
2468
|
(k = s.onBeforeShow) == null || k.call(s), a = !0, e.append(r);
|
|
2433
2469
|
const _ = s.followCursor ? u : s.trigger;
|
|
2434
|
-
n =
|
|
2470
|
+
n = et(r, _, {
|
|
2435
2471
|
placement: t,
|
|
2436
2472
|
strategy: s.strategy,
|
|
2437
2473
|
offset: s.offset ?? 8,
|
|
2438
2474
|
inheritThemeFrom: s.inheritThemeFrom ?? s.trigger
|
|
2439
2475
|
}), s.followCursor && s.trigger.addEventListener("mousemove", f), r.classList.add(o);
|
|
2440
|
-
}, w = () => {
|
|
2441
|
-
p(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
|
|
2442
2476
|
}, y = () => {
|
|
2477
|
+
p(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
|
|
2478
|
+
}, w = () => {
|
|
2443
2479
|
p(), i.show > 0 ? l = setTimeout(g, i.show) : g();
|
|
2444
2480
|
}, b = () => {
|
|
2445
|
-
p(), i.hide > 0 ? c = setTimeout(
|
|
2481
|
+
p(), i.hide > 0 ? c = setTimeout(y, i.hide) : y();
|
|
2446
2482
|
};
|
|
2447
|
-
return s.trigger.addEventListener("mouseenter",
|
|
2483
|
+
return s.trigger.addEventListener("mouseenter", w), s.trigger.addEventListener("mouseleave", b), s.trigger.addEventListener("focusin", w), s.trigger.addEventListener("focusout", b), {
|
|
2448
2484
|
element: r,
|
|
2449
2485
|
get isVisible() {
|
|
2450
2486
|
return a;
|
|
2451
2487
|
},
|
|
2452
2488
|
show: g,
|
|
2453
|
-
hide:
|
|
2489
|
+
hide: y,
|
|
2454
2490
|
destroy() {
|
|
2455
|
-
s.trigger.removeEventListener("mouseenter",
|
|
2491
|
+
s.trigger.removeEventListener("mouseenter", w), s.trigger.removeEventListener("mouseleave", b), s.trigger.removeEventListener("focusin", w), s.trigger.removeEventListener("focusout", b), y();
|
|
2456
2492
|
}
|
|
2457
2493
|
};
|
|
2458
2494
|
}
|
|
2459
|
-
function
|
|
2495
|
+
function sn(s) {
|
|
2460
2496
|
const e = s.container ?? document.body;
|
|
2461
2497
|
let t, o = !1;
|
|
2462
2498
|
const i = s.inheritThemeFrom ?? (s.reference instanceof HTMLElement ? s.reference : void 0);
|
|
@@ -2465,7 +2501,7 @@ function Wr(s) {
|
|
|
2465
2501
|
return o;
|
|
2466
2502
|
},
|
|
2467
2503
|
open() {
|
|
2468
|
-
o || (o = !0, e.append(s.panel), t =
|
|
2504
|
+
o || (o = !0, e.append(s.panel), t = et(s.panel, s.reference, {
|
|
2469
2505
|
placement: s.placement ?? "bottom-start",
|
|
2470
2506
|
strategy: s.strategy,
|
|
2471
2507
|
offset: s.offset,
|
|
@@ -2491,21 +2527,21 @@ function Wr(s) {
|
|
|
2491
2527
|
}
|
|
2492
2528
|
};
|
|
2493
2529
|
}
|
|
2494
|
-
const
|
|
2495
|
-
function
|
|
2530
|
+
const Io = ["INIT", "DATA", "UI", "INTERACTION"], ce = or("MULTISELECT", Io), ft = ce.loggers.INIT, K = ce.loggers.DATA, J = ce.loggers.UI, j = ce.loggers.INTERACTION, kn = Io.map((s) => `MULTISELECT:${s}`);
|
|
2531
|
+
function Cn() {
|
|
2496
2532
|
ce.enableLogging();
|
|
2497
2533
|
}
|
|
2498
|
-
function
|
|
2534
|
+
function Sn() {
|
|
2499
2535
|
ce.disableLogging();
|
|
2500
2536
|
}
|
|
2501
|
-
function
|
|
2537
|
+
function Tn(s) {
|
|
2502
2538
|
ce.setLogLevel(s);
|
|
2503
2539
|
}
|
|
2504
|
-
function
|
|
2540
|
+
function In(s, e) {
|
|
2505
2541
|
const t = s.includes(":") ? s.split(":").pop() : s;
|
|
2506
2542
|
ce.setCategoryLevel(t, e);
|
|
2507
2543
|
}
|
|
2508
|
-
class
|
|
2544
|
+
class Fs {
|
|
2509
2545
|
constructor(e) {
|
|
2510
2546
|
m(this, "container");
|
|
2511
2547
|
m(this, "wrapper");
|
|
@@ -2627,7 +2663,7 @@ class Ds {
|
|
|
2627
2663
|
this.container.removeEventListener("scroll", this.scrollHandler), this.resizeObserver && this.resizeObserver.disconnect(), this.container.innerHTML = "";
|
|
2628
2664
|
}
|
|
2629
2665
|
}
|
|
2630
|
-
function
|
|
2666
|
+
function Ks(s) {
|
|
2631
2667
|
return {
|
|
2632
2668
|
treeId: "",
|
|
2633
2669
|
id: -1,
|
|
@@ -2642,28 +2678,28 @@ function $s(s) {
|
|
|
2642
2678
|
...s
|
|
2643
2679
|
};
|
|
2644
2680
|
}
|
|
2645
|
-
const
|
|
2646
|
-
function
|
|
2681
|
+
const Ze = (s) => !s || typeof s == "string" && s.trim() === "";
|
|
2682
|
+
function on(s, e = ".") {
|
|
2647
2683
|
if (!s || typeof s != "string") return null;
|
|
2648
2684
|
const t = s.lastIndexOf(e);
|
|
2649
2685
|
return t === -1 ? "" : s.substring(0, t);
|
|
2650
2686
|
}
|
|
2651
|
-
function
|
|
2652
|
-
return
|
|
2687
|
+
function Ws(s, e, t = ".") {
|
|
2688
|
+
return Ze(e) ? s : s.startsWith(e + t) ? s.substring(e.length + t.length) : s;
|
|
2653
2689
|
}
|
|
2654
|
-
function
|
|
2690
|
+
function js(s, e = 0, t = 1, o = ".") {
|
|
2655
2691
|
return s.split(o).slice(e, e + t).join(o);
|
|
2656
2692
|
}
|
|
2657
|
-
function
|
|
2693
|
+
function rn(s, e) {
|
|
2658
2694
|
return s.split(e).length;
|
|
2659
2695
|
}
|
|
2660
2696
|
function he(s, e) {
|
|
2661
2697
|
return s[e];
|
|
2662
2698
|
}
|
|
2663
|
-
function
|
|
2664
|
-
const e = s.idMember, t = s.pathMember, o = s.getPathCallback, i = s.parentPathMember, r = s.levelMember, n = s.hasChildrenMember, a = s.isSelectableMember, l = s.getIsSelectableCallback, c = s.treeId || "multiselect-tree", d = s.orderMember, u = s.getDisplayValueCallback, f =
|
|
2699
|
+
function nn(s = {}) {
|
|
2700
|
+
const e = s.idMember, t = s.pathMember, o = s.getPathCallback, i = s.parentPathMember, r = s.levelMember, n = s.hasChildrenMember, a = s.isSelectableMember, l = s.getIsSelectableCallback, c = s.treeId || "multiselect-tree", d = s.orderMember, u = s.getDisplayValueCallback, f = Ze(i), p = Ze(r), g = Ze(n), y = Ze(a), w = "x", b = s.treePathSeparator || ".", _ = Ks();
|
|
2665
2701
|
let k = 0, E = null;
|
|
2666
|
-
const A = (
|
|
2702
|
+
const A = (V) => o ? o(V) : t ? he(V, t) : void 0, $ = {
|
|
2667
2703
|
treePathSeparator: b,
|
|
2668
2704
|
root: _,
|
|
2669
2705
|
get tree() {
|
|
@@ -2675,34 +2711,34 @@ function Gr(s = {}) {
|
|
|
2675
2711
|
*/
|
|
2676
2712
|
get flatNodes() {
|
|
2677
2713
|
if (E) return E;
|
|
2678
|
-
const
|
|
2714
|
+
const V = [], C = s.isSorted ?? !1, P = s.sortCallback;
|
|
2679
2715
|
function M(R) {
|
|
2680
2716
|
let S = Object.values(R.children);
|
|
2681
|
-
C &&
|
|
2717
|
+
C && P && S.length > 0 && (S = P(S));
|
|
2682
2718
|
for (const H of S)
|
|
2683
|
-
|
|
2719
|
+
V.push(H), H.hasChildren && M(H);
|
|
2684
2720
|
}
|
|
2685
|
-
return M(_), E =
|
|
2721
|
+
return M(_), E = V, V;
|
|
2686
2722
|
},
|
|
2687
|
-
insertArray(
|
|
2688
|
-
|
|
2723
|
+
insertArray(V) {
|
|
2724
|
+
V = V || [], _.children = {}, k = 0, E = null;
|
|
2689
2725
|
const C = [];
|
|
2690
|
-
let
|
|
2691
|
-
const S =
|
|
2726
|
+
let P = V.map((M, R) => {
|
|
2727
|
+
const S = Ks();
|
|
2692
2728
|
S.treeId = c, S.id = e ? he(M, e) : void 0;
|
|
2693
2729
|
const H = A(M);
|
|
2694
|
-
return H == null || H === "" || typeof H != "string" ? (C.push(`index ${R}`), null) : (S.path = H, (S.id === void 0 || S.id === -1) && (S.id = H), f ? S.parentPath =
|
|
2695
|
-
|
|
2730
|
+
return H == null || H === "" || typeof H != "string" ? (C.push(`index ${R}`), null) : (S.path = H, (S.id === void 0 || S.id === -1) && (S.id = H), f ? S.parentPath = on(S.path, b) : S.parentPath = he(M, i), S.pathSegment = js(
|
|
2731
|
+
Ws(S.path, S.parentPath ?? "", b),
|
|
2696
2732
|
0,
|
|
2697
2733
|
1,
|
|
2698
2734
|
b
|
|
2699
|
-
), p ? S.level =
|
|
2735
|
+
), p ? S.level = rn(S.path, b) : S.level = he(M, r), g || (S.hasChildren = he(M, n)), S.data = M, S);
|
|
2700
2736
|
}).filter((M) => M !== null);
|
|
2701
|
-
s.isSorted || (s.sortCallback ?
|
|
2702
|
-
for (const M of
|
|
2737
|
+
s.isSorted || (s.sortCallback ? P = s.sortCallback(P) : P = q(P));
|
|
2738
|
+
for (const M of P)
|
|
2703
2739
|
F(M.parentPath ?? "", M);
|
|
2704
|
-
if (l || !
|
|
2705
|
-
for (const M of
|
|
2740
|
+
if (l || !y)
|
|
2741
|
+
for (const M of P)
|
|
2706
2742
|
if (l)
|
|
2707
2743
|
M.isSelectable = l(M) !== !1;
|
|
2708
2744
|
else {
|
|
@@ -2713,44 +2749,44 @@ function Gr(s = {}) {
|
|
|
2713
2749
|
`[ltree ${c}] ${C.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${C.slice(0, 5).join(", ")}` + (C.length > 5 ? ", …" : "")
|
|
2714
2750
|
);
|
|
2715
2751
|
},
|
|
2716
|
-
getNodeByPath(
|
|
2717
|
-
let
|
|
2718
|
-
if (
|
|
2719
|
-
const M =
|
|
2752
|
+
getNodeByPath(V, C) {
|
|
2753
|
+
let P = C || _;
|
|
2754
|
+
if (V) {
|
|
2755
|
+
const M = V.split(b);
|
|
2720
2756
|
for (let R = 0; R < M.length; R++) {
|
|
2721
|
-
const S =
|
|
2722
|
-
if (!
|
|
2757
|
+
const S = w + M[R];
|
|
2758
|
+
if (!P.children.hasOwnProperty(S))
|
|
2723
2759
|
return null;
|
|
2724
|
-
|
|
2760
|
+
P = P.children[S];
|
|
2725
2761
|
}
|
|
2726
2762
|
}
|
|
2727
|
-
return
|
|
2763
|
+
return P;
|
|
2728
2764
|
}
|
|
2729
2765
|
};
|
|
2730
|
-
function F(
|
|
2731
|
-
const
|
|
2732
|
-
if (!
|
|
2733
|
-
return `Node: ${C.path} - Could not find parent node: ${
|
|
2734
|
-
p && (C.level = (
|
|
2735
|
-
const M =
|
|
2736
|
-
return
|
|
2737
|
-
}
|
|
2738
|
-
function q(
|
|
2739
|
-
return
|
|
2740
|
-
const M = C.level || 0, R =
|
|
2766
|
+
function F(V, C) {
|
|
2767
|
+
const P = $.getNodeByPath(V);
|
|
2768
|
+
if (!P)
|
|
2769
|
+
return `Node: ${C.path} - Could not find parent node: ${V}`;
|
|
2770
|
+
p && (C.level = (P.level || 0) + 1);
|
|
2771
|
+
const M = w + js(Ws(C.path, V, b), 0, 1, b);
|
|
2772
|
+
return P.children.hasOwnProperty(M) || (P.children[M] = C, g && !P.hasChildren && (P.hasChildren = !0), k = Math.max(k, C.level || 0)), null;
|
|
2773
|
+
}
|
|
2774
|
+
function q(V) {
|
|
2775
|
+
return V.sort((C, P) => {
|
|
2776
|
+
const M = C.level || 0, R = P.level || 0;
|
|
2741
2777
|
if (M !== R) return M - R;
|
|
2742
|
-
if (C.parentPath !==
|
|
2743
|
-
return C.parentPath ?
|
|
2744
|
-
if (d && C.data &&
|
|
2745
|
-
const S = he(C.data, d) ?? 0, H = he(
|
|
2778
|
+
if (C.parentPath !== P.parentPath)
|
|
2779
|
+
return C.parentPath ? P.parentPath ? C.parentPath.localeCompare(P.parentPath) : 1 : -1;
|
|
2780
|
+
if (d && C.data && P.data) {
|
|
2781
|
+
const S = he(C.data, d) ?? 0, H = he(P.data, d) ?? 0;
|
|
2746
2782
|
if (S !== H) return S - H;
|
|
2747
2783
|
}
|
|
2748
|
-
return u ? u(C).localeCompare(u(
|
|
2784
|
+
return u ? u(C).localeCompare(u(P)) : C.path.localeCompare(P.path);
|
|
2749
2785
|
});
|
|
2750
2786
|
}
|
|
2751
2787
|
return $;
|
|
2752
2788
|
}
|
|
2753
|
-
function
|
|
2789
|
+
function Us(s, e) {
|
|
2754
2790
|
const t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), n = (l) => {
|
|
2755
2791
|
t.set(r(l), l);
|
|
2756
2792
|
const c = [];
|
|
@@ -2762,14 +2798,14 @@ function Hs(s, e) {
|
|
|
2762
2798
|
for (const l of a) n(l);
|
|
2763
2799
|
return { nodeByValue: t, atomsUnder: o, atomPaths: i, roots: a };
|
|
2764
2800
|
}
|
|
2765
|
-
function
|
|
2801
|
+
function xs(s, e, t) {
|
|
2766
2802
|
const o = s.atomsUnder.get(e.path);
|
|
2767
2803
|
if (!o || o.length === 0) return "unchecked";
|
|
2768
2804
|
let i = 0;
|
|
2769
2805
|
for (const r of o) t.has(r) && i++;
|
|
2770
2806
|
return i === 0 ? "unchecked" : i === o.length ? "checked" : "indeterminate";
|
|
2771
2807
|
}
|
|
2772
|
-
function
|
|
2808
|
+
function Ye(s, e) {
|
|
2773
2809
|
const t = /* @__PURE__ */ new Set();
|
|
2774
2810
|
for (const o of e) {
|
|
2775
2811
|
const i = s.nodeByValue.get(String(o));
|
|
@@ -2778,17 +2814,17 @@ function Xe(s, e) {
|
|
|
2778
2814
|
}
|
|
2779
2815
|
return t;
|
|
2780
2816
|
}
|
|
2781
|
-
function
|
|
2782
|
-
const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r =
|
|
2817
|
+
function an(s, e, t) {
|
|
2818
|
+
const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r = xs(s, e, t), n = [], a = [];
|
|
2783
2819
|
if (r === "checked")
|
|
2784
2820
|
for (const l of o) i.delete(l) && a.push(l);
|
|
2785
2821
|
else
|
|
2786
2822
|
for (const l of o) i.has(l) || (i.add(l), n.push(l));
|
|
2787
2823
|
return { checkedAtoms: i, addedAtoms: n, removedAtoms: a };
|
|
2788
2824
|
}
|
|
2789
|
-
function
|
|
2825
|
+
function Xt(s, e, t, o) {
|
|
2790
2826
|
const i = (a) => String(o(a.data)), r = [], n = (a) => {
|
|
2791
|
-
const l =
|
|
2827
|
+
const l = xs(s, a, e);
|
|
2792
2828
|
if (l === "unchecked") return;
|
|
2793
2829
|
const c = a.isSelectable !== !1, d = Object.values(a.children);
|
|
2794
2830
|
if (t === "leaves") {
|
|
@@ -2811,7 +2847,7 @@ function Ut(s, e, t, o) {
|
|
|
2811
2847
|
return r;
|
|
2812
2848
|
}
|
|
2813
2849
|
var D;
|
|
2814
|
-
class
|
|
2850
|
+
class ln {
|
|
2815
2851
|
constructor(e, t = {}) {
|
|
2816
2852
|
m(this, "element");
|
|
2817
2853
|
m(this, "instanceId");
|
|
@@ -2948,6 +2984,10 @@ class Xr {
|
|
|
2948
2984
|
// Document-level event handlers (stored for cleanup)
|
|
2949
2985
|
m(this, "documentKeydownHandler", null);
|
|
2950
2986
|
m(this, "documentClickHandler", null);
|
|
2987
|
+
// Cross-component "one overlay open at a time" coordination (core). activate() on
|
|
2988
|
+
// open() dismisses every OTHER participating overlay (multiselects, datepickers, …);
|
|
2989
|
+
// our onDismiss closes this dropdown when another opens. Torn down in destroy().
|
|
2990
|
+
m(this, "overlayCoord", null);
|
|
2951
2991
|
this.element = e, this.instanceId = `MS-${Math.random().toString(36).slice(2, 11)}`, this.options = {
|
|
2952
2992
|
// String options
|
|
2953
2993
|
searchHint: e.dataset.searchHint || "",
|
|
@@ -3127,7 +3167,7 @@ class Xr {
|
|
|
3127
3167
|
return i ? i.isSelectable !== !1 : !0;
|
|
3128
3168
|
}
|
|
3129
3169
|
init() {
|
|
3130
|
-
this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(),
|
|
3170
|
+
this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(), ft.debug(`Initialized [${this.instanceId}] with options:`, {
|
|
3131
3171
|
placeholder: this.options.searchPlaceholder,
|
|
3132
3172
|
totalOptions: this.allOptions.length,
|
|
3133
3173
|
isCloseOnSelect: this.options.isCloseOnSelect,
|
|
@@ -3154,7 +3194,7 @@ class Xr {
|
|
|
3154
3194
|
}
|
|
3155
3195
|
/** (Re)build the ltree from `allOptions` and derive the visible flat list. */
|
|
3156
3196
|
buildTree() {
|
|
3157
|
-
this.tree =
|
|
3197
|
+
this.tree = nn({
|
|
3158
3198
|
idMember: this.options.valueMember,
|
|
3159
3199
|
pathMember: this.options.pathMember,
|
|
3160
3200
|
getPathCallback: this.options.getPathCallback,
|
|
@@ -3166,7 +3206,7 @@ class Xr {
|
|
|
3166
3206
|
treePathSeparator: this.options.treePathSeparator,
|
|
3167
3207
|
treeId: this.instanceId,
|
|
3168
3208
|
getDisplayValueCallback: (e) => this.getItemDisplayValue(e.data)
|
|
3169
|
-
}), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ?
|
|
3209
|
+
}), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? Us(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
|
|
3170
3210
|
}
|
|
3171
3211
|
/**
|
|
3172
3212
|
* Whether cascade checkbox mode is active: a multi-select tree with
|
|
@@ -3181,7 +3221,7 @@ class Xr {
|
|
|
3181
3221
|
}
|
|
3182
3222
|
/** Refresh the derived checked-atom set from the emitted `selectedValues`. */
|
|
3183
3223
|
refreshCascadeAtoms() {
|
|
3184
|
-
this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms =
|
|
3224
|
+
this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms = Ye(this.cascadeIndex, this.selectedValues));
|
|
3185
3225
|
}
|
|
3186
3226
|
/**
|
|
3187
3227
|
* Toggle a tree node in cascade mode: flip its whole subtree, re-project the
|
|
@@ -3189,7 +3229,7 @@ class Xr {
|
|
|
3189
3229
|
* so badges / form / change events reflect the policy (rolled-up branches, etc.).
|
|
3190
3230
|
*/
|
|
3191
3231
|
toggleTreeCascade(e) {
|
|
3192
|
-
const t = this.cascadeIndex, o =
|
|
3232
|
+
const t = this.cascadeIndex, o = Ye(t, this.selectedValues), { checkedAtoms: i } = an(t, e, o);
|
|
3193
3233
|
this.commitCascadeAtoms(i);
|
|
3194
3234
|
}
|
|
3195
3235
|
/**
|
|
@@ -3200,7 +3240,7 @@ class Xr {
|
|
|
3200
3240
|
*/
|
|
3201
3241
|
commitCascadeAtoms(e) {
|
|
3202
3242
|
var l;
|
|
3203
|
-
const t = this.cascadeIndex, o =
|
|
3243
|
+
const t = this.cascadeIndex, o = Xt(
|
|
3204
3244
|
t,
|
|
3205
3245
|
e,
|
|
3206
3246
|
this.cascadePolicy(),
|
|
@@ -3225,7 +3265,7 @@ class Xr {
|
|
|
3225
3265
|
*/
|
|
3226
3266
|
counterSelection() {
|
|
3227
3267
|
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
3228
|
-
const e =
|
|
3268
|
+
const e = Xt(
|
|
3229
3269
|
this.cascadeIndex,
|
|
3230
3270
|
this.cascadeCheckedAtoms,
|
|
3231
3271
|
"rolled-up",
|
|
@@ -3335,7 +3375,7 @@ class Xr {
|
|
|
3335
3375
|
*/
|
|
3336
3376
|
detectRTL() {
|
|
3337
3377
|
const e = this.element.getRootNode(), t = e instanceof ShadowRoot ? e.host : this.element, o = t.getAttribute("dir") === "rtl", i = t.closest('[dir="rtl"]') !== null;
|
|
3338
|
-
this.isRTL = o || i,
|
|
3378
|
+
this.isRTL = o || i, ft.debug(`[${this.instanceId}] RTL Debug:`, {
|
|
3339
3379
|
isShadowRoot: e instanceof ShadowRoot,
|
|
3340
3380
|
elementDir: t.getAttribute("dir"),
|
|
3341
3381
|
hasElementDir: o,
|
|
@@ -3361,7 +3401,7 @@ class Xr {
|
|
|
3361
3401
|
}
|
|
3362
3402
|
buildHTML() {
|
|
3363
3403
|
const e = this.options.container || document.body;
|
|
3364
|
-
this.detectRTL(), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"),
|
|
3404
|
+
this.detectRTL(), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"), ft.debug(`[${this.instanceId}] Added ms--rtl class to element`)), (!this.options.isCheckboxesShown || !this.options.isMultipleEnabled) && this.element.classList.add("ms--no-checkboxes"), this.options.isSelectedPopoverEnabled || this.element.classList.add("ms--no-selected-popover");
|
|
3365
3405
|
const t = document.createElement("div");
|
|
3366
3406
|
t.className = "ms__input-wrapper", this.inputWrapper = t, this.input = document.createElement("input"), this.input.type = "text", this.input.className = "ms__input", this.input.placeholder = this.getPlaceholderText(), this.input.autocomplete = "off", this.options.searchInputMode === "readonly" ? this.input.readOnly = !0 : this.options.searchInputMode === "hidden" && (this.input.style.display = "none");
|
|
3367
3407
|
const o = document.createElement("span");
|
|
@@ -3497,7 +3537,7 @@ class Xr {
|
|
|
3497
3537
|
}
|
|
3498
3538
|
const e = this.scaledOptionHeight(), t = this.options.virtualScrollBuffer ?? 10;
|
|
3499
3539
|
requestAnimationFrame(() => {
|
|
3500
|
-
this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new
|
|
3540
|
+
this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new Fs({
|
|
3501
3541
|
container: this.optionsContainer,
|
|
3502
3542
|
itemHeight: e,
|
|
3503
3543
|
items: this.filteredOptions,
|
|
@@ -3531,13 +3571,13 @@ class Xr {
|
|
|
3531
3571
|
if (!(d.getIsVisibleCallback ? d.getIsVisibleCallback(this) : d.isVisible ?? !0)) return;
|
|
3532
3572
|
let p;
|
|
3533
3573
|
d.getIsDisabledCallback ? p = d.getIsDisabledCallback(this) : d.isDisabled !== void 0 ? p = d.isDisabled : p = this.getBuiltInActionDisabled(d.action);
|
|
3534
|
-
const g = p ? " disabled" : "",
|
|
3535
|
-
let
|
|
3574
|
+
const g = p ? " disabled" : "", y = d.getTextCallback ? d.getTextCallback(this) : d.text;
|
|
3575
|
+
let w = "";
|
|
3536
3576
|
if (d.getClassCallback) {
|
|
3537
3577
|
const k = this.classSuffix(d.getClassCallback(this));
|
|
3538
|
-
k && (
|
|
3539
|
-
} else d.cssClass && (
|
|
3540
|
-
const b = Math.max(1, Math.floor(d.row ?? 1)), _ = `<button type="button"${g} class="ms__action-btn${
|
|
3578
|
+
k && (w = ` ${k}`);
|
|
3579
|
+
} else d.cssClass && (w = ` ${d.cssClass}`);
|
|
3580
|
+
const b = Math.max(1, Math.floor(d.row ?? 1)), _ = `<button type="button"${g} class="ms__action-btn${w}" data-action="${d.action}" data-button-index="${u}">${y}</button>`;
|
|
3541
3581
|
l.has(b) || l.set(b, []), l.get(b).push(_);
|
|
3542
3582
|
}), l.size === 0) return "";
|
|
3543
3583
|
const c = Array.from(l.keys()).sort((d, u) => d - u).map((d) => `<div class="ms__actions-row" data-row="${d}">${l.get(d).join("")}</div>`).join("");
|
|
@@ -3555,7 +3595,7 @@ class Xr {
|
|
|
3555
3595
|
isFocused: c,
|
|
3556
3596
|
isMatched: d,
|
|
3557
3597
|
isDisabled: a,
|
|
3558
|
-
...
|
|
3598
|
+
...jt(this.presentationMode),
|
|
3559
3599
|
isTreeNode: !1
|
|
3560
3600
|
};
|
|
3561
3601
|
p += this.toHtml(this.options.renderOptionContentCallback(e, g));
|
|
@@ -3582,28 +3622,28 @@ class Xr {
|
|
|
3582
3622
|
* chevron/toggle — every node is just a normal, selectable option.
|
|
3583
3623
|
*/
|
|
3584
3624
|
renderTreeNode(e, t) {
|
|
3585
|
-
const o = e.data, i = this.getItemValue(o), r = this.getItemDisplayValue(o), n = this.getItemIcon(o), a = this.getItemSubtitle(o), l = this.getItemDisabled(o), c = this.isCascadeMode() && this.cascadeIndex, d = c ?
|
|
3586
|
-
_.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), u && _.push("ms__option--selected"), f && _.push("ms__option--indeterminate"), p && _.push("ms__option--focused"), g && _.push("ms__option--matched"), l && _.push("ms__option--disabled"),
|
|
3587
|
-
const k = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", E =
|
|
3588
|
-
let A = `<div class="${_.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${
|
|
3589
|
-
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled &&
|
|
3625
|
+
const o = e.data, i = this.getItemValue(o), r = this.getItemDisplayValue(o), n = this.getItemIcon(o), a = this.getItemSubtitle(o), l = this.getItemDisabled(o), c = this.isCascadeMode() && this.cascadeIndex, d = c ? xs(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, u = c ? d === "checked" : this.selectedValues.has(String(i)), f = d === "indeterminate", p = t === this.focusedIndex, g = this.matchingIndices.has(t), y = e.isSelectable !== !1, w = e.level ?? 1, b = Math.max(0, w - 1), _ = ["ms__option", "ms__option--tree"];
|
|
3626
|
+
_.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), u && _.push("ms__option--selected"), f && _.push("ms__option--indeterminate"), p && _.push("ms__option--focused"), g && _.push("ms__option--matched"), l && _.push("ms__option--disabled"), y || _.push("ms__option--tree-unselectable");
|
|
3627
|
+
const k = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", E = y ? "" : ' data-selectable="false"';
|
|
3628
|
+
let A = `<div class="${_.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${w}" style="--ms-tree-depth: ${b};"${k}${E}>`;
|
|
3629
|
+
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && y && (A += `<input type="checkbox" class="${f ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${u ? "checked" : ""}${f ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), A += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
|
|
3590
3630
|
const $ = {
|
|
3591
3631
|
index: t,
|
|
3592
3632
|
isSelected: u,
|
|
3593
3633
|
isFocused: p,
|
|
3594
3634
|
isMatched: g,
|
|
3595
3635
|
isDisabled: l,
|
|
3596
|
-
...
|
|
3636
|
+
...jt(this.presentationMode),
|
|
3597
3637
|
// Tree metadata — lets the callback branch on depth / branch-vs-leaf /
|
|
3598
3638
|
// tristate without re-deriving any of it from the raw data item.
|
|
3599
3639
|
isTreeNode: !0,
|
|
3600
3640
|
isBranch: e.hasChildren,
|
|
3601
3641
|
isLeaf: !e.hasChildren,
|
|
3602
3642
|
childCount: Object.keys(e.children).length,
|
|
3603
|
-
level:
|
|
3643
|
+
level: w,
|
|
3604
3644
|
depth: b,
|
|
3605
3645
|
path: e.path,
|
|
3606
|
-
isSelectable:
|
|
3646
|
+
isSelectable: y,
|
|
3607
3647
|
isIndeterminate: f
|
|
3608
3648
|
};
|
|
3609
3649
|
A += this.toHtml(this.options.renderOptionContentCallback(o, $));
|
|
@@ -3727,7 +3767,7 @@ class Xr {
|
|
|
3727
3767
|
this.options.isSearchEnabled && !h(this, D) && this.open(), this.handleSearch(t);
|
|
3728
3768
|
}), this.input.addEventListener("keydown", (e) => this.handleKeydown(e)), this.documentClickHandler = (e) => this.handleClickOutside(e), setTimeout(() => {
|
|
3729
3769
|
document.addEventListener("click", this.documentClickHandler);
|
|
3730
|
-
}, 0), this.documentKeydownHandler = (e) => {
|
|
3770
|
+
}, 0), this.overlayCoord = Ui(() => this.close(), this.options.overlayGroup || void 0), this.documentKeydownHandler = (e) => {
|
|
3731
3771
|
e.key === "Escape" && this.showSelectedPopover && (e.preventDefault(), this.hideSelectedPopover());
|
|
3732
3772
|
}, document.addEventListener("keydown", this.documentKeydownHandler), this.dropdown.addEventListener("mousedown", (e) => {
|
|
3733
3773
|
if (this.presentationMode !== "fullscreen") return;
|
|
@@ -4147,7 +4187,7 @@ class Xr {
|
|
|
4147
4187
|
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
4148
4188
|
const i = this.cascadeIndex.nodeByValue.get(o);
|
|
4149
4189
|
if (i) {
|
|
4150
|
-
const r = this.cascadeIndex.atomsUnder.get(i.path) ?? [], n = new Set(
|
|
4190
|
+
const r = this.cascadeIndex.atomsUnder.get(i.path) ?? [], n = new Set(Ye(this.cascadeIndex, this.selectedValues));
|
|
4151
4191
|
for (const a of r) n.delete(a);
|
|
4152
4192
|
this.commitCascadeAtoms(n);
|
|
4153
4193
|
return;
|
|
@@ -4157,7 +4197,7 @@ class Xr {
|
|
|
4157
4197
|
}
|
|
4158
4198
|
selectAll() {
|
|
4159
4199
|
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
4160
|
-
const t = this.cascadeIndex, o = new Set(
|
|
4200
|
+
const t = this.cascadeIndex, o = new Set(Ye(t, this.selectedValues));
|
|
4161
4201
|
for (const i of this.treeNodes)
|
|
4162
4202
|
t.atomPaths.has(i.path) && (this.getItemDisabled(i.data) || o.add(String(this.getItemValue(i.data))));
|
|
4163
4203
|
this.commitCascadeAtoms(o);
|
|
@@ -4206,13 +4246,15 @@ class Xr {
|
|
|
4206
4246
|
}
|
|
4207
4247
|
/** Open the dropdown (no-op if already open, or if there is nothing to show). */
|
|
4208
4248
|
open() {
|
|
4249
|
+
var e;
|
|
4209
4250
|
J.debug(`[${this.instanceId}] open() called`, { isOpen: h(this, D) }), !h(this, D) && (this.justOpenedViaClick = !0, setTimeout(() => {
|
|
4210
4251
|
this.justOpenedViaClick = !1;
|
|
4211
|
-
}, 0), this.hideMessage(), I(this, D, !0), this.element.classList.add("ms--open"), this.dropdown.classList.add("ms__dropdown--visible"), J.info(`[${this.instanceId}] Dropdown opened`), this.input.placeholder = this.getPlaceholderText(), !this.options.isMultipleEnabled && this.options.isSearchEnabled && (this.input.value = this.searchTerm), this.options.searchCallback && this.options.isKeepOptionsOnSearch && !this.searchTerm && (this.filteredOptions = [...this.allOptions], J.debug(`[${this.instanceId}] Showing ${this.allOptions.length} initial options on open`)), this.presentationMode === "fullscreen" && this.enterFullscreen(), this.renderDropdown(), this.presentationMode !== "fullscreen" && this.positionDropdown(), this.dropdown.addEventListener("scroll", this.onDropdownScroll, !0), this.hint && this.presentationMode === "floating" && (this.hint.classList.add("ms__hint--visible"), this.positionHint()));
|
|
4252
|
+
}, 0), this.hideMessage(), I(this, D, !0), this.element.classList.add("ms--open"), this.dropdown.classList.add("ms__dropdown--visible"), J.info(`[${this.instanceId}] Dropdown opened`), this.input.placeholder = this.getPlaceholderText(), !this.options.isMultipleEnabled && this.options.isSearchEnabled && (this.input.value = this.searchTerm), this.options.searchCallback && this.options.isKeepOptionsOnSearch && !this.searchTerm && (this.filteredOptions = [...this.allOptions], J.debug(`[${this.instanceId}] Showing ${this.allOptions.length} initial options on open`)), this.presentationMode === "fullscreen" && this.enterFullscreen(), this.renderDropdown(), this.presentationMode !== "fullscreen" && this.positionDropdown(), this.dropdown.addEventListener("scroll", this.onDropdownScroll, !0), this.hint && this.presentationMode === "floating" && (this.hint.classList.add("ms__hint--visible"), this.positionHint()), (e = this.overlayCoord) == null || e.activate());
|
|
4212
4253
|
}
|
|
4213
4254
|
/** Close the dropdown (no-op if already closed). */
|
|
4214
4255
|
close() {
|
|
4215
|
-
|
|
4256
|
+
var e;
|
|
4257
|
+
J.debug(`[${this.instanceId}] close() called`, { isOpen: h(this, D) }), h(this, D) && (I(this, D, !1), this.element.classList.remove("ms--open"), this.dropdown.classList.remove("ms__dropdown--visible"), this.hint && this.hint.classList.remove("ms__hint--visible"), this.options.shouldKeepSearchOnClose || (this.searchTerm = "", (this.options.isMultipleEnabled || this.options.isSearchEnabled) && (this.input.value = ""), this.resetVisibleToAll()), this.focusedIndex = -1, this.dropdown.removeEventListener("scroll", this.onDropdownScroll, !0), this.destroyAllOptionTooltips(), this.hideLabelReveal(), this.hideMessage(), this.renderBadges(), this.dropdownCleanup && (this.dropdownCleanup(), this.dropdownCleanup = null), this.hintCleanup && (this.hintCleanup(), this.hintCleanup = null), this.exitFullscreen(), this.dropdownPlacement = null, (e = this.overlayCoord) == null || e.deactivate(), J.debug(`[${this.instanceId}] Dropdown closed`));
|
|
4216
4258
|
}
|
|
4217
4259
|
/** Toggle the dropdown open/closed. */
|
|
4218
4260
|
toggle() {
|
|
@@ -4234,7 +4276,7 @@ class Xr {
|
|
|
4234
4276
|
*/
|
|
4235
4277
|
anchorFloatingPanel(e, t) {
|
|
4236
4278
|
var r;
|
|
4237
|
-
const o = ((r = t.isLocked) == null ? void 0 : r.call(t)) ?? !0, i =
|
|
4279
|
+
const o = ((r = t.isLocked) == null ? void 0 : r.call(t)) ?? !0, i = et(e, this.inputWrapper, {
|
|
4238
4280
|
strategy: "fixed",
|
|
4239
4281
|
placement: "bottom-start",
|
|
4240
4282
|
offset: 4,
|
|
@@ -4304,10 +4346,10 @@ class Xr {
|
|
|
4304
4346
|
*/
|
|
4305
4347
|
warnFullscreenContainingBlock() {
|
|
4306
4348
|
if (this.fullscreenContainingBlockWarned || typeof window > "u") return;
|
|
4307
|
-
const e =
|
|
4349
|
+
const e = os(this.dropdown);
|
|
4308
4350
|
if (e === window) return;
|
|
4309
4351
|
this.fullscreenContainingBlockWarned = !0;
|
|
4310
|
-
const t = e, o = t.id ? `#${t.id}` : "", i = t.classList.length ? `.${Array.from(t.classList).join(".")}` : "", r = `<${t.tagName.toLowerCase()}${o}${i}>`, n =
|
|
4352
|
+
const t = e, o = t.id ? `#${t.id}` : "", i = t.classList.length ? `.${Array.from(t.classList).join(".")}` : "", r = `<${t.tagName.toLowerCase()}${o}${i}>`, n = To(t);
|
|
4311
4353
|
console.warn(
|
|
4312
4354
|
`[@keenmate/web-multiselect] Fullscreen overlay is anchored to an ancestor ${r}` + (n ? ` (has ${n})` : "") + ` instead of the viewport, so it may not cover the screen (offset, clipped, or mis-sized).
|
|
4313
4355
|
An ancestor of <web-multiselect> establishes a fixed-positioning containing block (transform / perspective / filter / backdrop-filter / will-change). Fix on your side: move the component out of that ancestor's subtree, OR remove/replace that property. If neither is acceptable, please file an issue at https://github.com/keenmate/web-multiselect/issues with the ancestor's computed CSS.`
|
|
@@ -4345,7 +4387,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4345
4387
|
* and a redundant call is a no-op rather than acquiring a second.
|
|
4346
4388
|
*/
|
|
4347
4389
|
lockBodyScroll() {
|
|
4348
|
-
this.bodyScrollUnlock || (this.bodyScrollUnlock =
|
|
4390
|
+
this.bodyScrollUnlock || (this.bodyScrollUnlock = Ri());
|
|
4349
4391
|
}
|
|
4350
4392
|
/** Restore page scroll (no-op if it wasn't locked). */
|
|
4351
4393
|
unlockBodyScroll() {
|
|
@@ -4384,7 +4426,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4384
4426
|
* we just hold the returned cleanup. No-op where `visualViewport` is unavailable.
|
|
4385
4427
|
*/
|
|
4386
4428
|
observeKeyboardInset() {
|
|
4387
|
-
this.keyboardInsetCleanup =
|
|
4429
|
+
this.keyboardInsetCleanup = Bi(this.dropdown);
|
|
4388
4430
|
}
|
|
4389
4431
|
/** Detach keyboard-inset tracking and restore the panel's CSS-driven geometry. */
|
|
4390
4432
|
unobserveKeyboardInset() {
|
|
@@ -4590,7 +4632,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4590
4632
|
this.hintCleanup && this.hintCleanup();
|
|
4591
4633
|
let e = "top-start";
|
|
4592
4634
|
this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom")));
|
|
4593
|
-
const t =
|
|
4635
|
+
const t = et(this.hint, this.inputWrapper, {
|
|
4594
4636
|
strategy: "fixed",
|
|
4595
4637
|
placement: e,
|
|
4596
4638
|
offset: 4,
|
|
@@ -4676,7 +4718,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4676
4718
|
if (!this.selectedPopoverContainer) return;
|
|
4677
4719
|
const o = this.scaledBadgeHeight(), i = Math.round(4 * this.fullscreenScale()), r = o + i, n = this.options.virtualScrollBuffer ?? 10;
|
|
4678
4720
|
requestAnimationFrame(() => {
|
|
4679
|
-
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new
|
|
4721
|
+
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Fs({
|
|
4680
4722
|
container: this.selectedPopoverContainer,
|
|
4681
4723
|
itemHeight: r,
|
|
4682
4724
|
items: e,
|
|
@@ -4718,7 +4760,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4718
4760
|
renderBadgeHTML(e, t) {
|
|
4719
4761
|
const o = this.getItemValue(e), i = {
|
|
4720
4762
|
...t,
|
|
4721
|
-
...
|
|
4763
|
+
...jt(this.presentationMode)
|
|
4722
4764
|
};
|
|
4723
4765
|
if (!t.isInPopover && this.options.renderBadgeCallback) {
|
|
4724
4766
|
const d = this.toHtml(this.options.renderBadgeCallback(e, i));
|
|
@@ -4828,9 +4870,9 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4828
4870
|
if (t !== o) return !1;
|
|
4829
4871
|
Object.assign(this.options, e);
|
|
4830
4872
|
const i = "pathMember" in e || "getPathCallback" in e || "parentPathMember" in e || "levelMember" in e || "hasChildrenMember" in e || "treePathSeparator" in e || "isTreeEnabled" in e || "isSelectableMember" in e || "getIsSelectableCallback" in e;
|
|
4831
|
-
if ("options" in e && e.options !== void 0 ? (this.allOptions = e.options, this.reconcileSelectedOptions(), this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]) : i && (this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]), ("checkboxMode" in e || "cascadeSelectPolicy" in e) && !i && !("options" in e) && this.isTreeMode() && (this.cascadeIndex = this.isCascadeMode() ?
|
|
4832
|
-
this.cascadeCheckedAtoms =
|
|
4833
|
-
const a =
|
|
4873
|
+
if ("options" in e && e.options !== void 0 ? (this.allOptions = e.options, this.reconcileSelectedOptions(), this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]) : i && (this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]), ("checkboxMode" in e || "cascadeSelectPolicy" in e) && !i && !("options" in e) && this.isTreeMode() && (this.cascadeIndex = this.isCascadeMode() ? Us(this.tree, (a) => String(this.getItemValue(a))) : null, this.isCascadeMode() && this.cascadeIndex)) {
|
|
4874
|
+
this.cascadeCheckedAtoms = Ye(this.cascadeIndex, this.selectedValues);
|
|
4875
|
+
const a = Xt(
|
|
4834
4876
|
this.cascadeIndex,
|
|
4835
4877
|
this.cascadeCheckedAtoms,
|
|
4836
4878
|
this.cascadePolicy(),
|
|
@@ -4885,7 +4927,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
|
|
|
4885
4927
|
spawnTooltip(e) {
|
|
4886
4928
|
var r;
|
|
4887
4929
|
(r = this.tooltips.get(e.id)) == null || r.destroy();
|
|
4888
|
-
const t = this.element.getRootNode(), o = t instanceof ShadowRoot ? t : null, i =
|
|
4930
|
+
const t = this.element.getRootNode(), o = t instanceof ShadowRoot ? t : null, i = tn({
|
|
4889
4931
|
trigger: e.trigger,
|
|
4890
4932
|
container: this.options.container ?? o ?? document.body,
|
|
4891
4933
|
content: e.content,
|
|
@@ -5032,7 +5074,7 @@ ${o}` : t;
|
|
|
5032
5074
|
const n = document.createElement("div");
|
|
5033
5075
|
n.className = "ms__option-tooltip ms__option-tooltip--fullscreen", typeof r == "string" ? n.textContent = r : n.appendChild(r);
|
|
5034
5076
|
const a = this.element.getRootNode(), l = a instanceof ShadowRoot ? a : null, c = this.options.container ?? l ?? document.body;
|
|
5035
|
-
this.labelRevealTrigger = e, this.labelRevealPanel = n, this.labelRevealPopover =
|
|
5077
|
+
this.labelRevealTrigger = e, this.labelRevealPanel = n, this.labelRevealPopover = sn({
|
|
5036
5078
|
reference: e,
|
|
5037
5079
|
panel: n,
|
|
5038
5080
|
container: c,
|
|
@@ -5067,7 +5109,7 @@ ${o}` : t;
|
|
|
5067
5109
|
if ((this.options.container ?? l ?? document.body).appendChild(n), this.messageEl = n, this.presentationMode === "fullscreen" && (h(this, D) || this.showSelectedPopover))
|
|
5068
5110
|
n.classList.add("ms__message--fullscreen");
|
|
5069
5111
|
else {
|
|
5070
|
-
const u =
|
|
5112
|
+
const u = et(n, this.inputWrapper, {
|
|
5071
5113
|
strategy: "fixed",
|
|
5072
5114
|
placement: (t == null ? void 0 : t.placement) ?? "bottom",
|
|
5073
5115
|
offset: 8,
|
|
@@ -5140,11 +5182,12 @@ ${o}` : t;
|
|
|
5140
5182
|
// PUBLIC API
|
|
5141
5183
|
// ========================================================================
|
|
5142
5184
|
destroy() {
|
|
5143
|
-
|
|
5185
|
+
var e;
|
|
5186
|
+
this.destroyAllTooltips(), this.hideLabelReveal(), this.hideMessage(), this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0), this.abortInFlightSearch(), this.dropdownCleanup && this.dropdownCleanup(), this.hintCleanup && this.hintCleanup(), this.selectedPopoverCleanup && this.selectedPopoverCleanup(), this.overlayHistoryActive && (this.overlayHistoryActive = !1, typeof window < "u" && window.removeEventListener("popstate", this.onOverlayPopstate)), this.exitFullscreen(), this.documentClickHandler && (document.removeEventListener("click", this.documentClickHandler), this.documentClickHandler = null), this.documentKeydownHandler && (document.removeEventListener("keydown", this.documentKeydownHandler), this.documentKeydownHandler = null), (e = this.overlayCoord) == null || e.dispose(), this.overlayCoord = null, this.virtualScroll && (this.virtualScroll.destroy(), this.virtualScroll = null), this.dropdown && this.dropdown.remove(), this.hint && this.hint.remove(), this.selectedPopover && this.selectedPopover.remove(), this.element.innerHTML = "", this.element.classList.remove("ms", "ms--open", "ms--no-checkboxes"), ft.info(`[${this.instanceId}] Component destroyed`);
|
|
5144
5187
|
}
|
|
5145
5188
|
}
|
|
5146
5189
|
D = new WeakMap();
|
|
5147
|
-
function
|
|
5190
|
+
function cn() {
|
|
5148
5191
|
return {
|
|
5149
5192
|
fromAttribute(s) {
|
|
5150
5193
|
if (s === null || s.trim() === "") return [];
|
|
@@ -5165,29 +5208,29 @@ function Yr() {
|
|
|
5165
5208
|
}
|
|
5166
5209
|
};
|
|
5167
5210
|
}
|
|
5168
|
-
const
|
|
5211
|
+
const dn = ["json", "csv", "plain"], Gs = ",", qs = `
|
|
5169
5212
|
`;
|
|
5170
|
-
function
|
|
5213
|
+
function hn(s, e, t = {}) {
|
|
5171
5214
|
if (s == null || s.trim() === "") return { options: [] };
|
|
5172
|
-
const o =
|
|
5215
|
+
const o = Xs(t.splitter ?? Gs) || Gs, i = Xs(t.rowSplitter ?? qs) || qs;
|
|
5173
5216
|
switch (e) {
|
|
5174
5217
|
case "csv":
|
|
5175
|
-
return
|
|
5218
|
+
return pn(s, o, i);
|
|
5176
5219
|
case "plain":
|
|
5177
|
-
return
|
|
5220
|
+
return mn(s, o, i);
|
|
5178
5221
|
case "json":
|
|
5179
5222
|
default:
|
|
5180
|
-
return
|
|
5223
|
+
return un(s);
|
|
5181
5224
|
}
|
|
5182
5225
|
}
|
|
5183
|
-
function
|
|
5226
|
+
function Xs(s) {
|
|
5184
5227
|
return s.replace(
|
|
5185
5228
|
/\\[ntr\\]/g,
|
|
5186
5229
|
(e) => e === "\\n" ? `
|
|
5187
5230
|
` : e === "\\t" ? " " : e === "\\r" ? "\r" : "\\"
|
|
5188
5231
|
);
|
|
5189
5232
|
}
|
|
5190
|
-
function
|
|
5233
|
+
function un(s) {
|
|
5191
5234
|
let e;
|
|
5192
5235
|
try {
|
|
5193
5236
|
e = JSON.parse(s);
|
|
@@ -5196,11 +5239,11 @@ function Zr(s) {
|
|
|
5196
5239
|
}
|
|
5197
5240
|
return Array.isArray(e) ? { options: e } : { options: [], error: "data-options JSON must be an array" };
|
|
5198
5241
|
}
|
|
5199
|
-
function
|
|
5242
|
+
function mn(s, e, t) {
|
|
5200
5243
|
return { options: s.split(t).flatMap((i) => i.split(e)).map((i) => i.trim()).filter((i) => i.length > 0).map((i) => [i, i]) };
|
|
5201
5244
|
}
|
|
5202
|
-
function
|
|
5203
|
-
const o =
|
|
5245
|
+
function pn(s, e, t) {
|
|
5246
|
+
const o = fn(s, e, t).filter((n) => !(n.length === 1 && n[0].trim() === ""));
|
|
5204
5247
|
if (o.length < 2)
|
|
5205
5248
|
return { options: [], error: "data-options CSV needs a header row and at least one data row" };
|
|
5206
5249
|
const i = o[0].map((n) => n.trim());
|
|
@@ -5211,7 +5254,7 @@ function tn(s, e, t) {
|
|
|
5211
5254
|
}), a;
|
|
5212
5255
|
}) };
|
|
5213
5256
|
}
|
|
5214
|
-
function
|
|
5257
|
+
function fn(s, e, t) {
|
|
5215
5258
|
const o = [];
|
|
5216
5259
|
let i = [], r = "", n = !1;
|
|
5217
5260
|
for (let a = 0; a < s.length; ) {
|
|
@@ -5224,7 +5267,7 @@ function sn(s, e, t) {
|
|
|
5224
5267
|
}
|
|
5225
5268
|
return i.push(r), o.push(i), o;
|
|
5226
5269
|
}
|
|
5227
|
-
const _o = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#cbd5e1, #52525b));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-toggle-icon-size: calc(1.6 * var(--ms-rem));--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: var(--ms-primary-bg-hover);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-remove-bg: var(--ms-text-color-3);--ms-badge-counter-remove-bg-hover: var(--ms-text-color-1);--ms-badge-counter-remove-color: var(--ms-text-color-on-accent);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-count-clear-bg-hover: var(--ms-accent-color);--ms-tooltip-bg: var(--base-tooltip-bg, var(--base-inverse-bg, light-dark(#333333, #f5f5f5)));--ms-tooltip-text-color: var(--base-tooltip-text-color, light-dark(#ffffff, #1a1a1a));--ms-selected-popover-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-gap: calc(.6 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: rgba(107, 114, 128, .05);--ms-toggle-color: var(--ms-text-color-3);--ms-transform-rotate-180: 180deg;--ms-input-clear-size: calc(2.4 * var(--ms-rem));--ms-input-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-input-clear-color: var(--ms-text-secondary);--ms-input-clear-bg-hover: var(--ms-option-bg-matched, transparent);--ms-input-clear-border-radius: var(--ms-border-radius);--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-inner-border-radius: max(0px, calc(var(--ms-dropdown-border-radius) - 1px));--ms-dropdown-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-input-current-width: auto;--ms-dropdown-width: var(--ms-input-current-width);--ms-options-max-height: calc(32 * var(--ms-rem));--ms-option-color: var(--ms-text-color-1);--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-z-index-fullscreen: 10001;--ms-z-index-fullscreen-tooltip: 10002;--ms-fullscreen-rem: 12px;--ms-fullscreen-bg: var(--ms-dropdown-bg);--ms-fullscreen-text-color: var(--ms-dropdown-text-color);--ms-fullscreen-header-bg: var(--ms-dropdown-bg);--ms-fullscreen-header-border: 1px solid var(--ms-dropdown-border-color);--ms-fullscreen-header-gap: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-v: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-h: calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding: var(--ms-fullscreen-header-padding-v) var(--ms-fullscreen-header-padding-h);--ms-fullscreen-header-min-height: calc(5.6 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-size: calc(1.7 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-weight: var(--base-font-weight-semibold, 600);--ms-fullscreen-search-border: var(--ms-input-border);--ms-fullscreen-search-border-radius: var(--ms-input-border-radius);--ms-fullscreen-search-padding: calc(.8 * var(--ms-fullscreen-rem)) calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-search-font-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-icon-size: calc(1.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-inset: calc(.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-gutter: calc(3.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-search-clear-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-mode-toggle-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-icon-size: calc(1.5 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-gap: var(--ms-fullscreen-header-gap);--ms-fullscreen-mode-toggle-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-mode-toggle-bg: transparent;--ms-fullscreen-mode-toggle-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-size: calc(3.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-color: var(--ms-dropdown-text-color);--ms-fullscreen-close-bg: transparent;--ms-fullscreen-close-border: none;--ms-fullscreen-close-border-radius: 50%;--ms-fullscreen-close-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-edge-nudge: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-icon-size: calc(1.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-color: var(--ms-accent-color);--ms-fullscreen-info-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-gap: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-padding-top: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-font-size: calc(1.3 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-nav-btn-size: calc(3.2 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-color: var(--ms-dropdown-text-color);--ms-fullscreen-nav-btn-bg: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-btn-bg-hover: color-mix(in srgb, var(--ms-accent-color) 22%, transparent);--ms-icon-chevron: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 15l7-7 7 7' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");--ms-icon-info: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.3' fill='black'/><path d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");--ms-fullscreen-tree-base-indent: calc(.7 * var(--ms-fullscreen-rem));--ms-fullscreen-tree-indent: calc(1.2 * var(--ms-fullscreen-rem));--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: 0;--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18'/><path d='m6 6 12 12'/></svg>");--ms-icon-search-clear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m13.5 8.5-5 5'/><path d='m8.5 8.5 5 5'/><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-search: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--ms-icon-remove);--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-message-bg: var(--ms-message-info-bg);--ms-message-color: var(--ms-message-info-color);--ms-message-border: 1px solid transparent;--ms-message-border-radius: var(--ms-border-radius-lg);--ms-message-padding: calc(1 * var(--ms-rem)) calc(1.4 * var(--ms-rem));--ms-message-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-message-font-weight: var(--base-font-weight-medium, 500);--ms-message-max-width: calc(40 * var(--ms-rem));--ms-message-shadow: 0 4px 16px rgb(0 0 0 / .18);--ms-message-fullscreen-offset: calc(2.4 * var(--ms-fullscreen-rem));--ms-message-z-index: var(--ms-z-index-fullscreen-tooltip);--ms-message-info-bg: var(--ms-tooltip-bg);--ms-message-info-color: var(--ms-tooltip-text-color);--ms-message-warning-bg: var(--base-warning-bg, #f59e0b);--ms-message-warning-color: var(--base-warning-color, #1a1a1a);--ms-message-error-bg: var(--base-danger-bg, #ef4444);--ms-message-error-color: var(--base-danger-color, #ffffff);--ms-message-success-bg: var(--base-success-bg, #10b981);--ms-message-success-color: var(--base-success-color, #ffffff);--ms-z-index-popover: 10000;--ms-selected-popover-width: var(--ms-input-current-width);--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}:host{-webkit-tap-highlight-color:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{box-sizing:border-box;position:relative;display:flex;align-items:center;gap:var(--ms-input-gap);height:var(--ms-input-height);padding-inline:var(--ms-input-padding-h);background:var(--ms-input-bg);color:var(--ms-input-color);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-wrapper:hover:not(:focus-within){border:var(--ms-input-border-hover)}.ms__input-wrapper:focus-within{border:var(--ms-input-border-focus)}.ms__input{flex:1 1 auto;min-width:0;box-sizing:border-box;font-family:inherit;height:100%;padding:0;border:none;background:transparent;font-size:var(--ms-input-font-size);color:var(--ms-input-color);cursor:pointer;outline:none}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__toggle{flex:0 0 auto;display:block;width:var(--ms-toggle-icon-size);height:var(--ms-toggle-icon-size);color:var(--ms-toggle-icon-color);cursor:pointer}.ms__toggle:before{content:"";display:block;width:100%;height:100%;background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat;transform:rotate(var(--ms-transform-rotate-180));transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{color:var(--ms-toggle-icon-color-open)}.ms--open .ms__toggle:before{transform:rotate(0)}.ms__counter{flex:0 0 auto;padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:scale(var(--ms-transform-scale-hover))}.ms__input-clear{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-input-clear-size);height:var(--ms-input-clear-size);padding:0;color:var(--ms-input-clear-color);background:transparent;border:none;border-radius:var(--ms-input-clear-border-radius);cursor:pointer;transition:background var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-clear:hover{background:var(--ms-input-clear-bg-hover)}.ms__input-clear:before{content:"";display:block;width:var(--ms-input-clear-icon-size);height:var(--ms-input-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}.ms__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}@media (hover: hover){.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);width:var(--ms-dropdown-width);max-height:var(--ms-options-max-height);overflow:hidden;color:var(--ms-dropdown-text-color)}.ms__dropdown--visible{display:flex;flex-direction:column}.ms__dropdown--fullscreen,.ms__selected-popover--fullscreen{--ms-rem: var(--ms-fullscreen-rem);--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tree-base-indent: var(--ms-fullscreen-tree-base-indent);--ms-tree-indent: var(--ms-fullscreen-tree-indent)}.ms__selected-popover--fullscreen{--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(4.2 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-badge-text-padding: 0 calc(1.2 * var(--ms-rem));--ms-badge-remove-width: calc(3.6 * var(--ms-rem));--ms-badge-remove-icon-size: calc(1.2 * var(--ms-rem));--ms-badge-remove-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-padding: calc(.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{position:fixed;top:0;inset-inline-start:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;--ms-dropdown-inner-border-radius: 0;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__dropdown--fullscreen .ms__dropdown-inner{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}.ms__dropdown--fullscreen .ms__options{flex:1 1 0;min-height:0;height:auto;max-height:none;overflow-y:auto;padding-bottom:var(--ms-option-gap)}.ms__dropdown--fullscreen .ms__actions{flex:0 0 auto}.ms__fullscreen-header,.ms__selected-popover--fullscreen .ms__selected-popover-header{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--ms-fullscreen-header-gap);min-height:var(--ms-fullscreen-header-min-height);padding:var(--ms-fullscreen-header-padding);background:var(--ms-fullscreen-header-bg);border-bottom:var(--ms-fullscreen-header-border)}.ms__fullscreen-header{align-content:flex-start}.ms__fullscreen-header>.ms__fullscreen-search-wrapper{min-height:var(--ms-fullscreen-header-min-height)}.ms__fullscreen-nav{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ms-fullscreen-nav-gap);padding-top:var(--ms-fullscreen-nav-padding-top)}.ms__fullscreen-nav-count{font-size:var(--ms-fullscreen-nav-count-font-size);color:var(--ms-fullscreen-nav-count-color)}.ms__fullscreen-nav-controls{display:flex;align-items:center;gap:var(--ms-fullscreen-nav-gap)}.ms__fullscreen-nav-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-nav-btn-size);height:var(--ms-fullscreen-nav-btn-size);padding:0;color:var(--ms-fullscreen-nav-btn-color);background:var(--ms-fullscreen-nav-btn-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-nav-btn:hover:not(:disabled){background:var(--ms-fullscreen-nav-btn-bg-hover)}.ms__fullscreen-nav-btn:disabled{opacity:.4;cursor:default}.ms__fullscreen-nav-btn:before{content:"";display:block;width:var(--ms-fullscreen-nav-btn-icon-size);height:var(--ms-fullscreen-nav-btn-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat}.ms__fullscreen-nav-btn--next:before{transform:scaleY(-1)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 0;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex;align-items:center}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-mode-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-mode-toggle-size);height:var(--ms-fullscreen-mode-toggle-size);margin-inline-end:var(--ms-fullscreen-mode-toggle-gap);margin-inline-start:calc((var(--ms-fullscreen-close-size) - var(--ms-fullscreen-mode-toggle-size)) / 2 - var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-mode-toggle-color);background:var(--ms-fullscreen-mode-toggle-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-mode-toggle:hover{background:var(--ms-fullscreen-mode-toggle-bg-hover)}.ms__fullscreen-mode-toggle:before{content:"";display:block;width:var(--ms-fullscreen-mode-toggle-icon-size);height:var(--ms-fullscreen-mode-toggle-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat;mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat}.ms__fullscreen-mode-toggle[data-mode=navigate]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-search)}.ms__fullscreen-mode-toggle[data-mode=filter]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-filter)}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;border-radius:var(--ms-dropdown-inner-border-radius);overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow:hidden}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip--fullscreen{z-index:var(--ms-z-index-fullscreen-tooltip)}.ms__message{position:fixed;z-index:var(--ms-message-z-index);box-sizing:border-box;max-width:var(--ms-message-max-width);padding:var(--ms-message-padding);font-family:inherit;font-size:var(--ms-message-font-size);font-weight:var(--ms-message-font-weight);line-height:var(--ms-line-height-normal);color:var(--ms-message-color);background:var(--ms-message-bg);border:var(--ms-message-border);border-radius:var(--ms-message-border-radius);box-shadow:var(--ms-message-shadow);cursor:pointer;opacity:0;transition:opacity var(--ms-transition-normal) ease;-webkit-tap-highlight-color:transparent}.ms__message--visible{opacity:1}.ms__message--info{background:var(--ms-message-info-bg);color:var(--ms-message-info-color)}.ms__message--warning{background:var(--ms-message-warning-bg);color:var(--ms-message-warning-color)}.ms__message--error{background:var(--ms-message-error-bg);color:var(--ms-message-error-color)}.ms__message--success{background:var(--ms-message-success-bg);color:var(--ms-message-success-color)}.ms__message--fullscreen{left:50%;right:auto;bottom:calc(var(--ms-message-fullscreen-offset) + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(var(--ms-message-max-width),calc(100vw - 4 * var(--ms-fullscreen-rem)));padding:calc(1 * var(--ms-fullscreen-rem)) calc(1.4 * var(--ms-fullscreen-rem));font-size:calc(var(--base-font-size-sm, 1.4) * var(--ms-fullscreen-rem))}.ms__selected-popover{display:none;position:fixed;z-index:var(--ms-z-index-popover);background:var(--ms-selected-popover-bg);border:var(--ms-selected-popover-border);border-radius:var(--ms-selected-popover-border-radius);box-shadow:var(--ms-selected-popover-box-shadow);width:var(--ms-selected-popover-width);max-height:var(--ms-selected-popover-max-height);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;overflow:hidden;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__selected-popover--fullscreen .ms__selected-popover-body{flex:1 1 0;min-height:0;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding);background:var(--ms-selected-popover-header-bg);border-bottom:var(--ms-selected-popover-header-border-bottom);font-size:var(--ms-selected-popover-header-font-size);font-weight:var(--ms-selected-popover-header-font-weight);color:var(--ms-selected-popover-header-color)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size);height:var(--ms-popover-close-size);padding:0;border:none;background:var(--ms-selected-popover-close-bg);color:var(--ms-selected-popover-close-color);font-size:var(--ms-selected-popover-close-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-bg-hover);color:var(--ms-selected-popover-close-color-hover)}.ms__selected-popover-close:before{content:"";display:block;width:var(--ms-selected-popover-close-icon-size);height:var(--ms-selected-popover-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap);padding:var(--ms-selected-popover-body-padding);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__selected-popover-body::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__selected-popover-body::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed);flex-shrink:0}.ms__selected-popover-body .ms__badge-text{flex:1;min-width:0;white-space:normal;word-wrap:break-word}.ms__selected-popover-body--virtual{display:block;max-height:none;padding:0}.ms__selected-popover-body--virtual .ms__badge{height:var(--ms-badge-height-virtual, 36px);min-height:var(--ms-badge-height-virtual, 36px);max-height:var(--ms-badge-height-virtual, 36px);margin-bottom:var(--ms-selected-popover-body-gap);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer component{.ms--disabled .ms__input-wrapper{opacity:var(--ms-disabled-input-opacity);background:var(--ms-input-bg-disabled);cursor:not-allowed}.ms--disabled .ms__input{cursor:not-allowed}.ms--no-checkboxes .ms__option{gap:0;padding-inline-start:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-inline-start:0}.ms--no-selected-popover .ms__counter,.ms--no-selected-popover .ms__badge[data-action=show-selected],.ms--no-selected-popover .ms__badge--counter,.ms--no-selected-popover .ms__badge--more{cursor:default}}@layer component;@layer component{.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top);order:var(--ms-order-first)}.ms__badges--left{order:var(--ms-order-first);margin-right:var(--ms-badges-margin-left);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right);justify-content:flex-start}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge--custom{display:block;height:auto;max-width:none;overflow:visible;border-radius:0;font-size:inherit;font-weight:inherit}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-inline-end:none;border-start-start-radius:var(--ms-badge-border-radius);border-end-start-radius:var(--ms-badge-border-radius);border-start-end-radius:0;border-end-end-radius:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--ms-transition-normal) ease,color var(--ms-transition-normal) ease}.ms__badge:hover .ms__badge-text{background:var(--ms-badge-text-bg-hover, var(--ms-badge-text-bg));color:var(--ms-badge-text-color-hover, var(--ms-badge-text-color))}.ms__badge-remove{display:flex;align-items:center;justify-content:center;box-sizing:border-box;font-family:inherit;width:var(--ms-badge-remove-width);height:100%;flex-shrink:0;background:var(--ms-badge-remove-bg);color:var(--ms-badge-remove-color);border:var(--ms-badge-remove-border);border-inline-start:none;border-start-end-radius:var(--ms-badge-border-radius);border-end-end-radius:var(--ms-badge-border-radius);border-start-start-radius:0;border-end-start-radius:0;cursor:pointer;transition:background-color var(--ms-transition-normal) ease;font-size:var(--ms-badge-remove-font-size)}.ms__badge-remove:hover{background:var(--ms-badge-remove-bg-hover)}.ms__badge-remove:focus{outline:none}.ms__badge-remove:focus-visible{outline:none;box-shadow:var(--ms-badge-remove-box-shadow-focus)}.ms__badge-remove:before{content:"";display:block;width:var(--ms-badge-remove-icon-size);height:var(--ms-badge-remove-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__badge--counter{cursor:pointer}.ms__badge--counter .ms__badge-text{background:var(--ms-badge-counter-text-bg);color:var(--ms-badge-counter-text-color);border:var(--ms-badge-counter-border);border-inline-end:none}.ms__badge--counter .ms__badge-remove{background:var(--ms-badge-counter-remove-bg);color:var(--ms-badge-counter-remove-color);border:var(--ms-badge-counter-border);border-inline-start:none}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-bg-hover)}.ms__badge--more,.ms__badge[data-action=show-selected]{cursor:pointer}}@layer component{.ms__count-display{display:flex;align-items:center}.ms__count-display:empty{display:none}.ms__count-display--bottom{margin-top:var(--ms-count-display-margin-bottom)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top);order:var(--ms-order-first)}.ms__count-display--left{order:var(--ms-order-first);margin-right:var(--ms-count-display-margin-left);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap);background:var(--ms-counter-wrapper-bg);border:var(--ms-counter-wrapper-border);border-radius:var(--ms-counter-wrapper-border-radius);padding:var(--ms-counter-wrapper-padding);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-bg-hover);border-color:var(--ms-counter-wrapper-border-color-hover)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg);border:var(--ms-count-text-border);padding:0;font-size:var(--ms-count-text-font-size);color:var(--ms-count-text-color);cursor:pointer;transition:color var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size);height:var(--ms-count-clear-size);padding:0;border:none;background:var(--ms-count-clear-bg);color:var(--ms-count-clear-color);font-size:var(--ms-count-clear-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-count-clear-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear:hover{background:var(--ms-count-clear-bg-hover);color:var(--ms-count-clear-color-hover)}.ms__count-clear:before{content:"";display:block;width:var(--ms-count-clear-icon-size);height:var(--ms-count-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}}@layer component{.ms__debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-bg);border:1px solid var(--ms-debug-border-color);border-radius:var(--ms-debug-border-radius);font-size:calc(1.2 * var(--ms-rem));color:var(--ms-debug-text-color)}.ms__debug-info details summary{cursor:pointer;font-weight:600;color:var(--ms-debug-summary-color);-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:var(--ms-debug-summary-border-radius)}.ms__debug-info details summary:hover{background-color:var(--ms-debug-summary-bg-hover)}.ms__debug-info details summary:focus{outline:2px solid var(--ms-debug-summary-outline-color);outline-offset:2px}.ms__debug-info .ms__debug-stats{display:flex;flex-direction:column;gap:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-stats-bg);border-radius:var(--ms-debug-stats-border-radius)}.ms__debug-info .ms__debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ms__debug-info .ms__debug-stats span:before{content:"•";margin-inline-end:calc(.4 * var(--ms-rem));color:var(--ms-debug-bullet-color)}}@layer component{.ms__options{padding:var(--ms-options-padding);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__options--virtual .ms__option,.ms__options--fixed-height .ms__option{height:var(--ms-option-height, 50px);min-height:var(--ms-option-height, 50px);max-height:var(--ms-option-height, 50px);overflow:hidden;box-sizing:border-box}.ms__group+.ms__group{border-top:var(--ms-group-border-top);margin-top:var(--ms-group-margin-top);padding-top:var(--ms-group-padding-top)}.ms__group-label{padding:var(--ms-group-label-padding);font-size:var(--ms-group-label-font-size);font-weight:var(--ms-group-label-font-weight);color:var(--ms-group-label-color);text-transform:var(--ms-group-label-transform);letter-spacing:var(--ms-group-label-letter-spacing)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);position:relative;min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit)}.ms__option--matched:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;border-inline-start:var(--ms-option-border-matched);pointer-events:none}.ms__option--selected{background:var(--ms-option-bg-selected)}@media (hover: hover){.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-bg-selected))}}.ms__option--disabled{opacity:var(--ms-disabled-opacity);cursor:not-allowed;background:var(--ms-option-disabled-bg)}.ms__option--disabled:hover{background:var(--ms-option-disabled-bg)}@media (hover: hover){.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start;--ms-checkbox-margin-top: calc(.2 * var(--ms-rem))}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-inline-end:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-inline-start:var(--ms-checkbox-margin-left);width:var(--ms-checkbox-size);height:var(--ms-checkbox-size);transform:scale(var(--ms-checkbox-scale));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg);border:var(--ms-checkbox-border);border-radius:var(--ms-checkbox-border-radius);transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;left:50%;top:40%;width:30%;height:55%;transform:translate(-50%,-50%) rotate(45deg);border:solid var(--ms-checkbox-checkmark-color);border-width:0 var(--ms-checkbox-checkmark-thickness, 2px) var(--ms-checkbox-checkmark-thickness, 2px) 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox:checked:after{display:block}.ms__checkbox--indeterminate{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox--indeterminate:after{display:block;top:50%;left:50%;width:55%;height:0;transform:translate(-50%,-50%);border:none;border-bottom:var(--ms-checkbox-checkmark-thickness, 2px) solid var(--ms-checkbox-checkmark-color)}.ms__checkbox--indeterminate:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:checked:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg);border:var(--ms-checkbox-disabled-border);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg)}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:center;gap:var(--ms-option-content-gap);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size);height:var(--ms-option-icon-size);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size)}.ms__option-icon svg{width:100%;height:100%;fill:currentColor}.ms__option-text{flex:1;min-width:0}.ms__option-title{font-size:var(--ms-option-title-font-size);color:var(--ms-option-title-color);line-height:var(--ms-line-height-relaxed);white-space:var(--ms-option-title-white-space, normal);overflow:var(--ms-option-title-overflow, visible);text-overflow:var(--ms-option-title-text-overflow, clip)}@media (hover: hover){.ms__option:hover .ms__option-title{color:var(--ms-option-title-color-hover, var(--ms-option-title-color))}}.ms__option--selected .ms__option-title{color:var(--ms-option-title-color-selected, var(--ms-option-title-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-title{color:var(--ms-option-title-color-selected-hover, var(--ms-option-title-color-selected, var(--ms-option-title-color)))}}.ms__option-title mark{background:var(--ms-option-mark-bg);color:var(--ms-option-mark-color);font-weight:var(--ms-option-mark-font-weight)}.ms__option-subtitle{margin-top:var(--ms-option-subtitle-margin-top);font-size:var(--ms-option-subtitle-font-size);color:var(--ms-option-subtitle-color);line-height:var(--ms-option-subtitle-line-height)}@media (hover: hover){.ms__option:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-hover, var(--ms-option-subtitle-color))}}.ms__option--selected .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected-hover, var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color)))}}.ms__empty{display:flex;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-empty-padding);text-align:center;font-size:var(--ms-empty-font-size);color:var(--ms-empty-color)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-loader-padding);gap:var(--ms-loader-gap)}.ms__loading-text{font-size:var(--ms-loading-text-font-size);color:var(--ms-loading-color)}}@layer component{.ms--rtl .ms__badges{direction:rtl}.ms--rtl .ms__badges--right{margin-left:0;margin-right:var(--ms-badges-margin-right)}.ms--rtl .ms__badges--left{margin-right:0;margin-left:var(--ms-badges-margin-left)}.ms--rtl .ms__count-display{direction:rtl}.ms--rtl .ms__count-display--right{margin-left:0;margin-right:var(--ms-count-display-margin-right)}.ms--rtl .ms__count-display--left{margin-right:0;margin-left:var(--ms-count-display-margin-left)}}@layer component{.ms__option--tree{padding-inline-start:calc(var(--ms-tree-base-indent, .75rem) + var(--ms-tree-depth, 0) * var(--ms-tree-indent, 1.25rem))}.ms__option--tree-unselectable{cursor:default}.ms__option--tree-unselectable:hover{background:transparent}}@layer overrides{:host-context([data-theme="dark"]),:host-context([data-bs-theme="dark"]),:host-context(.dark){color-scheme:dark}:host-context([data-theme="light"]),:host-context([data-bs-theme="light"]),:host-context(.light){color-scheme:light}:host([data-theme="dark"]){color-scheme:dark}:host([data-theme="light"]){color-scheme:light}}`, js = [
|
|
5270
|
+
const Oo = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#cbd5e1, #52525b));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-toggle-icon-size: calc(1.6 * var(--ms-rem));--ms-toggle-rotate-closed: 90deg;--ms-toggle-rotate-open: -90deg;--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: var(--ms-primary-bg-hover);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-remove-bg: var(--ms-text-color-3);--ms-badge-counter-remove-bg-hover: var(--ms-text-color-1);--ms-badge-counter-remove-color: var(--ms-text-color-on-accent);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-count-clear-bg-hover: var(--ms-accent-color);--ms-tooltip-bg: var(--base-tooltip-bg, var(--base-inverse-bg, light-dark(#333333, #f5f5f5)));--ms-tooltip-text-color: var(--base-tooltip-text-color, light-dark(#ffffff, #1a1a1a));--ms-selected-popover-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-gap: calc(.6 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-rotate-180: 180deg;--ms-input-clear-size: calc(2.4 * var(--ms-rem));--ms-input-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-input-clear-color: var(--base-input-clear-color, var(--ms-text-secondary));--ms-input-clear-bg-hover: var(--base-input-clear-bg-hover, var(--ms-option-bg-matched, transparent));--ms-input-clear-border-radius: var(--ms-border-radius);--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-inner-border-radius: max(0px, calc(var(--ms-dropdown-border-radius) - 1px));--ms-dropdown-box-shadow: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-input-current-width: auto;--ms-dropdown-width: var(--ms-input-current-width);--ms-options-max-height: calc(32 * var(--ms-rem));--ms-option-color: var(--ms-text-color-1);--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-z-index-fullscreen: 10001;--ms-z-index-fullscreen-tooltip: 10002;--ms-fullscreen-rem: 12px;--ms-fullscreen-bg: var(--ms-dropdown-bg);--ms-fullscreen-text-color: var(--ms-dropdown-text-color);--ms-fullscreen-header-bg: var(--ms-dropdown-bg);--ms-fullscreen-header-border: 1px solid var(--ms-dropdown-border-color);--ms-fullscreen-header-gap: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-v: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-h: calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding: var(--ms-fullscreen-header-padding-v) var(--ms-fullscreen-header-padding-h);--ms-fullscreen-header-min-height: calc(5.6 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-size: calc(1.7 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-weight: var(--base-font-weight-semibold, 600);--ms-fullscreen-search-border: var(--ms-input-border);--ms-fullscreen-search-border-radius: var(--ms-input-border-radius);--ms-fullscreen-search-padding: calc(.8 * var(--ms-fullscreen-rem)) calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-search-font-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-icon-size: calc(1.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-inset: calc(.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-gutter: calc(3.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-search-clear-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-mode-toggle-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-icon-size: calc(1.5 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-gap: var(--ms-fullscreen-header-gap);--ms-fullscreen-mode-toggle-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-mode-toggle-bg: transparent;--ms-fullscreen-mode-toggle-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-size: calc(3.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-color: var(--ms-dropdown-text-color);--ms-fullscreen-close-bg: transparent;--ms-fullscreen-close-border: none;--ms-fullscreen-close-border-radius: 50%;--ms-fullscreen-close-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-edge-nudge: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-icon-size: calc(1.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-color: var(--ms-accent-color);--ms-fullscreen-info-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-gap: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-padding-top: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-font-size: calc(1.3 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-nav-btn-size: calc(3.2 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-color: var(--ms-dropdown-text-color);--ms-fullscreen-nav-btn-bg: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-btn-bg-hover: color-mix(in srgb, var(--ms-accent-color) 22%, transparent);--ms-fullscreen-nav-btn-icon: var(--ms-icon-chevron);--ms-icon-chevron: var(--base-icon-chevron, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m9 18 6-6-6-6'/></svg>"));--ms-icon-info: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.3' fill='black'/><path d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");--ms-fullscreen-tree-base-indent: calc(.7 * var(--ms-fullscreen-rem));--ms-fullscreen-tree-indent: calc(1.2 * var(--ms-fullscreen-rem));--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: 0;--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: var(--base-icon-remove, var(--base-icon-close, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18'/><path d='m6 6 12 12'/></svg>")));--ms-icon-search-clear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m13.5 8.5-5 5'/><path d='m8.5 8.5 5 5'/><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-search: var(--base-icon-search, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>"));--ms-icon-filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--base-icon-clear, var(--ms-icon-remove));--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-message-bg: var(--ms-message-info-bg);--ms-message-color: var(--ms-message-info-color);--ms-message-border: 1px solid transparent;--ms-message-border-radius: var(--ms-border-radius-lg);--ms-message-padding: calc(1 * var(--ms-rem)) calc(1.4 * var(--ms-rem));--ms-message-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-message-font-weight: var(--base-font-weight-medium, 500);--ms-message-max-width: calc(40 * var(--ms-rem));--ms-message-shadow: 0 4px 16px rgb(0 0 0 / .18);--ms-message-fullscreen-offset: calc(2.4 * var(--ms-fullscreen-rem));--ms-message-z-index: var(--ms-z-index-fullscreen-tooltip);--ms-message-info-bg: var(--ms-tooltip-bg);--ms-message-info-color: var(--ms-tooltip-text-color);--ms-message-warning-bg: var(--base-warning-bg, #f59e0b);--ms-message-warning-color: var(--base-warning-color, #1a1a1a);--ms-message-error-bg: var(--base-danger-bg, #ef4444);--ms-message-error-color: var(--base-danger-color, #ffffff);--ms-message-success-bg: var(--base-success-bg, #10b981);--ms-message-success-color: var(--base-success-color, #ffffff);--ms-z-index-popover: 10000;--ms-selected-popover-width: var(--ms-input-current-width);--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: var(--base-ease-standard, cubic-bezier(.4, 0, .2, 1));--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}:host{-webkit-tap-highlight-color:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{box-sizing:border-box;position:relative;display:flex;align-items:center;gap:var(--ms-input-gap);height:var(--ms-input-height);padding-inline:var(--ms-input-padding-h);background:var(--ms-input-bg);color:var(--ms-input-color);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-wrapper:hover:not(:focus-within){border:var(--ms-input-border-hover)}.ms__input-wrapper:focus-within{border:var(--ms-input-border-focus)}.ms__input{flex:1 1 auto;min-width:0;box-sizing:border-box;font-family:inherit;height:100%;padding:0;border:none;background:transparent;font-size:var(--ms-input-font-size);color:var(--ms-input-color);cursor:pointer;outline:none}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__toggle{flex:0 0 auto;display:block;width:var(--ms-toggle-icon-size);height:var(--ms-toggle-icon-size);color:var(--ms-toggle-icon-color);cursor:pointer}.ms__toggle:before{content:"";display:block;width:100%;height:100%;background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat;transform:rotate(var(--ms-toggle-rotate-closed, 90deg));transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{color:var(--ms-toggle-icon-color-open)}.ms--open .ms__toggle:before{transform:rotate(var(--ms-toggle-rotate-open, -90deg))}.ms__counter{flex:0 0 auto;padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:scale(var(--ms-transform-scale-hover))}.ms__input-clear{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-input-clear-size);height:var(--ms-input-clear-size);padding:0;color:var(--ms-input-clear-color);background:transparent;border:none;border-radius:var(--ms-input-clear-border-radius);cursor:pointer;transition:background var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-clear:hover{background:var(--ms-input-clear-bg-hover)}.ms__input-clear:before{content:"";display:block;width:var(--ms-input-clear-icon-size);height:var(--ms-input-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}.ms__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}@media (hover: hover){.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;box-sizing:border-box;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);width:var(--ms-dropdown-width);max-height:var(--ms-options-max-height);overflow:hidden;color:var(--ms-dropdown-text-color)}.ms__dropdown--visible{display:flex;flex-direction:column}.ms__dropdown--fullscreen,.ms__selected-popover--fullscreen{--ms-rem: var(--ms-fullscreen-rem);--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tree-base-indent: var(--ms-fullscreen-tree-base-indent);--ms-tree-indent: var(--ms-fullscreen-tree-indent)}.ms__selected-popover--fullscreen{--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(4.2 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-badge-text-padding: 0 calc(1.2 * var(--ms-rem));--ms-badge-remove-width: calc(3.6 * var(--ms-rem));--ms-badge-remove-icon-size: calc(1.2 * var(--ms-rem));--ms-badge-remove-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-padding: calc(.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{position:fixed;top:0;inset-inline-start:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;--ms-dropdown-inner-border-radius: 0;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__dropdown--fullscreen .ms__dropdown-inner{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}.ms__dropdown--fullscreen .ms__options{flex:1 1 0;min-height:0;height:auto;max-height:none;overflow-y:auto;padding-bottom:var(--ms-option-gap)}.ms__dropdown--fullscreen .ms__actions{flex:0 0 auto}.ms__fullscreen-header,.ms__selected-popover--fullscreen .ms__selected-popover-header{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--ms-fullscreen-header-gap);min-height:var(--ms-fullscreen-header-min-height);padding:var(--ms-fullscreen-header-padding);background:var(--ms-fullscreen-header-bg);border-bottom:var(--ms-fullscreen-header-border)}.ms__fullscreen-header{align-content:flex-start}.ms__fullscreen-header>.ms__fullscreen-search-wrapper{min-height:var(--ms-fullscreen-header-min-height)}.ms__fullscreen-nav{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ms-fullscreen-nav-gap);padding-top:var(--ms-fullscreen-nav-padding-top)}.ms__fullscreen-nav-count{font-size:var(--ms-fullscreen-nav-count-font-size);color:var(--ms-fullscreen-nav-count-color)}.ms__fullscreen-nav-controls{display:flex;align-items:center;gap:var(--ms-fullscreen-nav-gap)}.ms__fullscreen-nav-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-nav-btn-size);height:var(--ms-fullscreen-nav-btn-size);padding:0;color:var(--ms-fullscreen-nav-btn-color);background:var(--ms-fullscreen-nav-btn-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-nav-btn:hover:not(:disabled){background:var(--ms-fullscreen-nav-btn-bg-hover)}.ms__fullscreen-nav-btn:disabled{opacity:.4;cursor:default}.ms__fullscreen-nav-btn:before{content:"";display:block;width:var(--ms-fullscreen-nav-btn-icon-size);height:var(--ms-fullscreen-nav-btn-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;transform:rotate(-90deg)}.ms__fullscreen-nav-btn--next:before{transform:rotate(90deg)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 0;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex;align-items:center}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-mode-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-mode-toggle-size);height:var(--ms-fullscreen-mode-toggle-size);margin-inline-end:var(--ms-fullscreen-mode-toggle-gap);margin-inline-start:calc((var(--ms-fullscreen-close-size) - var(--ms-fullscreen-mode-toggle-size)) / 2 - var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-mode-toggle-color);background:var(--ms-fullscreen-mode-toggle-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-mode-toggle:hover{background:var(--ms-fullscreen-mode-toggle-bg-hover)}.ms__fullscreen-mode-toggle:before{content:"";display:block;width:var(--ms-fullscreen-mode-toggle-icon-size);height:var(--ms-fullscreen-mode-toggle-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat;mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat}.ms__fullscreen-mode-toggle[data-mode=navigate]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-search)}.ms__fullscreen-mode-toggle[data-mode=filter]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-filter)}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;border-radius:var(--ms-dropdown-inner-border-radius);overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow:hidden}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip--fullscreen{z-index:var(--ms-z-index-fullscreen-tooltip)}.ms__message{position:fixed;z-index:var(--ms-message-z-index);box-sizing:border-box;max-width:var(--ms-message-max-width);padding:var(--ms-message-padding);font-family:inherit;font-size:var(--ms-message-font-size);font-weight:var(--ms-message-font-weight);line-height:var(--ms-line-height-normal);color:var(--ms-message-color);background:var(--ms-message-bg);border:var(--ms-message-border);border-radius:var(--ms-message-border-radius);box-shadow:var(--ms-message-shadow);cursor:pointer;opacity:0;transition:opacity var(--ms-transition-normal) ease;-webkit-tap-highlight-color:transparent}.ms__message--visible{opacity:1}.ms__message--info{background:var(--ms-message-info-bg);color:var(--ms-message-info-color)}.ms__message--warning{background:var(--ms-message-warning-bg);color:var(--ms-message-warning-color)}.ms__message--error{background:var(--ms-message-error-bg);color:var(--ms-message-error-color)}.ms__message--success{background:var(--ms-message-success-bg);color:var(--ms-message-success-color)}.ms__message--fullscreen{left:50%;right:auto;bottom:calc(var(--ms-message-fullscreen-offset) + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(var(--ms-message-max-width),calc(100vw - 4 * var(--ms-fullscreen-rem)));padding:calc(1 * var(--ms-fullscreen-rem)) calc(1.4 * var(--ms-fullscreen-rem));font-size:calc(var(--base-font-size-sm, 1.4) * var(--ms-fullscreen-rem))}.ms__selected-popover{display:none;position:fixed;box-sizing:border-box;z-index:var(--ms-z-index-popover);background:var(--ms-selected-popover-bg);border:var(--ms-selected-popover-border);border-radius:var(--ms-selected-popover-border-radius);box-shadow:var(--ms-selected-popover-box-shadow);width:var(--ms-selected-popover-width);max-height:var(--ms-selected-popover-max-height);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;overflow:hidden;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__selected-popover--fullscreen .ms__selected-popover-body{flex:1 1 0;min-height:0;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding);background:var(--ms-selected-popover-header-bg);border-bottom:var(--ms-selected-popover-header-border-bottom);font-size:var(--ms-selected-popover-header-font-size);font-weight:var(--ms-selected-popover-header-font-weight);color:var(--ms-selected-popover-header-color)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size);height:var(--ms-popover-close-size);padding:0;border:none;background:var(--ms-selected-popover-close-bg);color:var(--ms-selected-popover-close-color);font-size:var(--ms-selected-popover-close-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-bg-hover);color:var(--ms-selected-popover-close-color-hover)}.ms__selected-popover-close:before{content:"";display:block;width:var(--ms-selected-popover-close-icon-size);height:var(--ms-selected-popover-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap);padding:var(--ms-selected-popover-body-padding);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__selected-popover-body::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__selected-popover-body::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed);flex-shrink:0}.ms__selected-popover-body .ms__badge-text{flex:1;min-width:0;white-space:normal;word-wrap:break-word}.ms__selected-popover-body--virtual{display:block;max-height:none;padding:0}.ms__selected-popover-body--virtual .ms__badge{height:var(--ms-badge-height-virtual, 36px);min-height:var(--ms-badge-height-virtual, 36px);max-height:var(--ms-badge-height-virtual, 36px);margin-bottom:var(--ms-selected-popover-body-gap);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer component{.ms--disabled .ms__input-wrapper{opacity:var(--ms-disabled-input-opacity);background:var(--ms-input-bg-disabled);cursor:not-allowed}.ms--disabled .ms__input{cursor:not-allowed}.ms--no-checkboxes .ms__option{gap:0;padding-inline-start:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-inline-start:0}.ms--no-selected-popover .ms__counter,.ms--no-selected-popover .ms__badge[data-action=show-selected],.ms--no-selected-popover .ms__badge--counter,.ms--no-selected-popover .ms__badge--more{cursor:default}}@layer component;@layer component{.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top);order:var(--ms-order-first)}.ms__badges--left{order:var(--ms-order-first);margin-right:var(--ms-badges-margin-left);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right);justify-content:flex-start}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge--custom{display:block;height:auto;max-width:none;overflow:visible;border-radius:0;font-size:inherit;font-weight:inherit}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-inline-end:none;border-start-start-radius:var(--ms-badge-border-radius);border-end-start-radius:var(--ms-badge-border-radius);border-start-end-radius:0;border-end-end-radius:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--ms-transition-normal) ease,color var(--ms-transition-normal) ease}.ms__badge:hover .ms__badge-text{background:var(--ms-badge-text-bg-hover, var(--ms-badge-text-bg));color:var(--ms-badge-text-color-hover, var(--ms-badge-text-color))}.ms__badge-remove{display:flex;align-items:center;justify-content:center;box-sizing:border-box;font-family:inherit;width:var(--ms-badge-remove-width);height:100%;flex-shrink:0;background:var(--ms-badge-remove-bg);color:var(--ms-badge-remove-color);border:var(--ms-badge-remove-border);border-inline-start:none;border-start-end-radius:var(--ms-badge-border-radius);border-end-end-radius:var(--ms-badge-border-radius);border-start-start-radius:0;border-end-start-radius:0;cursor:pointer;transition:background-color var(--ms-transition-normal) ease;font-size:var(--ms-badge-remove-font-size)}.ms__badge-remove:hover{background:var(--ms-badge-remove-bg-hover)}.ms__badge-remove:focus{outline:none}.ms__badge-remove:focus-visible{outline:none;box-shadow:var(--ms-badge-remove-box-shadow-focus)}.ms__badge-remove:before{content:"";display:block;width:var(--ms-badge-remove-icon-size);height:var(--ms-badge-remove-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__badge--counter{cursor:pointer}.ms__badge--counter .ms__badge-text{background:var(--ms-badge-counter-text-bg);color:var(--ms-badge-counter-text-color);border:var(--ms-badge-counter-border);border-inline-end:none}.ms__badge--counter .ms__badge-remove{background:var(--ms-badge-counter-remove-bg);color:var(--ms-badge-counter-remove-color);border:var(--ms-badge-counter-border);border-inline-start:none}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-bg-hover)}.ms__badge--more,.ms__badge[data-action=show-selected]{cursor:pointer}}@layer component{.ms__count-display{display:flex;align-items:center}.ms__count-display:empty{display:none}.ms__count-display--bottom{margin-top:var(--ms-count-display-margin-bottom)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top);order:var(--ms-order-first)}.ms__count-display--left{order:var(--ms-order-first);margin-right:var(--ms-count-display-margin-left);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap);background:var(--ms-counter-wrapper-bg);border:var(--ms-counter-wrapper-border);border-radius:var(--ms-counter-wrapper-border-radius);padding:var(--ms-counter-wrapper-padding);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-bg-hover);border-color:var(--ms-counter-wrapper-border-color-hover)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg);border:var(--ms-count-text-border);padding:0;font-size:var(--ms-count-text-font-size);color:var(--ms-count-text-color);cursor:pointer;transition:color var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size);height:var(--ms-count-clear-size);padding:0;border:none;background:var(--ms-count-clear-bg);color:var(--ms-count-clear-color);font-size:var(--ms-count-clear-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-count-clear-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear:hover{background:var(--ms-count-clear-bg-hover);color:var(--ms-count-clear-color-hover)}.ms__count-clear:before{content:"";display:block;width:var(--ms-count-clear-icon-size);height:var(--ms-count-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}}@layer component{.ms__debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-bg);border:1px solid var(--ms-debug-border-color);border-radius:var(--ms-debug-border-radius);font-size:calc(1.2 * var(--ms-rem));color:var(--ms-debug-text-color)}.ms__debug-info details summary{cursor:pointer;font-weight:600;color:var(--ms-debug-summary-color);-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:var(--ms-debug-summary-border-radius)}.ms__debug-info details summary:hover{background-color:var(--ms-debug-summary-bg-hover)}.ms__debug-info details summary:focus{outline:2px solid var(--ms-debug-summary-outline-color);outline-offset:2px}.ms__debug-info .ms__debug-stats{display:flex;flex-direction:column;gap:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-stats-bg);border-radius:var(--ms-debug-stats-border-radius)}.ms__debug-info .ms__debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ms__debug-info .ms__debug-stats span:before{content:"•";margin-inline-end:calc(.4 * var(--ms-rem));color:var(--ms-debug-bullet-color)}}@layer component{.ms__options{padding:var(--ms-options-padding);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__options--virtual .ms__option,.ms__options--fixed-height .ms__option{height:var(--ms-option-height, 50px);min-height:var(--ms-option-height, 50px);max-height:var(--ms-option-height, 50px);overflow:hidden;box-sizing:border-box}.ms__group+.ms__group{border-top:var(--ms-group-border-top);margin-top:var(--ms-group-margin-top);padding-top:var(--ms-group-padding-top)}.ms__group-label{padding:var(--ms-group-label-padding);font-size:var(--ms-group-label-font-size);font-weight:var(--ms-group-label-font-weight);color:var(--ms-group-label-color);text-transform:var(--ms-group-label-transform);letter-spacing:var(--ms-group-label-letter-spacing)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);position:relative;min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit)}.ms__option--matched:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;border-inline-start:var(--ms-option-border-matched);pointer-events:none}.ms__option--selected{background:var(--ms-option-bg-selected)}@media (hover: hover){.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-bg-selected))}}.ms__option--disabled{opacity:var(--ms-disabled-opacity);cursor:not-allowed;background:var(--ms-option-disabled-bg)}.ms__option--disabled:hover{background:var(--ms-option-disabled-bg)}@media (hover: hover){.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start;--ms-checkbox-margin-top: calc(.2 * var(--ms-rem))}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-inline-end:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-inline-start:var(--ms-checkbox-margin-left);width:var(--ms-checkbox-size);height:var(--ms-checkbox-size);transform:scale(var(--ms-checkbox-scale));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg);border:var(--ms-checkbox-border);border-radius:var(--ms-checkbox-border-radius);transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;left:50%;top:40%;width:30%;height:55%;transform:translate(-50%,-50%) rotate(45deg);border:solid var(--ms-checkbox-checkmark-color);border-width:0 var(--ms-checkbox-checkmark-thickness, 2px) var(--ms-checkbox-checkmark-thickness, 2px) 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox:checked:after{display:block}.ms__checkbox--indeterminate{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox--indeterminate:after{display:block;top:50%;left:50%;width:55%;height:0;transform:translate(-50%,-50%);border:none;border-bottom:var(--ms-checkbox-checkmark-thickness, 2px) solid var(--ms-checkbox-checkmark-color)}.ms__checkbox--indeterminate:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:checked:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg);border:var(--ms-checkbox-disabled-border);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg)}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:center;gap:var(--ms-option-content-gap);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size);height:var(--ms-option-icon-size);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size)}.ms__option-icon svg{width:100%;height:100%;fill:currentColor}.ms__option-text{flex:1;min-width:0}.ms__option-title{font-size:var(--ms-option-title-font-size);color:var(--ms-option-title-color);line-height:var(--ms-line-height-relaxed);white-space:var(--ms-option-title-white-space, normal);overflow:var(--ms-option-title-overflow, visible);text-overflow:var(--ms-option-title-text-overflow, clip)}@media (hover: hover){.ms__option:hover .ms__option-title{color:var(--ms-option-title-color-hover, var(--ms-option-title-color))}}.ms__option--selected .ms__option-title{color:var(--ms-option-title-color-selected, var(--ms-option-title-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-title{color:var(--ms-option-title-color-selected-hover, var(--ms-option-title-color-selected, var(--ms-option-title-color)))}}.ms__option-title mark{background:var(--ms-option-mark-bg);color:var(--ms-option-mark-color);font-weight:var(--ms-option-mark-font-weight)}.ms__option-subtitle{margin-top:var(--ms-option-subtitle-margin-top);font-size:var(--ms-option-subtitle-font-size);color:var(--ms-option-subtitle-color);line-height:var(--ms-option-subtitle-line-height)}@media (hover: hover){.ms__option:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-hover, var(--ms-option-subtitle-color))}}.ms__option--selected .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected-hover, var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color)))}}.ms__empty{display:flex;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-empty-padding);text-align:center;font-size:var(--ms-empty-font-size);color:var(--ms-empty-color)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-loader-padding);gap:var(--ms-loader-gap)}.ms__loading-text{font-size:var(--ms-loading-text-font-size);color:var(--ms-loading-color)}}@layer component{.ms--rtl .ms__badges{direction:rtl}.ms--rtl .ms__badges--right{margin-left:0;margin-right:var(--ms-badges-margin-right)}.ms--rtl .ms__badges--left{margin-right:0;margin-left:var(--ms-badges-margin-left)}.ms--rtl .ms__count-display{direction:rtl}.ms--rtl .ms__count-display--right{margin-left:0;margin-right:var(--ms-count-display-margin-right)}.ms--rtl .ms__count-display--left{margin-right:0;margin-left:var(--ms-count-display-margin-left)}}@layer component{.ms__option--tree{padding-inline-start:calc(var(--ms-tree-base-indent, .75rem) + var(--ms-tree-depth, 0) * var(--ms-tree-indent, 1.25rem))}.ms__option--tree-unselectable{cursor:default}.ms__option--tree-unselectable:hover{background:transparent}}@layer overrides{:host-context([data-theme="dark"]),:host-context([data-bs-theme="dark"]),:host-context(.dark){color-scheme:dark}:host-context([data-theme="light"]),:host-context([data-bs-theme="light"]),:host-context(.light){color-scheme:light}:host([data-theme="dark"]){color-scheme:dark}:host([data-theme="light"]){color-scheme:light}}`, Ys = [
|
|
5228
5271
|
"top",
|
|
5229
5272
|
"top-start",
|
|
5230
5273
|
"top-end",
|
|
@@ -5237,38 +5280,38 @@ const _o = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
5237
5280
|
"right",
|
|
5238
5281
|
"right-start",
|
|
5239
5282
|
"right-end"
|
|
5240
|
-
],
|
|
5283
|
+
], N = () => Wo(), gn = [
|
|
5241
5284
|
// ── Strings (cosmetic → update). Optional ones are nullable: absent → null ─
|
|
5242
|
-
{ configKey: "searchHint", attribute: "search-hint", converter:
|
|
5243
|
-
{ configKey: "searchPlaceholder", attribute: "search-placeholder", converter:
|
|
5244
|
-
{ configKey: "selectPlaceholder", attribute: "select-placeholder", converter:
|
|
5245
|
-
{ configKey: "noDataPlaceholder", attribute: "no-data-placeholder", converter:
|
|
5246
|
-
{ configKey: "dropdownMinWidth", attribute: "dropdown-min-width", converter:
|
|
5247
|
-
{ configKey: "dropdownMaxWidth", attribute: "dropdown-max-width", converter:
|
|
5248
|
-
{ configKey: "maxHeight", attribute: "max-height", converter:
|
|
5249
|
-
{ configKey: "emptyMessage", attribute: "empty-message", converter:
|
|
5250
|
-
{ configKey: "loadingMessage", attribute: "loading-message", converter:
|
|
5251
|
-
{ configKey: "removeButtonTooltipText", attribute: "remove-button-tooltip-text", converter:
|
|
5252
|
-
{ configKey: "formFieldId", attribute: "name", converter:
|
|
5285
|
+
{ configKey: "searchHint", attribute: "search-hint", converter: z({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
|
|
5286
|
+
{ configKey: "searchPlaceholder", attribute: "search-placeholder", converter: z({ isNullable: !0 }), on: "update", description: 'Placeholder text for the search input. When unset it defaults to "Search..."; if `show-search-mode-toggle` is on, the default instead becomes mode-aware ("Search…" in navigate, "Filter…" in filter). An explicit value always wins and stays fixed.' },
|
|
5287
|
+
{ configKey: "selectPlaceholder", attribute: "select-placeholder", converter: z({ default: "Pick an option..." }), on: "update", description: "Placeholder shown on the control when nothing is selected." },
|
|
5288
|
+
{ configKey: "noDataPlaceholder", attribute: "no-data-placeholder", converter: z({ isNullable: !0 }), on: "update", description: "Text shown when there are no options at all." },
|
|
5289
|
+
{ configKey: "dropdownMinWidth", attribute: "dropdown-min-width", converter: z({ isNullable: !0 }), on: "update", description: "Minimum width of the dropdown panel (any CSS length)." },
|
|
5290
|
+
{ configKey: "dropdownMaxWidth", attribute: "dropdown-max-width", converter: z({ isNullable: !0 }), on: "update", description: "Maximum width of the dropdown panel (any CSS length)." },
|
|
5291
|
+
{ configKey: "maxHeight", attribute: "max-height", converter: z({ default: "20rem" }), on: "update", description: "Maximum height of the dropdown list before it scrolls." },
|
|
5292
|
+
{ configKey: "emptyMessage", attribute: "empty-message", converter: z({ default: "No results found" }), on: "update", description: "Message shown when a search yields no matches." },
|
|
5293
|
+
{ configKey: "loadingMessage", attribute: "loading-message", converter: z({ default: "Loading..." }), on: "update", description: "Message shown while options are loading." },
|
|
5294
|
+
{ configKey: "removeButtonTooltipText", attribute: "remove-button-tooltip-text", converter: z({ isNullable: !0 }), on: "update", description: "Tooltip text for a badge remove (×) button." },
|
|
5295
|
+
{ configKey: "formFieldId", attribute: "name", converter: z({ isNullable: !0 }), on: "reinit", description: "HTML form field name/id used for the hidden input(s)." },
|
|
5253
5296
|
// ── CSS-var sugar (mirrored to a host style prop in reinit()/update()) ────
|
|
5254
|
-
{ configKey: "dropdownWidth", attribute: "dropdown-width", converter:
|
|
5255
|
-
{ configKey: "selectedPopoverWidth", attribute: "selected-popover-width", converter:
|
|
5297
|
+
{ configKey: "dropdownWidth", attribute: "dropdown-width", converter: z({ isNullable: !0 }), on: "update", description: "Fixed dropdown width; mirrored to the `--ms-dropdown-width` CSS variable." },
|
|
5298
|
+
{ configKey: "selectedPopoverWidth", attribute: "selected-popover-width", converter: z({ isNullable: !0 }), on: "update", description: "Selected-items popover width; mirrored to `--ms-selected-popover-width`." },
|
|
5256
5299
|
// ── Member properties (structural → reinit; optional → nullable) ─────────
|
|
5257
|
-
{ configKey: "valueMember", attribute: "value-member", converter:
|
|
5258
|
-
{ configKey: "displayValueMember", attribute: "display-value-member", converter:
|
|
5259
|
-
{ configKey: "searchValueMember", attribute: "search-value-member", converter:
|
|
5260
|
-
{ configKey: "iconMember", attribute: "icon-member", converter:
|
|
5261
|
-
{ configKey: "subtitleMember", attribute: "subtitle-member", converter:
|
|
5262
|
-
{ configKey: "fullTitleMember", attribute: "full-title-member", converter:
|
|
5263
|
-
{ configKey: "groupMember", attribute: "group-member", converter:
|
|
5264
|
-
{ configKey: "disabledMember", attribute: "disabled-member", converter:
|
|
5300
|
+
{ configKey: "valueMember", attribute: "value-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name on an option object that holds its value." },
|
|
5301
|
+
{ configKey: "displayValueMember", attribute: "display-value-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option display label." },
|
|
5302
|
+
{ configKey: "searchValueMember", attribute: "search-value-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name searched against (falls back to the display value)." },
|
|
5303
|
+
{ configKey: "iconMember", attribute: "icon-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option icon." },
|
|
5304
|
+
{ configKey: "subtitleMember", attribute: "subtitle-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option subtitle." },
|
|
5305
|
+
{ configKey: "fullTitleMember", attribute: "full-title-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option full/long title." },
|
|
5306
|
+
{ configKey: "groupMember", attribute: "group-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name used to group options under headers." },
|
|
5307
|
+
{ configKey: "disabledMember", attribute: "disabled-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that marks an option disabled." },
|
|
5265
5308
|
// ── Tree of options (structural → reinit; optional → nullable) ───────────
|
|
5266
|
-
{ configKey: "pathMember", attribute: "path-member", converter:
|
|
5267
|
-
{ configKey: "parentPathMember", attribute: "parent-path-member", converter:
|
|
5268
|
-
{ configKey: "levelMember", attribute: "level-member", converter:
|
|
5269
|
-
{ configKey: "hasChildrenMember", attribute: "has-children-member", converter:
|
|
5270
|
-
{ configKey: "isSelectableMember", attribute: "is-selectable-member", converter:
|
|
5271
|
-
{ configKey: "treePathSeparator", attribute: "tree-path-separator", converter:
|
|
5309
|
+
{ configKey: "pathMember", attribute: "path-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node materialized tree path." },
|
|
5310
|
+
{ configKey: "parentPathMember", attribute: "parent-path-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node parent path." },
|
|
5311
|
+
{ configKey: "levelMember", attribute: "level-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node depth level." },
|
|
5312
|
+
{ configKey: "hasChildrenMember", attribute: "has-children-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name flagging that a node has children." },
|
|
5313
|
+
{ configKey: "isSelectableMember", attribute: "is-selectable-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name marking whether a node can be selected." },
|
|
5314
|
+
{ configKey: "treePathSeparator", attribute: "tree-path-separator", converter: z({ default: "." }), reflect: !0, on: "reinit", description: "Separator between segments in a materialized tree path." },
|
|
5272
5315
|
{ configKey: "isTreeEnabled", converter: B("tristate"), on: "reinit", type: "boolean", description: "Force tree mode on/off. Property-only; when unset (null) tree mode auto-enables if a path source (path-member / getPathCallback) is present." },
|
|
5273
5316
|
{
|
|
5274
5317
|
configKey: "checkboxMode",
|
|
@@ -5292,13 +5335,14 @@ const _o = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
5292
5335
|
{ configKey: "badgesThresholdMode", attribute: "badges-threshold-mode", converter: W(["count", "partial"], { default: "count" }), on: "update", description: 'How `badgesThreshold` is interpreted: collapse to a count badge, or keep partial badges + a "more" badge.' },
|
|
5293
5336
|
{ configKey: "searchInputMode", attribute: "search-input-mode", converter: W(["normal", "readonly", "hidden"], { default: "normal" }), on: "reinit", description: "Search field mode: editable, read-only, or hidden." },
|
|
5294
5337
|
{ configKey: "searchMode", attribute: "search-mode", converter: W(["filter", "navigate"], { default: "filter" }), on: "reinit", description: "Whether typing filters the list or navigates it." },
|
|
5338
|
+
{ configKey: "overlayGroup", attribute: "overlay-group", converter: z({ isNullable: !0 }), on: "reinit", description: 'Scope the "one overlay open at a time" coordination to a named group. Overlays (multiselects, datepickers, external popovers) sharing a group dismiss each other when one opens; different groups are independent. Unset = the default (ungrouped) group.' },
|
|
5295
5339
|
{ configKey: "actionsLayout", attribute: "actions-layout", converter: W(["nowrap", "wrap"], { default: "nowrap" }), on: "reinit", description: "Whether the action bar wraps or stays on one line." },
|
|
5296
5340
|
{ configKey: "actionsPosition", attribute: "actions-position", converter: W(["top", "bottom"], { default: "top" }), on: "reinit", description: "Whether the action bar sits above or below the list." },
|
|
5297
5341
|
{ configKey: "actionsAlign", attribute: "actions-align", converter: W(["stretch", "left", "right", "center", "space-between"], { default: "stretch" }), on: "update", description: "Horizontal alignment of the action buttons." },
|
|
5298
5342
|
{ configKey: "checkboxAlign", attribute: "checkbox-align", converter: W(["top", "center", "bottom"], { default: "center" }), on: "update", description: "Vertical alignment of an option checkbox." },
|
|
5299
5343
|
{ configKey: "valueFormat", attribute: "value-format", converter: W(["json", "csv", "array"], { default: "json" }), on: "reinit", description: "Serialization format the control emits its value in." },
|
|
5300
|
-
{ configKey: "badgeTooltipPlacement", attribute: "badge-tooltip-placement", converter: W(
|
|
5301
|
-
{ configKey: "optionTooltipPlacement", attribute: "option-tooltip-placement", converter: W(
|
|
5344
|
+
{ configKey: "badgeTooltipPlacement", attribute: "badge-tooltip-placement", converter: W(Ys, { default: "top" }), on: "update", description: "Preferred placement of a badge tooltip relative to its badge (floating-ui placement)." },
|
|
5345
|
+
{ configKey: "optionTooltipPlacement", attribute: "option-tooltip-placement", converter: W(Ys, { default: "top-start" }), on: "update", description: "Preferred placement of an option tooltip (floating-ui placement)." },
|
|
5302
5346
|
{
|
|
5303
5347
|
configKey: "mobilePresentation",
|
|
5304
5348
|
attribute: "mobile-presentation",
|
|
@@ -5350,63 +5394,63 @@ const _o = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
5350
5394
|
{ configKey: "isOptionTooltipFollowCursor", attribute: "option-tooltip-follow-cursor", converter: B("default-false"), on: "update", description: "Make option tooltips follow the pointer." },
|
|
5351
5395
|
{ configKey: "isSearchModeToggleShown", attribute: "show-search-mode-toggle", converter: B("default-false"), on: "update", description: "Show a clickable toggle in the phone fullscreen overlay search header that flips `search-mode` between `filter` and `navigate` live. Fullscreen-only; no effect in the floating presentation or when search is disabled." },
|
|
5352
5396
|
// ── Special attributes ───────────────────────────────────────────────────
|
|
5353
|
-
{ configKey: "initialValues", attribute: "initial-values", converter:
|
|
5397
|
+
{ configKey: "initialValues", attribute: "initial-values", converter: cn(), default: [], on: "reinit", type: "Array<string | number>", description: 'Values selected on first render. Accepts a JSON array (`["a","b"]`) or a bare CSV (`a,b,c`).' },
|
|
5354
5398
|
{ configKey: "showDebugInfo", attribute: "show-debug-info", converter: B("default-false"), on: "update", description: "Render an in-component debug panel.", deprecated: "Use per-instance logging (el.enableLogging()) instead." },
|
|
5355
5399
|
// ── Complex property (data) ──────────────────────────────────────────────
|
|
5356
|
-
{ configKey: "options", converter:
|
|
5357
|
-
{ configKey: "optionsSource", attribute: "data-options", converter:
|
|
5358
|
-
{ configKey: "optionsFormat", attribute: "data-options-format", converter: W(
|
|
5359
|
-
{ configKey: "optionsSplitter", attribute: "data-options-splitter", converter:
|
|
5360
|
-
{ configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter:
|
|
5400
|
+
{ configKey: "options", converter: Ko(), on: "reinit", type: "ReadonlyArray<Record<string, unknown>>", description: "The array of option objects to render. The JS API — assign `el.options` directly. For HTML authoring use the `data-options` attribute (parsed per `data-options-format`) or declarative <option> children; both feed the same list and take precedence over this property in the order: <option> children > property > data-options." },
|
|
5401
|
+
{ configKey: "optionsSource", attribute: "data-options", converter: z({ isNullable: !0 }), on: "reinit", type: "string", description: "HTML-authoring source for the option list, parsed per `data-options-format`. Reactive: changing either attribute re-renders. Prefer the `options` property in JS; a set `options` property and declarative <option> children both win over this." },
|
|
5402
|
+
{ configKey: "optionsFormat", attribute: "data-options-format", converter: W(dn, { default: "json" }), on: "reinit", type: "'json' | 'csv' | 'plain'", description: "How to parse the `data-options` attribute: `json` (a JSON array of objects or [value, label] tuples), `csv` (rows split on `data-options-row-splitter`, cells on `data-options-splitter`; the first row is a header — map columns via *-member), or `plain` (bare values split on both splitters -> [value, label] tuples, value === label). Default `json`." },
|
|
5403
|
+
{ configKey: "optionsSplitter", attribute: "data-options-splitter", converter: z({ default: "," }), on: "reinit", type: "string", description: 'Field/cell delimiter for the `csv` and `plain` `data-options` formats. Default `,`. Escapes `\\t` `\\n` `\\r` are honoured (e.g. `data-options-splitter="\\t"` for TSV). Ignored for `json`.' },
|
|
5404
|
+
{ configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter: z({ default: `
|
|
5361
5405
|
` }), on: "reinit", type: "string", description: 'Row/record delimiter for the `csv` and `plain` `data-options` formats. Default newline. Escapes honoured (e.g. `data-options-row-splitter=";"` for single-line data). Ignored for `json`.' },
|
|
5362
|
-
{ configKey: "actionButtons", converter:
|
|
5406
|
+
{ configKey: "actionButtons", converter: Fo({ validate: (s) => Array.isArray(s) }), on: "reinit", type: "Array<Record<string, unknown>>", description: "Custom action buttons for the dropdown footer/header. Property-only; when unset the default Select-All / Clear buttons apply." },
|
|
5363
5407
|
// ── Callbacks: data shape (structural → reinit) ──────────────────────────
|
|
5364
|
-
{ configKey: "getValueCallback", converter:
|
|
5365
|
-
{ configKey: "getPathCallback", converter:
|
|
5366
|
-
{ configKey: "getGroupCallback", converter:
|
|
5367
|
-
{ configKey: "getDisabledCallback", converter:
|
|
5368
|
-
{ configKey: "getIsSelectableCallback", converter:
|
|
5369
|
-
{ configKey: "getSearchValueCallback", converter:
|
|
5370
|
-
{ configKey: "searchCallback", converter:
|
|
5408
|
+
{ configKey: "getValueCallback", converter: N(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
|
|
5409
|
+
{ configKey: "getPathCallback", converter: N(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
|
|
5410
|
+
{ configKey: "getGroupCallback", converter: N(), on: "reinit", type: "(item: unknown) => string", description: "Extract the group name from an option (overrides groupMember)." },
|
|
5411
|
+
{ configKey: "getDisabledCallback", converter: N(), on: "reinit", type: "(item: unknown) => boolean", description: "Whether an option is disabled (overrides disabledMember)." },
|
|
5412
|
+
{ configKey: "getIsSelectableCallback", converter: N(), on: "reinit", type: "(node: unknown) => boolean", description: "Whether a tree node can be selected (overrides is-selectable-member)." },
|
|
5413
|
+
{ configKey: "getSearchValueCallback", converter: N(), on: "reinit", type: "(item: unknown) => string", description: "Text an option is searched against (overrides searchValueMember)." },
|
|
5414
|
+
{ configKey: "searchCallback", converter: N(), on: "reinit", type: "(searchTerm: string, signal?: AbortSignal) => Promise<unknown[]>", description: "Custom / async search; return the filtered options." },
|
|
5371
5415
|
// ── Callbacks: display / render (cosmetic → update) ──────────────────────
|
|
5372
|
-
{ configKey: "getDisplayValueCallback", converter:
|
|
5373
|
-
{ configKey: "getBadgeDisplayCallback", converter:
|
|
5374
|
-
{ configKey: "getBadgeClassCallback", converter:
|
|
5375
|
-
{ configKey: "getIconCallback", converter:
|
|
5376
|
-
{ configKey: "getSubtitleCallback", converter:
|
|
5377
|
-
{ configKey: "getFullTitleCallback", converter:
|
|
5378
|
-
{ configKey: "getCounterCallback", converter:
|
|
5379
|
-
{ configKey: "getValueFormatCallback", converter:
|
|
5380
|
-
{ configKey: "getBadgeTooltipCallback", converter:
|
|
5381
|
-
{ configKey: "getOptionTooltipCallback", converter:
|
|
5382
|
-
{ configKey: "getRemoveButtonTooltipCallback", converter:
|
|
5383
|
-
{ configKey: "getSelectedItemClassCallback", converter:
|
|
5384
|
-
{ configKey: "renderOptionContentCallback", converter:
|
|
5385
|
-
{ configKey: "renderBadgeContentCallback", converter:
|
|
5386
|
-
{ configKey: "renderBadgeCallback", converter:
|
|
5387
|
-
{ configKey: "renderGroupLabelContentCallback", converter:
|
|
5388
|
-
{ configKey: "renderSelectedContentCallback", converter:
|
|
5389
|
-
{ configKey: "renderSelectedItemContentCallback", converter:
|
|
5390
|
-
{ configKey: "customStylesCallback", converter:
|
|
5416
|
+
{ configKey: "getDisplayValueCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Compute the display label for an option (overrides displayValueMember)." },
|
|
5417
|
+
{ configKey: "getBadgeDisplayCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Compute the text shown on an option badge." },
|
|
5418
|
+
{ configKey: "getBadgeClassCallback", converter: N(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for an option badge." },
|
|
5419
|
+
{ configKey: "getIconCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Icon for an option (overrides iconMember)." },
|
|
5420
|
+
{ configKey: "getSubtitleCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Subtitle for an option (overrides subtitleMember)." },
|
|
5421
|
+
{ configKey: "getFullTitleCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Full title for an option (used by badges when show-badge-full-title is on)." },
|
|
5422
|
+
{ configKey: "getCounterCallback", converter: N(), on: "update", type: "(count: number, moreCount?: number) => string", description: "Render the selected-count label." },
|
|
5423
|
+
{ configKey: "getValueFormatCallback", converter: N(), on: "update", type: "(selectedValues: (string | number)[]) => string", description: "Serialize the selected values for form submission." },
|
|
5424
|
+
{ configKey: "getBadgeTooltipCallback", converter: N(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option badge." },
|
|
5425
|
+
{ configKey: "getOptionTooltipCallback", converter: N(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option row." },
|
|
5426
|
+
{ configKey: "getRemoveButtonTooltipCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Tooltip text for a badge remove button." },
|
|
5427
|
+
{ configKey: "getSelectedItemClassCallback", converter: N(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for a selected item." },
|
|
5428
|
+
{ configKey: "renderOptionContentCallback", converter: N(), on: "update", type: "(item: unknown, context: OptionContentRenderContext) => string | HTMLElement", description: "Custom render for an option row; may return HTML or an element." },
|
|
5429
|
+
{ configKey: "renderBadgeContentCallback", converter: N(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for a badge content (fills the built-in pill); may return HTML or an element." },
|
|
5430
|
+
{ configKey: "renderBadgeCallback", converter: N(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement | null", description: 'Custom render for the WHOLE badge (main area), not just its content — return the entire pill/card. The component wraps it in `.ms__badge.ms__badge--custom` with `data-value` and delegates removal to any inner element with `data-action="remove"` (or `.ms__badge-remove`). Return null/empty to fall back to the default pill for that item.' },
|
|
5431
|
+
{ configKey: "renderGroupLabelContentCallback", converter: N(), on: "update", type: "(groupName: string) => string | HTMLElement", description: "Customize a group label; may return an HTML string or element." },
|
|
5432
|
+
{ configKey: "renderSelectedContentCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Custom render for the whole selected area." },
|
|
5433
|
+
{ configKey: "renderSelectedItemContentCallback", converter: N(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Custom render for one selected item." },
|
|
5434
|
+
{ configKey: "customStylesCallback", converter: N(), on: "update", type: "() => string", description: "Returns a CSS string injected into the component via a replaceable style slot (§12.8)." },
|
|
5391
5435
|
// ── Callbacks: before-hooks (behavior-shaping) ───────────────────────────
|
|
5392
|
-
{ configKey: "beforeSearchCallback", converter:
|
|
5393
|
-
{ configKey: "beforeSelectCallback", converter:
|
|
5394
|
-
{ configKey: "beforeDeselectCallback", converter:
|
|
5395
|
-
{ configKey: "addNewCallback", converter:
|
|
5396
|
-
{ configKey: "keydownCallback", converter:
|
|
5397
|
-
],
|
|
5436
|
+
{ configKey: "beforeSearchCallback", converter: N(), on: "update", type: "(searchTerm: string) => string | null", description: "Runs before a search; return a rewritten term or null to veto." },
|
|
5437
|
+
{ configKey: "beforeSelectCallback", converter: N(), on: "update", type: "(option: unknown, selectedOptions: unknown[]) => boolean | string | void", description: "Runs before selecting; return false to veto, or a string to veto and show it as a message." },
|
|
5438
|
+
{ configKey: "beforeDeselectCallback", converter: N(), on: "update", type: "(option: unknown, selectedOptions: unknown[]) => boolean | string | void", description: "Runs before deselecting; return false to veto, or a string to veto and show it as a message." },
|
|
5439
|
+
{ configKey: "addNewCallback", converter: N(), on: "update", type: "(value: string) => unknown | Promise<unknown>", description: "Create a new option from the typed text." },
|
|
5440
|
+
{ configKey: "keydownCallback", converter: N(), on: "update", type: "(context: MultiSelectKeydownContext) => boolean | void", description: "Intercept keydown before built-in handling; return true to suppress the default. Gets the event, current state, and an imperative controller." }
|
|
5441
|
+
], bn = [
|
|
5398
5442
|
{ name: "select", description: "An option was selected. `detail.option` is the selected option; `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
|
|
5399
5443
|
{ name: "deselect", description: "An option was removed from the selection. `detail.option` is that option." },
|
|
5400
5444
|
{ name: "change", description: "The selection changed. `detail.selectedOptions`/`detail.selectedValues` are the full selection." }
|
|
5401
|
-
],
|
|
5445
|
+
], Js = /* @__PURE__ */ new Set(["dropdownWidth", "selectedPopoverWidth", "showDebugInfo", "initialValues", "optionsSource", "optionsFormat", "optionsSplitter", "optionsRowSplitter", "mobilePresentation", "collapseBadgesBelow"]), gt = {
|
|
5402
5446
|
dropdownWidth: "--ms-dropdown-width",
|
|
5403
5447
|
selectedPopoverWidth: "--ms-selected-popover-width"
|
|
5404
5448
|
};
|
|
5405
|
-
let
|
|
5406
|
-
function
|
|
5407
|
-
return
|
|
5449
|
+
let vn = null;
|
|
5450
|
+
function yn() {
|
|
5451
|
+
return vn ?? (vn = Ai(Oo, "--ms-"));
|
|
5408
5452
|
}
|
|
5409
|
-
const
|
|
5453
|
+
const wn = [
|
|
5410
5454
|
{ key: "valueMember", member: "value", callbackKey: "getValueCallback" },
|
|
5411
5455
|
{ key: "displayValueMember", member: "label", callbackKey: "getDisplayValueCallback" },
|
|
5412
5456
|
{ key: "groupMember", member: "group", callbackKey: "getGroupCallback" },
|
|
@@ -5414,26 +5458,26 @@ const ln = [
|
|
|
5414
5458
|
{ key: "subtitleMember", member: "subtitle", callbackKey: "getSubtitleCallback" },
|
|
5415
5459
|
{ key: "disabledMember", member: "disabled", callbackKey: "getDisabledCallback" }
|
|
5416
5460
|
];
|
|
5417
|
-
var Z,
|
|
5418
|
-
class
|
|
5461
|
+
var Z, O, fe, ct, dt, ht, He, Fe, Ie, x, wt, ge, xt, is, rs, ns, as, Po, Mo, Lo, _t, ls, Eo, Ao, zo, cs, No, Vo, ds, hs;
|
|
5462
|
+
class tt extends Yt {
|
|
5419
5463
|
constructor() {
|
|
5420
5464
|
super();
|
|
5421
5465
|
L(this, x);
|
|
5422
5466
|
L(this, Z);
|
|
5423
|
-
L(this,
|
|
5467
|
+
L(this, O);
|
|
5424
5468
|
L(this, fe);
|
|
5425
|
-
L(this,
|
|
5469
|
+
L(this, ct, null);
|
|
5426
5470
|
// Dev-mode customStylesCallback lint: unknown --ms-* names already warned about.
|
|
5427
|
-
L(this,
|
|
5471
|
+
L(this, dt, /* @__PURE__ */ new Set());
|
|
5428
5472
|
// Declarative <option>/<optgroup> state (parsed once from light DOM).
|
|
5429
|
-
L(this,
|
|
5473
|
+
L(this, ht, !1);
|
|
5430
5474
|
L(this, He, !1);
|
|
5431
5475
|
L(this, Fe);
|
|
5432
5476
|
L(this, Ie);
|
|
5433
5477
|
// ── container-responsive badge collapse (core §12.9 `resized`) ─────────────
|
|
5434
5478
|
/** Whether the live picker is currently forced to the collapsed count view. */
|
|
5435
5479
|
L(this, ge, !1);
|
|
5436
|
-
I(this, Z, this.attachShadow({ mode: "open" })),
|
|
5480
|
+
I(this, Z, this.attachShadow({ mode: "open" })), Li(h(this, Z), Oo), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-ready", "")) : this.setAttribute("data-ready", "");
|
|
5437
5481
|
}
|
|
5438
5482
|
/**
|
|
5439
5483
|
* Called by the browser when the surrounding <form> is reset. Clears the
|
|
@@ -5441,7 +5485,7 @@ class et extends Gt {
|
|
|
5441
5485
|
*/
|
|
5442
5486
|
formResetCallback() {
|
|
5443
5487
|
var t;
|
|
5444
|
-
(t = h(this,
|
|
5488
|
+
(t = h(this, O)) == null || t.clearAll();
|
|
5445
5489
|
}
|
|
5446
5490
|
// ── core lifecycle hooks ──────────────────────────────────────────────────
|
|
5447
5491
|
/** Runtime writing-direction switch (core observes `dir`): re-mirror the live
|
|
@@ -5450,28 +5494,28 @@ class et extends Gt {
|
|
|
5450
5494
|
* and the panels' explicit `dir`). The initial direction is read by the build. */
|
|
5451
5495
|
directionChanged(t) {
|
|
5452
5496
|
var o;
|
|
5453
|
-
(o = h(this,
|
|
5497
|
+
(o = h(this, O)) == null || o.refreshDirection();
|
|
5454
5498
|
}
|
|
5455
5499
|
/** Structural change (or first connect): mirror CSS vars, then (re)build the picker. */
|
|
5456
5500
|
reinit() {
|
|
5457
|
-
v(this, x,
|
|
5501
|
+
v(this, x, Ao).call(this), this.isConnected && v(this, x, ns).call(this);
|
|
5458
5502
|
}
|
|
5459
5503
|
/** Cosmetic change: mirror CSS vars / custom styles / debug, patch the picker in place. */
|
|
5460
5504
|
update(t) {
|
|
5461
|
-
v(this, x,
|
|
5505
|
+
v(this, x, zo).call(this, t), "customStylesCallback" in t && v(this, x, ls).call(this), "showDebugInfo" in t && v(this, x, ds).call(this);
|
|
5462
5506
|
const o = {};
|
|
5463
5507
|
for (const [i, r] of Object.entries(t))
|
|
5464
|
-
|
|
5465
|
-
h(this,
|
|
5508
|
+
Js.has(i) || (o[i] = r === null ? void 0 : r);
|
|
5509
|
+
h(this, O) && Object.keys(o).length > 0 && (h(this, O).updateOptions(o) || v(this, x, ns).call(this)), "mobilePresentation" in t && v(this, x, wt).call(this, It()), "collapseBadgesBelow" in t && v(this, x, xt).call(this, this.getBoundingClientRect().width);
|
|
5466
5510
|
}
|
|
5467
5511
|
/** Activate: ensure the picker exists (a DOM move destroyed it in disconnect()). */
|
|
5468
5512
|
connect() {
|
|
5469
|
-
h(this,
|
|
5513
|
+
h(this, O) || v(this, x, as).call(this);
|
|
5470
5514
|
}
|
|
5471
5515
|
/** Deactivate: tear the picker down (rebuilt on the next connect). */
|
|
5472
5516
|
disconnect() {
|
|
5473
5517
|
var t;
|
|
5474
|
-
(t = h(this,
|
|
5518
|
+
(t = h(this, O)) == null || t.destroy(), I(this, O, void 0);
|
|
5475
5519
|
}
|
|
5476
5520
|
/**
|
|
5477
5521
|
* Device/viewport/orientation changed (core §12.9). Overriding this opts the
|
|
@@ -5493,7 +5537,7 @@ class et extends Gt {
|
|
|
5493
5537
|
* below` is set; otherwise it's a cheap no-op.
|
|
5494
5538
|
*/
|
|
5495
5539
|
resized({ width: t }) {
|
|
5496
|
-
v(this, x,
|
|
5540
|
+
v(this, x, xt).call(this, t);
|
|
5497
5541
|
}
|
|
5498
5542
|
// ── non-input public API ──────────────────────────────────────────────────
|
|
5499
5543
|
/** Form field name (mirrors the `name` attribute → `formFieldId`). */
|
|
@@ -5505,21 +5549,21 @@ class et extends Gt {
|
|
|
5505
5549
|
}
|
|
5506
5550
|
get selectedValue() {
|
|
5507
5551
|
var t;
|
|
5508
|
-
return this.flush(), ((t = h(this,
|
|
5552
|
+
return this.flush(), ((t = h(this, O)) == null ? void 0 : t.selectedValue) ?? null;
|
|
5509
5553
|
}
|
|
5510
5554
|
get selectedItem() {
|
|
5511
5555
|
var t;
|
|
5512
|
-
return this.flush(), ((t = h(this,
|
|
5556
|
+
return this.flush(), ((t = h(this, O)) == null ? void 0 : t.selectedItem) ?? null;
|
|
5513
5557
|
}
|
|
5514
5558
|
getSelected() {
|
|
5515
|
-
return this.flush(), h(this,
|
|
5559
|
+
return this.flush(), h(this, O) ? h(this, O).getSelected() : [];
|
|
5516
5560
|
}
|
|
5517
5561
|
setSelected(t, o = {}) {
|
|
5518
5562
|
var i;
|
|
5519
|
-
this.flush(), (i = h(this,
|
|
5563
|
+
this.flush(), (i = h(this, O)) == null || i.setSelected(t, o);
|
|
5520
5564
|
}
|
|
5521
5565
|
getValue() {
|
|
5522
|
-
return this.flush(), h(this,
|
|
5566
|
+
return this.flush(), h(this, O) ? h(this, O).getValue() : null;
|
|
5523
5567
|
}
|
|
5524
5568
|
/**
|
|
5525
5569
|
* Surface a transient message ("toast") on top of the component — visible even in the
|
|
@@ -5530,47 +5574,47 @@ class et extends Gt {
|
|
|
5530
5574
|
*/
|
|
5531
5575
|
showMessage(t, o) {
|
|
5532
5576
|
var i;
|
|
5533
|
-
this.flush(), (i = h(this,
|
|
5577
|
+
this.flush(), (i = h(this, O)) == null || i.showMessage(t, o);
|
|
5534
5578
|
}
|
|
5535
5579
|
/** Dismiss the transient message shown by {@link showMessage}, if any. */
|
|
5536
5580
|
hideMessage() {
|
|
5537
5581
|
var t;
|
|
5538
|
-
(t = h(this,
|
|
5582
|
+
(t = h(this, O)) == null || t.hideMessage();
|
|
5539
5583
|
}
|
|
5540
5584
|
// ── imperative open/close API (flush pending writes, then delegate) ─────────
|
|
5541
5585
|
/** Open the dropdown. */
|
|
5542
5586
|
open() {
|
|
5543
5587
|
var t;
|
|
5544
|
-
this.flush(), (t = h(this,
|
|
5588
|
+
this.flush(), (t = h(this, O)) == null || t.open();
|
|
5545
5589
|
}
|
|
5546
5590
|
/** Close the dropdown. */
|
|
5547
5591
|
close() {
|
|
5548
5592
|
var t;
|
|
5549
|
-
this.flush(), (t = h(this,
|
|
5593
|
+
this.flush(), (t = h(this, O)) == null || t.close();
|
|
5550
5594
|
}
|
|
5551
5595
|
/** Toggle the dropdown open/closed. */
|
|
5552
5596
|
toggle() {
|
|
5553
5597
|
var t;
|
|
5554
|
-
this.flush(), (t = h(this,
|
|
5598
|
+
this.flush(), (t = h(this, O)) == null || t.toggle();
|
|
5555
5599
|
}
|
|
5556
5600
|
/** Whether the dropdown is currently open. Assigning opens/closes it. */
|
|
5557
5601
|
get isOpen() {
|
|
5558
5602
|
var t;
|
|
5559
|
-
return this.flush(), ((t = h(this,
|
|
5603
|
+
return this.flush(), ((t = h(this, O)) == null ? void 0 : t.isOpen) ?? !1;
|
|
5560
5604
|
}
|
|
5561
5605
|
set isOpen(t) {
|
|
5562
|
-
this.flush(), h(this,
|
|
5606
|
+
this.flush(), h(this, O) && (h(this, O).isOpen = t);
|
|
5563
5607
|
}
|
|
5564
5608
|
destroy() {
|
|
5565
5609
|
var t;
|
|
5566
|
-
(t = h(this,
|
|
5610
|
+
(t = h(this, O)) == null || t.destroy();
|
|
5567
5611
|
}
|
|
5568
5612
|
}
|
|
5569
|
-
Z = new WeakMap(),
|
|
5613
|
+
Z = new WeakMap(), O = new WeakMap(), fe = new WeakMap(), ct = new WeakMap(), dt = new WeakMap(), ht = new WeakMap(), He = new WeakMap(), Fe = new WeakMap(), Ie = new WeakMap(), x = new WeakSet(), /** Resolve `mobile-presentation` against `env` and relay it to the live picker. */
|
|
5570
5614
|
wt = function(t) {
|
|
5571
5615
|
var r;
|
|
5572
|
-
const o = this.config.mobilePresentation ?? "auto", i =
|
|
5573
|
-
(r = h(this,
|
|
5616
|
+
const o = this.config.mobilePresentation ?? "auto", i = $i(o, t);
|
|
5617
|
+
(r = h(this, O)) == null || r.setPresentation(i === "modal" ? "fullscreen" : i);
|
|
5574
5618
|
}, ge = new WeakMap(), /**
|
|
5575
5619
|
* Resolve `collapse-badges-below` against `width` and relay the decision to the
|
|
5576
5620
|
* live picker. The override is pushed via `updateOptions` (never written back to
|
|
@@ -5578,42 +5622,42 @@ wt = function(t) {
|
|
|
5578
5622
|
* and widening past the threshold restores it exactly. A structural JS decision,
|
|
5579
5623
|
* so it lives here rather than in a CSS container query.
|
|
5580
5624
|
*/
|
|
5581
|
-
|
|
5625
|
+
xt = function(t) {
|
|
5582
5626
|
const o = this.config.collapseBadgesBelow;
|
|
5583
5627
|
if (o == null) {
|
|
5584
|
-
h(this, ge) && (I(this, ge, !1), v(this, x,
|
|
5628
|
+
h(this, ge) && (I(this, ge, !1), v(this, x, is).call(this));
|
|
5585
5629
|
return;
|
|
5586
5630
|
}
|
|
5587
5631
|
const i = t > 0 && t < o;
|
|
5588
|
-
i !== h(this, ge) && (I(this, ge, i), i ? v(this, x,
|
|
5632
|
+
i !== h(this, ge) && (I(this, ge, i), i ? v(this, x, rs).call(this, "count") : v(this, x, is).call(this));
|
|
5589
5633
|
}, /** Re-assert the consumer's configured badges mode from the pristine base config. */
|
|
5590
|
-
|
|
5634
|
+
is = function() {
|
|
5591
5635
|
const t = this.config.badgesDisplayMode ?? "badges";
|
|
5592
|
-
v(this, x,
|
|
5636
|
+
v(this, x, rs).call(this, t);
|
|
5593
5637
|
}, /** Relay a badges-display-mode override to the live picker (never written to `this.config`). */
|
|
5594
|
-
|
|
5638
|
+
rs = function(t) {
|
|
5595
5639
|
var o;
|
|
5596
|
-
(o = h(this,
|
|
5640
|
+
(o = h(this, O)) == null || o.updateOptions({ badgesDisplayMode: t });
|
|
5597
5641
|
}, // ── picker lifecycle ──────────────────────────────────────────────────────
|
|
5598
|
-
|
|
5642
|
+
ns = function() {
|
|
5599
5643
|
var t;
|
|
5600
|
-
(t = h(this,
|
|
5601
|
-
},
|
|
5602
|
-
v(this, x,
|
|
5603
|
-
const t = v(this, x,
|
|
5604
|
-
o && o.length > 0 ? h(this, fe).dataset.initialValues = JSON.stringify(o) : delete h(this, fe).dataset.initialValues, I(this,
|
|
5605
|
-
},
|
|
5644
|
+
(t = h(this, O)) == null || t.destroy(), I(this, O, void 0), v(this, x, as).call(this);
|
|
5645
|
+
}, as = function() {
|
|
5646
|
+
v(this, x, Po).call(this), v(this, x, No).call(this);
|
|
5647
|
+
const t = v(this, x, Mo).call(this), o = v(this, x, Lo).call(this);
|
|
5648
|
+
o && o.length > 0 ? h(this, fe).dataset.initialValues = JSON.stringify(o) : delete h(this, fe).dataset.initialValues, I(this, O, new ln(h(this, fe), t)), v(this, x, ls).call(this), v(this, x, ds).call(this), v(this, x, wt).call(this, It()), I(this, ge, !1), v(this, x, xt).call(this, this.getBoundingClientRect().width);
|
|
5649
|
+
}, Po = function() {
|
|
5606
5650
|
if (h(this, fe)) return;
|
|
5607
5651
|
const t = document.createElement("div");
|
|
5608
|
-
t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), h(this, Z).appendChild(t), I(this,
|
|
5652
|
+
t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), h(this, Z).appendChild(t), I(this, ct, Ei(h(this, Z), { position: "first", className: "ms-custom-styles" })), I(this, fe, t);
|
|
5609
5653
|
}, /**
|
|
5610
5654
|
* Build the picker config from the merged `this.config`, minus the keys the
|
|
5611
5655
|
* picker doesn't own, plus the runtime wiring (event bridges, container, host,
|
|
5612
5656
|
* declarative option data + member defaults, counter default).
|
|
5613
5657
|
*/
|
|
5614
|
-
|
|
5658
|
+
Mo = function() {
|
|
5615
5659
|
const t = { ...this.config };
|
|
5616
|
-
for (const i of
|
|
5660
|
+
for (const i of Js) delete t[i];
|
|
5617
5661
|
for (const i of Object.keys(t))
|
|
5618
5662
|
t[i] === null && delete t[i];
|
|
5619
5663
|
let o = t.options;
|
|
@@ -5622,7 +5666,7 @@ Co = function() {
|
|
|
5622
5666
|
else if (!o || o.length === 0) {
|
|
5623
5667
|
const i = this.config.optionsSource;
|
|
5624
5668
|
if (i != null) {
|
|
5625
|
-
const r = this.config.optionsFormat ?? "json", { options: n, error: a } =
|
|
5669
|
+
const r = this.config.optionsFormat ?? "json", { options: n, error: a } = hn(i, r, {
|
|
5626
5670
|
splitter: this.config.optionsSplitter,
|
|
5627
5671
|
rowSplitter: this.config.optionsRowSplitter
|
|
5628
5672
|
});
|
|
@@ -5630,40 +5674,40 @@ Co = function() {
|
|
|
5630
5674
|
}
|
|
5631
5675
|
}
|
|
5632
5676
|
if (t.options = o, h(this, He))
|
|
5633
|
-
for (const { key: i, member: r, callbackKey: n } of
|
|
5677
|
+
for (const { key: i, member: r, callbackKey: n } of wn)
|
|
5634
5678
|
t[i] === void 0 && !t[n] && (t[i] = r);
|
|
5635
5679
|
return t.getCounterCallback || (t.getCounterCallback = (i, r) => r !== void 0 ? `+${r} more` : `${i} selected`), t.onSelect = (i) => {
|
|
5636
5680
|
var r;
|
|
5637
5681
|
this.emit("select", {
|
|
5638
5682
|
option: i,
|
|
5639
|
-
selectedOptions: ((r = h(this,
|
|
5640
|
-
selectedValues: v(this, x,
|
|
5683
|
+
selectedOptions: ((r = h(this, O)) == null ? void 0 : r.getSelected()) ?? [],
|
|
5684
|
+
selectedValues: v(this, x, _t).call(this)
|
|
5641
5685
|
});
|
|
5642
5686
|
}, t.onDeselect = (i) => {
|
|
5643
5687
|
var r;
|
|
5644
5688
|
this.emit("deselect", {
|
|
5645
5689
|
option: i,
|
|
5646
|
-
selectedOptions: ((r = h(this,
|
|
5647
|
-
selectedValues: v(this, x,
|
|
5690
|
+
selectedOptions: ((r = h(this, O)) == null ? void 0 : r.getSelected()) ?? [],
|
|
5691
|
+
selectedValues: v(this, x, _t).call(this)
|
|
5648
5692
|
});
|
|
5649
5693
|
}, t.onChange = (i) => {
|
|
5650
5694
|
this.emit("change", {
|
|
5651
5695
|
selectedOptions: i,
|
|
5652
|
-
selectedValues: v(this, x,
|
|
5696
|
+
selectedValues: v(this, x, _t).call(this)
|
|
5653
5697
|
});
|
|
5654
5698
|
}, t.container = h(this, Z), t.hostElement = this, t;
|
|
5655
|
-
},
|
|
5699
|
+
}, Lo = function() {
|
|
5656
5700
|
if (h(this, Ie) && h(this, Ie).length > 0)
|
|
5657
5701
|
return h(this, Ie);
|
|
5658
5702
|
const t = this.config.initialValues;
|
|
5659
5703
|
return t && t.length > 0 ? t : void 0;
|
|
5660
|
-
},
|
|
5704
|
+
}, _t = function() {
|
|
5661
5705
|
var o;
|
|
5662
|
-
const t = (o = h(this,
|
|
5706
|
+
const t = (o = h(this, O)) == null ? void 0 : o.getValue();
|
|
5663
5707
|
return t == null ? [] : Array.isArray(t) ? t : [t];
|
|
5664
5708
|
}, // ── §12.8 custom styles ───────────────────────────────────────────────────
|
|
5665
|
-
|
|
5666
|
-
const t = h(this,
|
|
5709
|
+
ls = function() {
|
|
5710
|
+
const t = h(this, ct);
|
|
5667
5711
|
if (!t) return;
|
|
5668
5712
|
const o = this.config.customStylesCallback;
|
|
5669
5713
|
if (typeof o != "function") {
|
|
@@ -5672,7 +5716,7 @@ rs = function() {
|
|
|
5672
5716
|
}
|
|
5673
5717
|
try {
|
|
5674
5718
|
const i = o();
|
|
5675
|
-
t.set(i), i && v(this, x,
|
|
5719
|
+
t.set(i), i && v(this, x, Eo).call(this, i);
|
|
5676
5720
|
} catch (i) {
|
|
5677
5721
|
K.warn("[MultiSelectElement] customStylesCallback threw", i), t.clear();
|
|
5678
5722
|
}
|
|
@@ -5685,28 +5729,28 @@ rs = function() {
|
|
|
5685
5729
|
* De-duped per instance. If you genuinely define a `--ms-*` var for your own
|
|
5686
5730
|
* custom-rendered content, ignore the warning (or use a different prefix).
|
|
5687
5731
|
*/
|
|
5688
|
-
|
|
5689
|
-
const o =
|
|
5732
|
+
Eo = function(t) {
|
|
5733
|
+
const o = yn();
|
|
5690
5734
|
if (o.size !== 0)
|
|
5691
|
-
for (const { name: i, suggestions: r } of
|
|
5692
|
-
h(this,
|
|
5735
|
+
for (const { name: i, suggestions: r } of Vi(t, { prefix: "--ms-", consumed: o }))
|
|
5736
|
+
h(this, dt).has(i) || (h(this, dt).add(i), console.warn(
|
|
5693
5737
|
`[web-multiselect] customStylesCallback sets "${i}", which no web-multiselect style consumes — it will have no effect.` + (r.length ? ` Did you mean: ${r.join(", ")}?` : "") + " (If it's for your own custom-rendered content, ignore this.)"
|
|
5694
5738
|
));
|
|
5695
5739
|
}, // ── CSS-var sugar ─────────────────────────────────────────────────────────
|
|
5696
|
-
|
|
5697
|
-
for (const t of Object.keys(
|
|
5698
|
-
},
|
|
5699
|
-
for (const o of Object.keys(
|
|
5700
|
-
o in t && v(this, x,
|
|
5701
|
-
},
|
|
5740
|
+
Ao = function() {
|
|
5741
|
+
for (const t of Object.keys(gt)) v(this, x, cs).call(this, gt[t], this.config[t]);
|
|
5742
|
+
}, zo = function(t) {
|
|
5743
|
+
for (const o of Object.keys(gt))
|
|
5744
|
+
o in t && v(this, x, cs).call(this, gt[o], t[o]);
|
|
5745
|
+
}, cs = function(t, o) {
|
|
5702
5746
|
o == null || o === "" ? this.style.removeProperty(t) : this.style.setProperty(t, String(o));
|
|
5703
5747
|
}, // ── declarative <option> parsing (light DOM, once) ────────────────────────
|
|
5704
|
-
|
|
5705
|
-
if (h(this,
|
|
5706
|
-
I(this,
|
|
5707
|
-
const t = v(this, x,
|
|
5748
|
+
No = function() {
|
|
5749
|
+
if (h(this, ht)) return;
|
|
5750
|
+
I(this, ht, !0);
|
|
5751
|
+
const t = v(this, x, Vo).call(this);
|
|
5708
5752
|
t && (I(this, Fe, t), I(this, He, !0));
|
|
5709
|
-
},
|
|
5753
|
+
}, Vo = function() {
|
|
5710
5754
|
const t = Array.from(this.children);
|
|
5711
5755
|
if (t.length === 0) return null;
|
|
5712
5756
|
const o = [];
|
|
@@ -5733,7 +5777,7 @@ Oo = function() {
|
|
|
5733
5777
|
(n.tagName === "OPTION" || n.tagName === "OPTGROUP") && n.remove();
|
|
5734
5778
|
return o;
|
|
5735
5779
|
}, // ── debug panel (deprecated; kept for back-compat) ────────────────────────
|
|
5736
|
-
|
|
5780
|
+
ds = function() {
|
|
5737
5781
|
const t = h(this, Z).querySelector(".ms__debug-info");
|
|
5738
5782
|
if (t && t.remove(), !this.config.showDebugInfo) return;
|
|
5739
5783
|
const o = document.createElement("div");
|
|
@@ -5741,12 +5785,12 @@ as = function() {
|
|
|
5741
5785
|
const i = document.createElement("details"), r = document.createElement("summary");
|
|
5742
5786
|
r.textContent = "Debug Info";
|
|
5743
5787
|
const n = document.createElement("div");
|
|
5744
|
-
n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), h(this, Z).appendChild(o), v(this, x,
|
|
5745
|
-
},
|
|
5788
|
+
n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), h(this, Z).appendChild(o), v(this, x, hs).call(this);
|
|
5789
|
+
}, hs = function() {
|
|
5746
5790
|
var l, c, d, u;
|
|
5747
5791
|
const t = h(this, Z).querySelector(".ms__debug-stats");
|
|
5748
|
-
if (!t || !h(this,
|
|
5749
|
-
const o = "2.0.0-
|
|
5792
|
+
if (!t || !h(this, O)) return;
|
|
5793
|
+
const o = "2.0.0-rc12", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = h(this, O).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = h(this, O);
|
|
5750
5794
|
t.innerHTML = `
|
|
5751
5795
|
<span>Version: ${o}</span>
|
|
5752
5796
|
<span>Total Instances: ${i}</span>
|
|
@@ -5757,16 +5801,16 @@ as = function() {
|
|
|
5757
5801
|
<span>Search: ${a.searchTerm || "none"}</span>
|
|
5758
5802
|
<span>Loading: ${a.isLoading ? "Yes" : "No"}</span>
|
|
5759
5803
|
`, setTimeout(() => {
|
|
5760
|
-
this.config.showDebugInfo && v(this, x,
|
|
5804
|
+
this.config.showDebugInfo && v(this, x, hs).call(this);
|
|
5761
5805
|
}, 500);
|
|
5762
5806
|
}, // Opt into the form-associated custom element lifecycle so form.reset() and
|
|
5763
5807
|
// form.elements see the control.
|
|
5764
|
-
m(
|
|
5765
|
-
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect",
|
|
5766
|
-
|
|
5808
|
+
m(tt, "formAssociated", !0), m(tt, "inputs", gn), m(tt, "events", bn);
|
|
5809
|
+
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", tt);
|
|
5810
|
+
Pi("web-multiselect", tt, {
|
|
5767
5811
|
config: {
|
|
5768
5812
|
name: "@keenmate/web-multiselect",
|
|
5769
|
-
version: "2.0.0-
|
|
5813
|
+
version: "2.0.0-rc12",
|
|
5770
5814
|
author: "Keenmate",
|
|
5771
5815
|
license: "MIT",
|
|
5772
5816
|
repository: "git+https://github.com/keenmate/web-multiselect.git",
|
|
@@ -5775,23 +5819,23 @@ ki("web-multiselect", et, {
|
|
|
5775
5819
|
logging: ce
|
|
5776
5820
|
});
|
|
5777
5821
|
export {
|
|
5778
|
-
|
|
5779
|
-
|
|
5780
|
-
|
|
5781
|
-
|
|
5782
|
-
|
|
5783
|
-
|
|
5784
|
-
|
|
5822
|
+
kn as LOGGING_CATEGORIES,
|
|
5823
|
+
tt as MultiSelectElement,
|
|
5824
|
+
dn as OPTIONS_FORMATS,
|
|
5825
|
+
ni as TABLET_MIN_SHORT_SIDE,
|
|
5826
|
+
ln as WebMultiSelect,
|
|
5827
|
+
ai as classifyDevice,
|
|
5828
|
+
_n as configureBreakpoints,
|
|
5785
5829
|
K as dataLogger,
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5789
|
-
|
|
5830
|
+
Sn as disableLogging,
|
|
5831
|
+
Cn as enableLogging,
|
|
5832
|
+
It as getEnvironment,
|
|
5833
|
+
ft as initLogger,
|
|
5790
5834
|
j as interactionLogger,
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
|
|
5794
|
-
|
|
5795
|
-
|
|
5835
|
+
ii as observeEnvironment,
|
|
5836
|
+
ri as observeViewport,
|
|
5837
|
+
hn as parseOptionsData,
|
|
5838
|
+
In as setCategoryLevel,
|
|
5839
|
+
Tn as setLogLevel,
|
|
5796
5840
|
J as uiLogger
|
|
5797
5841
|
};
|