@keenmate/web-multiselect 2.0.0-rc07 → 2.0.0-rc09
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/custom-elements.json +41 -1
- package/dist/index.d.ts +81 -0
- package/dist/multiselect.js +421 -353
- package/dist/multiselect.umd.js +8 -8
- package/dist/style.css +1 -1
- package/docs/usage.md +23 -0
- package/package.json +1 -1
- package/src/css/floating.css +27 -3
- package/src/css/variables.css +9 -4
- package/web-types.json +6 -1
package/dist/multiselect.js
CHANGED
|
@@ -3,8 +3,8 @@ var ss = (s) => {
|
|
|
3
3
|
throw TypeError(s);
|
|
4
4
|
};
|
|
5
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
|
|
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),
|
|
6
|
+
var u = (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), V = (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 {
|
|
@@ -313,14 +313,14 @@ function No(s, e) {
|
|
|
313
313
|
var t;
|
|
314
314
|
(t = mt.get(s)) == null || t.delete(e);
|
|
315
315
|
}
|
|
316
|
-
function
|
|
316
|
+
function Vo(s) {
|
|
317
317
|
return Array.from(mt.get(s) ?? []);
|
|
318
318
|
}
|
|
319
319
|
const Es = /* @__PURE__ */ new Map();
|
|
320
|
-
function
|
|
320
|
+
function Do(s, e) {
|
|
321
321
|
Es.set(s.toLowerCase(), e);
|
|
322
322
|
}
|
|
323
|
-
function
|
|
323
|
+
function $o(s) {
|
|
324
324
|
return Es.get(s.toLowerCase());
|
|
325
325
|
}
|
|
326
326
|
function Ro(s, e, t, o = {}) {
|
|
@@ -352,7 +352,7 @@ const jo = { trace() {
|
|
|
352
352
|
}, warn() {
|
|
353
353
|
}, error() {
|
|
354
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,
|
|
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, Vs, Ds, Vt, Dt, We, $t, $s;
|
|
356
356
|
const Xe = class Xe extends Fo {
|
|
357
357
|
constructor() {
|
|
358
358
|
super();
|
|
@@ -364,7 +364,7 @@ const Xe = class Xe extends Fo {
|
|
|
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
366
|
E(this, Ze, yo());
|
|
367
|
-
E(this, yt, () => x(this, T,
|
|
367
|
+
E(this, yt, () => x(this, T, $t).call(this));
|
|
368
368
|
E(this, we, null);
|
|
369
369
|
E(this, ue, !1);
|
|
370
370
|
E(this, xe, []);
|
|
@@ -392,7 +392,7 @@ const Xe = class Xe extends Fo {
|
|
|
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, As).call(this, o), x(this, T,
|
|
395
|
+
x(this, T, As).call(this, o), x(this, T, Vs).call(this, o), x(this, T, Ds).call(this, i);
|
|
396
396
|
}
|
|
397
397
|
static get observedAttributes() {
|
|
398
398
|
const t = (this.inputs ?? []).filter((o) => o.attribute).map((o) => o.attribute);
|
|
@@ -416,21 +416,21 @@ const Xe = class Xe extends Fo {
|
|
|
416
416
|
} catch (l) {
|
|
417
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
|
-
x(this, T,
|
|
419
|
+
x(this, T, Dt).call(this, n);
|
|
420
420
|
}
|
|
421
421
|
connectedCallback() {
|
|
422
|
-
zo(this.localName, this), p(this, _e) || (
|
|
422
|
+
zo(this.localName, this), p(this, _e) || (V(this, _e, !0), V(this, Pe, null), V(this, ue, !0)), x(this, T, We).call(this), this.connect(), this.environmentChanged !== Xe.prototype.environmentChanged && V(this, Le, Lo((t) => this.environmentChanged(t)));
|
|
423
423
|
}
|
|
424
424
|
disconnectedCallback() {
|
|
425
425
|
var t;
|
|
426
|
-
No(this.localName, this), (t = p(this, Le)) == null || t.call(this),
|
|
426
|
+
No(this.localName, this), (t = p(this, Le)) == null || t.call(this), V(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. */
|
|
430
430
|
setAttributes(t) {
|
|
431
431
|
for (const [o, i] of Object.entries(t)) {
|
|
432
432
|
const r = p(this, Je).get(o) ?? p(this, ve).get(o);
|
|
433
|
-
r && x(this, T,
|
|
433
|
+
r && x(this, T, Vt).call(this, r, i);
|
|
434
434
|
}
|
|
435
435
|
x(this, T, We).call(this);
|
|
436
436
|
}
|
|
@@ -490,11 +490,11 @@ const Xe = class Xe extends Fo {
|
|
|
490
490
|
get log() {
|
|
491
491
|
if (p(this, Ae))
|
|
492
492
|
return p(this, Ae);
|
|
493
|
-
const t =
|
|
493
|
+
const t = $o(this.localName);
|
|
494
494
|
if (!t)
|
|
495
495
|
return Uo;
|
|
496
|
-
const o = p(this, wt) ??
|
|
497
|
-
return
|
|
496
|
+
const o = p(this, wt) ?? V(this, wt, `${this.localName}#${this.id || ++Wo}`);
|
|
497
|
+
return V(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 Fo {
|
|
|
502
502
|
* picks one instance. Pairs with {@link disableLogging}.
|
|
503
503
|
*/
|
|
504
504
|
enableLogging(t = "debug") {
|
|
505
|
-
|
|
505
|
+
V(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
|
+
V(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 Fo {
|
|
|
596
596
|
if (typeof this.attachInternals != "function")
|
|
597
597
|
return null;
|
|
598
598
|
try {
|
|
599
|
-
return
|
|
599
|
+
return V(this, Ee, this.attachInternals());
|
|
600
600
|
} catch {
|
|
601
601
|
return null;
|
|
602
602
|
}
|
|
@@ -700,22 +700,22 @@ Ns = function(t, o) {
|
|
|
700
700
|
*/
|
|
701
701
|
Y = function(t, ...o) {
|
|
702
702
|
console.warn(`[BlissElement] <${this.localName ?? "unknown"}> ${t}`, ...o);
|
|
703
|
-
},
|
|
703
|
+
}, Vs = function(t) {
|
|
704
704
|
for (const o of t) {
|
|
705
705
|
const i = o.configKey, r = Object.prototype.hasOwnProperty.call(this, i), n = r ? this[i] : void 0;
|
|
706
706
|
r && delete this[i], Object.defineProperty(this, i, {
|
|
707
707
|
configurable: !0,
|
|
708
708
|
enumerable: !0,
|
|
709
709
|
get: () => p(this, he)[i],
|
|
710
|
-
set: (a) => x(this, T,
|
|
711
|
-
}), r && ((p(this, Pe) ??
|
|
710
|
+
set: (a) => x(this, T, Vt).call(this, o, a)
|
|
711
|
+
}), r && ((p(this, Pe) ?? V(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
|
|
715
715
|
* (de)registers a real listener for the event, so the property behaves like
|
|
716
716
|
* `addEventListener(name, …)` and its handler receives the `CustomEvent`.
|
|
717
717
|
*/
|
|
718
|
-
|
|
718
|
+
Ds = function(t) {
|
|
719
719
|
for (const o of t) {
|
|
720
720
|
const i = o.property;
|
|
721
721
|
if (!i)
|
|
@@ -735,47 +735,47 @@ $s = function(t) {
|
|
|
735
735
|
}
|
|
736
736
|
}), n && (this[i] = a);
|
|
737
737
|
}
|
|
738
|
-
},
|
|
738
|
+
}, Vt = function(t, o) {
|
|
739
739
|
var r;
|
|
740
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
|
-
if (x(this, T,
|
|
745
|
+
if (x(this, T, Dt).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
|
|
746
746
|
const n = t.converter.toAttribute(i.value);
|
|
747
|
-
|
|
747
|
+
V(this, Me, !0);
|
|
748
748
|
try {
|
|
749
749
|
n === null ? this.removeAttribute(t.attribute) : this.setAttribute(t.attribute, n);
|
|
750
750
|
} finally {
|
|
751
|
-
|
|
751
|
+
V(this, Me, !1);
|
|
752
752
|
}
|
|
753
753
|
}
|
|
754
|
-
},
|
|
755
|
-
p(this, he)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" &&
|
|
754
|
+
}, Dt = function(t) {
|
|
755
|
+
p(this, he)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" && V(this, ue, !0), (p(this, we) ?? V(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
|
-
p(this, Ze).cancel(), x(this, T,
|
|
759
|
-
},
|
|
758
|
+
p(this, Ze).cancel(), x(this, T, $t).call(this);
|
|
759
|
+
}, $t = function() {
|
|
760
760
|
if (!this.isConnected)
|
|
761
761
|
return;
|
|
762
762
|
const t = p(this, ue), o = p(this, we);
|
|
763
|
-
|
|
763
|
+
V(this, ue, !1), V(this, we, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), x(this, T, $s).call(this);
|
|
764
764
|
}, /** Resolve everyone awaiting {@link whenSettled} for the flush that just ran. */
|
|
765
|
-
|
|
765
|
+
$s = function() {
|
|
766
766
|
if (p(this, xe).length === 0)
|
|
767
767
|
return;
|
|
768
768
|
const t = p(this, xe);
|
|
769
|
-
|
|
769
|
+
V(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. */
|
|
773
|
-
|
|
773
|
+
u(Xe, "inputs"), /**
|
|
774
774
|
* The opt-in event table (SPEC §12.5). Each entry (a bare name, or an
|
|
775
775
|
* {@link EventDef} for overrides) declares an outward notification that
|
|
776
776
|
* {@link emit} can fire and installs a managed `on<Name>` handler property.
|
|
777
777
|
*/
|
|
778
|
-
|
|
778
|
+
u(Xe, "events");
|
|
779
779
|
let Nt = Xe;
|
|
780
780
|
function rs(s, e, t) {
|
|
781
781
|
typeof customElements > "u" || customElements.get(s) || customElements.define(s, e, t);
|
|
@@ -791,13 +791,13 @@ function Go(s) {
|
|
|
791
791
|
}
|
|
792
792
|
function Xo(s, e, t) {
|
|
793
793
|
const { config: o, logging: i, shouldAutoDefine: r = !0 } = t;
|
|
794
|
-
i &&
|
|
794
|
+
i && Do(s, i);
|
|
795
795
|
const n = {
|
|
796
796
|
version: () => o.version,
|
|
797
797
|
config: o,
|
|
798
798
|
...i ? { logging: Go(i) } : {},
|
|
799
799
|
register: () => rs(s, e),
|
|
800
|
-
getInstances: () =>
|
|
800
|
+
getInstances: () => Vo(s)
|
|
801
801
|
};
|
|
802
802
|
return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && rs(s, e), n;
|
|
803
803
|
}
|
|
@@ -964,22 +964,22 @@ let de;
|
|
|
964
964
|
const ft = {};
|
|
965
965
|
class Hs {
|
|
966
966
|
constructor(e, t) {
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
967
|
+
u(this, "name");
|
|
968
|
+
u(this, "levels", j);
|
|
969
|
+
u(this, "methodFactory");
|
|
970
970
|
// Installed by replaceLoggingMethods(); definite-assignment via `!`.
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
971
|
+
u(this, "trace");
|
|
972
|
+
u(this, "debug");
|
|
973
|
+
u(this, "info");
|
|
974
|
+
u(this, "warn");
|
|
975
|
+
u(this, "error");
|
|
976
|
+
u(this, "log");
|
|
977
977
|
/** Level inherited from the root (cached so it stays in sync with installed methods). */
|
|
978
|
-
|
|
978
|
+
u(this, "inheritedLevel");
|
|
979
979
|
/** Optional per-logger default; overrides inherited. */
|
|
980
|
-
|
|
980
|
+
u(this, "defaultLevel", null);
|
|
981
981
|
/** Optional user-set level; overrides default. */
|
|
982
|
-
|
|
982
|
+
u(this, "userLevel", null);
|
|
983
983
|
this.name = e, this.methodFactory = t, this.inheritedLevel = Be(de ? de.getLevel() : "WARN");
|
|
984
984
|
const o = this.getPersistedLevel();
|
|
985
985
|
o != null && (this.userLevel = Be(o)), this.replaceLoggingMethods();
|
|
@@ -1149,13 +1149,13 @@ const pe = Math.min, ie = Math.max, gt = Math.round, rt = Math.floor, re = (s) =
|
|
|
1149
1149
|
function Bs(s, e, t) {
|
|
1150
1150
|
return ie(s, pe(e, t));
|
|
1151
1151
|
}
|
|
1152
|
-
function
|
|
1152
|
+
function Ve(s, e) {
|
|
1153
1153
|
return typeof s == "function" ? s(e) : s;
|
|
1154
1154
|
}
|
|
1155
1155
|
function Se(s) {
|
|
1156
1156
|
return s.split("-")[0];
|
|
1157
1157
|
}
|
|
1158
|
-
function
|
|
1158
|
+
function De(s) {
|
|
1159
1159
|
return s.split("-")[1];
|
|
1160
1160
|
}
|
|
1161
1161
|
function Ks(s) {
|
|
@@ -1173,7 +1173,7 @@ function Jt(s) {
|
|
|
1173
1173
|
}
|
|
1174
1174
|
function vi(s, e, t) {
|
|
1175
1175
|
t === void 0 && (t = !1);
|
|
1176
|
-
const o =
|
|
1176
|
+
const o = De(s), i = Jt(s), r = Yt(i);
|
|
1177
1177
|
let n = i === "x" ? o === (t ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
|
|
1178
1178
|
return e.reference[r] > e.floating[r] && (n = bt(n)), [n, bt(n)];
|
|
1179
1179
|
}
|
|
@@ -1198,7 +1198,7 @@ function _i(s, e, t) {
|
|
|
1198
1198
|
}
|
|
1199
1199
|
}
|
|
1200
1200
|
function ki(s, e, t, o) {
|
|
1201
|
-
const i =
|
|
1201
|
+
const i = De(s);
|
|
1202
1202
|
let r = _i(Se(s), t === "start", o);
|
|
1203
1203
|
return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(Rt)))), r;
|
|
1204
1204
|
}
|
|
@@ -1247,40 +1247,40 @@ function ps(s, e, t) {
|
|
|
1247
1247
|
floating: i
|
|
1248
1248
|
} = s;
|
|
1249
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;
|
|
1250
|
-
let
|
|
1250
|
+
let m;
|
|
1251
1251
|
switch (l) {
|
|
1252
1252
|
case "top":
|
|
1253
|
-
|
|
1253
|
+
m = {
|
|
1254
1254
|
x: d,
|
|
1255
1255
|
y: o.y - i.height
|
|
1256
1256
|
};
|
|
1257
1257
|
break;
|
|
1258
1258
|
case "bottom":
|
|
1259
|
-
|
|
1259
|
+
m = {
|
|
1260
1260
|
x: d,
|
|
1261
1261
|
y: o.y + o.height
|
|
1262
1262
|
};
|
|
1263
1263
|
break;
|
|
1264
1264
|
case "right":
|
|
1265
|
-
|
|
1265
|
+
m = {
|
|
1266
1266
|
x: o.x + o.width,
|
|
1267
1267
|
y: h
|
|
1268
1268
|
};
|
|
1269
1269
|
break;
|
|
1270
1270
|
case "left":
|
|
1271
|
-
|
|
1271
|
+
m = {
|
|
1272
1272
|
x: o.x - i.width,
|
|
1273
1273
|
y: h
|
|
1274
1274
|
};
|
|
1275
1275
|
break;
|
|
1276
1276
|
default:
|
|
1277
|
-
|
|
1277
|
+
m = {
|
|
1278
1278
|
x: o.x,
|
|
1279
1279
|
y: o.y
|
|
1280
1280
|
};
|
|
1281
1281
|
}
|
|
1282
|
-
const g =
|
|
1283
|
-
return g && (
|
|
1282
|
+
const g = De(e);
|
|
1283
|
+
return g && (m[n] += f * (g === "end" ? 1 : -1) * (t && c ? -1 : 1)), m;
|
|
1284
1284
|
}
|
|
1285
1285
|
async function Si(s, e) {
|
|
1286
1286
|
var t;
|
|
@@ -1297,8 +1297,8 @@ async function Si(s, e) {
|
|
|
1297
1297
|
rootBoundary: d = "viewport",
|
|
1298
1298
|
elementContext: h = "floating",
|
|
1299
1299
|
altBoundary: f = !1,
|
|
1300
|
-
padding:
|
|
1301
|
-
} =
|
|
1300
|
+
padding: m = 0
|
|
1301
|
+
} = Ve(e, s), g = Fs(m), y = a[f ? h === "floating" ? "reference" : "floating" : h], v = vt(await r.getClippingRect({
|
|
1302
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)),
|
|
1303
1303
|
boundary: c,
|
|
1304
1304
|
rootBoundary: d,
|
|
@@ -1341,7 +1341,7 @@ const Ti = 50, Ii = async (s, e, t) => {
|
|
|
1341
1341
|
}), {
|
|
1342
1342
|
x: d,
|
|
1343
1343
|
y: h
|
|
1344
|
-
} = ps(c, o, l), f = o,
|
|
1344
|
+
} = ps(c, o, l), f = o, m = 0;
|
|
1345
1345
|
const g = {};
|
|
1346
1346
|
for (let b = 0; b < r.length; b++) {
|
|
1347
1347
|
const y = r[b];
|
|
@@ -1354,7 +1354,7 @@ const Ti = 50, Ii = async (s, e, t) => {
|
|
|
1354
1354
|
x: k,
|
|
1355
1355
|
y: P,
|
|
1356
1356
|
data: M,
|
|
1357
|
-
reset:
|
|
1357
|
+
reset: D
|
|
1358
1358
|
} = await w({
|
|
1359
1359
|
x: d,
|
|
1360
1360
|
y: h,
|
|
@@ -1372,11 +1372,11 @@ const Ti = 50, Ii = async (s, e, t) => {
|
|
|
1372
1372
|
d = k ?? d, h = P ?? h, g[v] = {
|
|
1373
1373
|
...g[v],
|
|
1374
1374
|
...M
|
|
1375
|
-
},
|
|
1375
|
+
}, D && m < Ti && (m++, typeof D == "object" && (D.placement && (f = D.placement), D.rects && (c = D.rects === !0 ? await n.getElementRects({
|
|
1376
1376
|
reference: s,
|
|
1377
1377
|
floating: e,
|
|
1378
1378
|
strategy: i
|
|
1379
|
-
}) :
|
|
1379
|
+
}) : D.rects), {
|
|
1380
1380
|
x: d,
|
|
1381
1381
|
y: h
|
|
1382
1382
|
} = ps(c, f, l)), b = -1);
|
|
@@ -1403,21 +1403,21 @@ const Ti = 50, Ii = async (s, e, t) => {
|
|
|
1403
1403
|
} = e, {
|
|
1404
1404
|
element: c,
|
|
1405
1405
|
padding: d = 0
|
|
1406
|
-
} =
|
|
1406
|
+
} = Ve(s, e) || {};
|
|
1407
1407
|
if (c == null)
|
|
1408
1408
|
return {};
|
|
1409
1409
|
const h = Fs(d), f = {
|
|
1410
1410
|
x: t,
|
|
1411
1411
|
y: o
|
|
1412
|
-
},
|
|
1413
|
-
let R =
|
|
1414
|
-
(!R || !await (n.isElement == null ? void 0 : n.isElement(
|
|
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,
|
|
1412
|
+
}, m = Jt(i), g = Yt(m), b = await n.getDimensions(c), y = m === "y", v = y ? "top" : "left", w = y ? "bottom" : "right", k = y ? "clientHeight" : "clientWidth", P = r.reference[g] + r.reference[m] - f[m] - r.floating[g], M = f[m] - r.reference[m], D = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
|
|
1413
|
+
let R = D ? D[k] : 0;
|
|
1414
|
+
(!R || !await (n.isElement == null ? void 0 : n.isElement(D))) && (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, $ = R / 2 - b[g] / 2 + G, S = Bs(C, $, O), H = !l.arrow && De(i) != null && $ !== S && r.reference[g] / 2 - ($ < C ? C : I) - b[g] / 2 < 0, te = H ? $ < C ? $ - C : $ - O : 0;
|
|
1416
1416
|
return {
|
|
1417
|
-
[
|
|
1417
|
+
[m]: f[m] + te,
|
|
1418
1418
|
data: {
|
|
1419
|
-
[
|
|
1420
|
-
centerOffset:
|
|
1419
|
+
[m]: S,
|
|
1420
|
+
centerOffset: $ - S - te,
|
|
1421
1421
|
...H && {
|
|
1422
1422
|
alignmentOffset: te
|
|
1423
1423
|
}
|
|
@@ -1442,15 +1442,15 @@ const Ti = 50, Ii = async (s, e, t) => {
|
|
|
1442
1442
|
mainAxis: d = !0,
|
|
1443
1443
|
crossAxis: h = !0,
|
|
1444
1444
|
fallbackPlacements: f,
|
|
1445
|
-
fallbackStrategy:
|
|
1445
|
+
fallbackStrategy: m = "bestFit",
|
|
1446
1446
|
fallbackAxisSideDirection: g = "none",
|
|
1447
1447
|
flipAlignment: b = !0,
|
|
1448
1448
|
...y
|
|
1449
|
-
} =
|
|
1449
|
+
} = Ve(s, e);
|
|
1450
1450
|
if ((t = r.arrow) != null && t.alignmentOffset)
|
|
1451
1451
|
return {};
|
|
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)),
|
|
1453
|
-
!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)), D = g !== "none";
|
|
1453
|
+
!f && D && M.push(...ki(a, b, g, P));
|
|
1454
1454
|
const R = [a, ...M], G = await l.detectOverflow(e, y), L = [];
|
|
1455
1455
|
let C = ((o = r.flip) == null ? void 0 : o.overflows) || [];
|
|
1456
1456
|
if (d && L.push(G[v]), h) {
|
|
@@ -1477,18 +1477,18 @@ const Ti = 50, Ii = async (s, e, t) => {
|
|
|
1477
1477
|
};
|
|
1478
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;
|
|
1479
1479
|
if (!te)
|
|
1480
|
-
switch (
|
|
1480
|
+
switch (m) {
|
|
1481
1481
|
case "bestFit": {
|
|
1482
|
-
var
|
|
1483
|
-
const ge = (
|
|
1484
|
-
if (
|
|
1482
|
+
var $;
|
|
1483
|
+
const ge = ($ = C.filter((q) => {
|
|
1484
|
+
if (D) {
|
|
1485
1485
|
const le = oe(q.placement);
|
|
1486
1486
|
return le === w || // Create a bias to the `y` side axis due to horizontal
|
|
1487
1487
|
// reading directions favoring greater width.
|
|
1488
1488
|
le === "y";
|
|
1489
1489
|
}
|
|
1490
1490
|
return !0;
|
|
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 :
|
|
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 : $[0];
|
|
1492
1492
|
ge && (te = ge);
|
|
1493
1493
|
break;
|
|
1494
1494
|
}
|
|
@@ -1512,10 +1512,10 @@ async function Li(s, e) {
|
|
|
1512
1512
|
placement: t,
|
|
1513
1513
|
platform: o,
|
|
1514
1514
|
elements: i
|
|
1515
|
-
} = 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 = De(t), l = oe(t) === "y", c = Mi.has(n) ? -1 : 1, d = r && l ? -1 : 1, h = Ve(e, s);
|
|
1516
1516
|
let {
|
|
1517
1517
|
mainAxis: f,
|
|
1518
|
-
crossAxis:
|
|
1518
|
+
crossAxis: m,
|
|
1519
1519
|
alignmentAxis: g
|
|
1520
1520
|
} = typeof h == "number" ? {
|
|
1521
1521
|
mainAxis: h,
|
|
@@ -1526,12 +1526,12 @@ async function Li(s, e) {
|
|
|
1526
1526
|
crossAxis: h.crossAxis || 0,
|
|
1527
1527
|
alignmentAxis: h.alignmentAxis
|
|
1528
1528
|
};
|
|
1529
|
-
return a && typeof g == "number" && (
|
|
1530
|
-
x:
|
|
1529
|
+
return a && typeof g == "number" && (m = a === "end" ? g * -1 : g), l ? {
|
|
1530
|
+
x: m * d,
|
|
1531
1531
|
y: f * c
|
|
1532
1532
|
} : {
|
|
1533
1533
|
x: f * c,
|
|
1534
|
-
y:
|
|
1534
|
+
y: m * d
|
|
1535
1535
|
};
|
|
1536
1536
|
}
|
|
1537
1537
|
const Ei = function(s) {
|
|
@@ -1582,16 +1582,16 @@ const Ei = function(s) {
|
|
|
1582
1582
|
}
|
|
1583
1583
|
},
|
|
1584
1584
|
...c
|
|
1585
|
-
} =
|
|
1585
|
+
} = Ve(s, e), d = {
|
|
1586
1586
|
x: t,
|
|
1587
1587
|
y: o
|
|
1588
|
-
}, h = await r.detectOverflow(e, c), f = oe(i),
|
|
1589
|
-
let g = d[
|
|
1588
|
+
}, h = await r.detectOverflow(e, c), f = oe(i), m = Ks(f);
|
|
1589
|
+
let g = d[m], b = d[f];
|
|
1590
1590
|
const y = (w, k) => Bs(k + h[w === "y" ? "top" : "left"], k, k - h[w === "y" ? "bottom" : "right"]);
|
|
1591
|
-
n && (g = y(
|
|
1591
|
+
n && (g = y(m, g)), a && (b = y(f, b));
|
|
1592
1592
|
const v = l.fn({
|
|
1593
1593
|
...e,
|
|
1594
|
-
[
|
|
1594
|
+
[m]: g,
|
|
1595
1595
|
[f]: b
|
|
1596
1596
|
});
|
|
1597
1597
|
return {
|
|
@@ -1600,7 +1600,7 @@ const Ei = function(s) {
|
|
|
1600
1600
|
x: v.x - t,
|
|
1601
1601
|
y: v.y - o,
|
|
1602
1602
|
enabled: {
|
|
1603
|
-
[
|
|
1603
|
+
[m]: n,
|
|
1604
1604
|
[f]: a
|
|
1605
1605
|
}
|
|
1606
1606
|
}
|
|
@@ -1621,21 +1621,21 @@ const Ei = function(s) {
|
|
|
1621
1621
|
apply: n = () => {
|
|
1622
1622
|
},
|
|
1623
1623
|
...a
|
|
1624
|
-
} =
|
|
1624
|
+
} = Ve(s, e), l = await i.detectOverflow(e, a), c = Se(t), d = De(t), h = oe(t) === "y", {
|
|
1625
1625
|
width: f,
|
|
1626
|
-
height:
|
|
1626
|
+
height: m
|
|
1627
1627
|
} = o.floating;
|
|
1628
1628
|
let g, b;
|
|
1629
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");
|
|
1630
|
-
const y =
|
|
1631
|
-
let
|
|
1632
|
-
P != null && P.enabled.x && (R = v), P != null && P.enabled.y && (
|
|
1630
|
+
const y = m - l.top - l.bottom, v = f - l.left - l.right, w = pe(m - l[g], y), k = pe(f - l[b], v), P = e.middlewareData.shift, M = !P;
|
|
1631
|
+
let D = w, R = k;
|
|
1632
|
+
P != null && P.enabled.x && (R = v), P != null && P.enabled.y && (D = y), M && !d && (h ? R = f - 2 * ie(l.left, l.right) : D = m - 2 * ie(l.top, l.bottom)), await n({
|
|
1633
1633
|
...e,
|
|
1634
1634
|
availableWidth: R,
|
|
1635
|
-
availableHeight:
|
|
1635
|
+
availableHeight: D
|
|
1636
1636
|
});
|
|
1637
1637
|
const G = await i.getDimensions(r.floating);
|
|
1638
|
-
return f !== G.width ||
|
|
1638
|
+
return f !== G.width || m !== G.height ? {
|
|
1639
1639
|
reset: {
|
|
1640
1640
|
rects: !0
|
|
1641
1641
|
}
|
|
@@ -1646,7 +1646,7 @@ const Ei = function(s) {
|
|
|
1646
1646
|
function xt() {
|
|
1647
1647
|
return typeof window < "u";
|
|
1648
1648
|
}
|
|
1649
|
-
function
|
|
1649
|
+
function $e(s) {
|
|
1650
1650
|
return Ws(s) ? (s.nodeName || "").toLowerCase() : "#document";
|
|
1651
1651
|
}
|
|
1652
1652
|
function U(s) {
|
|
@@ -1679,7 +1679,7 @@ function _t(s) {
|
|
|
1679
1679
|
return /auto|scroll|overlay|hidden|clip/.test(e + o + t) && i !== "inline" && i !== "contents";
|
|
1680
1680
|
}
|
|
1681
1681
|
function Ni(s) {
|
|
1682
|
-
return /^(table|td|th)$/.test(
|
|
1682
|
+
return /^(table|td|th)$/.test($e(s));
|
|
1683
1683
|
}
|
|
1684
1684
|
function kt(s) {
|
|
1685
1685
|
try {
|
|
@@ -1693,13 +1693,13 @@ function kt(s) {
|
|
|
1693
1693
|
return !1;
|
|
1694
1694
|
}
|
|
1695
1695
|
}
|
|
1696
|
-
const
|
|
1696
|
+
const Vi = /transform|translate|scale|rotate|perspective|filter/, Di = /paint|layout|strict|content/, be = (s) => !!s && s !== "none";
|
|
1697
1697
|
let Pt;
|
|
1698
1698
|
function Qt(s) {
|
|
1699
1699
|
const e = Z(s) ? ee(s) : s;
|
|
1700
|
-
return be(e.transform) || be(e.translate) || be(e.scale) || be(e.rotate) || be(e.perspective) || !Zt() && (be(e.backdropFilter) || be(e.filter)) ||
|
|
1700
|
+
return be(e.transform) || be(e.translate) || be(e.scale) || be(e.rotate) || be(e.perspective) || !Zt() && (be(e.backdropFilter) || be(e.filter)) || Vi.test(e.willChange || "") || Di.test(e.contain || "");
|
|
1701
1701
|
}
|
|
1702
|
-
function
|
|
1702
|
+
function $i(s) {
|
|
1703
1703
|
let e = Te(s);
|
|
1704
1704
|
for (; fe(e) && !qe(e); ) {
|
|
1705
1705
|
if (Qt(e))
|
|
@@ -1714,7 +1714,7 @@ function Zt() {
|
|
|
1714
1714
|
return Pt == null && (Pt = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), Pt;
|
|
1715
1715
|
}
|
|
1716
1716
|
function qe(s) {
|
|
1717
|
-
return /^(html|body|#document)$/.test(
|
|
1717
|
+
return /^(html|body|#document)$/.test($e(s));
|
|
1718
1718
|
}
|
|
1719
1719
|
function ee(s) {
|
|
1720
1720
|
return U(s).getComputedStyle(s);
|
|
@@ -1729,7 +1729,7 @@ function Ct(s) {
|
|
|
1729
1729
|
};
|
|
1730
1730
|
}
|
|
1731
1731
|
function Te(s) {
|
|
1732
|
-
if (
|
|
1732
|
+
if ($e(s) === "html")
|
|
1733
1733
|
return s;
|
|
1734
1734
|
const e = (
|
|
1735
1735
|
// Step into the shadow DOM of the parent of a slotted node.
|
|
@@ -1804,9 +1804,9 @@ function Ie(s, e, t, o) {
|
|
|
1804
1804
|
const a = Hi(r, t, o) ? Gs(r) : re(0);
|
|
1805
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;
|
|
1806
1806
|
if (r && o) {
|
|
1807
|
-
const f = U(r),
|
|
1807
|
+
const f = U(r), m = Z(o) ? U(o) : o;
|
|
1808
1808
|
let g = f, b = Ht(g);
|
|
1809
|
-
for (; b &&
|
|
1809
|
+
for (; b && m !== g; ) {
|
|
1810
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
1811
|
l *= y.x, c *= y.y, d *= y.x, h *= y.y, l += k, c += P, g = U(b), b = Ht(g);
|
|
1812
1812
|
}
|
|
@@ -1844,9 +1844,9 @@ function Bi(s) {
|
|
|
1844
1844
|
scrollTop: 0
|
|
1845
1845
|
}, c = re(1);
|
|
1846
1846
|
const d = re(0), h = fe(o);
|
|
1847
|
-
if ((h || !r) && ((
|
|
1848
|
-
const
|
|
1849
|
-
c = Oe(o), d.x =
|
|
1847
|
+
if ((h || !r) && (($e(o) !== "body" || _t(n)) && (l = Ct(o)), h)) {
|
|
1848
|
+
const m = Ie(o);
|
|
1849
|
+
c = Oe(o), d.x = m.x + o.clientLeft, d.y = m.y + o.clientTop;
|
|
1850
1850
|
}
|
|
1851
1851
|
const f = n && !h && !r ? Xs(n, l) : re(0);
|
|
1852
1852
|
return {
|
|
@@ -1880,7 +1880,7 @@ function ji(s, e, t) {
|
|
|
1880
1880
|
o ? f || (c = -n.offsetLeft, d = -n.offsetTop) : (a = n.width, l = n.height, f && (c = n.offsetLeft, d = n.offsetTop));
|
|
1881
1881
|
}
|
|
1882
1882
|
if (St(r) <= 0) {
|
|
1883
|
-
const f = r.ownerDocument,
|
|
1883
|
+
const f = r.ownerDocument, m = f.body, g = getComputedStyle(m), b = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, y = Math.abs(r.clientWidth - m.clientWidth - b), v = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? y / 2 : y;
|
|
1884
1884
|
v <= Wi && (a -= v);
|
|
1885
1885
|
}
|
|
1886
1886
|
return {
|
|
@@ -1922,7 +1922,7 @@ function Gi(s, e) {
|
|
|
1922
1922
|
const t = e.get(s);
|
|
1923
1923
|
if (t)
|
|
1924
1924
|
return t;
|
|
1925
|
-
let o = Ye(s, [], !1).filter((a) => Z(a) &&
|
|
1925
|
+
let o = Ye(s, [], !1).filter((a) => Z(a) && $e(a) !== "body"), i = null;
|
|
1926
1926
|
const r = ee(s).position === "fixed";
|
|
1927
1927
|
let n = r ? Te(s) : s;
|
|
1928
1928
|
for (; Z(n) && !qe(n); ) {
|
|
@@ -1941,8 +1941,8 @@ function Xi(s) {
|
|
|
1941
1941
|
const n = [...t === "clippingAncestors" ? kt(e) ? [] : Gi(e, this._c) : [].concat(t), o], a = gs(e, n[0], i);
|
|
1942
1942
|
let l = a.top, c = a.right, d = a.bottom, h = a.left;
|
|
1943
1943
|
for (let f = 1; f < n.length; f++) {
|
|
1944
|
-
const
|
|
1945
|
-
l = ie(
|
|
1944
|
+
const m = gs(e, n[f], i);
|
|
1945
|
+
l = ie(m.top, l), c = pe(m.right, c), d = pe(m.bottom, d), h = ie(m.left, h);
|
|
1946
1946
|
}
|
|
1947
1947
|
return {
|
|
1948
1948
|
width: c - h,
|
|
@@ -1968,7 +1968,7 @@ function Yi(s, e, t) {
|
|
|
1968
1968
|
scrollTop: 0
|
|
1969
1969
|
};
|
|
1970
1970
|
const l = re(0);
|
|
1971
|
-
if ((o || !r) && ((
|
|
1971
|
+
if ((o || !r) && (($e(e) !== "body" || _t(i)) && (a = Ct(e)), o)) {
|
|
1972
1972
|
const f = Ie(e, !0, r, e);
|
|
1973
1973
|
l.x = f.x + e.clientLeft, l.y = f.y + e.clientTop;
|
|
1974
1974
|
}
|
|
@@ -2008,7 +2008,7 @@ function qs(s, e) {
|
|
|
2008
2008
|
let o = bs(s, e);
|
|
2009
2009
|
for (; o && Ni(o) && Mt(o); )
|
|
2010
2010
|
o = bs(o, e);
|
|
2011
|
-
return o && qe(o) && Mt(o) && !Qt(o) ? t : o ||
|
|
2011
|
+
return o && qe(o) && Mt(o) && !Qt(o) ? t : o || $i(s) || t;
|
|
2012
2012
|
}
|
|
2013
2013
|
const Ji = async function(s) {
|
|
2014
2014
|
const e = this.getOffsetParent || qs, t = this.getDimensions, o = await t(s.floating);
|
|
@@ -2050,14 +2050,14 @@ function Zi(s, e, t) {
|
|
|
2050
2050
|
function a(d, h) {
|
|
2051
2051
|
d === void 0 && (d = !1), h === void 0 && (h = 1), n();
|
|
2052
2052
|
const f = s.getBoundingClientRect(), {
|
|
2053
|
-
left:
|
|
2053
|
+
left: m,
|
|
2054
2054
|
top: g,
|
|
2055
2055
|
width: b,
|
|
2056
2056
|
height: y
|
|
2057
2057
|
} = f;
|
|
2058
2058
|
if (d || e(), !b || !y)
|
|
2059
2059
|
return;
|
|
2060
|
-
const v = rt(g), w = rt(r.clientWidth - (
|
|
2060
|
+
const v = rt(g), w = rt(r.clientWidth - (m + b)), k = rt(r.clientHeight - (g + y)), P = rt(m), D = {
|
|
2061
2061
|
rootMargin: -v + "px " + -w + "px " + -k + "px " + -P + "px",
|
|
2062
2062
|
threshold: ie(0, pe(1, h)) || 1
|
|
2063
2063
|
};
|
|
@@ -2077,12 +2077,12 @@ function Zi(s, e, t) {
|
|
|
2077
2077
|
}
|
|
2078
2078
|
try {
|
|
2079
2079
|
o = new IntersectionObserver(G, {
|
|
2080
|
-
|
|
2080
|
+
...D,
|
|
2081
2081
|
// Handle <iframe>s
|
|
2082
2082
|
root: r.ownerDocument
|
|
2083
2083
|
});
|
|
2084
2084
|
} catch {
|
|
2085
|
-
o = new IntersectionObserver(G,
|
|
2085
|
+
o = new IntersectionObserver(G, D);
|
|
2086
2086
|
}
|
|
2087
2087
|
o.observe(s);
|
|
2088
2088
|
}
|
|
@@ -2104,14 +2104,14 @@ function er(s, e, t, o) {
|
|
|
2104
2104
|
i && v.addEventListener("scroll", t), r && v.addEventListener("resize", t);
|
|
2105
2105
|
});
|
|
2106
2106
|
const h = c && a ? Zi(c, t, r) : null;
|
|
2107
|
-
let f = -1,
|
|
2108
|
-
n && (
|
|
2107
|
+
let f = -1, m = null;
|
|
2108
|
+
n && (m = new ResizeObserver((v) => {
|
|
2109
2109
|
let [w] = v;
|
|
2110
|
-
w && w.target === c &&
|
|
2110
|
+
w && w.target === c && m && e && (m.unobserve(e), cancelAnimationFrame(f), f = requestAnimationFrame(() => {
|
|
2111
2111
|
var k;
|
|
2112
|
-
(k =
|
|
2112
|
+
(k = m) == null || k.observe(e);
|
|
2113
2113
|
})), t();
|
|
2114
|
-
}), c && !l &&
|
|
2114
|
+
}), c && !l && m.observe(c), e && m.observe(e));
|
|
2115
2115
|
let g, b = l ? Ie(s) : null;
|
|
2116
2116
|
l && y();
|
|
2117
2117
|
function y() {
|
|
@@ -2122,7 +2122,7 @@ function er(s, e, t, o) {
|
|
|
2122
2122
|
var v;
|
|
2123
2123
|
d.forEach((w) => {
|
|
2124
2124
|
i && w.removeEventListener("scroll", t), r && w.removeEventListener("resize", t);
|
|
2125
|
-
}), h == null || h(), (v =
|
|
2125
|
+
}), h == null || h(), (v = m) == null || v.disconnect(), m = null, l && cancelAnimationFrame(g);
|
|
2126
2126
|
};
|
|
2127
2127
|
}
|
|
2128
2128
|
const tr = Ei, sr = Ai, or = Pi, Lt = zi, ir = Oi, rr = (s, e, t) => {
|
|
@@ -2253,8 +2253,8 @@ function Ue(s, e, t = {}) {
|
|
|
2253
2253
|
const a = t.lockPlacement === "freeze";
|
|
2254
2254
|
let l = !1;
|
|
2255
2255
|
const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...Ys, getOffsetParent: () => vs(s) } : void 0), h = () => {
|
|
2256
|
-
var
|
|
2257
|
-
(
|
|
2256
|
+
var m;
|
|
2257
|
+
(m = t.beforeCompute) == null || m.call(t), rr(e, s, {
|
|
2258
2258
|
placement: i,
|
|
2259
2259
|
strategy: o,
|
|
2260
2260
|
middleware: n,
|
|
@@ -2287,11 +2287,11 @@ function fr(s) {
|
|
|
2287
2287
|
contextElement: s.trigger
|
|
2288
2288
|
}, f = (w) => {
|
|
2289
2289
|
d = new DOMRect(w.clientX, w.clientY, 0, 0), n == null || n.update();
|
|
2290
|
-
},
|
|
2290
|
+
}, m = () => {
|
|
2291
2291
|
l && clearTimeout(l), c && clearTimeout(c), l = c = void 0;
|
|
2292
2292
|
}, g = () => {
|
|
2293
2293
|
var k;
|
|
2294
|
-
if (
|
|
2294
|
+
if (m(), a)
|
|
2295
2295
|
return;
|
|
2296
2296
|
(k = s.onBeforeShow) == null || k.call(s), a = !0, e.append(r);
|
|
2297
2297
|
const w = s.followCursor ? h : s.trigger;
|
|
@@ -2302,11 +2302,11 @@ function fr(s) {
|
|
|
2302
2302
|
inheritThemeFrom: s.inheritThemeFrom ?? s.trigger
|
|
2303
2303
|
}), s.followCursor && s.trigger.addEventListener("mousemove", f), r.classList.add(o);
|
|
2304
2304
|
}, b = () => {
|
|
2305
|
-
|
|
2305
|
+
m(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
|
|
2306
2306
|
}, y = () => {
|
|
2307
|
-
|
|
2307
|
+
m(), i.show > 0 ? l = setTimeout(g, i.show) : g();
|
|
2308
2308
|
}, v = () => {
|
|
2309
|
-
|
|
2309
|
+
m(), i.hide > 0 ? c = setTimeout(b, i.hide) : b();
|
|
2310
2310
|
};
|
|
2311
2311
|
return s.trigger.addEventListener("mouseenter", y), s.trigger.addEventListener("mouseleave", v), s.trigger.addEventListener("focusin", y), s.trigger.addEventListener("focusout", v), {
|
|
2312
2312
|
element: r,
|
|
@@ -2356,13 +2356,13 @@ function gr(s) {
|
|
|
2356
2356
|
};
|
|
2357
2357
|
}
|
|
2358
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}`);
|
|
2359
|
-
function
|
|
2359
|
+
function Vr() {
|
|
2360
2360
|
ae.enableLogging();
|
|
2361
2361
|
}
|
|
2362
|
-
function
|
|
2362
|
+
function Dr() {
|
|
2363
2363
|
ae.disableLogging();
|
|
2364
2364
|
}
|
|
2365
|
-
function
|
|
2365
|
+
function $r(s) {
|
|
2366
2366
|
ae.setLogLevel(s);
|
|
2367
2367
|
}
|
|
2368
2368
|
function Rr(s, e) {
|
|
@@ -2371,21 +2371,21 @@ function Rr(s, e) {
|
|
|
2371
2371
|
}
|
|
2372
2372
|
class ws {
|
|
2373
2373
|
constructor(e) {
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2374
|
+
u(this, "container");
|
|
2375
|
+
u(this, "wrapper");
|
|
2376
|
+
u(this, "viewport");
|
|
2377
|
+
u(this, "itemHeight");
|
|
2378
|
+
u(this, "items");
|
|
2379
|
+
u(this, "renderItem");
|
|
2380
|
+
u(this, "bufferSize");
|
|
2381
|
+
u(this, "onVisibleRangeChange");
|
|
2382
|
+
u(this, "onScroll");
|
|
2383
|
+
u(this, "scrollTop", 0);
|
|
2384
|
+
u(this, "viewportHeight", 0);
|
|
2385
|
+
u(this, "visibleStart", 0);
|
|
2386
|
+
u(this, "visibleEnd", 0);
|
|
2387
|
+
u(this, "scrollHandler");
|
|
2388
|
+
u(this, "resizeObserver");
|
|
2389
2389
|
this.container = e.container, this.itemHeight = e.itemHeight, this.items = e.items, this.renderItem = e.renderItem, this.bufferSize = e.bufferSize ?? 10, this.onVisibleRangeChange = e.onVisibleRangeChange, this.onScroll = e.onScroll, this.scrollHandler = this.handleScroll.bind(this), this.init();
|
|
2390
2390
|
}
|
|
2391
2391
|
/**
|
|
@@ -2525,9 +2525,9 @@ function ce(s, e) {
|
|
|
2525
2525
|
return s[e];
|
|
2526
2526
|
}
|
|
2527
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),
|
|
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), m = je(r), g = je(n), b = je(a), y = "x", v = s.treePathSeparator || ".", w = xs();
|
|
2529
2529
|
let k = 0, P = null;
|
|
2530
|
-
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, D = {
|
|
2531
2531
|
treePathSeparator: v,
|
|
2532
2532
|
root: w,
|
|
2533
2533
|
get tree() {
|
|
@@ -2540,8 +2540,8 @@ function yr(s = {}) {
|
|
|
2540
2540
|
get flatNodes() {
|
|
2541
2541
|
if (P) return P;
|
|
2542
2542
|
const L = [], C = s.isSorted ?? !1, I = s.sortCallback;
|
|
2543
|
-
function O(
|
|
2544
|
-
let S = Object.values(
|
|
2543
|
+
function O($) {
|
|
2544
|
+
let S = Object.values($.children);
|
|
2545
2545
|
C && I && S.length > 0 && (S = I(S));
|
|
2546
2546
|
for (const H of S)
|
|
2547
2547
|
L.push(H), H.hasChildren && O(H);
|
|
@@ -2551,16 +2551,16 @@ function yr(s = {}) {
|
|
|
2551
2551
|
insertArray(L) {
|
|
2552
2552
|
L = L || [], w.children = {}, k = 0, P = null;
|
|
2553
2553
|
const C = [];
|
|
2554
|
-
let I = L.map((O,
|
|
2554
|
+
let I = L.map((O, $) => {
|
|
2555
2555
|
const S = xs();
|
|
2556
2556
|
S.treeId = c, S.id = e ? ce(O, e) : void 0;
|
|
2557
2557
|
const H = M(O);
|
|
2558
|
-
return H == null || H === "" || typeof H != "string" ? (C.push(`index ${
|
|
2558
|
+
return H == null || H === "" || typeof H != "string" ? (C.push(`index ${$}`), 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
2559
|
_s(S.path, S.parentPath ?? "", v),
|
|
2560
2560
|
0,
|
|
2561
2561
|
1,
|
|
2562
2562
|
v
|
|
2563
|
-
),
|
|
2563
|
+
), m ? S.level = vr(S.path, v) : S.level = ce(O, r), g || (S.hasChildren = ce(O, n)), S.data = O, S);
|
|
2564
2564
|
}).filter((O) => O !== null);
|
|
2565
2565
|
s.isSorted || (s.sortCallback ? I = s.sortCallback(I) : I = G(I));
|
|
2566
2566
|
for (const O of I)
|
|
@@ -2570,8 +2570,8 @@ function yr(s = {}) {
|
|
|
2570
2570
|
if (l)
|
|
2571
2571
|
O.isSelectable = l(O) !== !1;
|
|
2572
2572
|
else {
|
|
2573
|
-
const
|
|
2574
|
-
O.isSelectable =
|
|
2573
|
+
const $ = ce(O.data, a);
|
|
2574
|
+
O.isSelectable = $ == null ? !0 : !!$;
|
|
2575
2575
|
}
|
|
2576
2576
|
C.length > 0 && console.warn(
|
|
2577
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 ? ", …" : "")
|
|
@@ -2581,8 +2581,8 @@ function yr(s = {}) {
|
|
|
2581
2581
|
let I = C || w;
|
|
2582
2582
|
if (L) {
|
|
2583
2583
|
const O = L.split(v);
|
|
2584
|
-
for (let
|
|
2585
|
-
const S = y + O[
|
|
2584
|
+
for (let $ = 0; $ < O.length; $++) {
|
|
2585
|
+
const S = y + O[$];
|
|
2586
2586
|
if (!I.children.hasOwnProperty(S))
|
|
2587
2587
|
return null;
|
|
2588
2588
|
I = I.children[S];
|
|
@@ -2592,17 +2592,17 @@ function yr(s = {}) {
|
|
|
2592
2592
|
}
|
|
2593
2593
|
};
|
|
2594
2594
|
function R(L, C) {
|
|
2595
|
-
const I =
|
|
2595
|
+
const I = D.getNodeByPath(L);
|
|
2596
2596
|
if (!I)
|
|
2597
2597
|
return `Node: ${C.path} - Could not find parent node: ${L}`;
|
|
2598
|
-
|
|
2598
|
+
m && (C.level = (I.level || 0) + 1);
|
|
2599
2599
|
const O = y + ks(_s(C.path, L, v), 0, 1, v);
|
|
2600
2600
|
return I.children.hasOwnProperty(O) || (I.children[O] = C, g && !I.hasChildren && (I.hasChildren = !0), k = Math.max(k, C.level || 0)), null;
|
|
2601
2601
|
}
|
|
2602
2602
|
function G(L) {
|
|
2603
2603
|
return L.sort((C, I) => {
|
|
2604
|
-
const O = C.level || 0,
|
|
2605
|
-
if (O !==
|
|
2604
|
+
const O = C.level || 0, $ = I.level || 0;
|
|
2605
|
+
if (O !== $) return O - $;
|
|
2606
2606
|
if (C.parentPath !== I.parentPath)
|
|
2607
2607
|
return C.parentPath ? I.parentPath ? C.parentPath.localeCompare(I.parentPath) : 1 : -1;
|
|
2608
2608
|
if (d && C.data && I.data) {
|
|
@@ -2612,7 +2612,7 @@ function yr(s = {}) {
|
|
|
2612
2612
|
return h ? h(C).localeCompare(h(I)) : C.path.localeCompare(I.path);
|
|
2613
2613
|
});
|
|
2614
2614
|
}
|
|
2615
|
-
return
|
|
2615
|
+
return D;
|
|
2616
2616
|
}
|
|
2617
2617
|
function Cs(s, e) {
|
|
2618
2618
|
const t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), n = (l) => {
|
|
@@ -2676,125 +2676,127 @@ function Et(s, e, t, o) {
|
|
|
2676
2676
|
}
|
|
2677
2677
|
class xr {
|
|
2678
2678
|
constructor(e, t = {}) {
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2683
|
-
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2679
|
+
u(this, "element");
|
|
2680
|
+
u(this, "instanceId");
|
|
2681
|
+
u(this, "options");
|
|
2682
|
+
u(this, "isOpen", !1);
|
|
2683
|
+
u(this, "selectedValues", /* @__PURE__ */ new Set());
|
|
2684
|
+
u(this, "selectedOptions", /* @__PURE__ */ new Map());
|
|
2685
|
+
u(this, "allOptions", []);
|
|
2686
|
+
u(this, "filteredOptions", []);
|
|
2687
2687
|
// Tree mode: the hierarchy built from option paths, and the flat list of
|
|
2688
2688
|
// nodes currently shown. `treeNodes` stays index-aligned with
|
|
2689
2689
|
// `filteredOptions` so focus/keyboard/virtual-scroll keep working unchanged.
|
|
2690
|
-
|
|
2691
|
-
|
|
2690
|
+
u(this, "tree", null);
|
|
2691
|
+
u(this, "treeNodes", []);
|
|
2692
2692
|
// Cascade checkbox mode (tree + multiple + checkbox-mode="cascade"): the index
|
|
2693
2693
|
// is rebuilt with the tree; `cascadeCheckedAtoms` is the derived set of checked
|
|
2694
2694
|
// leaf-level atoms, refreshed from `selectedValues` before each render.
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2703
|
-
|
|
2704
|
-
|
|
2705
|
-
|
|
2706
|
-
|
|
2707
|
-
|
|
2708
|
-
|
|
2709
|
-
|
|
2695
|
+
u(this, "cascadeIndex", null);
|
|
2696
|
+
u(this, "cascadeCheckedAtoms", /* @__PURE__ */ new Set());
|
|
2697
|
+
u(this, "hiddenInputs", []);
|
|
2698
|
+
u(this, "focusedIndex", -1);
|
|
2699
|
+
// Stable imperative facade handed to keydownCallback (built once, reused). See getKeyboardController().
|
|
2700
|
+
u(this, "keyboardController", null);
|
|
2701
|
+
u(this, "matchingIndices", /* @__PURE__ */ new Set());
|
|
2702
|
+
u(this, "searchTerm", "");
|
|
2703
|
+
u(this, "isLoading", !1);
|
|
2704
|
+
u(this, "searchDebounceTimer");
|
|
2705
|
+
u(this, "searchAbortController");
|
|
2706
|
+
u(this, "showSelectedPopover", !1);
|
|
2707
|
+
u(this, "selectedPopoverPlacement", null);
|
|
2708
|
+
u(this, "dropdownPlacement", null);
|
|
2709
|
+
u(this, "isRTL", !1);
|
|
2710
|
+
u(this, "effectiveBadgesPosition", "bottom");
|
|
2711
|
+
u(this, "justClosedViaClick", !1);
|
|
2710
2712
|
// Set for one tick when the dropdown is opened by a pointer gesture. A fullscreen
|
|
2711
2713
|
// overlay (position:fixed, inset:0) appears over the pointer between mousedown and
|
|
2712
2714
|
// the follow-up click, so that click can target a common ancestor above the
|
|
2713
2715
|
// portaled panel and be misread as an outside-click. This guard swallows exactly
|
|
2714
2716
|
// that one click. See attachEvents() (mousedown) and handleClickOutside().
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
+
u(this, "justOpenedViaClick", !1);
|
|
2718
|
+
u(this, "positioningDriftWarned", !1);
|
|
2717
2719
|
// How the open dropdown is presented. 'floating' anchors it to the input (the
|
|
2718
2720
|
// default); 'fullscreen' renders it as a full-viewport overlay with its own
|
|
2719
2721
|
// search header + close button — the phone pattern, driven from the element's
|
|
2720
2722
|
// environmentChanged() hook via setPresentation(). See open()/enterFullscreen().
|
|
2721
|
-
|
|
2722
|
-
|
|
2723
|
-
|
|
2723
|
+
u(this, "presentationMode", "floating");
|
|
2724
|
+
u(this, "fullscreenHeader", null);
|
|
2725
|
+
u(this, "fullscreenSearchInput", null);
|
|
2724
2726
|
// Inline ✕ inside the fullscreen search box that clears the term. Shown only while
|
|
2725
2727
|
// there's text; touch has no keyboard Escape, so this is the way to reset a search.
|
|
2726
|
-
|
|
2728
|
+
u(this, "fullscreenSearchClear", null);
|
|
2727
2729
|
// Leading mode toggle inside the fullscreen search box (opt-in via
|
|
2728
2730
|
// isSearchModeToggleShown) that flips searchMode filter<->navigate live. Its icon
|
|
2729
2731
|
// reflects the current mode; clicking re-projects the current term in place.
|
|
2730
|
-
|
|
2732
|
+
u(this, "fullscreenModeToggle", null);
|
|
2731
2733
|
// Navigate-mode match navigator shown under the fullscreen search box: a result
|
|
2732
2734
|
// count ("3 of 12") plus prev/next buttons that step through matches. Touch has no
|
|
2733
2735
|
// Ctrl+Arrow shortcut, so these buttons are the on-screen substitute. Only built in
|
|
2734
2736
|
// searchMode 'navigate' (filter mode narrows the list, so it needs no jump UI).
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2737
|
+
u(this, "fullscreenNav", null);
|
|
2738
|
+
u(this, "fullscreenNavCount", null);
|
|
2739
|
+
u(this, "fullscreenNavPrev", null);
|
|
2740
|
+
u(this, "fullscreenNavNext", null);
|
|
2739
2741
|
// Releases this instance's page-scroll lock (null when not locked). The core
|
|
2740
2742
|
// helper is ref-counted; we hold at most one lock per instance. See lockBodyScroll().
|
|
2741
|
-
|
|
2743
|
+
u(this, "bodyScrollUnlock", null);
|
|
2742
2744
|
// Saved inline `overflow-x` of <html> while a fullscreen sheet clamps the host
|
|
2743
2745
|
// document's horizontal overflow (null when not clamped). See clampDocumentOverflowX().
|
|
2744
|
-
|
|
2746
|
+
u(this, "overflowXClamp", null);
|
|
2745
2747
|
// Detaches the visualViewport listener that shrinks the fullscreen sheet to sit
|
|
2746
2748
|
// above the soft keyboard (null when not attached). See observeKeyboardInset().
|
|
2747
|
-
|
|
2749
|
+
u(this, "keyboardInsetCleanup", null);
|
|
2748
2750
|
// True while a history entry is pushed for the open fullscreen sheet, so the phone
|
|
2749
2751
|
// Back gesture/button pops it (closing the sheet) instead of navigating the page.
|
|
2750
2752
|
// See pushOverlayHistory()/popOverlayHistory()/onOverlayPopstate().
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
+
u(this, "overlayHistoryActive", !1);
|
|
2754
|
+
u(this, "onOverlayPopstate", () => this.handleOverlayPopstate());
|
|
2753
2755
|
// Floating UI cleanup functions
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2756
|
+
u(this, "dropdownCleanup", null);
|
|
2757
|
+
u(this, "hintCleanup", null);
|
|
2758
|
+
u(this, "selectedPopoverCleanup", null);
|
|
2757
2759
|
// All hover tooltips (badge text, badge-remove buttons, action buttons), keyed by id.
|
|
2758
|
-
|
|
2760
|
+
u(this, "tooltips", /* @__PURE__ */ new Map());
|
|
2759
2761
|
// Full-label reveal shown when a clipped row's info button is tapped (fullscreen
|
|
2760
2762
|
// only). A manually-controlled popover — NOT a hover tooltip — so it stays put
|
|
2761
2763
|
// until explicitly dismissed (a hover tooltip's synthetic mouseleave on touch
|
|
2762
2764
|
// would flash it away). `labelRevealTrigger` tracks the button so a second tap
|
|
2763
2765
|
// toggles it off. See toggleLabelReveal() / hideLabelReveal().
|
|
2764
|
-
|
|
2765
|
-
|
|
2766
|
-
|
|
2766
|
+
u(this, "labelRevealTrigger", null);
|
|
2767
|
+
u(this, "labelRevealPanel", null);
|
|
2768
|
+
u(this, "labelRevealPopover", null);
|
|
2767
2769
|
// Transient message ("toast") surface — see showMessage(). Rendered above the panel
|
|
2768
2770
|
// so a veto reason (or any consumer feedback) is visible even in the fullscreen
|
|
2769
2771
|
// overlay, where page-level UI is hidden behind the sheet.
|
|
2770
|
-
|
|
2771
|
-
|
|
2772
|
-
|
|
2772
|
+
u(this, "messageEl", null);
|
|
2773
|
+
u(this, "messageCleanup", null);
|
|
2774
|
+
u(this, "messageTimer", null);
|
|
2773
2775
|
// Dismiss option tooltips the instant the list scrolls. Without this, a shown
|
|
2774
2776
|
// tooltip's floating-ui autoUpdate keeps chasing its anchor row as it scrolls
|
|
2775
2777
|
// (most visible under virtual scroll, where the row also recycles), so the
|
|
2776
2778
|
// tooltip visibly slides to the viewport edge before the next render clears it.
|
|
2777
2779
|
// Capturing so it catches scroll from the inner options container (scroll
|
|
2778
2780
|
// doesn't bubble). Same function ref → addEventListener dedupes across opens.
|
|
2779
|
-
|
|
2781
|
+
u(this, "onDropdownScroll", () => {
|
|
2780
2782
|
this.hideOptionTooltips(), this.hideLabelReveal();
|
|
2781
2783
|
});
|
|
2782
2784
|
// Virtual scroll instance
|
|
2783
|
-
|
|
2784
|
-
|
|
2785
|
-
|
|
2786
|
-
|
|
2785
|
+
u(this, "virtualScroll", null);
|
|
2786
|
+
u(this, "optionsContainer", null);
|
|
2787
|
+
u(this, "selectedPopoverVirtualScroll", null);
|
|
2788
|
+
u(this, "selectedPopoverContainer", null);
|
|
2787
2789
|
// DOM elements
|
|
2788
|
-
|
|
2789
|
-
|
|
2790
|
-
|
|
2791
|
-
|
|
2792
|
-
|
|
2793
|
-
|
|
2794
|
-
|
|
2790
|
+
u(this, "input");
|
|
2791
|
+
u(this, "dropdown");
|
|
2792
|
+
u(this, "dropdownInner");
|
|
2793
|
+
u(this, "badgesContainer");
|
|
2794
|
+
u(this, "counter");
|
|
2795
|
+
u(this, "hint");
|
|
2796
|
+
u(this, "selectedPopover");
|
|
2795
2797
|
// Document-level event handlers (stored for cleanup)
|
|
2796
|
-
|
|
2797
|
-
|
|
2798
|
+
u(this, "documentKeydownHandler", null);
|
|
2799
|
+
u(this, "documentClickHandler", null);
|
|
2798
2800
|
this.element = e, this.instanceId = `MS-${Math.random().toString(36).slice(2, 11)}`, this.options = {
|
|
2799
2801
|
// String options
|
|
2800
2802
|
searchHint: e.dataset.searchHint || "",
|
|
@@ -3335,9 +3337,9 @@ class xr {
|
|
|
3335
3337
|
const t = this.options.actionsPosition === "bottom" ? "bottom" : "top", o = this.options.actionsAlign ?? "stretch", i = ` ms__actions--${t}`, r = this.options.isActionsSticky ? " ms__actions--sticky" : "", n = this.options.actionsLayout === "wrap" ? " ms__actions--wrap" : "", a = ` ms__actions--align-${o}`, l = /* @__PURE__ */ new Map();
|
|
3336
3338
|
if (e.forEach((d, h) => {
|
|
3337
3339
|
if (!(d.getIsVisibleCallback ? d.getIsVisibleCallback(this) : d.isVisible ?? !0)) return;
|
|
3338
|
-
let
|
|
3339
|
-
d.getIsDisabledCallback ?
|
|
3340
|
-
const g =
|
|
3340
|
+
let m;
|
|
3341
|
+
d.getIsDisabledCallback ? m = d.getIsDisabledCallback(this) : d.isDisabled !== void 0 ? m = d.isDisabled : m = this.getBuiltInActionDisabled(d.action);
|
|
3342
|
+
const g = m ? " disabled" : "", b = d.getTextCallback ? d.getTextCallback(this) : d.text;
|
|
3341
3343
|
let y = "";
|
|
3342
3344
|
if (d.getClassCallback) {
|
|
3343
3345
|
const k = d.getClassCallback(this);
|
|
@@ -3353,8 +3355,8 @@ class xr {
|
|
|
3353
3355
|
const o = this.getItemValue(e), i = this.getItemDisplayValue(e), r = this.getItemIcon(e), n = this.getItemSubtitle(e), a = this.getItemDisabled(e), l = this.selectedValues.has(String(o)), c = t === this.focusedIndex, d = this.matchingIndices.has(t), h = ["ms__option"];
|
|
3354
3356
|
l && h.push("ms__option--selected"), c && h.push("ms__option--focused"), d && h.push("ms__option--matched"), a && h.push("ms__option--disabled");
|
|
3355
3357
|
const f = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "";
|
|
3356
|
-
let
|
|
3357
|
-
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (
|
|
3358
|
+
let m = `<div class="${h.join(" ")}" data-value="${o}" data-index="${t}"${f}>`;
|
|
3359
|
+
if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && (m += `<input type="checkbox" class="ms__checkbox" ${l ? "checked" : ""} ${a ? "disabled" : ""}>`), m += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
|
|
3358
3360
|
const g = {
|
|
3359
3361
|
index: t,
|
|
3360
3362
|
isSelected: l,
|
|
@@ -3364,10 +3366,10 @@ class xr {
|
|
|
3364
3366
|
...Ot(this.presentationMode),
|
|
3365
3367
|
isTreeNode: !1
|
|
3366
3368
|
}, b = this.options.renderOptionContentCallback(e, g);
|
|
3367
|
-
typeof b == "string" ?
|
|
3369
|
+
typeof b == "string" ? m += b : m += b.outerHTML;
|
|
3368
3370
|
} else
|
|
3369
|
-
r && (
|
|
3370
|
-
return
|
|
3371
|
+
r && (m += `<span class="ms__option-icon">${r}</span>`), m += '<div class="ms__option-text">', m += `<div class="ms__option-title">${this.highlightMatch(i, this.searchTerm)}</div>`, n && (m += `<div class="ms__option-subtitle">${n}</div>`), m += "</div>";
|
|
3372
|
+
return m += this.renderOptionInfoButton(), m += "</div>", m += "</div>", m;
|
|
3371
3373
|
}
|
|
3372
3374
|
/**
|
|
3373
3375
|
* Trailing info affordance for an option row, emitted only for the fullscreen
|
|
@@ -3388,15 +3390,15 @@ class xr {
|
|
|
3388
3390
|
* chevron/toggle — every node is just a normal, selectable option.
|
|
3389
3391
|
*/
|
|
3390
3392
|
renderTreeNode(e, t) {
|
|
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",
|
|
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"),
|
|
3393
|
+
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", m = 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"];
|
|
3394
|
+
w.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), h && w.push("ms__option--selected"), f && w.push("ms__option--indeterminate"), m && w.push("ms__option--focused"), g && w.push("ms__option--matched"), l && w.push("ms__option--disabled"), b || w.push("ms__option--tree-unselectable");
|
|
3393
3395
|
const k = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", P = b ? "" : ' data-selectable="false"';
|
|
3394
3396
|
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}>`;
|
|
3395
3397
|
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) {
|
|
3396
|
-
const
|
|
3398
|
+
const D = {
|
|
3397
3399
|
index: t,
|
|
3398
3400
|
isSelected: h,
|
|
3399
|
-
isFocused:
|
|
3401
|
+
isFocused: m,
|
|
3400
3402
|
isMatched: g,
|
|
3401
3403
|
isDisabled: l,
|
|
3402
3404
|
...Ot(this.presentationMode),
|
|
@@ -3411,7 +3413,7 @@ class xr {
|
|
|
3411
3413
|
path: e.path,
|
|
3412
3414
|
isSelectable: b,
|
|
3413
3415
|
isIndeterminate: f
|
|
3414
|
-
}, R = this.options.renderOptionContentCallback(o,
|
|
3416
|
+
}, R = this.options.renderOptionContentCallback(o, D);
|
|
3415
3417
|
M += typeof R == "string" ? R : R.outerHTML;
|
|
3416
3418
|
} else
|
|
3417
3419
|
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>";
|
|
@@ -3638,45 +3640,67 @@ class xr {
|
|
|
3638
3640
|
}
|
|
3639
3641
|
handleKeydown(e) {
|
|
3640
3642
|
var t;
|
|
3641
|
-
if (!this.
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3643
|
+
if (!(this.options.keydownCallback && this.options.keydownCallback({
|
|
3644
|
+
event: e,
|
|
3645
|
+
key: e.key,
|
|
3646
|
+
isOpen: this.isOpen,
|
|
3647
|
+
presentation: this.presentationMode,
|
|
3648
|
+
searchTerm: this.searchTerm,
|
|
3649
|
+
focusedIndex: this.focusedIndex,
|
|
3650
|
+
focusedOption: (this.focusedIndex >= 0 ? this.filteredOptions[this.focusedIndex] : null) ?? null,
|
|
3651
|
+
filteredOptions: this.filteredOptions,
|
|
3652
|
+
selectedValues: [...this.selectedValues],
|
|
3653
|
+
controller: this.getKeyboardController()
|
|
3654
|
+
}) === !0)) {
|
|
3655
|
+
if (!this.isOpen) {
|
|
3656
|
+
(e.key === "Enter" || e.key === "ArrowDown") && (e.preventDefault(), this.open());
|
|
3649
3657
|
return;
|
|
3650
3658
|
}
|
|
3651
|
-
|
|
3652
|
-
|
|
3653
|
-
|
|
3654
|
-
|
|
3655
|
-
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
|
|
3679
|
-
|
|
3659
|
+
if (!this.options.isSearchEnabled) {
|
|
3660
|
+
const o = e.key.length === 1 || e.key === "Backspace" || e.key === "Delete", i = ["ArrowUp", "ArrowDown", "PageUp", "PageDown", "Home", "End", "Enter", "Escape", "Tab"].includes(e.key);
|
|
3661
|
+
if (o && !i) {
|
|
3662
|
+
e.preventDefault();
|
|
3663
|
+
return;
|
|
3664
|
+
}
|
|
3665
|
+
}
|
|
3666
|
+
switch (e.key) {
|
|
3667
|
+
case "ArrowDown":
|
|
3668
|
+
e.preventDefault(), e.ctrlKey || e.metaKey ? this.focusNextMatch() : this.focusNext();
|
|
3669
|
+
break;
|
|
3670
|
+
case "ArrowUp":
|
|
3671
|
+
e.preventDefault(), e.ctrlKey || e.metaKey ? this.focusPreviousMatch() : this.focusPrevious();
|
|
3672
|
+
break;
|
|
3673
|
+
case "Enter":
|
|
3674
|
+
e.preventDefault(), this.focusedIndex >= 0 ? this.toggleOption(this.filteredOptions[this.focusedIndex]) : this.options.isAddNewAllowed && this.options.addNewCallback && this.input.value.trim() && this.handleAddNew(this.input.value.trim()), this.presentationMode === "fullscreen" && ((t = this.fullscreenSearchInput) == null || t.blur());
|
|
3675
|
+
break;
|
|
3676
|
+
case "Escape":
|
|
3677
|
+
e.preventDefault(), this.showSelectedPopover ? this.hideSelectedPopover() : this.input.value ? this.clearSearch() : this.close();
|
|
3678
|
+
break;
|
|
3679
|
+
case "Tab":
|
|
3680
|
+
this.close();
|
|
3681
|
+
break;
|
|
3682
|
+
case "PageUp":
|
|
3683
|
+
e.preventDefault(), this.focusPageUp();
|
|
3684
|
+
break;
|
|
3685
|
+
case "PageDown":
|
|
3686
|
+
e.preventDefault(), this.focusPageDown();
|
|
3687
|
+
break;
|
|
3688
|
+
case "Home":
|
|
3689
|
+
case "End": {
|
|
3690
|
+
const o = e.target instanceof HTMLInputElement ? e.target : null;
|
|
3691
|
+
let i;
|
|
3692
|
+
if (!o)
|
|
3693
|
+
i = !0;
|
|
3694
|
+
else if (o.selectionStart !== o.selectionEnd)
|
|
3695
|
+
i = !1;
|
|
3696
|
+
else {
|
|
3697
|
+
const r = o.selectionStart ?? 0;
|
|
3698
|
+
i = e.key === "Home" ? r === 0 : r === o.value.length;
|
|
3699
|
+
}
|
|
3700
|
+
i && (e.preventDefault(), e.key === "Home" ? this.focusFirst() : this.focusLast());
|
|
3701
|
+
break;
|
|
3702
|
+
}
|
|
3703
|
+
}
|
|
3680
3704
|
}
|
|
3681
3705
|
}
|
|
3682
3706
|
handleDropdownClick(e) {
|
|
@@ -3818,6 +3842,49 @@ class xr {
|
|
|
3818
3842
|
const e = Array.from(this.matchingIndices).sort((i, r) => i - r), t = e.findIndex((i) => i === this.focusedIndex), o = t <= 0 ? e.length - 1 : t - 1;
|
|
3819
3843
|
this.focusBy(() => e[o]), W.debug(`[${this.instanceId}] Jumped to previous match: index ${this.focusedIndex} (${t + 1} of ${e.length})`);
|
|
3820
3844
|
}
|
|
3845
|
+
/** Lazily build (and cache) the imperative facade passed to `keydownCallback`. Bound to the
|
|
3846
|
+
* same private actions the built-in key handling uses, so consumer shortcuts behave identically. */
|
|
3847
|
+
getKeyboardController() {
|
|
3848
|
+
return this.keyboardController ? this.keyboardController : (this.keyboardController = {
|
|
3849
|
+
focusNext: () => this.focusNext(),
|
|
3850
|
+
focusPrevious: () => this.focusPrevious(),
|
|
3851
|
+
focusFirst: () => this.focusFirst(),
|
|
3852
|
+
focusLast: () => this.focusLast(),
|
|
3853
|
+
focusPageUp: () => this.focusPageUp(),
|
|
3854
|
+
focusPageDown: () => this.focusPageDown(),
|
|
3855
|
+
focusNextMatch: () => this.focusNextMatch(),
|
|
3856
|
+
focusPreviousMatch: () => this.focusPreviousMatch(),
|
|
3857
|
+
focusIndex: (e) => this.focusBy(() => e, 1),
|
|
3858
|
+
toggleFocused: () => {
|
|
3859
|
+
this.focusedIndex >= 0 && this.toggleOption(this.filteredOptions[this.focusedIndex]);
|
|
3860
|
+
},
|
|
3861
|
+
toggleValue: (e) => {
|
|
3862
|
+
const t = this.allOptions.find((o) => String(this.getItemValue(o)) === String(e));
|
|
3863
|
+
t && this.toggleOption(t);
|
|
3864
|
+
},
|
|
3865
|
+
selectValue: (e) => {
|
|
3866
|
+
if (this.selectedValues.has(String(e))) return;
|
|
3867
|
+
const t = this.allOptions.find((o) => String(this.getItemValue(o)) === String(e));
|
|
3868
|
+
t && this.toggleOption(t);
|
|
3869
|
+
},
|
|
3870
|
+
deselectValue: (e) => {
|
|
3871
|
+
if (!this.selectedValues.has(String(e))) return;
|
|
3872
|
+
const t = this.selectedOptions.get(String(e)) ?? this.allOptions.find((o) => String(this.getItemValue(o)) === String(e));
|
|
3873
|
+
t && this.toggleOption(t);
|
|
3874
|
+
},
|
|
3875
|
+
open: () => this.open(),
|
|
3876
|
+
close: () => this.close(),
|
|
3877
|
+
setSearch: (e) => {
|
|
3878
|
+
this.input.value = e, this.fullscreenSearchInput && (this.fullscreenSearchInput.value = e), this.handleSearch(e);
|
|
3879
|
+
},
|
|
3880
|
+
clearSearch: () => this.clearSearch()
|
|
3881
|
+
}, this.keyboardController);
|
|
3882
|
+
}
|
|
3883
|
+
/** Clear the search box (both the main input and the fullscreen search) and reset the visible
|
|
3884
|
+
* list. Shared by Escape and the keyboard controller. */
|
|
3885
|
+
clearSearch() {
|
|
3886
|
+
this.input.value = "", this.fullscreenSearchInput && (this.fullscreenSearchInput.value = ""), this.searchTerm = "", this.resetVisibleToAll(), this.matchingIndices.clear(), this.focusedIndex = -1, this.renderDropdown(), this.updateFullscreenNav(), this.updateFullscreenSearchClear();
|
|
3887
|
+
}
|
|
3821
3888
|
scrollToFocused() {
|
|
3822
3889
|
if (this.virtualScroll && this.focusedIndex >= 0) {
|
|
3823
3890
|
this.virtualScroll.scrollToIndex(this.focusedIndex);
|
|
@@ -4581,11 +4648,11 @@ ${o}` : t;
|
|
|
4581
4648
|
trigger: f,
|
|
4582
4649
|
content: this.buildBadgeTooltipContent(c)
|
|
4583
4650
|
});
|
|
4584
|
-
const
|
|
4651
|
+
const m = this.getItemBadgeDisplayValue(c);
|
|
4585
4652
|
this.spawnTooltip({
|
|
4586
4653
|
id: h,
|
|
4587
4654
|
trigger: a,
|
|
4588
|
-
content: this.buildRemoveButtonTooltipText(
|
|
4655
|
+
content: this.buildRemoveButtonTooltipText(m, c),
|
|
4589
4656
|
// Keep parent badge tooltip from overlapping the remove-button tooltip.
|
|
4590
4657
|
onBeforeShow: () => {
|
|
4591
4658
|
var g;
|
|
@@ -4873,7 +4940,7 @@ function Or(s, e, t) {
|
|
|
4873
4940
|
}
|
|
4874
4941
|
return i.push(r), o.push(i), o;
|
|
4875
4942
|
}
|
|
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 = [
|
|
4943
|
+
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: var(--ms-fullscreen-header-gap);--ms-fullscreen-mode-toggle-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-mode-toggle-bg: transparent;--ms-fullscreen-mode-toggle-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-size: calc(3.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-color: var(--ms-dropdown-text-color);--ms-fullscreen-close-bg: transparent;--ms-fullscreen-close-border: none;--ms-fullscreen-close-border-radius: 50%;--ms-fullscreen-close-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-edge-nudge: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-icon-size: calc(1.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-color: var(--ms-accent-color);--ms-fullscreen-info-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-gap: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-padding-top: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-font-size: calc(1.3 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-nav-btn-size: calc(3.2 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-color: var(--ms-dropdown-text-color);--ms-fullscreen-nav-btn-bg: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-btn-bg-hover: color-mix(in srgb, var(--ms-accent-color) 22%, transparent);--ms-icon-chevron: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 15l7-7 7 7' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");--ms-icon-info: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.3' fill='black'/><path d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");--ms-fullscreen-tree-base-indent: calc(.7 * var(--ms-fullscreen-rem));--ms-fullscreen-tree-indent: calc(1.2 * var(--ms-fullscreen-rem));--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: 0;--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18'/><path d='m6 6 12 12'/></svg>");--ms-icon-search-clear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m13.5 8.5-5 5'/><path d='m8.5 8.5 5 5'/><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-search: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--ms-icon-remove);--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-message-bg: var(--ms-message-info-bg);--ms-message-color: var(--ms-message-info-color);--ms-message-border: 1px solid transparent;--ms-message-border-radius: var(--ms-border-radius-lg);--ms-message-padding: calc(1 * var(--ms-rem)) calc(1.4 * var(--ms-rem));--ms-message-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-message-font-weight: var(--base-font-weight-medium, 500);--ms-message-max-width: calc(40 * var(--ms-rem));--ms-message-shadow: 0 4px 16px rgb(0 0 0 / .18);--ms-message-fullscreen-offset: calc(2.4 * var(--ms-fullscreen-rem));--ms-message-z-index: var(--ms-z-index-fullscreen-tooltip);--ms-message-info-bg: var(--ms-tooltip-bg);--ms-message-info-color: var(--ms-tooltip-text-color);--ms-message-warning-bg: var(--base-warning-bg, #f59e0b);--ms-message-warning-color: var(--base-warning-color, #1a1a1a);--ms-message-error-bg: var(--base-danger-bg, #ef4444);--ms-message-error-color: var(--base-danger-color, #ffffff);--ms-message-success-bg: var(--base-success-bg, #10b981);--ms-message-success-color: var(--base-success-color, #ffffff);--ms-z-index-popover: 10000;--ms-selected-popover-width: 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)) calc(1.2 * var(--ms-rem));--ms-action-btn-padding: calc(.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{position:fixed;top:0;inset-inline-start:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__dropdown--fullscreen .ms__dropdown-inner{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}.ms__dropdown--fullscreen .ms__options{flex:1 1 0;min-height:0;height:auto;max-height:none;overflow-y:auto;padding-bottom:var(--ms-option-gap)}.ms__dropdown--fullscreen .ms__actions{flex:0 0 auto}.ms__fullscreen-header,.ms__selected-popover--fullscreen .ms__selected-popover-header{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--ms-fullscreen-header-gap);min-height:var(--ms-fullscreen-header-min-height);padding:var(--ms-fullscreen-header-padding);background:var(--ms-fullscreen-header-bg);border-bottom:var(--ms-fullscreen-header-border)}.ms__fullscreen-header{align-content:flex-start}.ms__fullscreen-header>.ms__fullscreen-search-wrapper{min-height:var(--ms-fullscreen-header-min-height)}.ms__fullscreen-nav{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ms-fullscreen-nav-gap);padding-top:var(--ms-fullscreen-nav-padding-top)}.ms__fullscreen-nav-count{font-size:var(--ms-fullscreen-nav-count-font-size);color:var(--ms-fullscreen-nav-count-color)}.ms__fullscreen-nav-controls{display:flex;align-items:center;gap:var(--ms-fullscreen-nav-gap)}.ms__fullscreen-nav-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-nav-btn-size);height:var(--ms-fullscreen-nav-btn-size);padding:0;color:var(--ms-fullscreen-nav-btn-color);background:var(--ms-fullscreen-nav-btn-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-nav-btn:hover:not(:disabled){background:var(--ms-fullscreen-nav-btn-bg-hover)}.ms__fullscreen-nav-btn:disabled{opacity:.4;cursor:default}.ms__fullscreen-nav-btn:before{content:"";display:block;width:var(--ms-fullscreen-nav-btn-icon-size);height:var(--ms-fullscreen-nav-btn-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat}.ms__fullscreen-nav-btn--next:before{transform:scaleY(-1)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 0;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex;align-items:center}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-mode-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-mode-toggle-size);height:var(--ms-fullscreen-mode-toggle-size);margin-inline-end:var(--ms-fullscreen-mode-toggle-gap);margin-inline-start:calc((var(--ms-fullscreen-close-size) - var(--ms-fullscreen-mode-toggle-size)) / 2 - var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-mode-toggle-color);background:var(--ms-fullscreen-mode-toggle-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-mode-toggle:hover{background:var(--ms-fullscreen-mode-toggle-bg-hover)}.ms__fullscreen-mode-toggle:before{content:"";display:block;width:var(--ms-fullscreen-mode-toggle-icon-size);height:var(--ms-fullscreen-mode-toggle-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat;mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat}.ms__fullscreen-mode-toggle[data-mode=navigate]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-search)}.ms__fullscreen-mode-toggle[data-mode=filter]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-filter)}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;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 = [
|
|
4877
4944
|
"top",
|
|
4878
4945
|
"top-start",
|
|
4879
4946
|
"top-end",
|
|
@@ -4886,7 +4953,7 @@ const Zs = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
4886
4953
|
"right",
|
|
4887
4954
|
"right-start",
|
|
4888
4955
|
"right-end"
|
|
4889
|
-
],
|
|
4956
|
+
], z = () => go(), Pr = [
|
|
4890
4957
|
// ── Strings (cosmetic → update). Optional ones are nullable: absent → null ─
|
|
4891
4958
|
{ configKey: "searchHint", attribute: "search-hint", converter: A({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
|
|
4892
4959
|
{ 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.' },
|
|
@@ -5007,37 +5074,38 @@ const Zs = `@layer variables,component,overrides;@layer variables{:host{display:
|
|
|
5007
5074
|
` }), 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`.' },
|
|
5008
5075
|
{ 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." },
|
|
5009
5076
|
// ── Callbacks: data shape (structural → reinit) ──────────────────────────
|
|
5010
|
-
{ configKey: "getValueCallback", converter:
|
|
5011
|
-
{ configKey: "getPathCallback", converter:
|
|
5012
|
-
{ configKey: "getGroupCallback", converter:
|
|
5013
|
-
{ configKey: "getDisabledCallback", converter:
|
|
5014
|
-
{ configKey: "getIsSelectableCallback", converter:
|
|
5015
|
-
{ configKey: "getSearchValueCallback", converter:
|
|
5016
|
-
{ configKey: "searchCallback", converter:
|
|
5077
|
+
{ configKey: "getValueCallback", converter: z(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
|
|
5078
|
+
{ configKey: "getPathCallback", converter: z(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
|
|
5079
|
+
{ configKey: "getGroupCallback", converter: z(), on: "reinit", type: "(item: unknown) => string", description: "Extract the group name from an option (overrides groupMember)." },
|
|
5080
|
+
{ configKey: "getDisabledCallback", converter: z(), on: "reinit", type: "(item: unknown) => boolean", description: "Whether an option is disabled (overrides disabledMember)." },
|
|
5081
|
+
{ configKey: "getIsSelectableCallback", converter: z(), on: "reinit", type: "(node: unknown) => boolean", description: "Whether a tree node can be selected (overrides is-selectable-member)." },
|
|
5082
|
+
{ configKey: "getSearchValueCallback", converter: z(), on: "reinit", type: "(item: unknown) => string", description: "Text an option is searched against (overrides searchValueMember)." },
|
|
5083
|
+
{ configKey: "searchCallback", converter: z(), on: "reinit", type: "(searchTerm: string, signal?: AbortSignal) => Promise<unknown[]>", description: "Custom / async search; return the filtered options." },
|
|
5017
5084
|
// ── Callbacks: display / render (cosmetic → update) ──────────────────────
|
|
5018
|
-
{ configKey: "getDisplayValueCallback", converter:
|
|
5019
|
-
{ configKey: "getBadgeDisplayCallback", converter:
|
|
5020
|
-
{ configKey: "getBadgeClassCallback", converter:
|
|
5021
|
-
{ configKey: "getIconCallback", converter:
|
|
5022
|
-
{ configKey: "getSubtitleCallback", converter:
|
|
5023
|
-
{ configKey: "getFullTitleCallback", converter:
|
|
5024
|
-
{ configKey: "getCounterCallback", converter:
|
|
5025
|
-
{ configKey: "getValueFormatCallback", converter:
|
|
5026
|
-
{ configKey: "getBadgeTooltipCallback", converter:
|
|
5027
|
-
{ configKey: "getOptionTooltipCallback", converter:
|
|
5028
|
-
{ configKey: "getRemoveButtonTooltipCallback", converter:
|
|
5029
|
-
{ configKey: "getSelectedItemClassCallback", converter:
|
|
5030
|
-
{ configKey: "renderOptionContentCallback", converter:
|
|
5031
|
-
{ configKey: "renderBadgeContentCallback", converter:
|
|
5032
|
-
{ configKey: "renderGroupLabelContentCallback", converter:
|
|
5033
|
-
{ configKey: "renderSelectedContentCallback", converter:
|
|
5034
|
-
{ configKey: "renderSelectedItemContentCallback", converter:
|
|
5035
|
-
{ configKey: "customStylesCallback", converter:
|
|
5085
|
+
{ configKey: "getDisplayValueCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Compute the display label for an option (overrides displayValueMember)." },
|
|
5086
|
+
{ configKey: "getBadgeDisplayCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Compute the text shown on an option badge." },
|
|
5087
|
+
{ configKey: "getBadgeClassCallback", converter: z(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for an option badge." },
|
|
5088
|
+
{ configKey: "getIconCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Icon for an option (overrides iconMember)." },
|
|
5089
|
+
{ configKey: "getSubtitleCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Subtitle for an option (overrides subtitleMember)." },
|
|
5090
|
+
{ configKey: "getFullTitleCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Full title for an option (used by badges when show-badge-full-title is on)." },
|
|
5091
|
+
{ configKey: "getCounterCallback", converter: z(), on: "update", type: "(count: number, moreCount?: number) => string", description: "Render the selected-count label." },
|
|
5092
|
+
{ configKey: "getValueFormatCallback", converter: z(), on: "update", type: "(selectedValues: (string | number)[]) => string", description: "Serialize the selected values for form submission." },
|
|
5093
|
+
{ configKey: "getBadgeTooltipCallback", converter: z(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option badge." },
|
|
5094
|
+
{ configKey: "getOptionTooltipCallback", converter: z(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option row." },
|
|
5095
|
+
{ configKey: "getRemoveButtonTooltipCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Tooltip text for a badge remove button." },
|
|
5096
|
+
{ configKey: "getSelectedItemClassCallback", converter: z(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for a selected item." },
|
|
5097
|
+
{ configKey: "renderOptionContentCallback", converter: z(), on: "update", type: "(item: unknown, context: OptionContentRenderContext) => string | HTMLElement", description: "Custom render for an option row; may return HTML or an element." },
|
|
5098
|
+
{ configKey: "renderBadgeContentCallback", converter: z(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for a badge; may return HTML or an element." },
|
|
5099
|
+
{ configKey: "renderGroupLabelContentCallback", converter: z(), on: "update", type: "(groupName: string) => string | HTMLElement", description: "Customize a group label; may return an HTML string or element." },
|
|
5100
|
+
{ configKey: "renderSelectedContentCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Custom render for the whole selected area." },
|
|
5101
|
+
{ configKey: "renderSelectedItemContentCallback", converter: z(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Custom render for one selected item." },
|
|
5102
|
+
{ configKey: "customStylesCallback", converter: z(), on: "update", type: "() => string", description: "Returns a CSS string injected into the component via a replaceable style slot (§12.8)." },
|
|
5036
5103
|
// ── Callbacks: before-hooks (behavior-shaping) ───────────────────────────
|
|
5037
|
-
{ configKey: "beforeSearchCallback", converter:
|
|
5038
|
-
{ configKey: "beforeSelectCallback", converter:
|
|
5039
|
-
{ configKey: "beforeDeselectCallback", converter:
|
|
5040
|
-
{ configKey: "addNewCallback", converter:
|
|
5104
|
+
{ configKey: "beforeSearchCallback", converter: z(), on: "update", type: "(searchTerm: string) => string | null", description: "Runs before a search; return a rewritten term or null to veto." },
|
|
5105
|
+
{ configKey: "beforeSelectCallback", converter: z(), 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." },
|
|
5106
|
+
{ configKey: "beforeDeselectCallback", converter: z(), 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." },
|
|
5107
|
+
{ configKey: "addNewCallback", converter: z(), on: "update", type: "(value: string) => unknown | Promise<unknown>", description: "Create a new option from the typed text." },
|
|
5108
|
+
{ configKey: "keydownCallback", converter: z(), on: "update", type: "(context: MultiSelectKeydownContext) => boolean | void", description: "Intercept keydown before built-in handling; return true to suppress the default. Gets the event, current state, and an imperative controller." }
|
|
5041
5109
|
], Mr = [
|
|
5042
5110
|
{ name: "select", description: "An option was selected. `detail.option` is the selected option; `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
|
|
5043
5111
|
{ name: "deselect", description: "An option was removed from the selection. `detail.option` is that option." },
|
|
@@ -5058,13 +5126,13 @@ const Ar = [
|
|
|
5058
5126
|
{ key: "subtitleMember", member: "subtitle", callbackKey: "getSubtitleCallback" },
|
|
5059
5127
|
{ key: "disabledMember", member: "disabled", callbackKey: "getDisabledCallback" }
|
|
5060
5128
|
];
|
|
5061
|
-
var J,
|
|
5129
|
+
var J, N, me, et, tt, st, ze, Ne, ke, _, ct, Kt, Ft, eo, to, so, dt, Wt, oo, io, ro, jt, no, ao, Ut, Gt;
|
|
5062
5130
|
class Ge extends Nt {
|
|
5063
5131
|
constructor() {
|
|
5064
5132
|
super();
|
|
5065
5133
|
E(this, _);
|
|
5066
5134
|
E(this, J);
|
|
5067
|
-
E(this,
|
|
5135
|
+
E(this, N);
|
|
5068
5136
|
E(this, me);
|
|
5069
5137
|
E(this, et, null);
|
|
5070
5138
|
// Dev-mode customStylesCallback lint: unknown --ms-* names already warned about.
|
|
@@ -5074,7 +5142,7 @@ class Ge extends Nt {
|
|
|
5074
5142
|
E(this, ze, !1);
|
|
5075
5143
|
E(this, Ne);
|
|
5076
5144
|
E(this, ke);
|
|
5077
|
-
|
|
5145
|
+
V(this, J, this.attachShadow({ mode: "open" })), Yo(p(this, J), Zs), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-ready", "")) : this.setAttribute("data-ready", "");
|
|
5078
5146
|
}
|
|
5079
5147
|
/**
|
|
5080
5148
|
* Called by the browser when the surrounding <form> is reset. Clears the
|
|
@@ -5082,7 +5150,7 @@ class Ge extends Nt {
|
|
|
5082
5150
|
*/
|
|
5083
5151
|
formResetCallback() {
|
|
5084
5152
|
var t;
|
|
5085
|
-
(t = p(this,
|
|
5153
|
+
(t = p(this, N)) == null || t.clearAll();
|
|
5086
5154
|
}
|
|
5087
5155
|
// ── core lifecycle hooks ──────────────────────────────────────────────────
|
|
5088
5156
|
/** Runtime writing-direction switch (core observes `dir`): re-mirror the live
|
|
@@ -5091,7 +5159,7 @@ class Ge extends Nt {
|
|
|
5091
5159
|
* and the panels' explicit `dir`). The initial direction is read by the build. */
|
|
5092
5160
|
directionChanged(t) {
|
|
5093
5161
|
var o;
|
|
5094
|
-
(o = p(this,
|
|
5162
|
+
(o = p(this, N)) == null || o.refreshDirection();
|
|
5095
5163
|
}
|
|
5096
5164
|
/** Structural change (or first connect): mirror CSS vars, then (re)build the picker. */
|
|
5097
5165
|
reinit() {
|
|
@@ -5103,16 +5171,16 @@ class Ge extends Nt {
|
|
|
5103
5171
|
const o = {};
|
|
5104
5172
|
for (const [i, r] of Object.entries(t))
|
|
5105
5173
|
Ps.has(i) || (o[i] = r === null ? void 0 : r);
|
|
5106
|
-
p(this,
|
|
5174
|
+
p(this, N) && Object.keys(o).length > 0 && (p(this, N).updateOptions(o) || x(this, _, Kt).call(this)), "mobilePresentation" in t && x(this, _, ct).call(this, zt());
|
|
5107
5175
|
}
|
|
5108
5176
|
/** Activate: ensure the picker exists (a DOM move destroyed it in disconnect()). */
|
|
5109
5177
|
connect() {
|
|
5110
|
-
p(this,
|
|
5178
|
+
p(this, N) || x(this, _, Ft).call(this);
|
|
5111
5179
|
}
|
|
5112
5180
|
/** Deactivate: tear the picker down (rebuilt on the next connect). */
|
|
5113
5181
|
disconnect() {
|
|
5114
5182
|
var t;
|
|
5115
|
-
(t = p(this,
|
|
5183
|
+
(t = p(this, N)) == null || t.destroy(), V(this, N, void 0);
|
|
5116
5184
|
}
|
|
5117
5185
|
/**
|
|
5118
5186
|
* Device/viewport/orientation changed (core §12.9). Overriding this opts the
|
|
@@ -5135,21 +5203,21 @@ class Ge extends Nt {
|
|
|
5135
5203
|
}
|
|
5136
5204
|
get selectedValue() {
|
|
5137
5205
|
var t;
|
|
5138
|
-
return this.flush(), ((t = p(this,
|
|
5206
|
+
return this.flush(), ((t = p(this, N)) == null ? void 0 : t.selectedValue) ?? null;
|
|
5139
5207
|
}
|
|
5140
5208
|
get selectedItem() {
|
|
5141
5209
|
var t;
|
|
5142
|
-
return this.flush(), ((t = p(this,
|
|
5210
|
+
return this.flush(), ((t = p(this, N)) == null ? void 0 : t.selectedItem) ?? null;
|
|
5143
5211
|
}
|
|
5144
5212
|
getSelected() {
|
|
5145
|
-
return this.flush(), p(this,
|
|
5213
|
+
return this.flush(), p(this, N) ? p(this, N).getSelected() : [];
|
|
5146
5214
|
}
|
|
5147
5215
|
setSelected(t, o = {}) {
|
|
5148
5216
|
var i;
|
|
5149
|
-
this.flush(), (i = p(this,
|
|
5217
|
+
this.flush(), (i = p(this, N)) == null || i.setSelected(t, o);
|
|
5150
5218
|
}
|
|
5151
5219
|
getValue() {
|
|
5152
|
-
return this.flush(), p(this,
|
|
5220
|
+
return this.flush(), p(this, N) ? p(this, N).getValue() : null;
|
|
5153
5221
|
}
|
|
5154
5222
|
/**
|
|
5155
5223
|
* Surface a transient message ("toast") on top of the component — visible even in the
|
|
@@ -5160,35 +5228,35 @@ class Ge extends Nt {
|
|
|
5160
5228
|
*/
|
|
5161
5229
|
showMessage(t, o) {
|
|
5162
5230
|
var i;
|
|
5163
|
-
this.flush(), (i = p(this,
|
|
5231
|
+
this.flush(), (i = p(this, N)) == null || i.showMessage(t, o);
|
|
5164
5232
|
}
|
|
5165
5233
|
/** Dismiss the transient message shown by {@link showMessage}, if any. */
|
|
5166
5234
|
hideMessage() {
|
|
5167
5235
|
var t;
|
|
5168
|
-
(t = p(this,
|
|
5236
|
+
(t = p(this, N)) == null || t.hideMessage();
|
|
5169
5237
|
}
|
|
5170
5238
|
destroy() {
|
|
5171
5239
|
var t;
|
|
5172
|
-
(t = p(this,
|
|
5240
|
+
(t = p(this, N)) == null || t.destroy();
|
|
5173
5241
|
}
|
|
5174
5242
|
}
|
|
5175
|
-
J = new WeakMap(),
|
|
5243
|
+
J = new WeakMap(), N = 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. */
|
|
5176
5244
|
ct = function(t) {
|
|
5177
5245
|
var r;
|
|
5178
5246
|
const o = this.config.mobilePresentation ?? "auto", i = oi(o, t);
|
|
5179
|
-
(r = p(this,
|
|
5247
|
+
(r = p(this, N)) == null || r.setPresentation(i === "modal" ? "fullscreen" : i);
|
|
5180
5248
|
}, // ── picker lifecycle ──────────────────────────────────────────────────────
|
|
5181
5249
|
Kt = function() {
|
|
5182
5250
|
var t;
|
|
5183
|
-
(t = p(this,
|
|
5251
|
+
(t = p(this, N)) == null || t.destroy(), V(this, N, void 0), x(this, _, Ft).call(this);
|
|
5184
5252
|
}, Ft = function() {
|
|
5185
5253
|
x(this, _, eo).call(this), x(this, _, no).call(this);
|
|
5186
5254
|
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,
|
|
5255
|
+
o && o.length > 0 ? p(this, me).dataset.initialValues = JSON.stringify(o) : delete p(this, me).dataset.initialValues, V(this, N, new xr(p(this, me), t)), x(this, _, Wt).call(this), x(this, _, Ut).call(this), x(this, _, ct).call(this, zt());
|
|
5188
5256
|
}, eo = function() {
|
|
5189
5257
|
if (p(this, me)) return;
|
|
5190
5258
|
const t = document.createElement("div");
|
|
5191
|
-
t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), p(this, J).appendChild(t),
|
|
5259
|
+
t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), p(this, J).appendChild(t), V(this, et, Jo(p(this, J), { position: "first", className: "ms-custom-styles" })), V(this, me, t);
|
|
5192
5260
|
}, /**
|
|
5193
5261
|
* Build the picker config from the merged `this.config`, minus the keys the
|
|
5194
5262
|
* picker doesn't own, plus the runtime wiring (event bridges, container, host,
|
|
@@ -5219,14 +5287,14 @@ to = function() {
|
|
|
5219
5287
|
var r;
|
|
5220
5288
|
this.emit("select", {
|
|
5221
5289
|
option: i,
|
|
5222
|
-
selectedOptions: ((r = p(this,
|
|
5290
|
+
selectedOptions: ((r = p(this, N)) == null ? void 0 : r.getSelected()) ?? [],
|
|
5223
5291
|
selectedValues: x(this, _, dt).call(this)
|
|
5224
5292
|
});
|
|
5225
5293
|
}, t.onDeselect = (i) => {
|
|
5226
5294
|
var r;
|
|
5227
5295
|
this.emit("deselect", {
|
|
5228
5296
|
option: i,
|
|
5229
|
-
selectedOptions: ((r = p(this,
|
|
5297
|
+
selectedOptions: ((r = p(this, N)) == null ? void 0 : r.getSelected()) ?? [],
|
|
5230
5298
|
selectedValues: x(this, _, dt).call(this)
|
|
5231
5299
|
});
|
|
5232
5300
|
}, t.onChange = (i) => {
|
|
@@ -5242,7 +5310,7 @@ to = function() {
|
|
|
5242
5310
|
return t && t.length > 0 ? t : void 0;
|
|
5243
5311
|
}, dt = function() {
|
|
5244
5312
|
var o;
|
|
5245
|
-
const t = (o = p(this,
|
|
5313
|
+
const t = (o = p(this, N)) == null ? void 0 : o.getValue();
|
|
5246
5314
|
return t == null ? [] : Array.isArray(t) ? t : [t];
|
|
5247
5315
|
}, // ── §12.8 custom styles ───────────────────────────────────────────────────
|
|
5248
5316
|
Wt = function() {
|
|
@@ -5286,9 +5354,9 @@ io = function() {
|
|
|
5286
5354
|
}, // ── declarative <option> parsing (light DOM, once) ────────────────────────
|
|
5287
5355
|
no = function() {
|
|
5288
5356
|
if (p(this, st)) return;
|
|
5289
|
-
|
|
5357
|
+
V(this, st, !0);
|
|
5290
5358
|
const t = x(this, _, ao).call(this);
|
|
5291
|
-
t && (
|
|
5359
|
+
t && (V(this, Ne, t), V(this, ze, !0));
|
|
5292
5360
|
}, ao = function() {
|
|
5293
5361
|
const t = Array.from(this.children);
|
|
5294
5362
|
if (t.length === 0) return null;
|
|
@@ -5300,7 +5368,7 @@ no = function() {
|
|
|
5300
5368
|
value: n.value || ((c = n.textContent) == null ? void 0 : c.trim()) || "",
|
|
5301
5369
|
label: ((d = n.textContent) == null ? void 0 : d.trim()) || n.value || ""
|
|
5302
5370
|
};
|
|
5303
|
-
a && (l.group = a), n.hasAttribute("selected") && (p(this, ke) ??
|
|
5371
|
+
a && (l.group = a), n.hasAttribute("selected") && (p(this, ke) ?? V(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;
|
|
5304
5372
|
};
|
|
5305
5373
|
for (const n of t)
|
|
5306
5374
|
if (n.tagName === "OPTION")
|
|
@@ -5328,8 +5396,8 @@ Ut = function() {
|
|
|
5328
5396
|
}, Gt = function() {
|
|
5329
5397
|
var l, c, d, h;
|
|
5330
5398
|
const t = p(this, J).querySelector(".ms__debug-stats");
|
|
5331
|
-
if (!t || !p(this,
|
|
5332
|
-
const o = "2.0.0-
|
|
5399
|
+
if (!t || !p(this, N)) return;
|
|
5400
|
+
const o = "2.0.0-rc09", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = p(this, N).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = p(this, N);
|
|
5333
5401
|
t.innerHTML = `
|
|
5334
5402
|
<span>Version: ${o}</span>
|
|
5335
5403
|
<span>Total Instances: ${i}</span>
|
|
@@ -5344,12 +5412,12 @@ Ut = function() {
|
|
|
5344
5412
|
}, 500);
|
|
5345
5413
|
}, // Opt into the form-associated custom element lifecycle so form.reset() and
|
|
5346
5414
|
// form.elements see the control.
|
|
5347
|
-
|
|
5415
|
+
u(Ge, "formAssociated", !0), u(Ge, "inputs", Pr), u(Ge, "events", Mr);
|
|
5348
5416
|
typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", Ge);
|
|
5349
5417
|
Xo("web-multiselect", Ge, {
|
|
5350
5418
|
config: {
|
|
5351
5419
|
name: "@keenmate/web-multiselect",
|
|
5352
|
-
version: "2.0.0-
|
|
5420
|
+
version: "2.0.0-rc09",
|
|
5353
5421
|
author: "Keenmate",
|
|
5354
5422
|
license: "MIT",
|
|
5355
5423
|
repository: "git+https://github.com/keenmate/web-multiselect.git",
|
|
@@ -5363,12 +5431,12 @@ export {
|
|
|
5363
5431
|
kr as OPTIONS_FORMATS,
|
|
5364
5432
|
xr as WebMultiSelect,
|
|
5365
5433
|
K as dataLogger,
|
|
5366
|
-
|
|
5367
|
-
|
|
5434
|
+
Dr as disableLogging,
|
|
5435
|
+
Vr as enableLogging,
|
|
5368
5436
|
nt as initLogger,
|
|
5369
5437
|
W as interactionLogger,
|
|
5370
5438
|
Cr as parseOptionsData,
|
|
5371
5439
|
Rr as setCategoryLevel,
|
|
5372
|
-
|
|
5440
|
+
$r as setLogLevel,
|
|
5373
5441
|
Q as uiLogger
|
|
5374
5442
|
};
|