@keenmate/web-multiselect 2.0.0-rc06 → 2.0.0-rc07
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/custom-elements.json +119 -9
- package/dist/index.d.ts +52 -3
- package/dist/multiselect.js +668 -598
- package/dist/multiselect.umd.js +13 -13
- package/dist/style.css +1 -1
- package/docs/examples.md +22 -1
- package/docs/usage.md +2 -1
- package/package.json +2 -2
- package/src/css/floating.css +61 -1
- package/src/css/options.css +4 -0
- package/src/css/variables.css +32 -3
- package/vscode.html-custom-data.json +6 -1
- package/web-types.json +15 -5
package/dist/multiselect.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
1
|
+
var co = Object.defineProperty;
|
|
2
|
+
var ss = (s) => {
|
|
3
3
|
throw TypeError(s);
|
|
4
4
|
};
|
|
5
|
-
var
|
|
6
|
-
var m = (s, e, t) =>
|
|
7
|
-
var p = (s, e, t) => (Tt(s, e, "read from private field"), t ? t.call(s) : e.get(s)), E = (s, e, t) => e.has(s) ?
|
|
5
|
+
var ho = (s, e, t) => e in s ? co(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
|
|
6
|
+
var m = (s, e, t) => ho(s, typeof e != "symbol" ? e + "" : e, t), Tt = (s, e, t) => e.has(s) || ss("Cannot " + t);
|
|
7
|
+
var p = (s, e, t) => (Tt(s, e, "read from private field"), t ? t.call(s) : e.get(s)), E = (s, e, t) => e.has(s) ? ss("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(s) : e.set(s, t), N = (s, e, t, o) => (Tt(s, e, "write to private field"), o ? o.call(s, t) : e.set(s, t), t), x = (s, e, t) => (Tt(s, e, "access private method"), t);
|
|
8
8
|
function F(s, e = {}) {
|
|
9
9
|
const t = new Set(s), o = e.shouldNullOnInvalid ? null : e.default ?? null;
|
|
10
10
|
return {
|
|
@@ -54,11 +54,11 @@ function A(s = {}) {
|
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
|
-
const
|
|
57
|
+
const uo = /* @__PURE__ */ new Set(["", "true", "1", "yes", "on"]), mo = /* @__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 uo.has(o) ? !0 : mo.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 po(s = {}) {
|
|
85
85
|
const e = s.default;
|
|
86
86
|
return {
|
|
87
87
|
fromAttribute(t) {
|
|
@@ -101,7 +101,7 @@ function mo(s = {}) {
|
|
|
101
101
|
}
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
|
-
function
|
|
104
|
+
function fo(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 po(s = {}) {
|
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
123
|
}
|
|
124
|
-
function
|
|
124
|
+
function go() {
|
|
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 bo(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 vo(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 yo() {
|
|
140
140
|
const s = /* @__PURE__ */ new Set();
|
|
141
141
|
let e = !1;
|
|
142
142
|
const t = () => {
|
|
@@ -164,7 +164,7 @@ function vo() {
|
|
|
164
164
|
}
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
|
-
const
|
|
167
|
+
const Ms = {
|
|
168
168
|
pointer: "fine",
|
|
169
169
|
hasCoarsePointer: !1,
|
|
170
170
|
canHover: !0,
|
|
@@ -176,27 +176,27 @@ const Ps = {
|
|
|
176
176
|
os: "unknown",
|
|
177
177
|
isApple: !1,
|
|
178
178
|
isAndroid: !1
|
|
179
|
-
},
|
|
180
|
-
let
|
|
179
|
+
}, wo = { mobile: 640, tablet: 1024, desktop: 1 / 0 };
|
|
180
|
+
let It = xo(wo);
|
|
181
181
|
const Fe = /* @__PURE__ */ new Set();
|
|
182
182
|
let Ce = null, ht = [], lt = !1;
|
|
183
|
-
function
|
|
183
|
+
function xo(s) {
|
|
184
184
|
return Object.entries(s).sort((e, t) => e[1] - t[1]);
|
|
185
185
|
}
|
|
186
|
-
function
|
|
187
|
-
for (const [t, o] of
|
|
186
|
+
function _o(s) {
|
|
187
|
+
for (const [t, o] of It)
|
|
188
188
|
if (s <= o)
|
|
189
189
|
return t;
|
|
190
|
-
const e =
|
|
190
|
+
const e = It[It.length - 1];
|
|
191
191
|
return e ? e[0] : "desktop";
|
|
192
192
|
}
|
|
193
|
-
function
|
|
193
|
+
function Xt() {
|
|
194
194
|
return typeof window < "u" && typeof window.matchMedia == "function";
|
|
195
195
|
}
|
|
196
|
-
function
|
|
196
|
+
function os() {
|
|
197
197
|
return typeof navigator < "u" && (navigator.maxTouchPoints ?? 0) > 1;
|
|
198
198
|
}
|
|
199
|
-
function
|
|
199
|
+
function ko() {
|
|
200
200
|
var o;
|
|
201
201
|
if (typeof navigator > "u")
|
|
202
202
|
return "unknown";
|
|
@@ -207,26 +207,26 @@ function _o() {
|
|
|
207
207
|
if (e.includes("ios"))
|
|
208
208
|
return "ios";
|
|
209
209
|
if (e.includes("mac"))
|
|
210
|
-
return
|
|
210
|
+
return os() ? "ios" : "macos";
|
|
211
211
|
if (e.includes("windows"))
|
|
212
212
|
return "windows";
|
|
213
213
|
if (e.includes("linux"))
|
|
214
214
|
return "linux";
|
|
215
215
|
}
|
|
216
216
|
const t = navigator.userAgent ?? "";
|
|
217
|
-
return /android/i.test(t) ? "android" : /iphone|ipod|ipad/i.test(t) ? "ios" : /macintosh|mac os x/i.test(t) ?
|
|
217
|
+
return /android/i.test(t) ? "android" : /iphone|ipod|ipad/i.test(t) ? "ios" : /macintosh|mac os x/i.test(t) ? os() ? "ios" : "macos" : /windows/i.test(t) ? "windows" : /linux/i.test(t) ? "linux" : "unknown";
|
|
218
218
|
}
|
|
219
|
-
let
|
|
220
|
-
function
|
|
221
|
-
return
|
|
219
|
+
let Co;
|
|
220
|
+
function So() {
|
|
221
|
+
return Co ?? (Co = ko());
|
|
222
222
|
}
|
|
223
223
|
function Re(s) {
|
|
224
|
-
return
|
|
224
|
+
return Xt() && window.matchMedia(s).matches;
|
|
225
225
|
}
|
|
226
|
-
function
|
|
227
|
-
if (!
|
|
228
|
-
return { ...
|
|
229
|
-
const s = Re("(any-pointer: coarse)"), e = Re("(pointer: coarse)"), t = Re("(pointer: fine)"), o = Re("(hover: hover)"), i = e ? "coarse" : t ? "fine" : "none", r = window.innerWidth, n = window.innerHeight, a =
|
|
226
|
+
function qt() {
|
|
227
|
+
if (!Xt())
|
|
228
|
+
return { ...Ms };
|
|
229
|
+
const s = Re("(any-pointer: coarse)"), e = Re("(pointer: coarse)"), t = Re("(pointer: fine)"), o = Re("(hover: hover)"), i = e ? "coarse" : t ? "fine" : "none", r = window.innerWidth, n = window.innerHeight, a = So();
|
|
230
230
|
return {
|
|
231
231
|
pointer: i,
|
|
232
232
|
hasCoarsePointer: s,
|
|
@@ -235,42 +235,42 @@ function Xt() {
|
|
|
235
235
|
orientation: Re("(orientation: portrait)") ? "portrait" : "landscape",
|
|
236
236
|
viewportWidth: r,
|
|
237
237
|
viewportHeight: n,
|
|
238
|
-
breakpoint:
|
|
238
|
+
breakpoint: _o(r),
|
|
239
239
|
os: a,
|
|
240
240
|
isApple: a === "ios" || a === "macos",
|
|
241
241
|
isAndroid: a === "android"
|
|
242
242
|
};
|
|
243
243
|
}
|
|
244
|
-
function
|
|
244
|
+
function To(s, e) {
|
|
245
245
|
return s.pointer === e.pointer && s.hasCoarsePointer === e.hasCoarsePointer && s.canHover === e.canHover && s.isTouchPrimary === e.isTouchPrimary && s.orientation === e.orientation && s.viewportWidth === e.viewportWidth && s.viewportHeight === e.viewportHeight && s.breakpoint === e.breakpoint;
|
|
246
246
|
}
|
|
247
|
-
function
|
|
248
|
-
const s =
|
|
249
|
-
if (!(Ce &&
|
|
247
|
+
function At() {
|
|
248
|
+
const s = qt();
|
|
249
|
+
if (!(Ce && To(Ce, s))) {
|
|
250
250
|
Ce = s;
|
|
251
251
|
for (const e of [...Fe])
|
|
252
252
|
e(s);
|
|
253
253
|
}
|
|
254
254
|
}
|
|
255
|
-
const ut = () =>
|
|
255
|
+
const ut = () => At(), Ls = () => {
|
|
256
256
|
if (typeof requestAnimationFrame == "function") {
|
|
257
257
|
if (lt)
|
|
258
258
|
return;
|
|
259
259
|
lt = !0, requestAnimationFrame(() => {
|
|
260
|
-
lt = !1,
|
|
260
|
+
lt = !1, At();
|
|
261
261
|
});
|
|
262
262
|
} else
|
|
263
|
-
|
|
263
|
+
At();
|
|
264
264
|
};
|
|
265
|
-
function
|
|
265
|
+
function Io(s) {
|
|
266
266
|
typeof s.addEventListener == "function" ? s.addEventListener("change", ut) : typeof s.addListener == "function" && s.addListener(ut);
|
|
267
267
|
}
|
|
268
268
|
function Oo(s) {
|
|
269
269
|
typeof s.removeEventListener == "function" ? s.removeEventListener("change", ut) : typeof s.removeListener == "function" && s.removeListener(ut);
|
|
270
270
|
}
|
|
271
|
-
function
|
|
272
|
-
if (!
|
|
273
|
-
Ce = { ...
|
|
271
|
+
function Po() {
|
|
272
|
+
if (!Xt()) {
|
|
273
|
+
Ce = { ...Ms };
|
|
274
274
|
return;
|
|
275
275
|
}
|
|
276
276
|
ht = [
|
|
@@ -281,49 +281,49 @@ function Io() {
|
|
|
281
281
|
window.matchMedia("(orientation: portrait)")
|
|
282
282
|
];
|
|
283
283
|
for (const s of ht)
|
|
284
|
-
|
|
285
|
-
typeof window.addEventListener == "function" && window.addEventListener("resize",
|
|
284
|
+
Io(s);
|
|
285
|
+
typeof window.addEventListener == "function" && window.addEventListener("resize", Ls), Ce = qt();
|
|
286
286
|
}
|
|
287
|
-
function
|
|
287
|
+
function Mo() {
|
|
288
288
|
for (const s of ht)
|
|
289
289
|
Oo(s);
|
|
290
|
-
ht = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize",
|
|
290
|
+
ht = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize", Ls), lt = !1, Ce = null;
|
|
291
291
|
}
|
|
292
|
-
function
|
|
293
|
-
return Ce ??
|
|
292
|
+
function zt() {
|
|
293
|
+
return Ce ?? qt();
|
|
294
294
|
}
|
|
295
|
-
function
|
|
295
|
+
function Lo(s, e = {}) {
|
|
296
296
|
const t = Fe.size === 0;
|
|
297
|
-
Fe.add(s), t &&
|
|
297
|
+
Fe.add(s), t && Po(), e.immediate !== !1 && s(zt());
|
|
298
298
|
let o = !0;
|
|
299
299
|
return () => {
|
|
300
|
-
o && (o = !1, Fe.delete(s), Fe.size === 0 &&
|
|
300
|
+
o && (o = !1, Fe.delete(s), Fe.size === 0 && Mo());
|
|
301
301
|
};
|
|
302
302
|
}
|
|
303
|
-
const
|
|
304
|
-
function
|
|
305
|
-
return s.isTouchPrimary ? Math.min(s.viewportWidth, s.viewportHeight) <
|
|
303
|
+
const Eo = 600;
|
|
304
|
+
function Ao(s) {
|
|
305
|
+
return s.isTouchPrimary ? Math.min(s.viewportWidth, s.viewportHeight) < Eo ? "mobile" : "tablet" : "desktop";
|
|
306
306
|
}
|
|
307
307
|
const mt = /* @__PURE__ */ new Map();
|
|
308
|
-
function
|
|
308
|
+
function zo(s, e) {
|
|
309
309
|
let t = mt.get(s);
|
|
310
310
|
t || mt.set(s, t = /* @__PURE__ */ new Set()), t.add(e);
|
|
311
311
|
}
|
|
312
|
-
function
|
|
312
|
+
function No(s, e) {
|
|
313
313
|
var t;
|
|
314
314
|
(t = mt.get(s)) == null || t.delete(e);
|
|
315
315
|
}
|
|
316
316
|
function Do(s) {
|
|
317
317
|
return Array.from(mt.get(s) ?? []);
|
|
318
318
|
}
|
|
319
|
-
const
|
|
319
|
+
const Es = /* @__PURE__ */ new Map();
|
|
320
320
|
function $o(s, e) {
|
|
321
|
-
|
|
321
|
+
Es.set(s.toLowerCase(), e);
|
|
322
322
|
}
|
|
323
323
|
function Vo(s) {
|
|
324
|
-
return
|
|
324
|
+
return Es.get(s.toLowerCase());
|
|
325
325
|
}
|
|
326
|
-
function
|
|
326
|
+
function Ro(s, e, t, o = {}) {
|
|
327
327
|
return s.dispatchEvent(new CustomEvent(e, {
|
|
328
328
|
detail: t,
|
|
329
329
|
bubbles: o.bubbles ?? !0,
|
|
@@ -331,29 +331,29 @@ function No(s, e, t, o = {}) {
|
|
|
331
331
|
cancelable: o.cancelable ?? !1
|
|
332
332
|
}));
|
|
333
333
|
}
|
|
334
|
-
function Ro(s) {
|
|
335
|
-
return s.split(/[-_]/).filter(Boolean).map((e) => e[0].toUpperCase() + e.slice(1)).join("");
|
|
336
|
-
}
|
|
337
334
|
function Ho(s) {
|
|
338
|
-
return
|
|
335
|
+
return s.split(/[-_]/).filter(Boolean).map((e) => e[0].toUpperCase() + e.slice(1)).join("");
|
|
339
336
|
}
|
|
340
337
|
function Bo(s) {
|
|
338
|
+
return `on${Ho(s)}`;
|
|
339
|
+
}
|
|
340
|
+
function Ko(s) {
|
|
341
341
|
return s ? s.map((e) => {
|
|
342
|
-
const t = typeof e == "string" ? { name: e } : e, o = t.property === !1 ? null : t.property ??
|
|
342
|
+
const t = typeof e == "string" ? { name: e } : e, o = t.property === !1 ? null : t.property ?? Bo(t.name);
|
|
343
343
|
return { name: t.name, property: o, bubbles: t.bubbles, composed: t.composed, cancelable: t.cancelable };
|
|
344
344
|
}) : [];
|
|
345
345
|
}
|
|
346
|
-
const
|
|
347
|
-
},
|
|
348
|
-
let
|
|
349
|
-
const
|
|
346
|
+
const Fo = typeof HTMLElement < "u" ? HTMLElement : class {
|
|
347
|
+
}, is = /* @__PURE__ */ new WeakSet();
|
|
348
|
+
let Wo = 0;
|
|
349
|
+
const jo = { trace() {
|
|
350
350
|
}, debug() {
|
|
351
351
|
}, info() {
|
|
352
352
|
}, warn() {
|
|
353
353
|
}, error() {
|
|
354
|
-
} },
|
|
355
|
-
var he, Je, ve, Qe, ye, Ze, yt, we, ue, xe, _e, Pe, Me, Le, Ee, wt, se, Ae, T,
|
|
356
|
-
const Xe = class Xe extends
|
|
354
|
+
} }, Uo = new Proxy({}, { get: () => jo });
|
|
355
|
+
var he, Je, ve, Qe, ye, Ze, yt, we, ue, xe, _e, Pe, Me, Le, Ee, wt, se, Ae, T, As, zs, Ns, Y, Ds, $s, Dt, $t, We, Vt, Vs;
|
|
356
|
+
const Xe = class Xe extends Fo {
|
|
357
357
|
constructor() {
|
|
358
358
|
super();
|
|
359
359
|
E(this, T);
|
|
@@ -363,7 +363,7 @@ const Xe = class Xe extends Ko {
|
|
|
363
363
|
E(this, Qe, /* @__PURE__ */ new Map());
|
|
364
364
|
/** Live handler currently bound via each managed `on<Name>` property, keyed by event name. */
|
|
365
365
|
E(this, ye, /* @__PURE__ */ new Map());
|
|
366
|
-
E(this, Ze,
|
|
366
|
+
E(this, Ze, yo());
|
|
367
367
|
E(this, yt, () => x(this, T, Vt).call(this));
|
|
368
368
|
E(this, we, null);
|
|
369
369
|
E(this, ue, !1);
|
|
@@ -386,13 +386,13 @@ const Xe = class Xe extends Ko {
|
|
|
386
386
|
E(this, wt);
|
|
387
387
|
E(this, se);
|
|
388
388
|
E(this, Ae);
|
|
389
|
-
const t = this.constructor, o = t.inputs ?? [], i =
|
|
390
|
-
x(this, T,
|
|
389
|
+
const t = this.constructor, o = t.inputs ?? [], i = Ko(t.events);
|
|
390
|
+
x(this, T, Ns).call(this, o, i);
|
|
391
391
|
for (const r of o)
|
|
392
392
|
p(this, Je).set(r.configKey, r), r.attribute && p(this, ve).set(r.attribute, r);
|
|
393
393
|
for (const r of i)
|
|
394
394
|
p(this, Qe).set(r.name, r);
|
|
395
|
-
x(this, T,
|
|
395
|
+
x(this, T, As).call(this, o), x(this, T, Ds).call(this, o), x(this, T, $s).call(this, i);
|
|
396
396
|
}
|
|
397
397
|
static get observedAttributes() {
|
|
398
398
|
const t = (this.inputs ?? []).filter((o) => o.attribute).map((o) => o.attribute);
|
|
@@ -412,18 +412,18 @@ const Xe = class Xe extends Ko {
|
|
|
412
412
|
return;
|
|
413
413
|
let n;
|
|
414
414
|
try {
|
|
415
|
-
n =
|
|
415
|
+
n = bo(r, i, this);
|
|
416
416
|
} catch (l) {
|
|
417
|
-
x(this, T, Y).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = x(this, T,
|
|
417
|
+
x(this, T, Y).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = x(this, T, zs).call(this, r);
|
|
418
418
|
}
|
|
419
419
|
x(this, T, $t).call(this, n);
|
|
420
420
|
}
|
|
421
421
|
connectedCallback() {
|
|
422
|
-
|
|
422
|
+
zo(this.localName, this), p(this, _e) || (N(this, _e, !0), N(this, Pe, null), N(this, ue, !0)), x(this, T, We).call(this), this.connect(), this.environmentChanged !== Xe.prototype.environmentChanged && N(this, Le, Lo((t) => this.environmentChanged(t)));
|
|
423
423
|
}
|
|
424
424
|
disconnectedCallback() {
|
|
425
425
|
var t;
|
|
426
|
-
|
|
426
|
+
No(this.localName, this), (t = p(this, Le)) == null || t.call(this), N(this, Le, void 0), this.disconnect();
|
|
427
427
|
}
|
|
428
428
|
// ── public batching API ─────────────────────────────────────────────────
|
|
429
429
|
/** Apply many inputs (by `configKey` or attribute name) as ONE reinit/update. */
|
|
@@ -492,9 +492,9 @@ const Xe = class Xe extends Ko {
|
|
|
492
492
|
return p(this, Ae);
|
|
493
493
|
const t = Vo(this.localName);
|
|
494
494
|
if (!t)
|
|
495
|
-
return
|
|
496
|
-
const o = p(this, wt) ??
|
|
497
|
-
return
|
|
495
|
+
return Uo;
|
|
496
|
+
const o = p(this, wt) ?? N(this, wt, `${this.localName}#${this.id || ++Wo}`);
|
|
497
|
+
return N(this, Ae, t.forInstance(o, () => p(this, se)));
|
|
498
498
|
}
|
|
499
499
|
/**
|
|
500
500
|
* Turn on verbose logging for THIS element only (default `debug`), independent
|
|
@@ -502,11 +502,11 @@ const Xe = class Xe extends Ko {
|
|
|
502
502
|
* picks one instance. Pairs with {@link disableLogging}.
|
|
503
503
|
*/
|
|
504
504
|
enableLogging(t = "debug") {
|
|
505
|
-
|
|
505
|
+
N(this, se, t);
|
|
506
506
|
}
|
|
507
507
|
/** Clear this element's logging override (falls back to the type-level level). */
|
|
508
508
|
disableLogging() {
|
|
509
|
-
|
|
509
|
+
N(this, se, void 0);
|
|
510
510
|
}
|
|
511
511
|
/** Whether this element has an active logging override (not unset/`silent`). */
|
|
512
512
|
get isLoggingEnabled() {
|
|
@@ -596,7 +596,7 @@ const Xe = class Xe extends Ko {
|
|
|
596
596
|
if (typeof this.attachInternals != "function")
|
|
597
597
|
return null;
|
|
598
598
|
try {
|
|
599
|
-
return
|
|
599
|
+
return N(this, Ee, this.attachInternals());
|
|
600
600
|
} catch {
|
|
601
601
|
return null;
|
|
602
602
|
}
|
|
@@ -627,7 +627,7 @@ const Xe = class Xe extends Ko {
|
|
|
627
627
|
*/
|
|
628
628
|
emit(t, o, i) {
|
|
629
629
|
const r = p(this, Qe).get(t);
|
|
630
|
-
return
|
|
630
|
+
return Ro(this, t, o, {
|
|
631
631
|
bubbles: (i == null ? void 0 : i.bubbles) ?? (r == null ? void 0 : r.bubbles),
|
|
632
632
|
composed: (i == null ? void 0 : i.composed) ?? (r == null ? void 0 : r.composed),
|
|
633
633
|
cancelable: (i == null ? void 0 : i.cancelable) ?? (r == null ? void 0 : r.cancelable)
|
|
@@ -666,7 +666,7 @@ const Xe = class Xe extends Ko {
|
|
|
666
666
|
}
|
|
667
667
|
};
|
|
668
668
|
he = new WeakMap(), Je = new WeakMap(), ve = new WeakMap(), Qe = new WeakMap(), ye = new WeakMap(), Ze = new WeakMap(), yt = new WeakMap(), we = new WeakMap(), ue = new WeakMap(), xe = new WeakMap(), _e = new WeakMap(), Pe = new WeakMap(), Me = new WeakMap(), Le = new WeakMap(), Ee = new WeakMap(), wt = new WeakMap(), se = new WeakMap(), Ae = new WeakMap(), T = new WeakSet(), // ── internals ─────────────────────────────────────────────────────────────
|
|
669
|
-
|
|
669
|
+
As = function(t) {
|
|
670
670
|
var o;
|
|
671
671
|
for (const i of t) {
|
|
672
672
|
let r = i.default;
|
|
@@ -678,15 +678,15 @@ Es = function(t) {
|
|
|
678
678
|
}
|
|
679
679
|
p(this, he)[i.configKey] = r, i.field && (this[i.field] = r);
|
|
680
680
|
}
|
|
681
|
-
},
|
|
681
|
+
}, zs = function(t) {
|
|
682
682
|
return { configKey: t.configKey, field: t.field, value: t.default, on: t.on ?? "update" };
|
|
683
683
|
}, /** Sanity-check the input + event tables once per class; warn (never throw) on mistakes. */
|
|
684
|
-
|
|
684
|
+
Ns = function(t, o) {
|
|
685
685
|
var l;
|
|
686
686
|
const i = this.constructor;
|
|
687
|
-
if (
|
|
687
|
+
if (is.has(i))
|
|
688
688
|
return;
|
|
689
|
-
|
|
689
|
+
is.add(i);
|
|
690
690
|
const r = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
|
|
691
691
|
for (const c of t)
|
|
692
692
|
r.has(c.configKey) && x(this, T, Y).call(this, `invalid input table: duplicate configKey "${c.configKey}"`), r.add(c.configKey), c.attribute && (n.has(c.attribute) && x(this, T, Y).call(this, `invalid input table: duplicate attribute "${c.attribute}"`), n.add(c.attribute)), c.reflect && !c.attribute && x(this, T, Y).call(this, `invalid input table: "${c.configKey}" has reflect:true but no attribute to reflect to`), c.reflect && !((l = c.converter) != null && l.toAttribute) && x(this, T, Y).call(this, `invalid input table: "${c.configKey}" has reflect:true but its converter has no toAttribute`);
|
|
@@ -708,7 +708,7 @@ Y = function(t, ...o) {
|
|
|
708
708
|
enumerable: !0,
|
|
709
709
|
get: () => p(this, he)[i],
|
|
710
710
|
set: (a) => x(this, T, Dt).call(this, o, a)
|
|
711
|
-
}), r && ((p(this, Pe) ??
|
|
711
|
+
}), r && ((p(this, Pe) ?? N(this, Pe, /* @__PURE__ */ new Set())).add(i), this[i] = n);
|
|
712
712
|
}
|
|
713
713
|
}, /**
|
|
714
714
|
* Install a managed `on<Name>` handler property per event. Assigning it
|
|
@@ -737,22 +737,22 @@ $s = function(t) {
|
|
|
737
737
|
}
|
|
738
738
|
}, Dt = function(t, o) {
|
|
739
739
|
var r;
|
|
740
|
-
const i =
|
|
740
|
+
const i = vo(t, o);
|
|
741
741
|
if (!i) {
|
|
742
742
|
x(this, T, Y).call(this, `rejected invalid value for property "${t.configKey}"; keeping previous value`, o);
|
|
743
743
|
return;
|
|
744
744
|
}
|
|
745
745
|
if (x(this, T, $t).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
|
|
746
746
|
const n = t.converter.toAttribute(i.value);
|
|
747
|
-
|
|
747
|
+
N(this, Me, !0);
|
|
748
748
|
try {
|
|
749
749
|
n === null ? this.removeAttribute(t.attribute) : this.setAttribute(t.attribute, n);
|
|
750
750
|
} finally {
|
|
751
|
-
|
|
751
|
+
N(this, Me, !1);
|
|
752
752
|
}
|
|
753
753
|
}
|
|
754
754
|
}, $t = function(t) {
|
|
755
|
-
p(this, he)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" &&
|
|
755
|
+
p(this, he)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" && N(this, ue, !0), (p(this, we) ?? N(this, we, {}))[t.configKey] = t.value, p(this, Ze).schedule(p(this, yt)));
|
|
756
756
|
}, /** Cancel any queued microtask and flush pending changes synchronously now. */
|
|
757
757
|
We = function() {
|
|
758
758
|
p(this, Ze).cancel(), x(this, T, Vt).call(this);
|
|
@@ -760,13 +760,13 @@ We = function() {
|
|
|
760
760
|
if (!this.isConnected)
|
|
761
761
|
return;
|
|
762
762
|
const t = p(this, ue), o = p(this, we);
|
|
763
|
-
|
|
763
|
+
N(this, ue, !1), N(this, we, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), x(this, T, Vs).call(this);
|
|
764
764
|
}, /** Resolve everyone awaiting {@link whenSettled} for the flush that just ran. */
|
|
765
765
|
Vs = function() {
|
|
766
766
|
if (p(this, xe).length === 0)
|
|
767
767
|
return;
|
|
768
768
|
const t = p(this, xe);
|
|
769
|
-
|
|
769
|
+
N(this, xe, []);
|
|
770
770
|
for (const o of t)
|
|
771
771
|
o();
|
|
772
772
|
}, /** The opt-in input table. Subclasses set this to enable attribute/property reactivity. */
|
|
@@ -776,11 +776,11 @@ m(Xe, "inputs"), /**
|
|
|
776
776
|
* {@link emit} can fire and installs a managed `on<Name>` handler property.
|
|
777
777
|
*/
|
|
778
778
|
m(Xe, "events");
|
|
779
|
-
let
|
|
780
|
-
function
|
|
779
|
+
let Nt = Xe;
|
|
780
|
+
function rs(s, e, t) {
|
|
781
781
|
typeof customElements > "u" || customElements.get(s) || customElements.define(s, e, t);
|
|
782
782
|
}
|
|
783
|
-
function
|
|
783
|
+
function Go(s) {
|
|
784
784
|
return {
|
|
785
785
|
enableLogging: (e) => s.enableLogging(e),
|
|
786
786
|
disableLogging: () => s.disableLogging(),
|
|
@@ -789,21 +789,21 @@ function Uo(s) {
|
|
|
789
789
|
getCategories: () => [...s.LOGGING_CATEGORIES]
|
|
790
790
|
};
|
|
791
791
|
}
|
|
792
|
-
function
|
|
792
|
+
function Xo(s, e, t) {
|
|
793
793
|
const { config: o, logging: i, shouldAutoDefine: r = !0 } = t;
|
|
794
794
|
i && $o(s, i);
|
|
795
795
|
const n = {
|
|
796
796
|
version: () => o.version,
|
|
797
797
|
config: o,
|
|
798
|
-
...i ? { logging:
|
|
799
|
-
register: () =>
|
|
798
|
+
...i ? { logging: Go(i) } : {},
|
|
799
|
+
register: () => rs(s, e),
|
|
800
800
|
getInstances: () => Do(s)
|
|
801
801
|
};
|
|
802
|
-
return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r &&
|
|
802
|
+
return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && rs(s, e), n;
|
|
803
803
|
}
|
|
804
|
-
const
|
|
804
|
+
const ns = /* @__PURE__ */ new Map(), as = /* @__PURE__ */ new WeakMap();
|
|
805
805
|
let ot;
|
|
806
|
-
function
|
|
806
|
+
function qo(s) {
|
|
807
807
|
if (typeof CSSStyleSheet > "u" || !("adoptedStyleSheets" in s))
|
|
808
808
|
return !1;
|
|
809
809
|
if (ot === void 0)
|
|
@@ -814,20 +814,20 @@ function Xo(s) {
|
|
|
814
814
|
}
|
|
815
815
|
return ot;
|
|
816
816
|
}
|
|
817
|
-
function
|
|
817
|
+
function Yo(s, ...e) {
|
|
818
818
|
if (typeof document > "u")
|
|
819
819
|
return;
|
|
820
|
-
let t =
|
|
821
|
-
t ||
|
|
820
|
+
let t = as.get(s);
|
|
821
|
+
t || as.set(s, t = /* @__PURE__ */ new Set());
|
|
822
822
|
const o = e.filter((r) => r && !t.has(r));
|
|
823
823
|
if (o.length === 0)
|
|
824
824
|
return;
|
|
825
825
|
for (const r of o)
|
|
826
826
|
t.add(r);
|
|
827
|
-
if (
|
|
827
|
+
if (qo(s)) {
|
|
828
828
|
const r = o.map((n) => {
|
|
829
|
-
let a =
|
|
830
|
-
return a || (a = new CSSStyleSheet(), a.replaceSync(n),
|
|
829
|
+
let a = ns.get(n);
|
|
830
|
+
return a || (a = new CSSStyleSheet(), a.replaceSync(n), ns.set(n, a)), a;
|
|
831
831
|
});
|
|
832
832
|
s.adoptedStyleSheets = [...s.adoptedStyleSheets, ...r];
|
|
833
833
|
return;
|
|
@@ -838,7 +838,7 @@ function qo(s, ...e) {
|
|
|
838
838
|
n.textContent = r, i.appendChild(n);
|
|
839
839
|
}
|
|
840
840
|
}
|
|
841
|
-
function
|
|
841
|
+
function Jo(s, e = {}) {
|
|
842
842
|
const t = e.position ?? "last", o = s.head ?? s;
|
|
843
843
|
let i = null;
|
|
844
844
|
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 = () => {
|
|
@@ -859,48 +859,55 @@ function Yo(s, e = {}) {
|
|
|
859
859
|
}
|
|
860
860
|
};
|
|
861
861
|
}
|
|
862
|
-
function
|
|
862
|
+
function Rs(s) {
|
|
863
863
|
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
864
864
|
}
|
|
865
|
-
function
|
|
866
|
-
const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${
|
|
865
|
+
function Qo(s, e) {
|
|
866
|
+
const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${Rs(e)}[a-z0-9-]+)`, "gi");
|
|
867
867
|
let i;
|
|
868
868
|
for (; i = o.exec(s); )
|
|
869
869
|
i[1] && t.add(i[1]);
|
|
870
870
|
return t;
|
|
871
871
|
}
|
|
872
|
-
function
|
|
873
|
-
const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${
|
|
872
|
+
function Zo(s, e) {
|
|
873
|
+
const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${Rs(e)}[a-z0-9-]+)\\s*:`, "gi");
|
|
874
874
|
let i;
|
|
875
875
|
for (; i = o.exec(s); )
|
|
876
876
|
i[1] && t.add(i[1]);
|
|
877
877
|
return [...t];
|
|
878
878
|
}
|
|
879
|
-
function
|
|
879
|
+
function ei(s, e, t = {}) {
|
|
880
880
|
const o = t.minScore ?? 3, i = t.limit ?? 3, r = new Set(s.split("-").filter(Boolean));
|
|
881
881
|
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);
|
|
882
882
|
}
|
|
883
|
-
function
|
|
883
|
+
function ti(s, e) {
|
|
884
884
|
if (e.consumed.size === 0)
|
|
885
885
|
return [];
|
|
886
886
|
const t = [];
|
|
887
|
-
for (const o of
|
|
888
|
-
e.consumed.has(o) || t.push({ name: o, suggestions:
|
|
887
|
+
for (const o of Zo(s, e.prefix))
|
|
888
|
+
e.consumed.has(o) || t.push({ name: o, suggestions: ei(o, e.consumed, { minScore: e.minScore }) });
|
|
889
889
|
return t;
|
|
890
890
|
}
|
|
891
|
-
const
|
|
891
|
+
const si = {
|
|
892
892
|
mobile: "fullscreen",
|
|
893
893
|
tablet: "floating",
|
|
894
894
|
desktop: "floating"
|
|
895
895
|
};
|
|
896
|
-
function
|
|
896
|
+
function oi(s, e, t = {}) {
|
|
897
897
|
if (s !== "auto")
|
|
898
898
|
return s;
|
|
899
|
-
const o =
|
|
900
|
-
return t[o] ??
|
|
899
|
+
const o = Ao(e);
|
|
900
|
+
return t[o] ?? si[o];
|
|
901
|
+
}
|
|
902
|
+
function Ot(s) {
|
|
903
|
+
return {
|
|
904
|
+
presentation: s,
|
|
905
|
+
isFullscreen: s === "fullscreen",
|
|
906
|
+
isModal: s === "modal"
|
|
907
|
+
};
|
|
901
908
|
}
|
|
902
909
|
let He = 0, it = null;
|
|
903
|
-
function
|
|
910
|
+
function ii() {
|
|
904
911
|
if (typeof document > "u")
|
|
905
912
|
return () => {
|
|
906
913
|
};
|
|
@@ -910,7 +917,7 @@ function oi() {
|
|
|
910
917
|
s || (s = !0, He = Math.max(0, He - 1), He === 0 && it !== null && (document.body.style.overflow = it, it = null));
|
|
911
918
|
};
|
|
912
919
|
}
|
|
913
|
-
function
|
|
920
|
+
function ri(s) {
|
|
914
921
|
const e = typeof window < "u" ? window.visualViewport : null;
|
|
915
922
|
if (!e)
|
|
916
923
|
return () => {
|
|
@@ -932,20 +939,20 @@ const j = {
|
|
|
932
939
|
WARN: 3,
|
|
933
940
|
ERROR: 4,
|
|
934
941
|
SILENT: 5
|
|
935
|
-
},
|
|
942
|
+
}, ls = ["trace", "debug", "info", "warn", "error"], pt = () => {
|
|
936
943
|
};
|
|
937
|
-
let
|
|
938
|
-
function
|
|
944
|
+
let ni = "km-log";
|
|
945
|
+
function cs(s) {
|
|
939
946
|
const t = console[s];
|
|
940
947
|
return typeof t == "function" ? t.bind(console) : pt;
|
|
941
948
|
}
|
|
942
|
-
function
|
|
949
|
+
function ai(s) {
|
|
943
950
|
if (s === "debug" && (s = "log"), typeof console > "u")
|
|
944
951
|
return pt;
|
|
945
952
|
const e = console;
|
|
946
|
-
return e[s] !== void 0 ?
|
|
953
|
+
return e[s] !== void 0 ? cs(s) : e.log !== void 0 ? cs("log") : pt;
|
|
947
954
|
}
|
|
948
|
-
const
|
|
955
|
+
const li = (s) => ai(s);
|
|
949
956
|
function Be(s) {
|
|
950
957
|
let e = s;
|
|
951
958
|
const t = j;
|
|
@@ -955,7 +962,7 @@ function Be(s) {
|
|
|
955
962
|
}
|
|
956
963
|
let de;
|
|
957
964
|
const ft = {};
|
|
958
|
-
class
|
|
965
|
+
class Hs {
|
|
959
966
|
constructor(e, t) {
|
|
960
967
|
m(this, "name");
|
|
961
968
|
m(this, "levels", j);
|
|
@@ -978,13 +985,13 @@ class Rs {
|
|
|
978
985
|
o != null && (this.userLevel = Be(o)), this.replaceLoggingMethods();
|
|
979
986
|
}
|
|
980
987
|
storageKey() {
|
|
981
|
-
return typeof this.name == "string" ? `${
|
|
988
|
+
return typeof this.name == "string" ? `${ni}:${this.name}` : void 0;
|
|
982
989
|
}
|
|
983
990
|
persist(e) {
|
|
984
991
|
const t = this.storageKey();
|
|
985
992
|
if (typeof window > "u" || !t)
|
|
986
993
|
return;
|
|
987
|
-
const o = (
|
|
994
|
+
const o = (ls[e] ?? "silent").toUpperCase();
|
|
988
995
|
try {
|
|
989
996
|
window.localStorage[t] = o;
|
|
990
997
|
} catch {
|
|
@@ -1012,7 +1019,7 @@ class Rs {
|
|
|
1012
1019
|
}
|
|
1013
1020
|
replaceLoggingMethods() {
|
|
1014
1021
|
const e = this.getLevel();
|
|
1015
|
-
|
|
1022
|
+
ls.forEach((t, o) => {
|
|
1016
1023
|
this[t] = o < e ? pt : this.methodFactory(t, e, this.name);
|
|
1017
1024
|
}), this.log = this.debug;
|
|
1018
1025
|
}
|
|
@@ -1040,14 +1047,14 @@ class Rs {
|
|
|
1040
1047
|
ft[e].rebuild();
|
|
1041
1048
|
}
|
|
1042
1049
|
}
|
|
1043
|
-
de = new
|
|
1044
|
-
function
|
|
1050
|
+
de = new Hs(void 0, li);
|
|
1051
|
+
function ci(s) {
|
|
1045
1052
|
if (typeof s != "string" || s === "")
|
|
1046
1053
|
throw new TypeError("You must supply a non-empty name when creating a logger.");
|
|
1047
1054
|
let e = ft[s];
|
|
1048
|
-
return e || (e = ft[s] = new
|
|
1055
|
+
return e || (e = ft[s] = new Hs(s, de.methodFactory)), e;
|
|
1049
1056
|
}
|
|
1050
|
-
const
|
|
1057
|
+
const di = ["INIT", "DATA", "UI"], hi = "debug", ds = [
|
|
1051
1058
|
"#4c8bf5",
|
|
1052
1059
|
// blue
|
|
1053
1060
|
"#2ea043",
|
|
@@ -1064,43 +1071,43 @@ const ci = ["INIT", "DATA", "UI"], di = "debug", cs = [
|
|
|
1064
1071
|
// teal
|
|
1065
1072
|
"#8a6d3b"
|
|
1066
1073
|
// brown
|
|
1067
|
-
],
|
|
1068
|
-
function
|
|
1069
|
-
if (
|
|
1074
|
+
], hs = /* @__PURE__ */ new WeakSet();
|
|
1075
|
+
function ui(s, e, t) {
|
|
1076
|
+
if (hs.has(s))
|
|
1070
1077
|
return;
|
|
1071
|
-
|
|
1078
|
+
hs.add(s);
|
|
1072
1079
|
const o = s.methodFactory, i = `color:${t};font-weight:bold`;
|
|
1073
1080
|
s.methodFactory = (r, n, a) => {
|
|
1074
1081
|
const l = o(r, n, a);
|
|
1075
1082
|
return (...c) => l(`%c[${e}]`, i, ...c);
|
|
1076
1083
|
}, s.setLevel(s.getLevel(), !1);
|
|
1077
1084
|
}
|
|
1078
|
-
function
|
|
1085
|
+
function mi(s) {
|
|
1079
1086
|
return typeof s == "number" ? s : j[s.toUpperCase()] ?? j.SILENT;
|
|
1080
1087
|
}
|
|
1081
|
-
const
|
|
1088
|
+
const pi = [
|
|
1082
1089
|
["trace", j.TRACE, "debug"],
|
|
1083
1090
|
["debug", j.DEBUG, "debug"],
|
|
1084
1091
|
["info", j.INFO, "info"],
|
|
1085
1092
|
["warn", j.WARN, "warn"],
|
|
1086
1093
|
["error", j.ERROR, "error"]
|
|
1087
1094
|
];
|
|
1088
|
-
function
|
|
1095
|
+
function fi(s, e, t) {
|
|
1089
1096
|
const o = `color:${s.color};font-weight:bold`, i = "color:#888", r = {};
|
|
1090
|
-
for (const [n, a, l] of
|
|
1097
|
+
for (const [n, a, l] of pi)
|
|
1091
1098
|
r[n] = (...c) => {
|
|
1092
|
-
const d = t(), h = Math.min(s.logger.getLevel(), d == null ? j.SILENT :
|
|
1099
|
+
const d = t(), h = Math.min(s.logger.getLevel(), d == null ? j.SILENT : mi(d));
|
|
1093
1100
|
if (a < h)
|
|
1094
1101
|
return;
|
|
1095
1102
|
(console[l] ?? console.log).bind(console)(`%c[${s.label}]%c ${e}`, o, i, ...c);
|
|
1096
1103
|
};
|
|
1097
1104
|
return r;
|
|
1098
1105
|
}
|
|
1099
|
-
function
|
|
1106
|
+
function gi(s, e = di) {
|
|
1100
1107
|
const t = {}, o = {};
|
|
1101
1108
|
e.forEach((r, n) => {
|
|
1102
|
-
const a = `${s}:${r}`, l =
|
|
1103
|
-
|
|
1109
|
+
const a = `${s}:${r}`, l = ds[n % ds.length], c = ci(a);
|
|
1110
|
+
ui(c, a, l), t[r] = c, o[r] = { label: a, color: l, logger: c };
|
|
1104
1111
|
});
|
|
1105
1112
|
const i = (r) => {
|
|
1106
1113
|
for (const n of e)
|
|
@@ -1109,7 +1116,7 @@ function fi(s, e = ci) {
|
|
|
1109
1116
|
return {
|
|
1110
1117
|
loggers: t,
|
|
1111
1118
|
LOGGING_CATEGORIES: e,
|
|
1112
|
-
enableLogging(r =
|
|
1119
|
+
enableLogging(r = hi) {
|
|
1113
1120
|
i(r);
|
|
1114
1121
|
},
|
|
1115
1122
|
disableLogging() {
|
|
@@ -1125,7 +1132,7 @@ function fi(s, e = ci) {
|
|
|
1125
1132
|
forInstance(r, n) {
|
|
1126
1133
|
const a = {};
|
|
1127
1134
|
for (const l of e)
|
|
1128
|
-
a[l] =
|
|
1135
|
+
a[l] = fi(o[l], r, n);
|
|
1129
1136
|
return a;
|
|
1130
1137
|
}
|
|
1131
1138
|
};
|
|
@@ -1133,73 +1140,73 @@ function fi(s, e = ci) {
|
|
|
1133
1140
|
const pe = Math.min, ie = Math.max, gt = Math.round, rt = Math.floor, re = (s) => ({
|
|
1134
1141
|
x: s,
|
|
1135
1142
|
y: s
|
|
1136
|
-
}),
|
|
1143
|
+
}), bi = {
|
|
1137
1144
|
left: "right",
|
|
1138
1145
|
right: "left",
|
|
1139
1146
|
bottom: "top",
|
|
1140
1147
|
top: "bottom"
|
|
1141
1148
|
};
|
|
1142
|
-
function
|
|
1149
|
+
function Bs(s, e, t) {
|
|
1143
1150
|
return ie(s, pe(e, t));
|
|
1144
1151
|
}
|
|
1145
|
-
function
|
|
1152
|
+
function De(s, e) {
|
|
1146
1153
|
return typeof s == "function" ? s(e) : s;
|
|
1147
1154
|
}
|
|
1148
1155
|
function Se(s) {
|
|
1149
1156
|
return s.split("-")[0];
|
|
1150
1157
|
}
|
|
1151
|
-
function
|
|
1158
|
+
function $e(s) {
|
|
1152
1159
|
return s.split("-")[1];
|
|
1153
1160
|
}
|
|
1154
|
-
function
|
|
1161
|
+
function Ks(s) {
|
|
1155
1162
|
return s === "x" ? "y" : "x";
|
|
1156
1163
|
}
|
|
1157
|
-
function
|
|
1164
|
+
function Yt(s) {
|
|
1158
1165
|
return s === "y" ? "height" : "width";
|
|
1159
1166
|
}
|
|
1160
1167
|
function oe(s) {
|
|
1161
1168
|
const e = s[0];
|
|
1162
1169
|
return e === "t" || e === "b" ? "y" : "x";
|
|
1163
1170
|
}
|
|
1164
|
-
function
|
|
1165
|
-
return
|
|
1171
|
+
function Jt(s) {
|
|
1172
|
+
return Ks(oe(s));
|
|
1166
1173
|
}
|
|
1167
|
-
function
|
|
1174
|
+
function vi(s, e, t) {
|
|
1168
1175
|
t === void 0 && (t = !1);
|
|
1169
|
-
const o =
|
|
1176
|
+
const o = $e(s), i = Jt(s), r = Yt(i);
|
|
1170
1177
|
let n = i === "x" ? o === (t ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
|
|
1171
1178
|
return e.reference[r] > e.floating[r] && (n = bt(n)), [n, bt(n)];
|
|
1172
1179
|
}
|
|
1173
|
-
function
|
|
1180
|
+
function yi(s) {
|
|
1174
1181
|
const e = bt(s);
|
|
1175
|
-
return [
|
|
1182
|
+
return [Rt(s), e, Rt(e)];
|
|
1176
1183
|
}
|
|
1177
|
-
function
|
|
1184
|
+
function Rt(s) {
|
|
1178
1185
|
return s.includes("start") ? s.replace("start", "end") : s.replace("end", "start");
|
|
1179
1186
|
}
|
|
1180
|
-
const
|
|
1181
|
-
function
|
|
1187
|
+
const us = ["left", "right"], ms = ["right", "left"], wi = ["top", "bottom"], xi = ["bottom", "top"];
|
|
1188
|
+
function _i(s, e, t) {
|
|
1182
1189
|
switch (s) {
|
|
1183
1190
|
case "top":
|
|
1184
1191
|
case "bottom":
|
|
1185
|
-
return t ? e ?
|
|
1192
|
+
return t ? e ? ms : us : e ? us : ms;
|
|
1186
1193
|
case "left":
|
|
1187
1194
|
case "right":
|
|
1188
|
-
return e ?
|
|
1195
|
+
return e ? wi : xi;
|
|
1189
1196
|
default:
|
|
1190
1197
|
return [];
|
|
1191
1198
|
}
|
|
1192
1199
|
}
|
|
1193
|
-
function
|
|
1194
|
-
const i =
|
|
1195
|
-
let r =
|
|
1196
|
-
return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(
|
|
1200
|
+
function ki(s, e, t, o) {
|
|
1201
|
+
const i = $e(s);
|
|
1202
|
+
let r = _i(Se(s), t === "start", o);
|
|
1203
|
+
return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(Rt)))), r;
|
|
1197
1204
|
}
|
|
1198
1205
|
function bt(s) {
|
|
1199
1206
|
const e = Se(s);
|
|
1200
|
-
return
|
|
1207
|
+
return bi[e] + s.slice(e.length);
|
|
1201
1208
|
}
|
|
1202
|
-
function
|
|
1209
|
+
function Ci(s) {
|
|
1203
1210
|
var e, t, o, i;
|
|
1204
1211
|
return {
|
|
1205
1212
|
top: (e = s.top) != null ? e : 0,
|
|
@@ -1208,8 +1215,8 @@ function ki(s) {
|
|
|
1208
1215
|
left: (i = s.left) != null ? i : 0
|
|
1209
1216
|
};
|
|
1210
1217
|
}
|
|
1211
|
-
function
|
|
1212
|
-
return typeof s != "number" ?
|
|
1218
|
+
function Fs(s) {
|
|
1219
|
+
return typeof s != "number" ? Ci(s) : {
|
|
1213
1220
|
top: s,
|
|
1214
1221
|
right: s,
|
|
1215
1222
|
bottom: s,
|
|
@@ -1234,12 +1241,12 @@ function vt(s) {
|
|
|
1234
1241
|
y: t
|
|
1235
1242
|
};
|
|
1236
1243
|
}
|
|
1237
|
-
function
|
|
1244
|
+
function ps(s, e, t) {
|
|
1238
1245
|
let {
|
|
1239
1246
|
reference: o,
|
|
1240
1247
|
floating: i
|
|
1241
1248
|
} = s;
|
|
1242
|
-
const r = oe(e), n =
|
|
1249
|
+
const r = oe(e), n = Jt(e), a = Yt(n), l = Se(e), c = r === "y", d = o.x + o.width / 2 - i.width / 2, h = o.y + o.height / 2 - i.height / 2, f = o[a] / 2 - i[a] / 2;
|
|
1243
1250
|
let u;
|
|
1244
1251
|
switch (l) {
|
|
1245
1252
|
case "top":
|
|
@@ -1272,10 +1279,10 @@ function ms(s, e, t) {
|
|
|
1272
1279
|
y: o.y
|
|
1273
1280
|
};
|
|
1274
1281
|
}
|
|
1275
|
-
const g =
|
|
1282
|
+
const g = $e(e);
|
|
1276
1283
|
return g && (u[n] += f * (g === "end" ? 1 : -1) * (t && c ? -1 : 1)), u;
|
|
1277
1284
|
}
|
|
1278
|
-
async function
|
|
1285
|
+
async function Si(s, e) {
|
|
1279
1286
|
var t;
|
|
1280
1287
|
e === void 0 && (e = {});
|
|
1281
1288
|
const {
|
|
@@ -1291,7 +1298,7 @@ async function Ci(s, e) {
|
|
|
1291
1298
|
elementContext: h = "floating",
|
|
1292
1299
|
altBoundary: f = !1,
|
|
1293
1300
|
padding: u = 0
|
|
1294
|
-
} =
|
|
1301
|
+
} = De(e, s), g = Fs(u), y = a[f ? h === "floating" ? "reference" : "floating" : h], v = vt(await r.getClippingRect({
|
|
1295
1302
|
element: (t = await (r.isElement == null ? void 0 : r.isElement(y))) == null || t ? y : y.contextElement || await (r.getDocumentElement == null ? void 0 : r.getDocumentElement(a.floating)),
|
|
1296
1303
|
boundary: c,
|
|
1297
1304
|
rootBoundary: d,
|
|
@@ -1317,7 +1324,7 @@ async function Ci(s, e) {
|
|
|
1317
1324
|
right: (M.right - v.right + g.right) / P.x
|
|
1318
1325
|
};
|
|
1319
1326
|
}
|
|
1320
|
-
const
|
|
1327
|
+
const Ti = 50, Ii = async (s, e, t) => {
|
|
1321
1328
|
const {
|
|
1322
1329
|
placement: o = "bottom",
|
|
1323
1330
|
strategy: i = "absolute",
|
|
@@ -1325,7 +1332,7 @@ const Si = 50, Ti = async (s, e, t) => {
|
|
|
1325
1332
|
platform: n
|
|
1326
1333
|
} = t, a = n.detectOverflow ? n : {
|
|
1327
1334
|
...n,
|
|
1328
|
-
detectOverflow:
|
|
1335
|
+
detectOverflow: Si
|
|
1329
1336
|
}, l = await (n.isRTL == null ? void 0 : n.isRTL(e));
|
|
1330
1337
|
let c = await n.getElementRects({
|
|
1331
1338
|
reference: s,
|
|
@@ -1334,7 +1341,7 @@ const Si = 50, Ti = async (s, e, t) => {
|
|
|
1334
1341
|
}), {
|
|
1335
1342
|
x: d,
|
|
1336
1343
|
y: h
|
|
1337
|
-
} =
|
|
1344
|
+
} = ps(c, o, l), f = o, u = 0;
|
|
1338
1345
|
const g = {};
|
|
1339
1346
|
for (let b = 0; b < r.length; b++) {
|
|
1340
1347
|
const y = r[b];
|
|
@@ -1347,7 +1354,7 @@ const Si = 50, Ti = async (s, e, t) => {
|
|
|
1347
1354
|
x: k,
|
|
1348
1355
|
y: P,
|
|
1349
1356
|
data: M,
|
|
1350
|
-
reset:
|
|
1357
|
+
reset: $
|
|
1351
1358
|
} = await w({
|
|
1352
1359
|
x: d,
|
|
1353
1360
|
y: h,
|
|
@@ -1365,14 +1372,14 @@ const Si = 50, Ti = async (s, e, t) => {
|
|
|
1365
1372
|
d = k ?? d, h = P ?? h, g[v] = {
|
|
1366
1373
|
...g[v],
|
|
1367
1374
|
...M
|
|
1368
|
-
},
|
|
1375
|
+
}, $ && u < Ti && (u++, typeof $ == "object" && ($.placement && (f = $.placement), $.rects && (c = $.rects === !0 ? await n.getElementRects({
|
|
1369
1376
|
reference: s,
|
|
1370
1377
|
floating: e,
|
|
1371
1378
|
strategy: i
|
|
1372
|
-
}) :
|
|
1379
|
+
}) : $.rects), {
|
|
1373
1380
|
x: d,
|
|
1374
1381
|
y: h
|
|
1375
|
-
} =
|
|
1382
|
+
} = ps(c, f, l)), b = -1);
|
|
1376
1383
|
}
|
|
1377
1384
|
return {
|
|
1378
1385
|
x: d,
|
|
@@ -1396,21 +1403,21 @@ const Si = 50, Ti = async (s, e, t) => {
|
|
|
1396
1403
|
} = e, {
|
|
1397
1404
|
element: c,
|
|
1398
1405
|
padding: d = 0
|
|
1399
|
-
} =
|
|
1406
|
+
} = De(s, e) || {};
|
|
1400
1407
|
if (c == null)
|
|
1401
1408
|
return {};
|
|
1402
|
-
const h =
|
|
1409
|
+
const h = Fs(d), f = {
|
|
1403
1410
|
x: t,
|
|
1404
1411
|
y: o
|
|
1405
|
-
}, u =
|
|
1406
|
-
let R =
|
|
1407
|
-
(!R || !await (n.isElement == null ? void 0 : n.isElement(
|
|
1408
|
-
const G = P / 2 - M / 2, L = R / 2 - b[g] / 2 - 1, C = pe(h[v], L),
|
|
1412
|
+
}, u = Jt(i), g = Yt(u), b = await n.getDimensions(c), y = u === "y", v = y ? "top" : "left", w = y ? "bottom" : "right", k = y ? "clientHeight" : "clientWidth", P = r.reference[g] + r.reference[u] - f[u] - r.floating[g], M = f[u] - r.reference[u], $ = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
|
|
1413
|
+
let R = $ ? $[k] : 0;
|
|
1414
|
+
(!R || !await (n.isElement == null ? void 0 : n.isElement($))) && (R = a.floating[k] || r.floating[g]);
|
|
1415
|
+
const G = P / 2 - M / 2, L = R / 2 - b[g] / 2 - 1, C = pe(h[v], L), I = pe(h[w], L), O = R - b[g] - I, V = R / 2 - b[g] / 2 + G, S = Bs(C, V, O), H = !l.arrow && $e(i) != null && V !== S && r.reference[g] / 2 - (V < C ? C : I) - b[g] / 2 < 0, te = H ? V < C ? V - C : V - O : 0;
|
|
1409
1416
|
return {
|
|
1410
1417
|
[u]: f[u] + te,
|
|
1411
1418
|
data: {
|
|
1412
1419
|
[u]: S,
|
|
1413
|
-
centerOffset:
|
|
1420
|
+
centerOffset: V - S - te,
|
|
1414
1421
|
...H && {
|
|
1415
1422
|
alignmentOffset: te
|
|
1416
1423
|
}
|
|
@@ -1418,7 +1425,7 @@ const Si = 50, Ti = async (s, e, t) => {
|
|
|
1418
1425
|
reset: H
|
|
1419
1426
|
};
|
|
1420
1427
|
}
|
|
1421
|
-
}),
|
|
1428
|
+
}), Pi = function(s) {
|
|
1422
1429
|
return s === void 0 && (s = {}), {
|
|
1423
1430
|
name: "flip",
|
|
1424
1431
|
options: s,
|
|
@@ -1439,23 +1446,23 @@ const Si = 50, Ti = async (s, e, t) => {
|
|
|
1439
1446
|
fallbackAxisSideDirection: g = "none",
|
|
1440
1447
|
flipAlignment: b = !0,
|
|
1441
1448
|
...y
|
|
1442
|
-
} =
|
|
1449
|
+
} = De(s, e);
|
|
1443
1450
|
if ((t = r.arrow) != null && t.alignmentOffset)
|
|
1444
1451
|
return {};
|
|
1445
|
-
const v = Se(i), w = oe(a), k = Se(a) === a, P = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), M = f || (k || !b ? [bt(a)] :
|
|
1446
|
-
!f &&
|
|
1452
|
+
const v = Se(i), w = oe(a), k = Se(a) === a, P = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), M = f || (k || !b ? [bt(a)] : yi(a)), $ = g !== "none";
|
|
1453
|
+
!f && $ && M.push(...ki(a, b, g, P));
|
|
1447
1454
|
const R = [a, ...M], G = await l.detectOverflow(e, y), L = [];
|
|
1448
1455
|
let C = ((o = r.flip) == null ? void 0 : o.overflows) || [];
|
|
1449
1456
|
if (d && L.push(G[v]), h) {
|
|
1450
|
-
const S =
|
|
1457
|
+
const S = vi(i, n, P);
|
|
1451
1458
|
L.push(G[S[0]], G[S[1]]);
|
|
1452
1459
|
}
|
|
1453
1460
|
if (C = [...C, {
|
|
1454
1461
|
placement: i,
|
|
1455
1462
|
overflows: L
|
|
1456
1463
|
}], !L.every((S) => S <= 0)) {
|
|
1457
|
-
var
|
|
1458
|
-
const S = (((
|
|
1464
|
+
var I, O;
|
|
1465
|
+
const S = (((I = r.flip) == null ? void 0 : I.index) || 0) + 1, H = R[S];
|
|
1459
1466
|
if (H && (!(h === "alignment" ? w !== oe(H) : !1) || // We leave the current main axis only if every placement on that axis
|
|
1460
1467
|
// overflows the main axis.
|
|
1461
1468
|
C.every((q) => oe(q.placement) === w ? q.overflows[0] > 0 : !0)))
|
|
@@ -1468,20 +1475,20 @@ const Si = 50, Ti = async (s, e, t) => {
|
|
|
1468
1475
|
placement: H
|
|
1469
1476
|
}
|
|
1470
1477
|
};
|
|
1471
|
-
let te = (
|
|
1478
|
+
let te = (O = C.filter((ge) => ge.overflows[0] <= 0).sort((ge, q) => ge.overflows[1] - q.overflows[1])[0]) == null ? void 0 : O.placement;
|
|
1472
1479
|
if (!te)
|
|
1473
1480
|
switch (u) {
|
|
1474
1481
|
case "bestFit": {
|
|
1475
|
-
var
|
|
1476
|
-
const ge = (
|
|
1477
|
-
if (
|
|
1482
|
+
var V;
|
|
1483
|
+
const ge = (V = C.filter((q) => {
|
|
1484
|
+
if ($) {
|
|
1478
1485
|
const le = oe(q.placement);
|
|
1479
1486
|
return le === w || // Create a bias to the `y` side axis due to horizontal
|
|
1480
1487
|
// reading directions favoring greater width.
|
|
1481
1488
|
le === "y";
|
|
1482
1489
|
}
|
|
1483
1490
|
return !0;
|
|
1484
|
-
}).map((q) => [q.placement, q.overflows.filter((le) => le > 0).reduce((le,
|
|
1491
|
+
}).map((q) => [q.placement, q.overflows.filter((le) => le > 0).reduce((le, lo) => le + lo, 0)]).sort((q, le) => q[1] - le[1])[0]) == null ? void 0 : V[0];
|
|
1485
1492
|
ge && (te = ge);
|
|
1486
1493
|
break;
|
|
1487
1494
|
}
|
|
@@ -1499,13 +1506,13 @@ const Si = 50, Ti = async (s, e, t) => {
|
|
|
1499
1506
|
return {};
|
|
1500
1507
|
}
|
|
1501
1508
|
};
|
|
1502
|
-
},
|
|
1503
|
-
async function
|
|
1509
|
+
}, Mi = /* @__PURE__ */ new Set(["left", "top"]);
|
|
1510
|
+
async function Li(s, e) {
|
|
1504
1511
|
const {
|
|
1505
1512
|
placement: t,
|
|
1506
1513
|
platform: o,
|
|
1507
1514
|
elements: i
|
|
1508
|
-
} = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = Se(t), a =
|
|
1515
|
+
} = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = Se(t), a = $e(t), l = oe(t) === "y", c = Mi.has(n) ? -1 : 1, d = r && l ? -1 : 1, h = De(e, s);
|
|
1509
1516
|
let {
|
|
1510
1517
|
mainAxis: f,
|
|
1511
1518
|
crossAxis: u,
|
|
@@ -1527,7 +1534,7 @@ async function Mi(s, e) {
|
|
|
1527
1534
|
y: u * d
|
|
1528
1535
|
};
|
|
1529
1536
|
}
|
|
1530
|
-
const
|
|
1537
|
+
const Ei = function(s) {
|
|
1531
1538
|
return s === void 0 && (s = 0), {
|
|
1532
1539
|
name: "offset",
|
|
1533
1540
|
options: s,
|
|
@@ -1538,7 +1545,7 @@ const Li = function(s) {
|
|
|
1538
1545
|
y: r,
|
|
1539
1546
|
placement: n,
|
|
1540
1547
|
middlewareData: a
|
|
1541
|
-
} = e, l = await
|
|
1548
|
+
} = e, l = await Li(e, s);
|
|
1542
1549
|
return n === ((t = a.offset) == null ? void 0 : t.placement) && (o = a.arrow) != null && o.alignmentOffset ? {} : {
|
|
1543
1550
|
x: i + l.x,
|
|
1544
1551
|
y: r + l.y,
|
|
@@ -1549,7 +1556,7 @@ const Li = function(s) {
|
|
|
1549
1556
|
};
|
|
1550
1557
|
}
|
|
1551
1558
|
};
|
|
1552
|
-
},
|
|
1559
|
+
}, Ai = function(s) {
|
|
1553
1560
|
return s === void 0 && (s = {}), {
|
|
1554
1561
|
name: "shift",
|
|
1555
1562
|
options: s,
|
|
@@ -1575,12 +1582,12 @@ const Li = function(s) {
|
|
|
1575
1582
|
}
|
|
1576
1583
|
},
|
|
1577
1584
|
...c
|
|
1578
|
-
} =
|
|
1585
|
+
} = De(s, e), d = {
|
|
1579
1586
|
x: t,
|
|
1580
1587
|
y: o
|
|
1581
|
-
}, h = await r.detectOverflow(e, c), f = oe(i), u =
|
|
1588
|
+
}, h = await r.detectOverflow(e, c), f = oe(i), u = Ks(f);
|
|
1582
1589
|
let g = d[u], b = d[f];
|
|
1583
|
-
const y = (w, k) =>
|
|
1590
|
+
const y = (w, k) => Bs(k + h[w === "y" ? "top" : "left"], k, k - h[w === "y" ? "bottom" : "right"]);
|
|
1584
1591
|
n && (g = y(u, g)), a && (b = y(f, b));
|
|
1585
1592
|
const v = l.fn({
|
|
1586
1593
|
...e,
|
|
@@ -1600,7 +1607,7 @@ const Li = function(s) {
|
|
|
1600
1607
|
};
|
|
1601
1608
|
}
|
|
1602
1609
|
};
|
|
1603
|
-
},
|
|
1610
|
+
}, zi = function(s) {
|
|
1604
1611
|
return s === void 0 && (s = {}), {
|
|
1605
1612
|
name: "size",
|
|
1606
1613
|
options: s,
|
|
@@ -1614,18 +1621,18 @@ const Li = function(s) {
|
|
|
1614
1621
|
apply: n = () => {
|
|
1615
1622
|
},
|
|
1616
1623
|
...a
|
|
1617
|
-
} =
|
|
1624
|
+
} = De(s, e), l = await i.detectOverflow(e, a), c = Se(t), d = $e(t), h = oe(t) === "y", {
|
|
1618
1625
|
width: f,
|
|
1619
1626
|
height: u
|
|
1620
1627
|
} = o.floating;
|
|
1621
1628
|
let g, b;
|
|
1622
1629
|
c === "top" || c === "bottom" ? (g = c, b = d === (await (i.isRTL == null ? void 0 : i.isRTL(r.floating)) ? "start" : "end") ? "left" : "right") : (b = c, g = d === "end" ? "top" : "bottom");
|
|
1623
1630
|
const y = u - l.top - l.bottom, v = f - l.left - l.right, w = pe(u - l[g], y), k = pe(f - l[b], v), P = e.middlewareData.shift, M = !P;
|
|
1624
|
-
let
|
|
1625
|
-
P != null && P.enabled.x && (R = v), P != null && P.enabled.y && (
|
|
1631
|
+
let $ = w, R = k;
|
|
1632
|
+
P != null && P.enabled.x && (R = v), P != null && P.enabled.y && ($ = y), M && !d && (h ? R = f - 2 * ie(l.left, l.right) : $ = u - 2 * ie(l.top, l.bottom)), await n({
|
|
1626
1633
|
...e,
|
|
1627
1634
|
availableWidth: R,
|
|
1628
|
-
availableHeight:
|
|
1635
|
+
availableHeight: $
|
|
1629
1636
|
});
|
|
1630
1637
|
const G = await i.getDimensions(r.floating);
|
|
1631
1638
|
return f !== G.width || u !== G.height ? {
|
|
@@ -1639,8 +1646,8 @@ const Li = function(s) {
|
|
|
1639
1646
|
function xt() {
|
|
1640
1647
|
return typeof window < "u";
|
|
1641
1648
|
}
|
|
1642
|
-
function
|
|
1643
|
-
return
|
|
1649
|
+
function Ve(s) {
|
|
1650
|
+
return Ws(s) ? (s.nodeName || "").toLowerCase() : "#document";
|
|
1644
1651
|
}
|
|
1645
1652
|
function U(s) {
|
|
1646
1653
|
var e;
|
|
@@ -1648,9 +1655,9 @@ function U(s) {
|
|
|
1648
1655
|
}
|
|
1649
1656
|
function ne(s) {
|
|
1650
1657
|
var e;
|
|
1651
|
-
return (e = (
|
|
1658
|
+
return (e = (Ws(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
|
|
1652
1659
|
}
|
|
1653
|
-
function
|
|
1660
|
+
function Ws(s) {
|
|
1654
1661
|
return xt() ? s instanceof Node || s instanceof U(s).Node : !1;
|
|
1655
1662
|
}
|
|
1656
1663
|
function Z(s) {
|
|
@@ -1659,7 +1666,7 @@ function Z(s) {
|
|
|
1659
1666
|
function fe(s) {
|
|
1660
1667
|
return xt() ? s instanceof HTMLElement || s instanceof U(s).HTMLElement : !1;
|
|
1661
1668
|
}
|
|
1662
|
-
function
|
|
1669
|
+
function fs(s) {
|
|
1663
1670
|
return !xt() || typeof ShadowRoot > "u" ? !1 : s instanceof ShadowRoot || s instanceof U(s).ShadowRoot;
|
|
1664
1671
|
}
|
|
1665
1672
|
function _t(s) {
|
|
@@ -1671,8 +1678,8 @@ function _t(s) {
|
|
|
1671
1678
|
} = ee(s);
|
|
1672
1679
|
return /auto|scroll|overlay|hidden|clip/.test(e + o + t) && i !== "inline" && i !== "contents";
|
|
1673
1680
|
}
|
|
1674
|
-
function
|
|
1675
|
-
return /^(table|td|th)$/.test(
|
|
1681
|
+
function Ni(s) {
|
|
1682
|
+
return /^(table|td|th)$/.test(Ve(s));
|
|
1676
1683
|
}
|
|
1677
1684
|
function kt(s) {
|
|
1678
1685
|
try {
|
|
@@ -1687,15 +1694,15 @@ function kt(s) {
|
|
|
1687
1694
|
}
|
|
1688
1695
|
}
|
|
1689
1696
|
const Di = /transform|translate|scale|rotate|perspective|filter/, $i = /paint|layout|strict|content/, be = (s) => !!s && s !== "none";
|
|
1690
|
-
let
|
|
1691
|
-
function
|
|
1697
|
+
let Pt;
|
|
1698
|
+
function Qt(s) {
|
|
1692
1699
|
const e = Z(s) ? ee(s) : s;
|
|
1693
|
-
return be(e.transform) || be(e.translate) || be(e.scale) || be(e.rotate) || be(e.perspective) || !
|
|
1700
|
+
return be(e.transform) || be(e.translate) || be(e.scale) || be(e.rotate) || be(e.perspective) || !Zt() && (be(e.backdropFilter) || be(e.filter)) || Di.test(e.willChange || "") || $i.test(e.contain || "");
|
|
1694
1701
|
}
|
|
1695
1702
|
function Vi(s) {
|
|
1696
1703
|
let e = Te(s);
|
|
1697
1704
|
for (; fe(e) && !qe(e); ) {
|
|
1698
|
-
if (
|
|
1705
|
+
if (Qt(e))
|
|
1699
1706
|
return e;
|
|
1700
1707
|
if (kt(e))
|
|
1701
1708
|
return null;
|
|
@@ -1703,11 +1710,11 @@ function Vi(s) {
|
|
|
1703
1710
|
}
|
|
1704
1711
|
return null;
|
|
1705
1712
|
}
|
|
1706
|
-
function
|
|
1707
|
-
return
|
|
1713
|
+
function Zt() {
|
|
1714
|
+
return Pt == null && (Pt = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), Pt;
|
|
1708
1715
|
}
|
|
1709
1716
|
function qe(s) {
|
|
1710
|
-
return /^(html|body|#document)$/.test(
|
|
1717
|
+
return /^(html|body|#document)$/.test(Ve(s));
|
|
1711
1718
|
}
|
|
1712
1719
|
function ee(s) {
|
|
1713
1720
|
return U(s).getComputedStyle(s);
|
|
@@ -1722,35 +1729,35 @@ function Ct(s) {
|
|
|
1722
1729
|
};
|
|
1723
1730
|
}
|
|
1724
1731
|
function Te(s) {
|
|
1725
|
-
if (
|
|
1732
|
+
if (Ve(s) === "html")
|
|
1726
1733
|
return s;
|
|
1727
1734
|
const e = (
|
|
1728
1735
|
// Step into the shadow DOM of the parent of a slotted node.
|
|
1729
1736
|
s.assignedSlot || // DOM Element detected.
|
|
1730
1737
|
s.parentNode || // ShadowRoot detected.
|
|
1731
|
-
|
|
1738
|
+
fs(s) && s.host || // Fallback.
|
|
1732
1739
|
ne(s)
|
|
1733
1740
|
);
|
|
1734
|
-
return
|
|
1741
|
+
return fs(e) ? e.host : e;
|
|
1735
1742
|
}
|
|
1736
|
-
function
|
|
1743
|
+
function js(s) {
|
|
1737
1744
|
const e = Te(s);
|
|
1738
|
-
return qe(e) ? (s.ownerDocument || s).body : fe(e) && _t(e) ? e :
|
|
1745
|
+
return qe(e) ? (s.ownerDocument || s).body : fe(e) && _t(e) ? e : js(e);
|
|
1739
1746
|
}
|
|
1740
1747
|
function Ye(s, e, t) {
|
|
1741
1748
|
var o;
|
|
1742
1749
|
e === void 0 && (e = []), t === void 0 && (t = !0);
|
|
1743
|
-
const i =
|
|
1750
|
+
const i = js(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = U(i);
|
|
1744
1751
|
if (r) {
|
|
1745
|
-
const a =
|
|
1752
|
+
const a = Ht(n);
|
|
1746
1753
|
return e.concat(n, n.visualViewport || [], _t(i) ? i : [], a && t ? Ye(a) : []);
|
|
1747
1754
|
} else
|
|
1748
1755
|
return e.concat(i, Ye(i, [], t));
|
|
1749
1756
|
}
|
|
1750
|
-
function
|
|
1757
|
+
function Ht(s) {
|
|
1751
1758
|
return s.parent && Object.getPrototypeOf(s.parent) ? s.frameElement : null;
|
|
1752
1759
|
}
|
|
1753
|
-
function
|
|
1760
|
+
function Us(s) {
|
|
1754
1761
|
const e = ee(s);
|
|
1755
1762
|
let t = parseFloat(e.width) || 0, o = parseFloat(e.height) || 0;
|
|
1756
1763
|
const i = fe(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a = gt(t) !== r || gt(o) !== n;
|
|
@@ -1760,48 +1767,48 @@ function js(s) {
|
|
|
1760
1767
|
$: a
|
|
1761
1768
|
};
|
|
1762
1769
|
}
|
|
1763
|
-
function
|
|
1770
|
+
function es(s) {
|
|
1764
1771
|
return Z(s) ? s : s.contextElement;
|
|
1765
1772
|
}
|
|
1766
|
-
function
|
|
1767
|
-
const e =
|
|
1773
|
+
function Oe(s) {
|
|
1774
|
+
const e = es(s);
|
|
1768
1775
|
if (!fe(e))
|
|
1769
1776
|
return re(1);
|
|
1770
1777
|
const t = e.getBoundingClientRect(), {
|
|
1771
1778
|
width: o,
|
|
1772
1779
|
height: i,
|
|
1773
1780
|
$: r
|
|
1774
|
-
} =
|
|
1781
|
+
} = Us(e);
|
|
1775
1782
|
let n = (r ? gt(t.width) : t.width) / o, a = (r ? gt(t.height) : t.height) / i;
|
|
1776
1783
|
return (!n || !Number.isFinite(n)) && (n = 1), (!a || !Number.isFinite(a)) && (a = 1), {
|
|
1777
1784
|
x: n,
|
|
1778
1785
|
y: a
|
|
1779
1786
|
};
|
|
1780
1787
|
}
|
|
1781
|
-
const
|
|
1782
|
-
function
|
|
1788
|
+
const Ri = /* @__PURE__ */ re(0);
|
|
1789
|
+
function Gs(s) {
|
|
1783
1790
|
const e = U(s);
|
|
1784
|
-
return !
|
|
1791
|
+
return !Zt() || !e.visualViewport ? Ri : {
|
|
1785
1792
|
x: e.visualViewport.offsetLeft,
|
|
1786
1793
|
y: e.visualViewport.offsetTop
|
|
1787
1794
|
};
|
|
1788
1795
|
}
|
|
1789
|
-
function
|
|
1796
|
+
function Hi(s, e, t) {
|
|
1790
1797
|
return e === void 0 && (e = !1), !!t && e && t === U(s);
|
|
1791
1798
|
}
|
|
1792
|
-
function
|
|
1799
|
+
function Ie(s, e, t, o) {
|
|
1793
1800
|
e === void 0 && (e = !1), t === void 0 && (t = !1);
|
|
1794
|
-
const i = s.getBoundingClientRect(), r =
|
|
1801
|
+
const i = s.getBoundingClientRect(), r = es(s);
|
|
1795
1802
|
let n = re(1);
|
|
1796
|
-
e && (o ? Z(o) && (n =
|
|
1797
|
-
const a =
|
|
1803
|
+
e && (o ? Z(o) && (n = Oe(o)) : n = Oe(s));
|
|
1804
|
+
const a = Hi(r, t, o) ? Gs(r) : re(0);
|
|
1798
1805
|
let l = (i.left + a.x) / n.x, c = (i.top + a.y) / n.y, d = i.width / n.x, h = i.height / n.y;
|
|
1799
1806
|
if (r && o) {
|
|
1800
1807
|
const f = U(r), u = Z(o) ? U(o) : o;
|
|
1801
|
-
let g = f, b =
|
|
1808
|
+
let g = f, b = Ht(g);
|
|
1802
1809
|
for (; b && u !== g; ) {
|
|
1803
|
-
const y =
|
|
1804
|
-
l *= y.x, c *= y.y, d *= y.x, h *= y.y, l += k, c += P, g = U(b), b =
|
|
1810
|
+
const y = Oe(b), v = b.getBoundingClientRect(), w = ee(b), k = v.left + (b.clientLeft + parseFloat(w.paddingLeft)) * y.x, P = v.top + (b.clientTop + parseFloat(w.paddingTop)) * y.y;
|
|
1811
|
+
l *= y.x, c *= y.y, d *= y.x, h *= y.y, l += k, c += P, g = U(b), b = Ht(g);
|
|
1805
1812
|
}
|
|
1806
1813
|
}
|
|
1807
1814
|
return vt({
|
|
@@ -1813,16 +1820,16 @@ function Oe(s, e, t, o) {
|
|
|
1813
1820
|
}
|
|
1814
1821
|
function St(s, e) {
|
|
1815
1822
|
const t = Ct(s).scrollLeft;
|
|
1816
|
-
return e ? e.left + t :
|
|
1823
|
+
return e ? e.left + t : Ie(ne(s)).left + t;
|
|
1817
1824
|
}
|
|
1818
|
-
function
|
|
1825
|
+
function Xs(s, e) {
|
|
1819
1826
|
const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft - St(s, t), i = t.top + e.scrollTop;
|
|
1820
1827
|
return {
|
|
1821
1828
|
x: o,
|
|
1822
1829
|
y: i
|
|
1823
1830
|
};
|
|
1824
1831
|
}
|
|
1825
|
-
function
|
|
1832
|
+
function Bi(s) {
|
|
1826
1833
|
let {
|
|
1827
1834
|
elements: e,
|
|
1828
1835
|
rect: t,
|
|
@@ -1837,11 +1844,11 @@ function Hi(s) {
|
|
|
1837
1844
|
scrollTop: 0
|
|
1838
1845
|
}, c = re(1);
|
|
1839
1846
|
const d = re(0), h = fe(o);
|
|
1840
|
-
if ((h || !r) && ((
|
|
1841
|
-
const u =
|
|
1842
|
-
c =
|
|
1847
|
+
if ((h || !r) && ((Ve(o) !== "body" || _t(n)) && (l = Ct(o)), h)) {
|
|
1848
|
+
const u = Ie(o);
|
|
1849
|
+
c = Oe(o), d.x = u.x + o.clientLeft, d.y = u.y + o.clientTop;
|
|
1843
1850
|
}
|
|
1844
|
-
const f = n && !h && !r ?
|
|
1851
|
+
const f = n && !h && !r ? Xs(n, l) : re(0);
|
|
1845
1852
|
return {
|
|
1846
1853
|
width: t.width * c.x,
|
|
1847
1854
|
height: t.height * c.y,
|
|
@@ -1849,10 +1856,10 @@ function Hi(s) {
|
|
|
1849
1856
|
y: t.y * c.y - l.scrollTop * c.y + d.y + f.y
|
|
1850
1857
|
};
|
|
1851
1858
|
}
|
|
1852
|
-
function
|
|
1859
|
+
function Ki(s) {
|
|
1853
1860
|
return s.getClientRects ? Array.from(s.getClientRects()) : [];
|
|
1854
1861
|
}
|
|
1855
|
-
function
|
|
1862
|
+
function Fi(s) {
|
|
1856
1863
|
const e = Ct(s), t = s.ownerDocument.body, o = ie(s.scrollWidth, s.clientWidth, t.scrollWidth, t.clientWidth), i = ie(s.scrollHeight, s.clientHeight, t.scrollHeight, t.clientHeight);
|
|
1857
1864
|
let r = -e.scrollLeft + St(s);
|
|
1858
1865
|
const n = -e.scrollTop;
|
|
@@ -1863,18 +1870,18 @@ function Ki(s) {
|
|
|
1863
1870
|
y: n
|
|
1864
1871
|
};
|
|
1865
1872
|
}
|
|
1866
|
-
const
|
|
1867
|
-
function
|
|
1873
|
+
const Wi = 25;
|
|
1874
|
+
function ji(s, e, t) {
|
|
1868
1875
|
t === void 0 && (t = "viewport");
|
|
1869
1876
|
const o = t === "layoutViewport", i = U(s), r = ne(s), n = i.visualViewport;
|
|
1870
1877
|
let a = r.clientWidth, l = r.clientHeight, c = 0, d = 0;
|
|
1871
1878
|
if (n) {
|
|
1872
|
-
const f = !
|
|
1879
|
+
const f = !Zt() || e === "fixed";
|
|
1873
1880
|
o ? f || (c = -n.offsetLeft, d = -n.offsetTop) : (a = n.width, l = n.height, f && (c = n.offsetLeft, d = n.offsetTop));
|
|
1874
1881
|
}
|
|
1875
1882
|
if (St(r) <= 0) {
|
|
1876
1883
|
const f = r.ownerDocument, u = f.body, g = getComputedStyle(u), b = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, y = Math.abs(r.clientWidth - u.clientWidth - b), v = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? y / 2 : y;
|
|
1877
|
-
v <=
|
|
1884
|
+
v <= Wi && (a -= v);
|
|
1878
1885
|
}
|
|
1879
1886
|
return {
|
|
1880
1887
|
width: a,
|
|
@@ -1883,8 +1890,8 @@ function Wi(s, e, t) {
|
|
|
1883
1890
|
y: d
|
|
1884
1891
|
};
|
|
1885
1892
|
}
|
|
1886
|
-
function
|
|
1887
|
-
const t =
|
|
1893
|
+
function Ui(s, e) {
|
|
1894
|
+
const t = Ie(s, !0, e === "fixed"), o = t.top + s.clientTop, i = t.left + s.clientLeft, r = Oe(s), n = s.clientWidth * r.x, a = s.clientHeight * r.y, l = i * r.x, c = o * r.y;
|
|
1888
1895
|
return {
|
|
1889
1896
|
width: n,
|
|
1890
1897
|
height: a,
|
|
@@ -1892,16 +1899,16 @@ function ji(s, e) {
|
|
|
1892
1899
|
y: c
|
|
1893
1900
|
};
|
|
1894
1901
|
}
|
|
1895
|
-
function
|
|
1902
|
+
function gs(s, e, t) {
|
|
1896
1903
|
let o;
|
|
1897
1904
|
if (e === "viewport" || e === "layoutViewport")
|
|
1898
|
-
o =
|
|
1905
|
+
o = ji(s, t, e);
|
|
1899
1906
|
else if (e === "document")
|
|
1900
|
-
o =
|
|
1907
|
+
o = Fi(ne(s));
|
|
1901
1908
|
else if (Z(e))
|
|
1902
|
-
o =
|
|
1909
|
+
o = Ui(e, t);
|
|
1903
1910
|
else {
|
|
1904
|
-
const i =
|
|
1911
|
+
const i = Gs(s);
|
|
1905
1912
|
o = {
|
|
1906
1913
|
x: e.x - i.x,
|
|
1907
1914
|
y: e.y - i.y,
|
|
@@ -1911,30 +1918,30 @@ function fs(s, e, t) {
|
|
|
1911
1918
|
}
|
|
1912
1919
|
return vt(o);
|
|
1913
1920
|
}
|
|
1914
|
-
function
|
|
1921
|
+
function Gi(s, e) {
|
|
1915
1922
|
const t = e.get(s);
|
|
1916
1923
|
if (t)
|
|
1917
1924
|
return t;
|
|
1918
|
-
let o = Ye(s, [], !1).filter((a) => Z(a) &&
|
|
1925
|
+
let o = Ye(s, [], !1).filter((a) => Z(a) && Ve(a) !== "body"), i = null;
|
|
1919
1926
|
const r = ee(s).position === "fixed";
|
|
1920
1927
|
let n = r ? Te(s) : s;
|
|
1921
1928
|
for (; Z(n) && !qe(n); ) {
|
|
1922
|
-
const a = ee(n), l =
|
|
1929
|
+
const a = ee(n), l = Qt(n), c = i ? i.position : r ? "fixed" : "";
|
|
1923
1930
|
!l && (c === "fixed" || c === "absolute" && a.position === "static") ? o = o.filter((h) => h !== n) : i = a, n = Te(n);
|
|
1924
1931
|
}
|
|
1925
1932
|
return e.set(s, o), o;
|
|
1926
1933
|
}
|
|
1927
|
-
function
|
|
1934
|
+
function Xi(s) {
|
|
1928
1935
|
let {
|
|
1929
1936
|
element: e,
|
|
1930
1937
|
boundary: t,
|
|
1931
1938
|
rootBoundary: o,
|
|
1932
1939
|
strategy: i
|
|
1933
1940
|
} = s;
|
|
1934
|
-
const n = [...t === "clippingAncestors" ? kt(e) ? [] :
|
|
1941
|
+
const n = [...t === "clippingAncestors" ? kt(e) ? [] : Gi(e, this._c) : [].concat(t), o], a = gs(e, n[0], i);
|
|
1935
1942
|
let l = a.top, c = a.right, d = a.bottom, h = a.left;
|
|
1936
1943
|
for (let f = 1; f < n.length; f++) {
|
|
1937
|
-
const u =
|
|
1944
|
+
const u = gs(e, n[f], i);
|
|
1938
1945
|
l = ie(u.top, l), c = pe(u.right, c), d = pe(u.bottom, d), h = ie(u.left, h);
|
|
1939
1946
|
}
|
|
1940
1947
|
return {
|
|
@@ -1944,29 +1951,29 @@ function Gi(s) {
|
|
|
1944
1951
|
y: l
|
|
1945
1952
|
};
|
|
1946
1953
|
}
|
|
1947
|
-
function
|
|
1954
|
+
function qi(s) {
|
|
1948
1955
|
const {
|
|
1949
1956
|
width: e,
|
|
1950
1957
|
height: t
|
|
1951
|
-
} =
|
|
1958
|
+
} = Us(s);
|
|
1952
1959
|
return {
|
|
1953
1960
|
width: e,
|
|
1954
1961
|
height: t
|
|
1955
1962
|
};
|
|
1956
1963
|
}
|
|
1957
|
-
function
|
|
1958
|
-
const o = fe(e), i = ne(e), r = t === "fixed", n =
|
|
1964
|
+
function Yi(s, e, t) {
|
|
1965
|
+
const o = fe(e), i = ne(e), r = t === "fixed", n = Ie(s, !0, r, e);
|
|
1959
1966
|
let a = {
|
|
1960
1967
|
scrollLeft: 0,
|
|
1961
1968
|
scrollTop: 0
|
|
1962
1969
|
};
|
|
1963
1970
|
const l = re(0);
|
|
1964
|
-
if ((o || !r) && ((
|
|
1965
|
-
const f =
|
|
1971
|
+
if ((o || !r) && ((Ve(e) !== "body" || _t(i)) && (a = Ct(e)), o)) {
|
|
1972
|
+
const f = Ie(e, !0, r, e);
|
|
1966
1973
|
l.x = f.x + e.clientLeft, l.y = f.y + e.clientTop;
|
|
1967
1974
|
}
|
|
1968
1975
|
!o && i && (l.x = St(i));
|
|
1969
|
-
const c = i && !o && !r ?
|
|
1976
|
+
const c = i && !o && !r ? Xs(i, a) : re(0), d = n.left + a.scrollLeft - l.x - c.x, h = n.top + a.scrollTop - l.y - c.y;
|
|
1970
1977
|
return {
|
|
1971
1978
|
x: d,
|
|
1972
1979
|
y: h,
|
|
@@ -1974,10 +1981,10 @@ function qi(s, e, t) {
|
|
|
1974
1981
|
height: n.height
|
|
1975
1982
|
};
|
|
1976
1983
|
}
|
|
1977
|
-
function
|
|
1984
|
+
function Mt(s) {
|
|
1978
1985
|
return ee(s).position === "static";
|
|
1979
1986
|
}
|
|
1980
|
-
function
|
|
1987
|
+
function bs(s, e) {
|
|
1981
1988
|
if (!fe(s) || ee(s).position === "fixed")
|
|
1982
1989
|
return null;
|
|
1983
1990
|
if (e)
|
|
@@ -1985,28 +1992,28 @@ function gs(s, e) {
|
|
|
1985
1992
|
let t = s.offsetParent;
|
|
1986
1993
|
return ne(s) === t && (t = t.ownerDocument.body), t;
|
|
1987
1994
|
}
|
|
1988
|
-
function
|
|
1995
|
+
function qs(s, e) {
|
|
1989
1996
|
const t = U(s);
|
|
1990
1997
|
if (kt(s))
|
|
1991
1998
|
return t;
|
|
1992
1999
|
if (!fe(s)) {
|
|
1993
2000
|
let i = Te(s);
|
|
1994
2001
|
for (; i && !qe(i); ) {
|
|
1995
|
-
if (Z(i) && !
|
|
2002
|
+
if (Z(i) && !Mt(i))
|
|
1996
2003
|
return i;
|
|
1997
2004
|
i = Te(i);
|
|
1998
2005
|
}
|
|
1999
2006
|
return t;
|
|
2000
2007
|
}
|
|
2001
|
-
let o =
|
|
2002
|
-
for (; o &&
|
|
2003
|
-
o =
|
|
2004
|
-
return o && qe(o) &&
|
|
2008
|
+
let o = bs(s, e);
|
|
2009
|
+
for (; o && Ni(o) && Mt(o); )
|
|
2010
|
+
o = bs(o, e);
|
|
2011
|
+
return o && qe(o) && Mt(o) && !Qt(o) ? t : o || Vi(s) || t;
|
|
2005
2012
|
}
|
|
2006
|
-
const
|
|
2007
|
-
const e = this.getOffsetParent ||
|
|
2013
|
+
const Ji = async function(s) {
|
|
2014
|
+
const e = this.getOffsetParent || qs, t = this.getDimensions, o = await t(s.floating);
|
|
2008
2015
|
return {
|
|
2009
|
-
reference:
|
|
2016
|
+
reference: Yi(s.reference, await e(s.floating), s.strategy),
|
|
2010
2017
|
floating: {
|
|
2011
2018
|
x: 0,
|
|
2012
2019
|
y: 0,
|
|
@@ -2015,25 +2022,25 @@ const Yi = async function(s) {
|
|
|
2015
2022
|
}
|
|
2016
2023
|
};
|
|
2017
2024
|
};
|
|
2018
|
-
function
|
|
2025
|
+
function Qi(s) {
|
|
2019
2026
|
return ee(s).direction === "rtl";
|
|
2020
2027
|
}
|
|
2021
|
-
const
|
|
2022
|
-
convertOffsetParentRelativeRectToViewportRelativeRect:
|
|
2028
|
+
const Ys = {
|
|
2029
|
+
convertOffsetParentRelativeRectToViewportRelativeRect: Bi,
|
|
2023
2030
|
getDocumentElement: ne,
|
|
2024
|
-
getClippingRect:
|
|
2025
|
-
getOffsetParent:
|
|
2026
|
-
getElementRects:
|
|
2027
|
-
getClientRects:
|
|
2028
|
-
getDimensions:
|
|
2029
|
-
getScale:
|
|
2031
|
+
getClippingRect: Xi,
|
|
2032
|
+
getOffsetParent: qs,
|
|
2033
|
+
getElementRects: Ji,
|
|
2034
|
+
getClientRects: Ki,
|
|
2035
|
+
getDimensions: qi,
|
|
2036
|
+
getScale: Oe,
|
|
2030
2037
|
isElement: Z,
|
|
2031
|
-
isRTL:
|
|
2038
|
+
isRTL: Qi
|
|
2032
2039
|
};
|
|
2033
|
-
function
|
|
2040
|
+
function Js(s, e) {
|
|
2034
2041
|
return s.x === e.x && s.y === e.y && s.width === e.width && s.height === e.height;
|
|
2035
2042
|
}
|
|
2036
|
-
function
|
|
2043
|
+
function Zi(s, e, t) {
|
|
2037
2044
|
let o = null, i;
|
|
2038
2045
|
const r = ne(s);
|
|
2039
2046
|
function n() {
|
|
@@ -2050,14 +2057,14 @@ function Qi(s, e, t) {
|
|
|
2050
2057
|
} = f;
|
|
2051
2058
|
if (d || e(), !b || !y)
|
|
2052
2059
|
return;
|
|
2053
|
-
const v = rt(g), w = rt(r.clientWidth - (u + b)), k = rt(r.clientHeight - (g + y)), P = rt(u),
|
|
2060
|
+
const v = rt(g), w = rt(r.clientWidth - (u + b)), k = rt(r.clientHeight - (g + y)), P = rt(u), $ = {
|
|
2054
2061
|
rootMargin: -v + "px " + -w + "px " + -k + "px " + -P + "px",
|
|
2055
2062
|
threshold: ie(0, pe(1, h)) || 1
|
|
2056
2063
|
};
|
|
2057
2064
|
let R = !0;
|
|
2058
2065
|
function G(L) {
|
|
2059
2066
|
const C = L[0].intersectionRatio;
|
|
2060
|
-
if (!
|
|
2067
|
+
if (!Js(f, s.getBoundingClientRect()))
|
|
2061
2068
|
return a();
|
|
2062
2069
|
if (C !== h) {
|
|
2063
2070
|
if (!R)
|
|
@@ -2070,12 +2077,12 @@ function Qi(s, e, t) {
|
|
|
2070
2077
|
}
|
|
2071
2078
|
try {
|
|
2072
2079
|
o = new IntersectionObserver(G, {
|
|
2073
|
-
|
|
2080
|
+
...$,
|
|
2074
2081
|
// Handle <iframe>s
|
|
2075
2082
|
root: r.ownerDocument
|
|
2076
2083
|
});
|
|
2077
2084
|
} catch {
|
|
2078
|
-
o = new IntersectionObserver(G,
|
|
2085
|
+
o = new IntersectionObserver(G, $);
|
|
2079
2086
|
}
|
|
2080
2087
|
o.observe(s);
|
|
2081
2088
|
}
|
|
@@ -2084,7 +2091,7 @@ function Qi(s, e, t) {
|
|
|
2084
2091
|
l.removeEventListener("resize", c), n();
|
|
2085
2092
|
};
|
|
2086
2093
|
}
|
|
2087
|
-
function
|
|
2094
|
+
function er(s, e, t, o) {
|
|
2088
2095
|
o === void 0 && (o = {});
|
|
2089
2096
|
const {
|
|
2090
2097
|
ancestorScroll: i = !0,
|
|
@@ -2092,11 +2099,11 @@ function Zi(s, e, t, o) {
|
|
|
2092
2099
|
elementResize: n = typeof ResizeObserver == "function",
|
|
2093
2100
|
layoutShift: a = typeof IntersectionObserver == "function",
|
|
2094
2101
|
animationFrame: l = !1
|
|
2095
|
-
} = o, c =
|
|
2102
|
+
} = o, c = es(s), d = i || r ? [...c ? Ye(c) : [], ...e ? Ye(e) : []] : [];
|
|
2096
2103
|
d.forEach((v) => {
|
|
2097
2104
|
i && v.addEventListener("scroll", t), r && v.addEventListener("resize", t);
|
|
2098
2105
|
});
|
|
2099
|
-
const h = c && a ?
|
|
2106
|
+
const h = c && a ? Zi(c, t, r) : null;
|
|
2100
2107
|
let f = -1, u = null;
|
|
2101
2108
|
n && (u = new ResizeObserver((v) => {
|
|
2102
2109
|
let [w] = v;
|
|
@@ -2105,11 +2112,11 @@ function Zi(s, e, t, o) {
|
|
|
2105
2112
|
(k = u) == null || k.observe(e);
|
|
2106
2113
|
})), t();
|
|
2107
2114
|
}), c && !l && u.observe(c), e && u.observe(e));
|
|
2108
|
-
let g, b = l ?
|
|
2115
|
+
let g, b = l ? Ie(s) : null;
|
|
2109
2116
|
l && y();
|
|
2110
2117
|
function y() {
|
|
2111
|
-
const v =
|
|
2112
|
-
b && !
|
|
2118
|
+
const v = Ie(s);
|
|
2119
|
+
b && !Js(b, v) && t(), b = v, g = requestAnimationFrame(y);
|
|
2113
2120
|
}
|
|
2114
2121
|
return t(), () => {
|
|
2115
2122
|
var v;
|
|
@@ -2118,37 +2125,37 @@ function Zi(s, e, t, o) {
|
|
|
2118
2125
|
}), h == null || h(), (v = u) == null || v.disconnect(), u = null, l && cancelAnimationFrame(g);
|
|
2119
2126
|
};
|
|
2120
2127
|
}
|
|
2121
|
-
const
|
|
2128
|
+
const tr = Ei, sr = Ai, or = Pi, Lt = zi, ir = Oi, rr = (s, e, t) => {
|
|
2122
2129
|
const o = /* @__PURE__ */ new Map(), i = t ?? {}, r = {
|
|
2123
|
-
...
|
|
2130
|
+
...Ys,
|
|
2124
2131
|
...i.platform,
|
|
2125
2132
|
_c: o
|
|
2126
2133
|
};
|
|
2127
|
-
return
|
|
2134
|
+
return Ii(s, e, {
|
|
2128
2135
|
...i,
|
|
2129
2136
|
platform: r
|
|
2130
2137
|
});
|
|
2131
2138
|
};
|
|
2132
|
-
function
|
|
2139
|
+
function Bt(s) {
|
|
2133
2140
|
const e = s.parentNode ?? null;
|
|
2134
2141
|
return e instanceof ShadowRoot ? e.host : e;
|
|
2135
2142
|
}
|
|
2136
|
-
function
|
|
2143
|
+
function nr(s) {
|
|
2137
2144
|
if (s.transform !== "none" || s.perspective !== "none" || s.filter !== "none")
|
|
2138
2145
|
return !0;
|
|
2139
2146
|
const e = s.backdropFilter;
|
|
2140
2147
|
return !!(e && e !== "none" || s.willChange && /\b(transform|filter|perspective)\b/.test(s.willChange));
|
|
2141
2148
|
}
|
|
2142
|
-
function
|
|
2143
|
-
let e =
|
|
2149
|
+
function vs(s) {
|
|
2150
|
+
let e = Bt(s);
|
|
2144
2151
|
for (; e && !(e === document.body || e === document.documentElement); ) {
|
|
2145
|
-
if (e instanceof Element &&
|
|
2152
|
+
if (e instanceof Element && nr(getComputedStyle(e)))
|
|
2146
2153
|
return e;
|
|
2147
|
-
e =
|
|
2154
|
+
e = Bt(e);
|
|
2148
2155
|
}
|
|
2149
2156
|
return window;
|
|
2150
2157
|
}
|
|
2151
|
-
function
|
|
2158
|
+
function ar(s, e, t) {
|
|
2152
2159
|
let o = s;
|
|
2153
2160
|
for (; o && !(o === document.body || o === document.documentElement); ) {
|
|
2154
2161
|
if (o instanceof Element) {
|
|
@@ -2156,11 +2163,11 @@ function nr(s, e, t) {
|
|
|
2156
2163
|
if (Math.abs(i.x - e) < 2 && Math.abs(i.y - t) < 2)
|
|
2157
2164
|
return o;
|
|
2158
2165
|
}
|
|
2159
|
-
o =
|
|
2166
|
+
o = Bt(o);
|
|
2160
2167
|
}
|
|
2161
2168
|
return null;
|
|
2162
2169
|
}
|
|
2163
|
-
function
|
|
2170
|
+
function lr(s) {
|
|
2164
2171
|
const e = getComputedStyle(s), t = [];
|
|
2165
2172
|
e.transform !== "none" && t.push(`transform: ${e.transform}`), e.perspective !== "none" && t.push(`perspective: ${e.perspective}`), e.filter !== "none" && t.push(`filter: ${e.filter}`);
|
|
2166
2173
|
const o = e.backdropFilter;
|
|
@@ -2168,11 +2175,11 @@ function ar(s) {
|
|
|
2168
2175
|
const i = e.containerType;
|
|
2169
2176
|
return i && i !== "normal" && t.push(`container-type: ${i}`), t.join("; ");
|
|
2170
2177
|
}
|
|
2171
|
-
function
|
|
2178
|
+
function cr(s) {
|
|
2172
2179
|
const e = s.id ? `#${s.id}` : "", t = typeof s.className == "string" && s.className ? "." + s.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : "";
|
|
2173
2180
|
return `<${s.tagName.toLowerCase()}${e}${t}>`;
|
|
2174
2181
|
}
|
|
2175
|
-
function
|
|
2182
|
+
function dr(s) {
|
|
2176
2183
|
const e = s.tolerance ?? 1.5;
|
|
2177
2184
|
let t = 0, o = 0;
|
|
2178
2185
|
if (s.offsetParent instanceof Element) {
|
|
@@ -2182,46 +2189,46 @@ function cr(s) {
|
|
|
2182
2189
|
const i = s.panel.getBoundingClientRect(), r = i.x - (t + s.expectedX), n = i.y - (o + s.expectedY);
|
|
2183
2190
|
if (Math.abs(r) < e && Math.abs(n) < e)
|
|
2184
2191
|
return null;
|
|
2185
|
-
const a =
|
|
2192
|
+
const a = ar(s.reference, r, n);
|
|
2186
2193
|
return {
|
|
2187
2194
|
driftX: r,
|
|
2188
2195
|
driftY: n,
|
|
2189
2196
|
culprit: a,
|
|
2190
|
-
culpritDescription: a ?
|
|
2191
|
-
culpritCss: a ?
|
|
2197
|
+
culpritDescription: a ? cr(a) : "an ancestor element (could not auto-identify)",
|
|
2198
|
+
culpritCss: a ? lr(a) : ""
|
|
2192
2199
|
};
|
|
2193
2200
|
}
|
|
2194
|
-
function
|
|
2201
|
+
function hr(s, e) {
|
|
2195
2202
|
var i;
|
|
2196
2203
|
const t = (i = s.closest) == null ? void 0 : i.call(s, "[data-theme]"), o = t == null ? void 0 : t.getAttribute("data-theme");
|
|
2197
2204
|
o != null && e.setAttribute("data-theme", o);
|
|
2198
2205
|
}
|
|
2199
|
-
const
|
|
2200
|
-
function
|
|
2206
|
+
const ur = { top: "bottom", right: "left", bottom: "top", left: "right" };
|
|
2207
|
+
function mr(s, e, t) {
|
|
2201
2208
|
if (!t)
|
|
2202
2209
|
return;
|
|
2203
|
-
const o = e.split("-")[0], i =
|
|
2210
|
+
const o = e.split("-")[0], i = ur[o];
|
|
2204
2211
|
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`;
|
|
2205
2212
|
}
|
|
2206
|
-
function
|
|
2207
|
-
const t = [
|
|
2213
|
+
function ys(s, e) {
|
|
2214
|
+
const t = [tr(s.offset ?? 4)];
|
|
2208
2215
|
if (s.matchWidth) {
|
|
2209
2216
|
const i = s.matchWidth;
|
|
2210
|
-
t.push(
|
|
2217
|
+
t.push(Lt({
|
|
2211
2218
|
apply({ rects: r, elements: n }) {
|
|
2212
2219
|
const a = `${r.reference.width}px`;
|
|
2213
2220
|
i === "exact" ? n.floating.style.width = a : n.floating.style.minWidth = a;
|
|
2214
2221
|
}
|
|
2215
2222
|
}));
|
|
2216
2223
|
}
|
|
2217
|
-
e && t.push(
|
|
2224
|
+
e && t.push(or({
|
|
2218
2225
|
...s.lockPlacement === !0 ? { fallbackStrategy: "initialPlacement" } : {},
|
|
2219
2226
|
...s.flipPadding != null ? { padding: s.flipPadding } : {}
|
|
2220
2227
|
}));
|
|
2221
2228
|
const o = s.shift ?? 8;
|
|
2222
|
-
if (o !== !1 && t.push(
|
|
2229
|
+
if (o !== !1 && t.push(sr({ padding: o })), s.maxHeight) {
|
|
2223
2230
|
const i = typeof s.maxHeight == "object" ? s.maxHeight.padding : void 0;
|
|
2224
|
-
t.push(
|
|
2231
|
+
t.push(Lt({
|
|
2225
2232
|
padding: i,
|
|
2226
2233
|
apply({ availableHeight: r, elements: n }) {
|
|
2227
2234
|
n.floating.style.maxHeight = `${Math.max(0, r)}px`;
|
|
@@ -2230,49 +2237,49 @@ function vs(s, e) {
|
|
|
2230
2237
|
}
|
|
2231
2238
|
if (s.maxWidth) {
|
|
2232
2239
|
const i = typeof s.maxWidth == "object" ? s.maxWidth.padding : void 0;
|
|
2233
|
-
t.push(
|
|
2240
|
+
t.push(Lt({
|
|
2234
2241
|
padding: i,
|
|
2235
2242
|
apply({ availableWidth: r, elements: n }) {
|
|
2236
2243
|
n.floating.style.maxWidth = `${Math.max(0, r)}px`;
|
|
2237
2244
|
}
|
|
2238
2245
|
}));
|
|
2239
2246
|
}
|
|
2240
|
-
return s.arrow && t.push(
|
|
2247
|
+
return s.arrow && t.push(ir({ element: s.arrow.element, padding: s.arrow.padding })), t;
|
|
2241
2248
|
}
|
|
2242
2249
|
function Ue(s, e, t = {}) {
|
|
2243
2250
|
const o = t.strategy ?? "fixed";
|
|
2244
|
-
t.inheritThemeFrom &&
|
|
2245
|
-
let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n =
|
|
2251
|
+
t.inheritThemeFrom && hr(t.inheritThemeFrom, s), s.style.position = o, s.style.left = "0", s.style.top = "0";
|
|
2252
|
+
let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n = ys(t, r);
|
|
2246
2253
|
const a = t.lockPlacement === "freeze";
|
|
2247
2254
|
let l = !1;
|
|
2248
|
-
const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...
|
|
2255
|
+
const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...Ys, getOffsetParent: () => vs(s) } : void 0), h = () => {
|
|
2249
2256
|
var u;
|
|
2250
|
-
(u = t.beforeCompute) == null || u.call(t),
|
|
2257
|
+
(u = t.beforeCompute) == null || u.call(t), rr(e, s, {
|
|
2251
2258
|
placement: i,
|
|
2252
2259
|
strategy: o,
|
|
2253
2260
|
middleware: n,
|
|
2254
2261
|
...d ? { platform: d } : {}
|
|
2255
2262
|
}).then(({ x: g, y: b, placement: y, middlewareData: v }) => {
|
|
2256
2263
|
var w, k;
|
|
2257
|
-
if (s.style.left = `${g}px`, s.style.top = `${b}px`, t.arrow &&
|
|
2258
|
-
const P = c ?
|
|
2264
|
+
if (s.style.left = `${g}px`, s.style.top = `${b}px`, t.arrow && mr(t.arrow.element, y, v.arrow), a && !l && (l = !0, i = y, r = !1, n = ys(t, !1)), (w = t.onPlaced) == null || w.call(t, y), (k = t.onComputed) == null || k.call(t, { x: g, y: b, placement: y }), t.onDrift && e instanceof Element) {
|
|
2265
|
+
const P = c ? vs(s) : window, M = dr({ panel: s, reference: e, expectedX: g, expectedY: b, offsetParent: P });
|
|
2259
2266
|
M && t.onDrift(M);
|
|
2260
2267
|
}
|
|
2261
2268
|
});
|
|
2262
2269
|
};
|
|
2263
2270
|
let f;
|
|
2264
|
-
return t.autoUpdate ?? !0 ? f =
|
|
2271
|
+
return t.autoUpdate ?? !0 ? f = er(e, s, h, t.autoUpdateOptions) : h(), {
|
|
2265
2272
|
update: h,
|
|
2266
2273
|
destroy() {
|
|
2267
2274
|
f == null || f(), f = void 0;
|
|
2268
2275
|
}
|
|
2269
2276
|
};
|
|
2270
2277
|
}
|
|
2271
|
-
function
|
|
2278
|
+
function pr(s) {
|
|
2272
2279
|
return typeof s == "number" ? { show: s, hide: s } : { show: (s == null ? void 0 : s.show) ?? 0, hide: (s == null ? void 0 : s.hide) ?? 0 };
|
|
2273
2280
|
}
|
|
2274
|
-
function
|
|
2275
|
-
const e = s.container ?? document.body, t = s.placement ?? "top", o = s.visibleClass ?? "is-visible", i =
|
|
2281
|
+
function fr(s) {
|
|
2282
|
+
const e = s.container ?? document.body, t = s.placement ?? "top", o = s.visibleClass ?? "is-visible", i = pr(s.delay), r = document.createElement("div");
|
|
2276
2283
|
r.setAttribute("role", "tooltip"), s.cssClass && (r.className = s.cssClass), typeof s.content == "string" ? r.textContent = s.content : r.append(s.content);
|
|
2277
2284
|
let n, a = !1, l, c, d;
|
|
2278
2285
|
const h = {
|
|
@@ -2313,7 +2320,7 @@ function pr(s) {
|
|
|
2313
2320
|
}
|
|
2314
2321
|
};
|
|
2315
2322
|
}
|
|
2316
|
-
function
|
|
2323
|
+
function gr(s) {
|
|
2317
2324
|
const e = s.container ?? document.body;
|
|
2318
2325
|
let t, o = !1;
|
|
2319
2326
|
const i = s.inheritThemeFrom ?? (s.reference instanceof HTMLElement ? s.reference : void 0);
|
|
@@ -2348,7 +2355,7 @@ function fr(s) {
|
|
|
2348
2355
|
}
|
|
2349
2356
|
};
|
|
2350
2357
|
}
|
|
2351
|
-
const
|
|
2358
|
+
const Qs = ["INIT", "DATA", "UI", "INTERACTION"], ae = gi("MULTISELECT", Qs), nt = ae.loggers.INIT, K = ae.loggers.DATA, Q = ae.loggers.UI, W = ae.loggers.INTERACTION, Nr = Qs.map((s) => `MULTISELECT:${s}`);
|
|
2352
2359
|
function Dr() {
|
|
2353
2360
|
ae.enableLogging();
|
|
2354
2361
|
}
|
|
@@ -2358,11 +2365,11 @@ function $r() {
|
|
|
2358
2365
|
function Vr(s) {
|
|
2359
2366
|
ae.setLogLevel(s);
|
|
2360
2367
|
}
|
|
2361
|
-
function
|
|
2368
|
+
function Rr(s, e) {
|
|
2362
2369
|
const t = s.includes(":") ? s.split(":").pop() : s;
|
|
2363
2370
|
ae.setCategoryLevel(t, e);
|
|
2364
2371
|
}
|
|
2365
|
-
class
|
|
2372
|
+
class ws {
|
|
2366
2373
|
constructor(e) {
|
|
2367
2374
|
m(this, "container");
|
|
2368
2375
|
m(this, "wrapper");
|
|
@@ -2484,7 +2491,7 @@ class ys {
|
|
|
2484
2491
|
this.container.removeEventListener("scroll", this.scrollHandler), this.resizeObserver && this.resizeObserver.disconnect(), this.container.innerHTML = "";
|
|
2485
2492
|
}
|
|
2486
2493
|
}
|
|
2487
|
-
function
|
|
2494
|
+
function xs(s) {
|
|
2488
2495
|
return {
|
|
2489
2496
|
treeId: "",
|
|
2490
2497
|
id: -1,
|
|
@@ -2500,27 +2507,27 @@ function ws(s) {
|
|
|
2500
2507
|
};
|
|
2501
2508
|
}
|
|
2502
2509
|
const je = (s) => !s || typeof s == "string" && s.trim() === "";
|
|
2503
|
-
function
|
|
2510
|
+
function br(s, e = ".") {
|
|
2504
2511
|
if (!s || typeof s != "string") return null;
|
|
2505
2512
|
const t = s.lastIndexOf(e);
|
|
2506
2513
|
return t === -1 ? "" : s.substring(0, t);
|
|
2507
2514
|
}
|
|
2508
|
-
function
|
|
2515
|
+
function _s(s, e, t = ".") {
|
|
2509
2516
|
return je(e) ? s : s.startsWith(e + t) ? s.substring(e.length + t.length) : s;
|
|
2510
2517
|
}
|
|
2511
|
-
function
|
|
2518
|
+
function ks(s, e = 0, t = 1, o = ".") {
|
|
2512
2519
|
return s.split(o).slice(e, e + t).join(o);
|
|
2513
2520
|
}
|
|
2514
|
-
function
|
|
2521
|
+
function vr(s, e) {
|
|
2515
2522
|
return s.split(e).length;
|
|
2516
2523
|
}
|
|
2517
2524
|
function ce(s, e) {
|
|
2518
2525
|
return s[e];
|
|
2519
2526
|
}
|
|
2520
|
-
function
|
|
2521
|
-
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, h = s.getDisplayValueCallback, f = je(i), u = je(r), g = je(n), b = je(a), y = "x", v = s.treePathSeparator || ".", w =
|
|
2527
|
+
function yr(s = {}) {
|
|
2528
|
+
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, h = s.getDisplayValueCallback, f = je(i), u = je(r), g = je(n), b = je(a), y = "x", v = s.treePathSeparator || ".", w = xs();
|
|
2522
2529
|
let k = 0, P = null;
|
|
2523
|
-
const M = (L) => o ? o(L) : t ? ce(L, t) : void 0,
|
|
2530
|
+
const M = (L) => o ? o(L) : t ? ce(L, t) : void 0, $ = {
|
|
2524
2531
|
treePathSeparator: v,
|
|
2525
2532
|
root: w,
|
|
2526
2533
|
get tree() {
|
|
@@ -2532,82 +2539,82 @@ function vr(s = {}) {
|
|
|
2532
2539
|
*/
|
|
2533
2540
|
get flatNodes() {
|
|
2534
2541
|
if (P) return P;
|
|
2535
|
-
const L = [], C = s.isSorted ?? !1,
|
|
2536
|
-
function
|
|
2537
|
-
let S = Object.values(
|
|
2538
|
-
C &&
|
|
2542
|
+
const L = [], C = s.isSorted ?? !1, I = s.sortCallback;
|
|
2543
|
+
function O(V) {
|
|
2544
|
+
let S = Object.values(V.children);
|
|
2545
|
+
C && I && S.length > 0 && (S = I(S));
|
|
2539
2546
|
for (const H of S)
|
|
2540
|
-
L.push(H), H.hasChildren &&
|
|
2547
|
+
L.push(H), H.hasChildren && O(H);
|
|
2541
2548
|
}
|
|
2542
|
-
return
|
|
2549
|
+
return O(w), P = L, L;
|
|
2543
2550
|
},
|
|
2544
2551
|
insertArray(L) {
|
|
2545
2552
|
L = L || [], w.children = {}, k = 0, P = null;
|
|
2546
2553
|
const C = [];
|
|
2547
|
-
let
|
|
2548
|
-
const S =
|
|
2549
|
-
S.treeId = c, S.id = e ? ce(
|
|
2550
|
-
const H = M(
|
|
2551
|
-
return H == null || H === "" || typeof H != "string" ? (C.push(`index ${
|
|
2552
|
-
|
|
2554
|
+
let I = L.map((O, V) => {
|
|
2555
|
+
const S = xs();
|
|
2556
|
+
S.treeId = c, S.id = e ? ce(O, e) : void 0;
|
|
2557
|
+
const H = M(O);
|
|
2558
|
+
return H == null || H === "" || typeof H != "string" ? (C.push(`index ${V}`), null) : (S.path = H, (S.id === void 0 || S.id === -1) && (S.id = H), f ? S.parentPath = br(S.path, v) : S.parentPath = ce(O, i), S.pathSegment = ks(
|
|
2559
|
+
_s(S.path, S.parentPath ?? "", v),
|
|
2553
2560
|
0,
|
|
2554
2561
|
1,
|
|
2555
2562
|
v
|
|
2556
|
-
), u ? S.level =
|
|
2557
|
-
}).filter((
|
|
2558
|
-
s.isSorted || (s.sortCallback ?
|
|
2559
|
-
for (const
|
|
2560
|
-
R(
|
|
2563
|
+
), u ? S.level = vr(S.path, v) : S.level = ce(O, r), g || (S.hasChildren = ce(O, n)), S.data = O, S);
|
|
2564
|
+
}).filter((O) => O !== null);
|
|
2565
|
+
s.isSorted || (s.sortCallback ? I = s.sortCallback(I) : I = G(I));
|
|
2566
|
+
for (const O of I)
|
|
2567
|
+
R(O.parentPath ?? "", O);
|
|
2561
2568
|
if (l || !b)
|
|
2562
|
-
for (const
|
|
2569
|
+
for (const O of I)
|
|
2563
2570
|
if (l)
|
|
2564
|
-
|
|
2571
|
+
O.isSelectable = l(O) !== !1;
|
|
2565
2572
|
else {
|
|
2566
|
-
const
|
|
2567
|
-
|
|
2573
|
+
const V = ce(O.data, a);
|
|
2574
|
+
O.isSelectable = V == null ? !0 : !!V;
|
|
2568
2575
|
}
|
|
2569
2576
|
C.length > 0 && console.warn(
|
|
2570
2577
|
`[ltree ${c}] ${C.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${C.slice(0, 5).join(", ")}` + (C.length > 5 ? ", …" : "")
|
|
2571
2578
|
);
|
|
2572
2579
|
},
|
|
2573
2580
|
getNodeByPath(L, C) {
|
|
2574
|
-
let
|
|
2581
|
+
let I = C || w;
|
|
2575
2582
|
if (L) {
|
|
2576
|
-
const
|
|
2577
|
-
for (let
|
|
2578
|
-
const S = y +
|
|
2579
|
-
if (!
|
|
2583
|
+
const O = L.split(v);
|
|
2584
|
+
for (let V = 0; V < O.length; V++) {
|
|
2585
|
+
const S = y + O[V];
|
|
2586
|
+
if (!I.children.hasOwnProperty(S))
|
|
2580
2587
|
return null;
|
|
2581
|
-
|
|
2588
|
+
I = I.children[S];
|
|
2582
2589
|
}
|
|
2583
2590
|
}
|
|
2584
|
-
return
|
|
2591
|
+
return I;
|
|
2585
2592
|
}
|
|
2586
2593
|
};
|
|
2587
2594
|
function R(L, C) {
|
|
2588
|
-
const
|
|
2589
|
-
if (!
|
|
2595
|
+
const I = $.getNodeByPath(L);
|
|
2596
|
+
if (!I)
|
|
2590
2597
|
return `Node: ${C.path} - Could not find parent node: ${L}`;
|
|
2591
|
-
u && (C.level = (
|
|
2592
|
-
const
|
|
2593
|
-
return
|
|
2598
|
+
u && (C.level = (I.level || 0) + 1);
|
|
2599
|
+
const O = y + ks(_s(C.path, L, v), 0, 1, v);
|
|
2600
|
+
return I.children.hasOwnProperty(O) || (I.children[O] = C, g && !I.hasChildren && (I.hasChildren = !0), k = Math.max(k, C.level || 0)), null;
|
|
2594
2601
|
}
|
|
2595
2602
|
function G(L) {
|
|
2596
|
-
return L.sort((C,
|
|
2597
|
-
const
|
|
2598
|
-
if (
|
|
2599
|
-
if (C.parentPath !==
|
|
2600
|
-
return C.parentPath ?
|
|
2601
|
-
if (d && C.data &&
|
|
2602
|
-
const S = ce(C.data, d) ?? 0, H = ce(
|
|
2603
|
+
return L.sort((C, I) => {
|
|
2604
|
+
const O = C.level || 0, V = I.level || 0;
|
|
2605
|
+
if (O !== V) return O - V;
|
|
2606
|
+
if (C.parentPath !== I.parentPath)
|
|
2607
|
+
return C.parentPath ? I.parentPath ? C.parentPath.localeCompare(I.parentPath) : 1 : -1;
|
|
2608
|
+
if (d && C.data && I.data) {
|
|
2609
|
+
const S = ce(C.data, d) ?? 0, H = ce(I.data, d) ?? 0;
|
|
2603
2610
|
if (S !== H) return S - H;
|
|
2604
2611
|
}
|
|
2605
|
-
return h ? h(C).localeCompare(h(
|
|
2612
|
+
return h ? h(C).localeCompare(h(I)) : C.path.localeCompare(I.path);
|
|
2606
2613
|
});
|
|
2607
2614
|
}
|
|
2608
|
-
return
|
|
2615
|
+
return $;
|
|
2609
2616
|
}
|
|
2610
|
-
function
|
|
2617
|
+
function Cs(s, e) {
|
|
2611
2618
|
const t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), n = (l) => {
|
|
2612
2619
|
t.set(r(l), l);
|
|
2613
2620
|
const c = [];
|
|
@@ -2619,7 +2626,7 @@ function ks(s, e) {
|
|
|
2619
2626
|
for (const l of a) n(l);
|
|
2620
2627
|
return { nodeByValue: t, atomsUnder: o, atomPaths: i, roots: a };
|
|
2621
2628
|
}
|
|
2622
|
-
function
|
|
2629
|
+
function ts(s, e, t) {
|
|
2623
2630
|
const o = s.atomsUnder.get(e.path);
|
|
2624
2631
|
if (!o || o.length === 0) return "unchecked";
|
|
2625
2632
|
let i = 0;
|
|
@@ -2635,17 +2642,17 @@ function Ke(s, e) {
|
|
|
2635
2642
|
}
|
|
2636
2643
|
return t;
|
|
2637
2644
|
}
|
|
2638
|
-
function
|
|
2639
|
-
const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r =
|
|
2645
|
+
function wr(s, e, t) {
|
|
2646
|
+
const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r = ts(s, e, t), n = [], a = [];
|
|
2640
2647
|
if (r === "checked")
|
|
2641
2648
|
for (const l of o) i.delete(l) && a.push(l);
|
|
2642
2649
|
else
|
|
2643
2650
|
for (const l of o) i.has(l) || (i.add(l), n.push(l));
|
|
2644
2651
|
return { checkedAtoms: i, addedAtoms: n, removedAtoms: a };
|
|
2645
2652
|
}
|
|
2646
|
-
function
|
|
2653
|
+
function Et(s, e, t, o) {
|
|
2647
2654
|
const i = (a) => String(o(a.data)), r = [], n = (a) => {
|
|
2648
|
-
const l =
|
|
2655
|
+
const l = ts(s, a, e);
|
|
2649
2656
|
if (l === "unchecked") return;
|
|
2650
2657
|
const c = a.isSelectable !== !1, d = Object.values(a.children);
|
|
2651
2658
|
if (t === "leaves") {
|
|
@@ -2667,7 +2674,7 @@ function Lt(s, e, t, o) {
|
|
|
2667
2674
|
for (const a of s.roots) n(a);
|
|
2668
2675
|
return r;
|
|
2669
2676
|
}
|
|
2670
|
-
class
|
|
2677
|
+
class xr {
|
|
2671
2678
|
constructor(e, t = {}) {
|
|
2672
2679
|
m(this, "element");
|
|
2673
2680
|
m(this, "instanceId");
|
|
@@ -2717,6 +2724,10 @@ class wr {
|
|
|
2717
2724
|
// Inline ✕ inside the fullscreen search box that clears the term. Shown only while
|
|
2718
2725
|
// there's text; touch has no keyboard Escape, so this is the way to reset a search.
|
|
2719
2726
|
m(this, "fullscreenSearchClear", null);
|
|
2727
|
+
// Leading mode toggle inside the fullscreen search box (opt-in via
|
|
2728
|
+
// isSearchModeToggleShown) that flips searchMode filter<->navigate live. Its icon
|
|
2729
|
+
// reflects the current mode; clicking re-projects the current term in place.
|
|
2730
|
+
m(this, "fullscreenModeToggle", null);
|
|
2720
2731
|
// Navigate-mode match navigator shown under the fullscreen search box: a result
|
|
2721
2732
|
// count ("3 of 12") plus prev/next buttons that step through matches. Touch has no
|
|
2722
2733
|
// Ctrl+Arrow shortcut, so these buttons are the on-screen substitute. Only built in
|
|
@@ -2787,7 +2798,7 @@ class wr {
|
|
|
2787
2798
|
this.element = e, this.instanceId = `MS-${Math.random().toString(36).slice(2, 11)}`, this.options = {
|
|
2788
2799
|
// String options
|
|
2789
2800
|
searchHint: e.dataset.searchHint || "",
|
|
2790
|
-
searchPlaceholder: e.dataset.searchPlaceholder ||
|
|
2801
|
+
searchPlaceholder: e.dataset.searchPlaceholder || void 0,
|
|
2791
2802
|
selectPlaceholder: e.dataset.selectPlaceholder || "Pick an option...",
|
|
2792
2803
|
noDataPlaceholder: e.dataset.noDataPlaceholder || void 0,
|
|
2793
2804
|
dropdownMinWidth: e.dataset.dropdownMinWidth || void 0,
|
|
@@ -2814,6 +2825,7 @@ class wr {
|
|
|
2814
2825
|
isSearchEnabled: e.dataset.enableSearch !== "false",
|
|
2815
2826
|
isAddNewAllowed: e.dataset.allowAddNew === "true",
|
|
2816
2827
|
isCounterShown: e.dataset.showCounter === "true",
|
|
2828
|
+
isSearchModeToggleShown: e.dataset.showSearchModeToggle === "true",
|
|
2817
2829
|
isKeepOptionsOnSearch: e.dataset.keepOptionsOnSearch !== "false",
|
|
2818
2830
|
shouldKeepSearchOnClose: e.dataset.keepSearchOnClose !== "false",
|
|
2819
2831
|
// Data and callbacks
|
|
@@ -2988,7 +3000,7 @@ class wr {
|
|
|
2988
3000
|
}
|
|
2989
3001
|
/** (Re)build the ltree from `allOptions` and derive the visible flat list. */
|
|
2990
3002
|
buildTree() {
|
|
2991
|
-
this.tree =
|
|
3003
|
+
this.tree = yr({
|
|
2992
3004
|
idMember: this.options.valueMember,
|
|
2993
3005
|
pathMember: this.options.pathMember,
|
|
2994
3006
|
getPathCallback: this.options.getPathCallback,
|
|
@@ -3000,7 +3012,7 @@ class wr {
|
|
|
3000
3012
|
treePathSeparator: this.options.treePathSeparator,
|
|
3001
3013
|
treeId: this.instanceId,
|
|
3002
3014
|
getDisplayValueCallback: (e) => this.getItemDisplayValue(e.data)
|
|
3003
|
-
}), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ?
|
|
3015
|
+
}), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? Cs(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
|
|
3004
3016
|
}
|
|
3005
3017
|
/**
|
|
3006
3018
|
* Whether cascade checkbox mode is active: a multi-select tree with
|
|
@@ -3023,7 +3035,7 @@ class wr {
|
|
|
3023
3035
|
* so badges / form / change events reflect the policy (rolled-up branches, etc.).
|
|
3024
3036
|
*/
|
|
3025
3037
|
toggleTreeCascade(e) {
|
|
3026
|
-
const t = this.cascadeIndex, o = Ke(t, this.selectedValues), { checkedAtoms: i } =
|
|
3038
|
+
const t = this.cascadeIndex, o = Ke(t, this.selectedValues), { checkedAtoms: i } = wr(t, e, o);
|
|
3027
3039
|
this.commitCascadeAtoms(i);
|
|
3028
3040
|
}
|
|
3029
3041
|
/**
|
|
@@ -3034,7 +3046,7 @@ class wr {
|
|
|
3034
3046
|
*/
|
|
3035
3047
|
commitCascadeAtoms(e) {
|
|
3036
3048
|
var l;
|
|
3037
|
-
const t = this.cascadeIndex, o =
|
|
3049
|
+
const t = this.cascadeIndex, o = Et(
|
|
3038
3050
|
t,
|
|
3039
3051
|
e,
|
|
3040
3052
|
this.cascadePolicy(),
|
|
@@ -3059,7 +3071,7 @@ class wr {
|
|
|
3059
3071
|
*/
|
|
3060
3072
|
counterSelection() {
|
|
3061
3073
|
if (this.isCascadeMode() && this.cascadeIndex) {
|
|
3062
|
-
const e =
|
|
3074
|
+
const e = Et(
|
|
3063
3075
|
this.cascadeIndex,
|
|
3064
3076
|
this.cascadeCheckedAtoms,
|
|
3065
3077
|
"rolled-up",
|
|
@@ -3291,7 +3303,7 @@ class wr {
|
|
|
3291
3303
|
}
|
|
3292
3304
|
const e = this.scaledOptionHeight(), t = this.options.virtualScrollBuffer ?? 10;
|
|
3293
3305
|
requestAnimationFrame(() => {
|
|
3294
|
-
this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new
|
|
3306
|
+
this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new ws({
|
|
3295
3307
|
container: this.optionsContainer,
|
|
3296
3308
|
itemHeight: e,
|
|
3297
3309
|
items: this.filteredOptions,
|
|
@@ -3349,6 +3361,7 @@ class wr {
|
|
|
3349
3361
|
isFocused: c,
|
|
3350
3362
|
isMatched: d,
|
|
3351
3363
|
isDisabled: a,
|
|
3364
|
+
...Ot(this.presentationMode),
|
|
3352
3365
|
isTreeNode: !1
|
|
3353
3366
|
}, b = this.options.renderOptionContentCallback(e, g);
|
|
3354
3367
|
typeof b == "string" ? u += b : u += b.outerHTML;
|
|
@@ -3375,17 +3388,18 @@ class wr {
|
|
|
3375
3388
|
* chevron/toggle — every node is just a normal, selectable option.
|
|
3376
3389
|
*/
|
|
3377
3390
|
renderTreeNode(e, t) {
|
|
3378
|
-
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 ?
|
|
3391
|
+
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 ? ts(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, h = c ? d === "checked" : this.selectedValues.has(String(i)), f = d === "indeterminate", u = t === this.focusedIndex, g = this.matchingIndices.has(t), b = e.isSelectable !== !1, y = e.level ?? 1, v = Math.max(0, y - 1), w = ["ms__option", "ms__option--tree"];
|
|
3379
3392
|
w.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), h && w.push("ms__option--selected"), f && w.push("ms__option--indeterminate"), u && w.push("ms__option--focused"), g && w.push("ms__option--matched"), l && w.push("ms__option--disabled"), b || w.push("ms__option--tree-unselectable");
|
|
3380
3393
|
const k = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", P = b ? "" : ' data-selectable="false"';
|
|
3381
3394
|
let M = `<div class="${w.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${y}" style="--ms-tree-depth: ${v};"${k}${P}>`;
|
|
3382
3395
|
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && b && (M += `<input type="checkbox" class="${f ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${h ? "checked" : ""}${f ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), M += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
|
|
3383
|
-
const
|
|
3396
|
+
const $ = {
|
|
3384
3397
|
index: t,
|
|
3385
3398
|
isSelected: h,
|
|
3386
3399
|
isFocused: u,
|
|
3387
3400
|
isMatched: g,
|
|
3388
3401
|
isDisabled: l,
|
|
3402
|
+
...Ot(this.presentationMode),
|
|
3389
3403
|
// Tree metadata — lets the callback branch on depth / branch-vs-leaf /
|
|
3390
3404
|
// tristate without re-deriving any of it from the raw data item.
|
|
3391
3405
|
isTreeNode: !0,
|
|
@@ -3397,7 +3411,7 @@ class wr {
|
|
|
3397
3411
|
path: e.path,
|
|
3398
3412
|
isSelectable: b,
|
|
3399
3413
|
isIndeterminate: f
|
|
3400
|
-
}, R = this.options.renderOptionContentCallback(o,
|
|
3414
|
+
}, R = this.options.renderOptionContentCallback(o, $);
|
|
3401
3415
|
M += typeof R == "string" ? R : R.outerHTML;
|
|
3402
3416
|
} else
|
|
3403
3417
|
n && (M += `<span class="ms__option-icon">${n}</span>`), M += '<div class="ms__option-text">', M += `<div class="ms__option-title">${this.highlightMatch(r, this.searchTerm)}</div>`, a && (M += `<div class="ms__option-subtitle">${a}</div>`), M += "</div>";
|
|
@@ -3425,7 +3439,22 @@ class wr {
|
|
|
3425
3439
|
* search is unusable → the search placeholder.
|
|
3426
3440
|
*/
|
|
3427
3441
|
getPlaceholderText() {
|
|
3428
|
-
return this.options.noDataPlaceholder && this.allOptions.length === 0 ? this.options.noDataPlaceholder : this.isSearchUsable ? this.
|
|
3442
|
+
return this.options.noDataPlaceholder && this.allOptions.length === 0 ? this.options.noDataPlaceholder : this.isSearchUsable ? this.getSearchPlaceholder() : this.options.selectPlaceholder || this.getSearchPlaceholder();
|
|
3443
|
+
}
|
|
3444
|
+
/**
|
|
3445
|
+
* The search field placeholder. An explicit `searchPlaceholder` always wins and stays
|
|
3446
|
+
* fixed. Otherwise the default is "Search..." — except when the in-overlay mode toggle
|
|
3447
|
+
* is enabled (`isSearchModeToggleShown`), where it becomes mode-aware so the field labels
|
|
3448
|
+
* the current behavior: "Search…" in navigate mode, "Filter…" in filter mode. Refreshed
|
|
3449
|
+
* on a live mode switch (see setSearchModeLive → refreshSearchPlaceholder).
|
|
3450
|
+
*/
|
|
3451
|
+
getSearchPlaceholder() {
|
|
3452
|
+
return this.options.searchPlaceholder ? this.options.searchPlaceholder : this.options.isSearchModeToggleShown ? (this.options.searchMode || "filter") === "navigate" ? "Search…" : "Filter…" : "Search...";
|
|
3453
|
+
}
|
|
3454
|
+
/** Re-apply the (possibly mode-aware) placeholder to the live inputs after a mode switch. */
|
|
3455
|
+
refreshSearchPlaceholder() {
|
|
3456
|
+
const e = this.getPlaceholderText();
|
|
3457
|
+
this.input && (this.input.placeholder = e), this.fullscreenSearchInput && (this.fullscreenSearchInput.placeholder = e);
|
|
3429
3458
|
}
|
|
3430
3459
|
renderBadges() {
|
|
3431
3460
|
this.destroyAllBadgeTooltips();
|
|
@@ -3553,14 +3582,14 @@ class wr {
|
|
|
3553
3582
|
if (this.isTreeMode()) {
|
|
3554
3583
|
if ((this.options.searchMode || "filter") === "navigate") {
|
|
3555
3584
|
const o = this.rebuildTreeVisibleForNavigate();
|
|
3556
|
-
this.searchTerm.trim() ? o >= 0 && (this.focusedIndex = o) : this.focusedIndex =
|
|
3585
|
+
this.searchTerm.trim() ? o >= 0 && (this.focusedIndex = o) : this.focusedIndex = -1, this.renderDropdown(), this.focusedIndex >= 0 && this.scrollToFocused(), this.updateFullscreenNav();
|
|
3557
3586
|
return;
|
|
3558
3587
|
}
|
|
3559
|
-
this.rebuildTreeVisible(), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown();
|
|
3588
|
+
this.rebuildTreeVisible(), this.matchingIndices.clear(), this.focusedIndex = this.searchTerm.trim() && this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown();
|
|
3560
3589
|
return;
|
|
3561
3590
|
}
|
|
3562
3591
|
if (!t)
|
|
3563
|
-
this.filteredOptions = [...this.allOptions], this.matchingIndices.clear(), this.focusedIndex =
|
|
3592
|
+
this.filteredOptions = [...this.allOptions], this.matchingIndices.clear(), this.focusedIndex = -1;
|
|
3564
3593
|
else {
|
|
3565
3594
|
const o = this.options.searchMode || "filter", i = t.toLowerCase();
|
|
3566
3595
|
if (o === "filter")
|
|
@@ -3996,7 +4025,7 @@ class wr {
|
|
|
3996
4025
|
* and a redundant call is a no-op rather than acquiring a second.
|
|
3997
4026
|
*/
|
|
3998
4027
|
lockBodyScroll() {
|
|
3999
|
-
this.bodyScrollUnlock || (this.bodyScrollUnlock =
|
|
4028
|
+
this.bodyScrollUnlock || (this.bodyScrollUnlock = ii());
|
|
4000
4029
|
}
|
|
4001
4030
|
/** Restore page scroll (no-op if it wasn't locked). */
|
|
4002
4031
|
unlockBodyScroll() {
|
|
@@ -4035,7 +4064,7 @@ class wr {
|
|
|
4035
4064
|
* we just hold the returned cleanup. No-op where `visualViewport` is unavailable.
|
|
4036
4065
|
*/
|
|
4037
4066
|
observeKeyboardInset() {
|
|
4038
|
-
this.keyboardInsetCleanup =
|
|
4067
|
+
this.keyboardInsetCleanup = ri(this.dropdown);
|
|
4039
4068
|
}
|
|
4040
4069
|
/** Detach keyboard-inset tracking and restore the panel's CSS-driven geometry. */
|
|
4041
4070
|
unobserveKeyboardInset() {
|
|
@@ -4100,7 +4129,7 @@ class wr {
|
|
|
4100
4129
|
}
|
|
4101
4130
|
/** Tear down the fullscreen dropdown chrome and restore page scroll (no-op if floating). */
|
|
4102
4131
|
exitFullscreen() {
|
|
4103
|
-
this.unobserveKeyboardInset(), this.popOverlayHistory(), this.dropdown.classList.remove("ms__dropdown--fullscreen"), this.fullscreenHeader && (this.fullscreenHeader.remove(), this.fullscreenHeader = null, this.fullscreenSearchInput = null, this.fullscreenSearchClear = null, this.fullscreenNav = null, this.fullscreenNavCount = null, this.fullscreenNavPrev = null, this.fullscreenNavNext = null), this.unlockBodyScroll(), this.releaseDocumentOverflowX();
|
|
4132
|
+
this.unobserveKeyboardInset(), this.popOverlayHistory(), this.dropdown.classList.remove("ms__dropdown--fullscreen"), this.fullscreenHeader && (this.fullscreenHeader.remove(), this.fullscreenHeader = null, this.fullscreenSearchInput = null, this.fullscreenSearchClear = null, this.fullscreenModeToggle = null, this.fullscreenNav = null, this.fullscreenNavCount = null, this.fullscreenNavPrev = null, this.fullscreenNavNext = null), this.unlockBodyScroll(), this.releaseDocumentOverflowX();
|
|
4104
4133
|
}
|
|
4105
4134
|
/**
|
|
4106
4135
|
* Back-gesture handling for the fullscreen sheet. On open we push a history entry
|
|
@@ -4135,7 +4164,10 @@ class wr {
|
|
|
4135
4164
|
const e = document.createElement("div");
|
|
4136
4165
|
if (e.className = "ms__fullscreen-header", this.options.isSearchEnabled && this.options.searchInputMode !== "hidden") {
|
|
4137
4166
|
const o = document.createElement("div");
|
|
4138
|
-
o.className = "ms__fullscreen-search-wrapper"
|
|
4167
|
+
if (o.className = "ms__fullscreen-search-wrapper", this.options.isSearchModeToggleShown) {
|
|
4168
|
+
const r = document.createElement("button");
|
|
4169
|
+
r.type = "button", r.className = "ms__fullscreen-mode-toggle", r.addEventListener("mousedown", (n) => n.preventDefault()), r.addEventListener("click", () => this.toggleSearchModeLive()), o.appendChild(r), this.fullscreenModeToggle = r;
|
|
4170
|
+
}
|
|
4139
4171
|
const i = document.createElement("input");
|
|
4140
4172
|
if (i.type = "text", i.className = "ms__fullscreen-search", i.placeholder = this.getPlaceholderText(), i.autocomplete = "off", this.options.searchInputMode === "readonly" && (i.readOnly = !0), i.addEventListener("input", (r) => {
|
|
4141
4173
|
const n = r.target.value;
|
|
@@ -4147,19 +4179,53 @@ class wr {
|
|
|
4147
4179
|
e.appendChild(o);
|
|
4148
4180
|
}
|
|
4149
4181
|
const t = document.createElement("button");
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4182
|
+
t.type = "button", t.className = "ms__fullscreen-close", t.setAttribute("aria-label", "Close"), t.addEventListener("click", () => this.close()), e.appendChild(t), this.dropdown.insertBefore(e, this.dropdownInner), this.fullscreenHeader = e, this.options.isSearchEnabled && (this.options.searchMode || "filter") === "navigate" && this.ensureFullscreenNav(), this.updateFullscreenModeToggle(), this.updateFullscreenNav(), this.updateFullscreenSearchClear();
|
|
4183
|
+
}
|
|
4184
|
+
/** Build the navigate-mode match navigator (count + prev/next) and append it to the
|
|
4185
|
+
* fullscreen header, once. No-op if already built or the header isn't present. The
|
|
4186
|
+
* nav wraps onto its own full-width row under the search box (header is flex-wrap;
|
|
4187
|
+
* the nav takes 100% basis). */
|
|
4188
|
+
ensureFullscreenNav() {
|
|
4189
|
+
if (this.fullscreenNav || !this.fullscreenHeader) return;
|
|
4190
|
+
const e = document.createElement("div");
|
|
4191
|
+
e.className = "ms__fullscreen-nav";
|
|
4192
|
+
const t = document.createElement("span");
|
|
4193
|
+
t.className = "ms__fullscreen-nav-count", e.appendChild(t);
|
|
4194
|
+
const o = document.createElement("div");
|
|
4195
|
+
o.className = "ms__fullscreen-nav-controls";
|
|
4196
|
+
const i = document.createElement("button");
|
|
4197
|
+
i.type = "button", i.className = "ms__fullscreen-nav-btn ms__fullscreen-nav-btn--prev", i.setAttribute("aria-label", "Previous match"), i.addEventListener("click", () => this.focusPreviousMatch());
|
|
4198
|
+
const r = document.createElement("button");
|
|
4199
|
+
r.type = "button", r.className = "ms__fullscreen-nav-btn ms__fullscreen-nav-btn--next", r.setAttribute("aria-label", "Next match"), r.addEventListener("click", () => this.focusNextMatch()), o.appendChild(i), o.appendChild(r), e.appendChild(o), this.fullscreenHeader.appendChild(e), this.fullscreenNav = e, this.fullscreenNavCount = t, this.fullscreenNavPrev = i, this.fullscreenNavNext = r;
|
|
4200
|
+
}
|
|
4201
|
+
/** Remove the match navigator (switching to filter mode, which has no jump UI). */
|
|
4202
|
+
removeFullscreenNav() {
|
|
4203
|
+
this.fullscreenNav && (this.fullscreenNav.remove(), this.fullscreenNav = null, this.fullscreenNavCount = null, this.fullscreenNavPrev = null, this.fullscreenNavNext = null);
|
|
4204
|
+
}
|
|
4205
|
+
/** Flip searchMode filter<->navigate from the in-overlay toggle. */
|
|
4206
|
+
toggleSearchModeLive() {
|
|
4207
|
+
const e = (this.options.searchMode || "filter") === "navigate" ? "filter" : "navigate";
|
|
4208
|
+
this.setSearchModeLive(e);
|
|
4209
|
+
}
|
|
4210
|
+
/**
|
|
4211
|
+
* Switch searchMode in place — the overlay's toggle path. The `search-mode` attribute
|
|
4212
|
+
* is reinit-on-change (it rebuilds and closes the overlay); this instead mutates the
|
|
4213
|
+
* live config, adds/removes the match navigator to match, and re-projects the current
|
|
4214
|
+
* term under the new mode (filter narrows the list / navigate keeps all + highlights),
|
|
4215
|
+
* all without tearing the open sheet down. Focus stays on the search field.
|
|
4216
|
+
*/
|
|
4217
|
+
setSearchModeLive(e) {
|
|
4218
|
+
var t;
|
|
4219
|
+
(this.options.searchMode || "filter") !== e && (this.options.searchMode = e, e === "navigate" ? this.ensureFullscreenNav() : this.removeFullscreenNav(), this.updateFullscreenModeToggle(), this.refreshSearchPlaceholder(), this.handleSearch(this.searchTerm), (t = this.fullscreenSearchInput) == null || t.focus());
|
|
4220
|
+
}
|
|
4221
|
+
/** Sync the mode toggle's icon (via data-mode) and labels with the current searchMode.
|
|
4222
|
+
* No-op when the toggle isn't built (opt-out, floating panel, or search hidden). */
|
|
4223
|
+
updateFullscreenModeToggle() {
|
|
4224
|
+
if (!this.fullscreenModeToggle) return;
|
|
4225
|
+
const e = this.options.searchMode || "filter";
|
|
4226
|
+
this.fullscreenModeToggle.dataset.mode = e;
|
|
4227
|
+
const t = e === "navigate" ? "filter" : "navigate";
|
|
4228
|
+
this.fullscreenModeToggle.setAttribute("aria-label", `Switch to ${t} mode`), this.fullscreenModeToggle.setAttribute("title", `Switch to ${t} mode`), this.fullscreenModeToggle.setAttribute("aria-pressed", String(e === "navigate"));
|
|
4163
4229
|
}
|
|
4164
4230
|
/**
|
|
4165
4231
|
* Sync the fullscreen match navigator (navigate mode only) with the current search
|
|
@@ -4286,7 +4352,7 @@ class wr {
|
|
|
4286
4352
|
if (!this.selectedPopoverContainer) return;
|
|
4287
4353
|
const o = this.scaledBadgeHeight(), i = Math.round(4 * this.fullscreenScale()), r = o + i, n = this.options.virtualScrollBuffer ?? 10;
|
|
4288
4354
|
requestAnimationFrame(() => {
|
|
4289
|
-
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new
|
|
4355
|
+
this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new ws({
|
|
4290
4356
|
container: this.selectedPopoverContainer,
|
|
4291
4357
|
itemHeight: r,
|
|
4292
4358
|
items: e,
|
|
@@ -4308,28 +4374,31 @@ class wr {
|
|
|
4308
4374
|
* accessible name stay in sync.
|
|
4309
4375
|
*/
|
|
4310
4376
|
renderBadgeHTML(e, t) {
|
|
4311
|
-
const o = this.getItemValue(e)
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
|
|
4377
|
+
const o = this.getItemValue(e), i = {
|
|
4378
|
+
...t,
|
|
4379
|
+
...Ot(this.presentationMode)
|
|
4380
|
+
};
|
|
4381
|
+
let r;
|
|
4382
|
+
const n = t.isInPopover ? this.options.renderSelectedItemContentCallback : void 0;
|
|
4383
|
+
if (n) {
|
|
4384
|
+
const d = n(e);
|
|
4385
|
+
r = typeof d == "string" ? d : d.outerHTML;
|
|
4317
4386
|
} else if (this.options.renderBadgeContentCallback) {
|
|
4318
|
-
const
|
|
4319
|
-
|
|
4387
|
+
const d = this.options.renderBadgeContentCallback(e, i);
|
|
4388
|
+
r = typeof d == "string" ? d : d.outerHTML;
|
|
4320
4389
|
} else
|
|
4321
|
-
|
|
4322
|
-
const
|
|
4323
|
-
let
|
|
4324
|
-
if (
|
|
4325
|
-
const
|
|
4326
|
-
|
|
4390
|
+
r = this.getItemBadgeDisplayValue(e);
|
|
4391
|
+
const a = t.isInPopover ? this.options.getSelectedItemClassCallback || this.options.getBadgeClassCallback : this.options.getBadgeClassCallback;
|
|
4392
|
+
let l = "ms__badge";
|
|
4393
|
+
if (a) {
|
|
4394
|
+
const d = a(e), h = Array.isArray(d) ? d : [d];
|
|
4395
|
+
l += " " + h.filter((f) => f).join(" ");
|
|
4327
4396
|
}
|
|
4328
|
-
const
|
|
4397
|
+
const c = this.getItemBadgeDisplayValue(e);
|
|
4329
4398
|
return `
|
|
4330
|
-
<div class="${
|
|
4331
|
-
<span class="ms__badge-text">${
|
|
4332
|
-
<button type="button" class="ms__badge-remove" data-value="${o}" aria-label="Remove ${
|
|
4399
|
+
<div class="${l}">
|
|
4400
|
+
<span class="ms__badge-text">${r}</span>
|
|
4401
|
+
<button type="button" class="ms__badge-remove" data-value="${o}" aria-label="Remove ${c}"></button>
|
|
4333
4402
|
</div>
|
|
4334
4403
|
`;
|
|
4335
4404
|
}
|
|
@@ -4412,9 +4481,9 @@ class wr {
|
|
|
4412
4481
|
if (t !== o) return !1;
|
|
4413
4482
|
Object.assign(this.options, e);
|
|
4414
4483
|
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;
|
|
4415
|
-
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() ?
|
|
4484
|
+
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() ? Cs(this.tree, (a) => String(this.getItemValue(a))) : null, this.isCascadeMode() && this.cascadeIndex)) {
|
|
4416
4485
|
this.cascadeCheckedAtoms = Ke(this.cascadeIndex, this.selectedValues);
|
|
4417
|
-
const a =
|
|
4486
|
+
const a = Et(
|
|
4418
4487
|
this.cascadeIndex,
|
|
4419
4488
|
this.cascadeCheckedAtoms,
|
|
4420
4489
|
this.cascadePolicy(),
|
|
@@ -4466,7 +4535,7 @@ class wr {
|
|
|
4466
4535
|
spawnTooltip(e) {
|
|
4467
4536
|
var r;
|
|
4468
4537
|
(r = this.tooltips.get(e.id)) == null || r.destroy();
|
|
4469
|
-
const t = this.element.getRootNode(), o = t instanceof ShadowRoot ? t : null, i =
|
|
4538
|
+
const t = this.element.getRootNode(), o = t instanceof ShadowRoot ? t : null, i = fr({
|
|
4470
4539
|
trigger: e.trigger,
|
|
4471
4540
|
container: this.options.container ?? o ?? document.body,
|
|
4472
4541
|
content: e.content,
|
|
@@ -4613,7 +4682,7 @@ ${o}` : t;
|
|
|
4613
4682
|
const n = document.createElement("div");
|
|
4614
4683
|
n.className = "ms__option-tooltip ms__option-tooltip--fullscreen", typeof r == "string" ? n.textContent = r : n.appendChild(r);
|
|
4615
4684
|
const a = this.element.getRootNode(), l = a instanceof ShadowRoot ? a : null, c = this.options.container ?? l ?? document.body;
|
|
4616
|
-
this.labelRevealTrigger = e, this.labelRevealPanel = n, this.labelRevealPopover =
|
|
4685
|
+
this.labelRevealTrigger = e, this.labelRevealPanel = n, this.labelRevealPopover = gr({
|
|
4617
4686
|
reference: e,
|
|
4618
4687
|
panel: n,
|
|
4619
4688
|
container: c,
|
|
@@ -4724,7 +4793,7 @@ ${o}` : t;
|
|
|
4724
4793
|
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), 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"), nt.info(`[${this.instanceId}] Component destroyed`);
|
|
4725
4794
|
}
|
|
4726
4795
|
}
|
|
4727
|
-
function
|
|
4796
|
+
function _r() {
|
|
4728
4797
|
return {
|
|
4729
4798
|
fromAttribute(s) {
|
|
4730
4799
|
if (s === null || s.trim() === "") return [];
|
|
@@ -4745,29 +4814,29 @@ function xr() {
|
|
|
4745
4814
|
}
|
|
4746
4815
|
};
|
|
4747
4816
|
}
|
|
4748
|
-
const
|
|
4817
|
+
const kr = ["json", "csv", "plain"], Ss = ",", Ts = `
|
|
4749
4818
|
`;
|
|
4750
|
-
function
|
|
4819
|
+
function Cr(s, e, t = {}) {
|
|
4751
4820
|
if (s == null || s.trim() === "") return { options: [] };
|
|
4752
|
-
const o =
|
|
4821
|
+
const o = Is(t.splitter ?? Ss) || Ss, i = Is(t.rowSplitter ?? Ts) || Ts;
|
|
4753
4822
|
switch (e) {
|
|
4754
4823
|
case "csv":
|
|
4755
|
-
return
|
|
4824
|
+
return Ir(s, o, i);
|
|
4756
4825
|
case "plain":
|
|
4757
|
-
return
|
|
4826
|
+
return Tr(s, o, i);
|
|
4758
4827
|
case "json":
|
|
4759
4828
|
default:
|
|
4760
|
-
return
|
|
4829
|
+
return Sr(s);
|
|
4761
4830
|
}
|
|
4762
4831
|
}
|
|
4763
|
-
function
|
|
4832
|
+
function Is(s) {
|
|
4764
4833
|
return s.replace(
|
|
4765
4834
|
/\\[ntr\\]/g,
|
|
4766
4835
|
(e) => e === "\\n" ? `
|
|
4767
4836
|
` : e === "\\t" ? " " : e === "\\r" ? "\r" : "\\"
|
|
4768
4837
|
);
|
|
4769
4838
|
}
|
|
4770
|
-
function
|
|
4839
|
+
function Sr(s) {
|
|
4771
4840
|
let e;
|
|
4772
4841
|
try {
|
|
4773
4842
|
e = JSON.parse(s);
|
|
@@ -4776,10 +4845,10 @@ function Cr(s) {
|
|
|
4776
4845
|
}
|
|
4777
4846
|
return Array.isArray(e) ? { options: e } : { options: [], error: "data-options JSON must be an array" };
|
|
4778
4847
|
}
|
|
4779
|
-
function
|
|
4848
|
+
function Tr(s, e, t) {
|
|
4780
4849
|
return { options: s.split(t).flatMap((i) => i.split(e)).map((i) => i.trim()).filter((i) => i.length > 0).map((i) => [i, i]) };
|
|
4781
4850
|
}
|
|
4782
|
-
function
|
|
4851
|
+
function Ir(s, e, t) {
|
|
4783
4852
|
const o = Or(s, e, t).filter((n) => !(n.length === 1 && n[0].trim() === ""));
|
|
4784
4853
|
if (o.length < 2)
|
|
4785
4854
|
return { options: [], error: "data-options CSV needs a header row and at least one data row" };
|
|
@@ -4804,7 +4873,7 @@ function Or(s, e, t) {
|
|
|
4804
4873
|
}
|
|
4805
4874
|
return i.push(r), o.push(i), o;
|
|
4806
4875
|
}
|
|
4807
|
-
const Qs = `@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(#e5e7eb, #3a3a3a));--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-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: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-input-padding-right: calc(4 * var(--ms-rem));--ms-input-padding-h: calc(1.2 * 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-right: calc(1.2 * var(--ms-rem));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: calc(3.2 * var(--ms-rem));--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-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-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: var(--ms-accent-color-light, var(--ms-option-bg-matched, 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: calc(.2 * var(--ms-rem));--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'><path d='M6 6L18 18M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round' fill='none'/></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-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: calc(32 * var(--ms-rem));--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{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;font-family:inherit;height:var(--ms-input-height);padding:var(--ms-input-padding);padding-inline-end:var(--ms-input-padding-right);font-size:var(--ms-input-font-size);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);background:var(--ms-input-bg);color:var(--ms-input-color);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input:hover:not(:focus):not(:disabled){border:var(--ms-input-border-hover)}.ms__input:focus{outline:none;border:var(--ms-input-border-focus)}.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{position:absolute;inset-inline-end:var(--ms-toggle-right);top:50%;transform:var(--ms-transform-center-y);pointer-events:none;color:var(--ms-toggle-icon-color);transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{transform:var(--ms-transform-center-y) rotate(var(--ms-transform-rotate-180));color:var(--ms-toggle-icon-color-open)}.ms__counter{position:absolute;inset-inline-end:var(--ms-counter-offset);top:50%;transform:var(--ms-transform-center-y);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:var(--ms-transform-center-y) scale(var(--ms-transform-scale-hover))}.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));--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;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-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 auto;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex}.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-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;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-y:visible}.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{opacity:var(--ms-disabled-input-opacity);cursor:not-allowed;background:var(--ms-input-bg-disabled)}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity)}.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}}@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-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__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}}`, Os = [
|
|
4876
|
+
const Zs = `@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-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: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-input-padding-right: calc(4 * var(--ms-rem));--ms-input-padding-h: calc(1.2 * 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-right: calc(1.2 * var(--ms-rem));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: calc(3.2 * var(--ms-rem));--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-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: calc(.4 * var(--ms-fullscreen-rem));--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'><path d='M6 6L18 18M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round' fill='none'/></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: calc(32 * var(--ms-rem));--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{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;font-family:inherit;height:var(--ms-input-height);padding:var(--ms-input-padding);padding-inline-end:var(--ms-input-padding-right);font-size:var(--ms-input-font-size);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);background:var(--ms-input-bg);color:var(--ms-input-color);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input:hover:not(:focus):not(:disabled){border:var(--ms-input-border-hover)}.ms__input:focus{outline:none;border:var(--ms-input-border-focus)}.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{position:absolute;inset-inline-end:var(--ms-toggle-right);top:50%;transform:var(--ms-transform-center-y);pointer-events:none;color:var(--ms-toggle-icon-color);transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{transform:var(--ms-transform-center-y) rotate(var(--ms-transform-rotate-180));color:var(--ms-toggle-icon-color-open)}.ms__counter{position:absolute;inset-inline-end:var(--ms-counter-offset);top:50%;transform:var(--ms-transform-center-y);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:var(--ms-transform-center-y) scale(var(--ms-transform-scale-hover))}.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));--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;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 auto;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);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;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-y:visible}.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{opacity:var(--ms-disabled-input-opacity);cursor:not-allowed;background:var(--ms-input-bg-disabled)}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity)}.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}}@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-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}}`, Os = [
|
|
4808
4877
|
"top",
|
|
4809
4878
|
"top-start",
|
|
4810
4879
|
"top-end",
|
|
@@ -4817,10 +4886,10 @@ const Qs = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
4817
4886
|
"right",
|
|
4818
4887
|
"right-start",
|
|
4819
4888
|
"right-end"
|
|
4820
|
-
],
|
|
4889
|
+
], D = () => go(), Pr = [
|
|
4821
4890
|
// ── Strings (cosmetic → update). Optional ones are nullable: absent → null ─
|
|
4822
4891
|
{ configKey: "searchHint", attribute: "search-hint", converter: A({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
|
|
4823
|
-
{ configKey: "searchPlaceholder", attribute: "search-placeholder", converter: A({
|
|
4892
|
+
{ configKey: "searchPlaceholder", attribute: "search-placeholder", converter: A({ 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.' },
|
|
4824
4893
|
{ configKey: "selectPlaceholder", attribute: "select-placeholder", converter: A({ default: "Pick an option..." }), on: "update", description: "Placeholder shown on the control when nothing is selected." },
|
|
4825
4894
|
{ configKey: "noDataPlaceholder", attribute: "no-data-placeholder", converter: A({ isNullable: !0 }), on: "update", description: "Text shown when there are no options at all." },
|
|
4826
4895
|
{ configKey: "dropdownMinWidth", attribute: "dropdown-min-width", converter: A({ isNullable: !0 }), on: "update", description: "Minimum width of the dropdown panel (any CSS length)." },
|
|
@@ -4925,62 +4994,63 @@ const Qs = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
4925
4994
|
{ configKey: "isBadgeTooltipsEnabled", attribute: "enable-badge-tooltips", converter: B("default-false"), on: "update", description: "Enable tooltips on badges." },
|
|
4926
4995
|
{ configKey: "isOptionTooltipsEnabled", attribute: "enable-option-tooltips", converter: B("default-false"), on: "update", description: "Enable tooltips on options." },
|
|
4927
4996
|
{ configKey: "isOptionTooltipFollowCursor", attribute: "option-tooltip-follow-cursor", converter: B("default-false"), on: "update", description: "Make option tooltips follow the pointer." },
|
|
4997
|
+
{ 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." },
|
|
4928
4998
|
// ── Special attributes ───────────────────────────────────────────────────
|
|
4929
|
-
{ configKey: "initialValues", attribute: "initial-values", converter:
|
|
4999
|
+
{ configKey: "initialValues", attribute: "initial-values", converter: _r(), 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`).' },
|
|
4930
5000
|
{ 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." },
|
|
4931
5001
|
// ── Complex property (data) ──────────────────────────────────────────────
|
|
4932
|
-
{ configKey: "options", converter:
|
|
5002
|
+
{ configKey: "options", converter: fo(), 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." },
|
|
4933
5003
|
{ configKey: "optionsSource", attribute: "data-options", converter: A({ 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." },
|
|
4934
|
-
{ configKey: "optionsFormat", attribute: "data-options-format", converter: F(
|
|
5004
|
+
{ configKey: "optionsFormat", attribute: "data-options-format", converter: F(kr, { 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`." },
|
|
4935
5005
|
{ configKey: "optionsSplitter", attribute: "data-options-splitter", converter: A({ 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`.' },
|
|
4936
5006
|
{ configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter: A({ default: `
|
|
4937
5007
|
` }), 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`.' },
|
|
4938
|
-
{ configKey: "actionButtons", converter:
|
|
5008
|
+
{ configKey: "actionButtons", converter: po({ 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." },
|
|
4939
5009
|
// ── Callbacks: data shape (structural → reinit) ──────────────────────────
|
|
4940
|
-
{ configKey: "getValueCallback", converter:
|
|
4941
|
-
{ configKey: "getPathCallback", converter:
|
|
4942
|
-
{ configKey: "getGroupCallback", converter:
|
|
4943
|
-
{ configKey: "getDisabledCallback", converter:
|
|
4944
|
-
{ configKey: "getIsSelectableCallback", converter:
|
|
4945
|
-
{ configKey: "getSearchValueCallback", converter:
|
|
4946
|
-
{ configKey: "searchCallback", converter:
|
|
5010
|
+
{ configKey: "getValueCallback", converter: D(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
|
|
5011
|
+
{ configKey: "getPathCallback", converter: D(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
|
|
5012
|
+
{ configKey: "getGroupCallback", converter: D(), on: "reinit", type: "(item: unknown) => string", description: "Extract the group name from an option (overrides groupMember)." },
|
|
5013
|
+
{ configKey: "getDisabledCallback", converter: D(), on: "reinit", type: "(item: unknown) => boolean", description: "Whether an option is disabled (overrides disabledMember)." },
|
|
5014
|
+
{ configKey: "getIsSelectableCallback", converter: D(), on: "reinit", type: "(node: unknown) => boolean", description: "Whether a tree node can be selected (overrides is-selectable-member)." },
|
|
5015
|
+
{ configKey: "getSearchValueCallback", converter: D(), on: "reinit", type: "(item: unknown) => string", description: "Text an option is searched against (overrides searchValueMember)." },
|
|
5016
|
+
{ configKey: "searchCallback", converter: D(), on: "reinit", type: "(searchTerm: string, signal?: AbortSignal) => Promise<unknown[]>", description: "Custom / async search; return the filtered options." },
|
|
4947
5017
|
// ── Callbacks: display / render (cosmetic → update) ──────────────────────
|
|
4948
|
-
{ configKey: "getDisplayValueCallback", converter:
|
|
4949
|
-
{ configKey: "getBadgeDisplayCallback", converter:
|
|
4950
|
-
{ configKey: "getBadgeClassCallback", converter:
|
|
4951
|
-
{ configKey: "getIconCallback", converter:
|
|
4952
|
-
{ configKey: "getSubtitleCallback", converter:
|
|
4953
|
-
{ configKey: "getFullTitleCallback", converter:
|
|
4954
|
-
{ configKey: "getCounterCallback", converter:
|
|
4955
|
-
{ configKey: "getValueFormatCallback", converter:
|
|
4956
|
-
{ configKey: "getBadgeTooltipCallback", converter:
|
|
4957
|
-
{ configKey: "getOptionTooltipCallback", converter:
|
|
4958
|
-
{ configKey: "getRemoveButtonTooltipCallback", converter:
|
|
4959
|
-
{ configKey: "getSelectedItemClassCallback", converter:
|
|
4960
|
-
{ configKey: "renderOptionContentCallback", converter:
|
|
4961
|
-
{ configKey: "renderBadgeContentCallback", converter:
|
|
4962
|
-
{ configKey: "renderGroupLabelContentCallback", converter:
|
|
4963
|
-
{ configKey: "renderSelectedContentCallback", converter:
|
|
4964
|
-
{ configKey: "renderSelectedItemContentCallback", converter:
|
|
4965
|
-
{ configKey: "customStylesCallback", converter:
|
|
5018
|
+
{ configKey: "getDisplayValueCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Compute the display label for an option (overrides displayValueMember)." },
|
|
5019
|
+
{ configKey: "getBadgeDisplayCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Compute the text shown on an option badge." },
|
|
5020
|
+
{ configKey: "getBadgeClassCallback", converter: D(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for an option badge." },
|
|
5021
|
+
{ configKey: "getIconCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Icon for an option (overrides iconMember)." },
|
|
5022
|
+
{ configKey: "getSubtitleCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Subtitle for an option (overrides subtitleMember)." },
|
|
5023
|
+
{ configKey: "getFullTitleCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Full title for an option (used by badges when show-badge-full-title is on)." },
|
|
5024
|
+
{ configKey: "getCounterCallback", converter: D(), on: "update", type: "(count: number, moreCount?: number) => string", description: "Render the selected-count label." },
|
|
5025
|
+
{ configKey: "getValueFormatCallback", converter: D(), on: "update", type: "(selectedValues: (string | number)[]) => string", description: "Serialize the selected values for form submission." },
|
|
5026
|
+
{ configKey: "getBadgeTooltipCallback", converter: D(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option badge." },
|
|
5027
|
+
{ configKey: "getOptionTooltipCallback", converter: D(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option row." },
|
|
5028
|
+
{ configKey: "getRemoveButtonTooltipCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Tooltip text for a badge remove button." },
|
|
5029
|
+
{ configKey: "getSelectedItemClassCallback", converter: D(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for a selected item." },
|
|
5030
|
+
{ configKey: "renderOptionContentCallback", converter: D(), on: "update", type: "(item: unknown, context: OptionContentRenderContext) => string | HTMLElement", description: "Custom render for an option row; may return HTML or an element." },
|
|
5031
|
+
{ configKey: "renderBadgeContentCallback", converter: D(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for a badge; may return HTML or an element." },
|
|
5032
|
+
{ configKey: "renderGroupLabelContentCallback", converter: D(), on: "update", type: "(groupName: string) => string | HTMLElement", description: "Customize a group label; may return an HTML string or element." },
|
|
5033
|
+
{ configKey: "renderSelectedContentCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Custom render for the whole selected area." },
|
|
5034
|
+
{ configKey: "renderSelectedItemContentCallback", converter: D(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Custom render for one selected item." },
|
|
5035
|
+
{ configKey: "customStylesCallback", converter: D(), on: "update", type: "() => string", description: "Returns a CSS string injected into the component via a replaceable style slot (§12.8)." },
|
|
4966
5036
|
// ── Callbacks: before-hooks (behavior-shaping) ───────────────────────────
|
|
4967
|
-
{ configKey: "beforeSearchCallback", converter:
|
|
4968
|
-
{ configKey: "beforeSelectCallback", converter:
|
|
4969
|
-
{ configKey: "beforeDeselectCallback", converter:
|
|
4970
|
-
{ configKey: "addNewCallback", converter:
|
|
4971
|
-
],
|
|
5037
|
+
{ configKey: "beforeSearchCallback", converter: D(), on: "update", type: "(searchTerm: string) => string | null", description: "Runs before a search; return a rewritten term or null to veto." },
|
|
5038
|
+
{ configKey: "beforeSelectCallback", converter: D(), 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." },
|
|
5039
|
+
{ configKey: "beforeDeselectCallback", converter: D(), 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." },
|
|
5040
|
+
{ configKey: "addNewCallback", converter: D(), on: "update", type: "(value: string) => unknown | Promise<unknown>", description: "Create a new option from the typed text." }
|
|
5041
|
+
], Mr = [
|
|
4972
5042
|
{ name: "select", description: "An option was selected. `detail.option` is the selected option; `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
|
|
4973
5043
|
{ name: "deselect", description: "An option was removed from the selection. `detail.option` is that option." },
|
|
4974
5044
|
{ name: "change", description: "The selection changed. `detail.selectedOptions`/`detail.selectedValues` are the full selection." }
|
|
4975
|
-
],
|
|
5045
|
+
], Ps = /* @__PURE__ */ new Set(["dropdownWidth", "selectedPopoverWidth", "showDebugInfo", "initialValues", "optionsSource", "optionsFormat", "optionsSplitter", "optionsRowSplitter", "mobilePresentation"]), at = {
|
|
4976
5046
|
dropdownWidth: "--ms-dropdown-width",
|
|
4977
5047
|
selectedPopoverWidth: "--ms-selected-popover-width"
|
|
4978
5048
|
};
|
|
4979
|
-
let
|
|
4980
|
-
function
|
|
4981
|
-
return
|
|
5049
|
+
let Lr = null;
|
|
5050
|
+
function Er() {
|
|
5051
|
+
return Lr ?? (Lr = Qo(Zs, "--ms-"));
|
|
4982
5052
|
}
|
|
4983
|
-
const
|
|
5053
|
+
const Ar = [
|
|
4984
5054
|
{ key: "valueMember", member: "value", callbackKey: "getValueCallback" },
|
|
4985
5055
|
{ key: "displayValueMember", member: "label", callbackKey: "getDisplayValueCallback" },
|
|
4986
5056
|
{ key: "groupMember", member: "group", callbackKey: "getGroupCallback" },
|
|
@@ -4988,8 +5058,8 @@ const Er = [
|
|
|
4988
5058
|
{ key: "subtitleMember", member: "subtitle", callbackKey: "getSubtitleCallback" },
|
|
4989
5059
|
{ key: "disabledMember", member: "disabled", callbackKey: "getDisabledCallback" }
|
|
4990
5060
|
];
|
|
4991
|
-
var J, z, me, et, tt, st, ze,
|
|
4992
|
-
class Ge extends
|
|
5061
|
+
var J, z, me, et, tt, st, ze, Ne, ke, _, ct, Kt, Ft, eo, to, so, dt, Wt, oo, io, ro, jt, no, ao, Ut, Gt;
|
|
5062
|
+
class Ge extends Nt {
|
|
4993
5063
|
constructor() {
|
|
4994
5064
|
super();
|
|
4995
5065
|
E(this, _);
|
|
@@ -5002,9 +5072,9 @@ class Ge extends zt {
|
|
|
5002
5072
|
// Declarative <option>/<optgroup> state (parsed once from light DOM).
|
|
5003
5073
|
E(this, st, !1);
|
|
5004
5074
|
E(this, ze, !1);
|
|
5005
|
-
E(this,
|
|
5075
|
+
E(this, Ne);
|
|
5006
5076
|
E(this, ke);
|
|
5007
|
-
|
|
5077
|
+
N(this, J, this.attachShadow({ mode: "open" })), Yo(p(this, J), Zs), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-ready", "")) : this.setAttribute("data-ready", "");
|
|
5008
5078
|
}
|
|
5009
5079
|
/**
|
|
5010
5080
|
* Called by the browser when the surrounding <form> is reset. Clears the
|
|
@@ -5025,24 +5095,24 @@ class Ge extends zt {
|
|
|
5025
5095
|
}
|
|
5026
5096
|
/** Structural change (or first connect): mirror CSS vars, then (re)build the picker. */
|
|
5027
5097
|
reinit() {
|
|
5028
|
-
x(this, _,
|
|
5098
|
+
x(this, _, io).call(this), this.isConnected && x(this, _, Kt).call(this);
|
|
5029
5099
|
}
|
|
5030
5100
|
/** Cosmetic change: mirror CSS vars / custom styles / debug, patch the picker in place. */
|
|
5031
5101
|
update(t) {
|
|
5032
|
-
x(this, _,
|
|
5102
|
+
x(this, _, ro).call(this, t), "customStylesCallback" in t && x(this, _, Wt).call(this), "showDebugInfo" in t && x(this, _, Ut).call(this);
|
|
5033
5103
|
const o = {};
|
|
5034
5104
|
for (const [i, r] of Object.entries(t))
|
|
5035
|
-
|
|
5036
|
-
p(this, z) && Object.keys(o).length > 0 && (p(this, z).updateOptions(o) || x(this, _,
|
|
5105
|
+
Ps.has(i) || (o[i] = r === null ? void 0 : r);
|
|
5106
|
+
p(this, z) && Object.keys(o).length > 0 && (p(this, z).updateOptions(o) || x(this, _, Kt).call(this)), "mobilePresentation" in t && x(this, _, ct).call(this, zt());
|
|
5037
5107
|
}
|
|
5038
5108
|
/** Activate: ensure the picker exists (a DOM move destroyed it in disconnect()). */
|
|
5039
5109
|
connect() {
|
|
5040
|
-
p(this, z) || x(this, _,
|
|
5110
|
+
p(this, z) || x(this, _, Ft).call(this);
|
|
5041
5111
|
}
|
|
5042
5112
|
/** Deactivate: tear the picker down (rebuilt on the next connect). */
|
|
5043
5113
|
disconnect() {
|
|
5044
5114
|
var t;
|
|
5045
|
-
(t = p(this, z)) == null || t.destroy(),
|
|
5115
|
+
(t = p(this, z)) == null || t.destroy(), N(this, z, void 0);
|
|
5046
5116
|
}
|
|
5047
5117
|
/**
|
|
5048
5118
|
* Device/viewport/orientation changed (core §12.9). Overriding this opts the
|
|
@@ -5102,40 +5172,40 @@ class Ge extends zt {
|
|
|
5102
5172
|
(t = p(this, z)) == null || t.destroy();
|
|
5103
5173
|
}
|
|
5104
5174
|
}
|
|
5105
|
-
J = new WeakMap(), z = new WeakMap(), me = new WeakMap(), et = new WeakMap(), tt = new WeakMap(), st = new WeakMap(), ze = new WeakMap(),
|
|
5175
|
+
J = new WeakMap(), z = new WeakMap(), me = new WeakMap(), et = new WeakMap(), tt = new WeakMap(), st = new WeakMap(), ze = new WeakMap(), Ne = new WeakMap(), ke = new WeakMap(), _ = new WeakSet(), /** Resolve `mobile-presentation` against `env` and relay it to the live picker. */
|
|
5106
5176
|
ct = function(t) {
|
|
5107
5177
|
var r;
|
|
5108
|
-
const o = this.config.mobilePresentation ?? "auto", i =
|
|
5178
|
+
const o = this.config.mobilePresentation ?? "auto", i = oi(o, t);
|
|
5109
5179
|
(r = p(this, z)) == null || r.setPresentation(i === "modal" ? "fullscreen" : i);
|
|
5110
5180
|
}, // ── picker lifecycle ──────────────────────────────────────────────────────
|
|
5111
|
-
|
|
5181
|
+
Kt = function() {
|
|
5112
5182
|
var t;
|
|
5113
|
-
(t = p(this, z)) == null || t.destroy(),
|
|
5114
|
-
},
|
|
5115
|
-
x(this, _,
|
|
5116
|
-
const t = x(this, _,
|
|
5117
|
-
o && o.length > 0 ? p(this, me).dataset.initialValues = JSON.stringify(o) : delete p(this, me).dataset.initialValues,
|
|
5118
|
-
},
|
|
5183
|
+
(t = p(this, z)) == null || t.destroy(), N(this, z, void 0), x(this, _, Ft).call(this);
|
|
5184
|
+
}, Ft = function() {
|
|
5185
|
+
x(this, _, eo).call(this), x(this, _, no).call(this);
|
|
5186
|
+
const t = x(this, _, to).call(this), o = x(this, _, so).call(this);
|
|
5187
|
+
o && o.length > 0 ? p(this, me).dataset.initialValues = JSON.stringify(o) : delete p(this, me).dataset.initialValues, N(this, z, new xr(p(this, me), t)), x(this, _, Wt).call(this), x(this, _, Ut).call(this), x(this, _, ct).call(this, zt());
|
|
5188
|
+
}, eo = function() {
|
|
5119
5189
|
if (p(this, me)) return;
|
|
5120
5190
|
const t = document.createElement("div");
|
|
5121
|
-
t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), p(this, J).appendChild(t),
|
|
5191
|
+
t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), p(this, J).appendChild(t), N(this, et, Jo(p(this, J), { position: "first", className: "ms-custom-styles" })), N(this, me, t);
|
|
5122
5192
|
}, /**
|
|
5123
5193
|
* Build the picker config from the merged `this.config`, minus the keys the
|
|
5124
5194
|
* picker doesn't own, plus the runtime wiring (event bridges, container, host,
|
|
5125
5195
|
* declarative option data + member defaults, counter default).
|
|
5126
5196
|
*/
|
|
5127
|
-
|
|
5197
|
+
to = function() {
|
|
5128
5198
|
const t = { ...this.config };
|
|
5129
|
-
for (const i of
|
|
5199
|
+
for (const i of Ps) delete t[i];
|
|
5130
5200
|
for (const i of Object.keys(t))
|
|
5131
5201
|
t[i] === null && delete t[i];
|
|
5132
5202
|
let o = t.options;
|
|
5133
|
-
if (p(this, ze) && p(this,
|
|
5134
|
-
o && o.length > 0 && K.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), o = p(this,
|
|
5203
|
+
if (p(this, ze) && p(this, Ne))
|
|
5204
|
+
o && o.length > 0 && K.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), o = p(this, Ne);
|
|
5135
5205
|
else if (!o || o.length === 0) {
|
|
5136
5206
|
const i = this.config.optionsSource;
|
|
5137
5207
|
if (i != null) {
|
|
5138
|
-
const r = this.config.optionsFormat ?? "json", { options: n, error: a } =
|
|
5208
|
+
const r = this.config.optionsFormat ?? "json", { options: n, error: a } = Cr(i, r, {
|
|
5139
5209
|
splitter: this.config.optionsSplitter,
|
|
5140
5210
|
rowSplitter: this.config.optionsRowSplitter
|
|
5141
5211
|
});
|
|
@@ -5143,7 +5213,7 @@ eo = function() {
|
|
|
5143
5213
|
}
|
|
5144
5214
|
}
|
|
5145
5215
|
if (t.options = o, p(this, ze))
|
|
5146
|
-
for (const { key: i, member: r, callbackKey: n } of
|
|
5216
|
+
for (const { key: i, member: r, callbackKey: n } of Ar)
|
|
5147
5217
|
t[i] === void 0 && !t[n] && (t[i] = r);
|
|
5148
5218
|
return t.getCounterCallback || (t.getCounterCallback = (i, r) => r !== void 0 ? `+${r} more` : `${i} selected`), t.onSelect = (i) => {
|
|
5149
5219
|
var r;
|
|
@@ -5165,7 +5235,7 @@ eo = function() {
|
|
|
5165
5235
|
selectedValues: x(this, _, dt).call(this)
|
|
5166
5236
|
});
|
|
5167
5237
|
}, t.container = p(this, J), t.hostElement = this, t;
|
|
5168
|
-
},
|
|
5238
|
+
}, so = function() {
|
|
5169
5239
|
if (p(this, ke) && p(this, ke).length > 0)
|
|
5170
5240
|
return p(this, ke);
|
|
5171
5241
|
const t = this.config.initialValues;
|
|
@@ -5175,7 +5245,7 @@ eo = function() {
|
|
|
5175
5245
|
const t = (o = p(this, z)) == null ? void 0 : o.getValue();
|
|
5176
5246
|
return t == null ? [] : Array.isArray(t) ? t : [t];
|
|
5177
5247
|
}, // ── §12.8 custom styles ───────────────────────────────────────────────────
|
|
5178
|
-
|
|
5248
|
+
Wt = function() {
|
|
5179
5249
|
const t = p(this, et);
|
|
5180
5250
|
if (!t) return;
|
|
5181
5251
|
const o = this.config.customStylesCallback;
|
|
@@ -5185,7 +5255,7 @@ Ft = function() {
|
|
|
5185
5255
|
}
|
|
5186
5256
|
try {
|
|
5187
5257
|
const i = o();
|
|
5188
|
-
t.set(i), i && x(this, _,
|
|
5258
|
+
t.set(i), i && x(this, _, oo).call(this, i);
|
|
5189
5259
|
} catch (i) {
|
|
5190
5260
|
K.warn("[MultiSelectElement] customStylesCallback threw", i), t.clear();
|
|
5191
5261
|
}
|
|
@@ -5198,28 +5268,28 @@ Ft = function() {
|
|
|
5198
5268
|
* De-duped per instance. If you genuinely define a `--ms-*` var for your own
|
|
5199
5269
|
* custom-rendered content, ignore the warning (or use a different prefix).
|
|
5200
5270
|
*/
|
|
5201
|
-
|
|
5202
|
-
const o =
|
|
5271
|
+
oo = function(t) {
|
|
5272
|
+
const o = Er();
|
|
5203
5273
|
if (o.size !== 0)
|
|
5204
|
-
for (const { name: i, suggestions: r } of
|
|
5274
|
+
for (const { name: i, suggestions: r } of ti(t, { prefix: "--ms-", consumed: o }))
|
|
5205
5275
|
p(this, tt).has(i) || (p(this, tt).add(i), console.warn(
|
|
5206
5276
|
`[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.)"
|
|
5207
5277
|
));
|
|
5208
5278
|
}, // ── CSS-var sugar ─────────────────────────────────────────────────────────
|
|
5209
|
-
|
|
5210
|
-
for (const t of Object.keys(at)) x(this, _,
|
|
5211
|
-
},
|
|
5279
|
+
io = function() {
|
|
5280
|
+
for (const t of Object.keys(at)) x(this, _, jt).call(this, at[t], this.config[t]);
|
|
5281
|
+
}, ro = function(t) {
|
|
5212
5282
|
for (const o of Object.keys(at))
|
|
5213
|
-
o in t && x(this, _,
|
|
5214
|
-
},
|
|
5283
|
+
o in t && x(this, _, jt).call(this, at[o], t[o]);
|
|
5284
|
+
}, jt = function(t, o) {
|
|
5215
5285
|
o == null || o === "" ? this.style.removeProperty(t) : this.style.setProperty(t, String(o));
|
|
5216
5286
|
}, // ── declarative <option> parsing (light DOM, once) ────────────────────────
|
|
5217
|
-
|
|
5287
|
+
no = function() {
|
|
5218
5288
|
if (p(this, st)) return;
|
|
5219
|
-
|
|
5220
|
-
const t = x(this, _,
|
|
5221
|
-
t && (
|
|
5222
|
-
},
|
|
5289
|
+
N(this, st, !0);
|
|
5290
|
+
const t = x(this, _, ao).call(this);
|
|
5291
|
+
t && (N(this, Ne, t), N(this, ze, !0));
|
|
5292
|
+
}, ao = function() {
|
|
5223
5293
|
const t = Array.from(this.children);
|
|
5224
5294
|
if (t.length === 0) return null;
|
|
5225
5295
|
const o = [];
|
|
@@ -5230,7 +5300,7 @@ ro = function() {
|
|
|
5230
5300
|
value: n.value || ((c = n.textContent) == null ? void 0 : c.trim()) || "",
|
|
5231
5301
|
label: ((d = n.textContent) == null ? void 0 : d.trim()) || n.value || ""
|
|
5232
5302
|
};
|
|
5233
|
-
a && (l.group = a), n.hasAttribute("selected") && (p(this, ke) ??
|
|
5303
|
+
a && (l.group = a), n.hasAttribute("selected") && (p(this, ke) ?? N(this, ke, [])).push(l.value), n.hasAttribute("disabled") && (l.disabled = !0), n.hasAttribute("data-icon") && (l.icon = n.getAttribute("data-icon")), n.hasAttribute("data-subtitle") && (l.subtitle = n.getAttribute("data-subtitle")), o.push(l), i = !0;
|
|
5234
5304
|
};
|
|
5235
5305
|
for (const n of t)
|
|
5236
5306
|
if (n.tagName === "OPTION")
|
|
@@ -5246,7 +5316,7 @@ ro = function() {
|
|
|
5246
5316
|
(n.tagName === "OPTION" || n.tagName === "OPTGROUP") && n.remove();
|
|
5247
5317
|
return o;
|
|
5248
5318
|
}, // ── debug panel (deprecated; kept for back-compat) ────────────────────────
|
|
5249
|
-
|
|
5319
|
+
Ut = function() {
|
|
5250
5320
|
const t = p(this, J).querySelector(".ms__debug-info");
|
|
5251
5321
|
if (t && t.remove(), !this.config.showDebugInfo) return;
|
|
5252
5322
|
const o = document.createElement("div");
|
|
@@ -5254,12 +5324,12 @@ jt = function() {
|
|
|
5254
5324
|
const i = document.createElement("details"), r = document.createElement("summary");
|
|
5255
5325
|
r.textContent = "Debug Info";
|
|
5256
5326
|
const n = document.createElement("div");
|
|
5257
|
-
n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), p(this, J).appendChild(o), x(this, _,
|
|
5258
|
-
},
|
|
5327
|
+
n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), p(this, J).appendChild(o), x(this, _, Gt).call(this);
|
|
5328
|
+
}, Gt = function() {
|
|
5259
5329
|
var l, c, d, h;
|
|
5260
5330
|
const t = p(this, J).querySelector(".ms__debug-stats");
|
|
5261
5331
|
if (!t || !p(this, z)) return;
|
|
5262
|
-
const o = "2.0.0-
|
|
5332
|
+
const o = "2.0.0-rc07", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = p(this, z).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = p(this, z);
|
|
5263
5333
|
t.innerHTML = `
|
|
5264
5334
|
<span>Version: ${o}</span>
|
|
5265
5335
|
<span>Total Instances: ${i}</span>
|
|
@@ -5270,16 +5340,16 @@ jt = function() {
|
|
|
5270
5340
|
<span>Search: ${a.searchTerm || "none"}</span>
|
|
5271
5341
|
<span>Loading: ${a.isLoading ? "Yes" : "No"}</span>
|
|
5272
5342
|
`, setTimeout(() => {
|
|
5273
|
-
this.config.showDebugInfo && x(this, _,
|
|
5343
|
+
this.config.showDebugInfo && x(this, _, Gt).call(this);
|
|
5274
5344
|
}, 500);
|
|
5275
5345
|
}, // Opt into the form-associated custom element lifecycle so form.reset() and
|
|
5276
5346
|
// form.elements see the control.
|
|
5277
|
-
m(Ge, "formAssociated", !0), m(Ge, "inputs",
|
|
5347
|
+
m(Ge, "formAssociated", !0), m(Ge, "inputs", Pr), m(Ge, "events", Mr);
|
|
5278
5348
|
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", Ge);
|
|
5279
|
-
|
|
5349
|
+
Xo("web-multiselect", Ge, {
|
|
5280
5350
|
config: {
|
|
5281
5351
|
name: "@keenmate/web-multiselect",
|
|
5282
|
-
version: "2.0.0-
|
|
5352
|
+
version: "2.0.0-rc07",
|
|
5283
5353
|
author: "Keenmate",
|
|
5284
5354
|
license: "MIT",
|
|
5285
5355
|
repository: "git+https://github.com/keenmate/web-multiselect.git",
|
|
@@ -5288,17 +5358,17 @@ Go("web-multiselect", Ge, {
|
|
|
5288
5358
|
logging: ae
|
|
5289
5359
|
});
|
|
5290
5360
|
export {
|
|
5291
|
-
|
|
5361
|
+
Nr as LOGGING_CATEGORIES,
|
|
5292
5362
|
Ge as MultiSelectElement,
|
|
5293
|
-
|
|
5294
|
-
|
|
5363
|
+
kr as OPTIONS_FORMATS,
|
|
5364
|
+
xr as WebMultiSelect,
|
|
5295
5365
|
K as dataLogger,
|
|
5296
5366
|
$r as disableLogging,
|
|
5297
5367
|
Dr as enableLogging,
|
|
5298
5368
|
nt as initLogger,
|
|
5299
5369
|
W as interactionLogger,
|
|
5300
|
-
|
|
5301
|
-
|
|
5370
|
+
Cr as parseOptionsData,
|
|
5371
|
+
Rr as setCategoryLevel,
|
|
5302
5372
|
Vr as setLogLevel,
|
|
5303
5373
|
Q as uiLogger
|
|
5304
5374
|
};
|