@keenmate/web-multiselect 2.0.0-rc05 → 2.0.0-rc06

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.
@@ -4,7 +4,7 @@ var ts = (s) => {
4
4
  };
5
5
  var co = (s, e, t) => e in s ? lo(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
6
6
  var m = (s, e, t) => co(s, typeof e != "symbol" ? e + "" : e, t), Tt = (s, e, t) => e.has(s) || ts("Cannot " + t);
7
- var p = (s, e, t) => (Tt(s, e, "read from private field"), t ? t.call(s) : e.get(s)), L = (s, e, t) => e.has(s) ? ts("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(s) : e.set(s, t), $ = (s, e, t, o) => (Tt(s, e, "write to private field"), o ? o.call(s, t) : e.set(s, t), t), w = (s, e, t) => (Tt(s, e, "access private method"), 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) ? ts("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(s) : e.set(s, t), D = (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 {
@@ -20,7 +20,7 @@ function F(s, e = {}) {
20
20
  }
21
21
  };
22
22
  }
23
- function q(s = {}) {
23
+ function X(s = {}) {
24
24
  const e = (o) => (s.min == null || o >= s.min) && (s.max == null || o <= s.max), t = s.default;
25
25
  return {
26
26
  fromAttribute(o) {
@@ -37,7 +37,7 @@ function q(s = {}) {
37
37
  }
38
38
  };
39
39
  }
40
- function E(s = {}) {
40
+ function A(s = {}) {
41
41
  const e = s.isNullable === !0, t = s.default ?? (e ? null : ""), o = (i) => s.shouldTrim ? i.trim() : i;
42
42
  return {
43
43
  fromAttribute(i) {
@@ -55,7 +55,7 @@ function E(s = {}) {
55
55
  };
56
56
  }
57
57
  const ho = /* @__PURE__ */ new Set(["", "true", "1", "yes", "on"]), uo = /* @__PURE__ */ new Set(["false", "0", "no", "off"]);
58
- function H(s = "presence") {
58
+ function B(s = "presence") {
59
59
  const e = (t) => {
60
60
  const o = t.trim().toLowerCase();
61
61
  return ho.has(o) ? !0 : uo.has(o) ? !1 : null;
@@ -223,7 +223,7 @@ function Co() {
223
223
  function Re(s) {
224
224
  return Gt() && window.matchMedia(s).matches;
225
225
  }
226
- function qt() {
226
+ function Xt() {
227
227
  if (!Gt())
228
228
  return { ...Ps };
229
229
  const s = Re("(any-pointer: coarse)"), e = Re("(pointer: coarse)"), t = Re("(pointer: fine)"), o = Re("(hover: hover)"), i = e ? "coarse" : t ? "fine" : "none", r = window.innerWidth, n = window.innerHeight, a = Co();
@@ -245,7 +245,7 @@ function So(s, e) {
245
245
  return s.pointer === e.pointer && s.hasCoarsePointer === e.hasCoarsePointer && s.canHover === e.canHover && s.isTouchPrimary === e.isTouchPrimary && s.orientation === e.orientation && s.viewportWidth === e.viewportWidth && s.viewportHeight === e.viewportHeight && s.breakpoint === e.breakpoint;
246
246
  }
247
247
  function Et() {
248
- const s = qt();
248
+ const s = Xt();
249
249
  if (!(Ce && So(Ce, s))) {
250
250
  Ce = s;
251
251
  for (const e of [...Fe])
@@ -282,7 +282,7 @@ function Io() {
282
282
  ];
283
283
  for (const s of ht)
284
284
  To(s);
285
- typeof window.addEventListener == "function" && window.addEventListener("resize", Ms), Ce = qt();
285
+ typeof window.addEventListener == "function" && window.addEventListener("resize", Ms), Ce = Xt();
286
286
  }
287
287
  function Po() {
288
288
  for (const s of ht)
@@ -290,7 +290,7 @@ function Po() {
290
290
  ht = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize", Ms), lt = !1, Ce = null;
291
291
  }
292
292
  function At() {
293
- return Ce ?? qt();
293
+ return Ce ?? Xt();
294
294
  }
295
295
  function Mo(s, e = {}) {
296
296
  const t = Fe.size === 0;
@@ -313,11 +313,11 @@ function zo(s, e) {
313
313
  var t;
314
314
  (t = mt.get(s)) == null || t.delete(e);
315
315
  }
316
- function $o(s) {
316
+ function Do(s) {
317
317
  return Array.from(mt.get(s) ?? []);
318
318
  }
319
319
  const Ls = /* @__PURE__ */ new Map();
320
- function Do(s, e) {
320
+ function $o(s, e) {
321
321
  Ls.set(s.toLowerCase(), e);
322
322
  }
323
323
  function Vo(s) {
@@ -352,23 +352,23 @@ const Wo = { trace() {
352
352
  }, warn() {
353
353
  }, error() {
354
354
  } }, jo = new Proxy({}, { get: () => Wo });
355
- var he, Je, ve, Qe, ye, Ze, yt, we, ue, xe, _e, Pe, Me, Le, Ee, wt, se, Ae, O, Es, As, zs, X, $s, Ds, $t, Dt, We, Vt, Vs;
356
- const qe = class qe extends Ko {
355
+ var he, Je, ve, Qe, ye, Ze, yt, we, ue, xe, _e, Pe, Me, Le, Ee, wt, se, Ae, T, Es, As, zs, Y, Ds, $s, Dt, $t, We, Vt, Vs;
356
+ const Xe = class Xe extends Ko {
357
357
  constructor() {
358
358
  super();
359
- L(this, O);
360
- L(this, he, {});
361
- L(this, Je, /* @__PURE__ */ new Map());
362
- L(this, ve, /* @__PURE__ */ new Map());
363
- L(this, Qe, /* @__PURE__ */ new Map());
359
+ E(this, T);
360
+ E(this, he, {});
361
+ E(this, Je, /* @__PURE__ */ new Map());
362
+ E(this, ve, /* @__PURE__ */ new Map());
363
+ E(this, Qe, /* @__PURE__ */ new Map());
364
364
  /** Live handler currently bound via each managed `on<Name>` property, keyed by event name. */
365
- L(this, ye, /* @__PURE__ */ new Map());
366
- L(this, Ze, vo());
367
- L(this, yt, () => w(this, O, Vt).call(this));
368
- L(this, we, null);
369
- L(this, ue, !1);
370
- L(this, xe, []);
371
- L(this, _e, !1);
365
+ E(this, ye, /* @__PURE__ */ new Map());
366
+ E(this, Ze, vo());
367
+ E(this, yt, () => x(this, T, Vt).call(this));
368
+ E(this, we, null);
369
+ E(this, ue, !1);
370
+ E(this, xe, []);
371
+ E(this, _e, !1);
372
372
  /**
373
373
  * configKeys that carried a value assigned BEFORE the element was upgraded
374
374
  * (`el.foo = …` before its class was defined). The browser fires the initial
@@ -378,21 +378,21 @@ const qe = class qe extends Ko {
378
378
  * guarantee); post-connect attribute changes react normally. Cleared on first
379
379
  * connect.
380
380
  */
381
- L(this, Pe, null);
382
- L(this, Me, !1);
381
+ E(this, Pe, null);
382
+ E(this, Me, !1);
383
383
  /** Unsubscribe from the environment observable; set only while connected AND `environmentChanged` is overridden. */
384
- L(this, Le);
385
- L(this, Ee);
386
- L(this, wt);
387
- L(this, se);
388
- L(this, Ae);
384
+ E(this, Le);
385
+ E(this, Ee);
386
+ E(this, wt);
387
+ E(this, se);
388
+ E(this, Ae);
389
389
  const t = this.constructor, o = t.inputs ?? [], i = Bo(t.events);
390
- w(this, O, zs).call(this, o, i);
390
+ x(this, T, zs).call(this, o, i);
391
391
  for (const r of o)
392
392
  p(this, Je).set(r.configKey, r), r.attribute && p(this, ve).set(r.attribute, r);
393
393
  for (const r of i)
394
394
  p(this, Qe).set(r.name, r);
395
- w(this, O, Es).call(this, o), w(this, O, $s).call(this, o), w(this, O, Ds).call(this, i);
395
+ x(this, T, Es).call(this, o), x(this, T, Ds).call(this, o), x(this, T, $s).call(this, i);
396
396
  }
397
397
  static get observedAttributes() {
398
398
  const t = (this.inputs ?? []).filter((o) => o.attribute).map((o) => o.attribute);
@@ -414,29 +414,29 @@ const qe = class qe extends Ko {
414
414
  try {
415
415
  n = go(r, i, this);
416
416
  } catch (l) {
417
- w(this, O, X).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = w(this, O, As).call(this, r);
417
+ x(this, T, Y).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = x(this, T, As).call(this, r);
418
418
  }
419
- w(this, O, Dt).call(this, n);
419
+ x(this, T, $t).call(this, n);
420
420
  }
421
421
  connectedCallback() {
422
- Ao(this.localName, this), p(this, _e) || ($(this, _e, !0), $(this, Pe, null), $(this, ue, !0)), w(this, O, We).call(this), this.connect(), this.environmentChanged !== qe.prototype.environmentChanged && $(this, Le, Mo((t) => this.environmentChanged(t)));
422
+ Ao(this.localName, this), p(this, _e) || (D(this, _e, !0), D(this, Pe, null), D(this, ue, !0)), x(this, T, We).call(this), this.connect(), this.environmentChanged !== Xe.prototype.environmentChanged && D(this, Le, Mo((t) => this.environmentChanged(t)));
423
423
  }
424
424
  disconnectedCallback() {
425
425
  var t;
426
- zo(this.localName, this), (t = p(this, Le)) == null || t.call(this), $(this, Le, void 0), this.disconnect();
426
+ zo(this.localName, this), (t = p(this, Le)) == null || t.call(this), D(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 && w(this, O, $t).call(this, r, i);
433
+ r && x(this, T, Dt).call(this, r, i);
434
434
  }
435
- w(this, O, We).call(this);
435
+ x(this, T, We).call(this);
436
436
  }
437
437
  /** Run `fn` and coalesce every input change it makes into a single reinit/update. */
438
438
  batch(t) {
439
- t(), w(this, O, We).call(this);
439
+ t(), x(this, T, We).call(this);
440
440
  }
441
441
  /**
442
442
  * Apply any pending input writes **synchronously, now** — running the
@@ -452,7 +452,7 @@ const qe = class qe extends Ko {
452
452
  * `await whenSettled()` between the two.
453
453
  */
454
454
  flush() {
455
- w(this, O, We).call(this);
455
+ x(this, T, We).call(this);
456
456
  }
457
457
  /**
458
458
  * Resolves once the element is **settled** — i.e. every staged input change
@@ -493,8 +493,8 @@ const qe = class qe extends Ko {
493
493
  const t = Vo(this.localName);
494
494
  if (!t)
495
495
  return jo;
496
- const o = p(this, wt) ?? $(this, wt, `${this.localName}#${this.id || ++Fo}`);
497
- return $(this, Ae, t.forInstance(o, () => p(this, se)));
496
+ const o = p(this, wt) ?? D(this, wt, `${this.localName}#${this.id || ++Fo}`);
497
+ return D(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 qe = class qe extends Ko {
502
502
  * picks one instance. Pairs with {@link disableLogging}.
503
503
  */
504
504
  enableLogging(t = "debug") {
505
- $(this, se, t);
505
+ D(this, se, t);
506
506
  }
507
507
  /** Clear this element's logging override (falls back to the type-level level). */
508
508
  disableLogging() {
509
- $(this, se, void 0);
509
+ D(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 qe = class qe extends Ko {
596
596
  if (typeof this.attachInternals != "function")
597
597
  return null;
598
598
  try {
599
- return $(this, Ee, this.attachInternals());
599
+ return D(this, Ee, this.attachInternals());
600
600
  } catch {
601
601
  return null;
602
602
  }
@@ -665,7 +665,7 @@ const qe = class qe extends Ko {
665
665
  }
666
666
  }
667
667
  };
668
- he = new WeakMap(), Je = new WeakMap(), ve = new WeakMap(), Qe = new WeakMap(), ye = new WeakMap(), Ze = new WeakMap(), yt = new WeakMap(), we = new WeakMap(), ue = new WeakMap(), xe = new WeakMap(), _e = new WeakMap(), Pe = new WeakMap(), Me = new WeakMap(), Le = new WeakMap(), Ee = new WeakMap(), wt = new WeakMap(), se = new WeakMap(), Ae = new WeakMap(), O = new WeakSet(), // ── internals ─────────────────────────────────────────────────────────────
668
+ he = new WeakMap(), Je = new WeakMap(), ve = new WeakMap(), Qe = new WeakMap(), ye = new WeakMap(), Ze = new WeakMap(), yt = new WeakMap(), we = new WeakMap(), ue = new WeakMap(), xe = new WeakMap(), _e = new WeakMap(), Pe = new WeakMap(), Me = new WeakMap(), Le = new WeakMap(), Ee = new WeakMap(), wt = new WeakMap(), se = new WeakMap(), Ae = new WeakMap(), T = new WeakSet(), // ── internals ─────────────────────────────────────────────────────────────
669
669
  Es = function(t) {
670
670
  var o;
671
671
  for (const i of t) {
@@ -674,7 +674,7 @@ Es = function(t) {
674
674
  try {
675
675
  r = i.converter.fromAttribute(null, this, i.attribute ?? i.configKey);
676
676
  } catch (n) {
677
- w(this, O, X).call(this, `converter for "${i.configKey}" threw computing its default; using \`default\``, n), r = i.default;
677
+ x(this, T, Y).call(this, `converter for "${i.configKey}" threw computing its default; using \`default\``, n), r = i.default;
678
678
  }
679
679
  p(this, he)[i.configKey] = r, i.field && (this[i.field] = r);
680
680
  }
@@ -689,33 +689,33 @@ zs = function(t, o) {
689
689
  os.add(i);
690
690
  const r = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
691
691
  for (const c of t)
692
- r.has(c.configKey) && w(this, O, X).call(this, `invalid input table: duplicate configKey "${c.configKey}"`), r.add(c.configKey), c.attribute && (n.has(c.attribute) && w(this, O, X).call(this, `invalid input table: duplicate attribute "${c.attribute}"`), n.add(c.attribute)), c.reflect && !c.attribute && w(this, O, X).call(this, `invalid input table: "${c.configKey}" has reflect:true but no attribute to reflect to`), c.reflect && !((l = c.converter) != null && l.toAttribute) && w(this, O, X).call(this, `invalid input table: "${c.configKey}" has reflect:true but its converter has no toAttribute`);
692
+ r.has(c.configKey) && x(this, T, Y).call(this, `invalid input table: duplicate configKey "${c.configKey}"`), r.add(c.configKey), c.attribute && (n.has(c.attribute) && x(this, T, Y).call(this, `invalid input table: duplicate attribute "${c.attribute}"`), n.add(c.attribute)), c.reflect && !c.attribute && x(this, T, Y).call(this, `invalid input table: "${c.configKey}" has reflect:true but no attribute to reflect to`), c.reflect && !((l = c.converter) != null && l.toAttribute) && x(this, T, Y).call(this, `invalid input table: "${c.configKey}" has reflect:true but its converter has no toAttribute`);
693
693
  const a = /* @__PURE__ */ new Set();
694
694
  for (const c of o)
695
- a.has(c.name) && w(this, O, X).call(this, `invalid event table: duplicate event "${c.name}"`), a.add(c.name), /^[a-z][a-z0-9-]*$/.test(c.name) || w(this, O, X).call(this, `invalid event table: event "${c.name}" should be lowercase kebab-case (e.g. "date-select")`), c.property && r.has(c.property) && w(this, O, X).call(this, `invalid event table: event "${c.name}" property "${c.property}" collides with an input configKey`);
695
+ a.has(c.name) && x(this, T, Y).call(this, `invalid event table: duplicate event "${c.name}"`), a.add(c.name), /^[a-z][a-z0-9-]*$/.test(c.name) || x(this, T, Y).call(this, `invalid event table: event "${c.name}" should be lowercase kebab-case (e.g. "date-select")`), c.property && r.has(c.property) && x(this, T, Y).call(this, `invalid event table: event "${c.name}" property "${c.property}" collides with an input configKey`);
696
696
  }, /**
697
697
  * Always-on console warning for input validation failures. Deliberately uses
698
698
  * `console.warn` directly — NOT the (future) categorized logger — so rejected
699
699
  * inputs surface even when logging is disabled.
700
700
  */
701
- X = function(t, ...o) {
701
+ Y = function(t, ...o) {
702
702
  console.warn(`[BlissElement] <${this.localName ?? "unknown"}> ${t}`, ...o);
703
- }, $s = function(t) {
703
+ }, Ds = 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) => w(this, O, $t).call(this, o, a)
711
- }), r && ((p(this, Pe) ?? $(this, Pe, /* @__PURE__ */ new Set())).add(i), this[i] = n);
710
+ set: (a) => x(this, T, Dt).call(this, o, a)
711
+ }), r && ((p(this, Pe) ?? D(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
- Ds = function(t) {
718
+ $s = function(t) {
719
719
  for (const o of t) {
720
720
  const i = o.property;
721
721
  if (!i)
@@ -735,48 +735,48 @@ Ds = function(t) {
735
735
  }
736
736
  }), n && (this[i] = a);
737
737
  }
738
- }, $t = function(t, o) {
738
+ }, Dt = function(t, o) {
739
739
  var r;
740
740
  const i = bo(t, o);
741
741
  if (!i) {
742
- w(this, O, X).call(this, `rejected invalid value for property "${t.configKey}"; keeping previous value`, o);
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 (w(this, O, Dt).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
745
+ if (x(this, T, $t).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
746
746
  const n = t.converter.toAttribute(i.value);
747
- $(this, Me, !0);
747
+ D(this, Me, !0);
748
748
  try {
749
749
  n === null ? this.removeAttribute(t.attribute) : this.setAttribute(t.attribute, n);
750
750
  } finally {
751
- $(this, Me, !1);
751
+ D(this, Me, !1);
752
752
  }
753
753
  }
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" && $(this, ue, !0), (p(this, we) ?? $(this, we, {}))[t.configKey] = t.value, p(this, Ze).schedule(p(this, yt)));
754
+ }, $t = function(t) {
755
+ p(this, he)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" && D(this, ue, !0), (p(this, we) ?? D(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(), w(this, O, Vt).call(this);
758
+ p(this, Ze).cancel(), x(this, T, Vt).call(this);
759
759
  }, Vt = function() {
760
760
  if (!this.isConnected)
761
761
  return;
762
762
  const t = p(this, ue), o = p(this, we);
763
- $(this, ue, !1), $(this, we, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), w(this, O, Vs).call(this);
763
+ D(this, ue, !1), D(this, we, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), x(this, T, Vs).call(this);
764
764
  }, /** Resolve everyone awaiting {@link whenSettled} for the flush that just ran. */
765
765
  Vs = function() {
766
766
  if (p(this, xe).length === 0)
767
767
  return;
768
768
  const t = p(this, xe);
769
- $(this, xe, []);
769
+ D(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
- m(qe, "inputs"), /**
773
+ m(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
- m(qe, "events");
779
- let zt = qe;
778
+ m(Xe, "events");
779
+ let zt = Xe;
780
780
  function is(s, e, t) {
781
781
  typeof customElements > "u" || customElements.get(s) || customElements.define(s, e, t);
782
782
  }
@@ -791,19 +791,19 @@ function Uo(s) {
791
791
  }
792
792
  function Go(s, e, t) {
793
793
  const { config: o, logging: i, shouldAutoDefine: r = !0 } = t;
794
- i && Do(s, i);
794
+ i && $o(s, i);
795
795
  const n = {
796
796
  version: () => o.version,
797
797
  config: o,
798
798
  ...i ? { logging: Uo(i) } : {},
799
799
  register: () => is(s, e),
800
- getInstances: () => $o(s)
800
+ getInstances: () => Do(s)
801
801
  };
802
802
  return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && is(s, e), n;
803
803
  }
804
804
  const rs = /* @__PURE__ */ new Map(), ns = /* @__PURE__ */ new WeakMap();
805
805
  let ot;
806
- function qo(s) {
806
+ function Xo(s) {
807
807
  if (typeof CSSStyleSheet > "u" || !("adoptedStyleSheets" in s))
808
808
  return !1;
809
809
  if (ot === void 0)
@@ -814,7 +814,7 @@ function qo(s) {
814
814
  }
815
815
  return ot;
816
816
  }
817
- function Yo(s, ...e) {
817
+ function qo(s, ...e) {
818
818
  if (typeof document > "u")
819
819
  return;
820
820
  let t = ns.get(s);
@@ -824,7 +824,7 @@ function Yo(s, ...e) {
824
824
  return;
825
825
  for (const r of o)
826
826
  t.add(r);
827
- if (qo(s)) {
827
+ if (Xo(s)) {
828
828
  const r = o.map((n) => {
829
829
  let a = rs.get(n);
830
830
  return a || (a = new CSSStyleSheet(), a.replaceSync(n), rs.set(n, a)), a;
@@ -838,7 +838,7 @@ function Yo(s, ...e) {
838
838
  n.textContent = r, i.appendChild(n);
839
839
  }
840
840
  }
841
- function Xo(s, e = {}) {
841
+ function Yo(s, e = {}) {
842
842
  const t = e.position ?? "last", o = s.head ?? s;
843
843
  let i = null;
844
844
  const r = () => typeof document > "u" ? null : (i || (i = document.createElement("style"), e.className && (i.className = e.className)), i.parentNode !== o && (t === "first" && o.firstChild ? o.insertBefore(i, o.firstChild) : o.appendChild(i)), i), n = () => {
@@ -1142,7 +1142,7 @@ const pe = Math.min, ie = Math.max, gt = Math.round, rt = Math.floor, re = (s) =
1142
1142
  function Hs(s, e, t) {
1143
1143
  return ie(s, pe(e, t));
1144
1144
  }
1145
- function De(s, e) {
1145
+ function $e(s, e) {
1146
1146
  return typeof s == "function" ? s(e) : s;
1147
1147
  }
1148
1148
  function Se(s) {
@@ -1154,19 +1154,19 @@ function Ve(s) {
1154
1154
  function Bs(s) {
1155
1155
  return s === "x" ? "y" : "x";
1156
1156
  }
1157
- function Yt(s) {
1157
+ function qt(s) {
1158
1158
  return s === "y" ? "height" : "width";
1159
1159
  }
1160
1160
  function oe(s) {
1161
1161
  const e = s[0];
1162
1162
  return e === "t" || e === "b" ? "y" : "x";
1163
1163
  }
1164
- function Xt(s) {
1164
+ function Yt(s) {
1165
1165
  return Bs(oe(s));
1166
1166
  }
1167
1167
  function bi(s, e, t) {
1168
1168
  t === void 0 && (t = !1);
1169
- const o = Ve(s), i = Xt(s), r = Yt(i);
1169
+ const o = Ve(s), i = Yt(s), r = qt(i);
1170
1170
  let n = i === "x" ? o === (t ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
1171
1171
  return e.reference[r] > e.floating[r] && (n = bt(n)), [n, bt(n)];
1172
1172
  }
@@ -1239,7 +1239,7 @@ function ms(s, e, t) {
1239
1239
  reference: o,
1240
1240
  floating: i
1241
1241
  } = s;
1242
- const r = oe(e), n = Xt(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;
1242
+ const r = oe(e), n = Yt(e), a = qt(n), l = Se(e), c = r === "y", d = o.x + o.width / 2 - i.width / 2, h = o.y + o.height / 2 - i.height / 2, f = o[a] / 2 - i[a] / 2;
1243
1243
  let u;
1244
1244
  switch (l) {
1245
1245
  case "top":
@@ -1291,30 +1291,30 @@ async function Ci(s, e) {
1291
1291
  elementContext: h = "floating",
1292
1292
  altBoundary: f = !1,
1293
1293
  padding: u = 0
1294
- } = De(e, s), g = Ks(u), y = a[f ? h === "floating" ? "reference" : "floating" : h], b = vt(await r.getClippingRect({
1294
+ } = $e(e, s), g = Ks(u), y = a[f ? h === "floating" ? "reference" : "floating" : h], v = vt(await r.getClippingRect({
1295
1295
  element: (t = await (r.isElement == null ? void 0 : r.isElement(y))) == null || t ? y : y.contextElement || await (r.getDocumentElement == null ? void 0 : r.getDocumentElement(a.floating)),
1296
1296
  boundary: c,
1297
1297
  rootBoundary: d,
1298
1298
  strategy: l
1299
- })), x = h === "floating" ? {
1299
+ })), w = h === "floating" ? {
1300
1300
  x: o,
1301
1301
  y: i,
1302
1302
  width: n.floating.width,
1303
1303
  height: n.floating.height
1304
- } : n.reference, C = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a.floating)), _ = await (r.isElement == null ? void 0 : r.isElement(C)) && await (r.getScale == null ? void 0 : r.getScale(C)) || {
1304
+ } : n.reference, k = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a.floating)), P = await (r.isElement == null ? void 0 : r.isElement(k)) && await (r.getScale == null ? void 0 : r.getScale(k)) || {
1305
1305
  x: 1,
1306
1306
  y: 1
1307
- }, N = vt(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
1307
+ }, M = vt(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
1308
1308
  elements: a,
1309
- rect: x,
1310
- offsetParent: C,
1309
+ rect: w,
1310
+ offsetParent: k,
1311
1311
  strategy: l
1312
- }) : x);
1312
+ }) : w);
1313
1313
  return {
1314
- top: (b.top - N.top + g.top) / _.y,
1315
- bottom: (N.bottom - b.bottom + g.bottom) / _.y,
1316
- left: (b.left - N.left + g.left) / _.x,
1317
- right: (N.right - b.right + g.right) / _.x
1314
+ top: (v.top - M.top + g.top) / P.y,
1315
+ bottom: (M.bottom - v.bottom + g.bottom) / P.y,
1316
+ left: (v.left - M.left + g.left) / P.x,
1317
+ right: (M.right - v.right + g.right) / P.x
1318
1318
  };
1319
1319
  }
1320
1320
  const Si = 50, Ti = async (s, e, t) => {
@@ -1336,19 +1336,19 @@ const Si = 50, Ti = async (s, e, t) => {
1336
1336
  y: h
1337
1337
  } = ms(c, o, l), f = o, u = 0;
1338
1338
  const g = {};
1339
- for (let v = 0; v < r.length; v++) {
1340
- const y = r[v];
1339
+ for (let b = 0; b < r.length; b++) {
1340
+ const y = r[b];
1341
1341
  if (!y)
1342
1342
  continue;
1343
1343
  const {
1344
- name: b,
1345
- fn: x
1344
+ name: v,
1345
+ fn: w
1346
1346
  } = y, {
1347
- x: C,
1348
- y: _,
1349
- data: N,
1350
- reset: z
1351
- } = await x({
1347
+ x: k,
1348
+ y: P,
1349
+ data: M,
1350
+ reset: V
1351
+ } = await w({
1352
1352
  x: d,
1353
1353
  y: h,
1354
1354
  initialPlacement: o,
@@ -1362,17 +1362,17 @@ const Si = 50, Ti = async (s, e, t) => {
1362
1362
  floating: e
1363
1363
  }
1364
1364
  });
1365
- d = C ?? d, h = _ ?? h, g[b] = {
1366
- ...g[b],
1367
- ...N
1368
- }, z && u < Si && (u++, typeof z == "object" && (z.placement && (f = z.placement), z.rects && (c = z.rects === !0 ? await n.getElementRects({
1365
+ d = k ?? d, h = P ?? h, g[v] = {
1366
+ ...g[v],
1367
+ ...M
1368
+ }, V && u < Si && (u++, typeof V == "object" && (V.placement && (f = V.placement), V.rects && (c = V.rects === !0 ? await n.getElementRects({
1369
1369
  reference: s,
1370
1370
  floating: e,
1371
1371
  strategy: i
1372
- }) : z.rects), {
1372
+ }) : V.rects), {
1373
1373
  x: d,
1374
1374
  y: h
1375
- } = ms(c, f, l)), v = -1);
1375
+ } = ms(c, f, l)), b = -1);
1376
1376
  }
1377
1377
  return {
1378
1378
  x: d,
@@ -1396,26 +1396,26 @@ const Si = 50, Ti = async (s, e, t) => {
1396
1396
  } = e, {
1397
1397
  element: c,
1398
1398
  padding: d = 0
1399
- } = De(s, e) || {};
1399
+ } = $e(s, e) || {};
1400
1400
  if (c == null)
1401
1401
  return {};
1402
1402
  const h = Ks(d), f = {
1403
1403
  x: t,
1404
1404
  y: o
1405
- }, u = Xt(i), g = Yt(u), v = await n.getDimensions(c), y = u === "y", b = y ? "top" : "left", x = y ? "bottom" : "right", C = y ? "clientHeight" : "clientWidth", _ = r.reference[g] + r.reference[u] - f[u] - r.floating[g], N = f[u] - r.reference[u], z = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
1406
- let K = z ? z[C] : 0;
1407
- (!K || !await (n.isElement == null ? void 0 : n.isElement(z))) && (K = a.floating[C] || r.floating[g]);
1408
- const G = _ / 2 - N / 2, M = K / 2 - v[g] / 2 - 1, S = pe(h[b], M), I = pe(h[x], M), P = K - v[g] - I, V = K / 2 - v[g] / 2 + G, T = Hs(S, V, P), R = !l.arrow && Ve(i) != null && V !== T && r.reference[g] / 2 - (V < S ? S : I) - v[g] / 2 < 0, te = R ? V < S ? V - S : V - P : 0;
1405
+ }, u = Yt(i), g = qt(u), b = await n.getDimensions(c), y = u === "y", v = y ? "top" : "left", w = y ? "bottom" : "right", k = y ? "clientHeight" : "clientWidth", P = r.reference[g] + r.reference[u] - f[u] - r.floating[g], M = f[u] - r.reference[u], V = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
1406
+ let R = V ? V[k] : 0;
1407
+ (!R || !await (n.isElement == null ? void 0 : n.isElement(V))) && (R = a.floating[k] || r.floating[g]);
1408
+ const G = P / 2 - M / 2, L = R / 2 - b[g] / 2 - 1, C = pe(h[v], L), O = pe(h[w], L), I = R - b[g] - O, N = R / 2 - b[g] / 2 + G, S = Hs(C, N, I), H = !l.arrow && Ve(i) != null && N !== S && r.reference[g] / 2 - (N < C ? C : O) - b[g] / 2 < 0, te = H ? N < C ? N - C : N - I : 0;
1409
1409
  return {
1410
1410
  [u]: f[u] + te,
1411
1411
  data: {
1412
- [u]: T,
1413
- centerOffset: V - T - te,
1414
- ...R && {
1412
+ [u]: S,
1413
+ centerOffset: N - S - te,
1414
+ ...H && {
1415
1415
  alignmentOffset: te
1416
1416
  }
1417
1417
  },
1418
- reset: R
1418
+ reset: H
1419
1419
  };
1420
1420
  }
1421
1421
  }), Ii = function(s) {
@@ -1437,51 +1437,51 @@ const Si = 50, Ti = async (s, e, t) => {
1437
1437
  fallbackPlacements: f,
1438
1438
  fallbackStrategy: u = "bestFit",
1439
1439
  fallbackAxisSideDirection: g = "none",
1440
- flipAlignment: v = !0,
1440
+ flipAlignment: b = !0,
1441
1441
  ...y
1442
- } = De(s, e);
1442
+ } = $e(s, e);
1443
1443
  if ((t = r.arrow) != null && t.alignmentOffset)
1444
1444
  return {};
1445
- const b = Se(i), x = oe(a), C = Se(a) === a, _ = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), N = f || (C || !v ? [bt(a)] : vi(a)), z = g !== "none";
1446
- !f && z && N.push(..._i(a, v, g, _));
1447
- const K = [a, ...N], G = await l.detectOverflow(e, y), M = [];
1448
- let S = ((o = r.flip) == null ? void 0 : o.overflows) || [];
1449
- if (d && M.push(G[b]), h) {
1450
- const T = bi(i, n, _);
1451
- M.push(G[T[0]], G[T[1]]);
1445
+ const v = Se(i), w = oe(a), k = Se(a) === a, P = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), M = f || (k || !b ? [bt(a)] : vi(a)), V = g !== "none";
1446
+ !f && V && M.push(..._i(a, b, g, P));
1447
+ const R = [a, ...M], G = await l.detectOverflow(e, y), L = [];
1448
+ let C = ((o = r.flip) == null ? void 0 : o.overflows) || [];
1449
+ if (d && L.push(G[v]), h) {
1450
+ const S = bi(i, n, P);
1451
+ L.push(G[S[0]], G[S[1]]);
1452
1452
  }
1453
- if (S = [...S, {
1453
+ if (C = [...C, {
1454
1454
  placement: i,
1455
- overflows: M
1456
- }], !M.every((T) => T <= 0)) {
1457
- var I, P;
1458
- const T = (((I = r.flip) == null ? void 0 : I.index) || 0) + 1, R = K[T];
1459
- if (R && (!(h === "alignment" ? x !== oe(R) : !1) || // We leave the current main axis only if every placement on that axis
1455
+ overflows: L
1456
+ }], !L.every((S) => S <= 0)) {
1457
+ var O, I;
1458
+ const S = (((O = r.flip) == null ? void 0 : O.index) || 0) + 1, H = R[S];
1459
+ if (H && (!(h === "alignment" ? w !== oe(H) : !1) || // We leave the current main axis only if every placement on that axis
1460
1460
  // overflows the main axis.
1461
- S.every((Y) => oe(Y.placement) === x ? Y.overflows[0] > 0 : !0)))
1461
+ C.every((q) => oe(q.placement) === w ? q.overflows[0] > 0 : !0)))
1462
1462
  return {
1463
1463
  data: {
1464
- index: T,
1465
- overflows: S
1464
+ index: S,
1465
+ overflows: C
1466
1466
  },
1467
1467
  reset: {
1468
- placement: R
1468
+ placement: H
1469
1469
  }
1470
1470
  };
1471
- let te = (P = S.filter((ge) => ge.overflows[0] <= 0).sort((ge, Y) => ge.overflows[1] - Y.overflows[1])[0]) == null ? void 0 : P.placement;
1471
+ let te = (I = C.filter((ge) => ge.overflows[0] <= 0).sort((ge, q) => ge.overflows[1] - q.overflows[1])[0]) == null ? void 0 : I.placement;
1472
1472
  if (!te)
1473
1473
  switch (u) {
1474
1474
  case "bestFit": {
1475
- var V;
1476
- const ge = (V = S.filter((Y) => {
1477
- if (z) {
1478
- const le = oe(Y.placement);
1479
- return le === x || // Create a bias to the `y` side axis due to horizontal
1475
+ var N;
1476
+ const ge = (N = C.filter((q) => {
1477
+ if (V) {
1478
+ const le = oe(q.placement);
1479
+ return le === w || // Create a bias to the `y` side axis due to horizontal
1480
1480
  // reading directions favoring greater width.
1481
1481
  le === "y";
1482
1482
  }
1483
1483
  return !0;
1484
- }).map((Y) => [Y.placement, Y.overflows.filter((le) => le > 0).reduce((le, ao) => le + ao, 0)]).sort((Y, le) => Y[1] - le[1])[0]) == null ? void 0 : V[0];
1484
+ }).map((q) => [q.placement, q.overflows.filter((le) => le > 0).reduce((le, ao) => le + ao, 0)]).sort((q, le) => q[1] - le[1])[0]) == null ? void 0 : N[0];
1485
1485
  ge && (te = ge);
1486
1486
  break;
1487
1487
  }
@@ -1505,7 +1505,7 @@ async function Mi(s, e) {
1505
1505
  placement: t,
1506
1506
  platform: o,
1507
1507
  elements: i
1508
- } = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = Se(t), a = Ve(t), l = oe(t) === "y", c = Pi.has(n) ? -1 : 1, d = r && l ? -1 : 1, h = De(e, s);
1508
+ } = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = Se(t), a = Ve(t), l = oe(t) === "y", c = Pi.has(n) ? -1 : 1, d = r && l ? -1 : 1, h = $e(e, s);
1509
1509
  let {
1510
1510
  mainAxis: f,
1511
1511
  crossAxis: u,
@@ -1563,35 +1563,35 @@ const Li = function(s) {
1563
1563
  mainAxis: n = !0,
1564
1564
  crossAxis: a = !1,
1565
1565
  limiter: l = {
1566
- fn: (x) => {
1566
+ fn: (w) => {
1567
1567
  let {
1568
- x: C,
1569
- y: _
1570
- } = x;
1568
+ x: k,
1569
+ y: P
1570
+ } = w;
1571
1571
  return {
1572
- x: C,
1573
- y: _
1572
+ x: k,
1573
+ y: P
1574
1574
  };
1575
1575
  }
1576
1576
  },
1577
1577
  ...c
1578
- } = De(s, e), d = {
1578
+ } = $e(s, e), d = {
1579
1579
  x: t,
1580
1580
  y: o
1581
1581
  }, h = await r.detectOverflow(e, c), f = oe(i), u = Bs(f);
1582
- let g = d[u], v = d[f];
1583
- const y = (x, C) => Hs(C + h[x === "y" ? "top" : "left"], C, C - h[x === "y" ? "bottom" : "right"]);
1584
- n && (g = y(u, g)), a && (v = y(f, v));
1585
- const b = l.fn({
1582
+ let g = d[u], b = d[f];
1583
+ const y = (w, k) => Hs(k + h[w === "y" ? "top" : "left"], k, k - h[w === "y" ? "bottom" : "right"]);
1584
+ n && (g = y(u, g)), a && (b = y(f, b));
1585
+ const v = l.fn({
1586
1586
  ...e,
1587
1587
  [u]: g,
1588
- [f]: v
1588
+ [f]: b
1589
1589
  });
1590
1590
  return {
1591
- ...b,
1591
+ ...v,
1592
1592
  data: {
1593
- x: b.x - t,
1594
- y: b.y - o,
1593
+ x: v.x - t,
1594
+ y: v.y - o,
1595
1595
  enabled: {
1596
1596
  [u]: n,
1597
1597
  [f]: a
@@ -1614,18 +1614,18 @@ const Li = function(s) {
1614
1614
  apply: n = () => {
1615
1615
  },
1616
1616
  ...a
1617
- } = De(s, e), l = await i.detectOverflow(e, a), c = Se(t), d = Ve(t), h = oe(t) === "y", {
1617
+ } = $e(s, e), l = await i.detectOverflow(e, a), c = Se(t), d = Ve(t), h = oe(t) === "y", {
1618
1618
  width: f,
1619
1619
  height: u
1620
1620
  } = o.floating;
1621
- let g, v;
1622
- c === "top" || c === "bottom" ? (g = c, v = d === (await (i.isRTL == null ? void 0 : i.isRTL(r.floating)) ? "start" : "end") ? "left" : "right") : (v = c, g = d === "end" ? "top" : "bottom");
1623
- const y = u - l.top - l.bottom, b = f - l.left - l.right, x = pe(u - l[g], y), C = pe(f - l[v], b), _ = e.middlewareData.shift, N = !_;
1624
- let z = x, K = C;
1625
- _ != null && _.enabled.x && (K = b), _ != null && _.enabled.y && (z = y), N && !d && (h ? K = f - 2 * ie(l.left, l.right) : z = u - 2 * ie(l.top, l.bottom)), await n({
1621
+ let g, b;
1622
+ c === "top" || c === "bottom" ? (g = c, b = d === (await (i.isRTL == null ? void 0 : i.isRTL(r.floating)) ? "start" : "end") ? "left" : "right") : (b = c, g = d === "end" ? "top" : "bottom");
1623
+ const y = u - l.top - l.bottom, v = f - l.left - l.right, w = pe(u - l[g], y), k = pe(f - l[b], v), P = e.middlewareData.shift, M = !P;
1624
+ let V = w, R = k;
1625
+ P != null && P.enabled.x && (R = v), P != null && P.enabled.y && (V = y), M && !d && (h ? R = f - 2 * ie(l.left, l.right) : V = u - 2 * ie(l.top, l.bottom)), await n({
1626
1626
  ...e,
1627
- availableWidth: K,
1628
- availableHeight: z
1627
+ availableWidth: R,
1628
+ availableHeight: V
1629
1629
  });
1630
1630
  const G = await i.getDimensions(r.floating);
1631
1631
  return f !== G.width || u !== G.height ? {
@@ -1686,15 +1686,15 @@ function kt(s) {
1686
1686
  return !1;
1687
1687
  }
1688
1688
  }
1689
- const $i = /transform|translate|scale|rotate|perspective|filter/, Di = /paint|layout|strict|content/, be = (s) => !!s && s !== "none";
1689
+ const Di = /transform|translate|scale|rotate|perspective|filter/, $i = /paint|layout|strict|content/, be = (s) => !!s && s !== "none";
1690
1690
  let It;
1691
1691
  function Jt(s) {
1692
1692
  const e = Z(s) ? ee(s) : s;
1693
- return be(e.transform) || be(e.translate) || be(e.scale) || be(e.rotate) || be(e.perspective) || !Qt() && (be(e.backdropFilter) || be(e.filter)) || $i.test(e.willChange || "") || Di.test(e.contain || "");
1693
+ return be(e.transform) || be(e.translate) || be(e.scale) || be(e.rotate) || be(e.perspective) || !Qt() && (be(e.backdropFilter) || be(e.filter)) || Di.test(e.willChange || "") || $i.test(e.contain || "");
1694
1694
  }
1695
1695
  function Vi(s) {
1696
1696
  let e = Te(s);
1697
- for (; fe(e) && !Ye(e); ) {
1697
+ for (; fe(e) && !qe(e); ) {
1698
1698
  if (Jt(e))
1699
1699
  return e;
1700
1700
  if (kt(e))
@@ -1706,7 +1706,7 @@ function Vi(s) {
1706
1706
  function Qt() {
1707
1707
  return It == null && (It = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), It;
1708
1708
  }
1709
- function Ye(s) {
1709
+ function qe(s) {
1710
1710
  return /^(html|body|#document)$/.test(Ne(s));
1711
1711
  }
1712
1712
  function ee(s) {
@@ -1735,17 +1735,17 @@ function Te(s) {
1735
1735
  }
1736
1736
  function Ws(s) {
1737
1737
  const e = Te(s);
1738
- return Ye(e) ? (s.ownerDocument || s).body : fe(e) && _t(e) ? e : Ws(e);
1738
+ return qe(e) ? (s.ownerDocument || s).body : fe(e) && _t(e) ? e : Ws(e);
1739
1739
  }
1740
- function Xe(s, e, t) {
1740
+ function Ye(s, e, t) {
1741
1741
  var o;
1742
1742
  e === void 0 && (e = []), t === void 0 && (t = !0);
1743
1743
  const i = Ws(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = U(i);
1744
1744
  if (r) {
1745
1745
  const a = Rt(n);
1746
- return e.concat(n, n.visualViewport || [], _t(i) ? i : [], a && t ? Xe(a) : []);
1746
+ return e.concat(n, n.visualViewport || [], _t(i) ? i : [], a && t ? Ye(a) : []);
1747
1747
  } else
1748
- return e.concat(i, Xe(i, [], t));
1748
+ return e.concat(i, Ye(i, [], t));
1749
1749
  }
1750
1750
  function Rt(s) {
1751
1751
  return s.parent && Object.getPrototypeOf(s.parent) ? s.frameElement : null;
@@ -1798,10 +1798,10 @@ function Oe(s, e, t, o) {
1798
1798
  let l = (i.left + a.x) / n.x, c = (i.top + a.y) / n.y, d = i.width / n.x, h = i.height / n.y;
1799
1799
  if (r && o) {
1800
1800
  const f = U(r), u = Z(o) ? U(o) : o;
1801
- let g = f, v = Rt(g);
1802
- for (; v && u !== g; ) {
1803
- const y = Ie(v), b = v.getBoundingClientRect(), x = ee(v), C = b.left + (v.clientLeft + parseFloat(x.paddingLeft)) * y.x, _ = b.top + (v.clientTop + parseFloat(x.paddingTop)) * y.y;
1804
- l *= y.x, c *= y.y, d *= y.x, h *= y.y, l += C, c += _, g = U(v), v = Rt(g);
1801
+ let g = f, b = Rt(g);
1802
+ for (; b && u !== g; ) {
1803
+ const y = Ie(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;
1804
+ l *= y.x, c *= y.y, d *= y.x, h *= y.y, l += k, c += P, g = U(b), b = Rt(g);
1805
1805
  }
1806
1806
  }
1807
1807
  return vt({
@@ -1873,8 +1873,8 @@ function Wi(s, e, t) {
1873
1873
  o ? f || (c = -n.offsetLeft, d = -n.offsetTop) : (a = n.width, l = n.height, f && (c = n.offsetLeft, d = n.offsetTop));
1874
1874
  }
1875
1875
  if (St(r) <= 0) {
1876
- const f = r.ownerDocument, u = f.body, g = getComputedStyle(u), v = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, y = Math.abs(r.clientWidth - u.clientWidth - v), b = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? y / 2 : y;
1877
- b <= Fi && (a -= b);
1876
+ const f = r.ownerDocument, u = f.body, g = getComputedStyle(u), b = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, y = Math.abs(r.clientWidth - u.clientWidth - b), v = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? y / 2 : y;
1877
+ v <= Fi && (a -= v);
1878
1878
  }
1879
1879
  return {
1880
1880
  width: a,
@@ -1915,10 +1915,10 @@ function Ui(s, e) {
1915
1915
  const t = e.get(s);
1916
1916
  if (t)
1917
1917
  return t;
1918
- let o = Xe(s, [], !1).filter((a) => Z(a) && Ne(a) !== "body"), i = null;
1918
+ let o = Ye(s, [], !1).filter((a) => Z(a) && Ne(a) !== "body"), i = null;
1919
1919
  const r = ee(s).position === "fixed";
1920
1920
  let n = r ? Te(s) : s;
1921
- for (; Z(n) && !Ye(n); ) {
1921
+ for (; Z(n) && !qe(n); ) {
1922
1922
  const a = ee(n), l = Jt(n), c = i ? i.position : r ? "fixed" : "";
1923
1923
  !l && (c === "fixed" || c === "absolute" && a.position === "static") ? o = o.filter((h) => h !== n) : i = a, n = Te(n);
1924
1924
  }
@@ -1944,7 +1944,7 @@ function Gi(s) {
1944
1944
  y: l
1945
1945
  };
1946
1946
  }
1947
- function qi(s) {
1947
+ function Xi(s) {
1948
1948
  const {
1949
1949
  width: e,
1950
1950
  height: t
@@ -1954,7 +1954,7 @@ function qi(s) {
1954
1954
  height: t
1955
1955
  };
1956
1956
  }
1957
- function Yi(s, e, t) {
1957
+ function qi(s, e, t) {
1958
1958
  const o = fe(e), i = ne(e), r = t === "fixed", n = Oe(s, !0, r, e);
1959
1959
  let a = {
1960
1960
  scrollLeft: 0,
@@ -1985,13 +1985,13 @@ function gs(s, e) {
1985
1985
  let t = s.offsetParent;
1986
1986
  return ne(s) === t && (t = t.ownerDocument.body), t;
1987
1987
  }
1988
- function qs(s, e) {
1988
+ function Xs(s, e) {
1989
1989
  const t = U(s);
1990
1990
  if (kt(s))
1991
1991
  return t;
1992
1992
  if (!fe(s)) {
1993
1993
  let i = Te(s);
1994
- for (; i && !Ye(i); ) {
1994
+ for (; i && !qe(i); ) {
1995
1995
  if (Z(i) && !Pt(i))
1996
1996
  return i;
1997
1997
  i = Te(i);
@@ -2001,12 +2001,12 @@ function qs(s, e) {
2001
2001
  let o = gs(s, e);
2002
2002
  for (; o && zi(o) && Pt(o); )
2003
2003
  o = gs(o, e);
2004
- return o && Ye(o) && Pt(o) && !Jt(o) ? t : o || Vi(s) || t;
2004
+ return o && qe(o) && Pt(o) && !Jt(o) ? t : o || Vi(s) || t;
2005
2005
  }
2006
- const Xi = async function(s) {
2007
- const e = this.getOffsetParent || qs, t = this.getDimensions, o = await t(s.floating);
2006
+ const Yi = async function(s) {
2007
+ const e = this.getOffsetParent || Xs, t = this.getDimensions, o = await t(s.floating);
2008
2008
  return {
2009
- reference: Yi(s.reference, await e(s.floating), s.strategy),
2009
+ reference: qi(s.reference, await e(s.floating), s.strategy),
2010
2010
  floating: {
2011
2011
  x: 0,
2012
2012
  y: 0,
@@ -2018,19 +2018,19 @@ const Xi = async function(s) {
2018
2018
  function Ji(s) {
2019
2019
  return ee(s).direction === "rtl";
2020
2020
  }
2021
- const Ys = {
2021
+ const qs = {
2022
2022
  convertOffsetParentRelativeRectToViewportRelativeRect: Hi,
2023
2023
  getDocumentElement: ne,
2024
2024
  getClippingRect: Gi,
2025
- getOffsetParent: qs,
2026
- getElementRects: Xi,
2025
+ getOffsetParent: Xs,
2026
+ getElementRects: Yi,
2027
2027
  getClientRects: Bi,
2028
- getDimensions: qi,
2028
+ getDimensions: Xi,
2029
2029
  getScale: Ie,
2030
2030
  isElement: Z,
2031
2031
  isRTL: Ji
2032
2032
  };
2033
- function Xs(s, e) {
2033
+ function Ys(s, e) {
2034
2034
  return s.x === e.x && s.y === e.y && s.width === e.width && s.height === e.height;
2035
2035
  }
2036
2036
  function Qi(s, e, t) {
@@ -2045,37 +2045,37 @@ function Qi(s, e, t) {
2045
2045
  const f = s.getBoundingClientRect(), {
2046
2046
  left: u,
2047
2047
  top: g,
2048
- width: v,
2048
+ width: b,
2049
2049
  height: y
2050
2050
  } = f;
2051
- if (d || e(), !v || !y)
2051
+ if (d || e(), !b || !y)
2052
2052
  return;
2053
- const b = rt(g), x = rt(r.clientWidth - (u + v)), C = rt(r.clientHeight - (g + y)), _ = rt(u), z = {
2054
- rootMargin: -b + "px " + -x + "px " + -C + "px " + -_ + "px",
2053
+ const v = rt(g), w = rt(r.clientWidth - (u + b)), k = rt(r.clientHeight - (g + y)), P = rt(u), V = {
2054
+ rootMargin: -v + "px " + -w + "px " + -k + "px " + -P + "px",
2055
2055
  threshold: ie(0, pe(1, h)) || 1
2056
2056
  };
2057
- let K = !0;
2058
- function G(M) {
2059
- const S = M[0].intersectionRatio;
2060
- if (!Xs(f, s.getBoundingClientRect()))
2057
+ let R = !0;
2058
+ function G(L) {
2059
+ const C = L[0].intersectionRatio;
2060
+ if (!Ys(f, s.getBoundingClientRect()))
2061
2061
  return a();
2062
- if (S !== h) {
2063
- if (!K)
2062
+ if (C !== h) {
2063
+ if (!R)
2064
2064
  return a();
2065
- S ? a(!1, S) : i = setTimeout(() => {
2065
+ C ? a(!1, C) : i = setTimeout(() => {
2066
2066
  a(!1, 1e-7);
2067
2067
  }, 1e3);
2068
2068
  }
2069
- K = !1;
2069
+ R = !1;
2070
2070
  }
2071
2071
  try {
2072
2072
  o = new IntersectionObserver(G, {
2073
- ...z,
2073
+ ...V,
2074
2074
  // Handle <iframe>s
2075
2075
  root: r.ownerDocument
2076
2076
  });
2077
2077
  } catch {
2078
- o = new IntersectionObserver(G, z);
2078
+ o = new IntersectionObserver(G, V);
2079
2079
  }
2080
2080
  o.observe(s);
2081
2081
  }
@@ -2092,35 +2092,35 @@ function Zi(s, e, t, o) {
2092
2092
  elementResize: n = typeof ResizeObserver == "function",
2093
2093
  layoutShift: a = typeof IntersectionObserver == "function",
2094
2094
  animationFrame: l = !1
2095
- } = o, c = Zt(s), d = i || r ? [...c ? Xe(c) : [], ...e ? Xe(e) : []] : [];
2096
- d.forEach((b) => {
2097
- i && b.addEventListener("scroll", t), r && b.addEventListener("resize", t);
2095
+ } = o, c = Zt(s), d = i || r ? [...c ? Ye(c) : [], ...e ? Ye(e) : []] : [];
2096
+ d.forEach((v) => {
2097
+ i && v.addEventListener("scroll", t), r && v.addEventListener("resize", t);
2098
2098
  });
2099
2099
  const h = c && a ? Qi(c, t, r) : null;
2100
2100
  let f = -1, u = null;
2101
- n && (u = new ResizeObserver((b) => {
2102
- let [x] = b;
2103
- x && x.target === c && u && e && (u.unobserve(e), cancelAnimationFrame(f), f = requestAnimationFrame(() => {
2104
- var C;
2105
- (C = u) == null || C.observe(e);
2101
+ n && (u = new ResizeObserver((v) => {
2102
+ let [w] = v;
2103
+ w && w.target === c && u && e && (u.unobserve(e), cancelAnimationFrame(f), f = requestAnimationFrame(() => {
2104
+ var k;
2105
+ (k = u) == null || k.observe(e);
2106
2106
  })), t();
2107
2107
  }), c && !l && u.observe(c), e && u.observe(e));
2108
- let g, v = l ? Oe(s) : null;
2108
+ let g, b = l ? Oe(s) : null;
2109
2109
  l && y();
2110
2110
  function y() {
2111
- const b = Oe(s);
2112
- v && !Xs(v, b) && t(), v = b, g = requestAnimationFrame(y);
2111
+ const v = Oe(s);
2112
+ b && !Ys(b, v) && t(), b = v, g = requestAnimationFrame(y);
2113
2113
  }
2114
2114
  return t(), () => {
2115
- var b;
2116
- d.forEach((x) => {
2117
- i && x.removeEventListener("scroll", t), r && x.removeEventListener("resize", t);
2118
- }), h == null || h(), (b = u) == null || b.disconnect(), u = null, l && cancelAnimationFrame(g);
2115
+ var v;
2116
+ d.forEach((w) => {
2117
+ i && w.removeEventListener("scroll", t), r && w.removeEventListener("resize", t);
2118
+ }), h == null || h(), (v = u) == null || v.disconnect(), u = null, l && cancelAnimationFrame(g);
2119
2119
  };
2120
2120
  }
2121
2121
  const er = Li, tr = Ei, sr = Ii, Mt = Ai, or = Oi, ir = (s, e, t) => {
2122
2122
  const o = /* @__PURE__ */ new Map(), i = t ?? {}, r = {
2123
- ...Ys,
2123
+ ...qs,
2124
2124
  ...i.platform,
2125
2125
  _c: o
2126
2126
  };
@@ -2245,18 +2245,18 @@ function Ue(s, e, t = {}) {
2245
2245
  let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n = vs(t, r);
2246
2246
  const a = t.lockPlacement === "freeze";
2247
2247
  let l = !1;
2248
- const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...Ys, getOffsetParent: () => bs(s) } : void 0), h = () => {
2248
+ const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...qs, getOffsetParent: () => bs(s) } : void 0), h = () => {
2249
2249
  var u;
2250
2250
  (u = t.beforeCompute) == null || u.call(t), ir(e, s, {
2251
2251
  placement: i,
2252
2252
  strategy: o,
2253
2253
  middleware: n,
2254
2254
  ...d ? { platform: d } : {}
2255
- }).then(({ x: g, y: v, placement: y, middlewareData: b }) => {
2256
- var x, C;
2257
- if (s.style.left = `${g}px`, s.style.top = `${v}px`, t.arrow && ur(t.arrow.element, y, b.arrow), a && !l && (l = !0, i = y, r = !1, n = vs(t, !1)), (x = t.onPlaced) == null || x.call(t, y), (C = t.onComputed) == null || C.call(t, { x: g, y: v, placement: y }), t.onDrift && e instanceof Element) {
2258
- const _ = c ? bs(s) : window, N = cr({ panel: s, reference: e, expectedX: g, expectedY: v, offsetParent: _ });
2259
- N && t.onDrift(N);
2255
+ }).then(({ x: g, y: b, placement: y, middlewareData: v }) => {
2256
+ var w, k;
2257
+ if (s.style.left = `${g}px`, s.style.top = `${b}px`, t.arrow && ur(t.arrow.element, y, v.arrow), a && !l && (l = !0, i = y, r = !1, n = vs(t, !1)), (w = t.onPlaced) == null || w.call(t, y), (k = t.onComputed) == null || k.call(t, { x: g, y: b, placement: y }), t.onDrift && e instanceof Element) {
2258
+ const P = c ? bs(s) : window, M = cr({ panel: s, reference: e, expectedX: g, expectedY: b, offsetParent: P });
2259
+ M && t.onDrift(M);
2260
2260
  }
2261
2261
  });
2262
2262
  };
@@ -2278,38 +2278,38 @@ function pr(s) {
2278
2278
  const h = {
2279
2279
  getBoundingClientRect: () => d ?? s.trigger.getBoundingClientRect(),
2280
2280
  contextElement: s.trigger
2281
- }, f = (x) => {
2282
- d = new DOMRect(x.clientX, x.clientY, 0, 0), n == null || n.update();
2281
+ }, f = (w) => {
2282
+ d = new DOMRect(w.clientX, w.clientY, 0, 0), n == null || n.update();
2283
2283
  }, u = () => {
2284
2284
  l && clearTimeout(l), c && clearTimeout(c), l = c = void 0;
2285
2285
  }, g = () => {
2286
- var C;
2286
+ var k;
2287
2287
  if (u(), a)
2288
2288
  return;
2289
- (C = s.onBeforeShow) == null || C.call(s), a = !0, e.append(r);
2290
- const x = s.followCursor ? h : s.trigger;
2291
- n = Ue(r, x, {
2289
+ (k = s.onBeforeShow) == null || k.call(s), a = !0, e.append(r);
2290
+ const w = s.followCursor ? h : s.trigger;
2291
+ n = Ue(r, w, {
2292
2292
  placement: t,
2293
2293
  strategy: s.strategy,
2294
2294
  offset: s.offset ?? 8,
2295
2295
  inheritThemeFrom: s.inheritThemeFrom ?? s.trigger
2296
2296
  }), s.followCursor && s.trigger.addEventListener("mousemove", f), r.classList.add(o);
2297
- }, v = () => {
2297
+ }, b = () => {
2298
2298
  u(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
2299
2299
  }, y = () => {
2300
2300
  u(), i.show > 0 ? l = setTimeout(g, i.show) : g();
2301
- }, b = () => {
2302
- u(), i.hide > 0 ? c = setTimeout(v, i.hide) : v();
2301
+ }, v = () => {
2302
+ u(), i.hide > 0 ? c = setTimeout(b, i.hide) : b();
2303
2303
  };
2304
- return s.trigger.addEventListener("mouseenter", y), s.trigger.addEventListener("mouseleave", b), s.trigger.addEventListener("focusin", y), s.trigger.addEventListener("focusout", b), {
2304
+ return s.trigger.addEventListener("mouseenter", y), s.trigger.addEventListener("mouseleave", v), s.trigger.addEventListener("focusin", y), s.trigger.addEventListener("focusout", v), {
2305
2305
  element: r,
2306
2306
  get isVisible() {
2307
2307
  return a;
2308
2308
  },
2309
2309
  show: g,
2310
- hide: v,
2310
+ hide: b,
2311
2311
  destroy() {
2312
- s.trigger.removeEventListener("mouseenter", y), s.trigger.removeEventListener("mouseleave", b), s.trigger.removeEventListener("focusin", y), s.trigger.removeEventListener("focusout", b), v();
2312
+ s.trigger.removeEventListener("mouseenter", y), s.trigger.removeEventListener("mouseleave", v), s.trigger.removeEventListener("focusin", y), s.trigger.removeEventListener("focusout", v), b();
2313
2313
  }
2314
2314
  };
2315
2315
  }
@@ -2348,11 +2348,11 @@ function fr(s) {
2348
2348
  }
2349
2349
  };
2350
2350
  }
2351
- const Js = ["INIT", "DATA", "UI", "INTERACTION"], ae = fi("MULTISELECT", Js), nt = ae.loggers.INIT, B = ae.loggers.DATA, Q = ae.loggers.UI, W = ae.loggers.INTERACTION, zr = Js.map((s) => `MULTISELECT:${s}`);
2352
- function $r() {
2351
+ const Js = ["INIT", "DATA", "UI", "INTERACTION"], ae = fi("MULTISELECT", Js), nt = ae.loggers.INIT, K = ae.loggers.DATA, Q = ae.loggers.UI, W = ae.loggers.INTERACTION, zr = Js.map((s) => `MULTISELECT:${s}`);
2352
+ function Dr() {
2353
2353
  ae.enableLogging();
2354
2354
  }
2355
- function Dr() {
2355
+ function $r() {
2356
2356
  ae.disableLogging();
2357
2357
  }
2358
2358
  function Vr(s) {
@@ -2518,94 +2518,94 @@ function ce(s, e) {
2518
2518
  return s[e];
2519
2519
  }
2520
2520
  function vr(s = {}) {
2521
- const e = s.idMember, t = s.pathMember, o = s.getPathCallback, i = s.parentPathMember, r = s.levelMember, n = s.hasChildrenMember, a = s.isSelectableMember, l = s.getIsSelectableCallback, c = s.treeId || "multiselect-tree", d = s.orderMember, h = s.getDisplayValueCallback, f = je(i), u = je(r), g = je(n), v = je(a), y = "x", b = s.treePathSeparator || ".", x = ws();
2522
- let C = 0, _ = null;
2523
- const N = (M) => o ? o(M) : t ? ce(M, t) : void 0, z = {
2524
- treePathSeparator: b,
2525
- root: x,
2521
+ const e = s.idMember, t = s.pathMember, o = s.getPathCallback, i = s.parentPathMember, r = s.levelMember, n = s.hasChildrenMember, a = s.isSelectableMember, l = s.getIsSelectableCallback, c = s.treeId || "multiselect-tree", d = s.orderMember, h = s.getDisplayValueCallback, f = je(i), u = je(r), g = je(n), b = je(a), y = "x", v = s.treePathSeparator || ".", w = ws();
2522
+ let k = 0, P = null;
2523
+ const M = (L) => o ? o(L) : t ? ce(L, t) : void 0, V = {
2524
+ treePathSeparator: v,
2525
+ root: w,
2526
2526
  get tree() {
2527
- return Object.values(x.children);
2527
+ return Object.values(w.children);
2528
2528
  },
2529
2529
  /**
2530
2530
  * Every node in depth-first render order (a parent immediately precedes
2531
2531
  * its subtree). Computed once per `insertArray` and cached.
2532
2532
  */
2533
2533
  get flatNodes() {
2534
- if (_) return _;
2535
- const M = [], S = s.isSorted ?? !1, I = s.sortCallback;
2536
- function P(V) {
2537
- let T = Object.values(V.children);
2538
- S && I && T.length > 0 && (T = I(T));
2539
- for (const R of T)
2540
- M.push(R), R.hasChildren && P(R);
2534
+ if (P) return P;
2535
+ const L = [], C = s.isSorted ?? !1, O = s.sortCallback;
2536
+ function I(N) {
2537
+ let S = Object.values(N.children);
2538
+ C && O && S.length > 0 && (S = O(S));
2539
+ for (const H of S)
2540
+ L.push(H), H.hasChildren && I(H);
2541
2541
  }
2542
- return P(x), _ = M, M;
2542
+ return I(w), P = L, L;
2543
2543
  },
2544
- insertArray(M) {
2545
- M = M || [], x.children = {}, C = 0, _ = null;
2546
- const S = [];
2547
- let I = M.map((P, V) => {
2548
- const T = ws();
2549
- T.treeId = c, T.id = e ? ce(P, e) : void 0;
2550
- const R = N(P);
2551
- return R == null || R === "" || typeof R != "string" ? (S.push(`index ${V}`), null) : (T.path = R, (T.id === void 0 || T.id === -1) && (T.id = R), f ? T.parentPath = gr(T.path, b) : T.parentPath = ce(P, i), T.pathSegment = _s(
2552
- xs(T.path, T.parentPath ?? "", b),
2544
+ insertArray(L) {
2545
+ L = L || [], w.children = {}, k = 0, P = null;
2546
+ const C = [];
2547
+ let O = L.map((I, N) => {
2548
+ const S = ws();
2549
+ S.treeId = c, S.id = e ? ce(I, e) : void 0;
2550
+ const H = M(I);
2551
+ return H == null || H === "" || typeof H != "string" ? (C.push(`index ${N}`), null) : (S.path = H, (S.id === void 0 || S.id === -1) && (S.id = H), f ? S.parentPath = gr(S.path, v) : S.parentPath = ce(I, i), S.pathSegment = _s(
2552
+ xs(S.path, S.parentPath ?? "", v),
2553
2553
  0,
2554
2554
  1,
2555
- b
2556
- ), u ? T.level = br(T.path, b) : T.level = ce(P, r), g || (T.hasChildren = ce(P, n)), T.data = P, T);
2557
- }).filter((P) => P !== null);
2558
- s.isSorted || (s.sortCallback ? I = s.sortCallback(I) : I = G(I));
2559
- for (const P of I)
2560
- K(P.parentPath ?? "", P);
2561
- if (l || !v)
2562
- for (const P of I)
2555
+ v
2556
+ ), u ? S.level = br(S.path, v) : S.level = ce(I, r), g || (S.hasChildren = ce(I, n)), S.data = I, S);
2557
+ }).filter((I) => I !== null);
2558
+ s.isSorted || (s.sortCallback ? O = s.sortCallback(O) : O = G(O));
2559
+ for (const I of O)
2560
+ R(I.parentPath ?? "", I);
2561
+ if (l || !b)
2562
+ for (const I of O)
2563
2563
  if (l)
2564
- P.isSelectable = l(P) !== !1;
2564
+ I.isSelectable = l(I) !== !1;
2565
2565
  else {
2566
- const V = ce(P.data, a);
2567
- P.isSelectable = V == null ? !0 : !!V;
2566
+ const N = ce(I.data, a);
2567
+ I.isSelectable = N == null ? !0 : !!N;
2568
2568
  }
2569
- S.length > 0 && console.warn(
2570
- `[ltree ${c}] ${S.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${S.slice(0, 5).join(", ")}` + (S.length > 5 ? ", …" : "")
2569
+ C.length > 0 && console.warn(
2570
+ `[ltree ${c}] ${C.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${C.slice(0, 5).join(", ")}` + (C.length > 5 ? ", …" : "")
2571
2571
  );
2572
2572
  },
2573
- getNodeByPath(M, S) {
2574
- let I = S || x;
2575
- if (M) {
2576
- const P = M.split(b);
2577
- for (let V = 0; V < P.length; V++) {
2578
- const T = y + P[V];
2579
- if (!I.children.hasOwnProperty(T))
2573
+ getNodeByPath(L, C) {
2574
+ let O = C || w;
2575
+ if (L) {
2576
+ const I = L.split(v);
2577
+ for (let N = 0; N < I.length; N++) {
2578
+ const S = y + I[N];
2579
+ if (!O.children.hasOwnProperty(S))
2580
2580
  return null;
2581
- I = I.children[T];
2581
+ O = O.children[S];
2582
2582
  }
2583
2583
  }
2584
- return I;
2584
+ return O;
2585
2585
  }
2586
2586
  };
2587
- function K(M, S) {
2588
- const I = z.getNodeByPath(M);
2589
- if (!I)
2590
- return `Node: ${S.path} - Could not find parent node: ${M}`;
2591
- u && (S.level = (I.level || 0) + 1);
2592
- const P = y + _s(xs(S.path, M, b), 0, 1, b);
2593
- return I.children.hasOwnProperty(P) || (I.children[P] = S, g && !I.hasChildren && (I.hasChildren = !0), C = Math.max(C, S.level || 0)), null;
2594
- }
2595
- function G(M) {
2596
- return M.sort((S, I) => {
2597
- const P = S.level || 0, V = I.level || 0;
2598
- if (P !== V) return P - V;
2599
- if (S.parentPath !== I.parentPath)
2600
- return S.parentPath ? I.parentPath ? S.parentPath.localeCompare(I.parentPath) : 1 : -1;
2601
- if (d && S.data && I.data) {
2602
- const T = ce(S.data, d) ?? 0, R = ce(I.data, d) ?? 0;
2603
- if (T !== R) return T - R;
2587
+ function R(L, C) {
2588
+ const O = V.getNodeByPath(L);
2589
+ if (!O)
2590
+ return `Node: ${C.path} - Could not find parent node: ${L}`;
2591
+ u && (C.level = (O.level || 0) + 1);
2592
+ const I = y + _s(xs(C.path, L, v), 0, 1, v);
2593
+ return O.children.hasOwnProperty(I) || (O.children[I] = C, g && !O.hasChildren && (O.hasChildren = !0), k = Math.max(k, C.level || 0)), null;
2594
+ }
2595
+ function G(L) {
2596
+ return L.sort((C, O) => {
2597
+ const I = C.level || 0, N = O.level || 0;
2598
+ if (I !== N) return I - N;
2599
+ if (C.parentPath !== O.parentPath)
2600
+ return C.parentPath ? O.parentPath ? C.parentPath.localeCompare(O.parentPath) : 1 : -1;
2601
+ if (d && C.data && O.data) {
2602
+ const S = ce(C.data, d) ?? 0, H = ce(O.data, d) ?? 0;
2603
+ if (S !== H) return S - H;
2604
2604
  }
2605
- return h ? h(S).localeCompare(h(I)) : S.path.localeCompare(I.path);
2605
+ return h ? h(C).localeCompare(h(O)) : C.path.localeCompare(O.path);
2606
2606
  });
2607
2607
  }
2608
- return z;
2608
+ return V;
2609
2609
  }
2610
2610
  function ks(s, e) {
2611
2611
  const t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), n = (l) => {
@@ -2728,6 +2728,9 @@ class wr {
2728
2728
  // Releases this instance's page-scroll lock (null when not locked). The core
2729
2729
  // helper is ref-counted; we hold at most one lock per instance. See lockBodyScroll().
2730
2730
  m(this, "bodyScrollUnlock", null);
2731
+ // Saved inline `overflow-x` of <html> while a fullscreen sheet clamps the host
2732
+ // document's horizontal overflow (null when not clamped). See clampDocumentOverflowX().
2733
+ m(this, "overflowXClamp", null);
2731
2734
  // Detaches the visualViewport listener that shrinks the fullscreen sheet to sit
2732
2735
  // above the soft keyboard (null when not attached). See observeKeyboardInset().
2733
2736
  m(this, "keyboardInsetCleanup", null);
@@ -2971,7 +2974,7 @@ class wr {
2971
2974
  try {
2972
2975
  this.allOptions = JSON.parse(e);
2973
2976
  } catch (t) {
2974
- B.error(`[${this.instanceId}] Failed to parse data-options:`, t), this.allOptions = [];
2977
+ K.error(`[${this.instanceId}] Failed to parse data-options:`, t), this.allOptions = [];
2975
2978
  }
2976
2979
  else this.options.options && (this.allOptions = this.options.options);
2977
2980
  this.filteredOptions = [...this.allOptions], this.isTreeMode() && this.buildTree();
@@ -3137,6 +3140,27 @@ class wr {
3137
3140
  const n = t.filter((a) => r.has(a.path));
3138
3141
  this.treeNodes = n, this.filteredOptions = n.map((a) => a.data);
3139
3142
  }
3143
+ /**
3144
+ * Tree + `search-mode="navigate"`: keep the ENTIRE tree visible (the tree is always
3145
+ * fully expanded, so `flatNodes` is the whole thing) and record which visible rows
3146
+ * match the term in `matchingIndices` — the flat-list navigate behavior, but over
3147
+ * `treeNodes`. Filter mode collapses the hierarchy to matches + ancestors; navigate
3148
+ * mode instead leaves the structure intact so the user can jump between matches
3149
+ * (Ctrl+Arrow on desktop, the fullscreen navigator on touch). Returns the index of
3150
+ * the first match, or -1 (no term / no matches), so the caller can set focus.
3151
+ */
3152
+ rebuildTreeVisibleForNavigate() {
3153
+ if (this.matchingIndices.clear(), !this.tree)
3154
+ return this.treeNodes = [], this.filteredOptions = [], -1;
3155
+ const e = this.tree.flatNodes;
3156
+ this.treeNodes = e, this.filteredOptions = e.map((i) => i.data);
3157
+ const t = (this.searchTerm || "").trim().toLowerCase();
3158
+ if (!t) return -1;
3159
+ let o = -1;
3160
+ return e.forEach((i, r) => {
3161
+ this.getItemSearchValue(i.data).toLowerCase().includes(t) && (this.matchingIndices.add(r), o === -1 && (o = r));
3162
+ }), o;
3163
+ }
3140
3164
  /**
3141
3165
  * (Re)compute `isRTL` from the host's `dir` (or an RTL ancestor) and derive the
3142
3166
  * direction-mirrored badges position. Pure state — callers apply the DOM effects
@@ -3301,14 +3325,14 @@ class wr {
3301
3325
  if (!(d.getIsVisibleCallback ? d.getIsVisibleCallback(this) : d.isVisible ?? !0)) return;
3302
3326
  let u;
3303
3327
  d.getIsDisabledCallback ? u = d.getIsDisabledCallback(this) : d.isDisabled !== void 0 ? u = d.isDisabled : u = this.getBuiltInActionDisabled(d.action);
3304
- const g = u ? " disabled" : "", v = d.getTextCallback ? d.getTextCallback(this) : d.text;
3328
+ const g = u ? " disabled" : "", b = d.getTextCallback ? d.getTextCallback(this) : d.text;
3305
3329
  let y = "";
3306
3330
  if (d.getClassCallback) {
3307
- const C = d.getClassCallback(this);
3308
- y = Array.isArray(C) ? ` ${C.join(" ")}` : C ? ` ${C}` : "";
3331
+ const k = d.getClassCallback(this);
3332
+ y = Array.isArray(k) ? ` ${k.join(" ")}` : k ? ` ${k}` : "";
3309
3333
  } else d.cssClass && (y = ` ${d.cssClass}`);
3310
- const b = Math.max(1, Math.floor(d.row ?? 1)), x = `<button type="button"${g} class="ms__action-btn${y}" data-action="${d.action}" data-button-index="${h}">${v}</button>`;
3311
- l.has(b) || l.set(b, []), l.get(b).push(x);
3334
+ const v = Math.max(1, Math.floor(d.row ?? 1)), w = `<button type="button"${g} class="ms__action-btn${y}" data-action="${d.action}" data-button-index="${h}">${b}</button>`;
3335
+ l.has(v) || l.set(v, []), l.get(v).push(w);
3312
3336
  }), l.size === 0) return "";
3313
3337
  const c = Array.from(l.keys()).sort((d, h) => d - h).map((d) => `<div class="ms__actions-row" data-row="${d}">${l.get(d).join("")}</div>`).join("");
3314
3338
  return `<div class="ms__actions${i}${r}${n}${a}">${c}</div>`;
@@ -3326,8 +3350,8 @@ class wr {
3326
3350
  isMatched: d,
3327
3351
  isDisabled: a,
3328
3352
  isTreeNode: !1
3329
- }, v = this.options.renderOptionContentCallback(e, g);
3330
- typeof v == "string" ? u += v : u += v.outerHTML;
3353
+ }, b = this.options.renderOptionContentCallback(e, g);
3354
+ typeof b == "string" ? u += b : u += b.outerHTML;
3331
3355
  } else
3332
3356
  r && (u += `<span class="ms__option-icon">${r}</span>`), u += '<div class="ms__option-text">', u += `<div class="ms__option-title">${this.highlightMatch(i, this.searchTerm)}</div>`, n && (u += `<div class="ms__option-subtitle">${n}</div>`), u += "</div>";
3333
3357
  return u += this.renderOptionInfoButton(), u += "</div>", u += "</div>", u;
@@ -3351,16 +3375,16 @@ class wr {
3351
3375
  * chevron/toggle — every node is just a normal, selectable option.
3352
3376
  */
3353
3377
  renderTreeNode(e, t) {
3354
- 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 ? es(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, h = c ? d === "checked" : this.selectedValues.has(String(i)), f = d === "indeterminate", u = t === this.focusedIndex, g = e.isSelectable !== !1, v = e.level ?? 1, y = Math.max(0, v - 1), b = ["ms__option", "ms__option--tree"];
3355
- b.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), h && b.push("ms__option--selected"), f && b.push("ms__option--indeterminate"), u && b.push("ms__option--focused"), l && b.push("ms__option--disabled"), g || b.push("ms__option--tree-unselectable");
3356
- const x = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", C = g ? "" : ' data-selectable="false"';
3357
- let _ = `<div class="${b.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${v}" style="--ms-tree-depth: ${y};"${x}${C}>`;
3358
- if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && g && (_ += `<input type="checkbox" class="${f ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${h ? "checked" : ""}${f ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), _ += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
3359
- const N = {
3378
+ const o = e.data, i = this.getItemValue(o), r = this.getItemDisplayValue(o), n = this.getItemIcon(o), a = this.getItemSubtitle(o), l = this.getItemDisabled(o), c = this.isCascadeMode() && this.cascadeIndex, d = c ? es(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, h = c ? d === "checked" : this.selectedValues.has(String(i)), f = d === "indeterminate", u = t === this.focusedIndex, g = this.matchingIndices.has(t), b = e.isSelectable !== !1, y = e.level ?? 1, v = Math.max(0, y - 1), w = ["ms__option", "ms__option--tree"];
3379
+ w.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), h && w.push("ms__option--selected"), f && w.push("ms__option--indeterminate"), u && w.push("ms__option--focused"), g && w.push("ms__option--matched"), l && w.push("ms__option--disabled"), b || w.push("ms__option--tree-unselectable");
3380
+ const k = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", P = b ? "" : ' data-selectable="false"';
3381
+ let M = `<div class="${w.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${y}" style="--ms-tree-depth: ${v};"${k}${P}>`;
3382
+ if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && b && (M += `<input type="checkbox" class="${f ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${h ? "checked" : ""}${f ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), M += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
3383
+ const V = {
3360
3384
  index: t,
3361
3385
  isSelected: h,
3362
3386
  isFocused: u,
3363
- isMatched: !1,
3387
+ isMatched: g,
3364
3388
  isDisabled: l,
3365
3389
  // Tree metadata — lets the callback branch on depth / branch-vs-leaf /
3366
3390
  // tristate without re-deriving any of it from the raw data item.
@@ -3368,16 +3392,16 @@ class wr {
3368
3392
  isBranch: e.hasChildren,
3369
3393
  isLeaf: !e.hasChildren,
3370
3394
  childCount: Object.keys(e.children).length,
3371
- level: v,
3372
- depth: y,
3395
+ level: y,
3396
+ depth: v,
3373
3397
  path: e.path,
3374
- isSelectable: g,
3398
+ isSelectable: b,
3375
3399
  isIndeterminate: f
3376
- }, z = this.options.renderOptionContentCallback(o, N);
3377
- _ += typeof z == "string" ? z : z.outerHTML;
3400
+ }, R = this.options.renderOptionContentCallback(o, V);
3401
+ M += typeof R == "string" ? R : R.outerHTML;
3378
3402
  } else
3379
- n && (_ += `<span class="ms__option-icon">${n}</span>`), _ += '<div class="ms__option-text">', _ += `<div class="ms__option-title">${this.highlightMatch(r, this.searchTerm)}</div>`, a && (_ += `<div class="ms__option-subtitle">${a}</div>`), _ += "</div>";
3380
- return _ += this.renderOptionInfoButton(), _ += "</div>", _ += "</div>", _;
3403
+ 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>";
3404
+ return M += this.renderOptionInfoButton(), M += "</div>", M += "</div>", M;
3381
3405
  }
3382
3406
  highlightMatch(e, t) {
3383
3407
  if (!t) return e;
@@ -3510,14 +3534,14 @@ class wr {
3510
3534
  if (this.options.beforeSearchCallback) {
3511
3535
  const o = this.options.beforeSearchCallback(e);
3512
3536
  if (o === null) {
3513
- B.debug(`[${this.instanceId}] beforeSearchCallback blocked search for term:`, e), this.abortInFlightSearch(), this.matchingIndices.clear(), this.isTreeMode() ? (this.searchTerm = "", this.rebuildTreeVisible()) : this.filteredOptions = [...this.allOptions], this.renderDropdown();
3537
+ K.debug(`[${this.instanceId}] beforeSearchCallback blocked search for term:`, e), this.abortInFlightSearch(), this.matchingIndices.clear(), this.isTreeMode() ? (this.searchTerm = "", this.rebuildTreeVisible()) : this.filteredOptions = [...this.allOptions], this.renderDropdown();
3514
3538
  return;
3515
3539
  }
3516
- t = o, t !== e && B.debug(`[${this.instanceId}] beforeSearchCallback transformed: "${e}" -> "${t}"`);
3540
+ t = o, t !== e && K.debug(`[${this.instanceId}] beforeSearchCallback transformed: "${e}" -> "${t}"`);
3517
3541
  }
3518
3542
  if (this.options.searchCallback) {
3519
3543
  if (t.length < this.options.minSearchLength) {
3520
- this.abortInFlightSearch(), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? (this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions], B.debug(`[${this.instanceId}] Search term below minimum, showing ${this.allOptions.length} initial options`)) : (this.filteredOptions = [], this.isTreeMode() && (this.treeNodes = [])), this.matchingIndices.clear(), this.renderDropdown();
3544
+ this.abortInFlightSearch(), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? (this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions], K.debug(`[${this.instanceId}] Search term below minimum, showing ${this.allOptions.length} initial options`)) : (this.filteredOptions = [], this.isTreeMode() && (this.treeNodes = [])), this.matchingIndices.clear(), this.renderDropdown();
3521
3545
  return;
3522
3546
  }
3523
3547
  this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0);
@@ -3527,6 +3551,11 @@ class wr {
3527
3551
  }, o) : await this.performAsyncSearch(e, t);
3528
3552
  } else {
3529
3553
  if (this.isTreeMode()) {
3554
+ if ((this.options.searchMode || "filter") === "navigate") {
3555
+ const o = this.rebuildTreeVisibleForNavigate();
3556
+ this.searchTerm.trim() ? o >= 0 && (this.focusedIndex = o) : this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown(), this.focusedIndex >= 0 && this.scrollToFocused(), this.updateFullscreenNav();
3557
+ return;
3558
+ }
3530
3559
  this.rebuildTreeVisible(), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown();
3531
3560
  return;
3532
3561
  }
@@ -3535,13 +3564,13 @@ class wr {
3535
3564
  else {
3536
3565
  const o = this.options.searchMode || "filter", i = t.toLowerCase();
3537
3566
  if (o === "filter")
3538
- this.filteredOptions = this.allOptions.filter((r) => this.getItemSearchValue(r).toLowerCase().includes(i)), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, B.debug(`[${this.instanceId}] Filter mode: ${this.filteredOptions.length} matches for "${t}"`);
3567
+ this.filteredOptions = this.allOptions.filter((r) => this.getItemSearchValue(r).toLowerCase().includes(i)), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, K.debug(`[${this.instanceId}] Filter mode: ${this.filteredOptions.length} matches for "${t}"`);
3539
3568
  else {
3540
3569
  this.filteredOptions = [...this.allOptions], this.matchingIndices.clear();
3541
3570
  let r = -1;
3542
3571
  this.allOptions.forEach((n, a) => {
3543
3572
  this.getItemSearchValue(n).toLowerCase().includes(i) && (this.matchingIndices.add(a), r === -1 && (r = a));
3544
- }), r >= 0 ? (this.focusedIndex = r, B.debug(`[${this.instanceId}] Navigate mode: ${this.matchingIndices.size} matches, jumped to index ${r}`)) : B.debug(`[${this.instanceId}] Navigate mode: No matches found, keeping previous focus`);
3573
+ }), r >= 0 ? (this.focusedIndex = r, K.debug(`[${this.instanceId}] Navigate mode: ${this.matchingIndices.size} matches, jumped to index ${r}`)) : K.debug(`[${this.instanceId}] Navigate mode: No matches found, keeping previous focus`);
3545
3574
  }
3546
3575
  }
3547
3576
  this.renderDropdown(), this.options.searchMode === "navigate" && this.focusedIndex >= 0 && this.scrollToFocused(), this.updateFullscreenNav();
@@ -3565,15 +3594,15 @@ class wr {
3565
3594
  async performAsyncSearch(e, t) {
3566
3595
  this.abortInFlightSearch();
3567
3596
  const o = new AbortController();
3568
- this.searchAbortController = o, this.isLoading = !0, this.renderDropdown(), B.debug(`[${this.instanceId}] Loading data for search term:`, t);
3597
+ this.searchAbortController = o, this.isLoading = !0, this.renderDropdown(), K.debug(`[${this.instanceId}] Loading data for search term:`, t);
3569
3598
  try {
3570
3599
  const i = await this.options.searchCallback(t, o.signal);
3571
3600
  if (o.signal.aborted || this.searchTerm !== e) return;
3572
3601
  const r = i || [];
3573
- this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(r) : this.filteredOptions = [...r], this.isLoading = !1, this.matchingIndices.clear(), this.focusedIndex = this.options.isSearchEnabled && this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown(), B.debug(`[${this.instanceId}] Loaded ${r.length} results`);
3602
+ this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(r) : this.filteredOptions = [...r], this.isLoading = !1, this.matchingIndices.clear(), this.focusedIndex = this.options.isSearchEnabled && this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown(), K.debug(`[${this.instanceId}] Loaded ${r.length} results`);
3574
3603
  } catch (i) {
3575
3604
  if (o.signal.aborted) return;
3576
- B.error(`[${this.instanceId}] Error loading data:`, i), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions] : (this.filteredOptions = [], this.isTreeMode() && (this.treeNodes = [])), this.matchingIndices.clear(), this.renderDropdown();
3605
+ K.error(`[${this.instanceId}] Error loading data:`, i), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? this.isTreeMode() ? this.rebuildTreeVisibleFromMatches(this.allOptions) : this.filteredOptions = [...this.allOptions] : (this.filteredOptions = [], this.isTreeMode() && (this.treeNodes = [])), this.matchingIndices.clear(), this.renderDropdown();
3577
3606
  } finally {
3578
3607
  this.searchAbortController === o && (this.searchAbortController = void 0);
3579
3608
  }
@@ -3815,11 +3844,11 @@ class wr {
3815
3844
  async handleAddNew(e) {
3816
3845
  if (this.options.addNewCallback)
3817
3846
  try {
3818
- B.debug(`[${this.instanceId}] Adding new option:`, e);
3847
+ K.debug(`[${this.instanceId}] Adding new option:`, e);
3819
3848
  const t = await this.options.addNewCallback(e);
3820
3849
  this.allOptions.push(t), this.filteredOptions.push(t), this.selectOption(t), this.input.value = "", this.renderDropdown(), this.renderBadges(), this.options.isCloseOnSelect && this.close();
3821
3850
  } catch (t) {
3822
- B.error(`[${this.instanceId}] Error adding new option:`, t);
3851
+ K.error(`[${this.instanceId}] Error adding new option:`, t);
3823
3852
  }
3824
3853
  }
3825
3854
  selectOption(e) {
@@ -3973,6 +4002,32 @@ class wr {
3973
4002
  unlockBodyScroll() {
3974
4003
  this.bodyScrollUnlock && (this.bodyScrollUnlock(), this.bodyScrollUnlock = null);
3975
4004
  }
4005
+ /**
4006
+ * Clip the host document's horizontal overflow while a fullscreen sheet is open.
4007
+ *
4008
+ * A page that overflows horizontally (e.g. an unbreakable-wide token in a heading)
4009
+ * makes the mobile browser SHRINK-TO-FIT: it zooms the page out so the overflow fits,
4010
+ * which desyncs the visual viewport from the layout viewport. Our fullscreen sheet is
4011
+ * `position: fixed` — anchored to the LAYOUT viewport — so under that zoom it no longer
4012
+ * lands flush against the physical screen edges, and the top slips under the system bar
4013
+ * (looks like "the bar covers the sheet"). This is NOT a safe-area problem; safe-area
4014
+ * insets are 0 in that state. Clamping `overflow-x: hidden` on <html>/<body> removes the
4015
+ * overflow, so the browser drops the zoom and the sheet sits flush. Complements
4016
+ * lockBodyScroll() (vertical axis); the saved inline value is restored on close.
4017
+ *
4018
+ * Only <html> is touched (not <body>): clipping the root's horizontal overflow is
4019
+ * enough to collapse the scrollWidth and cancel the shrink-to-fit, and it avoids
4020
+ * conflicting with core's lockBodyScroll(), which owns <body>'s `overflow`. Idempotent.
4021
+ */
4022
+ clampDocumentOverflowX() {
4023
+ if (this.overflowXClamp || typeof document > "u") return;
4024
+ const e = document.documentElement;
4025
+ this.overflowXClamp = { html: e.style.overflowX }, e.style.overflowX = "hidden";
4026
+ }
4027
+ /** Restore the <html> `overflow-x` clamped by clampDocumentOverflowX() (no-op if unset). */
4028
+ releaseDocumentOverflowX() {
4029
+ !this.overflowXClamp || typeof document > "u" || (document.documentElement.style.overflowX = this.overflowXClamp.html, this.overflowXClamp = null);
4030
+ }
3976
4031
  /**
3977
4032
  * While the fullscreen dropdown is open, keep it sitting above the soft keyboard.
3978
4033
  * Delegates to core's `observeKeyboardInset` (which tracks `window.visualViewport`
@@ -4041,11 +4096,11 @@ class wr {
4041
4096
  /** Stand up the fullscreen dropdown overlay: modifier class, header, scroll lock, focus. */
4042
4097
  enterFullscreen() {
4043
4098
  var e;
4044
- this.clearFloatingInlineGeometry(this.dropdown), this.dropdown.classList.add("ms__dropdown--fullscreen"), this.buildFullscreenHeader(), this.lockBodyScroll(), this.pushOverlayHistory(), this.observeKeyboardInset(), this.fullscreenSearchInput && (this.fullscreenSearchInput.value = this.searchTerm), this.updateFullscreenSearchClear(), this.options.fullscreenAutofocus ? (e = this.fullscreenSearchInput) == null || e.focus() : this.input.blur();
4099
+ this.clearFloatingInlineGeometry(this.dropdown), this.dropdown.classList.add("ms__dropdown--fullscreen"), this.buildFullscreenHeader(), this.lockBodyScroll(), this.clampDocumentOverflowX(), this.pushOverlayHistory(), this.observeKeyboardInset(), this.fullscreenSearchInput && (this.fullscreenSearchInput.value = this.searchTerm), this.updateFullscreenSearchClear(), this.options.fullscreenAutofocus ? (e = this.fullscreenSearchInput) == null || e.focus() : this.input.blur();
4045
4100
  }
4046
4101
  /** Tear down the fullscreen dropdown chrome and restore page scroll (no-op if floating). */
4047
4102
  exitFullscreen() {
4048
- this.unobserveKeyboardInset(), this.popOverlayHistory(), this.dropdown.classList.remove("ms__dropdown--fullscreen"), this.fullscreenHeader && (this.fullscreenHeader.remove(), this.fullscreenHeader = null, this.fullscreenSearchInput = null, this.fullscreenSearchClear = null, this.fullscreenNav = null, this.fullscreenNavCount = null, this.fullscreenNavPrev = null, this.fullscreenNavNext = null), this.unlockBodyScroll();
4103
+ this.unobserveKeyboardInset(), this.popOverlayHistory(), this.dropdown.classList.remove("ms__dropdown--fullscreen"), this.fullscreenHeader && (this.fullscreenHeader.remove(), this.fullscreenHeader = null, this.fullscreenSearchInput = null, this.fullscreenSearchClear = null, this.fullscreenNav = null, this.fullscreenNavCount = null, this.fullscreenNavPrev = null, this.fullscreenNavNext = null), this.unlockBodyScroll(), this.releaseDocumentOverflowX();
4049
4104
  }
4050
4105
  /**
4051
4106
  * Back-gesture handling for the fullscreen sheet. On open we push a history entry
@@ -4060,7 +4115,7 @@ class wr {
4060
4115
  /** Back gesture/button fired: our pushed entry is already gone, so just close the
4061
4116
  * sheet — WITHOUT popping history again (popOverlayHistory becomes a no-op). */
4062
4117
  handleOverlayPopstate() {
4063
- this.overlayHistoryActive && (this.overlayHistoryActive = !1, window.removeEventListener("popstate", this.onOverlayPopstate), this.isOpen && this.close());
4118
+ this.overlayHistoryActive && (this.overlayHistoryActive = !1, window.removeEventListener("popstate", this.onOverlayPopstate), this.isOpen ? this.close() : this.showSelectedPopover && this.hideSelectedPopover());
4064
4119
  }
4065
4120
  /** Programmatic close: remove the listener and pop the entry we pushed (so the
4066
4121
  * history stack returns to its pre-open state). No-op if a Back gesture already
@@ -4166,7 +4221,7 @@ class wr {
4166
4221
  this.selectedValues.add(String(o));
4167
4222
  }), this.reconcileSelectedOptions(), this.renderBadges();
4168
4223
  } catch (t) {
4169
- B.error(`[${this.instanceId}] Failed to parse initial values:`, t);
4224
+ K.error(`[${this.instanceId}] Failed to parse initial values:`, t);
4170
4225
  }
4171
4226
  }
4172
4227
  /**
@@ -4190,11 +4245,11 @@ class wr {
4190
4245
  showPopover() {
4191
4246
  Q.debug(`[${this.instanceId}] showPopover() called`), this.isOpen && this.close(), this.hideMessage(), this.showSelectedPopover = !0, this.renderSelectedPopover(), this.selectedPopover.classList.add("ms__selected-popover--visible");
4192
4247
  const e = this.options.virtualScrollThreshold ?? 100;
4193
- this.selectedValues.size >= e && this.selectedPopover.classList.add("ms__selected-popover--virtual"), this.presentationMode === "fullscreen" ? (this.selectedPopover.classList.add("ms__selected-popover--fullscreen"), this.lockBodyScroll()) : this.positionSelectedPopover();
4248
+ this.selectedValues.size >= e && this.selectedPopover.classList.add("ms__selected-popover--virtual"), this.presentationMode === "fullscreen" ? (this.selectedPopover.classList.add("ms__selected-popover--fullscreen"), this.lockBodyScroll(), this.clampDocumentOverflowX(), this.pushOverlayHistory()) : this.positionSelectedPopover();
4194
4249
  }
4195
4250
  hideSelectedPopover() {
4196
4251
  var e;
4197
- Q.debug(`[${this.instanceId}] hideSelectedPopover() called`), this.showSelectedPopover = !1, this.selectedPopover.classList.remove("ms__selected-popover--visible"), this.selectedPopover.classList.remove("ms__selected-popover--virtual"), this.selectedPopover.classList.remove("ms__selected-popover--fullscreen"), this.unlockBodyScroll(), this.hideMessage(), this.selectedPopoverPlacement = null, this.selectedPopoverVirtualScroll && (this.selectedPopoverVirtualScroll.destroy(), this.selectedPopoverVirtualScroll = null, this.selectedPopoverContainer = null), this.selectedPopoverCleanup && (this.selectedPopoverCleanup(), this.selectedPopoverCleanup = null);
4252
+ Q.debug(`[${this.instanceId}] hideSelectedPopover() called`), this.showSelectedPopover = !1, this.selectedPopover.classList.remove("ms__selected-popover--visible"), this.selectedPopover.classList.remove("ms__selected-popover--virtual"), this.selectedPopover.classList.remove("ms__selected-popover--fullscreen"), this.unlockBodyScroll(), this.releaseDocumentOverflowX(), this.popOverlayHistory(), this.hideMessage(), this.selectedPopoverPlacement = null, this.selectedPopoverVirtualScroll && (this.selectedPopoverVirtualScroll.destroy(), this.selectedPopoverVirtualScroll = null, this.selectedPopoverContainer = null), this.selectedPopoverCleanup && (this.selectedPopoverCleanup(), this.selectedPopoverCleanup = null);
4198
4253
  for (const t of Array.from(this.tooltips.keys()))
4199
4254
  t.startsWith("popover-") && ((e = this.tooltips.get(t)) == null || e.destroy(), this.tooltips.delete(t));
4200
4255
  }
@@ -4749,7 +4804,7 @@ function Or(s, e, t) {
4749
4804
  }
4750
4805
  return i.push(r), o.push(i), o;
4751
4806
  }
4752
- const Qs = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#e5e7eb, #3a3a3a));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: var(--ms-primary-bg-hover);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-remove-bg: var(--ms-text-color-3);--ms-badge-counter-remove-bg-hover: var(--ms-text-color-1);--ms-badge-counter-remove-color: var(--ms-text-color-on-accent);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-count-clear-bg-hover: var(--ms-accent-color);--ms-tooltip-bg: var(--base-tooltip-bg, var(--base-inverse-bg, light-dark(#333333, #f5f5f5)));--ms-tooltip-text-color: var(--base-tooltip-text-color, light-dark(#ffffff, #1a1a1a));--ms-selected-popover-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-input-padding-right: calc(4 * var(--ms-rem));--ms-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: rgba(107, 114, 128, .05);--ms-toggle-right: calc(1.2 * var(--ms-rem));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: calc(3.2 * var(--ms-rem));--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-input-current-width: auto;--ms-dropdown-width: var(--ms-input-current-width);--ms-options-max-height: calc(32 * var(--ms-rem));--ms-option-color: var(--ms-text-color-1);--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-z-index-fullscreen: 10001;--ms-z-index-fullscreen-tooltip: 10002;--ms-fullscreen-rem: 12px;--ms-fullscreen-bg: var(--ms-dropdown-bg);--ms-fullscreen-text-color: var(--ms-dropdown-text-color);--ms-fullscreen-header-bg: var(--ms-dropdown-bg);--ms-fullscreen-header-border: 1px solid var(--ms-dropdown-border-color);--ms-fullscreen-header-gap: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-v: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-h: calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding: var(--ms-fullscreen-header-padding-v) var(--ms-fullscreen-header-padding-h);--ms-fullscreen-header-min-height: calc(5.6 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-size: calc(1.7 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-weight: var(--base-font-weight-semibold, 600);--ms-fullscreen-search-border: var(--ms-input-border);--ms-fullscreen-search-border-radius: var(--ms-input-border-radius);--ms-fullscreen-search-padding: calc(.8 * var(--ms-fullscreen-rem)) calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-search-font-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-icon-size: calc(1.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-inset: calc(.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-gutter: calc(3.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-search-clear-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-size: calc(3.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-color: var(--ms-dropdown-text-color);--ms-fullscreen-close-bg: transparent;--ms-fullscreen-close-border: none;--ms-fullscreen-close-border-radius: 50%;--ms-fullscreen-close-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-edge-nudge: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-icon-size: calc(1.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-color: var(--ms-accent-color);--ms-fullscreen-info-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-gap: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-padding-top: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-font-size: calc(1.3 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-nav-btn-size: calc(3.2 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-color: var(--ms-dropdown-text-color);--ms-fullscreen-nav-btn-bg: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-btn-bg-hover: var(--ms-accent-color-light, var(--ms-option-bg-matched, transparent));--ms-icon-chevron: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 15l7-7 7 7' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");--ms-icon-info: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.3' fill='black'/><path d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");--ms-fullscreen-tree-base-indent: calc(.7 * var(--ms-fullscreen-rem));--ms-fullscreen-tree-indent: calc(1.2 * var(--ms-fullscreen-rem));--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: calc(.2 * var(--ms-rem));--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 6L18 18M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round' fill='none'/></svg>");--ms-icon-search-clear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m13.5 8.5-5 5'/><path d='m8.5 8.5 5 5'/><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--ms-icon-remove);--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-message-bg: var(--ms-message-info-bg);--ms-message-color: var(--ms-message-info-color);--ms-message-border: 1px solid transparent;--ms-message-border-radius: var(--ms-border-radius-lg);--ms-message-padding: calc(1 * var(--ms-rem)) calc(1.4 * var(--ms-rem));--ms-message-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-message-font-weight: var(--base-font-weight-medium, 500);--ms-message-max-width: calc(40 * var(--ms-rem));--ms-message-shadow: 0 4px 16px rgb(0 0 0 / .18);--ms-message-fullscreen-offset: calc(2.4 * var(--ms-fullscreen-rem));--ms-message-z-index: var(--ms-z-index-fullscreen-tooltip);--ms-message-info-bg: var(--ms-tooltip-bg);--ms-message-info-color: var(--ms-tooltip-text-color);--ms-message-warning-bg: var(--base-warning-bg, #f59e0b);--ms-message-warning-color: var(--base-warning-color, #1a1a1a);--ms-message-error-bg: var(--base-danger-bg, #ef4444);--ms-message-error-color: var(--base-danger-color, #ffffff);--ms-message-success-bg: var(--base-success-bg, #10b981);--ms-message-success-color: var(--base-success-color, #ffffff);--ms-z-index-popover: 10000;--ms-selected-popover-width: calc(32 * var(--ms-rem));--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}:host{-webkit-tap-highlight-color:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;font-family:inherit;height:var(--ms-input-height);padding:var(--ms-input-padding);padding-inline-end:var(--ms-input-padding-right);font-size:var(--ms-input-font-size);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);background:var(--ms-input-bg);color:var(--ms-input-color);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input:hover:not(:focus):not(:disabled){border:var(--ms-input-border-hover)}.ms__input:focus{outline:none;border:var(--ms-input-border-focus)}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__toggle{position:absolute;inset-inline-end:var(--ms-toggle-right);top:50%;transform:var(--ms-transform-center-y);pointer-events:none;color:var(--ms-toggle-icon-color);transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{transform:var(--ms-transform-center-y) rotate(var(--ms-transform-rotate-180));color:var(--ms-toggle-icon-color-open)}.ms__counter{position:absolute;inset-inline-end:var(--ms-counter-offset);top:50%;transform:var(--ms-transform-center-y);padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:var(--ms-transform-center-y) scale(var(--ms-transform-scale-hover))}.ms__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}@media (hover: hover){.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);width:var(--ms-dropdown-width);max-height:var(--ms-options-max-height);overflow:hidden;color:var(--ms-dropdown-text-color)}.ms__dropdown--visible{display:flex;flex-direction:column}.ms__dropdown--fullscreen,.ms__selected-popover--fullscreen{--ms-rem: var(--ms-fullscreen-rem);--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tree-base-indent: var(--ms-fullscreen-tree-base-indent);--ms-tree-indent: var(--ms-fullscreen-tree-indent)}.ms__selected-popover--fullscreen{--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(4.2 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-badge-text-padding: 0 calc(1.2 * var(--ms-rem));--ms-badge-remove-width: calc(3.6 * var(--ms-rem));--ms-badge-remove-icon-size: calc(1.2 * var(--ms-rem));--ms-badge-remove-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-action-btn-padding: calc(.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{position:fixed;top:0;inset-inline-start:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__dropdown--fullscreen .ms__dropdown-inner{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}.ms__dropdown--fullscreen .ms__options{flex:1 1 0;min-height:0;height:auto;max-height:none;overflow-y:auto;padding-bottom:var(--ms-option-gap)}.ms__dropdown--fullscreen .ms__actions{flex:0 0 auto}.ms__fullscreen-header,.ms__selected-popover--fullscreen .ms__selected-popover-header{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--ms-fullscreen-header-gap);min-height:var(--ms-fullscreen-header-min-height);padding:var(--ms-fullscreen-header-padding);background:var(--ms-fullscreen-header-bg);border-bottom:var(--ms-fullscreen-header-border)}.ms__fullscreen-nav{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ms-fullscreen-nav-gap);padding-top:var(--ms-fullscreen-nav-padding-top)}.ms__fullscreen-nav-count{font-size:var(--ms-fullscreen-nav-count-font-size);color:var(--ms-fullscreen-nav-count-color)}.ms__fullscreen-nav-controls{display:flex;align-items:center;gap:var(--ms-fullscreen-nav-gap)}.ms__fullscreen-nav-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-nav-btn-size);height:var(--ms-fullscreen-nav-btn-size);padding:0;color:var(--ms-fullscreen-nav-btn-color);background:var(--ms-fullscreen-nav-btn-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-nav-btn:hover:not(:disabled){background:var(--ms-fullscreen-nav-btn-bg-hover)}.ms__fullscreen-nav-btn:disabled{opacity:.4;cursor:default}.ms__fullscreen-nav-btn:before{content:"";display:block;width:var(--ms-fullscreen-nav-btn-icon-size);height:var(--ms-fullscreen-nav-btn-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat}.ms__fullscreen-nav-btn--next:before{transform:scaleY(-1)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 auto;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow-y:visible}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip--fullscreen{z-index:var(--ms-z-index-fullscreen-tooltip)}.ms__message{position:fixed;z-index:var(--ms-message-z-index);box-sizing:border-box;max-width:var(--ms-message-max-width);padding:var(--ms-message-padding);font-family:inherit;font-size:var(--ms-message-font-size);font-weight:var(--ms-message-font-weight);line-height:var(--ms-line-height-normal);color:var(--ms-message-color);background:var(--ms-message-bg);border:var(--ms-message-border);border-radius:var(--ms-message-border-radius);box-shadow:var(--ms-message-shadow);cursor:pointer;opacity:0;transition:opacity var(--ms-transition-normal) ease;-webkit-tap-highlight-color:transparent}.ms__message--visible{opacity:1}.ms__message--info{background:var(--ms-message-info-bg);color:var(--ms-message-info-color)}.ms__message--warning{background:var(--ms-message-warning-bg);color:var(--ms-message-warning-color)}.ms__message--error{background:var(--ms-message-error-bg);color:var(--ms-message-error-color)}.ms__message--success{background:var(--ms-message-success-bg);color:var(--ms-message-success-color)}.ms__message--fullscreen{left:50%;right:auto;bottom:calc(var(--ms-message-fullscreen-offset) + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(var(--ms-message-max-width),calc(100vw - 4 * var(--ms-fullscreen-rem)));padding:calc(1 * var(--ms-fullscreen-rem)) calc(1.4 * var(--ms-fullscreen-rem));font-size:calc(var(--base-font-size-sm, 1.4) * var(--ms-fullscreen-rem))}.ms__selected-popover{display:none;position:fixed;z-index:var(--ms-z-index-popover);background:var(--ms-selected-popover-bg);border:var(--ms-selected-popover-border);border-radius:var(--ms-selected-popover-border-radius);box-shadow:var(--ms-selected-popover-box-shadow);width:var(--ms-selected-popover-width);max-height:var(--ms-selected-popover-max-height);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;overflow:hidden;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__selected-popover--fullscreen .ms__selected-popover-body{flex:1 1 0;min-height:0;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding);background:var(--ms-selected-popover-header-bg);border-bottom:var(--ms-selected-popover-header-border-bottom);font-size:var(--ms-selected-popover-header-font-size);font-weight:var(--ms-selected-popover-header-font-weight);color:var(--ms-selected-popover-header-color)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size);height:var(--ms-popover-close-size);padding:0;border:none;background:var(--ms-selected-popover-close-bg);color:var(--ms-selected-popover-close-color);font-size:var(--ms-selected-popover-close-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-bg-hover);color:var(--ms-selected-popover-close-color-hover)}.ms__selected-popover-close:before{content:"";display:block;width:var(--ms-selected-popover-close-icon-size);height:var(--ms-selected-popover-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap);padding:var(--ms-selected-popover-body-padding);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__selected-popover-body::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__selected-popover-body::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed);flex-shrink:0}.ms__selected-popover-body .ms__badge-text{flex:1;min-width:0;white-space:normal;word-wrap:break-word}.ms__selected-popover-body--virtual{display:block;max-height:none;padding:0}.ms__selected-popover-body--virtual .ms__badge{height:var(--ms-badge-height-virtual, 36px);min-height:var(--ms-badge-height-virtual, 36px);max-height:var(--ms-badge-height-virtual, 36px);margin-bottom:var(--ms-selected-popover-body-gap);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer component{.ms--disabled .ms__input{opacity:var(--ms-disabled-input-opacity);cursor:not-allowed;background:var(--ms-input-bg-disabled)}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity)}.ms--no-checkboxes .ms__option{gap:0;padding-inline-start:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-inline-start:0}}@layer component;@layer component{.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top);order:var(--ms-order-first)}.ms__badges--left{order:var(--ms-order-first);margin-right:var(--ms-badges-margin-left);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right);justify-content:flex-start}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-inline-end:none;border-start-start-radius:var(--ms-badge-border-radius);border-end-start-radius:var(--ms-badge-border-radius);border-start-end-radius:0;border-end-end-radius:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--ms-transition-normal) ease,color var(--ms-transition-normal) ease}.ms__badge:hover .ms__badge-text{background:var(--ms-badge-text-bg-hover, var(--ms-badge-text-bg));color:var(--ms-badge-text-color-hover, var(--ms-badge-text-color))}.ms__badge-remove{display:flex;align-items:center;justify-content:center;box-sizing:border-box;font-family:inherit;width:var(--ms-badge-remove-width);height:100%;flex-shrink:0;background:var(--ms-badge-remove-bg);color:var(--ms-badge-remove-color);border:var(--ms-badge-remove-border);border-inline-start:none;border-start-end-radius:var(--ms-badge-border-radius);border-end-end-radius:var(--ms-badge-border-radius);border-start-start-radius:0;border-end-start-radius:0;cursor:pointer;transition:background-color var(--ms-transition-normal) ease;font-size:var(--ms-badge-remove-font-size)}.ms__badge-remove:hover{background:var(--ms-badge-remove-bg-hover)}.ms__badge-remove:focus{outline:none}.ms__badge-remove:focus-visible{outline:none;box-shadow:var(--ms-badge-remove-box-shadow-focus)}.ms__badge-remove:before{content:"";display:block;width:var(--ms-badge-remove-icon-size);height:var(--ms-badge-remove-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__badge--counter{cursor:pointer}.ms__badge--counter .ms__badge-text{background:var(--ms-badge-counter-text-bg);color:var(--ms-badge-counter-text-color);border:var(--ms-badge-counter-border);border-inline-end:none}.ms__badge--counter .ms__badge-remove{background:var(--ms-badge-counter-remove-bg);color:var(--ms-badge-counter-remove-color);border:var(--ms-badge-counter-border);border-inline-start:none}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-bg-hover)}.ms__badge--more,.ms__badge[data-action=show-selected]{cursor:pointer}}@layer component{.ms__count-display{display:flex;align-items:center}.ms__count-display:empty{display:none}.ms__count-display--bottom{margin-top:var(--ms-count-display-margin-bottom)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top);order:var(--ms-order-first)}.ms__count-display--left{order:var(--ms-order-first);margin-right:var(--ms-count-display-margin-left);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap);background:var(--ms-counter-wrapper-bg);border:var(--ms-counter-wrapper-border);border-radius:var(--ms-counter-wrapper-border-radius);padding:var(--ms-counter-wrapper-padding);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-bg-hover);border-color:var(--ms-counter-wrapper-border-color-hover)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg);border:var(--ms-count-text-border);padding:0;font-size:var(--ms-count-text-font-size);color:var(--ms-count-text-color);cursor:pointer;transition:color var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size);height:var(--ms-count-clear-size);padding:0;border:none;background:var(--ms-count-clear-bg);color:var(--ms-count-clear-color);font-size:var(--ms-count-clear-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-count-clear-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear:hover{background:var(--ms-count-clear-bg-hover);color:var(--ms-count-clear-color-hover)}.ms__count-clear:before{content:"";display:block;width:var(--ms-count-clear-icon-size);height:var(--ms-count-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}}@layer component{.ms__debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-bg);border:1px solid var(--ms-debug-border-color);border-radius:var(--ms-debug-border-radius);font-size:calc(1.2 * var(--ms-rem));color:var(--ms-debug-text-color)}.ms__debug-info details summary{cursor:pointer;font-weight:600;color:var(--ms-debug-summary-color);-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:var(--ms-debug-summary-border-radius)}.ms__debug-info details summary:hover{background-color:var(--ms-debug-summary-bg-hover)}.ms__debug-info details summary:focus{outline:2px solid var(--ms-debug-summary-outline-color);outline-offset:2px}.ms__debug-info .ms__debug-stats{display:flex;flex-direction:column;gap:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-stats-bg);border-radius:var(--ms-debug-stats-border-radius)}.ms__debug-info .ms__debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ms__debug-info .ms__debug-stats span:before{content:"•";margin-inline-end:calc(.4 * var(--ms-rem));color:var(--ms-debug-bullet-color)}}@layer component{.ms__options{padding:var(--ms-options-padding);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__options--virtual .ms__option,.ms__options--fixed-height .ms__option{height:var(--ms-option-height, 50px);min-height:var(--ms-option-height, 50px);max-height:var(--ms-option-height, 50px);overflow:hidden;box-sizing:border-box}.ms__group+.ms__group{border-top:var(--ms-group-border-top);margin-top:var(--ms-group-margin-top);padding-top:var(--ms-group-padding-top)}.ms__group-label{padding:var(--ms-group-label-padding);font-size:var(--ms-group-label-font-size);font-weight:var(--ms-group-label-font-weight);color:var(--ms-group-label-color);text-transform:var(--ms-group-label-transform);letter-spacing:var(--ms-group-label-letter-spacing)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);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);border-inline-start:var(--ms-option-border-matched)}.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);border-inline-start:var(--ms-option-border-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-inline-end:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-inline-start:var(--ms-checkbox-margin-left);width:var(--ms-checkbox-size);height:var(--ms-checkbox-size);transform:scale(var(--ms-checkbox-scale));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg);border:var(--ms-checkbox-border);border-radius:var(--ms-checkbox-border-radius);transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;left:50%;top:40%;width:30%;height:55%;transform:translate(-50%,-50%) rotate(45deg);border:solid var(--ms-checkbox-checkmark-color);border-width:0 var(--ms-checkbox-checkmark-thickness, 2px) var(--ms-checkbox-checkmark-thickness, 2px) 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox:checked:after{display:block}.ms__checkbox--indeterminate{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox--indeterminate:after{display:block;top:50%;left:50%;width:55%;height:0;transform:translate(-50%,-50%);border:none;border-bottom:var(--ms-checkbox-checkmark-thickness, 2px) solid var(--ms-checkbox-checkmark-color)}.ms__checkbox--indeterminate:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:checked:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg);border:var(--ms-checkbox-disabled-border);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg)}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:center;gap:var(--ms-option-content-gap);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size);height:var(--ms-option-icon-size);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size)}.ms__option-icon svg{width:100%;height:100%;fill:currentColor}.ms__option-text{flex:1;min-width:0}.ms__option-title{font-size:var(--ms-option-title-font-size);color:var(--ms-option-title-color);line-height:var(--ms-line-height-relaxed);white-space:var(--ms-option-title-white-space, normal);overflow:var(--ms-option-title-overflow, visible);text-overflow:var(--ms-option-title-text-overflow, clip)}@media (hover: hover){.ms__option:hover .ms__option-title{color:var(--ms-option-title-color-hover, var(--ms-option-title-color))}}.ms__option--selected .ms__option-title{color:var(--ms-option-title-color-selected, var(--ms-option-title-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-title{color:var(--ms-option-title-color-selected-hover, var(--ms-option-title-color-selected, var(--ms-option-title-color)))}}.ms__option-title mark{background:var(--ms-option-mark-bg);color:var(--ms-option-mark-color);font-weight:var(--ms-option-mark-font-weight)}.ms__option-subtitle{margin-top:var(--ms-option-subtitle-margin-top);font-size:var(--ms-option-subtitle-font-size);color:var(--ms-option-subtitle-color);line-height:var(--ms-option-subtitle-line-height)}@media (hover: hover){.ms__option:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-hover, var(--ms-option-subtitle-color))}}.ms__option--selected .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected-hover, var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color)))}}.ms__empty{display:flex;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-empty-padding);text-align:center;font-size:var(--ms-empty-font-size);color:var(--ms-empty-color)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-loader-padding);gap:var(--ms-loader-gap)}.ms__loading-text{font-size:var(--ms-loading-text-font-size);color:var(--ms-loading-color)}}@layer component{.ms--rtl .ms__badges{direction:rtl}.ms--rtl .ms__badges--right{margin-left:0;margin-right:var(--ms-badges-margin-right)}.ms--rtl .ms__badges--left{margin-right:0;margin-left:var(--ms-badges-margin-left)}.ms--rtl .ms__count-display{direction:rtl}.ms--rtl .ms__count-display--right{margin-left:0;margin-right:var(--ms-count-display-margin-right)}.ms--rtl .ms__count-display--left{margin-right:0;margin-left:var(--ms-count-display-margin-left)}}@layer component{.ms__option--tree{padding-inline-start:calc(var(--ms-tree-base-indent, .75rem) + var(--ms-tree-depth, 0) * var(--ms-tree-indent, 1.25rem))}.ms__option--tree-unselectable{cursor:default}.ms__option--tree-unselectable:hover{background:transparent}}@layer overrides{:host-context([data-theme="dark"]),:host-context([data-bs-theme="dark"]),:host-context(.dark){color-scheme:dark}:host-context([data-theme="light"]),:host-context([data-bs-theme="light"]),:host-context(.light){color-scheme:light}:host([data-theme="dark"]){color-scheme:dark}:host([data-theme="light"]){color-scheme:light}}`, Os = [
4807
+ const Qs = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#e5e7eb, #3a3a3a));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: var(--ms-primary-bg-hover);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-remove-bg: var(--ms-text-color-3);--ms-badge-counter-remove-bg-hover: var(--ms-text-color-1);--ms-badge-counter-remove-color: var(--ms-text-color-on-accent);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-count-clear-bg-hover: var(--ms-accent-color);--ms-tooltip-bg: var(--base-tooltip-bg, var(--base-inverse-bg, light-dark(#333333, #f5f5f5)));--ms-tooltip-text-color: var(--base-tooltip-text-color, light-dark(#ffffff, #1a1a1a));--ms-selected-popover-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-input-padding-right: calc(4 * var(--ms-rem));--ms-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: rgba(107, 114, 128, .05);--ms-toggle-right: calc(1.2 * var(--ms-rem));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: calc(3.2 * var(--ms-rem));--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-input-current-width: auto;--ms-dropdown-width: var(--ms-input-current-width);--ms-options-max-height: calc(32 * var(--ms-rem));--ms-option-color: var(--ms-text-color-1);--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-z-index-fullscreen: 10001;--ms-z-index-fullscreen-tooltip: 10002;--ms-fullscreen-rem: 12px;--ms-fullscreen-bg: var(--ms-dropdown-bg);--ms-fullscreen-text-color: var(--ms-dropdown-text-color);--ms-fullscreen-header-bg: var(--ms-dropdown-bg);--ms-fullscreen-header-border: 1px solid var(--ms-dropdown-border-color);--ms-fullscreen-header-gap: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-v: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-h: calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding: var(--ms-fullscreen-header-padding-v) var(--ms-fullscreen-header-padding-h);--ms-fullscreen-header-min-height: calc(5.6 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-size: calc(1.7 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-weight: var(--base-font-weight-semibold, 600);--ms-fullscreen-search-border: var(--ms-input-border);--ms-fullscreen-search-border-radius: var(--ms-input-border-radius);--ms-fullscreen-search-padding: calc(.8 * var(--ms-fullscreen-rem)) calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-search-font-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-icon-size: calc(1.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-inset: calc(.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-gutter: calc(3.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-search-clear-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-size: calc(3.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-color: var(--ms-dropdown-text-color);--ms-fullscreen-close-bg: transparent;--ms-fullscreen-close-border: none;--ms-fullscreen-close-border-radius: 50%;--ms-fullscreen-close-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-edge-nudge: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-icon-size: calc(1.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-color: var(--ms-accent-color);--ms-fullscreen-info-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-gap: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-padding-top: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-font-size: calc(1.3 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-nav-btn-size: calc(3.2 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-color: var(--ms-dropdown-text-color);--ms-fullscreen-nav-btn-bg: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-btn-bg-hover: var(--ms-accent-color-light, var(--ms-option-bg-matched, transparent));--ms-icon-chevron: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 15l7-7 7 7' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");--ms-icon-info: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.3' fill='black'/><path d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");--ms-fullscreen-tree-base-indent: calc(.7 * var(--ms-fullscreen-rem));--ms-fullscreen-tree-indent: calc(1.2 * var(--ms-fullscreen-rem));--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: calc(.2 * var(--ms-rem));--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 6L18 18M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round' fill='none'/></svg>");--ms-icon-search-clear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m13.5 8.5-5 5'/><path d='m8.5 8.5 5 5'/><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--ms-icon-remove);--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-message-bg: var(--ms-message-info-bg);--ms-message-color: var(--ms-message-info-color);--ms-message-border: 1px solid transparent;--ms-message-border-radius: var(--ms-border-radius-lg);--ms-message-padding: calc(1 * var(--ms-rem)) calc(1.4 * var(--ms-rem));--ms-message-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-message-font-weight: var(--base-font-weight-medium, 500);--ms-message-max-width: calc(40 * var(--ms-rem));--ms-message-shadow: 0 4px 16px rgb(0 0 0 / .18);--ms-message-fullscreen-offset: calc(2.4 * var(--ms-fullscreen-rem));--ms-message-z-index: var(--ms-z-index-fullscreen-tooltip);--ms-message-info-bg: var(--ms-tooltip-bg);--ms-message-info-color: var(--ms-tooltip-text-color);--ms-message-warning-bg: var(--base-warning-bg, #f59e0b);--ms-message-warning-color: var(--base-warning-color, #1a1a1a);--ms-message-error-bg: var(--base-danger-bg, #ef4444);--ms-message-error-color: var(--base-danger-color, #ffffff);--ms-message-success-bg: var(--base-success-bg, #10b981);--ms-message-success-color: var(--base-success-color, #ffffff);--ms-z-index-popover: 10000;--ms-selected-popover-width: calc(32 * var(--ms-rem));--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}:host{-webkit-tap-highlight-color:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;font-family:inherit;height:var(--ms-input-height);padding:var(--ms-input-padding);padding-inline-end:var(--ms-input-padding-right);font-size:var(--ms-input-font-size);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);background:var(--ms-input-bg);color:var(--ms-input-color);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input:hover:not(:focus):not(:disabled){border:var(--ms-input-border-hover)}.ms__input:focus{outline:none;border:var(--ms-input-border-focus)}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__toggle{position:absolute;inset-inline-end:var(--ms-toggle-right);top:50%;transform:var(--ms-transform-center-y);pointer-events:none;color:var(--ms-toggle-icon-color);transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{transform:var(--ms-transform-center-y) rotate(var(--ms-transform-rotate-180));color:var(--ms-toggle-icon-color-open)}.ms__counter{position:absolute;inset-inline-end:var(--ms-counter-offset);top:50%;transform:var(--ms-transform-center-y);padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:var(--ms-transform-center-y) scale(var(--ms-transform-scale-hover))}.ms__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}@media (hover: hover){.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);width:var(--ms-dropdown-width);max-height:var(--ms-options-max-height);overflow:hidden;color:var(--ms-dropdown-text-color)}.ms__dropdown--visible{display:flex;flex-direction:column}.ms__dropdown--fullscreen,.ms__selected-popover--fullscreen{--ms-rem: var(--ms-fullscreen-rem);--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tree-base-indent: var(--ms-fullscreen-tree-base-indent);--ms-tree-indent: var(--ms-fullscreen-tree-indent)}.ms__selected-popover--fullscreen{--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(4.2 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-badge-text-padding: 0 calc(1.2 * var(--ms-rem));--ms-badge-remove-width: calc(3.6 * var(--ms-rem));--ms-badge-remove-icon-size: calc(1.2 * var(--ms-rem));--ms-badge-remove-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-action-btn-padding: calc(.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{position:fixed;top:0;inset-inline-start:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__dropdown--fullscreen .ms__dropdown-inner{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}.ms__dropdown--fullscreen .ms__options{flex:1 1 0;min-height:0;height:auto;max-height:none;overflow-y:auto;padding-bottom:var(--ms-option-gap)}.ms__dropdown--fullscreen .ms__actions{flex:0 0 auto}.ms__fullscreen-header,.ms__selected-popover--fullscreen .ms__selected-popover-header{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--ms-fullscreen-header-gap);min-height:var(--ms-fullscreen-header-min-height);padding:var(--ms-fullscreen-header-padding);background:var(--ms-fullscreen-header-bg);border-bottom:var(--ms-fullscreen-header-border)}.ms__fullscreen-nav{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ms-fullscreen-nav-gap);padding-top:var(--ms-fullscreen-nav-padding-top)}.ms__fullscreen-nav-count{font-size:var(--ms-fullscreen-nav-count-font-size);color:var(--ms-fullscreen-nav-count-color)}.ms__fullscreen-nav-controls{display:flex;align-items:center;gap:var(--ms-fullscreen-nav-gap)}.ms__fullscreen-nav-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-nav-btn-size);height:var(--ms-fullscreen-nav-btn-size);padding:0;color:var(--ms-fullscreen-nav-btn-color);background:var(--ms-fullscreen-nav-btn-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-nav-btn:hover:not(:disabled){background:var(--ms-fullscreen-nav-btn-bg-hover)}.ms__fullscreen-nav-btn:disabled{opacity:.4;cursor:default}.ms__fullscreen-nav-btn:before{content:"";display:block;width:var(--ms-fullscreen-nav-btn-icon-size);height:var(--ms-fullscreen-nav-btn-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat}.ms__fullscreen-nav-btn--next:before{transform:scaleY(-1)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 auto;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow-y:visible}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip--fullscreen{z-index:var(--ms-z-index-fullscreen-tooltip)}.ms__message{position:fixed;z-index:var(--ms-message-z-index);box-sizing:border-box;max-width:var(--ms-message-max-width);padding:var(--ms-message-padding);font-family:inherit;font-size:var(--ms-message-font-size);font-weight:var(--ms-message-font-weight);line-height:var(--ms-line-height-normal);color:var(--ms-message-color);background:var(--ms-message-bg);border:var(--ms-message-border);border-radius:var(--ms-message-border-radius);box-shadow:var(--ms-message-shadow);cursor:pointer;opacity:0;transition:opacity var(--ms-transition-normal) ease;-webkit-tap-highlight-color:transparent}.ms__message--visible{opacity:1}.ms__message--info{background:var(--ms-message-info-bg);color:var(--ms-message-info-color)}.ms__message--warning{background:var(--ms-message-warning-bg);color:var(--ms-message-warning-color)}.ms__message--error{background:var(--ms-message-error-bg);color:var(--ms-message-error-color)}.ms__message--success{background:var(--ms-message-success-bg);color:var(--ms-message-success-color)}.ms__message--fullscreen{left:50%;right:auto;bottom:calc(var(--ms-message-fullscreen-offset) + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(var(--ms-message-max-width),calc(100vw - 4 * var(--ms-fullscreen-rem)));padding:calc(1 * var(--ms-fullscreen-rem)) calc(1.4 * var(--ms-fullscreen-rem));font-size:calc(var(--base-font-size-sm, 1.4) * var(--ms-fullscreen-rem))}.ms__selected-popover{display:none;position:fixed;z-index:var(--ms-z-index-popover);background:var(--ms-selected-popover-bg);border:var(--ms-selected-popover-border);border-radius:var(--ms-selected-popover-border-radius);box-shadow:var(--ms-selected-popover-box-shadow);width:var(--ms-selected-popover-width);max-height:var(--ms-selected-popover-max-height);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;overflow:hidden;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__selected-popover--fullscreen .ms__selected-popover-body{flex:1 1 0;min-height:0;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding);background:var(--ms-selected-popover-header-bg);border-bottom:var(--ms-selected-popover-header-border-bottom);font-size:var(--ms-selected-popover-header-font-size);font-weight:var(--ms-selected-popover-header-font-weight);color:var(--ms-selected-popover-header-color)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size);height:var(--ms-popover-close-size);padding:0;border:none;background:var(--ms-selected-popover-close-bg);color:var(--ms-selected-popover-close-color);font-size:var(--ms-selected-popover-close-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-bg-hover);color:var(--ms-selected-popover-close-color-hover)}.ms__selected-popover-close:before{content:"";display:block;width:var(--ms-selected-popover-close-icon-size);height:var(--ms-selected-popover-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap);padding:var(--ms-selected-popover-body-padding);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__selected-popover-body::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__selected-popover-body::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed);flex-shrink:0}.ms__selected-popover-body .ms__badge-text{flex:1;min-width:0;white-space:normal;word-wrap:break-word}.ms__selected-popover-body--virtual{display:block;max-height:none;padding:0}.ms__selected-popover-body--virtual .ms__badge{height:var(--ms-badge-height-virtual, 36px);min-height:var(--ms-badge-height-virtual, 36px);max-height:var(--ms-badge-height-virtual, 36px);margin-bottom:var(--ms-selected-popover-body-gap);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer component{.ms--disabled .ms__input{opacity:var(--ms-disabled-input-opacity);cursor:not-allowed;background:var(--ms-input-bg-disabled)}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity)}.ms--no-checkboxes .ms__option{gap:0;padding-inline-start:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-inline-start:0}}@layer component;@layer component{.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top);order:var(--ms-order-first)}.ms__badges--left{order:var(--ms-order-first);margin-right:var(--ms-badges-margin-left);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right);justify-content:flex-start}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-inline-end:none;border-start-start-radius:var(--ms-badge-border-radius);border-end-start-radius:var(--ms-badge-border-radius);border-start-end-radius:0;border-end-end-radius:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--ms-transition-normal) ease,color var(--ms-transition-normal) ease}.ms__badge:hover .ms__badge-text{background:var(--ms-badge-text-bg-hover, var(--ms-badge-text-bg));color:var(--ms-badge-text-color-hover, var(--ms-badge-text-color))}.ms__badge-remove{display:flex;align-items:center;justify-content:center;box-sizing:border-box;font-family:inherit;width:var(--ms-badge-remove-width);height:100%;flex-shrink:0;background:var(--ms-badge-remove-bg);color:var(--ms-badge-remove-color);border:var(--ms-badge-remove-border);border-inline-start:none;border-start-end-radius:var(--ms-badge-border-radius);border-end-end-radius:var(--ms-badge-border-radius);border-start-start-radius:0;border-end-start-radius:0;cursor:pointer;transition:background-color var(--ms-transition-normal) ease;font-size:var(--ms-badge-remove-font-size)}.ms__badge-remove:hover{background:var(--ms-badge-remove-bg-hover)}.ms__badge-remove:focus{outline:none}.ms__badge-remove:focus-visible{outline:none;box-shadow:var(--ms-badge-remove-box-shadow-focus)}.ms__badge-remove:before{content:"";display:block;width:var(--ms-badge-remove-icon-size);height:var(--ms-badge-remove-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__badge--counter{cursor:pointer}.ms__badge--counter .ms__badge-text{background:var(--ms-badge-counter-text-bg);color:var(--ms-badge-counter-text-color);border:var(--ms-badge-counter-border);border-inline-end:none}.ms__badge--counter .ms__badge-remove{background:var(--ms-badge-counter-remove-bg);color:var(--ms-badge-counter-remove-color);border:var(--ms-badge-counter-border);border-inline-start:none}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-bg-hover)}.ms__badge--more,.ms__badge[data-action=show-selected]{cursor:pointer}}@layer component{.ms__count-display{display:flex;align-items:center}.ms__count-display:empty{display:none}.ms__count-display--bottom{margin-top:var(--ms-count-display-margin-bottom)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top);order:var(--ms-order-first)}.ms__count-display--left{order:var(--ms-order-first);margin-right:var(--ms-count-display-margin-left);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap);background:var(--ms-counter-wrapper-bg);border:var(--ms-counter-wrapper-border);border-radius:var(--ms-counter-wrapper-border-radius);padding:var(--ms-counter-wrapper-padding);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-bg-hover);border-color:var(--ms-counter-wrapper-border-color-hover)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg);border:var(--ms-count-text-border);padding:0;font-size:var(--ms-count-text-font-size);color:var(--ms-count-text-color);cursor:pointer;transition:color var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size);height:var(--ms-count-clear-size);padding:0;border:none;background:var(--ms-count-clear-bg);color:var(--ms-count-clear-color);font-size:var(--ms-count-clear-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-count-clear-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear:hover{background:var(--ms-count-clear-bg-hover);color:var(--ms-count-clear-color-hover)}.ms__count-clear:before{content:"";display:block;width:var(--ms-count-clear-icon-size);height:var(--ms-count-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}}@layer component{.ms__debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-bg);border:1px solid var(--ms-debug-border-color);border-radius:var(--ms-debug-border-radius);font-size:calc(1.2 * var(--ms-rem));color:var(--ms-debug-text-color)}.ms__debug-info details summary{cursor:pointer;font-weight:600;color:var(--ms-debug-summary-color);-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:var(--ms-debug-summary-border-radius)}.ms__debug-info details summary:hover{background-color:var(--ms-debug-summary-bg-hover)}.ms__debug-info details summary:focus{outline:2px solid var(--ms-debug-summary-outline-color);outline-offset:2px}.ms__debug-info .ms__debug-stats{display:flex;flex-direction:column;gap:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-stats-bg);border-radius:var(--ms-debug-stats-border-radius)}.ms__debug-info .ms__debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ms__debug-info .ms__debug-stats span:before{content:"•";margin-inline-end:calc(.4 * var(--ms-rem));color:var(--ms-debug-bullet-color)}}@layer component{.ms__options{padding:var(--ms-options-padding);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__options--virtual .ms__option,.ms__options--fixed-height .ms__option{height:var(--ms-option-height, 50px);min-height:var(--ms-option-height, 50px);max-height:var(--ms-option-height, 50px);overflow:hidden;box-sizing:border-box}.ms__group+.ms__group{border-top:var(--ms-group-border-top);margin-top:var(--ms-group-margin-top);padding-top:var(--ms-group-padding-top)}.ms__group-label{padding:var(--ms-group-label-padding);font-size:var(--ms-group-label-font-size);font-weight:var(--ms-group-label-font-weight);color:var(--ms-group-label-color);text-transform:var(--ms-group-label-transform);letter-spacing:var(--ms-group-label-letter-spacing)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);position:relative;min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit)}.ms__option--matched:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;border-inline-start:var(--ms-option-border-matched);pointer-events:none}.ms__option--selected{background:var(--ms-option-bg-selected)}@media (hover: hover){.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-bg-selected))}}.ms__option--disabled{opacity:var(--ms-disabled-opacity);cursor:not-allowed;background:var(--ms-option-disabled-bg)}.ms__option--disabled:hover{background:var(--ms-option-disabled-bg)}@media (hover: hover){.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-inline-end:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-inline-start:var(--ms-checkbox-margin-left);width:var(--ms-checkbox-size);height:var(--ms-checkbox-size);transform:scale(var(--ms-checkbox-scale));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg);border:var(--ms-checkbox-border);border-radius:var(--ms-checkbox-border-radius);transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;left:50%;top:40%;width:30%;height:55%;transform:translate(-50%,-50%) rotate(45deg);border:solid var(--ms-checkbox-checkmark-color);border-width:0 var(--ms-checkbox-checkmark-thickness, 2px) var(--ms-checkbox-checkmark-thickness, 2px) 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox:checked:after{display:block}.ms__checkbox--indeterminate{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox--indeterminate:after{display:block;top:50%;left:50%;width:55%;height:0;transform:translate(-50%,-50%);border:none;border-bottom:var(--ms-checkbox-checkmark-thickness, 2px) solid var(--ms-checkbox-checkmark-color)}.ms__checkbox--indeterminate:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:checked:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg);border:var(--ms-checkbox-disabled-border);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg)}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:center;gap:var(--ms-option-content-gap);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size);height:var(--ms-option-icon-size);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size)}.ms__option-icon svg{width:100%;height:100%;fill:currentColor}.ms__option-text{flex:1;min-width:0}.ms__option-title{font-size:var(--ms-option-title-font-size);color:var(--ms-option-title-color);line-height:var(--ms-line-height-relaxed);white-space:var(--ms-option-title-white-space, normal);overflow:var(--ms-option-title-overflow, visible);text-overflow:var(--ms-option-title-text-overflow, clip)}@media (hover: hover){.ms__option:hover .ms__option-title{color:var(--ms-option-title-color-hover, var(--ms-option-title-color))}}.ms__option--selected .ms__option-title{color:var(--ms-option-title-color-selected, var(--ms-option-title-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-title{color:var(--ms-option-title-color-selected-hover, var(--ms-option-title-color-selected, var(--ms-option-title-color)))}}.ms__option-title mark{background:var(--ms-option-mark-bg);color:var(--ms-option-mark-color);font-weight:var(--ms-option-mark-font-weight)}.ms__option-subtitle{margin-top:var(--ms-option-subtitle-margin-top);font-size:var(--ms-option-subtitle-font-size);color:var(--ms-option-subtitle-color);line-height:var(--ms-option-subtitle-line-height)}@media (hover: hover){.ms__option:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-hover, var(--ms-option-subtitle-color))}}.ms__option--selected .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected-hover, var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color)))}}.ms__empty{display:flex;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-empty-padding);text-align:center;font-size:var(--ms-empty-font-size);color:var(--ms-empty-color)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-loader-padding);gap:var(--ms-loader-gap)}.ms__loading-text{font-size:var(--ms-loading-text-font-size);color:var(--ms-loading-color)}}@layer component{.ms--rtl .ms__badges{direction:rtl}.ms--rtl .ms__badges--right{margin-left:0;margin-right:var(--ms-badges-margin-right)}.ms--rtl .ms__badges--left{margin-right:0;margin-left:var(--ms-badges-margin-left)}.ms--rtl .ms__count-display{direction:rtl}.ms--rtl .ms__count-display--right{margin-left:0;margin-right:var(--ms-count-display-margin-right)}.ms--rtl .ms__count-display--left{margin-right:0;margin-left:var(--ms-count-display-margin-left)}}@layer component{.ms__option--tree{padding-inline-start:calc(var(--ms-tree-base-indent, .75rem) + var(--ms-tree-depth, 0) * var(--ms-tree-indent, 1.25rem))}.ms__option--tree-unselectable{cursor:default}.ms__option--tree-unselectable:hover{background:transparent}}@layer overrides{:host-context([data-theme="dark"]),:host-context([data-bs-theme="dark"]),:host-context(.dark){color-scheme:dark}:host-context([data-theme="light"]),:host-context([data-bs-theme="light"]),:host-context(.light){color-scheme:light}:host([data-theme="dark"]){color-scheme:dark}:host([data-theme="light"]){color-scheme:light}}`, Os = [
4753
4808
  "top",
4754
4809
  "top-start",
4755
4810
  "top-end",
@@ -4762,39 +4817,39 @@ const Qs = `@layer variables,component,overrides;@layer variables{:host{display:
4762
4817
  "right",
4763
4818
  "right-start",
4764
4819
  "right-end"
4765
- ], D = () => fo(), Ir = [
4820
+ ], $ = () => fo(), Ir = [
4766
4821
  // ── Strings (cosmetic → update). Optional ones are nullable: absent → null ─
4767
- { configKey: "searchHint", attribute: "search-hint", converter: E({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
4768
- { configKey: "searchPlaceholder", attribute: "search-placeholder", converter: E({ default: "Search..." }), on: "update", description: "Placeholder text for the search input." },
4769
- { configKey: "selectPlaceholder", attribute: "select-placeholder", converter: E({ default: "Pick an option..." }), on: "update", description: "Placeholder shown on the control when nothing is selected." },
4770
- { configKey: "noDataPlaceholder", attribute: "no-data-placeholder", converter: E({ isNullable: !0 }), on: "update", description: "Text shown when there are no options at all." },
4771
- { configKey: "dropdownMinWidth", attribute: "dropdown-min-width", converter: E({ isNullable: !0 }), on: "update", description: "Minimum width of the dropdown panel (any CSS length)." },
4772
- { configKey: "dropdownMaxWidth", attribute: "dropdown-max-width", converter: E({ isNullable: !0 }), on: "update", description: "Maximum width of the dropdown panel (any CSS length)." },
4773
- { configKey: "maxHeight", attribute: "max-height", converter: E({ default: "20rem" }), on: "update", description: "Maximum height of the dropdown list before it scrolls." },
4774
- { configKey: "emptyMessage", attribute: "empty-message", converter: E({ default: "No results found" }), on: "update", description: "Message shown when a search yields no matches." },
4775
- { configKey: "loadingMessage", attribute: "loading-message", converter: E({ default: "Loading..." }), on: "update", description: "Message shown while options are loading." },
4776
- { configKey: "removeButtonTooltipText", attribute: "remove-button-tooltip-text", converter: E({ isNullable: !0 }), on: "update", description: "Tooltip text for a badge remove (×) button." },
4777
- { configKey: "formFieldId", attribute: "name", converter: E({ isNullable: !0 }), on: "reinit", description: "HTML form field name/id used for the hidden input(s)." },
4822
+ { configKey: "searchHint", attribute: "search-hint", converter: A({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
4823
+ { configKey: "searchPlaceholder", attribute: "search-placeholder", converter: A({ default: "Search..." }), on: "update", description: "Placeholder text for the search input." },
4824
+ { configKey: "selectPlaceholder", attribute: "select-placeholder", converter: A({ default: "Pick an option..." }), on: "update", description: "Placeholder shown on the control when nothing is selected." },
4825
+ { configKey: "noDataPlaceholder", attribute: "no-data-placeholder", converter: A({ isNullable: !0 }), on: "update", description: "Text shown when there are no options at all." },
4826
+ { configKey: "dropdownMinWidth", attribute: "dropdown-min-width", converter: A({ isNullable: !0 }), on: "update", description: "Minimum width of the dropdown panel (any CSS length)." },
4827
+ { configKey: "dropdownMaxWidth", attribute: "dropdown-max-width", converter: A({ isNullable: !0 }), on: "update", description: "Maximum width of the dropdown panel (any CSS length)." },
4828
+ { configKey: "maxHeight", attribute: "max-height", converter: A({ default: "20rem" }), on: "update", description: "Maximum height of the dropdown list before it scrolls." },
4829
+ { configKey: "emptyMessage", attribute: "empty-message", converter: A({ default: "No results found" }), on: "update", description: "Message shown when a search yields no matches." },
4830
+ { configKey: "loadingMessage", attribute: "loading-message", converter: A({ default: "Loading..." }), on: "update", description: "Message shown while options are loading." },
4831
+ { configKey: "removeButtonTooltipText", attribute: "remove-button-tooltip-text", converter: A({ isNullable: !0 }), on: "update", description: "Tooltip text for a badge remove (×) button." },
4832
+ { configKey: "formFieldId", attribute: "name", converter: A({ isNullable: !0 }), on: "reinit", description: "HTML form field name/id used for the hidden input(s)." },
4778
4833
  // ── CSS-var sugar (mirrored to a host style prop in reinit()/update()) ────
4779
- { configKey: "dropdownWidth", attribute: "dropdown-width", converter: E({ isNullable: !0 }), on: "update", description: "Fixed dropdown width; mirrored to the `--ms-dropdown-width` CSS variable." },
4780
- { configKey: "selectedPopoverWidth", attribute: "selected-popover-width", converter: E({ isNullable: !0 }), on: "update", description: "Selected-items popover width; mirrored to `--ms-selected-popover-width`." },
4834
+ { configKey: "dropdownWidth", attribute: "dropdown-width", converter: A({ isNullable: !0 }), on: "update", description: "Fixed dropdown width; mirrored to the `--ms-dropdown-width` CSS variable." },
4835
+ { configKey: "selectedPopoverWidth", attribute: "selected-popover-width", converter: A({ isNullable: !0 }), on: "update", description: "Selected-items popover width; mirrored to `--ms-selected-popover-width`." },
4781
4836
  // ── Member properties (structural → reinit; optional → nullable) ─────────
4782
- { configKey: "valueMember", attribute: "value-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name on an option object that holds its value." },
4783
- { configKey: "displayValueMember", attribute: "display-value-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option display label." },
4784
- { configKey: "searchValueMember", attribute: "search-value-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name searched against (falls back to the display value)." },
4785
- { configKey: "iconMember", attribute: "icon-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option icon." },
4786
- { configKey: "subtitleMember", attribute: "subtitle-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option subtitle." },
4787
- { configKey: "fullTitleMember", attribute: "full-title-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option full/long title." },
4788
- { configKey: "groupMember", attribute: "group-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name used to group options under headers." },
4789
- { configKey: "disabledMember", attribute: "disabled-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that marks an option disabled." },
4837
+ { configKey: "valueMember", attribute: "value-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name on an option object that holds its value." },
4838
+ { configKey: "displayValueMember", attribute: "display-value-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option display label." },
4839
+ { configKey: "searchValueMember", attribute: "search-value-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name searched against (falls back to the display value)." },
4840
+ { configKey: "iconMember", attribute: "icon-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option icon." },
4841
+ { configKey: "subtitleMember", attribute: "subtitle-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option subtitle." },
4842
+ { configKey: "fullTitleMember", attribute: "full-title-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option full/long title." },
4843
+ { configKey: "groupMember", attribute: "group-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name used to group options under headers." },
4844
+ { configKey: "disabledMember", attribute: "disabled-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that marks an option disabled." },
4790
4845
  // ── Tree of options (structural → reinit; optional → nullable) ───────────
4791
- { configKey: "pathMember", attribute: "path-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node materialized tree path." },
4792
- { configKey: "parentPathMember", attribute: "parent-path-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node parent path." },
4793
- { configKey: "levelMember", attribute: "level-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node depth level." },
4794
- { configKey: "hasChildrenMember", attribute: "has-children-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name flagging that a node has children." },
4795
- { configKey: "isSelectableMember", attribute: "is-selectable-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name marking whether a node can be selected." },
4796
- { configKey: "treePathSeparator", attribute: "tree-path-separator", converter: E({ default: "." }), reflect: !0, on: "reinit", description: "Separator between segments in a materialized tree path." },
4797
- { configKey: "isTreeEnabled", converter: H("tristate"), on: "reinit", type: "boolean", description: "Force tree mode on/off. Property-only; when unset (null) tree mode auto-enables if a path source (path-member / getPathCallback) is present." },
4846
+ { configKey: "pathMember", attribute: "path-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node materialized tree path." },
4847
+ { configKey: "parentPathMember", attribute: "parent-path-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node parent path." },
4848
+ { configKey: "levelMember", attribute: "level-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node depth level." },
4849
+ { configKey: "hasChildrenMember", attribute: "has-children-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name flagging that a node has children." },
4850
+ { configKey: "isSelectableMember", attribute: "is-selectable-member", converter: A({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name marking whether a node can be selected." },
4851
+ { configKey: "treePathSeparator", attribute: "tree-path-separator", converter: A({ default: "." }), reflect: !0, on: "reinit", description: "Separator between segments in a materialized tree path." },
4852
+ { configKey: "isTreeEnabled", converter: B("tristate"), on: "reinit", type: "boolean", description: "Force tree mode on/off. Property-only; when unset (null) tree mode auto-enables if a path source (path-member / getPathCallback) is present." },
4798
4853
  {
4799
4854
  configKey: "checkboxMode",
4800
4855
  attribute: "checkbox-mode",
@@ -4835,84 +4890,84 @@ const Qs = `@layer variables,component,overrides;@layer variables{:host{display:
4835
4890
  {
4836
4891
  configKey: "fullscreenAutofocus",
4837
4892
  attribute: "fullscreen-autofocus",
4838
- converter: H("default-false"),
4893
+ converter: B("default-false"),
4839
4894
  on: "update",
4840
4895
  description: "In the phone fullscreen overlay, auto-focus the search field on open (pops the soft keyboard immediately). Default `false`: the sheet opens with the list visible and the keyboard closed, appearing only when the user taps the search. Set `true` to type-to-filter right away. No effect in the floating presentation."
4841
4896
  },
4842
4897
  // ── Numbers ──────────────────────────────────────────────────────────────
4843
- { configKey: "badgesThreshold", attribute: "badges-threshold", converter: q(), on: "update", description: "Threshold at which badges collapse to a count/compact view." },
4844
- { configKey: "badgesMaxVisible", attribute: "badges-max-visible", converter: q(), on: "update", description: "Maximum number of badges rendered before overflow." },
4845
- { configKey: "minSearchLength", attribute: "min-search-length", converter: q({ default: 0 }), on: "update", description: "Minimum characters before searching/filtering starts." },
4846
- { configKey: "searchDebounce", attribute: "search-debounce", converter: q({ default: 0 }), on: "update", description: "Debounce delay in ms applied to the search input." },
4847
- { configKey: "virtualScrollThreshold", attribute: "virtual-scroll-threshold", converter: q({ default: 100 }), on: "reinit", description: "Option count above which virtual scrolling turns on." },
4848
- { configKey: "optionHeight", attribute: "option-height", converter: q({ default: 50 }), on: "update", description: "Fixed row height in px used by virtual scrolling." },
4849
- { configKey: "badgeHeight", attribute: "badge-height", converter: q({ default: 36 }), on: "update", description: "Fixed badge height in px used for layout/virtualization." },
4850
- { configKey: "virtualScrollBuffer", attribute: "virtual-scroll-buffer", converter: q({ default: 10 }), on: "update", description: "Extra rows rendered above/below the viewport when virtualizing." },
4851
- { configKey: "badgeTooltipDelay", attribute: "badge-tooltip-delay", converter: q({ default: 100 }), on: "update", description: "Delay in ms before a badge tooltip appears." },
4852
- { configKey: "badgeTooltipOffset", attribute: "badge-tooltip-offset", converter: q({ default: 8 }), on: "update", description: "Gap in px between a badge and its tooltip." },
4853
- { configKey: "optionTooltipDelay", attribute: "option-tooltip-delay", converter: q(), on: "update", description: "Delay in ms before an option tooltip appears (falls back to badgeTooltipDelay)." },
4854
- { configKey: "optionTooltipOffset", attribute: "option-tooltip-offset", converter: q(), on: "update", description: "Gap in px between an option and its tooltip." },
4898
+ { configKey: "badgesThreshold", attribute: "badges-threshold", converter: X(), on: "update", description: "Threshold at which badges collapse to a count/compact view." },
4899
+ { configKey: "badgesMaxVisible", attribute: "badges-max-visible", converter: X(), on: "update", description: "Maximum number of badges rendered before overflow." },
4900
+ { configKey: "minSearchLength", attribute: "min-search-length", converter: X({ default: 0 }), on: "update", description: "Minimum characters before searching/filtering starts." },
4901
+ { configKey: "searchDebounce", attribute: "search-debounce", converter: X({ default: 0 }), on: "update", description: "Debounce delay in ms applied to the search input." },
4902
+ { configKey: "virtualScrollThreshold", attribute: "virtual-scroll-threshold", converter: X({ default: 100 }), on: "reinit", description: "Option count above which virtual scrolling turns on." },
4903
+ { configKey: "optionHeight", attribute: "option-height", converter: X({ default: 50 }), on: "update", description: "Fixed row height in px used by virtual scrolling." },
4904
+ { configKey: "badgeHeight", attribute: "badge-height", converter: X({ default: 36 }), on: "update", description: "Fixed badge height in px used for layout/virtualization." },
4905
+ { configKey: "virtualScrollBuffer", attribute: "virtual-scroll-buffer", converter: X({ default: 10 }), on: "update", description: "Extra rows rendered above/below the viewport when virtualizing." },
4906
+ { configKey: "badgeTooltipDelay", attribute: "badge-tooltip-delay", converter: X({ default: 100 }), on: "update", description: "Delay in ms before a badge tooltip appears." },
4907
+ { configKey: "badgeTooltipOffset", attribute: "badge-tooltip-offset", converter: X({ default: 8 }), on: "update", description: "Gap in px between a badge and its tooltip." },
4908
+ { configKey: "optionTooltipDelay", attribute: "option-tooltip-delay", converter: X(), on: "update", description: "Delay in ms before an option tooltip appears (falls back to badgeTooltipDelay)." },
4909
+ { configKey: "optionTooltipOffset", attribute: "option-tooltip-offset", converter: X(), on: "update", description: "Gap in px between an option and its tooltip." },
4855
4910
  // ── Booleans (default true) ──────────────────────────────────────────────
4856
- { configKey: "isMultipleEnabled", attribute: "multiple", converter: H("default-true"), on: "reinit", description: "Allow selecting multiple options. When off, selecting one replaces the previous." },
4857
- { configKey: "isGroupsAllowed", attribute: "allow-groups", converter: H("default-true"), on: "reinit", description: "Allow grouping options under group headers." },
4858
- { configKey: "isCheckboxesShown", attribute: "show-checkboxes", converter: H("default-true"), on: "reinit", description: "Show a checkbox on each option." },
4859
- { configKey: "isActionsSticky", attribute: "sticky-actions", converter: H("default-true"), on: "update", description: "Keep the action bar pinned while the list scrolls." },
4860
- { configKey: "isPlacementLocked", attribute: "lock-placement", converter: H("default-true"), on: "update", description: "Keep the dropdown initial placement instead of flipping when it fits." },
4861
- { configKey: "isSearchEnabled", attribute: "enable-search", converter: H("default-true"), on: "reinit", description: "Show the search input." },
4862
- { configKey: "isKeepOptionsOnSearch", attribute: "keep-options-on-search", converter: H("default-true"), on: "update", description: "Keep already-selected options visible while filtering." },
4863
- { configKey: "shouldKeepSearchOnClose", attribute: "should-keep-search-on-close", converter: H("default-true"), on: "update", description: "Preserve the search text after the dropdown closes." },
4911
+ { configKey: "isMultipleEnabled", attribute: "multiple", converter: B("default-true"), on: "reinit", description: "Allow selecting multiple options. When off, selecting one replaces the previous." },
4912
+ { configKey: "isGroupsAllowed", attribute: "allow-groups", converter: B("default-true"), on: "reinit", description: "Allow grouping options under group headers." },
4913
+ { configKey: "isCheckboxesShown", attribute: "show-checkboxes", converter: B("default-true"), on: "reinit", description: "Show a checkbox on each option." },
4914
+ { configKey: "isActionsSticky", attribute: "sticky-actions", converter: B("default-true"), on: "update", description: "Keep the action bar pinned while the list scrolls." },
4915
+ { configKey: "isPlacementLocked", attribute: "lock-placement", converter: B("default-true"), on: "update", description: "Keep the dropdown initial placement instead of flipping when it fits." },
4916
+ { configKey: "isSearchEnabled", attribute: "enable-search", converter: B("default-true"), on: "reinit", description: "Show the search input." },
4917
+ { configKey: "isKeepOptionsOnSearch", attribute: "keep-options-on-search", converter: B("default-true"), on: "update", description: "Keep already-selected options visible while filtering." },
4918
+ { configKey: "shouldKeepSearchOnClose", attribute: "should-keep-search-on-close", converter: B("default-true"), on: "update", description: "Preserve the search text after the dropdown closes." },
4864
4919
  // ── Booleans (default false) ─────────────────────────────────────────────
4865
- { configKey: "isCloseOnSelect", attribute: "close-on-select", converter: H("default-false"), on: "update", description: "Close the dropdown immediately after a selection." },
4866
- { configKey: "isAddNewAllowed", attribute: "allow-add-new", converter: H("default-false"), on: "reinit", description: "Allow adding a new option from the search text." },
4867
- { configKey: "isCounterShown", attribute: "show-counter", converter: H("default-false"), on: "update", description: "Show a selected-count indicator." },
4868
- { configKey: "isBadgeFullTitleShown", attribute: "show-badge-full-title", converter: H("default-false"), on: "update", description: "Show the full title on badges instead of the short label." },
4869
- { configKey: "isVirtualScrollEnabled", attribute: "enable-virtual-scroll", converter: H("default-false"), on: "reinit", description: "Force virtual scrolling on regardless of the threshold." },
4870
- { configKey: "isBadgeTooltipsEnabled", attribute: "enable-badge-tooltips", converter: H("default-false"), on: "update", description: "Enable tooltips on badges." },
4871
- { configKey: "isOptionTooltipsEnabled", attribute: "enable-option-tooltips", converter: H("default-false"), on: "update", description: "Enable tooltips on options." },
4872
- { configKey: "isOptionTooltipFollowCursor", attribute: "option-tooltip-follow-cursor", converter: H("default-false"), on: "update", description: "Make option tooltips follow the pointer." },
4920
+ { configKey: "isCloseOnSelect", attribute: "close-on-select", converter: B("default-false"), on: "update", description: "Close the dropdown immediately after a selection." },
4921
+ { configKey: "isAddNewAllowed", attribute: "allow-add-new", converter: B("default-false"), on: "reinit", description: "Allow adding a new option from the search text." },
4922
+ { configKey: "isCounterShown", attribute: "show-counter", converter: B("default-false"), on: "update", description: "Show a selected-count indicator." },
4923
+ { configKey: "isBadgeFullTitleShown", attribute: "show-badge-full-title", converter: B("default-false"), on: "update", description: "Show the full title on badges instead of the short label." },
4924
+ { configKey: "isVirtualScrollEnabled", attribute: "enable-virtual-scroll", converter: B("default-false"), on: "reinit", description: "Force virtual scrolling on regardless of the threshold." },
4925
+ { configKey: "isBadgeTooltipsEnabled", attribute: "enable-badge-tooltips", converter: B("default-false"), on: "update", description: "Enable tooltips on badges." },
4926
+ { configKey: "isOptionTooltipsEnabled", attribute: "enable-option-tooltips", converter: B("default-false"), on: "update", description: "Enable tooltips on options." },
4927
+ { configKey: "isOptionTooltipFollowCursor", attribute: "option-tooltip-follow-cursor", converter: B("default-false"), on: "update", description: "Make option tooltips follow the pointer." },
4873
4928
  // ── Special attributes ───────────────────────────────────────────────────
4874
4929
  { configKey: "initialValues", attribute: "initial-values", converter: xr(), default: [], on: "reinit", type: "Array<string | number>", description: 'Values selected on first render. Accepts a JSON array (`["a","b"]`) or a bare CSV (`a,b,c`).' },
4875
- { configKey: "showDebugInfo", attribute: "show-debug-info", converter: H("default-false"), on: "update", description: "Render an in-component debug panel.", deprecated: "Use per-instance logging (el.enableLogging()) instead." },
4930
+ { configKey: "showDebugInfo", attribute: "show-debug-info", converter: B("default-false"), on: "update", description: "Render an in-component debug panel.", deprecated: "Use per-instance logging (el.enableLogging()) instead." },
4876
4931
  // ── Complex property (data) ──────────────────────────────────────────────
4877
4932
  { configKey: "options", converter: po(), on: "reinit", type: "ReadonlyArray<Record<string, unknown>>", description: "The array of option objects to render. The JS API — assign `el.options` directly. For HTML authoring use the `data-options` attribute (parsed per `data-options-format`) or declarative <option> children; both feed the same list and take precedence over this property in the order: <option> children > property > data-options." },
4878
- { configKey: "optionsSource", attribute: "data-options", converter: E({ isNullable: !0 }), on: "reinit", type: "string", description: "HTML-authoring source for the option list, parsed per `data-options-format`. Reactive: changing either attribute re-renders. Prefer the `options` property in JS; a set `options` property and declarative <option> children both win over this." },
4933
+ { configKey: "optionsSource", attribute: "data-options", converter: A({ isNullable: !0 }), on: "reinit", type: "string", description: "HTML-authoring source for the option list, parsed per `data-options-format`. Reactive: changing either attribute re-renders. Prefer the `options` property in JS; a set `options` property and declarative <option> children both win over this." },
4879
4934
  { configKey: "optionsFormat", attribute: "data-options-format", converter: F(_r, { default: "json" }), on: "reinit", type: "'json' | 'csv' | 'plain'", description: "How to parse the `data-options` attribute: `json` (a JSON array of objects or [value, label] tuples), `csv` (rows split on `data-options-row-splitter`, cells on `data-options-splitter`; the first row is a header — map columns via *-member), or `plain` (bare values split on both splitters -> [value, label] tuples, value === label). Default `json`." },
4880
- { configKey: "optionsSplitter", attribute: "data-options-splitter", converter: E({ default: "," }), on: "reinit", type: "string", description: 'Field/cell delimiter for the `csv` and `plain` `data-options` formats. Default `,`. Escapes `\\t` `\\n` `\\r` are honoured (e.g. `data-options-splitter="\\t"` for TSV). Ignored for `json`.' },
4881
- { configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter: E({ default: `
4935
+ { configKey: "optionsSplitter", attribute: "data-options-splitter", converter: A({ default: "," }), on: "reinit", type: "string", description: 'Field/cell delimiter for the `csv` and `plain` `data-options` formats. Default `,`. Escapes `\\t` `\\n` `\\r` are honoured (e.g. `data-options-splitter="\\t"` for TSV). Ignored for `json`.' },
4936
+ { configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter: A({ default: `
4882
4937
  ` }), 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`.' },
4883
4938
  { configKey: "actionButtons", converter: mo({ 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." },
4884
4939
  // ── Callbacks: data shape (structural → reinit) ──────────────────────────
4885
- { configKey: "getValueCallback", converter: D(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
4886
- { configKey: "getPathCallback", converter: D(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
4887
- { configKey: "getGroupCallback", converter: D(), on: "reinit", type: "(item: unknown) => string", description: "Extract the group name from an option (overrides groupMember)." },
4888
- { configKey: "getDisabledCallback", converter: D(), on: "reinit", type: "(item: unknown) => boolean", description: "Whether an option is disabled (overrides disabledMember)." },
4889
- { configKey: "getIsSelectableCallback", converter: D(), on: "reinit", type: "(node: unknown) => boolean", description: "Whether a tree node can be selected (overrides is-selectable-member)." },
4890
- { configKey: "getSearchValueCallback", converter: D(), on: "reinit", type: "(item: unknown) => string", description: "Text an option is searched against (overrides searchValueMember)." },
4891
- { configKey: "searchCallback", converter: D(), on: "reinit", type: "(searchTerm: string, signal?: AbortSignal) => Promise<unknown[]>", description: "Custom / async search; return the filtered options." },
4940
+ { configKey: "getValueCallback", converter: $(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
4941
+ { configKey: "getPathCallback", converter: $(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
4942
+ { configKey: "getGroupCallback", converter: $(), on: "reinit", type: "(item: unknown) => string", description: "Extract the group name from an option (overrides groupMember)." },
4943
+ { configKey: "getDisabledCallback", converter: $(), on: "reinit", type: "(item: unknown) => boolean", description: "Whether an option is disabled (overrides disabledMember)." },
4944
+ { configKey: "getIsSelectableCallback", converter: $(), on: "reinit", type: "(node: unknown) => boolean", description: "Whether a tree node can be selected (overrides is-selectable-member)." },
4945
+ { configKey: "getSearchValueCallback", converter: $(), on: "reinit", type: "(item: unknown) => string", description: "Text an option is searched against (overrides searchValueMember)." },
4946
+ { configKey: "searchCallback", converter: $(), on: "reinit", type: "(searchTerm: string, signal?: AbortSignal) => Promise<unknown[]>", description: "Custom / async search; return the filtered options." },
4892
4947
  // ── Callbacks: display / render (cosmetic → update) ──────────────────────
4893
- { configKey: "getDisplayValueCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Compute the display label for an option (overrides displayValueMember)." },
4894
- { configKey: "getBadgeDisplayCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Compute the text shown on an option badge." },
4895
- { configKey: "getBadgeClassCallback", converter: D(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for an option badge." },
4896
- { configKey: "getIconCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Icon for an option (overrides iconMember)." },
4897
- { configKey: "getSubtitleCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Subtitle for an option (overrides subtitleMember)." },
4898
- { configKey: "getFullTitleCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Full title for an option (used by badges when show-badge-full-title is on)." },
4899
- { configKey: "getCounterCallback", converter: D(), on: "update", type: "(count: number, moreCount?: number) => string", description: "Render the selected-count label." },
4900
- { configKey: "getValueFormatCallback", converter: D(), on: "update", type: "(selectedValues: (string | number)[]) => string", description: "Serialize the selected values for form submission." },
4901
- { configKey: "getBadgeTooltipCallback", converter: D(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option badge." },
4902
- { configKey: "getOptionTooltipCallback", converter: D(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option row." },
4903
- { configKey: "getRemoveButtonTooltipCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Tooltip text for a badge remove button." },
4904
- { configKey: "getSelectedItemClassCallback", converter: D(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for a selected item." },
4905
- { configKey: "renderOptionContentCallback", converter: D(), on: "update", type: "(item: unknown, context: OptionContentRenderContext) => string | HTMLElement", description: "Custom render for an option row; may return HTML or an element." },
4906
- { configKey: "renderBadgeContentCallback", converter: D(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for a badge; may return HTML or an element." },
4907
- { configKey: "renderGroupLabelContentCallback", converter: D(), on: "update", type: "(groupName: string) => string | HTMLElement", description: "Customize a group label; may return an HTML string or element." },
4908
- { configKey: "renderSelectedContentCallback", converter: D(), on: "update", type: "(item: unknown) => string", description: "Custom render for the whole selected area." },
4909
- { configKey: "renderSelectedItemContentCallback", converter: D(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Custom render for one selected item." },
4910
- { configKey: "customStylesCallback", converter: D(), on: "update", type: "() => string", description: "Returns a CSS string injected into the component via a replaceable style slot (§12.8)." },
4948
+ { configKey: "getDisplayValueCallback", converter: $(), on: "update", type: "(item: unknown) => string", description: "Compute the display label for an option (overrides displayValueMember)." },
4949
+ { configKey: "getBadgeDisplayCallback", converter: $(), on: "update", type: "(item: unknown) => string", description: "Compute the text shown on an option badge." },
4950
+ { configKey: "getBadgeClassCallback", converter: $(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for an option badge." },
4951
+ { configKey: "getIconCallback", converter: $(), on: "update", type: "(item: unknown) => string", description: "Icon for an option (overrides iconMember)." },
4952
+ { configKey: "getSubtitleCallback", converter: $(), on: "update", type: "(item: unknown) => string", description: "Subtitle for an option (overrides subtitleMember)." },
4953
+ { configKey: "getFullTitleCallback", converter: $(), on: "update", type: "(item: unknown) => string", description: "Full title for an option (used by badges when show-badge-full-title is on)." },
4954
+ { configKey: "getCounterCallback", converter: $(), on: "update", type: "(count: number, moreCount?: number) => string", description: "Render the selected-count label." },
4955
+ { configKey: "getValueFormatCallback", converter: $(), on: "update", type: "(selectedValues: (string | number)[]) => string", description: "Serialize the selected values for form submission." },
4956
+ { configKey: "getBadgeTooltipCallback", converter: $(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option badge." },
4957
+ { configKey: "getOptionTooltipCallback", converter: $(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option row." },
4958
+ { configKey: "getRemoveButtonTooltipCallback", converter: $(), on: "update", type: "(item: unknown) => string", description: "Tooltip text for a badge remove button." },
4959
+ { configKey: "getSelectedItemClassCallback", converter: $(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for a selected item." },
4960
+ { configKey: "renderOptionContentCallback", converter: $(), on: "update", type: "(item: unknown, context: OptionContentRenderContext) => string | HTMLElement", description: "Custom render for an option row; may return HTML or an element." },
4961
+ { configKey: "renderBadgeContentCallback", converter: $(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for a badge; may return HTML or an element." },
4962
+ { configKey: "renderGroupLabelContentCallback", converter: $(), on: "update", type: "(groupName: string) => string | HTMLElement", description: "Customize a group label; may return an HTML string or element." },
4963
+ { configKey: "renderSelectedContentCallback", converter: $(), on: "update", type: "(item: unknown) => string", description: "Custom render for the whole selected area." },
4964
+ { configKey: "renderSelectedItemContentCallback", converter: $(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Custom render for one selected item." },
4965
+ { configKey: "customStylesCallback", converter: $(), on: "update", type: "() => string", description: "Returns a CSS string injected into the component via a replaceable style slot (§12.8)." },
4911
4966
  // ── Callbacks: before-hooks (behavior-shaping) ───────────────────────────
4912
- { configKey: "beforeSearchCallback", converter: D(), on: "update", type: "(searchTerm: string) => string | null", description: "Runs before a search; return a rewritten term or null to veto." },
4913
- { configKey: "beforeSelectCallback", converter: D(), on: "update", type: "(option: unknown, selectedOptions: unknown[]) => boolean | string | void", description: "Runs before selecting; return false to veto, or a string to veto and show it as a message." },
4914
- { configKey: "beforeDeselectCallback", converter: D(), on: "update", type: "(option: unknown, selectedOptions: unknown[]) => boolean | string | void", description: "Runs before deselecting; return false to veto, or a string to veto and show it as a message." },
4915
- { configKey: "addNewCallback", converter: D(), on: "update", type: "(value: string) => unknown | Promise<unknown>", description: "Create a new option from the typed text." }
4967
+ { configKey: "beforeSearchCallback", converter: $(), on: "update", type: "(searchTerm: string) => string | null", description: "Runs before a search; return a rewritten term or null to veto." },
4968
+ { configKey: "beforeSelectCallback", converter: $(), 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." },
4969
+ { configKey: "beforeDeselectCallback", converter: $(), 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." },
4970
+ { configKey: "addNewCallback", converter: $(), on: "update", type: "(value: string) => unknown | Promise<unknown>", description: "Create a new option from the typed text." }
4916
4971
  ], Pr = [
4917
4972
  { name: "select", description: "An option was selected. `detail.option` is the selected option; `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
4918
4973
  { name: "deselect", description: "An option was removed from the selection. `detail.option` is that option." },
@@ -4933,23 +4988,23 @@ const Er = [
4933
4988
  { key: "subtitleMember", member: "subtitle", callbackKey: "getSubtitleCallback" },
4934
4989
  { key: "disabledMember", member: "disabled", callbackKey: "getDisabledCallback" }
4935
4990
  ];
4936
- var J, A, me, et, tt, st, ze, $e, ke, k, ct, Bt, Kt, Zs, eo, to, dt, Ft, so, oo, io, Wt, ro, no, jt, Ut;
4991
+ var J, z, me, et, tt, st, ze, De, ke, _, ct, Bt, Kt, Zs, eo, to, dt, Ft, so, oo, io, Wt, ro, no, jt, Ut;
4937
4992
  class Ge extends zt {
4938
4993
  constructor() {
4939
4994
  super();
4940
- L(this, k);
4941
- L(this, J);
4942
- L(this, A);
4943
- L(this, me);
4944
- L(this, et, null);
4995
+ E(this, _);
4996
+ E(this, J);
4997
+ E(this, z);
4998
+ E(this, me);
4999
+ E(this, et, null);
4945
5000
  // Dev-mode customStylesCallback lint: unknown --ms-* names already warned about.
4946
- L(this, tt, /* @__PURE__ */ new Set());
5001
+ E(this, tt, /* @__PURE__ */ new Set());
4947
5002
  // Declarative <option>/<optgroup> state (parsed once from light DOM).
4948
- L(this, st, !1);
4949
- L(this, ze, !1);
4950
- L(this, $e);
4951
- L(this, ke);
4952
- $(this, J, this.attachShadow({ mode: "open" })), Yo(p(this, J), Qs), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-ready", "")) : this.setAttribute("data-ready", "");
5003
+ E(this, st, !1);
5004
+ E(this, ze, !1);
5005
+ E(this, De);
5006
+ E(this, ke);
5007
+ D(this, J, this.attachShadow({ mode: "open" })), qo(p(this, J), Qs), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-ready", "")) : this.setAttribute("data-ready", "");
4953
5008
  }
4954
5009
  /**
4955
5010
  * Called by the browser when the surrounding <form> is reset. Clears the
@@ -4957,7 +5012,7 @@ class Ge extends zt {
4957
5012
  */
4958
5013
  formResetCallback() {
4959
5014
  var t;
4960
- (t = p(this, A)) == null || t.clearAll();
5015
+ (t = p(this, z)) == null || t.clearAll();
4961
5016
  }
4962
5017
  // ── core lifecycle hooks ──────────────────────────────────────────────────
4963
5018
  /** Runtime writing-direction switch (core observes `dir`): re-mirror the live
@@ -4966,28 +5021,28 @@ class Ge extends zt {
4966
5021
  * and the panels' explicit `dir`). The initial direction is read by the build. */
4967
5022
  directionChanged(t) {
4968
5023
  var o;
4969
- (o = p(this, A)) == null || o.refreshDirection();
5024
+ (o = p(this, z)) == null || o.refreshDirection();
4970
5025
  }
4971
5026
  /** Structural change (or first connect): mirror CSS vars, then (re)build the picker. */
4972
5027
  reinit() {
4973
- w(this, k, oo).call(this), this.isConnected && w(this, k, Bt).call(this);
5028
+ x(this, _, oo).call(this), this.isConnected && x(this, _, Bt).call(this);
4974
5029
  }
4975
5030
  /** Cosmetic change: mirror CSS vars / custom styles / debug, patch the picker in place. */
4976
5031
  update(t) {
4977
- w(this, k, io).call(this, t), "customStylesCallback" in t && w(this, k, Ft).call(this), "showDebugInfo" in t && w(this, k, jt).call(this);
5032
+ x(this, _, io).call(this, t), "customStylesCallback" in t && x(this, _, Ft).call(this), "showDebugInfo" in t && x(this, _, jt).call(this);
4978
5033
  const o = {};
4979
5034
  for (const [i, r] of Object.entries(t))
4980
5035
  Is.has(i) || (o[i] = r === null ? void 0 : r);
4981
- p(this, A) && Object.keys(o).length > 0 && (p(this, A).updateOptions(o) || w(this, k, Bt).call(this)), "mobilePresentation" in t && w(this, k, ct).call(this, At());
5036
+ p(this, z) && Object.keys(o).length > 0 && (p(this, z).updateOptions(o) || x(this, _, Bt).call(this)), "mobilePresentation" in t && x(this, _, ct).call(this, At());
4982
5037
  }
4983
5038
  /** Activate: ensure the picker exists (a DOM move destroyed it in disconnect()). */
4984
5039
  connect() {
4985
- p(this, A) || w(this, k, Kt).call(this);
5040
+ p(this, z) || x(this, _, Kt).call(this);
4986
5041
  }
4987
5042
  /** Deactivate: tear the picker down (rebuilt on the next connect). */
4988
5043
  disconnect() {
4989
5044
  var t;
4990
- (t = p(this, A)) == null || t.destroy(), $(this, A, void 0);
5045
+ (t = p(this, z)) == null || t.destroy(), D(this, z, void 0);
4991
5046
  }
4992
5047
  /**
4993
5048
  * Device/viewport/orientation changed (core §12.9). Overriding this opts the
@@ -4998,7 +5053,7 @@ class Ge extends zt {
4998
5053
  * set before the dropdown can open.
4999
5054
  */
5000
5055
  environmentChanged(t) {
5001
- w(this, k, ct).call(this, t);
5056
+ x(this, _, ct).call(this, t);
5002
5057
  }
5003
5058
  // ── non-input public API ──────────────────────────────────────────────────
5004
5059
  /** Form field name (mirrors the `name` attribute → `formFieldId`). */
@@ -5010,21 +5065,21 @@ class Ge extends zt {
5010
5065
  }
5011
5066
  get selectedValue() {
5012
5067
  var t;
5013
- return this.flush(), ((t = p(this, A)) == null ? void 0 : t.selectedValue) ?? null;
5068
+ return this.flush(), ((t = p(this, z)) == null ? void 0 : t.selectedValue) ?? null;
5014
5069
  }
5015
5070
  get selectedItem() {
5016
5071
  var t;
5017
- return this.flush(), ((t = p(this, A)) == null ? void 0 : t.selectedItem) ?? null;
5072
+ return this.flush(), ((t = p(this, z)) == null ? void 0 : t.selectedItem) ?? null;
5018
5073
  }
5019
5074
  getSelected() {
5020
- return this.flush(), p(this, A) ? p(this, A).getSelected() : [];
5075
+ return this.flush(), p(this, z) ? p(this, z).getSelected() : [];
5021
5076
  }
5022
5077
  setSelected(t, o = {}) {
5023
5078
  var i;
5024
- this.flush(), (i = p(this, A)) == null || i.setSelected(t, o);
5079
+ this.flush(), (i = p(this, z)) == null || i.setSelected(t, o);
5025
5080
  }
5026
5081
  getValue() {
5027
- return this.flush(), p(this, A) ? p(this, A).getValue() : null;
5082
+ return this.flush(), p(this, z) ? p(this, z).getValue() : null;
5028
5083
  }
5029
5084
  /**
5030
5085
  * Surface a transient message ("toast") on top of the component — visible even in the
@@ -5035,35 +5090,35 @@ class Ge extends zt {
5035
5090
  */
5036
5091
  showMessage(t, o) {
5037
5092
  var i;
5038
- this.flush(), (i = p(this, A)) == null || i.showMessage(t, o);
5093
+ this.flush(), (i = p(this, z)) == null || i.showMessage(t, o);
5039
5094
  }
5040
5095
  /** Dismiss the transient message shown by {@link showMessage}, if any. */
5041
5096
  hideMessage() {
5042
5097
  var t;
5043
- (t = p(this, A)) == null || t.hideMessage();
5098
+ (t = p(this, z)) == null || t.hideMessage();
5044
5099
  }
5045
5100
  destroy() {
5046
5101
  var t;
5047
- (t = p(this, A)) == null || t.destroy();
5102
+ (t = p(this, z)) == null || t.destroy();
5048
5103
  }
5049
5104
  }
5050
- J = new WeakMap(), A = new WeakMap(), me = new WeakMap(), et = new WeakMap(), tt = new WeakMap(), st = new WeakMap(), ze = new WeakMap(), $e = new WeakMap(), ke = new WeakMap(), k = new WeakSet(), /** Resolve `mobile-presentation` against `env` and relay it to the live picker. */
5105
+ J = new WeakMap(), z = new WeakMap(), me = new WeakMap(), et = new WeakMap(), tt = new WeakMap(), st = new WeakMap(), ze = new WeakMap(), De = new WeakMap(), ke = new WeakMap(), _ = new WeakSet(), /** Resolve `mobile-presentation` against `env` and relay it to the live picker. */
5051
5106
  ct = function(t) {
5052
5107
  var r;
5053
5108
  const o = this.config.mobilePresentation ?? "auto", i = si(o, t);
5054
- (r = p(this, A)) == null || r.setPresentation(i === "modal" ? "fullscreen" : i);
5109
+ (r = p(this, z)) == null || r.setPresentation(i === "modal" ? "fullscreen" : i);
5055
5110
  }, // ── picker lifecycle ──────────────────────────────────────────────────────
5056
5111
  Bt = function() {
5057
5112
  var t;
5058
- (t = p(this, A)) == null || t.destroy(), $(this, A, void 0), w(this, k, Kt).call(this);
5113
+ (t = p(this, z)) == null || t.destroy(), D(this, z, void 0), x(this, _, Kt).call(this);
5059
5114
  }, Kt = function() {
5060
- w(this, k, Zs).call(this), w(this, k, ro).call(this);
5061
- const t = w(this, k, eo).call(this), o = w(this, k, to).call(this);
5062
- o && o.length > 0 ? p(this, me).dataset.initialValues = JSON.stringify(o) : delete p(this, me).dataset.initialValues, $(this, A, new wr(p(this, me), t)), w(this, k, Ft).call(this), w(this, k, jt).call(this), w(this, k, ct).call(this, At());
5115
+ x(this, _, Zs).call(this), x(this, _, ro).call(this);
5116
+ const t = x(this, _, eo).call(this), o = x(this, _, to).call(this);
5117
+ o && o.length > 0 ? p(this, me).dataset.initialValues = JSON.stringify(o) : delete p(this, me).dataset.initialValues, D(this, z, new wr(p(this, me), t)), x(this, _, Ft).call(this), x(this, _, jt).call(this), x(this, _, ct).call(this, At());
5063
5118
  }, Zs = function() {
5064
5119
  if (p(this, me)) return;
5065
5120
  const t = document.createElement("div");
5066
- t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), p(this, J).appendChild(t), $(this, et, Xo(p(this, J), { position: "first", className: "ms-custom-styles" })), $(this, me, t);
5121
+ t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), p(this, J).appendChild(t), D(this, et, Yo(p(this, J), { position: "first", className: "ms-custom-styles" })), D(this, me, t);
5067
5122
  }, /**
5068
5123
  * Build the picker config from the merged `this.config`, minus the keys the
5069
5124
  * picker doesn't own, plus the runtime wiring (event bridges, container, host,
@@ -5075,8 +5130,8 @@ eo = function() {
5075
5130
  for (const i of Object.keys(t))
5076
5131
  t[i] === null && delete t[i];
5077
5132
  let o = t.options;
5078
- if (p(this, ze) && p(this, $e))
5079
- o && o.length > 0 && B.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), o = p(this, $e);
5133
+ if (p(this, ze) && p(this, De))
5134
+ o && o.length > 0 && K.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), o = p(this, De);
5080
5135
  else if (!o || o.length === 0) {
5081
5136
  const i = this.config.optionsSource;
5082
5137
  if (i != null) {
@@ -5084,7 +5139,7 @@ eo = function() {
5084
5139
  splitter: this.config.optionsSplitter,
5085
5140
  rowSplitter: this.config.optionsRowSplitter
5086
5141
  });
5087
- a && B.error(`[MultiSelectElement] ${a}`), o = n;
5142
+ a && K.error(`[MultiSelectElement] ${a}`), o = n;
5088
5143
  }
5089
5144
  }
5090
5145
  if (t.options = o, p(this, ze))
@@ -5094,20 +5149,20 @@ eo = function() {
5094
5149
  var r;
5095
5150
  this.emit("select", {
5096
5151
  option: i,
5097
- selectedOptions: ((r = p(this, A)) == null ? void 0 : r.getSelected()) ?? [],
5098
- selectedValues: w(this, k, dt).call(this)
5152
+ selectedOptions: ((r = p(this, z)) == null ? void 0 : r.getSelected()) ?? [],
5153
+ selectedValues: x(this, _, dt).call(this)
5099
5154
  });
5100
5155
  }, t.onDeselect = (i) => {
5101
5156
  var r;
5102
5157
  this.emit("deselect", {
5103
5158
  option: i,
5104
- selectedOptions: ((r = p(this, A)) == null ? void 0 : r.getSelected()) ?? [],
5105
- selectedValues: w(this, k, dt).call(this)
5159
+ selectedOptions: ((r = p(this, z)) == null ? void 0 : r.getSelected()) ?? [],
5160
+ selectedValues: x(this, _, dt).call(this)
5106
5161
  });
5107
5162
  }, t.onChange = (i) => {
5108
5163
  this.emit("change", {
5109
5164
  selectedOptions: i,
5110
- selectedValues: w(this, k, dt).call(this)
5165
+ selectedValues: x(this, _, dt).call(this)
5111
5166
  });
5112
5167
  }, t.container = p(this, J), t.hostElement = this, t;
5113
5168
  }, to = function() {
@@ -5117,7 +5172,7 @@ eo = function() {
5117
5172
  return t && t.length > 0 ? t : void 0;
5118
5173
  }, dt = function() {
5119
5174
  var o;
5120
- const t = (o = p(this, A)) == null ? void 0 : o.getValue();
5175
+ const t = (o = p(this, z)) == null ? void 0 : o.getValue();
5121
5176
  return t == null ? [] : Array.isArray(t) ? t : [t];
5122
5177
  }, // ── §12.8 custom styles ───────────────────────────────────────────────────
5123
5178
  Ft = function() {
@@ -5130,9 +5185,9 @@ Ft = function() {
5130
5185
  }
5131
5186
  try {
5132
5187
  const i = o();
5133
- t.set(i), i && w(this, k, so).call(this, i);
5188
+ t.set(i), i && x(this, _, so).call(this, i);
5134
5189
  } catch (i) {
5135
- B.warn("[MultiSelectElement] customStylesCallback threw", i), t.clear();
5190
+ K.warn("[MultiSelectElement] customStylesCallback threw", i), t.clear();
5136
5191
  }
5137
5192
  }, /**
5138
5193
  * Dev-only lint: warn when `customStylesCallback` *sets* a `--ms-*` variable
@@ -5152,18 +5207,18 @@ so = function(t) {
5152
5207
  ));
5153
5208
  }, // ── CSS-var sugar ─────────────────────────────────────────────────────────
5154
5209
  oo = function() {
5155
- for (const t of Object.keys(at)) w(this, k, Wt).call(this, at[t], this.config[t]);
5210
+ for (const t of Object.keys(at)) x(this, _, Wt).call(this, at[t], this.config[t]);
5156
5211
  }, io = function(t) {
5157
5212
  for (const o of Object.keys(at))
5158
- o in t && w(this, k, Wt).call(this, at[o], t[o]);
5213
+ o in t && x(this, _, Wt).call(this, at[o], t[o]);
5159
5214
  }, Wt = function(t, o) {
5160
5215
  o == null || o === "" ? this.style.removeProperty(t) : this.style.setProperty(t, String(o));
5161
5216
  }, // ── declarative <option> parsing (light DOM, once) ────────────────────────
5162
5217
  ro = function() {
5163
5218
  if (p(this, st)) return;
5164
- $(this, st, !0);
5165
- const t = w(this, k, no).call(this);
5166
- t && ($(this, $e, t), $(this, ze, !0));
5219
+ D(this, st, !0);
5220
+ const t = x(this, _, no).call(this);
5221
+ t && (D(this, De, t), D(this, ze, !0));
5167
5222
  }, no = function() {
5168
5223
  const t = Array.from(this.children);
5169
5224
  if (t.length === 0) return null;
@@ -5175,7 +5230,7 @@ ro = function() {
5175
5230
  value: n.value || ((c = n.textContent) == null ? void 0 : c.trim()) || "",
5176
5231
  label: ((d = n.textContent) == null ? void 0 : d.trim()) || n.value || ""
5177
5232
  };
5178
- a && (l.group = a), n.hasAttribute("selected") && (p(this, ke) ?? $(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;
5233
+ a && (l.group = a), n.hasAttribute("selected") && (p(this, ke) ?? D(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;
5179
5234
  };
5180
5235
  for (const n of t)
5181
5236
  if (n.tagName === "OPTION")
@@ -5186,7 +5241,7 @@ ro = function() {
5186
5241
  r(c, l);
5187
5242
  }
5188
5243
  if (!i) return null;
5189
- B.debug(`[MultiSelectElement] Parsed ${o.length} declarative options from Light DOM`);
5244
+ K.debug(`[MultiSelectElement] Parsed ${o.length} declarative options from Light DOM`);
5190
5245
  for (const n of t)
5191
5246
  (n.tagName === "OPTION" || n.tagName === "OPTGROUP") && n.remove();
5192
5247
  return o;
@@ -5199,12 +5254,12 @@ jt = function() {
5199
5254
  const i = document.createElement("details"), r = document.createElement("summary");
5200
5255
  r.textContent = "Debug Info";
5201
5256
  const n = document.createElement("div");
5202
- n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), p(this, J).appendChild(o), w(this, k, Ut).call(this);
5257
+ n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), p(this, J).appendChild(o), x(this, _, Ut).call(this);
5203
5258
  }, Ut = function() {
5204
5259
  var l, c, d, h;
5205
5260
  const t = p(this, J).querySelector(".ms__debug-stats");
5206
- if (!t || !p(this, A)) return;
5207
- const o = "2.0.0-rc05", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = p(this, A).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = p(this, A);
5261
+ if (!t || !p(this, z)) return;
5262
+ const o = "2.0.0-rc06", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = p(this, z).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = p(this, z);
5208
5263
  t.innerHTML = `
5209
5264
  <span>Version: ${o}</span>
5210
5265
  <span>Total Instances: ${i}</span>
@@ -5215,7 +5270,7 @@ jt = function() {
5215
5270
  <span>Search: ${a.searchTerm || "none"}</span>
5216
5271
  <span>Loading: ${a.isLoading ? "Yes" : "No"}</span>
5217
5272
  `, setTimeout(() => {
5218
- this.config.showDebugInfo && w(this, k, Ut).call(this);
5273
+ this.config.showDebugInfo && x(this, _, Ut).call(this);
5219
5274
  }, 500);
5220
5275
  }, // Opt into the form-associated custom element lifecycle so form.reset() and
5221
5276
  // form.elements see the control.
@@ -5224,7 +5279,7 @@ typeof customElements < "u" && !customElements.get("web-multiselect") && customE
5224
5279
  Go("web-multiselect", Ge, {
5225
5280
  config: {
5226
5281
  name: "@keenmate/web-multiselect",
5227
- version: "2.0.0-rc05",
5282
+ version: "2.0.0-rc06",
5228
5283
  author: "Keenmate",
5229
5284
  license: "MIT",
5230
5285
  repository: "git+https://github.com/keenmate/web-multiselect.git",
@@ -5237,9 +5292,9 @@ export {
5237
5292
  Ge as MultiSelectElement,
5238
5293
  _r as OPTIONS_FORMATS,
5239
5294
  wr as WebMultiSelect,
5240
- B as dataLogger,
5241
- Dr as disableLogging,
5242
- $r as enableLogging,
5295
+ K as dataLogger,
5296
+ $r as disableLogging,
5297
+ Dr as enableLogging,
5243
5298
  nt as initLogger,
5244
5299
  W as interactionLogger,
5245
5300
  kr as parseOptionsData,