@keenmate/web-multiselect 2.2.0-rc01 → 2.2.0-rc02

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.
@@ -1,10 +1,10 @@
1
1
  var Ho = Object.defineProperty;
2
- var Ss = (s) => {
2
+ var Ts = (s) => {
3
3
  throw TypeError(s);
4
4
  };
5
5
  var Fo = (s, e, t) => e in s ? Ho(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
6
- var m = (s, e, t) => Fo(s, typeof e != "symbol" ? e + "" : e, t), Ut = (s, e, t) => e.has(s) || Ss("Cannot " + t);
7
- var h = (s, e, t) => (Ut(s, e, "read from private field"), t ? t.call(s) : e.get(s)), L = (s, e, t) => e.has(s) ? Ss("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(s) : e.set(s, t), I = (s, e, t, o) => (Ut(s, e, "write to private field"), o ? o.call(s, t) : e.set(s, t), t), v = (s, e, t) => (Ut(s, e, "access private method"), t);
6
+ var m = (s, e, t) => Fo(s, typeof e != "symbol" ? e + "" : e, t), Ut = (s, e, t) => e.has(s) || Ts("Cannot " + t);
7
+ var h = (s, e, t) => (Ut(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), I = (s, e, t, o) => (Ut(s, e, "write to private field"), o ? o.call(s, t) : e.set(s, t), t), b = (s, e, t) => (Ut(s, e, "access private method"), t);
8
8
  function K(s, e = {}) {
9
9
  const t = new Set(s), o = e.shouldNullOnInvalid ? null : e.default ?? null;
10
10
  return {
@@ -37,7 +37,7 @@ function X(s = {}) {
37
37
  }
38
38
  };
39
39
  }
40
- function z(s = {}) {
40
+ function E(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) {
@@ -164,7 +164,7 @@ function Jo() {
164
164
  }
165
165
  };
166
166
  }
167
- const to = {
167
+ const so = {
168
168
  pointer: "fine",
169
169
  hasCoarsePointer: !1,
170
170
  canHover: !0,
@@ -177,12 +177,12 @@ const to = {
177
177
  isApple: !1,
178
178
  isAndroid: !1
179
179
  }, Yo = { mobile: 640, tablet: 1024, desktop: 1 / 0 };
180
- let xt = so(Yo);
180
+ let xt = oo(Yo);
181
181
  const rt = /* @__PURE__ */ new Set(), nt = /* @__PURE__ */ new Set();
182
182
  let Oe = null, It = [], _t = !1;
183
- const Ts = 30;
183
+ const Is = 30;
184
184
  let Ae, kt = 0;
185
- function so(s) {
185
+ function oo(s) {
186
186
  return Object.entries(s).sort((e, t) => e[1] - t[1]);
187
187
  }
188
188
  function Zo(s) {
@@ -192,10 +192,10 @@ function Zo(s) {
192
192
  const e = xt[xt.length - 1];
193
193
  return e ? e[0] : "desktop";
194
194
  }
195
- function fs() {
195
+ function gs() {
196
196
  return typeof window < "u" && typeof window.matchMedia == "function";
197
197
  }
198
- function Is() {
198
+ function Os() {
199
199
  return typeof navigator < "u" && (navigator.maxTouchPoints ?? 0) > 1;
200
200
  }
201
201
  function Qo() {
@@ -209,25 +209,25 @@ function Qo() {
209
209
  if (e.includes("ios"))
210
210
  return "ios";
211
211
  if (e.includes("mac"))
212
- return Is() ? "ios" : "macos";
212
+ return Os() ? "ios" : "macos";
213
213
  if (e.includes("windows"))
214
214
  return "windows";
215
215
  if (e.includes("linux"))
216
216
  return "linux";
217
217
  }
218
218
  const t = navigator.userAgent ?? "";
219
- return /android/i.test(t) ? "android" : /iphone|ipod|ipad/i.test(t) ? "ios" : /macintosh|mac os x/i.test(t) ? Is() ? "ios" : "macos" : /windows/i.test(t) ? "windows" : /linux/i.test(t) ? "linux" : "unknown";
219
+ return /android/i.test(t) ? "android" : /iphone|ipod|ipad/i.test(t) ? "ios" : /macintosh|mac os x/i.test(t) ? Os() ? "ios" : "macos" : /windows/i.test(t) ? "windows" : /linux/i.test(t) ? "linux" : "unknown";
220
220
  }
221
221
  let ei;
222
222
  function ti() {
223
223
  return ei ?? (ei = Qo());
224
224
  }
225
225
  function qe(s) {
226
- return fs() && window.matchMedia(s).matches;
226
+ return gs() && window.matchMedia(s).matches;
227
227
  }
228
- function gs() {
229
- if (!fs())
230
- return { ...to };
228
+ function bs() {
229
+ if (!gs())
230
+ return { ...so };
231
231
  const s = qe("(any-pointer: coarse)"), e = qe("(pointer: coarse)"), t = qe("(pointer: fine)"), o = qe("(hover: hover)"), i = e ? "coarse" : t ? "fine" : "none", r = window.innerWidth, n = window.innerHeight, a = ti();
232
232
  return {
233
233
  pointer: i,
@@ -250,13 +250,13 @@ function oi(s, e) {
250
250
  return s.viewportWidth === e.viewportWidth && s.viewportHeight === e.viewportHeight;
251
251
  }
252
252
  function Ot() {
253
- const s = gs(), e = Oe;
253
+ const s = bs(), e = Oe;
254
254
  if (Oe = s, !e || !si(e, s))
255
255
  for (const t of [...rt])
256
256
  t(s);
257
257
  nt.size > 0 && (!e || !oi(e, s)) && ii();
258
258
  }
259
- function Os() {
259
+ function Ps() {
260
260
  const s = Oe;
261
261
  if (s)
262
262
  for (const e of [...nt])
@@ -266,11 +266,11 @@ function ii() {
266
266
  if (Ae !== void 0)
267
267
  return;
268
268
  const s = Date.now() - kt;
269
- s >= Ts ? (kt = Date.now(), Os()) : Ae = setTimeout(() => {
270
- Ae = void 0, kt = Date.now(), Os();
271
- }, Ts - s);
269
+ s >= Is ? (kt = Date.now(), Ps()) : Ae = setTimeout(() => {
270
+ Ae = void 0, kt = Date.now(), Ps();
271
+ }, Is - s);
272
272
  }
273
- const Pt = () => Ot(), oo = () => {
273
+ const Pt = () => Ot(), io = () => {
274
274
  if (typeof requestAnimationFrame == "function") {
275
275
  if (_t)
276
276
  return;
@@ -286,9 +286,9 @@ function ri(s) {
286
286
  function ni(s) {
287
287
  typeof s.removeEventListener == "function" ? s.removeEventListener("change", Pt) : typeof s.removeListener == "function" && s.removeListener(Pt);
288
288
  }
289
- function io() {
290
- if (!fs()) {
291
- Oe = { ...to };
289
+ function ro() {
290
+ if (!gs()) {
291
+ Oe = { ...so };
292
292
  return;
293
293
  }
294
294
  It = [
@@ -300,37 +300,37 @@ function io() {
300
300
  ];
301
301
  for (const s of It)
302
302
  ri(s);
303
- typeof window.addEventListener == "function" && window.addEventListener("resize", oo), Oe = gs();
303
+ typeof window.addEventListener == "function" && window.addEventListener("resize", io), Oe = bs();
304
304
  }
305
- function ro() {
305
+ function no() {
306
306
  for (const s of It)
307
307
  ni(s);
308
- It = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize", oo), _t = !1, Ae !== void 0 && (clearTimeout(Ae), Ae = void 0), kt = 0, Oe = null;
308
+ It = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize", io), _t = !1, Ae !== void 0 && (clearTimeout(Ae), Ae = void 0), kt = 0, Oe = null;
309
309
  }
310
310
  function Mt() {
311
311
  return rt.size + nt.size;
312
312
  }
313
313
  function Lt() {
314
- return Oe ?? gs();
314
+ return Oe ?? bs();
315
315
  }
316
316
  function ai(s, e = {}) {
317
317
  const t = Mt() === 0;
318
- rt.add(s), t && io(), e.immediate !== !1 && s(Lt());
318
+ rt.add(s), t && ro(), e.immediate !== !1 && s(Lt());
319
319
  let o = !0;
320
320
  return () => {
321
- o && (o = !1, rt.delete(s), Mt() === 0 && ro());
321
+ o && (o = !1, rt.delete(s), Mt() === 0 && no());
322
322
  };
323
323
  }
324
324
  function li(s, e = {}) {
325
325
  const t = Mt() === 0;
326
- nt.add(s), t && io(), e.immediate !== !1 && s(Lt());
326
+ nt.add(s), t && ro(), e.immediate !== !1 && s(Lt());
327
327
  let o = !0;
328
328
  return () => {
329
- o && (o = !1, nt.delete(s), Mt() === 0 && ro());
329
+ o && (o = !1, nt.delete(s), Mt() === 0 && no());
330
330
  };
331
331
  }
332
332
  function Sn(s) {
333
- xt = so(s), rt.size > 0 && Ot();
333
+ xt = oo(s), rt.size > 0 && Ot();
334
334
  }
335
335
  const ci = 600;
336
336
  function di(s) {
@@ -343,7 +343,7 @@ let qt = 0;
343
343
  function ui() {
344
344
  return typeof ResizeObserver < "u";
345
345
  }
346
- function no(s) {
346
+ function ao(s) {
347
347
  if (typeof s.getBoundingClientRect != "function")
348
348
  return { width: 0, height: 0 };
349
349
  const e = s.getBoundingClientRect();
@@ -356,11 +356,11 @@ function pi(s, e) {
356
356
  if (mi(s.lastFired, e) || (s.pendingSize = e, s.timer !== void 0))
357
357
  return;
358
358
  const t = Date.now() - s.lastNotify;
359
- t >= s.throttleMs ? (s.lastNotify = Date.now(), Ps(s)) : s.timer = setTimeout(() => {
360
- s.timer = void 0, s.lastNotify = Date.now(), Ps(s);
359
+ t >= s.throttleMs ? (s.lastNotify = Date.now(), Ms(s)) : s.timer = setTimeout(() => {
360
+ s.timer = void 0, s.lastNotify = Date.now(), Ms(s);
361
361
  }, s.throttleMs - t);
362
362
  }
363
- function Ps(s) {
363
+ function Ms(s) {
364
364
  const e = s.pendingSize;
365
365
  e && (s.lastFired = e, s.cb(e, s.el));
366
366
  }
@@ -369,7 +369,7 @@ function fi(s) {
369
369
  const t = et.get(e.target);
370
370
  if (!t)
371
371
  continue;
372
- const o = no(e.target);
372
+ const o = ao(e.target);
373
373
  for (const i of [...t])
374
374
  pi(i, o);
375
375
  }
@@ -385,7 +385,7 @@ function bi(s, e, t = {}) {
385
385
  lastNotify: 0
386
386
  };
387
387
  if (t.immediate !== !1) {
388
- const n = no(s);
388
+ const n = ao(s);
389
389
  o.lastFired = n, o.lastNotify = Date.now(), e(n, s);
390
390
  }
391
391
  const i = gi();
@@ -414,12 +414,12 @@ function wi(s, e) {
414
414
  function yi(s) {
415
415
  return Array.from(Et.get(s) ?? []);
416
416
  }
417
- const ao = /* @__PURE__ */ new Map();
417
+ const lo = /* @__PURE__ */ new Map();
418
418
  function xi(s, e) {
419
- ao.set(s.toLowerCase(), e);
419
+ lo.set(s.toLowerCase(), e);
420
420
  }
421
421
  function _i(s) {
422
- return ao.get(s.toLowerCase());
422
+ return lo.get(s.toLowerCase());
423
423
  }
424
424
  function ki(s, e, t, o = {}) {
425
425
  return s.dispatchEvent(new CustomEvent(e, {
@@ -442,7 +442,7 @@ function Ti(s) {
442
442
  }) : [];
443
443
  }
444
444
  const Ii = typeof HTMLElement < "u" ? HTMLElement : class {
445
- }, Ms = /* @__PURE__ */ new WeakSet();
445
+ }, Ls = /* @__PURE__ */ new WeakSet();
446
446
  let Oi = 0;
447
447
  const Pi = { trace() {
448
448
  }, debug() {
@@ -450,7 +450,7 @@ const Pi = { trace() {
450
450
  }, warn() {
451
451
  }, error() {
452
452
  } }, Mi = new Proxy({}, { get: () => Pi });
453
- var me, ct, _e, dt, ke, ht, Bt, Ce, pe, Se, Te, Ne, $e, Ve, De, Re, Be, Ht, ie, He, O, lo, co, ho, Z, uo, mo, es, ts, tt, ss, po;
453
+ var me, ct, _e, dt, ke, ht, Bt, Ce, pe, Se, Te, Ne, $e, Ve, De, Re, Be, Ht, ie, He, O, co, ho, uo, Z, mo, po, es, ts, tt, ss, fo;
454
454
  const xe = class xe extends Ii {
455
455
  constructor() {
456
456
  super();
@@ -462,7 +462,7 @@ const xe = class xe extends Ii {
462
462
  /** Live handler currently bound via each managed `on<Name>` property, keyed by event name. */
463
463
  L(this, ke, /* @__PURE__ */ new Map());
464
464
  L(this, ht, Jo());
465
- L(this, Bt, () => v(this, O, ss).call(this));
465
+ L(this, Bt, () => b(this, O, ss).call(this));
466
466
  L(this, Ce, null);
467
467
  L(this, pe, !1);
468
468
  L(this, Se, []);
@@ -489,12 +489,12 @@ const xe = class xe extends Ii {
489
489
  L(this, ie);
490
490
  L(this, He);
491
491
  const t = this.constructor, o = t.inputs ?? [], i = Ti(t.events);
492
- v(this, O, ho).call(this, o, i);
492
+ b(this, O, uo).call(this, o, i);
493
493
  for (const r of o)
494
494
  h(this, ct).set(r.configKey, r), r.attribute && h(this, _e).set(r.attribute, r);
495
495
  for (const r of i)
496
496
  h(this, dt).set(r.name, r);
497
- v(this, O, lo).call(this, o), v(this, O, uo).call(this, o), v(this, O, mo).call(this, i);
497
+ b(this, O, co).call(this, o), b(this, O, mo).call(this, o), b(this, O, po).call(this, i);
498
498
  }
499
499
  static get observedAttributes() {
500
500
  const t = (this.inputs ?? []).filter((o) => o.attribute).map((o) => o.attribute);
@@ -516,12 +516,12 @@ const xe = class xe extends Ii {
516
516
  try {
517
517
  n = qo(r, i, this);
518
518
  } catch (l) {
519
- v(this, O, Z).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = v(this, O, co).call(this, r);
519
+ b(this, O, Z).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = b(this, O, ho).call(this, r);
520
520
  }
521
- v(this, O, ts).call(this, n);
521
+ b(this, O, ts).call(this, n);
522
522
  }
523
523
  connectedCallback() {
524
- vi(this.localName, this), h(this, Te) || (I(this, Te, !0), I(this, Ne, null), I(this, pe, !0)), v(this, O, tt).call(this), this.connect(), this.environmentChanged !== xe.prototype.environmentChanged && I(this, Ve, ai((t) => this.environmentChanged(t))), this.viewportChanged !== xe.prototype.viewportChanged && I(this, De, li((t) => this.viewportChanged(t))), this.resized !== xe.prototype.resized && I(this, Re, bi(this, (t) => this.resized(t), { immediate: !1 }));
524
+ vi(this.localName, this), h(this, Te) || (I(this, Te, !0), I(this, Ne, null), I(this, pe, !0)), b(this, O, tt).call(this), this.connect(), this.environmentChanged !== xe.prototype.environmentChanged && I(this, Ve, ai((t) => this.environmentChanged(t))), this.viewportChanged !== xe.prototype.viewportChanged && I(this, De, li((t) => this.viewportChanged(t))), this.resized !== xe.prototype.resized && I(this, Re, bi(this, (t) => this.resized(t), { immediate: !1 }));
525
525
  }
526
526
  disconnectedCallback() {
527
527
  var t, o, i;
@@ -532,13 +532,13 @@ const xe = class xe extends Ii {
532
532
  setAttributes(t) {
533
533
  for (const [o, i] of Object.entries(t)) {
534
534
  const r = h(this, ct).get(o) ?? h(this, _e).get(o);
535
- r && v(this, O, es).call(this, r, i);
535
+ r && b(this, O, es).call(this, r, i);
536
536
  }
537
- v(this, O, tt).call(this);
537
+ b(this, O, tt).call(this);
538
538
  }
539
539
  /** Run `fn` and coalesce every input change it makes into a single reinit/update. */
540
540
  batch(t) {
541
- t(), v(this, O, tt).call(this);
541
+ t(), b(this, O, tt).call(this);
542
542
  }
543
543
  /**
544
544
  * Apply any pending input writes **synchronously, now** — running the
@@ -554,7 +554,7 @@ const xe = class xe extends Ii {
554
554
  * `await whenSettled()` between the two.
555
555
  */
556
556
  flush() {
557
- v(this, O, tt).call(this);
557
+ b(this, O, tt).call(this);
558
558
  }
559
559
  /**
560
560
  * Resolves once the element is **settled** — i.e. every staged input change
@@ -802,7 +802,7 @@ const xe = class xe extends Ii {
802
802
  }
803
803
  };
804
804
  me = new WeakMap(), ct = new WeakMap(), _e = new WeakMap(), dt = new WeakMap(), ke = new WeakMap(), ht = new WeakMap(), Bt = new WeakMap(), Ce = new WeakMap(), pe = new WeakMap(), Se = new WeakMap(), Te = new WeakMap(), Ne = new WeakMap(), $e = new WeakMap(), Ve = new WeakMap(), De = new WeakMap(), Re = new WeakMap(), Be = new WeakMap(), Ht = new WeakMap(), ie = new WeakMap(), He = new WeakMap(), O = new WeakSet(), // ── internals ─────────────────────────────────────────────────────────────
805
- lo = function(t) {
805
+ co = function(t) {
806
806
  var o;
807
807
  for (const i of t) {
808
808
  let r = i.default;
@@ -810,25 +810,25 @@ lo = function(t) {
810
810
  try {
811
811
  r = i.converter.fromAttribute(null, this, i.attribute ?? i.configKey);
812
812
  } catch (n) {
813
- v(this, O, Z).call(this, `converter for "${i.configKey}" threw computing its default; using \`default\``, n), r = i.default;
813
+ b(this, O, Z).call(this, `converter for "${i.configKey}" threw computing its default; using \`default\``, n), r = i.default;
814
814
  }
815
815
  h(this, me)[i.configKey] = r, i.field && (this[i.field] = r);
816
816
  }
817
- }, co = function(t) {
817
+ }, ho = function(t) {
818
818
  return { configKey: t.configKey, field: t.field, value: t.default, on: t.on ?? "update" };
819
819
  }, /** Sanity-check the input + event tables once per class; warn (never throw) on mistakes. */
820
- ho = function(t, o) {
820
+ uo = function(t, o) {
821
821
  var l;
822
822
  const i = this.constructor;
823
- if (Ms.has(i))
823
+ if (Ls.has(i))
824
824
  return;
825
- Ms.add(i);
825
+ Ls.add(i);
826
826
  const r = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
827
827
  for (const c of t)
828
- r.has(c.configKey) && v(this, O, Z).call(this, `invalid input table: duplicate configKey "${c.configKey}"`), r.add(c.configKey), c.attribute && (n.has(c.attribute) && v(this, O, Z).call(this, `invalid input table: duplicate attribute "${c.attribute}"`), n.add(c.attribute)), c.reflect && !c.attribute && v(this, O, Z).call(this, `invalid input table: "${c.configKey}" has reflect:true but no attribute to reflect to`), c.reflect && !((l = c.converter) != null && l.toAttribute) && v(this, O, Z).call(this, `invalid input table: "${c.configKey}" has reflect:true but its converter has no toAttribute`);
828
+ r.has(c.configKey) && b(this, O, Z).call(this, `invalid input table: duplicate configKey "${c.configKey}"`), r.add(c.configKey), c.attribute && (n.has(c.attribute) && b(this, O, Z).call(this, `invalid input table: duplicate attribute "${c.attribute}"`), n.add(c.attribute)), c.reflect && !c.attribute && b(this, O, Z).call(this, `invalid input table: "${c.configKey}" has reflect:true but no attribute to reflect to`), c.reflect && !((l = c.converter) != null && l.toAttribute) && b(this, O, Z).call(this, `invalid input table: "${c.configKey}" has reflect:true but its converter has no toAttribute`);
829
829
  const a = /* @__PURE__ */ new Set();
830
830
  for (const c of o)
831
- a.has(c.name) && v(this, O, Z).call(this, `invalid event table: duplicate event "${c.name}"`), a.add(c.name), /^[a-z][a-z0-9-]*$/.test(c.name) || v(this, O, Z).call(this, `invalid event table: event "${c.name}" should be lowercase kebab-case (e.g. "date-select")`), c.property && r.has(c.property) && v(this, O, Z).call(this, `invalid event table: event "${c.name}" property "${c.property}" collides with an input configKey`);
831
+ a.has(c.name) && b(this, O, Z).call(this, `invalid event table: duplicate event "${c.name}"`), a.add(c.name), /^[a-z][a-z0-9-]*$/.test(c.name) || b(this, O, Z).call(this, `invalid event table: event "${c.name}" should be lowercase kebab-case (e.g. "date-select")`), c.property && r.has(c.property) && b(this, O, Z).call(this, `invalid event table: event "${c.name}" property "${c.property}" collides with an input configKey`);
832
832
  }, /**
833
833
  * Always-on console warning for input validation failures. Deliberately uses
834
834
  * `console.warn` directly — NOT the (future) categorized logger — so rejected
@@ -836,14 +836,14 @@ ho = function(t, o) {
836
836
  */
837
837
  Z = function(t, ...o) {
838
838
  console.warn(`[BlissElement] <${this.localName ?? "unknown"}> ${t}`, ...o);
839
- }, uo = function(t) {
839
+ }, mo = function(t) {
840
840
  for (const o of t) {
841
841
  const i = o.configKey, r = Object.prototype.hasOwnProperty.call(this, i), n = r ? this[i] : void 0;
842
842
  r && delete this[i], Object.defineProperty(this, i, {
843
843
  configurable: !0,
844
844
  enumerable: !0,
845
845
  get: () => h(this, me)[i],
846
- set: (a) => v(this, O, es).call(this, o, a)
846
+ set: (a) => b(this, O, es).call(this, o, a)
847
847
  }), r && ((h(this, Ne) ?? I(this, Ne, /* @__PURE__ */ new Set())).add(i), this[i] = n);
848
848
  }
849
849
  }, /**
@@ -851,7 +851,7 @@ Z = function(t, ...o) {
851
851
  * (de)registers a real listener for the event, so the property behaves like
852
852
  * `addEventListener(name, …)` and its handler receives the `CustomEvent`.
853
853
  */
854
- mo = function(t) {
854
+ po = function(t) {
855
855
  for (const o of t) {
856
856
  const i = o.property;
857
857
  if (!i)
@@ -875,10 +875,10 @@ mo = function(t) {
875
875
  var r;
876
876
  const i = Xo(t, o);
877
877
  if (!i) {
878
- v(this, O, Z).call(this, `rejected invalid value for property "${t.configKey}"; keeping previous value`, o);
878
+ b(this, O, Z).call(this, `rejected invalid value for property "${t.configKey}"; keeping previous value`, o);
879
879
  return;
880
880
  }
881
- if (v(this, O, ts).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
881
+ if (b(this, O, ts).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
882
882
  const n = t.converter.toAttribute(i.value);
883
883
  I(this, $e, !0);
884
884
  try {
@@ -891,14 +891,14 @@ mo = function(t) {
891
891
  h(this, me)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" && I(this, pe, !0), (h(this, Ce) ?? I(this, Ce, {}))[t.configKey] = t.value, h(this, ht).schedule(h(this, Bt)));
892
892
  }, /** Cancel any queued microtask and flush pending changes synchronously now. */
893
893
  tt = function() {
894
- h(this, ht).cancel(), v(this, O, ss).call(this);
894
+ h(this, ht).cancel(), b(this, O, ss).call(this);
895
895
  }, ss = function() {
896
896
  if (!this.isConnected)
897
897
  return;
898
898
  const t = h(this, pe), o = h(this, Ce);
899
- I(this, pe, !1), I(this, Ce, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), v(this, O, po).call(this);
899
+ I(this, pe, !1), I(this, Ce, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), b(this, O, fo).call(this);
900
900
  }, /** Resolve everyone awaiting {@link whenSettled} for the flush that just ran. */
901
- po = function() {
901
+ fo = function() {
902
902
  if (h(this, Se).length === 0)
903
903
  return;
904
904
  const t = h(this, Se);
@@ -913,7 +913,7 @@ m(xe, "inputs"), /**
913
913
  */
914
914
  m(xe, "events");
915
915
  let Qt = xe;
916
- function Ls(s, e, t) {
916
+ function Es(s, e, t) {
917
917
  typeof customElements > "u" || customElements.get(s) || customElements.define(s, e, t);
918
918
  }
919
919
  function Li(s) {
@@ -932,12 +932,12 @@ function Ei(s, e, t) {
932
932
  version: () => o.version,
933
933
  config: o,
934
934
  ...i ? { logging: Li(i) } : {},
935
- register: () => Ls(s, e),
935
+ register: () => Es(s, e),
936
936
  getInstances: () => yi(s)
937
937
  };
938
- return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && Ls(s, e), n;
938
+ return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && Es(s, e), n;
939
939
  }
940
- const Es = /* @__PURE__ */ new Map(), As = /* @__PURE__ */ new WeakMap();
940
+ const As = /* @__PURE__ */ new Map(), zs = /* @__PURE__ */ new WeakMap();
941
941
  let gt;
942
942
  function Ai(s) {
943
943
  if (typeof CSSStyleSheet > "u" || !("adoptedStyleSheets" in s))
@@ -953,8 +953,8 @@ function Ai(s) {
953
953
  function zi(s, ...e) {
954
954
  if (typeof document > "u")
955
955
  return;
956
- let t = As.get(s);
957
- t || As.set(s, t = /* @__PURE__ */ new Set());
956
+ let t = zs.get(s);
957
+ t || zs.set(s, t = /* @__PURE__ */ new Set());
958
958
  const o = e.filter((r) => r && !t.has(r));
959
959
  if (o.length === 0)
960
960
  return;
@@ -962,8 +962,8 @@ function zi(s, ...e) {
962
962
  t.add(r);
963
963
  if (Ai(s)) {
964
964
  const r = o.map((n) => {
965
- let a = Es.get(n);
966
- return a || (a = new CSSStyleSheet(), a.replaceSync(n), Es.set(n, a)), a;
965
+ let a = As.get(n);
966
+ return a || (a = new CSSStyleSheet(), a.replaceSync(n), As.set(n, a)), a;
967
967
  });
968
968
  s.adoptedStyleSheets = [...s.adoptedStyleSheets, ...r];
969
969
  return;
@@ -995,18 +995,18 @@ function Ni(s, e = {}) {
995
995
  }
996
996
  };
997
997
  }
998
- function fo(s) {
998
+ function go(s) {
999
999
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1000
1000
  }
1001
1001
  function $i(s, e) {
1002
- const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${fo(e)}[a-z0-9-]+)`, "gi");
1002
+ const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${go(e)}[a-z0-9-]+)`, "gi");
1003
1003
  let i;
1004
1004
  for (; i = o.exec(s); )
1005
1005
  i[1] && t.add(i[1]);
1006
1006
  return t;
1007
1007
  }
1008
1008
  function Vi(s, e) {
1009
- const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${fo(e)}[a-z0-9-]+)\\s*:`, "gi");
1009
+ const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${go(e)}[a-z0-9-]+)\\s*:`, "gi");
1010
1010
  let i;
1011
1011
  for (; i = o.exec(s); )
1012
1012
  i[1] && t.add(i[1]);
@@ -1068,27 +1068,27 @@ function Ki(s) {
1068
1068
  e.removeEventListener("resize", i), e.removeEventListener("scroll", i), s.style.height = "", s.style.top = "";
1069
1069
  };
1070
1070
  }
1071
- const bs = "km-overlay-activated", Wi = Symbol("km-overlay-all-groups"), At = /* @__PURE__ */ new Set(), Ye = /* @__PURE__ */ new Map();
1071
+ const vs = "km-overlay-activated", Wi = Symbol("km-overlay-all-groups"), At = /* @__PURE__ */ new Set(), Ye = /* @__PURE__ */ new Map();
1072
1072
  let zt = !1;
1073
- function vs() {
1073
+ function ws() {
1074
1074
  return typeof document < "u";
1075
1075
  }
1076
1076
  function ji(s, e) {
1077
1077
  return e === Wi || s === e;
1078
1078
  }
1079
- function go(s) {
1079
+ function bo(s) {
1080
1080
  const e = s.detail, t = e == null ? void 0 : e.source, o = e == null ? void 0 : e.group;
1081
1081
  for (const i of Array.from(At))
1082
1082
  i.id !== t && ji(i.group, o) && i.dismiss();
1083
1083
  }
1084
1084
  function Gi() {
1085
- zt || !vs() || (document.addEventListener(bs, go), zt = !0);
1085
+ zt || !ws() || (document.addEventListener(vs, bo), zt = !0);
1086
1086
  }
1087
1087
  function Ui() {
1088
- zt && At.size === 0 && vs() && (document.removeEventListener(bs, go), zt = !1);
1088
+ zt && At.size === 0 && ws() && (document.removeEventListener(vs, bo), zt = !1);
1089
1089
  }
1090
1090
  function qi(s, e) {
1091
- vs() && document.dispatchEvent(new CustomEvent(bs, { detail: { source: s, group: e } }));
1091
+ ws() && document.dispatchEvent(new CustomEvent(vs, { detail: { source: s, group: e } }));
1092
1092
  }
1093
1093
  function Xi(s, e) {
1094
1094
  const t = { id: {}, group: e, dismiss: s };
@@ -1111,10 +1111,10 @@ const G = {
1111
1111
  WARN: 3,
1112
1112
  ERROR: 4,
1113
1113
  SILENT: 5
1114
- }, zs = ["trace", "debug", "info", "warn", "error"], Nt = () => {
1114
+ }, Ns = ["trace", "debug", "info", "warn", "error"], Nt = () => {
1115
1115
  };
1116
1116
  let Ji = "km-log";
1117
- function Ns(s) {
1117
+ function $s(s) {
1118
1118
  const t = console[s];
1119
1119
  return typeof t == "function" ? t.bind(console) : Nt;
1120
1120
  }
@@ -1122,7 +1122,7 @@ function Yi(s) {
1122
1122
  if (s === "debug" && (s = "log"), typeof console > "u")
1123
1123
  return Nt;
1124
1124
  const e = console;
1125
- return e[s] !== void 0 ? Ns(s) : e.log !== void 0 ? Ns("log") : Nt;
1125
+ return e[s] !== void 0 ? $s(s) : e.log !== void 0 ? $s("log") : Nt;
1126
1126
  }
1127
1127
  const Zi = (s) => Yi(s);
1128
1128
  function Ze(s) {
@@ -1134,7 +1134,7 @@ function Ze(s) {
1134
1134
  }
1135
1135
  let ue;
1136
1136
  const $t = {};
1137
- class bo {
1137
+ class vo {
1138
1138
  constructor(e, t) {
1139
1139
  m(this, "name");
1140
1140
  m(this, "levels", G);
@@ -1163,7 +1163,7 @@ class bo {
1163
1163
  const t = this.storageKey();
1164
1164
  if (typeof window > "u" || !t)
1165
1165
  return;
1166
- const o = (zs[e] ?? "silent").toUpperCase();
1166
+ const o = (Ns[e] ?? "silent").toUpperCase();
1167
1167
  try {
1168
1168
  window.localStorage[t] = o;
1169
1169
  } catch {
@@ -1191,7 +1191,7 @@ class bo {
1191
1191
  }
1192
1192
  replaceLoggingMethods() {
1193
1193
  const e = this.getLevel();
1194
- zs.forEach((t, o) => {
1194
+ Ns.forEach((t, o) => {
1195
1195
  this[t] = o < e ? Nt : this.methodFactory(t, e, this.name);
1196
1196
  }), this.log = this.debug;
1197
1197
  }
@@ -1219,14 +1219,14 @@ class bo {
1219
1219
  $t[e].rebuild();
1220
1220
  }
1221
1221
  }
1222
- ue = new bo(void 0, Zi);
1222
+ ue = new vo(void 0, Zi);
1223
1223
  function Qi(s) {
1224
1224
  if (typeof s != "string" || s === "")
1225
1225
  throw new TypeError("You must supply a non-empty name when creating a logger.");
1226
1226
  let e = $t[s];
1227
- return e || (e = $t[s] = new bo(s, ue.methodFactory)), e;
1227
+ return e || (e = $t[s] = new vo(s, ue.methodFactory)), e;
1228
1228
  }
1229
- const er = ["INIT", "DATA", "UI"], tr = "debug", $s = [
1229
+ const er = ["INIT", "DATA", "UI"], tr = "debug", Vs = [
1230
1230
  "#4c8bf5",
1231
1231
  // blue
1232
1232
  "#2ea043",
@@ -1243,11 +1243,11 @@ const er = ["INIT", "DATA", "UI"], tr = "debug", $s = [
1243
1243
  // teal
1244
1244
  "#8a6d3b"
1245
1245
  // brown
1246
- ], Vs = /* @__PURE__ */ new WeakSet();
1246
+ ], Ds = /* @__PURE__ */ new WeakSet();
1247
1247
  function sr(s, e, t) {
1248
- if (Vs.has(s))
1248
+ if (Ds.has(s))
1249
1249
  return;
1250
- Vs.add(s);
1250
+ Ds.add(s);
1251
1251
  const o = s.methodFactory, i = `color:${t};font-weight:bold`;
1252
1252
  s.methodFactory = (r, n, a) => {
1253
1253
  const l = o(r, n, a);
@@ -1278,7 +1278,7 @@ function rr(s, e, t) {
1278
1278
  function nr(s, e = er) {
1279
1279
  const t = {}, o = {};
1280
1280
  e.forEach((r, n) => {
1281
- const a = `${s}:${r}`, l = $s[n % $s.length], c = Qi(a);
1281
+ const a = `${s}:${r}`, l = Vs[n % Vs.length], c = Qi(a);
1282
1282
  sr(c, a, l), t[r] = c, o[r] = { label: a, color: l, logger: c };
1283
1283
  });
1284
1284
  const i = (r) => {
@@ -1318,7 +1318,7 @@ const be = Math.min, ne = Math.max, Vt = Math.round, vt = Math.floor, ae = (s) =
1318
1318
  bottom: "top",
1319
1319
  top: "bottom"
1320
1320
  };
1321
- function vo(s, e, t) {
1321
+ function wo(s, e, t) {
1322
1322
  return ne(s, be(e, t));
1323
1323
  }
1324
1324
  function je(s, e) {
@@ -1330,22 +1330,22 @@ function Pe(s) {
1330
1330
  function Ge(s) {
1331
1331
  return s.split("-")[1];
1332
1332
  }
1333
- function wo(s) {
1333
+ function yo(s) {
1334
1334
  return s === "x" ? "y" : "x";
1335
1335
  }
1336
- function ws(s) {
1336
+ function ys(s) {
1337
1337
  return s === "y" ? "height" : "width";
1338
1338
  }
1339
1339
  function re(s) {
1340
1340
  const e = s[0];
1341
1341
  return e === "t" || e === "b" ? "y" : "x";
1342
1342
  }
1343
- function ys(s) {
1344
- return wo(re(s));
1343
+ function xs(s) {
1344
+ return yo(re(s));
1345
1345
  }
1346
1346
  function lr(s, e, t) {
1347
1347
  t === void 0 && (t = !1);
1348
- const o = Ge(s), i = ys(s), r = ws(i);
1348
+ const o = Ge(s), i = xs(s), r = ys(i);
1349
1349
  let n = i === "x" ? o === (t ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
1350
1350
  return e.reference[r] > e.floating[r] && (n = Dt(n)), [n, Dt(n)];
1351
1351
  }
@@ -1356,12 +1356,12 @@ function cr(s) {
1356
1356
  function os(s) {
1357
1357
  return s.includes("start") ? s.replace("start", "end") : s.replace("end", "start");
1358
1358
  }
1359
- const Ds = ["left", "right"], Rs = ["right", "left"], dr = ["top", "bottom"], hr = ["bottom", "top"];
1359
+ const Rs = ["left", "right"], Bs = ["right", "left"], dr = ["top", "bottom"], hr = ["bottom", "top"];
1360
1360
  function ur(s, e, t) {
1361
1361
  switch (s) {
1362
1362
  case "top":
1363
1363
  case "bottom":
1364
- return t ? e ? Rs : Ds : e ? Ds : Rs;
1364
+ return t ? e ? Bs : Rs : e ? Rs : Bs;
1365
1365
  case "left":
1366
1366
  case "right":
1367
1367
  return e ? dr : hr;
@@ -1387,7 +1387,7 @@ function pr(s) {
1387
1387
  left: (i = s.left) != null ? i : 0
1388
1388
  };
1389
1389
  }
1390
- function yo(s) {
1390
+ function xo(s) {
1391
1391
  return typeof s != "number" ? pr(s) : {
1392
1392
  top: s,
1393
1393
  right: s,
@@ -1413,12 +1413,12 @@ function Rt(s) {
1413
1413
  y: t
1414
1414
  };
1415
1415
  }
1416
- function Bs(s, e, t) {
1416
+ function Hs(s, e, t) {
1417
1417
  let {
1418
1418
  reference: o,
1419
1419
  floating: i
1420
1420
  } = s;
1421
- const r = re(e), n = ys(e), a = ws(n), l = Pe(e), c = r === "y", d = o.x + o.width / 2 - i.width / 2, u = o.y + o.height / 2 - i.height / 2, f = o[a] / 2 - i[a] / 2;
1421
+ const r = re(e), n = xs(e), a = ys(n), l = Pe(e), c = r === "y", d = o.x + o.width / 2 - i.width / 2, u = o.y + o.height / 2 - i.height / 2, f = o[a] / 2 - i[a] / 2;
1422
1422
  let p;
1423
1423
  switch (l) {
1424
1424
  case "top":
@@ -1470,8 +1470,8 @@ async function fr(s, e) {
1470
1470
  elementContext: u = "floating",
1471
1471
  altBoundary: f = !1,
1472
1472
  padding: p = 0
1473
- } = je(e, s), g = yo(p), y = a[f ? u === "floating" ? "reference" : "floating" : u], b = Rt(await r.getClippingRect({
1474
- 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)),
1473
+ } = je(e, s), g = xo(p), x = a[f ? u === "floating" ? "reference" : "floating" : u], v = Rt(await r.getClippingRect({
1474
+ element: (t = await (r.isElement == null ? void 0 : r.isElement(x))) == null || t ? x : x.contextElement || await (r.getDocumentElement == null ? void 0 : r.getDocumentElement(a.floating)),
1475
1475
  boundary: c,
1476
1476
  rootBoundary: d,
1477
1477
  strategy: l
@@ -1483,17 +1483,17 @@ async function fr(s, e) {
1483
1483
  } : 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)) || {
1484
1484
  x: 1,
1485
1485
  y: 1
1486
- }, N = Rt(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
1486
+ }, $ = Rt(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
1487
1487
  elements: a,
1488
1488
  rect: _,
1489
1489
  offsetParent: k,
1490
1490
  strategy: l
1491
1491
  }) : _);
1492
1492
  return {
1493
- top: (b.top - N.top + g.top) / P.y,
1494
- bottom: (N.bottom - b.bottom + g.bottom) / P.y,
1495
- left: (b.left - N.left + g.left) / P.x,
1496
- right: (N.right - b.right + g.right) / P.x
1493
+ top: (v.top - $.top + g.top) / P.y,
1494
+ bottom: ($.bottom - v.bottom + g.bottom) / P.y,
1495
+ left: (v.left - $.left + g.left) / P.x,
1496
+ right: ($.right - v.right + g.right) / P.x
1497
1497
  };
1498
1498
  }
1499
1499
  const gr = 50, br = async (s, e, t) => {
@@ -1513,19 +1513,19 @@ const gr = 50, br = async (s, e, t) => {
1513
1513
  }), {
1514
1514
  x: d,
1515
1515
  y: u
1516
- } = Bs(c, o, l), f = o, p = 0;
1516
+ } = Hs(c, o, l), f = o, p = 0;
1517
1517
  const g = {};
1518
1518
  for (let w = 0; w < r.length; w++) {
1519
- const y = r[w];
1520
- if (!y)
1519
+ const x = r[w];
1520
+ if (!x)
1521
1521
  continue;
1522
1522
  const {
1523
- name: b,
1523
+ name: v,
1524
1524
  fn: _
1525
- } = y, {
1525
+ } = x, {
1526
1526
  x: k,
1527
1527
  y: P,
1528
- data: N,
1528
+ data: $,
1529
1529
  reset: D
1530
1530
  } = await _({
1531
1531
  x: d,
@@ -1541,9 +1541,9 @@ const gr = 50, br = async (s, e, t) => {
1541
1541
  floating: e
1542
1542
  }
1543
1543
  });
1544
- d = k ?? d, u = P ?? u, g[b] = {
1545
- ...g[b],
1546
- ...N
1544
+ d = k ?? d, u = P ?? u, g[v] = {
1545
+ ...g[v],
1546
+ ...$
1547
1547
  }, D && p < gr && (p++, typeof D == "object" && (D.placement && (f = D.placement), D.rects && (c = D.rects === !0 ? await n.getElementRects({
1548
1548
  reference: s,
1549
1549
  floating: e,
@@ -1551,7 +1551,7 @@ const gr = 50, br = async (s, e, t) => {
1551
1551
  }) : D.rects), {
1552
1552
  x: d,
1553
1553
  y: u
1554
- } = Bs(c, f, l)), w = -1);
1554
+ } = Hs(c, f, l)), w = -1);
1555
1555
  }
1556
1556
  return {
1557
1557
  x: d,
@@ -1578,13 +1578,13 @@ const gr = 50, br = async (s, e, t) => {
1578
1578
  } = je(s, e) || {};
1579
1579
  if (c == null)
1580
1580
  return {};
1581
- const u = yo(d), f = {
1581
+ const u = xo(d), f = {
1582
1582
  x: t,
1583
1583
  y: o
1584
- }, p = ys(i), g = ws(p), w = await n.getDimensions(c), y = p === "y", b = y ? "top" : "left", _ = y ? "bottom" : "right", k = y ? "clientHeight" : "clientWidth", P = r.reference[g] + r.reference[p] - f[p] - r.floating[g], N = f[p] - r.reference[p], D = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
1584
+ }, p = xs(i), g = ys(p), w = await n.getDimensions(c), x = p === "y", v = x ? "top" : "left", _ = x ? "bottom" : "right", k = x ? "clientHeight" : "clientWidth", P = r.reference[g] + r.reference[p] - f[p] - r.floating[g], $ = f[p] - r.reference[p], D = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
1585
1585
  let j = D ? D[k] : 0;
1586
1586
  (!j || !await (n.isElement == null ? void 0 : n.isElement(D))) && (j = a.floating[k] || r.floating[g]);
1587
- const q = P / 2 - N / 2, V = j / 2 - w[g] / 2 - 1, S = be(u[b], V), M = be(u[_], V), A = j - w[g] - M, B = j / 2 - w[g] / 2 + q, T = vo(S, B, A), F = !l.arrow && Ge(i) != null && B !== T && r.reference[g] / 2 - (B < S ? S : M) - w[g] / 2 < 0, se = F ? B < S ? B - S : B - A : 0;
1587
+ const q = P / 2 - $ / 2, V = j / 2 - w[g] / 2 - 1, S = be(u[v], V), M = be(u[_], V), z = j - w[g] - M, B = j / 2 - w[g] / 2 + q, T = wo(S, B, z), F = !l.arrow && Ge(i) != null && B !== T && r.reference[g] / 2 - (B < S ? S : M) - w[g] / 2 < 0, se = F ? B < S ? B - S : B - z : 0;
1588
1588
  return {
1589
1589
  [p]: f[p] + se,
1590
1590
  data: {
@@ -1617,15 +1617,15 @@ const gr = 50, br = async (s, e, t) => {
1617
1617
  fallbackStrategy: p = "bestFit",
1618
1618
  fallbackAxisSideDirection: g = "none",
1619
1619
  flipAlignment: w = !0,
1620
- ...y
1620
+ ...x
1621
1621
  } = je(s, e);
1622
1622
  if ((t = r.arrow) != null && t.alignmentOffset)
1623
1623
  return {};
1624
- const b = Pe(i), _ = re(a), k = Pe(a) === a, P = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), N = f || (k || !w ? [Dt(a)] : cr(a)), D = g !== "none";
1625
- !f && D && N.push(...mr(a, w, g, P));
1626
- const j = [a, ...N], q = await l.detectOverflow(e, y), V = [];
1624
+ const v = Pe(i), _ = re(a), k = Pe(a) === a, P = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), $ = f || (k || !w ? [Dt(a)] : cr(a)), D = g !== "none";
1625
+ !f && D && $.push(...mr(a, w, g, P));
1626
+ const j = [a, ...$], q = await l.detectOverflow(e, x), V = [];
1627
1627
  let S = ((o = r.flip) == null ? void 0 : o.overflows) || [];
1628
- if (d && V.push(q[b]), u) {
1628
+ if (d && V.push(q[v]), u) {
1629
1629
  const T = lr(i, n, P);
1630
1630
  V.push(q[T[0]], q[T[1]]);
1631
1631
  }
@@ -1633,7 +1633,7 @@ const gr = 50, br = async (s, e, t) => {
1633
1633
  placement: i,
1634
1634
  overflows: V
1635
1635
  }], !V.every((T) => T <= 0)) {
1636
- var M, A;
1636
+ var M, z;
1637
1637
  const T = (((M = r.flip) == null ? void 0 : M.index) || 0) + 1, F = j[T];
1638
1638
  if (F && (!(u === "alignment" ? _ !== re(F) : !1) || // We leave the current main axis only if every placement on that axis
1639
1639
  // overflows the main axis.
@@ -1647,7 +1647,7 @@ const gr = 50, br = async (s, e, t) => {
1647
1647
  placement: F
1648
1648
  }
1649
1649
  };
1650
- let se = (A = S.filter((we) => we.overflows[0] <= 0).sort((we, J) => we.overflows[1] - J.overflows[1])[0]) == null ? void 0 : A.placement;
1650
+ let se = (z = S.filter((we) => we.overflows[0] <= 0).sort((we, J) => we.overflows[1] - J.overflows[1])[0]) == null ? void 0 : z.placement;
1651
1651
  if (!se)
1652
1652
  switch (p) {
1653
1653
  case "bestFit": {
@@ -1757,20 +1757,20 @@ const _r = function(s) {
1757
1757
  } = je(s, e), d = {
1758
1758
  x: t,
1759
1759
  y: o
1760
- }, u = await r.detectOverflow(e, c), f = re(i), p = wo(f);
1760
+ }, u = await r.detectOverflow(e, c), f = re(i), p = yo(f);
1761
1761
  let g = d[p], w = d[f];
1762
- const y = (_, k) => vo(k + u[_ === "y" ? "top" : "left"], k, k - u[_ === "y" ? "bottom" : "right"]);
1763
- n && (g = y(p, g)), a && (w = y(f, w));
1764
- const b = l.fn({
1762
+ const x = (_, k) => wo(k + u[_ === "y" ? "top" : "left"], k, k - u[_ === "y" ? "bottom" : "right"]);
1763
+ n && (g = x(p, g)), a && (w = x(f, w));
1764
+ const v = l.fn({
1765
1765
  ...e,
1766
1766
  [p]: g,
1767
1767
  [f]: w
1768
1768
  });
1769
1769
  return {
1770
- ...b,
1770
+ ...v,
1771
1771
  data: {
1772
- x: b.x - t,
1773
- y: b.y - o,
1772
+ x: v.x - t,
1773
+ y: v.y - o,
1774
1774
  enabled: {
1775
1775
  [p]: n,
1776
1776
  [f]: a
@@ -1799,9 +1799,9 @@ const _r = function(s) {
1799
1799
  } = o.floating;
1800
1800
  let g, w;
1801
1801
  c === "top" || c === "bottom" ? (g = c, w = d === (await (i.isRTL == null ? void 0 : i.isRTL(r.floating)) ? "start" : "end") ? "left" : "right") : (w = c, g = d === "end" ? "top" : "bottom");
1802
- const y = p - l.top - l.bottom, b = f - l.left - l.right, _ = be(p - l[g], y), k = be(f - l[w], b), P = e.middlewareData.shift, N = !P;
1802
+ const x = p - l.top - l.bottom, v = f - l.left - l.right, _ = be(p - l[g], x), k = be(f - l[w], v), P = e.middlewareData.shift, $ = !P;
1803
1803
  let D = _, j = k;
1804
- P != null && P.enabled.x && (j = b), P != null && P.enabled.y && (D = y), N && !d && (u ? j = f - 2 * ne(l.left, l.right) : D = p - 2 * ne(l.top, l.bottom)), await n({
1804
+ P != null && P.enabled.x && (j = v), P != null && P.enabled.y && (D = x), $ && !d && (u ? j = f - 2 * ne(l.left, l.right) : D = p - 2 * ne(l.top, l.bottom)), await n({
1805
1805
  ...e,
1806
1806
  availableWidth: j,
1807
1807
  availableHeight: D
@@ -1819,7 +1819,7 @@ function Ft() {
1819
1819
  return typeof window < "u";
1820
1820
  }
1821
1821
  function Ue(s) {
1822
- return xo(s) ? (s.nodeName || "").toLowerCase() : "#document";
1822
+ return _o(s) ? (s.nodeName || "").toLowerCase() : "#document";
1823
1823
  }
1824
1824
  function U(s) {
1825
1825
  var e;
@@ -1827,9 +1827,9 @@ function U(s) {
1827
1827
  }
1828
1828
  function le(s) {
1829
1829
  var e;
1830
- return (e = (xo(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
1830
+ return (e = (_o(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
1831
1831
  }
1832
- function xo(s) {
1832
+ function _o(s) {
1833
1833
  return Ft() ? s instanceof Node || s instanceof U(s).Node : !1;
1834
1834
  }
1835
1835
  function ee(s) {
@@ -1838,7 +1838,7 @@ function ee(s) {
1838
1838
  function ve(s) {
1839
1839
  return Ft() ? s instanceof HTMLElement || s instanceof U(s).HTMLElement : !1;
1840
1840
  }
1841
- function Hs(s) {
1841
+ function Fs(s) {
1842
1842
  return !Ft() || typeof ShadowRoot > "u" ? !1 : s instanceof ShadowRoot || s instanceof U(s).ShadowRoot;
1843
1843
  }
1844
1844
  function Kt(s) {
@@ -1867,14 +1867,14 @@ function Wt(s) {
1867
1867
  }
1868
1868
  const Tr = /transform|translate|scale|rotate|perspective|filter/, Ir = /paint|layout|strict|content/, ye = (s) => !!s && s !== "none";
1869
1869
  let Xt;
1870
- function xs(s) {
1870
+ function _s(s) {
1871
1871
  const e = ee(s) ? te(s) : s;
1872
- return ye(e.transform) || ye(e.translate) || ye(e.scale) || ye(e.rotate) || ye(e.perspective) || !_s() && (ye(e.backdropFilter) || ye(e.filter)) || Tr.test(e.willChange || "") || Ir.test(e.contain || "");
1872
+ return ye(e.transform) || ye(e.translate) || ye(e.scale) || ye(e.rotate) || ye(e.perspective) || !ks() && (ye(e.backdropFilter) || ye(e.filter)) || Tr.test(e.willChange || "") || Ir.test(e.contain || "");
1873
1873
  }
1874
1874
  function Or(s) {
1875
1875
  let e = Me(s);
1876
1876
  for (; ve(e) && !at(e); ) {
1877
- if (xs(e))
1877
+ if (_s(e))
1878
1878
  return e;
1879
1879
  if (Wt(e))
1880
1880
  return null;
@@ -1882,7 +1882,7 @@ function Or(s) {
1882
1882
  }
1883
1883
  return null;
1884
1884
  }
1885
- function _s() {
1885
+ function ks() {
1886
1886
  return Xt == null && (Xt = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), Xt;
1887
1887
  }
1888
1888
  function at(s) {
@@ -1907,19 +1907,19 @@ function Me(s) {
1907
1907
  // Step into the shadow DOM of the parent of a slotted node.
1908
1908
  s.assignedSlot || // DOM Element detected.
1909
1909
  s.parentNode || // ShadowRoot detected.
1910
- Hs(s) && s.host || // Fallback.
1910
+ Fs(s) && s.host || // Fallback.
1911
1911
  le(s)
1912
1912
  );
1913
- return Hs(e) ? e.host : e;
1913
+ return Fs(e) ? e.host : e;
1914
1914
  }
1915
- function _o(s) {
1915
+ function ko(s) {
1916
1916
  const e = Me(s);
1917
- return at(e) ? (s.ownerDocument || s).body : ve(e) && Kt(e) ? e : _o(e);
1917
+ return at(e) ? (s.ownerDocument || s).body : ve(e) && Kt(e) ? e : ko(e);
1918
1918
  }
1919
1919
  function lt(s, e, t) {
1920
1920
  var o;
1921
1921
  e === void 0 && (e = []), t === void 0 && (t = !0);
1922
- const i = _o(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = U(i);
1922
+ const i = ko(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = U(i);
1923
1923
  if (r) {
1924
1924
  const a = is(n);
1925
1925
  return e.concat(n, n.visualViewport || [], Kt(i) ? i : [], a && t ? lt(a) : []);
@@ -1929,7 +1929,7 @@ function lt(s, e, t) {
1929
1929
  function is(s) {
1930
1930
  return s.parent && Object.getPrototypeOf(s.parent) ? s.frameElement : null;
1931
1931
  }
1932
- function ko(s) {
1932
+ function Co(s) {
1933
1933
  const e = te(s);
1934
1934
  let t = parseFloat(e.width) || 0, o = parseFloat(e.height) || 0;
1935
1935
  const i = ve(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a = Vt(t) !== r || Vt(o) !== n;
@@ -1939,18 +1939,18 @@ function ko(s) {
1939
1939
  $: a
1940
1940
  };
1941
1941
  }
1942
- function ks(s) {
1942
+ function Cs(s) {
1943
1943
  return ee(s) ? s : s.contextElement;
1944
1944
  }
1945
1945
  function ze(s) {
1946
- const e = ks(s);
1946
+ const e = Cs(s);
1947
1947
  if (!ve(e))
1948
1948
  return ae(1);
1949
1949
  const t = e.getBoundingClientRect(), {
1950
1950
  width: o,
1951
1951
  height: i,
1952
1952
  $: r
1953
- } = ko(e);
1953
+ } = Co(e);
1954
1954
  let n = (r ? Vt(t.width) : t.width) / o, a = (r ? Vt(t.height) : t.height) / i;
1955
1955
  return (!n || !Number.isFinite(n)) && (n = 1), (!a || !Number.isFinite(a)) && (a = 1), {
1956
1956
  x: n,
@@ -1958,9 +1958,9 @@ function ze(s) {
1958
1958
  };
1959
1959
  }
1960
1960
  const Pr = /* @__PURE__ */ ae(0);
1961
- function Co(s) {
1961
+ function So(s) {
1962
1962
  const e = U(s);
1963
- return !_s() || !e.visualViewport ? Pr : {
1963
+ return !ks() || !e.visualViewport ? Pr : {
1964
1964
  x: e.visualViewport.offsetLeft,
1965
1965
  y: e.visualViewport.offsetTop
1966
1966
  };
@@ -1970,17 +1970,17 @@ function Mr(s, e, t) {
1970
1970
  }
1971
1971
  function Le(s, e, t, o) {
1972
1972
  e === void 0 && (e = !1), t === void 0 && (t = !1);
1973
- const i = s.getBoundingClientRect(), r = ks(s);
1973
+ const i = s.getBoundingClientRect(), r = Cs(s);
1974
1974
  let n = ae(1);
1975
1975
  e && (o ? ee(o) && (n = ze(o)) : n = ze(s));
1976
- const a = Mr(r, t, o) ? Co(r) : ae(0);
1976
+ const a = Mr(r, t, o) ? So(r) : ae(0);
1977
1977
  let l = (i.left + a.x) / n.x, c = (i.top + a.y) / n.y, d = i.width / n.x, u = i.height / n.y;
1978
1978
  if (r && o) {
1979
1979
  const f = U(r), p = ee(o) ? U(o) : o;
1980
1980
  let g = f, w = is(g);
1981
1981
  for (; w && p !== g; ) {
1982
- const y = ze(w), b = w.getBoundingClientRect(), _ = te(w), k = b.left + (w.clientLeft + parseFloat(_.paddingLeft)) * y.x, P = b.top + (w.clientTop + parseFloat(_.paddingTop)) * y.y;
1983
- l *= y.x, c *= y.y, d *= y.x, u *= y.y, l += k, c += P, g = U(w), w = is(g);
1982
+ const x = ze(w), v = w.getBoundingClientRect(), _ = te(w), k = v.left + (w.clientLeft + parseFloat(_.paddingLeft)) * x.x, P = v.top + (w.clientTop + parseFloat(_.paddingTop)) * x.y;
1983
+ l *= x.x, c *= x.y, d *= x.x, u *= x.y, l += k, c += P, g = U(w), w = is(g);
1984
1984
  }
1985
1985
  }
1986
1986
  return Rt({
@@ -1994,7 +1994,7 @@ function Gt(s, e) {
1994
1994
  const t = jt(s).scrollLeft;
1995
1995
  return e ? e.left + t : Le(le(s)).left + t;
1996
1996
  }
1997
- function So(s, e) {
1997
+ function To(s, e) {
1998
1998
  const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft - Gt(s, t), i = t.top + e.scrollTop;
1999
1999
  return {
2000
2000
  x: o,
@@ -2020,7 +2020,7 @@ function Lr(s) {
2020
2020
  const p = Le(o);
2021
2021
  c = ze(o), d.x = p.x + o.clientLeft, d.y = p.y + o.clientTop;
2022
2022
  }
2023
- const f = n && !u && !r ? So(n, l) : ae(0);
2023
+ const f = n && !u && !r ? To(n, l) : ae(0);
2024
2024
  return {
2025
2025
  width: t.width * c.x,
2026
2026
  height: t.height * c.y,
@@ -2048,12 +2048,12 @@ function Nr(s, e, t) {
2048
2048
  const o = t === "layoutViewport", i = U(s), r = le(s), n = i.visualViewport;
2049
2049
  let a = r.clientWidth, l = r.clientHeight, c = 0, d = 0;
2050
2050
  if (n) {
2051
- const f = !_s() || e === "fixed";
2051
+ const f = !ks() || e === "fixed";
2052
2052
  o ? f || (c = -n.offsetLeft, d = -n.offsetTop) : (a = n.width, l = n.height, f && (c = n.offsetLeft, d = n.offsetTop));
2053
2053
  }
2054
2054
  if (Gt(r) <= 0) {
2055
- const f = r.ownerDocument, p = f.body, g = getComputedStyle(p), w = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, y = Math.abs(r.clientWidth - p.clientWidth - w), b = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? y / 2 : y;
2056
- b <= zr && (a -= b);
2055
+ const f = r.ownerDocument, p = f.body, g = getComputedStyle(p), w = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, x = Math.abs(r.clientWidth - p.clientWidth - w), v = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? x / 2 : x;
2056
+ v <= zr && (a -= v);
2057
2057
  }
2058
2058
  return {
2059
2059
  width: a,
@@ -2071,7 +2071,7 @@ function $r(s, e) {
2071
2071
  y: c
2072
2072
  };
2073
2073
  }
2074
- function Fs(s, e, t) {
2074
+ function Ks(s, e, t) {
2075
2075
  let o;
2076
2076
  if (e === "viewport" || e === "layoutViewport")
2077
2077
  o = Nr(s, t, e);
@@ -2080,7 +2080,7 @@ function Fs(s, e, t) {
2080
2080
  else if (ee(e))
2081
2081
  o = $r(e, t);
2082
2082
  else {
2083
- const i = Co(s);
2083
+ const i = So(s);
2084
2084
  o = {
2085
2085
  x: e.x - i.x,
2086
2086
  y: e.y - i.y,
@@ -2098,7 +2098,7 @@ function Vr(s, e) {
2098
2098
  const r = te(s).position === "fixed";
2099
2099
  let n = r ? Me(s) : s;
2100
2100
  for (; ee(n) && !at(n); ) {
2101
- const a = te(n), l = xs(n), c = i ? i.position : r ? "fixed" : "";
2101
+ const a = te(n), l = _s(n), c = i ? i.position : r ? "fixed" : "";
2102
2102
  !l && (c === "fixed" || c === "absolute" && a.position === "static") ? o = o.filter((u) => u !== n) : i = a, n = Me(n);
2103
2103
  }
2104
2104
  return e.set(s, o), o;
@@ -2110,10 +2110,10 @@ function Dr(s) {
2110
2110
  rootBoundary: o,
2111
2111
  strategy: i
2112
2112
  } = s;
2113
- const n = [...t === "clippingAncestors" ? Wt(e) ? [] : Vr(e, this._c) : [].concat(t), o], a = Fs(e, n[0], i);
2113
+ const n = [...t === "clippingAncestors" ? Wt(e) ? [] : Vr(e, this._c) : [].concat(t), o], a = Ks(e, n[0], i);
2114
2114
  let l = a.top, c = a.right, d = a.bottom, u = a.left;
2115
2115
  for (let f = 1; f < n.length; f++) {
2116
- const p = Fs(e, n[f], i);
2116
+ const p = Ks(e, n[f], i);
2117
2117
  l = ne(p.top, l), c = be(p.right, c), d = be(p.bottom, d), u = ne(p.left, u);
2118
2118
  }
2119
2119
  return {
@@ -2127,7 +2127,7 @@ function Rr(s) {
2127
2127
  const {
2128
2128
  width: e,
2129
2129
  height: t
2130
- } = ko(s);
2130
+ } = Co(s);
2131
2131
  return {
2132
2132
  width: e,
2133
2133
  height: t
@@ -2145,7 +2145,7 @@ function Br(s, e, t) {
2145
2145
  l.x = f.x + e.clientLeft, l.y = f.y + e.clientTop;
2146
2146
  }
2147
2147
  !o && i && (l.x = Gt(i));
2148
- const c = i && !o && !r ? So(i, a) : ae(0), d = n.left + a.scrollLeft - l.x - c.x, u = n.top + a.scrollTop - l.y - c.y;
2148
+ const c = i && !o && !r ? To(i, a) : ae(0), d = n.left + a.scrollLeft - l.x - c.x, u = n.top + a.scrollTop - l.y - c.y;
2149
2149
  return {
2150
2150
  x: d,
2151
2151
  y: u,
@@ -2156,7 +2156,7 @@ function Br(s, e, t) {
2156
2156
  function Jt(s) {
2157
2157
  return te(s).position === "static";
2158
2158
  }
2159
- function Ks(s, e) {
2159
+ function Ws(s, e) {
2160
2160
  if (!ve(s) || te(s).position === "fixed")
2161
2161
  return null;
2162
2162
  if (e)
@@ -2164,7 +2164,7 @@ function Ks(s, e) {
2164
2164
  let t = s.offsetParent;
2165
2165
  return le(s) === t && (t = t.ownerDocument.body), t;
2166
2166
  }
2167
- function To(s, e) {
2167
+ function Io(s, e) {
2168
2168
  const t = U(s);
2169
2169
  if (Wt(s))
2170
2170
  return t;
@@ -2177,13 +2177,13 @@ function To(s, e) {
2177
2177
  }
2178
2178
  return t;
2179
2179
  }
2180
- let o = Ks(s, e);
2180
+ let o = Ws(s, e);
2181
2181
  for (; o && Sr(o) && Jt(o); )
2182
- o = Ks(o, e);
2183
- return o && at(o) && Jt(o) && !xs(o) ? t : o || Or(s) || t;
2182
+ o = Ws(o, e);
2183
+ return o && at(o) && Jt(o) && !_s(o) ? t : o || Or(s) || t;
2184
2184
  }
2185
2185
  const Hr = async function(s) {
2186
- const e = this.getOffsetParent || To, t = this.getDimensions, o = await t(s.floating);
2186
+ const e = this.getOffsetParent || Io, t = this.getDimensions, o = await t(s.floating);
2187
2187
  return {
2188
2188
  reference: Br(s.reference, await e(s.floating), s.strategy),
2189
2189
  floating: {
@@ -2197,11 +2197,11 @@ const Hr = async function(s) {
2197
2197
  function Fr(s) {
2198
2198
  return te(s).direction === "rtl";
2199
2199
  }
2200
- const Io = {
2200
+ const Oo = {
2201
2201
  convertOffsetParentRelativeRectToViewportRelativeRect: Lr,
2202
2202
  getDocumentElement: le,
2203
2203
  getClippingRect: Dr,
2204
- getOffsetParent: To,
2204
+ getOffsetParent: Io,
2205
2205
  getElementRects: Hr,
2206
2206
  getClientRects: Er,
2207
2207
  getDimensions: Rr,
@@ -2209,7 +2209,7 @@ const Io = {
2209
2209
  isElement: ee,
2210
2210
  isRTL: Fr
2211
2211
  };
2212
- function Oo(s, e) {
2212
+ function Po(s, e) {
2213
2213
  return s.x === e.x && s.y === e.y && s.width === e.width && s.height === e.height;
2214
2214
  }
2215
2215
  function Kr(s, e, t) {
@@ -2225,18 +2225,18 @@ function Kr(s, e, t) {
2225
2225
  left: p,
2226
2226
  top: g,
2227
2227
  width: w,
2228
- height: y
2228
+ height: x
2229
2229
  } = f;
2230
- if (d || e(), !w || !y)
2230
+ if (d || e(), !w || !x)
2231
2231
  return;
2232
- const b = vt(g), _ = vt(r.clientWidth - (p + w)), k = vt(r.clientHeight - (g + y)), P = vt(p), D = {
2233
- rootMargin: -b + "px " + -_ + "px " + -k + "px " + -P + "px",
2232
+ const v = vt(g), _ = vt(r.clientWidth - (p + w)), k = vt(r.clientHeight - (g + x)), P = vt(p), D = {
2233
+ rootMargin: -v + "px " + -_ + "px " + -k + "px " + -P + "px",
2234
2234
  threshold: ne(0, be(1, u)) || 1
2235
2235
  };
2236
2236
  let j = !0;
2237
2237
  function q(V) {
2238
2238
  const S = V[0].intersectionRatio;
2239
- if (!Oo(f, s.getBoundingClientRect()))
2239
+ if (!Po(f, s.getBoundingClientRect()))
2240
2240
  return a();
2241
2241
  if (S !== u) {
2242
2242
  if (!j)
@@ -2271,35 +2271,35 @@ function Wr(s, e, t, o) {
2271
2271
  elementResize: n = typeof ResizeObserver == "function",
2272
2272
  layoutShift: a = typeof IntersectionObserver == "function",
2273
2273
  animationFrame: l = !1
2274
- } = o, c = ks(s), d = i || r ? [...c ? lt(c) : [], ...e ? lt(e) : []] : [];
2275
- d.forEach((b) => {
2276
- i && b.addEventListener("scroll", t), r && b.addEventListener("resize", t);
2274
+ } = o, c = Cs(s), d = i || r ? [...c ? lt(c) : [], ...e ? lt(e) : []] : [];
2275
+ d.forEach((v) => {
2276
+ i && v.addEventListener("scroll", t), r && v.addEventListener("resize", t);
2277
2277
  });
2278
2278
  const u = c && a ? Kr(c, t, r) : null;
2279
2279
  let f = -1, p = null;
2280
- n && (p = new ResizeObserver((b) => {
2281
- let [_] = b;
2280
+ n && (p = new ResizeObserver((v) => {
2281
+ let [_] = v;
2282
2282
  _ && _.target === c && p && e && (p.unobserve(e), cancelAnimationFrame(f), f = requestAnimationFrame(() => {
2283
2283
  var k;
2284
2284
  (k = p) == null || k.observe(e);
2285
2285
  })), t();
2286
2286
  }), c && !l && p.observe(c), e && p.observe(e));
2287
2287
  let g, w = l ? Le(s) : null;
2288
- l && y();
2289
- function y() {
2290
- const b = Le(s);
2291
- w && !Oo(w, b) && t(), w = b, g = requestAnimationFrame(y);
2288
+ l && x();
2289
+ function x() {
2290
+ const v = Le(s);
2291
+ w && !Po(w, v) && t(), w = v, g = requestAnimationFrame(x);
2292
2292
  }
2293
2293
  return t(), () => {
2294
- var b;
2294
+ var v;
2295
2295
  d.forEach((_) => {
2296
2296
  i && _.removeEventListener("scroll", t), r && _.removeEventListener("resize", t);
2297
- }), u == null || u(), (b = p) == null || b.disconnect(), p = null, l && cancelAnimationFrame(g);
2297
+ }), u == null || u(), (v = p) == null || v.disconnect(), p = null, l && cancelAnimationFrame(g);
2298
2298
  };
2299
2299
  }
2300
2300
  const jr = _r, Gr = kr, Ur = wr, Yt = Cr, qr = vr, Xr = (s, e, t) => {
2301
2301
  const o = /* @__PURE__ */ new Map(), i = t ?? {}, r = {
2302
- ...Io,
2302
+ ...Oo,
2303
2303
  ...i.platform,
2304
2304
  _c: o
2305
2305
  };
@@ -2339,7 +2339,7 @@ function Yr(s, e, t) {
2339
2339
  }
2340
2340
  return null;
2341
2341
  }
2342
- function Po(s) {
2342
+ function Mo(s) {
2343
2343
  const e = getComputedStyle(s), t = [];
2344
2344
  e.transform !== "none" && t.push(`transform: ${e.transform}`), e.perspective !== "none" && t.push(`perspective: ${e.perspective}`), e.filter !== "none" && t.push(`filter: ${e.filter}`);
2345
2345
  const o = e.backdropFilter;
@@ -2367,7 +2367,7 @@ function Qr(s) {
2367
2367
  driftY: n,
2368
2368
  culprit: a,
2369
2369
  culpritDescription: a ? Zr(a) : "an ancestor element (could not auto-identify)",
2370
- culpritCss: a ? Po(a) : ""
2370
+ culpritCss: a ? Mo(a) : ""
2371
2371
  };
2372
2372
  }
2373
2373
  function en(s, e) {
@@ -2382,7 +2382,7 @@ function sn(s, e, t) {
2382
2382
  const o = e.split("-")[0], i = tn[o];
2383
2383
  s.style.left = t.x != null ? `${t.x}px` : "", s.style.top = t.y != null ? `${t.y}px` : "", s.style.right = "", s.style.bottom = "", s.style[i] = `-${s.offsetWidth / 2}px`;
2384
2384
  }
2385
- function Ws(s, e) {
2385
+ function js(s, e) {
2386
2386
  const t = [jr(s.offset ?? 4)];
2387
2387
  if (s.matchWidth) {
2388
2388
  const i = s.matchWidth;
@@ -2421,21 +2421,21 @@ function Ws(s, e) {
2421
2421
  function ot(s, e, t = {}) {
2422
2422
  const o = t.strategy ?? "fixed";
2423
2423
  t.inheritThemeFrom && en(t.inheritThemeFrom, s), s.style.position = o, s.style.left = "0", s.style.top = "0";
2424
- let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n = Ws(t, r);
2424
+ let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n = js(t, r);
2425
2425
  const a = t.lockPlacement === "freeze";
2426
2426
  let l = !1;
2427
- const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...Io, getOffsetParent: () => ns(s) } : void 0), u = () => {
2427
+ const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...Oo, getOffsetParent: () => ns(s) } : void 0), u = () => {
2428
2428
  var p;
2429
2429
  (p = t.beforeCompute) == null || p.call(t), Xr(e, s, {
2430
2430
  placement: i,
2431
2431
  strategy: o,
2432
2432
  middleware: n,
2433
2433
  ...d ? { platform: d } : {}
2434
- }).then(({ x: g, y: w, placement: y, middlewareData: b }) => {
2434
+ }).then(({ x: g, y: w, placement: x, middlewareData: v }) => {
2435
2435
  var _, k;
2436
- if (s.style.left = `${g}px`, s.style.top = `${w}px`, t.arrow && sn(t.arrow.element, y, b.arrow), a && !l && (l = !0, i = y, r = !1, n = Ws(t, !1)), (_ = t.onPlaced) == null || _.call(t, y), (k = t.onComputed) == null || k.call(t, { x: g, y: w, placement: y }), t.onDrift && e instanceof Element) {
2437
- const P = c ? ns(s) : window, N = Qr({ panel: s, reference: e, expectedX: g, expectedY: w, offsetParent: P });
2438
- N && t.onDrift(N);
2436
+ if (s.style.left = `${g}px`, s.style.top = `${w}px`, t.arrow && sn(t.arrow.element, x, v.arrow), a && !l && (l = !0, i = x, r = !1, n = js(t, !1)), (_ = t.onPlaced) == null || _.call(t, x), (k = t.onComputed) == null || k.call(t, { x: g, y: w, placement: x }), t.onDrift && e instanceof Element) {
2437
+ const P = c ? ns(s) : window, $ = Qr({ panel: s, reference: e, expectedX: g, expectedY: w, offsetParent: P });
2438
+ $ && t.onDrift($);
2439
2439
  }
2440
2440
  });
2441
2441
  };
@@ -2475,12 +2475,12 @@ function rn(s) {
2475
2475
  }), s.followCursor && s.trigger.addEventListener("mousemove", f), r.classList.add(o);
2476
2476
  }, w = () => {
2477
2477
  p(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
2478
- }, y = () => {
2478
+ }, x = () => {
2479
2479
  p(), i.show > 0 ? l = setTimeout(g, i.show) : g();
2480
- }, b = () => {
2480
+ }, v = () => {
2481
2481
  p(), i.hide > 0 ? c = setTimeout(w, i.hide) : w();
2482
2482
  };
2483
- return s.trigger.addEventListener("mouseenter", y), s.trigger.addEventListener("mouseleave", b), s.trigger.addEventListener("focusin", y), s.trigger.addEventListener("focusout", b), {
2483
+ return s.trigger.addEventListener("mouseenter", x), s.trigger.addEventListener("mouseleave", v), s.trigger.addEventListener("focusin", x), s.trigger.addEventListener("focusout", v), {
2484
2484
  element: r,
2485
2485
  get isVisible() {
2486
2486
  return a;
@@ -2488,7 +2488,7 @@ function rn(s) {
2488
2488
  show: g,
2489
2489
  hide: w,
2490
2490
  destroy() {
2491
- s.trigger.removeEventListener("mouseenter", y), s.trigger.removeEventListener("mouseleave", b), s.trigger.removeEventListener("focusin", y), s.trigger.removeEventListener("focusout", b), w();
2491
+ s.trigger.removeEventListener("mouseenter", x), s.trigger.removeEventListener("mouseleave", v), s.trigger.removeEventListener("focusin", x), s.trigger.removeEventListener("focusout", v), w();
2492
2492
  }
2493
2493
  };
2494
2494
  }
@@ -2527,7 +2527,7 @@ function nn(s) {
2527
2527
  }
2528
2528
  };
2529
2529
  }
2530
- const Mo = ["INIT", "DATA", "UI", "INTERACTION"], ce = nr("MULTISELECT", Mo), wt = ce.loggers.INIT, W = ce.loggers.DATA, Y = ce.loggers.UI, R = ce.loggers.INTERACTION, Tn = Mo.map((s) => `MULTISELECT:${s}`);
2530
+ const Lo = ["INIT", "DATA", "UI", "INTERACTION"], ce = nr("MULTISELECT", Lo), wt = ce.loggers.INIT, W = ce.loggers.DATA, Y = ce.loggers.UI, R = ce.loggers.INTERACTION, Tn = Lo.map((s) => `MULTISELECT:${s}`);
2531
2531
  function In() {
2532
2532
  ce.enableLogging();
2533
2533
  }
@@ -2541,7 +2541,7 @@ function Mn(s, e) {
2541
2541
  const t = s.includes(":") ? s.split(":").pop() : s;
2542
2542
  ce.setCategoryLevel(t, e);
2543
2543
  }
2544
- class js {
2544
+ class Gs {
2545
2545
  constructor(e) {
2546
2546
  m(this, "container");
2547
2547
  m(this, "wrapper");
@@ -2673,7 +2673,7 @@ class js {
2673
2673
  this.container.removeEventListener("scroll", this.scrollHandler), this.resizeObserver && this.resizeObserver.disconnect(), this.container.innerHTML = "";
2674
2674
  }
2675
2675
  }
2676
- function Gs(s) {
2676
+ function Us(s) {
2677
2677
  return {
2678
2678
  treeId: "",
2679
2679
  id: -1,
@@ -2694,10 +2694,10 @@ function an(s, e = ".") {
2694
2694
  const t = s.lastIndexOf(e);
2695
2695
  return t === -1 ? "" : s.substring(0, t);
2696
2696
  }
2697
- function Us(s, e, t = ".") {
2697
+ function qs(s, e, t = ".") {
2698
2698
  return st(e) ? s : s.startsWith(e + t) ? s.substring(e.length + t.length) : s;
2699
2699
  }
2700
- function qs(s, e = 0, t = 1, o = ".") {
2700
+ function Xs(s, e = 0, t = 1, o = ".") {
2701
2701
  return s.split(o).slice(e, e + t).join(o);
2702
2702
  }
2703
2703
  function ln(s, e) {
@@ -2707,10 +2707,10 @@ function he(s, e) {
2707
2707
  return s[e];
2708
2708
  }
2709
2709
  function cn(s = {}) {
2710
- const e = s.idMember, t = s.pathMember, o = s.getPathCallback, i = s.parentPathMember, r = s.levelMember, n = s.hasChildrenMember, a = s.isSelectableMember, l = s.getIsSelectableCallback, c = s.treeId || "multiselect-tree", d = s.orderMember, u = s.getDisplayValueCallback, f = st(i), p = st(r), g = st(n), w = st(a), y = "x", b = s.treePathSeparator || ".", _ = Gs();
2710
+ const e = s.idMember, t = s.pathMember, o = s.getPathCallback, i = s.parentPathMember, r = s.levelMember, n = s.hasChildrenMember, a = s.isSelectableMember, l = s.getIsSelectableCallback, c = s.treeId || "multiselect-tree", d = s.orderMember, u = s.getDisplayValueCallback, f = st(i), p = st(r), g = st(n), w = st(a), x = "x", v = s.treePathSeparator || ".", _ = Us();
2711
2711
  let k = 0, P = null;
2712
- const N = (V) => o ? o(V) : t ? he(V, t) : void 0, D = {
2713
- treePathSeparator: b,
2712
+ const $ = (V) => o ? o(V) : t ? he(V, t) : void 0, D = {
2713
+ treePathSeparator: v,
2714
2714
  root: _,
2715
2715
  get tree() {
2716
2716
  return Object.values(_.children);
@@ -2722,38 +2722,38 @@ function cn(s = {}) {
2722
2722
  get flatNodes() {
2723
2723
  if (P) return P;
2724
2724
  const V = [], S = s.isSorted ?? !1, M = s.sortCallback;
2725
- function A(B) {
2725
+ function z(B) {
2726
2726
  let T = Object.values(B.children);
2727
2727
  S && M && T.length > 0 && (T = M(T));
2728
2728
  for (const F of T)
2729
- V.push(F), F.hasChildren && A(F);
2729
+ V.push(F), F.hasChildren && z(F);
2730
2730
  }
2731
- return A(_), P = V, V;
2731
+ return z(_), P = V, V;
2732
2732
  },
2733
2733
  insertArray(V) {
2734
2734
  V = V || [], _.children = {}, k = 0, P = null;
2735
2735
  const S = [];
2736
- let M = V.map((A, B) => {
2737
- const T = Gs();
2738
- T.treeId = c, T.id = e ? he(A, e) : void 0;
2739
- const F = N(A);
2740
- return F == null || F === "" || typeof F != "string" ? (S.push(`index ${B}`), null) : (T.path = F, (T.id === void 0 || T.id === -1) && (T.id = F), f ? T.parentPath = an(T.path, b) : T.parentPath = he(A, i), T.pathSegment = qs(
2741
- Us(T.path, T.parentPath ?? "", b),
2736
+ let M = V.map((z, B) => {
2737
+ const T = Us();
2738
+ T.treeId = c, T.id = e ? he(z, e) : void 0;
2739
+ const F = $(z);
2740
+ return F == null || F === "" || typeof F != "string" ? (S.push(`index ${B}`), null) : (T.path = F, (T.id === void 0 || T.id === -1) && (T.id = F), f ? T.parentPath = an(T.path, v) : T.parentPath = he(z, i), T.pathSegment = Xs(
2741
+ qs(T.path, T.parentPath ?? "", v),
2742
2742
  0,
2743
2743
  1,
2744
- b
2745
- ), p ? T.level = ln(T.path, b) : T.level = he(A, r), g || (T.hasChildren = he(A, n)), T.data = A, T);
2746
- }).filter((A) => A !== null);
2744
+ v
2745
+ ), p ? T.level = ln(T.path, v) : T.level = he(z, r), g || (T.hasChildren = he(z, n)), T.data = z, T);
2746
+ }).filter((z) => z !== null);
2747
2747
  s.isSorted || (s.sortCallback ? M = s.sortCallback(M) : M = q(M));
2748
- for (const A of M)
2749
- j(A.parentPath ?? "", A);
2748
+ for (const z of M)
2749
+ j(z.parentPath ?? "", z);
2750
2750
  if (l || !w)
2751
- for (const A of M)
2751
+ for (const z of M)
2752
2752
  if (l)
2753
- A.isSelectable = l(A) !== !1;
2753
+ z.isSelectable = l(z) !== !1;
2754
2754
  else {
2755
- const B = he(A.data, a);
2756
- A.isSelectable = B == null ? !0 : !!B;
2755
+ const B = he(z.data, a);
2756
+ z.isSelectable = B == null ? !0 : !!B;
2757
2757
  }
2758
2758
  S.length > 0 && console.warn(
2759
2759
  `[ltree ${c}] ${S.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${S.slice(0, 5).join(", ")}` + (S.length > 5 ? ", …" : "")
@@ -2762,9 +2762,9 @@ function cn(s = {}) {
2762
2762
  getNodeByPath(V, S) {
2763
2763
  let M = S || _;
2764
2764
  if (V) {
2765
- const A = V.split(b);
2766
- for (let B = 0; B < A.length; B++) {
2767
- const T = y + A[B];
2765
+ const z = V.split(v);
2766
+ for (let B = 0; B < z.length; B++) {
2767
+ const T = x + z[B];
2768
2768
  if (!M.children.hasOwnProperty(T))
2769
2769
  return null;
2770
2770
  M = M.children[T];
@@ -2778,13 +2778,13 @@ function cn(s = {}) {
2778
2778
  if (!M)
2779
2779
  return `Node: ${S.path} - Could not find parent node: ${V}`;
2780
2780
  p && (S.level = (M.level || 0) + 1);
2781
- const A = y + qs(Us(S.path, V, b), 0, 1, b);
2782
- return M.children.hasOwnProperty(A) || (M.children[A] = S, g && !M.hasChildren && (M.hasChildren = !0), k = Math.max(k, S.level || 0)), null;
2781
+ const z = x + Xs(qs(S.path, V, v), 0, 1, v);
2782
+ return M.children.hasOwnProperty(z) || (M.children[z] = S, g && !M.hasChildren && (M.hasChildren = !0), k = Math.max(k, S.level || 0)), null;
2783
2783
  }
2784
2784
  function q(V) {
2785
2785
  return V.sort((S, M) => {
2786
- const A = S.level || 0, B = M.level || 0;
2787
- if (A !== B) return A - B;
2786
+ const z = S.level || 0, B = M.level || 0;
2787
+ if (z !== B) return z - B;
2788
2788
  if (S.parentPath !== M.parentPath)
2789
2789
  return S.parentPath ? M.parentPath ? S.parentPath.localeCompare(M.parentPath) : 1 : -1;
2790
2790
  if (d && S.data && M.data) {
@@ -2796,7 +2796,7 @@ function cn(s = {}) {
2796
2796
  }
2797
2797
  return D;
2798
2798
  }
2799
- function Xs(s, e) {
2799
+ function Js(s, e) {
2800
2800
  const t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), n = (l) => {
2801
2801
  t.set(r(l), l);
2802
2802
  const c = [];
@@ -2808,7 +2808,7 @@ function Xs(s, e) {
2808
2808
  for (const l of a) n(l);
2809
2809
  return { nodeByValue: t, atomsUnder: o, atomPaths: i, roots: a };
2810
2810
  }
2811
- function Cs(s, e, t) {
2811
+ function Ss(s, e, t) {
2812
2812
  const o = s.atomsUnder.get(e.path);
2813
2813
  if (!o || o.length === 0) return "unchecked";
2814
2814
  let i = 0;
@@ -2825,7 +2825,7 @@ function Qe(s, e) {
2825
2825
  return t;
2826
2826
  }
2827
2827
  function dn(s, e, t) {
2828
- const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r = Cs(s, e, t), n = [], a = [];
2828
+ const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r = Ss(s, e, t), n = [], a = [];
2829
2829
  if (r === "checked")
2830
2830
  for (const l of o) i.delete(l) && a.push(l);
2831
2831
  else
@@ -2834,7 +2834,7 @@ function dn(s, e, t) {
2834
2834
  }
2835
2835
  function Zt(s, e, t, o) {
2836
2836
  const i = (a) => String(o(a.data)), r = [], n = (a) => {
2837
- const l = Cs(s, a, e);
2837
+ const l = Ss(s, a, e);
2838
2838
  if (l === "unchecked") return;
2839
2839
  const c = a.isSelectable !== !1, d = Object.values(a.children);
2840
2840
  if (t === "leaves") {
@@ -2856,7 +2856,7 @@ function Zt(s, e, t, o) {
2856
2856
  for (const a of s.roots) n(a);
2857
2857
  return r;
2858
2858
  }
2859
- var $;
2859
+ var N;
2860
2860
  class hn {
2861
2861
  constructor(e, t = {}) {
2862
2862
  m(this, "element");
@@ -2865,7 +2865,7 @@ class hn {
2865
2865
  // Backing field for the open state. Read/written internally via `this.#isOpen`
2866
2866
  // so the public `isOpen` accessor (get/set) can drive open()/close() without
2867
2867
  // recursing. See the imperative API at the bottom of the class.
2868
- L(this, $, !1);
2868
+ L(this, N, !1);
2869
2869
  m(this, "selectedValues", /* @__PURE__ */ new Set());
2870
2870
  m(this, "selectedOptions", /* @__PURE__ */ new Map());
2871
2871
  m(this, "allOptions", []);
@@ -3264,7 +3264,7 @@ class hn {
3264
3264
  treePathSeparator: this.options.treePathSeparator,
3265
3265
  treeId: this.instanceId,
3266
3266
  getDisplayValueCallback: (e) => this.getItemDisplayValue(e.data)
3267
- }), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? Xs(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
3267
+ }), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? Js(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
3268
3268
  }
3269
3269
  /**
3270
3270
  * Whether cascade checkbox mode is active: a multi-select tree with
@@ -3466,7 +3466,7 @@ class hn {
3466
3466
  t.className = "ms__input-wrapper", this.inputWrapper = t, this.input = document.createElement("input"), this.input.type = "text", this.input.className = "ms__input", this.input.placeholder = this.getPlaceholderText(), this.input.autocomplete = "off", this.options.searchInputMode === "readonly" ? this.input.readOnly = !0 : this.options.searchInputMode === "hidden" && (this.input.style.visibility = "hidden");
3467
3467
  const o = document.createElement("span");
3468
3468
  o.className = "ms__toggle", o.addEventListener("mousedown", (n) => {
3469
- n.preventDefault(), n.stopPropagation(), h(this, $) ? (this.justClosedViaClick = !0, this.close(), setTimeout(() => {
3469
+ n.preventDefault(), n.stopPropagation(), h(this, N) ? (this.justClosedViaClick = !0, this.close(), setTimeout(() => {
3470
3470
  this.justClosedViaClick = !1;
3471
3471
  }, 0)) : (this.open(), this.presentationMode !== "fullscreen" && this.input.focus());
3472
3472
  }), this.counter = document.createElement("span"), this.counter.className = "ms__counter", this.counter.style.display = "none", this.clearButton = document.createElement("button"), this.clearButton.type = "button", this.clearButton.className = "ms__input-clear", this.clearButton.tabIndex = -1, this.clearButton.setAttribute("aria-label", "Clear selection"), this.clearButton.style.display = "none", this.clearButton.addEventListener("mousedown", (n) => n.preventDefault()), this.clearButton.addEventListener("click", (n) => {
@@ -3599,26 +3599,26 @@ class hn {
3599
3599
  const d = this.isGroupCascadeActive();
3600
3600
  Object.keys(l).forEach((u) => {
3601
3601
  if (t += '<div class="ms__group">', u !== "__ungrouped__") {
3602
- const f = ` data-group="${this.escapeHtml(u)}"`, p = d ? ' data-group-select="cascade"' : "", g = this.groupSelectionInfo(l[u]), w = d ? this.groupCheckboxHtml(g.checkState) : "", y = d ? "ms__group-label ms__group-label--selectable" : "ms__group-label";
3602
+ const f = ` data-group="${this.escapeHtml(u)}"`, p = d ? ' data-group-select="cascade"' : "", g = this.groupSelectionInfo(l[u]), w = d ? this.groupCheckboxHtml(g.checkState) : "", x = d ? "ms__group-label ms__group-label--selectable" : "ms__group-label";
3603
3603
  if (this.options.renderGroupLabelContentCallback) {
3604
- const b = {
3604
+ const v = {
3605
3605
  ...Xe(this.presentationMode),
3606
3606
  groupName: u,
3607
3607
  ...g
3608
- }, _ = this.options.renderGroupLabelContentCallback(u, b);
3608
+ }, _ = this.options.renderGroupLabelContentCallback(u, v);
3609
3609
  if (_ instanceof HTMLElement) {
3610
3610
  const k = document.createElement("div");
3611
- if (k.className = y, k.dataset.group = u, d) {
3611
+ if (k.className = x, k.dataset.group = u, d) {
3612
3612
  k.dataset.groupSelect = "cascade";
3613
3613
  const P = document.createElement("template");
3614
3614
  P.innerHTML = w, P.content.firstChild && k.appendChild(P.content.firstChild);
3615
3615
  }
3616
3616
  k.appendChild(_), t += k.outerHTML;
3617
3617
  } else
3618
- t += `<div class="${y}"${f}${p}>${w}${_}</div>`;
3618
+ t += `<div class="${x}"${f}${p}>${w}${_}</div>`;
3619
3619
  } else {
3620
- const b = this.groupCountHtml(g.selectedCount, g.memberCount), _ = b ? `${y} ms__group-label--has-count` : y;
3621
- t += `<div class="${_}"${f}${p}>${w}${this.escapeHtml(u)}${b}</div>`;
3620
+ const v = this.groupCountHtml(g.selectedCount, g.memberCount), _ = v ? `${x} ms__group-label--has-count` : x;
3621
+ t += `<div class="${_}"${f}${p}>${w}${this.escapeHtml(u)}${v}</div>`;
3622
3622
  }
3623
3623
  }
3624
3624
  l[u].forEach((f) => {
@@ -3687,7 +3687,7 @@ class hn {
3687
3687
  }
3688
3688
  const e = this.scaledOptionHeight(), t = this.options.virtualScrollBuffer ?? 10;
3689
3689
  requestAnimationFrame(() => {
3690
- this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new js({
3690
+ this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new Gs({
3691
3691
  container: this.optionsContainer,
3692
3692
  itemHeight: e,
3693
3693
  items: this.filteredOptions,
@@ -3722,13 +3722,13 @@ class hn {
3722
3722
  let p;
3723
3723
  d.getIsDisabledCallback ? p = d.getIsDisabledCallback(this) : d.isDisabled !== void 0 ? p = d.isDisabled : p = this.getBuiltInActionDisabled(d.action);
3724
3724
  const g = p ? " disabled" : "", w = d.getTextCallback ? d.getTextCallback(this) : d.text;
3725
- let y = "";
3725
+ let x = "";
3726
3726
  if (d.getClassCallback) {
3727
3727
  const k = this.classSuffix(d.getClassCallback(this));
3728
- k && (y = ` ${k}`);
3729
- } else d.cssClass && (y = ` ${d.cssClass}`);
3730
- const b = Math.max(1, Math.floor(d.row ?? 1)), _ = `<button type="button"${g} class="ms__action-btn${y}" data-action="${d.action}" data-button-index="${u}">${w}</button>`;
3731
- l.has(b) || l.set(b, []), l.get(b).push(_);
3728
+ k && (x = ` ${k}`);
3729
+ } else d.cssClass && (x = ` ${d.cssClass}`);
3730
+ const v = Math.max(1, Math.floor(d.row ?? 1)), _ = `<button type="button"${g} class="ms__action-btn${x}" data-action="${d.action}" data-button-index="${u}">${w}</button>`;
3731
+ l.has(v) || l.set(v, []), l.get(v).push(_);
3732
3732
  }), l.size === 0) return "";
3733
3733
  const c = Array.from(l.keys()).sort((d, u) => d - u).map((d) => `<div class="ms__actions-row" data-row="${d}">${l.get(d).join("")}</div>`).join("");
3734
3734
  return `<div class="ms__actions${i}${r}${n}${a}">${c}</div>`;
@@ -3772,11 +3772,11 @@ class hn {
3772
3772
  * chevron/toggle — every node is just a normal, selectable option.
3773
3773
  */
3774
3774
  renderTreeNode(e, t) {
3775
- 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 ? Cs(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, u = c ? d === "checked" : this.selectedValues.has(String(i)), f = d === "indeterminate", p = t === this.focusedIndex, g = this.matchingIndices.has(t), w = e.isSelectable !== !1, y = e.level ?? 1, b = Math.max(0, y - 1), _ = ["ms__option", "ms__option--tree"];
3775
+ 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 ? Ss(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, u = c ? d === "checked" : this.selectedValues.has(String(i)), f = d === "indeterminate", p = t === this.focusedIndex, g = this.matchingIndices.has(t), w = e.isSelectable !== !1, x = e.level ?? 1, v = Math.max(0, x - 1), _ = ["ms__option", "ms__option--tree"];
3776
3776
  _.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), u && _.push("ms__option--selected"), f && _.push("ms__option--indeterminate"), p && _.push("ms__option--focused"), g && _.push("ms__option--matched"), l && _.push("ms__option--disabled"), w || _.push("ms__option--tree-unselectable");
3777
3777
  const k = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", P = w ? "" : ' data-selectable="false"';
3778
- let N = `<div class="${_.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${y}" style="--ms-tree-depth: ${b};"${k}${P}>`;
3779
- if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && w && (N += this.checkboxHtml({ checked: u, indeterminate: f, disabled: l })), N += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
3778
+ let $ = `<div class="${_.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${x}" style="--ms-tree-depth: ${v};"${k}${P}>`;
3779
+ if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && w && ($ += this.checkboxHtml({ checked: u, indeterminate: f, disabled: l })), $ += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
3780
3780
  const D = {
3781
3781
  index: t,
3782
3782
  isSelected: u,
@@ -3790,16 +3790,16 @@ class hn {
3790
3790
  isBranch: e.hasChildren,
3791
3791
  isLeaf: !e.hasChildren,
3792
3792
  childCount: Object.keys(e.children).length,
3793
- level: y,
3794
- depth: b,
3793
+ level: x,
3794
+ depth: v,
3795
3795
  path: e.path,
3796
3796
  isSelectable: w,
3797
3797
  isIndeterminate: f
3798
3798
  };
3799
- N += this.toHtml(this.options.renderOptionContentCallback(o, D));
3799
+ $ += this.toHtml(this.options.renderOptionContentCallback(o, D));
3800
3800
  } else
3801
- n && (N += `<span class="ms__option-icon">${n}</span>`), N += '<div class="ms__option-text">', N += `<div class="ms__option-title">${this.highlightMatch(r, this.searchTerm)}</div>`, a && (N += `<div class="ms__option-subtitle">${a}</div>`), N += "</div>";
3802
- return N += this.renderOptionInfoButton(), N += "</div>", N += "</div>", N;
3801
+ 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>";
3802
+ return $ += this.renderOptionInfoButton(), $ += "</div>", $ += "</div>", $;
3803
3803
  }
3804
3804
  /**
3805
3805
  * Empty-dropdown content. When "add new" is enabled (isAddNewAllowed) AND the user has typed
@@ -3882,11 +3882,11 @@ class hn {
3882
3882
  e[0] && (this.options.renderSelectedContentCallback ? r = this.options.renderSelectedContentCallback(
3883
3883
  e[0],
3884
3884
  Xe(this.presentationMode)
3885
- ) : r = this.getItemDisplayValue(e[0])), !h(this, $) && t > 0 && e.length > 0 ? this.input.value = r : h(this, $) || (this.input.value = "");
3885
+ ) : r = this.getItemDisplayValue(e[0])), !h(this, N) && t > 0 && e.length > 0 ? this.input.value = r : h(this, N) || (this.input.value = "");
3886
3886
  return;
3887
3887
  }
3888
3888
  let o = this.options.badgesDisplayMode;
3889
- if (this.options.badgesThreshold !== null && t > this.options.badgesThreshold && o !== "none" && (o = this.options.badgesThresholdMode || "count"), !h(this, $))
3889
+ if (this.options.badgesThreshold !== null && t > this.options.badgesThreshold && o !== "none" && (o = this.options.badgesThresholdMode || "count"), !h(this, N))
3890
3890
  if (t > 0 && o === "count") {
3891
3891
  const r = this.options.getCounterCallback ? this.options.getCounterCallback(t) : `${t} selected`;
3892
3892
  this.input.placeholder = r;
@@ -3943,14 +3943,14 @@ class hn {
3943
3943
  }
3944
3944
  attachEvents() {
3945
3945
  this.input.addEventListener("mousedown", (e) => {
3946
- e.stopPropagation(), h(this, $) ? (this.justClosedViaClick = !0, this.close(), setTimeout(() => {
3946
+ e.stopPropagation(), h(this, N) ? (this.justClosedViaClick = !0, this.close(), setTimeout(() => {
3947
3947
  this.justClosedViaClick = !1;
3948
3948
  }, 0)) : (this.presentationMode === "fullscreen" && e.preventDefault(), this.open());
3949
3949
  }), this.input.addEventListener("focus", () => {
3950
- !h(this, $) && !this.justClosedViaClick && this.open();
3950
+ !h(this, N) && !this.justClosedViaClick && this.open();
3951
3951
  }), this.input.addEventListener("input", (e) => {
3952
3952
  const t = e.target.value;
3953
- this.options.isSearchEnabled && !h(this, $) && this.open(), this.handleSearch(t);
3953
+ this.options.isSearchEnabled && !h(this, N) && this.open(), this.handleSearch(t);
3954
3954
  }), this.input.addEventListener("keydown", (e) => this.handleKeydown(e)), this.documentClickHandler = (e) => this.handleClickOutside(e), setTimeout(() => {
3955
3955
  document.addEventListener("click", this.documentClickHandler);
3956
3956
  }, 0), this.overlayCoord = Xi(() => this.close(), this.options.overlayGroup || void 0), this.documentKeydownHandler = (e) => {
@@ -4046,10 +4046,10 @@ class hn {
4046
4046
  const i = await this.options.searchCallback(t, o.signal);
4047
4047
  if (o.signal.aborted || this.searchTerm !== e) return;
4048
4048
  const r = i || [];
4049
- 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(), W.debug(`[${this.instanceId}] Loaded ${r.length} results`);
4049
+ 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(), this.repositionDropdown(), W.debug(`[${this.instanceId}] Loaded ${r.length} results`);
4050
4050
  } catch (i) {
4051
4051
  if (o.signal.aborted) return;
4052
- W.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();
4052
+ W.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(), this.repositionDropdown();
4053
4053
  } finally {
4054
4054
  this.searchAbortController === o && (this.searchAbortController = void 0);
4055
4055
  }
@@ -4059,7 +4059,7 @@ class hn {
4059
4059
  if (!(this.options.keydownCallback && this.options.keydownCallback({
4060
4060
  event: e,
4061
4061
  key: e.key,
4062
- isOpen: h(this, $),
4062
+ isOpen: h(this, N),
4063
4063
  presentation: this.presentationMode,
4064
4064
  searchTerm: this.searchTerm,
4065
4065
  focusedIndex: this.focusedIndex,
@@ -4068,7 +4068,7 @@ class hn {
4068
4068
  selectedValues: [...this.selectedValues],
4069
4069
  controller: this.getKeyboardController()
4070
4070
  }) === !0)) {
4071
- if (!h(this, $)) {
4071
+ if (!h(this, N)) {
4072
4072
  (e.key === "Enter" || e.key === "ArrowDown") && (e.preventDefault(), this.open());
4073
4073
  return;
4074
4074
  }
@@ -4147,7 +4147,7 @@ class hn {
4147
4147
  }
4148
4148
  const i = e.target.closest('.ms__group-label[data-group-select="cascade"]');
4149
4149
  if (i && i.dataset.group) {
4150
- e.preventDefault(), R.debug(`[${this.instanceId}] Group header cascade toggle:`, i.dataset.group), this.toggleGroup(i.dataset.group), h(this, $) && this.presentationMode !== "fullscreen" ? this.input.focus() : this.presentationMode === "fullscreen" && ((a = this.fullscreenSearchInput) == null || a.blur());
4150
+ e.preventDefault(), R.debug(`[${this.instanceId}] Group header cascade toggle:`, i.dataset.group), this.toggleGroup(i.dataset.group), h(this, N) && this.presentationMode !== "fullscreen" ? this.input.focus() : this.presentationMode === "fullscreen" && ((a = this.fullscreenSearchInput) == null || a.blur());
4151
4151
  return;
4152
4152
  }
4153
4153
  const r = e.target.closest(".ms__option");
@@ -4159,7 +4159,7 @@ class hn {
4159
4159
  optionIndex: d,
4160
4160
  closeOnSelect: this.options.isCloseOnSelect,
4161
4161
  placeholder: this.options.searchPlaceholder
4162
- }), d >= 0 && (this.focusedIndex = d, this.toggleOption(this.filteredOptions[d]), h(this, $) && this.presentationMode !== "fullscreen" ? this.input.focus() : this.presentationMode === "fullscreen" && ((l = this.fullscreenSearchInput) == null || l.blur()));
4162
+ }), d >= 0 && (this.focusedIndex = d, this.toggleOption(this.filteredOptions[d]), h(this, N) && this.presentationMode !== "fullscreen" ? this.input.focus() : this.presentationMode === "fullscreen" && ((l = this.fullscreenSearchInput) == null || l.blur()));
4163
4163
  }
4164
4164
  }
4165
4165
  handleBadgeClick(e) {
@@ -4194,7 +4194,7 @@ class hn {
4194
4194
  Y.debug(`[${this.instanceId}] Closing selected popover due to click outside`), this.hideSelectedPopover();
4195
4195
  return;
4196
4196
  }
4197
- if (!h(this, $) || this.justOpenedViaClick) return;
4197
+ if (!h(this, N) || this.justOpenedViaClick) return;
4198
4198
  const o = t.some(
4199
4199
  (r) => r instanceof Node && (this.element.contains(r) || this.dropdown.contains(r) || this.hint && this.hint.contains(r))
4200
4200
  );
@@ -4353,7 +4353,7 @@ class hn {
4353
4353
  */
4354
4354
  scrollToIndex(e, t) {
4355
4355
  const o = (t == null ? void 0 : t.block) ?? "start";
4356
- return h(this, $) ? e < 0 || e >= this.filteredOptions.length ? (R.debug(`[${this.instanceId}] scrollToIndex(${e}) → false (out of range, ${this.filteredOptions.length} options)`), !1) : (R.debug(`[${this.instanceId}] scrollToIndex(${e}, block=${o}) — virtual=${!!this.virtualScroll}, mode=${this.presentationMode}`), this.armClickGuard(), this.scrollToRenderedIndex(e, { block: o }), !0) : (R.debug(`[${this.instanceId}] scrollToIndex(${e}) → false (closed)`), !1);
4356
+ return h(this, N) ? e < 0 || e >= this.filteredOptions.length ? (R.debug(`[${this.instanceId}] scrollToIndex(${e}) → false (out of range, ${this.filteredOptions.length} options)`), !1) : (R.debug(`[${this.instanceId}] scrollToIndex(${e}, block=${o}) — virtual=${!!this.virtualScroll}, mode=${this.presentationMode}`), this.armClickGuard(), this.scrollToRenderedIndex(e, { block: o }), !0) : (R.debug(`[${this.instanceId}] scrollToIndex(${e}) → false (closed)`), !1);
4357
4357
  }
4358
4358
  /**
4359
4359
  * Scroll to the option whose value matches `value` (resolved within the current
@@ -4373,7 +4373,7 @@ class hn {
4373
4373
  */
4374
4374
  scrollToGroup(e, t) {
4375
4375
  const o = (t == null ? void 0 : t.block) ?? "start";
4376
- if (!h(this, $) || this.isTreeMode())
4376
+ if (!h(this, N) || this.isTreeMode())
4377
4377
  return R.debug(`[${this.instanceId}] scrollToGroup(${e}) → false (${this.isTreeMode() ? "tree mode" : "closed"})`), !1;
4378
4378
  if (this.armClickGuard(), !this.virtualScroll) {
4379
4379
  const r = this.dropdown.querySelector(
@@ -4392,7 +4392,7 @@ class hn {
4392
4392
  * (post-open virtual init / fullscreen sheet build), then retries once.
4393
4393
  */
4394
4394
  scrollToRenderedIndex(e, t, o = !1) {
4395
- if (!h(this, $) || e < 0 || e >= this.filteredOptions.length) return;
4395
+ if (!h(this, N) || e < 0 || e >= this.filteredOptions.length) return;
4396
4396
  if (this.virtualScroll) {
4397
4397
  const r = (t == null ? void 0 : t.block) === "center" ? "center" : (t == null ? void 0 : t.block) === "nearest" ? "nearest" : "start";
4398
4398
  this.virtualScroll.scrollToIndex(e, r), R.debug(`[${this.instanceId}] scrollToRenderedIndex(${e}) via virtual (block=${r})`);
@@ -4598,20 +4598,20 @@ class hn {
4598
4598
  /** Open the dropdown (no-op if already open, or if there is nothing to show). */
4599
4599
  open() {
4600
4600
  var e;
4601
- Y.debug(`[${this.instanceId}] open() called`, { isOpen: h(this, $) }), this.armClickGuard(), !h(this, $) && (this.hideMessage(), I(this, $, !0), this.element.classList.add("ms--open"), this.dropdown.classList.add("ms__dropdown--visible"), Y.info(`[${this.instanceId}] Dropdown opened`), this.input.placeholder = this.getPlaceholderText(), !this.options.isMultipleEnabled && this.options.isSearchEnabled && (this.input.value = this.searchTerm), this.options.searchCallback && this.options.isKeepOptionsOnSearch && !this.searchTerm && (this.filteredOptions = [...this.allOptions], Y.debug(`[${this.instanceId}] Showing ${this.allOptions.length} initial options on open`)), this.presentationMode === "fullscreen" && this.enterFullscreen(), this.renderDropdown(), this.presentationMode !== "fullscreen" && this.positionDropdown(), this.dropdown.addEventListener("scroll", this.onDropdownScroll, !0), this.hint && this.presentationMode === "floating" && (this.hint.classList.add("ms__hint--visible"), this.positionHint()), (e = this.overlayCoord) == null || e.activate());
4601
+ Y.debug(`[${this.instanceId}] open() called`, { isOpen: h(this, N) }), this.armClickGuard(), !h(this, N) && (this.hideMessage(), I(this, N, !0), this.element.classList.add("ms--open"), this.dropdown.classList.add("ms__dropdown--visible"), Y.info(`[${this.instanceId}] Dropdown opened`), this.input.placeholder = this.getPlaceholderText(), !this.options.isMultipleEnabled && this.options.isSearchEnabled && (this.input.value = this.searchTerm), this.options.searchCallback && this.options.isKeepOptionsOnSearch && !this.searchTerm && (this.filteredOptions = [...this.allOptions], Y.debug(`[${this.instanceId}] Showing ${this.allOptions.length} initial options on open`)), this.presentationMode === "fullscreen" && this.enterFullscreen(), this.renderDropdown(), this.presentationMode !== "fullscreen" && this.positionDropdown(), this.dropdown.addEventListener("scroll", this.onDropdownScroll, !0), this.hint && this.presentationMode === "floating" && (this.hint.classList.add("ms__hint--visible"), this.positionHint()), (e = this.overlayCoord) == null || e.activate());
4602
4602
  }
4603
4603
  /** Close the dropdown (no-op if already closed). */
4604
4604
  close() {
4605
4605
  var e;
4606
- Y.debug(`[${this.instanceId}] close() called`, { isOpen: h(this, $) }), h(this, $) && (I(this, $, !1), this.element.classList.remove("ms--open"), this.dropdown.classList.remove("ms__dropdown--visible"), this.hint && this.hint.classList.remove("ms__hint--visible"), this.options.shouldKeepSearchOnClose || (this.searchTerm = "", (this.options.isMultipleEnabled || this.options.isSearchEnabled) && (this.input.value = ""), this.resetVisibleToAll()), this.focusedIndex = -1, this.dropdown.removeEventListener("scroll", this.onDropdownScroll, !0), this.destroyAllOptionTooltips(), this.hideLabelReveal(), this.hideMessage(), this.renderBadges(), this.dropdownCleanup && (this.dropdownCleanup(), this.dropdownCleanup = null), this.hintCleanup && (this.hintCleanup(), this.hintCleanup = null), this.exitFullscreen(), this.dropdownPlacement = null, (e = this.overlayCoord) == null || e.deactivate(), Y.debug(`[${this.instanceId}] Dropdown closed`));
4606
+ Y.debug(`[${this.instanceId}] close() called`, { isOpen: h(this, N) }), h(this, N) && (I(this, N, !1), this.element.classList.remove("ms--open"), this.dropdown.classList.remove("ms__dropdown--visible"), this.hint && this.hint.classList.remove("ms__hint--visible"), this.options.shouldKeepSearchOnClose || (this.searchTerm = "", (this.options.isMultipleEnabled || this.options.isSearchEnabled) && (this.input.value = ""), this.resetVisibleToAll()), this.focusedIndex = -1, this.dropdown.removeEventListener("scroll", this.onDropdownScroll, !0), this.destroyAllOptionTooltips(), this.hideLabelReveal(), this.hideMessage(), this.renderBadges(), this.dropdownCleanup && (this.dropdownCleanup(), this.dropdownCleanup = null), this.hintCleanup && (this.hintCleanup(), this.hintCleanup = null), this.exitFullscreen(), this.dropdownPlacement = null, (e = this.overlayCoord) == null || e.deactivate(), Y.debug(`[${this.instanceId}] Dropdown closed`));
4607
4607
  }
4608
4608
  /** Toggle the dropdown open/closed. */
4609
4609
  toggle() {
4610
- h(this, $) ? this.close() : this.open();
4610
+ h(this, N) ? this.close() : this.open();
4611
4611
  }
4612
4612
  /** Whether the dropdown is currently open. Assigning opens/closes it. */
4613
4613
  get isOpen() {
4614
- return h(this, $);
4614
+ return h(this, N);
4615
4615
  }
4616
4616
  set isOpen(e) {
4617
4617
  e ? this.open() : this.close();
@@ -4698,12 +4698,30 @@ class hn {
4698
4698
  const e = ns(this.dropdown);
4699
4699
  if (e === window) return;
4700
4700
  this.fullscreenContainingBlockWarned = !0;
4701
- const t = e, o = t.id ? `#${t.id}` : "", i = t.classList.length ? `.${Array.from(t.classList).join(".")}` : "", r = `<${t.tagName.toLowerCase()}${o}${i}>`, n = Po(t);
4701
+ const t = e, o = t.id ? `#${t.id}` : "", i = t.classList.length ? `.${Array.from(t.classList).join(".")}` : "", r = `<${t.tagName.toLowerCase()}${o}${i}>`, n = Mo(t);
4702
4702
  console.warn(
4703
4703
  `[@keenmate/web-multiselect] Fullscreen overlay is anchored to an ancestor ${r}` + (n ? ` (has ${n})` : "") + ` instead of the viewport, so it may not cover the screen (offset, clipped, or mis-sized).
4704
4704
  An ancestor of <web-multiselect> establishes a fixed-positioning containing block (transform / perspective / filter / backdrop-filter / will-change). Fix on your side: move the component out of that ancestor's subtree, OR remove/replace that property. If neither is acceptable, please file an issue at https://github.com/keenmate/web-multiselect/issues with the ancestor's computed CSS.`
4705
4705
  );
4706
4706
  }
4707
+ /**
4708
+ * Re-anchor an already-open floating dropdown from scratch so a frozen placement
4709
+ * is re-evaluated against the panel's CURRENT height.
4710
+ *
4711
+ * Why it's needed: an async `searchCallback` opens the panel while it's still
4712
+ * empty / showing the loader — short, so it fits below the input and (with the
4713
+ * default `lock-placement`) freezes to `bottom`. When results arrive the panel
4714
+ * grows to full height, but the frozen placement pins it below the input, so it
4715
+ * overflows the viewport bottom instead of flipping above into the free space.
4716
+ * `renderDropdown()` only rewrites the inner HTML; it never re-anchors. Tearing
4717
+ * down and recreating the anchor re-runs core's flip-on-first-compute against the
4718
+ * new height (picking the side that fits), then re-freezes — so `lock-placement`
4719
+ * still holds for the common case (panels that open already-populated, e.g. local
4720
+ * filtering, never hit this path). No-op unless a floating dropdown is open.
4721
+ */
4722
+ repositionDropdown() {
4723
+ !h(this, N) || this.presentationMode === "fullscreen" || (this.dropdownCleanup && (this.dropdownCleanup(), this.dropdownCleanup = null), this.dropdownPlacement = null, this.positionDropdown());
4724
+ }
4707
4725
  positionDropdown() {
4708
4726
  this.presentationMode !== "fullscreen" && (this.dropdownCleanup = this.anchorFloatingPanel(this.dropdown, {
4709
4727
  getPlacement: () => this.dropdownPlacement,
@@ -4713,7 +4731,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4713
4731
  isLocked: () => !!this.options.isPlacementLocked,
4714
4732
  applyMaxWidth: !0,
4715
4733
  afterPosition: () => {
4716
- this.hint && h(this, $) && this.positionHint();
4734
+ this.hint && h(this, N) && this.positionHint();
4717
4735
  }
4718
4736
  }));
4719
4737
  }
@@ -4727,7 +4745,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4727
4745
  * resize can swap presentation without a reopen.
4728
4746
  */
4729
4747
  setPresentation(e) {
4730
- e !== this.presentationMode && (this.presentationMode = e, h(this, $) ? e === "fullscreen" ? (this.dropdownCleanup && (this.dropdownCleanup(), this.dropdownCleanup = null), this.hintCleanup && (this.hintCleanup(), this.hintCleanup = null), this.hint && this.hint.classList.remove("ms__hint--visible"), this.dropdownPlacement = null, this.enterFullscreen(), this.renderDropdown()) : (this.exitFullscreen(), this.renderDropdown(), this.positionDropdown(), this.hint && (this.hint.classList.add("ms__hint--visible"), this.positionHint())) : this.showSelectedPopover && (e === "fullscreen" ? (this.selectedPopoverCleanup && (this.selectedPopoverCleanup(), this.selectedPopoverCleanup = null), this.selectedPopoverPlacement = null, this.clearFloatingInlineGeometry(this.selectedPopover), this.selectedPopover.classList.add("ms__selected-popover--fullscreen"), this.lockBodyScroll()) : (this.selectedPopover.classList.remove("ms__selected-popover--fullscreen"), this.unlockBodyScroll(), this.positionSelectedPopover())));
4748
+ e !== this.presentationMode && (this.presentationMode = e, h(this, N) ? e === "fullscreen" ? (this.dropdownCleanup && (this.dropdownCleanup(), this.dropdownCleanup = null), this.hintCleanup && (this.hintCleanup(), this.hintCleanup = null), this.hint && this.hint.classList.remove("ms__hint--visible"), this.dropdownPlacement = null, this.enterFullscreen(), this.renderDropdown()) : (this.exitFullscreen(), this.renderDropdown(), this.positionDropdown(), this.hint && (this.hint.classList.add("ms__hint--visible"), this.positionHint())) : this.showSelectedPopover && (e === "fullscreen" ? (this.selectedPopoverCleanup && (this.selectedPopoverCleanup(), this.selectedPopoverCleanup = null), this.selectedPopoverPlacement = null, this.clearFloatingInlineGeometry(this.selectedPopover), this.selectedPopover.classList.add("ms__selected-popover--fullscreen"), this.lockBodyScroll()) : (this.selectedPopover.classList.remove("ms__selected-popover--fullscreen"), this.unlockBodyScroll(), this.positionSelectedPopover())));
4731
4749
  }
4732
4750
  /**
4733
4751
  * Lock page scroll behind a fullscreen overlay via the core ref-counted helper.
@@ -4855,7 +4873,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4855
4873
  /** Back gesture/button fired: our pushed entry is already gone, so just close the
4856
4874
  * sheet — WITHOUT popping history again (popOverlayHistory becomes a no-op). */
4857
4875
  handleOverlayPopstate() {
4858
- this.overlayHistoryActive && (this.overlayHistoryActive = !1, window.removeEventListener("popstate", this.onOverlayPopstate), h(this, $) ? this.close() : this.showSelectedPopover && this.hideSelectedPopover());
4876
+ this.overlayHistoryActive && (this.overlayHistoryActive = !1, window.removeEventListener("popstate", this.onOverlayPopstate), h(this, N) ? this.close() : this.showSelectedPopover && this.hideSelectedPopover());
4859
4877
  }
4860
4878
  /** Programmatic close: remove the listener and pop the entry we pushed (so the
4861
4879
  * history stack returns to its pre-open state). No-op if a Back gesture already
@@ -4994,8 +5012,9 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4994
5012
  const e = this.element.dataset.initialValues;
4995
5013
  if (e)
4996
5014
  try {
4997
- JSON.parse(e).forEach((o) => {
4998
- this.selectedValues.add(String(o));
5015
+ const t = JSON.parse(e);
5016
+ (this.options.isMultipleEnabled === !1 ? t.slice(0, 1) : t).forEach((i) => {
5017
+ this.selectedValues.add(String(i));
4999
5018
  }), this.reconcileSelectedOptions(), this.renderBadges();
5000
5019
  } catch (t) {
5001
5020
  W.error(`[${this.instanceId}] Failed to parse initial values:`, t);
@@ -5024,7 +5043,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
5024
5043
  Y.debug(`[${this.instanceId}] showPopover() suppressed (isSelectedPopoverEnabled=false)`);
5025
5044
  return;
5026
5045
  }
5027
- h(this, $) && this.close(), this.hideMessage(), this.showSelectedPopover = !0, this.renderSelectedPopover(), this.selectedPopover.classList.add("ms__selected-popover--visible");
5046
+ h(this, N) && this.close(), this.hideMessage(), this.showSelectedPopover = !0, this.renderSelectedPopover(), this.selectedPopover.classList.add("ms__selected-popover--visible");
5028
5047
  const e = this.options.virtualScrollThreshold ?? 100;
5029
5048
  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();
5030
5049
  }
@@ -5067,7 +5086,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
5067
5086
  if (!this.selectedPopoverContainer) return;
5068
5087
  const o = this.scaledBadgeHeight(), i = Math.round(4 * this.fullscreenScale()), r = o + i, n = this.options.virtualScrollBuffer ?? 10;
5069
5088
  requestAnimationFrame(() => {
5070
- this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new js({
5089
+ this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Gs({
5071
5090
  container: this.selectedPopoverContainer,
5072
5091
  itemHeight: r,
5073
5092
  items: e,
@@ -5219,7 +5238,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
5219
5238
  if (t !== o) return !1;
5220
5239
  Object.assign(this.options, e);
5221
5240
  const i = "pathMember" in e || "getPathCallback" in e || "parentPathMember" in e || "levelMember" in e || "hasChildrenMember" in e || "treePathSeparator" in e || "isTreeEnabled" in e || "isSelectableMember" in e || "getIsSelectableCallback" in e;
5222
- if ("options" in e && e.options !== void 0 ? (this.allOptions = e.options, this.reconcileSelectedOptions(), this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]) : i && (this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]), ("checkboxMode" in e || "cascadeSelectPolicy" in e) && !i && !("options" in e) && this.isTreeMode() && (this.cascadeIndex = this.isCascadeMode() ? Xs(this.tree, (a) => String(this.getItemValue(a))) : null, this.isCascadeMode() && this.cascadeIndex)) {
5241
+ if ("options" in e && e.options !== void 0 ? (this.allOptions = e.options, this.reconcileSelectedOptions(), this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]) : i && (this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]), ("checkboxMode" in e || "cascadeSelectPolicy" in e) && !i && !("options" in e) && this.isTreeMode() && (this.cascadeIndex = this.isCascadeMode() ? Js(this.tree, (a) => String(this.getItemValue(a))) : null, this.isCascadeMode() && this.cascadeIndex)) {
5223
5242
  this.cascadeCheckedAtoms = Qe(this.cascadeIndex, this.selectedValues);
5224
5243
  const a = Zt(
5225
5244
  this.cascadeIndex,
@@ -5247,7 +5266,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
5247
5266
  this.effectiveBadgesPosition === "left" || this.effectiveBadgesPosition === "right"
5248
5267
  );
5249
5268
  }
5250
- return h(this, $) || (this.input.placeholder = this.getPlaceholderText()), "searchInputMode" in e && (this.input.readOnly = this.options.searchInputMode === "readonly", this.input.style.visibility = this.options.searchInputMode === "hidden" ? "hidden" : ""), "searchHint" in e && this.hint && (this.hint.textContent = this.options.searchHint || ""), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput(), !0;
5269
+ return h(this, N) || (this.input.placeholder = this.getPlaceholderText()), "searchInputMode" in e && (this.input.readOnly = this.options.searchInputMode === "readonly", this.input.style.visibility = this.options.searchInputMode === "hidden" ? "hidden" : ""), "searchHint" in e && this.hint && (this.hint.textContent = this.options.searchHint || ""), this.renderDropdown(), this.renderBadges(), this.updateHiddenInput(), !0;
5251
5270
  }
5252
5271
  get selectedItem() {
5253
5272
  return this.selectedOptions.size === 0 ? null : Array.from(this.selectedOptions.values())[0];
@@ -5459,7 +5478,7 @@ ${o}` : t;
5459
5478
  const o = (t == null ? void 0 : t.variant) ?? "info", i = (t == null ? void 0 : t.duration) ?? 3e3, r = o === "error" || o === "warning", n = document.createElement("div");
5460
5479
  n.className = `ms__message ms__message--${o}`, n.setAttribute("role", r ? "alert" : "status"), n.setAttribute("aria-live", r ? "assertive" : "polite"), typeof e == "string" ? n.textContent = e : n.appendChild(e), n.addEventListener("click", () => this.hideMessage());
5461
5480
  const a = this.element.getRootNode(), l = a instanceof ShadowRoot ? a : null;
5462
- if ((this.options.container ?? l ?? document.body).appendChild(n), this.messageEl = n, this.presentationMode === "fullscreen" && (h(this, $) || this.showSelectedPopover))
5481
+ if ((this.options.container ?? l ?? document.body).appendChild(n), this.messageEl = n, this.presentationMode === "fullscreen" && (h(this, N) || this.showSelectedPopover))
5463
5482
  n.classList.add("ms__message--fullscreen");
5464
5483
  else {
5465
5484
  const u = ot(n, this.inputWrapper, {
@@ -5539,7 +5558,7 @@ ${o}` : t;
5539
5558
  this.destroyAllTooltips(), this.hideLabelReveal(), this.hideMessage(), this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0), this.abortInFlightSearch(), this.dropdownCleanup && this.dropdownCleanup(), this.hintCleanup && this.hintCleanup(), this.selectedPopoverCleanup && this.selectedPopoverCleanup(), this.overlayHistoryActive && (this.overlayHistoryActive = !1, typeof window < "u" && window.removeEventListener("popstate", this.onOverlayPopstate)), this.exitFullscreen(), this.documentClickHandler && (document.removeEventListener("click", this.documentClickHandler), this.documentClickHandler = null), this.documentKeydownHandler && (document.removeEventListener("keydown", this.documentKeydownHandler), this.documentKeydownHandler = null), (e = this.overlayCoord) == null || e.dispose(), this.overlayCoord = null, this.virtualScroll && (this.virtualScroll.destroy(), this.virtualScroll = null), this.dropdown && this.dropdown.remove(), this.hint && this.hint.remove(), this.selectedPopover && this.selectedPopover.remove(), this.element.innerHTML = "", this.element.classList.remove("ms", "ms--open", "ms--no-checkboxes"), wt.info(`[${this.instanceId}] Component destroyed`);
5540
5559
  }
5541
5560
  }
5542
- $ = new WeakMap();
5561
+ N = new WeakMap();
5543
5562
  function un() {
5544
5563
  return {
5545
5564
  fromAttribute(s) {
@@ -5561,11 +5580,11 @@ function un() {
5561
5580
  }
5562
5581
  };
5563
5582
  }
5564
- const mn = ["json", "csv", "plain"], Js = ",", Ys = `
5583
+ const mn = ["json", "csv", "plain"], Ys = ",", Zs = `
5565
5584
  `;
5566
5585
  function pn(s, e, t = {}) {
5567
5586
  if (s == null || s.trim() === "") return { options: [] };
5568
- const o = Zs(t.splitter ?? Js) || Js, i = Zs(t.rowSplitter ?? Ys) || Ys;
5587
+ const o = Qs(t.splitter ?? Ys) || Ys, i = Qs(t.rowSplitter ?? Zs) || Zs;
5569
5588
  switch (e) {
5570
5589
  case "csv":
5571
5590
  return bn(s, o, i);
@@ -5576,7 +5595,7 @@ function pn(s, e, t = {}) {
5576
5595
  return fn(s);
5577
5596
  }
5578
5597
  }
5579
- function Zs(s) {
5598
+ function Qs(s) {
5580
5599
  return s.replace(
5581
5600
  /\\[ntr\\]/g,
5582
5601
  (e) => e === "\\n" ? `
@@ -5620,7 +5639,7 @@ function vn(s, e, t) {
5620
5639
  }
5621
5640
  return i.push(r), o.push(i), o;
5622
5641
  }
5623
- const Lo = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: var(--base-rem, 10px);font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#cbd5e1, #52525b));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-toggle-icon-size: calc(1.6 * var(--ms-rem));--ms-toggle-rotate-closed: 90deg;--ms-toggle-rotate-open: -90deg;--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: color-mix(in srgb, var(--ms-badge-bg) 88%, var(--ms-badge-text-color) 12%);--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: color-mix(in srgb, var(--ms-badge-text-bg) 88%, var(--ms-badge-text-color) 12%);--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: color-mix(in srgb, var(--ms-text-color-1) 10%, transparent);--ms-badge-counter-text-bg-hover: color-mix(in srgb, var(--ms-text-color-1) 16%, transparent);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-text-color-hover: var(--ms-text-color-1);--ms-badge-counter-remove-bg: color-mix(in srgb, var(--ms-text-color-1) 10%, transparent);--ms-badge-counter-remove-bg-hover: color-mix(in srgb, var(--ms-text-color-1) 16%, transparent);--ms-badge-counter-remove-color: var(--ms-text-color-3);--ms-badge-counter-remove-color-hover: var(--ms-text-color-1);--ms-counter-wrapper-border-color: var(--ms-border-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-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-gap: calc(.6 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-rotate-180: 180deg;--ms-input-clear-size: calc(2.4 * var(--ms-rem));--ms-input-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-input-clear-color: var(--base-input-clear-color, var(--ms-text-secondary));--ms-input-clear-bg-hover: var(--base-input-clear-bg-hover, var(--ms-option-bg-matched, transparent));--ms-input-clear-border-radius: var(--ms-border-radius);--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-inner-border-radius: max(0px, calc(var(--ms-dropdown-border-radius) - 1px));--ms-dropdown-box-shadow: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-input-current-width: auto;--ms-dropdown-width: var(--ms-input-current-width);--ms-options-max-height: calc(32 * var(--ms-rem));--ms-option-color: var(--ms-text-color-1);--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-z-index-fullscreen: 10001;--ms-z-index-fullscreen-tooltip: 10002;--ms-fullscreen-rem: 12px;--ms-fullscreen-bg: var(--ms-dropdown-bg);--ms-fullscreen-text-color: var(--ms-dropdown-text-color);--ms-fullscreen-header-bg: var(--ms-dropdown-bg);--ms-fullscreen-header-border: 1px solid var(--ms-dropdown-border-color);--ms-fullscreen-header-gap: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-v: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-h: calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding: var(--ms-fullscreen-header-padding-v) var(--ms-fullscreen-header-padding-h);--ms-fullscreen-header-min-height: calc(5.6 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-size: calc(1.7 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-weight: var(--base-font-weight-semibold, 600);--ms-fullscreen-search-border: var(--ms-input-border);--ms-fullscreen-search-border-radius: var(--ms-input-border-radius);--ms-fullscreen-search-padding: calc(.8 * var(--ms-fullscreen-rem)) calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-search-font-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-icon-size: calc(1.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-inset: calc(.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-gutter: calc(3.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-search-clear-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-mode-toggle-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-icon-size: calc(1.5 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-gap: var(--ms-fullscreen-header-gap);--ms-fullscreen-mode-toggle-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-mode-toggle-bg: transparent;--ms-fullscreen-mode-toggle-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-size: calc(3.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-color: var(--ms-dropdown-text-color);--ms-fullscreen-close-bg: transparent;--ms-fullscreen-close-border: none;--ms-fullscreen-close-border-radius: 50%;--ms-fullscreen-close-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-edge-nudge: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-icon-size: calc(1.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-color: var(--ms-accent-color);--ms-fullscreen-info-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-gap: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-padding-top: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-font-size: calc(1.3 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-nav-btn-size: calc(3.2 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-color: var(--ms-dropdown-text-color);--ms-fullscreen-nav-btn-bg: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-btn-bg-hover: color-mix(in srgb, var(--ms-accent-color) 22%, transparent);--ms-fullscreen-nav-btn-icon: var(--ms-icon-chevron);--ms-icon-chevron: var(--base-icon-chevron, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m9 18 6-6-6-6'/></svg>"));--ms-icon-info: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.3' fill='black'/><path d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");--ms-fullscreen-tree-base-indent: calc(.7 * var(--ms-fullscreen-rem));--ms-fullscreen-tree-indent: calc(1.2 * var(--ms-fullscreen-rem));--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: 0;--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-add-new-padding: var(--ms-option-padding);--ms-add-new-gap: var(--ms-option-gap);--ms-add-new-font-size: var(--ms-empty-font-size);--ms-add-new-color: var(--ms-accent-color);--ms-add-new-color-hover: var(--ms-accent-color);--ms-add-new-bg-hover: var(--ms-option-bg-hover);--ms-add-new-icon-size: calc(1.6 * var(--ms-rem));--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.4 * var(--ms-rem));--ms-icon-remove: var(--base-icon-remove, var(--base-icon-close, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18'/><path d='m6 6 12 12'/></svg>")));--ms-icon-search-clear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m13.5 8.5-5 5'/><path d='m8.5 8.5 5 5'/><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-search: var(--base-icon-search, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>"));--ms-icon-filter: var(--base-icon-filter, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/></svg>"));--ms-icon-check: var(--base-icon-check, 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='M20 6 9 17l-5-5'/></svg>"));--ms-icon-indeterminate: var(--base-icon-indeterminate, 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='M5 12h14'/></svg>"));--ms-icon-check-size: var(--base-icon-check-size, 68%);--ms-icon-add-new: var(--base-icon-plus, var(--base-icon-add, 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='M5 12h14'/><path d='M12 5v14'/></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: var(--ms-accent-color);--ms-count-clear-color-hover: var(--ms-text-color-on-accent);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--base-icon-clear, var(--ms-icon-remove));--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-message-bg: var(--ms-message-info-bg);--ms-message-color: var(--ms-message-info-color);--ms-message-border: 1px solid transparent;--ms-message-border-radius: var(--ms-border-radius-lg);--ms-message-padding: calc(1 * var(--ms-rem)) calc(1.4 * var(--ms-rem));--ms-message-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-message-font-weight: var(--base-font-weight-medium, 500);--ms-message-max-width: calc(40 * var(--ms-rem));--ms-message-shadow: 0 4px 16px rgb(0 0 0 / .18);--ms-message-fullscreen-offset: calc(2.4 * var(--ms-fullscreen-rem));--ms-message-z-index: var(--ms-z-index-fullscreen-tooltip);--ms-message-info-bg: var(--ms-tooltip-bg);--ms-message-info-color: var(--ms-tooltip-text-color);--ms-message-warning-bg: var(--base-warning-bg, #f59e0b);--ms-message-warning-color: var(--base-warning-color, #1a1a1a);--ms-message-error-bg: var(--base-danger-bg, #ef4444);--ms-message-error-color: var(--base-danger-color, #ffffff);--ms-message-success-bg: var(--base-success-bg, #10b981);--ms-message-success-color: var(--base-success-color, #ffffff);--ms-z-index-popover: 10000;--ms-selected-popover-width: var(--ms-input-current-width);--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-selected-popover-close-color-hover: var(--ms-text-color-on-accent);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: var(--base-ease-standard, cubic-bezier(.4, 0, .2, 1));--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}:host([defer]:not([is-ready])){display:block;min-height:calc(3.5 * var(--ms-rem))}:host{-webkit-tap-highlight-color:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{box-sizing:border-box;position:relative;display:flex;align-items:center;gap:var(--ms-input-gap);height:var(--ms-input-height);padding-inline:var(--ms-input-padding-h);background:var(--ms-input-bg);color:var(--ms-input-color);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-wrapper:hover:not(:focus-within){border:var(--ms-input-border-hover)}.ms__input-wrapper:focus-within{border:var(--ms-input-border-focus)}.ms__input{flex:1 1 auto;min-width:0;box-sizing:border-box;font-family:inherit;height:100%;padding:0;border:none;background:transparent;font-size:var(--ms-input-font-size);color:var(--ms-input-color);cursor:pointer;outline:none}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-placeholder-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__toggle{flex:0 0 auto;display:block;width:var(--ms-toggle-icon-size);height:var(--ms-toggle-icon-size);color:var(--ms-toggle-icon-color);cursor:pointer}.ms__toggle:before{content:"";display:block;width:100%;height:100%;background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat;transform:rotate(var(--ms-toggle-rotate-closed, 90deg));transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{color:var(--ms-toggle-icon-color-open)}.ms--open .ms__toggle:before{transform:rotate(var(--ms-toggle-rotate-open, -90deg))}.ms__counter{flex:0 0 auto;padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:scale(var(--ms-transform-scale-hover))}.ms__input-clear{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-input-clear-size);height:var(--ms-input-clear-size);padding:0;color:var(--ms-input-clear-color);background:transparent;border:none;border-radius:var(--ms-input-clear-border-radius);cursor:pointer;transition:background var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-clear:hover{background:var(--ms-input-clear-bg-hover)}.ms__input-clear:before{content:"";display:block;width:var(--ms-input-clear-icon-size);height:var(--ms-input-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}.ms__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}@media (hover: hover){.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;box-sizing:border-box;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);width:var(--ms-dropdown-width);max-height:var(--ms-options-max-height);overflow:hidden;color:var(--ms-dropdown-text-color)}.ms__dropdown--visible{display:flex;flex-direction:column}.ms__dropdown--fullscreen,.ms__selected-popover--fullscreen{--ms-rem: var(--ms-fullscreen-rem);--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tree-base-indent: var(--ms-fullscreen-tree-base-indent);--ms-tree-indent: var(--ms-fullscreen-tree-indent)}.ms__selected-popover--fullscreen{--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(4.2 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-badge-text-padding: 0 calc(1.2 * var(--ms-rem));--ms-badge-remove-width: calc(3.6 * var(--ms-rem));--ms-badge-remove-icon-size: calc(1.2 * var(--ms-rem));--ms-badge-remove-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-padding: calc(.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{position:fixed;top:0;inset-inline-start:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;--ms-dropdown-inner-border-radius: 0;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__dropdown--fullscreen .ms__dropdown-inner{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}.ms__dropdown--fullscreen .ms__options{flex:1 1 0;min-height:0;height:auto;max-height:none;overflow-y:auto;padding-bottom:var(--ms-option-gap)}.ms__dropdown--fullscreen .ms__actions{flex:0 0 auto}.ms__fullscreen-header,.ms__selected-popover--fullscreen .ms__selected-popover-header{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--ms-fullscreen-header-gap);min-height:var(--ms-fullscreen-header-min-height);padding:var(--ms-fullscreen-header-padding);background:var(--ms-fullscreen-header-bg);border-bottom:var(--ms-fullscreen-header-border)}.ms__fullscreen-header{align-content:flex-start}.ms__fullscreen-header>.ms__fullscreen-search-wrapper{min-height:var(--ms-fullscreen-header-min-height)}.ms__fullscreen-nav{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ms-fullscreen-nav-gap);padding-top:var(--ms-fullscreen-nav-padding-top)}.ms__fullscreen-nav-count{font-size:var(--ms-fullscreen-nav-count-font-size);color:var(--ms-fullscreen-nav-count-color)}.ms__fullscreen-nav-controls{display:flex;align-items:center;gap:var(--ms-fullscreen-nav-gap)}.ms__fullscreen-nav-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-nav-btn-size);height:var(--ms-fullscreen-nav-btn-size);padding:0;color:var(--ms-fullscreen-nav-btn-color);background:var(--ms-fullscreen-nav-btn-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-nav-btn:hover:not(:disabled){background:var(--ms-fullscreen-nav-btn-bg-hover)}.ms__fullscreen-nav-btn:disabled{opacity:.4;cursor:default}.ms__fullscreen-nav-btn:before{content:"";display:block;width:var(--ms-fullscreen-nav-btn-icon-size);height:var(--ms-fullscreen-nav-btn-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;transform:rotate(-90deg)}.ms__fullscreen-nav-btn--next:before{transform:rotate(90deg)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 0;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex;align-items:center}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-mode-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-mode-toggle-size);height:var(--ms-fullscreen-mode-toggle-size);margin-inline-end:var(--ms-fullscreen-mode-toggle-gap);margin-inline-start:calc((var(--ms-fullscreen-close-size) - var(--ms-fullscreen-mode-toggle-size)) / 2 - var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-mode-toggle-color);background:var(--ms-fullscreen-mode-toggle-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-mode-toggle:hover{background:var(--ms-fullscreen-mode-toggle-bg-hover)}.ms__fullscreen-mode-toggle:before{content:"";display:block;width:var(--ms-fullscreen-mode-toggle-icon-size);height:var(--ms-fullscreen-mode-toggle-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat;mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat}.ms__fullscreen-mode-toggle[data-mode=navigate]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-search)}.ms__fullscreen-mode-toggle[data-mode=filter]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-filter)}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;border-radius:var(--ms-dropdown-inner-border-radius);overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow:hidden}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip--fullscreen{z-index:var(--ms-z-index-fullscreen-tooltip)}.ms__message{position:fixed;z-index:var(--ms-message-z-index);box-sizing:border-box;max-width:var(--ms-message-max-width);padding:var(--ms-message-padding);font-family:inherit;font-size:var(--ms-message-font-size);font-weight:var(--ms-message-font-weight);line-height:var(--ms-line-height-normal);color:var(--ms-message-color);background:var(--ms-message-bg);border:var(--ms-message-border);border-radius:var(--ms-message-border-radius);box-shadow:var(--ms-message-shadow);cursor:pointer;opacity:0;transition:opacity var(--ms-transition-normal) ease;-webkit-tap-highlight-color:transparent}.ms__message--visible{opacity:1}.ms__message--info{background:var(--ms-message-info-bg);color:var(--ms-message-info-color)}.ms__message--warning{background:var(--ms-message-warning-bg);color:var(--ms-message-warning-color)}.ms__message--error{background:var(--ms-message-error-bg);color:var(--ms-message-error-color)}.ms__message--success{background:var(--ms-message-success-bg);color:var(--ms-message-success-color)}.ms__message--fullscreen{left:50%;right:auto;bottom:calc(var(--ms-message-fullscreen-offset) + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(var(--ms-message-max-width),calc(100vw - 4 * var(--ms-fullscreen-rem)));padding:calc(1 * var(--ms-fullscreen-rem)) calc(1.4 * var(--ms-fullscreen-rem));font-size:calc(var(--base-font-size-sm, 1.4) * var(--ms-fullscreen-rem))}.ms__selected-popover{display:none;position:fixed;box-sizing:border-box;z-index:var(--ms-z-index-popover);background:var(--ms-selected-popover-bg);border:var(--ms-selected-popover-border);border-radius:var(--ms-selected-popover-border-radius);box-shadow:var(--ms-selected-popover-box-shadow);width:var(--ms-selected-popover-width);max-height:var(--ms-selected-popover-max-height);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;overflow:hidden;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__selected-popover--fullscreen .ms__selected-popover-body{flex:1 1 0;min-height:0;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding);background:var(--ms-selected-popover-header-bg);border-bottom:var(--ms-selected-popover-header-border-bottom);font-size:var(--ms-selected-popover-header-font-size);font-weight:var(--ms-selected-popover-header-font-weight);color:var(--ms-selected-popover-header-color)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size);height:var(--ms-popover-close-size);padding:0;border:none;background:var(--ms-selected-popover-close-bg);color:var(--ms-selected-popover-close-color);font-size:var(--ms-selected-popover-close-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-bg-hover);color:var(--ms-selected-popover-close-color-hover)}.ms__selected-popover-close:before{content:"";display:block;width:var(--ms-selected-popover-close-icon-size);height:var(--ms-selected-popover-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap);padding:var(--ms-selected-popover-body-padding);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__selected-popover-body::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__selected-popover-body::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed);flex-shrink:0}.ms__selected-popover-body .ms__badge-text{flex:1;min-width:0;white-space:normal;word-wrap:break-word}.ms__selected-popover-body--virtual{display:block;max-height:none;padding:0}.ms__selected-popover-body--virtual .ms__badge{height:var(--ms-badge-height-virtual, 36px);min-height:var(--ms-badge-height-virtual, 36px);max-height:var(--ms-badge-height-virtual, 36px);margin-bottom:var(--ms-selected-popover-body-gap);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer component{.ms--disabled .ms__input-wrapper{opacity:var(--ms-disabled-input-opacity);background:var(--ms-input-bg-disabled);cursor:not-allowed}.ms--disabled .ms__input{cursor:not-allowed}.ms--no-checkboxes .ms__option{gap:0;padding-inline-start:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-inline-start:0}.ms--no-selected-popover .ms__counter,.ms--no-selected-popover .ms__badge[data-action=show-selected],.ms--no-selected-popover .ms__badge--counter,.ms--no-selected-popover .ms__badge--more{cursor:default}}@layer component{@keyframes ms-spin{to{transform:rotate(360deg)}}}@layer component{.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top);order:var(--ms-order-first)}.ms__badges--left{order:var(--ms-order-first);margin-right:var(--ms-badges-margin-left);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right);justify-content:flex-start}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge--custom{display:block;height:auto;max-width:none;overflow:visible;border-radius:0;font-size:inherit;font-weight:inherit}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-inline-end:none;border-start-start-radius:var(--ms-badge-border-radius);border-end-start-radius:var(--ms-badge-border-radius);border-start-end-radius:0;border-end-end-radius:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--ms-transition-normal) ease,color var(--ms-transition-normal) ease}.ms__badge:hover .ms__badge-text{background:var(--ms-badge-text-bg-hover, var(--ms-badge-text-bg));color:var(--ms-badge-text-color-hover, var(--ms-badge-text-color))}.ms__badge-remove{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:0;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);color:var(--ms-badge-counter-remove-color-hover, var(--ms-badge-counter-remove-color))}.ms__badge--counter:hover .ms__badge-text{background:var(--ms-badge-counter-text-bg-hover, var(--ms-badge-counter-text-bg));color:var(--ms-badge-counter-text-color-hover, var(--ms-badge-counter-text-color))}.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__group-label--selectable{display:flex;align-items:center;gap:var(--ms-option-gap);cursor:pointer;-webkit-user-select:none;user-select:none}@media (hover: hover){.ms__group-label--selectable:hover{background:var(--ms-option-bg-hover)}}.ms__group-label--has-count{display:flex;align-items:center;gap:var(--ms-option-gap)}.ms__group-count{margin-inline-start:auto;flex:0 0 auto;box-sizing:border-box;min-width:calc(2 * var(--ms-rem));padding-block:0;padding-inline:calc(.4 * var(--ms-rem));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);text-align:center}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);position:relative;min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit)}.ms__option--matched:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;border-inline-start:var(--ms-option-border-matched);pointer-events:none}.ms__option--selected{background:var(--ms-option-bg-selected)}@media (hover: hover){.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-bg-selected))}}.ms__option--disabled{opacity:var(--ms-disabled-opacity);cursor:not-allowed;background:var(--ms-option-disabled-bg)}.ms__option--disabled:hover{background:var(--ms-option-disabled-bg)}@media (hover: hover){.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start;--ms-checkbox-margin-top: calc(.2 * var(--ms-rem))}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-inline-end:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-inline-start:var(--ms-checkbox-margin-left);width:var(--ms-checkbox-size);height:var(--ms-checkbox-size);transform:scale(var(--ms-checkbox-scale));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg);border:var(--ms-checkbox-border);border-radius:var(--ms-checkbox-border-radius);transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;top:0;right:0;bottom:0;left:0;background-color:var(--ms-checkbox-checkmark-color);-webkit-mask:var(--ms-icon-check) no-repeat center / var(--ms-icon-check-size);mask:var(--ms-icon-check) no-repeat center / var(--ms-icon-check-size)}.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;-webkit-mask-image:var(--ms-icon-indeterminate);mask-image:var(--ms-icon-indeterminate)}.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__add-new{display:flex;align-items:center;gap:var(--ms-add-new-gap);padding:var(--ms-add-new-padding);font-size:var(--ms-add-new-font-size);color:var(--ms-add-new-color);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__add-new:hover{background:var(--ms-add-new-bg-hover);color:var(--ms-add-new-color-hover)}}.ms__add-new--focused{background:var(--ms-add-new-bg-hover);color:var(--ms-add-new-color-hover)}.ms__add-new--loading{cursor:default}.ms__add-new-spinner{flex-shrink:0;width:var(--ms-add-new-icon-size);height:var(--ms-add-new-icon-size);border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:ms-spin .6s linear infinite}@media (prefers-reduced-motion: reduce){.ms__add-new-spinner{animation-duration:1.5s}}.ms__add-new-icon{flex-shrink:0;width:var(--ms-add-new-icon-size);height:var(--ms-add-new-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-add-new) center / contain no-repeat;mask:var(--ms-icon-add-new) center / contain no-repeat}.ms__add-new-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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}}`, Qs = [
5642
+ const Eo = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: var(--base-rem, 10px);font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#cbd5e1, #52525b));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-toggle-icon-size: calc(1.6 * var(--ms-rem));--ms-toggle-rotate-closed: 90deg;--ms-toggle-rotate-open: -90deg;--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: color-mix(in srgb, var(--ms-badge-bg) 88%, var(--ms-badge-text-color) 12%);--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: color-mix(in srgb, var(--ms-badge-text-bg) 88%, var(--ms-badge-text-color) 12%);--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: color-mix(in srgb, var(--ms-text-color-1) 10%, transparent);--ms-badge-counter-text-bg-hover: color-mix(in srgb, var(--ms-text-color-1) 16%, transparent);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-text-color-hover: var(--ms-text-color-1);--ms-badge-counter-remove-bg: color-mix(in srgb, var(--ms-text-color-1) 10%, transparent);--ms-badge-counter-remove-bg-hover: color-mix(in srgb, var(--ms-text-color-1) 16%, transparent);--ms-badge-counter-remove-color: var(--ms-text-color-3);--ms-badge-counter-remove-color-hover: var(--ms-text-color-1);--ms-counter-wrapper-border-color: var(--ms-border-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-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-gap: calc(.6 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-rotate-180: 180deg;--ms-input-clear-size: calc(2.4 * var(--ms-rem));--ms-input-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-input-clear-color: var(--base-input-clear-color, var(--ms-text-secondary));--ms-input-clear-bg-hover: var(--base-input-clear-bg-hover, var(--ms-option-bg-matched, transparent));--ms-input-clear-border-radius: var(--ms-border-radius);--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-inner-border-radius: max(0px, calc(var(--ms-dropdown-border-radius) - 1px));--ms-dropdown-box-shadow: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-input-current-width: auto;--ms-dropdown-width: var(--ms-input-current-width);--ms-options-max-height: calc(32 * var(--ms-rem));--ms-option-color: var(--ms-text-color-1);--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-z-index-fullscreen: 10001;--ms-z-index-fullscreen-tooltip: 10002;--ms-fullscreen-rem: 12px;--ms-fullscreen-bg: var(--ms-dropdown-bg);--ms-fullscreen-text-color: var(--ms-dropdown-text-color);--ms-fullscreen-header-bg: var(--ms-dropdown-bg);--ms-fullscreen-header-border: 1px solid var(--ms-dropdown-border-color);--ms-fullscreen-header-gap: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-v: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-h: calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding: var(--ms-fullscreen-header-padding-v) var(--ms-fullscreen-header-padding-h);--ms-fullscreen-header-min-height: calc(5.6 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-size: calc(1.7 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-weight: var(--base-font-weight-semibold, 600);--ms-fullscreen-search-border: var(--ms-input-border);--ms-fullscreen-search-border-radius: var(--ms-input-border-radius);--ms-fullscreen-search-padding: calc(.8 * var(--ms-fullscreen-rem)) calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-search-font-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-icon-size: calc(1.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-inset: calc(.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-gutter: calc(3.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-search-clear-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-mode-toggle-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-icon-size: calc(1.5 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-gap: var(--ms-fullscreen-header-gap);--ms-fullscreen-mode-toggle-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-mode-toggle-bg: transparent;--ms-fullscreen-mode-toggle-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-size: calc(3.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-color: var(--ms-dropdown-text-color);--ms-fullscreen-close-bg: transparent;--ms-fullscreen-close-border: none;--ms-fullscreen-close-border-radius: 50%;--ms-fullscreen-close-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-edge-nudge: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-icon-size: calc(1.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-color: var(--ms-accent-color);--ms-fullscreen-info-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-gap: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-padding-top: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-font-size: calc(1.3 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-nav-btn-size: calc(3.2 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-color: var(--ms-dropdown-text-color);--ms-fullscreen-nav-btn-bg: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-btn-bg-hover: color-mix(in srgb, var(--ms-accent-color) 22%, transparent);--ms-fullscreen-nav-btn-icon: var(--ms-icon-chevron);--ms-icon-chevron: var(--base-icon-chevron, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m9 18 6-6-6-6'/></svg>"));--ms-icon-info: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.3' fill='black'/><path d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");--ms-fullscreen-tree-base-indent: calc(.7 * var(--ms-fullscreen-rem));--ms-fullscreen-tree-indent: calc(1.2 * var(--ms-fullscreen-rem));--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: 0;--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-add-new-padding: var(--ms-option-padding);--ms-add-new-gap: var(--ms-option-gap);--ms-add-new-font-size: var(--ms-empty-font-size);--ms-add-new-color: var(--ms-accent-color);--ms-add-new-color-hover: var(--ms-accent-color);--ms-add-new-bg-hover: var(--ms-option-bg-hover);--ms-add-new-icon-size: calc(1.6 * var(--ms-rem));--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.4 * var(--ms-rem));--ms-icon-remove: var(--base-icon-remove, var(--base-icon-close, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18'/><path d='m6 6 12 12'/></svg>")));--ms-icon-search-clear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m13.5 8.5-5 5'/><path d='m8.5 8.5 5 5'/><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-search: var(--base-icon-search, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>"));--ms-icon-filter: var(--base-icon-filter, url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/></svg>"));--ms-icon-check: var(--base-icon-check, 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='M20 6 9 17l-5-5'/></svg>"));--ms-icon-indeterminate: var(--base-icon-indeterminate, 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='M5 12h14'/></svg>"));--ms-icon-check-size: var(--base-icon-check-size, 68%);--ms-icon-add-new: var(--base-icon-plus, var(--base-icon-add, 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='M5 12h14'/><path d='M12 5v14'/></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: var(--ms-accent-color);--ms-count-clear-color-hover: var(--ms-text-color-on-accent);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--base-icon-clear, var(--ms-icon-remove));--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-message-bg: var(--ms-message-info-bg);--ms-message-color: var(--ms-message-info-color);--ms-message-border: 1px solid transparent;--ms-message-border-radius: var(--ms-border-radius-lg);--ms-message-padding: calc(1 * var(--ms-rem)) calc(1.4 * var(--ms-rem));--ms-message-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-message-font-weight: var(--base-font-weight-medium, 500);--ms-message-max-width: calc(40 * var(--ms-rem));--ms-message-shadow: 0 4px 16px rgb(0 0 0 / .18);--ms-message-fullscreen-offset: calc(2.4 * var(--ms-fullscreen-rem));--ms-message-z-index: var(--ms-z-index-fullscreen-tooltip);--ms-message-info-bg: var(--ms-tooltip-bg);--ms-message-info-color: var(--ms-tooltip-text-color);--ms-message-warning-bg: var(--base-warning-bg, #f59e0b);--ms-message-warning-color: var(--base-warning-color, #1a1a1a);--ms-message-error-bg: var(--base-danger-bg, #ef4444);--ms-message-error-color: var(--base-danger-color, #ffffff);--ms-message-success-bg: var(--base-success-bg, #10b981);--ms-message-success-color: var(--base-success-color, #ffffff);--ms-z-index-popover: 10000;--ms-selected-popover-width: var(--ms-input-current-width);--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-selected-popover-close-color-hover: var(--ms-text-color-on-accent);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: var(--base-ease-standard, cubic-bezier(.4, 0, .2, 1));--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}:host([defer]:not([is-ready])){display:block;min-height:calc(3.5 * var(--ms-rem))}:host{-webkit-tap-highlight-color:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{box-sizing:border-box;position:relative;display:flex;align-items:center;gap:var(--ms-input-gap);height:var(--ms-input-height);padding-inline:var(--ms-input-padding-h);background:var(--ms-input-bg);color:var(--ms-input-color);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-wrapper:hover:not(:focus-within){border:var(--ms-input-border-hover)}.ms__input-wrapper:focus-within{border:var(--ms-input-border-focus)}.ms__input{flex:1 1 auto;min-width:0;box-sizing:border-box;font-family:inherit;height:100%;padding:0;border:none;background:transparent;font-size:var(--ms-input-font-size);color:var(--ms-input-color);cursor:pointer;outline:none}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-placeholder-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__toggle{flex:0 0 auto;display:block;width:var(--ms-toggle-icon-size);height:var(--ms-toggle-icon-size);color:var(--ms-toggle-icon-color);cursor:pointer}.ms__toggle:before{content:"";display:block;width:100%;height:100%;background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat;transform:rotate(var(--ms-toggle-rotate-closed, 90deg));transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{color:var(--ms-toggle-icon-color-open)}.ms--open .ms__toggle:before{transform:rotate(var(--ms-toggle-rotate-open, -90deg))}.ms__counter{flex:0 0 auto;padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:scale(var(--ms-transform-scale-hover))}.ms__input-clear{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-input-clear-size);height:var(--ms-input-clear-size);padding:0;color:var(--ms-input-clear-color);background:transparent;border:none;border-radius:var(--ms-input-clear-border-radius);cursor:pointer;transition:background var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-clear:hover{background:var(--ms-input-clear-bg-hover)}.ms__input-clear:before{content:"";display:block;width:var(--ms-input-clear-icon-size);height:var(--ms-input-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}.ms__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}@media (hover: hover){.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;box-sizing:border-box;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);width:var(--ms-dropdown-width);max-height:var(--ms-options-max-height);overflow:hidden;color:var(--ms-dropdown-text-color)}.ms__dropdown--visible{display:flex;flex-direction:column}.ms__dropdown--fullscreen,.ms__selected-popover--fullscreen{--ms-rem: var(--ms-fullscreen-rem);--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tree-base-indent: var(--ms-fullscreen-tree-base-indent);--ms-tree-indent: var(--ms-fullscreen-tree-indent)}.ms__selected-popover--fullscreen{--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(4.2 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-badge-text-padding: 0 calc(1.2 * var(--ms-rem));--ms-badge-remove-width: calc(3.6 * var(--ms-rem));--ms-badge-remove-icon-size: calc(1.2 * var(--ms-rem));--ms-badge-remove-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-padding: calc(.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{position:fixed;top:0;inset-inline-start:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;--ms-dropdown-inner-border-radius: 0;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__dropdown--fullscreen .ms__dropdown-inner{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}.ms__dropdown--fullscreen .ms__options{flex:1 1 0;min-height:0;height:auto;max-height:none;overflow-y:auto;padding-bottom:var(--ms-option-gap)}.ms__dropdown--fullscreen .ms__actions{flex:0 0 auto}.ms__fullscreen-header,.ms__selected-popover--fullscreen .ms__selected-popover-header{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--ms-fullscreen-header-gap);min-height:var(--ms-fullscreen-header-min-height);padding:var(--ms-fullscreen-header-padding);background:var(--ms-fullscreen-header-bg);border-bottom:var(--ms-fullscreen-header-border)}.ms__fullscreen-header{align-content:flex-start}.ms__fullscreen-header>.ms__fullscreen-search-wrapper{min-height:var(--ms-fullscreen-header-min-height)}.ms__fullscreen-nav{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ms-fullscreen-nav-gap);padding-top:var(--ms-fullscreen-nav-padding-top)}.ms__fullscreen-nav-count{font-size:var(--ms-fullscreen-nav-count-font-size);color:var(--ms-fullscreen-nav-count-color)}.ms__fullscreen-nav-controls{display:flex;align-items:center;gap:var(--ms-fullscreen-nav-gap)}.ms__fullscreen-nav-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-nav-btn-size);height:var(--ms-fullscreen-nav-btn-size);padding:0;color:var(--ms-fullscreen-nav-btn-color);background:var(--ms-fullscreen-nav-btn-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-nav-btn:hover:not(:disabled){background:var(--ms-fullscreen-nav-btn-bg-hover)}.ms__fullscreen-nav-btn:disabled{opacity:.4;cursor:default}.ms__fullscreen-nav-btn:before{content:"";display:block;width:var(--ms-fullscreen-nav-btn-icon-size);height:var(--ms-fullscreen-nav-btn-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;transform:rotate(-90deg)}.ms__fullscreen-nav-btn--next:before{transform:rotate(90deg)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 0;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex;align-items:center}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-mode-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-mode-toggle-size);height:var(--ms-fullscreen-mode-toggle-size);margin-inline-end:var(--ms-fullscreen-mode-toggle-gap);margin-inline-start:calc((var(--ms-fullscreen-close-size) - var(--ms-fullscreen-mode-toggle-size)) / 2 - var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-mode-toggle-color);background:var(--ms-fullscreen-mode-toggle-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-mode-toggle:hover{background:var(--ms-fullscreen-mode-toggle-bg-hover)}.ms__fullscreen-mode-toggle:before{content:"";display:block;width:var(--ms-fullscreen-mode-toggle-icon-size);height:var(--ms-fullscreen-mode-toggle-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat;mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat}.ms__fullscreen-mode-toggle[data-mode=navigate]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-search)}.ms__fullscreen-mode-toggle[data-mode=filter]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-filter)}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;border-radius:var(--ms-dropdown-inner-border-radius);overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow:hidden}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip--fullscreen{z-index:var(--ms-z-index-fullscreen-tooltip)}.ms__message{position:fixed;z-index:var(--ms-message-z-index);box-sizing:border-box;max-width:var(--ms-message-max-width);padding:var(--ms-message-padding);font-family:inherit;font-size:var(--ms-message-font-size);font-weight:var(--ms-message-font-weight);line-height:var(--ms-line-height-normal);color:var(--ms-message-color);background:var(--ms-message-bg);border:var(--ms-message-border);border-radius:var(--ms-message-border-radius);box-shadow:var(--ms-message-shadow);cursor:pointer;opacity:0;transition:opacity var(--ms-transition-normal) ease;-webkit-tap-highlight-color:transparent}.ms__message--visible{opacity:1}.ms__message--info{background:var(--ms-message-info-bg);color:var(--ms-message-info-color)}.ms__message--warning{background:var(--ms-message-warning-bg);color:var(--ms-message-warning-color)}.ms__message--error{background:var(--ms-message-error-bg);color:var(--ms-message-error-color)}.ms__message--success{background:var(--ms-message-success-bg);color:var(--ms-message-success-color)}.ms__message--fullscreen{left:50%;right:auto;bottom:calc(var(--ms-message-fullscreen-offset) + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(var(--ms-message-max-width),calc(100vw - 4 * var(--ms-fullscreen-rem)));padding:calc(1 * var(--ms-fullscreen-rem)) calc(1.4 * var(--ms-fullscreen-rem));font-size:calc(var(--base-font-size-sm, 1.4) * var(--ms-fullscreen-rem))}.ms__selected-popover{display:none;position:fixed;box-sizing:border-box;z-index:var(--ms-z-index-popover);background:var(--ms-selected-popover-bg);border:var(--ms-selected-popover-border);border-radius:var(--ms-selected-popover-border-radius);box-shadow:var(--ms-selected-popover-box-shadow);width:var(--ms-selected-popover-width);max-height:var(--ms-selected-popover-max-height);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;overflow:hidden;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__selected-popover--fullscreen .ms__selected-popover-body{flex:1 1 0;min-height:0;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding);background:var(--ms-selected-popover-header-bg);border-bottom:var(--ms-selected-popover-header-border-bottom);font-size:var(--ms-selected-popover-header-font-size);font-weight:var(--ms-selected-popover-header-font-weight);color:var(--ms-selected-popover-header-color)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size);height:var(--ms-popover-close-size);padding:0;border:none;background:var(--ms-selected-popover-close-bg);color:var(--ms-selected-popover-close-color);font-size:var(--ms-selected-popover-close-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-bg-hover);color:var(--ms-selected-popover-close-color-hover)}.ms__selected-popover-close:before{content:"";display:block;width:var(--ms-selected-popover-close-icon-size);height:var(--ms-selected-popover-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap);padding:var(--ms-selected-popover-body-padding);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__selected-popover-body::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__selected-popover-body::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed);flex-shrink:0}.ms__selected-popover-body .ms__badge-text{flex:1;min-width:0;white-space:normal;word-wrap:break-word}.ms__selected-popover-body--virtual{display:block;max-height:none;padding:0}.ms__selected-popover-body--virtual .ms__badge{height:var(--ms-badge-height-virtual, 36px);min-height:var(--ms-badge-height-virtual, 36px);max-height:var(--ms-badge-height-virtual, 36px);margin-bottom:var(--ms-selected-popover-body-gap);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer component{.ms--disabled .ms__input-wrapper{opacity:var(--ms-disabled-input-opacity);background:var(--ms-input-bg-disabled);cursor:not-allowed}.ms--disabled .ms__input{cursor:not-allowed}.ms--no-checkboxes .ms__option{gap:0;padding-inline-start:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-inline-start:0}.ms--no-selected-popover .ms__counter,.ms--no-selected-popover .ms__badge[data-action=show-selected],.ms--no-selected-popover .ms__badge--counter,.ms--no-selected-popover .ms__badge--more{cursor:default}}@layer component{@keyframes ms-spin{to{transform:rotate(360deg)}}}@layer component{.ms__badges{display:flex;flex-wrap:wrap;gap:var(--ms-badges-gap);padding:0}.ms__badges:empty{display:none}.ms__badges--bottom{margin-top:var(--ms-badges-margin-bottom)}.ms__badges--top{margin-bottom:var(--ms-badges-margin-top);order:var(--ms-order-first)}.ms__badges--left{order:var(--ms-order-first);margin-right:var(--ms-badges-margin-left);justify-content:flex-end}.ms__badges--right{margin-left:var(--ms-badges-margin-right);justify-content:flex-start}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge--custom{display:block;height:auto;max-width:none;overflow:visible;border-radius:0;font-size:inherit;font-weight:inherit}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-inline-end:none;border-start-start-radius:var(--ms-badge-border-radius);border-end-start-radius:var(--ms-badge-border-radius);border-start-end-radius:0;border-end-end-radius:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background-color var(--ms-transition-normal) ease,color var(--ms-transition-normal) ease}.ms__badge:hover .ms__badge-text{background:var(--ms-badge-text-bg-hover, var(--ms-badge-text-bg));color:var(--ms-badge-text-color-hover, var(--ms-badge-text-color))}.ms__badge-remove{display:flex;align-items:center;justify-content:center;box-sizing:border-box;padding:0;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);color:var(--ms-badge-counter-remove-color-hover, var(--ms-badge-counter-remove-color))}.ms__badge--counter:hover .ms__badge-text{background:var(--ms-badge-counter-text-bg-hover, var(--ms-badge-counter-text-bg));color:var(--ms-badge-counter-text-color-hover, var(--ms-badge-counter-text-color))}.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__group-label--selectable{display:flex;align-items:center;gap:var(--ms-option-gap);cursor:pointer;-webkit-user-select:none;user-select:none}@media (hover: hover){.ms__group-label--selectable:hover{background:var(--ms-option-bg-hover)}}.ms__group-label--has-count{display:flex;align-items:center;gap:var(--ms-option-gap)}.ms__group-count{margin-inline-start:auto;flex:0 0 auto;box-sizing:border-box;min-width:calc(2 * var(--ms-rem));padding-block:0;padding-inline:calc(.4 * var(--ms-rem));background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);text-align:center}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);position:relative;min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit)}.ms__option--matched:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;border-inline-start:var(--ms-option-border-matched);pointer-events:none}.ms__option--selected{background:var(--ms-option-bg-selected)}@media (hover: hover){.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-bg-selected))}}.ms__option--disabled{opacity:var(--ms-disabled-opacity);cursor:not-allowed;background:var(--ms-option-disabled-bg)}.ms__option--disabled:hover{background:var(--ms-option-disabled-bg)}@media (hover: hover){.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start;--ms-checkbox-margin-top: calc(.2 * var(--ms-rem))}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-inline-end:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-inline-start:var(--ms-checkbox-margin-left);width:var(--ms-checkbox-size);height:var(--ms-checkbox-size);transform:scale(var(--ms-checkbox-scale));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg);border:var(--ms-checkbox-border);border-radius:var(--ms-checkbox-border-radius);transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;top:0;right:0;bottom:0;left:0;background-color:var(--ms-checkbox-checkmark-color);-webkit-mask:var(--ms-icon-check) no-repeat center / var(--ms-icon-check-size);mask:var(--ms-icon-check) no-repeat center / var(--ms-icon-check-size)}.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;-webkit-mask-image:var(--ms-icon-indeterminate);mask-image:var(--ms-icon-indeterminate)}.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__add-new{display:flex;align-items:center;gap:var(--ms-add-new-gap);padding:var(--ms-add-new-padding);font-size:var(--ms-add-new-font-size);color:var(--ms-add-new-color);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__add-new:hover{background:var(--ms-add-new-bg-hover);color:var(--ms-add-new-color-hover)}}.ms__add-new--focused{background:var(--ms-add-new-bg-hover);color:var(--ms-add-new-color-hover)}.ms__add-new--loading{cursor:default}.ms__add-new-spinner{flex-shrink:0;width:var(--ms-add-new-icon-size);height:var(--ms-add-new-icon-size);border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:ms-spin .6s linear infinite}@media (prefers-reduced-motion: reduce){.ms__add-new-spinner{animation-duration:1.5s}}.ms__add-new-icon{flex-shrink:0;width:var(--ms-add-new-icon-size);height:var(--ms-add-new-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-add-new) center / contain no-repeat;mask:var(--ms-icon-add-new) center / contain no-repeat}.ms__add-new-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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}}`, eo = [
5624
5643
  "top",
5625
5644
  "top-start",
5626
5645
  "top-end",
@@ -5633,40 +5652,41 @@ const Lo = `@layer variables,component,overrides;@layer variables{:host{display:
5633
5652
  "right",
5634
5653
  "right-start",
5635
5654
  "right-end"
5636
- ], E = () => Uo(), wn = [
5655
+ ], A = () => Uo(), wn = [
5637
5656
  // ── Strings (cosmetic → update). Optional ones are nullable: absent → null ─
5638
- { configKey: "searchHint", attribute: "search-hint", converter: z({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
5639
- { configKey: "searchPlaceholder", attribute: "search-placeholder", converter: z({ isNullable: !0 }), on: "update", description: 'Placeholder text for the search input. When unset it defaults to "Search..."; if `show-search-mode-toggle` is on, the default instead becomes mode-aware ("Search…" in navigate, "Filter…" in filter). An explicit value always wins and stays fixed.' },
5640
- { configKey: "selectPlaceholder", attribute: "select-placeholder", converter: z({ default: "Pick an option..." }), on: "update", description: "Placeholder shown on the control when nothing is selected." },
5641
- { configKey: "noDataPlaceholder", attribute: "no-data-placeholder", converter: z({ isNullable: !0 }), on: "update", description: "Text shown when there are no options at all." },
5642
- { configKey: "dropdownMinWidth", attribute: "dropdown-min-width", converter: z({ isNullable: !0 }), on: "update", description: "Minimum width of the dropdown panel (any CSS length)." },
5643
- { configKey: "dropdownMaxWidth", attribute: "dropdown-max-width", converter: z({ isNullable: !0 }), on: "update", description: "Maximum width of the dropdown panel (any CSS length)." },
5644
- { configKey: "maxHeight", attribute: "max-height", converter: z({ default: "20rem" }), on: "update", description: "Maximum height of the dropdown list before it scrolls." },
5645
- { configKey: "emptyMessage", attribute: "empty-message", converter: z({ default: "No results found" }), on: "update", description: "Message shown when a search yields no matches." },
5646
- { configKey: "addNewText", attribute: "add-new-text", converter: z({ isNullable: !0 }), on: "update", description: 'Template for the clickable "add new" prompt shown (when `allow-add-new` is on) in place of the empty message once a search yields no matches. `{value}` is replaced with the typed text. Default: `Add "{value}"`. A `getAddNewTextCallback` wins.' },
5647
- { configKey: "addNewPendingText", attribute: "add-new-pending-text", converter: z({ isNullable: !0 }), on: "update", description: 'Template for the pending prompt (spinner + text) shown while an async `addNewCallback` runs. `{value}` is replaced with the typed text. Default: `Adding "{value}"…`.' },
5648
- { configKey: "loadingMessage", attribute: "loading-message", converter: z({ default: "Loading..." }), on: "update", description: "Message shown while options are loading." },
5649
- { configKey: "removeButtonTooltipText", attribute: "remove-button-tooltip-text", converter: z({ isNullable: !0 }), on: "update", description: "Tooltip text for a badge remove (×) button." },
5650
- { configKey: "formFieldId", attribute: "name", converter: z({ isNullable: !0 }), on: "reinit", description: "HTML form field name/id used for the hidden input(s)." },
5657
+ { configKey: "searchHint", attribute: "search-hint", converter: E({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
5658
+ { configKey: "searchPlaceholder", attribute: "search-placeholder", converter: E({ isNullable: !0 }), on: "update", description: 'Placeholder text for the search input. When unset it defaults to "Search..."; if `show-search-mode-toggle` is on, the default instead becomes mode-aware ("Search…" in navigate, "Filter…" in filter). An explicit value always wins and stays fixed.' },
5659
+ { configKey: "selectPlaceholder", attribute: "select-placeholder", converter: E({ default: "Pick an option..." }), on: "update", description: "Placeholder shown on the control when nothing is selected." },
5660
+ { configKey: "noDataPlaceholder", attribute: "no-data-placeholder", converter: E({ isNullable: !0 }), on: "update", description: "Text shown when there are no options at all." },
5661
+ { configKey: "dropdownMinWidth", attribute: "dropdown-min-width", converter: E({ isNullable: !0 }), on: "update", description: "Minimum width of the dropdown panel (any CSS length)." },
5662
+ { configKey: "dropdownMaxWidth", attribute: "dropdown-max-width", converter: E({ isNullable: !0 }), on: "update", description: "Maximum width of the dropdown panel (any CSS length)." },
5663
+ { configKey: "maxHeight", attribute: "max-height", converter: E({ default: "20rem" }), on: "update", description: "Maximum height of the dropdown list before it scrolls." },
5664
+ { configKey: "emptyMessage", attribute: "empty-message", converter: E({ default: "No results found" }), on: "update", description: "Message shown when a search yields no matches." },
5665
+ { configKey: "addNewText", attribute: "add-new-text", converter: E({ isNullable: !0 }), on: "update", description: 'Template for the clickable "add new" prompt shown (when `allow-add-new` is on) in place of the empty message once a search yields no matches. `{value}` is replaced with the typed text. Default: `Add "{value}"`. A `getAddNewTextCallback` wins.' },
5666
+ { configKey: "addNewPendingText", attribute: "add-new-pending-text", converter: E({ isNullable: !0 }), on: "update", description: 'Template for the pending prompt (spinner + text) shown while an async `addNewCallback` runs. `{value}` is replaced with the typed text. Default: `Adding "{value}"…`.' },
5667
+ { configKey: "loadingMessage", attribute: "loading-message", converter: E({ default: "Loading..." }), on: "update", description: "Message shown while options are loading." },
5668
+ { configKey: "removeButtonTooltipText", attribute: "remove-button-tooltip-text", converter: E({ isNullable: !0 }), on: "update", description: "Tooltip text for a badge remove (×) button." },
5669
+ { configKey: "formFieldId", attribute: "name", converter: E({ isNullable: !0 }), on: "reinit", description: "HTML form field name/id used for the hidden input(s)." },
5670
+ { configKey: "customStyles", attribute: "custom-styles", converter: E({ isNullable: !0 }), on: "update", description: "Raw CSS injected into the Shadow DOM — the declarative alternative to `customStylesCallback`. The value is a full stylesheet (selectors and all), dropped verbatim into a replaceable style slot at the top of the shadow root. `customStylesCallback` takes precedence when both are set." },
5651
5671
  // ── CSS-var sugar (mirrored to a host style prop in reinit()/update()) ────
5652
- { configKey: "dropdownWidth", attribute: "dropdown-width", converter: z({ isNullable: !0 }), on: "update", description: "Fixed dropdown width; mirrored to the `--ms-dropdown-width` CSS variable." },
5653
- { configKey: "selectedPopoverWidth", attribute: "selected-popover-width", converter: z({ isNullable: !0 }), on: "update", description: "Selected-items popover width; mirrored to `--ms-selected-popover-width`." },
5672
+ { configKey: "dropdownWidth", attribute: "dropdown-width", converter: E({ isNullable: !0 }), on: "update", description: "Fixed dropdown width; mirrored to the `--ms-dropdown-width` CSS variable." },
5673
+ { configKey: "selectedPopoverWidth", attribute: "selected-popover-width", converter: E({ isNullable: !0 }), on: "update", description: "Selected-items popover width; mirrored to `--ms-selected-popover-width`." },
5654
5674
  // ── Member properties (structural → reinit; optional → nullable) ─────────
5655
- { configKey: "valueMember", attribute: "value-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name on an option object that holds its value." },
5656
- { configKey: "displayValueMember", attribute: "display-value-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option display label." },
5657
- { configKey: "searchValueMember", attribute: "search-value-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name searched against (falls back to the display value)." },
5658
- { configKey: "iconMember", attribute: "icon-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option icon." },
5659
- { configKey: "subtitleMember", attribute: "subtitle-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option subtitle." },
5660
- { configKey: "fullTitleMember", attribute: "full-title-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option full/long title." },
5661
- { configKey: "groupMember", attribute: "group-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name used to group options under headers." },
5662
- { configKey: "disabledMember", attribute: "disabled-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that marks an option disabled." },
5675
+ { configKey: "valueMember", attribute: "value-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name on an option object that holds its value." },
5676
+ { configKey: "displayValueMember", attribute: "display-value-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option display label." },
5677
+ { 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)." },
5678
+ { configKey: "iconMember", attribute: "icon-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option icon." },
5679
+ { configKey: "subtitleMember", attribute: "subtitle-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option subtitle." },
5680
+ { configKey: "fullTitleMember", attribute: "full-title-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option full/long title." },
5681
+ { configKey: "groupMember", attribute: "group-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name used to group options under headers." },
5682
+ { configKey: "disabledMember", attribute: "disabled-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that marks an option disabled." },
5663
5683
  // ── Tree of options (structural → reinit; optional → nullable) ───────────
5664
- { configKey: "pathMember", attribute: "path-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node materialized tree path." },
5665
- { configKey: "parentPathMember", attribute: "parent-path-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node parent path." },
5666
- { configKey: "levelMember", attribute: "level-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node depth level." },
5667
- { configKey: "hasChildrenMember", attribute: "has-children-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name flagging that a node has children." },
5668
- { configKey: "isSelectableMember", attribute: "is-selectable-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name marking whether a node can be selected." },
5669
- { configKey: "treePathSeparator", attribute: "tree-path-separator", converter: z({ default: "." }), reflect: !0, on: "reinit", description: "Separator between segments in a materialized tree path." },
5684
+ { configKey: "pathMember", attribute: "path-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node materialized tree path." },
5685
+ { configKey: "parentPathMember", attribute: "parent-path-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node parent path." },
5686
+ { configKey: "levelMember", attribute: "level-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node depth level." },
5687
+ { configKey: "hasChildrenMember", attribute: "has-children-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name flagging that a node has children." },
5688
+ { configKey: "isSelectableMember", attribute: "is-selectable-member", converter: E({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name marking whether a node can be selected." },
5689
+ { configKey: "treePathSeparator", attribute: "tree-path-separator", converter: E({ default: "." }), reflect: !0, on: "reinit", description: "Separator between segments in a materialized tree path." },
5670
5690
  { 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." },
5671
5691
  {
5672
5692
  configKey: "checkboxMode",
@@ -5704,17 +5724,17 @@ const Lo = `@layer variables,component,overrides;@layer variables{:host{display:
5704
5724
  on: "update",
5705
5725
  description: 'Order of the CURRENTLY-SELECTED items where they are displayed — badges, partial mode (which items sit behind the "+N more" badge), and the selected-items popover. Display only: `getValue()`, the form output, and `getSelected()` keep as-selected (insertion) order, and the options dropdown is never reordered.\n- `as-selected` (default) — the order items were picked.\n- `label-asc` / `label-desc` — by the badge label, A→Z / Z→A (locale-aware).\n- `member` — by the `selected-order-member` property (or `getSelectedOrderCallback`); numeric keys sort numerically, everything else with a locale string compare.\n- `custom` — delegate to `selectedOrderCompareCallback`.'
5706
5726
  },
5707
- { configKey: "selectedOrderMember", attribute: "selected-order-member", converter: z({ isNullable: !0 }), reflect: !0, on: "update", description: 'Property name used as the sort key when `selected-order="member"`. Sorts the SELECTED-items display only (not the dropdown). Overridden by `getSelectedOrderCallback`.' },
5727
+ { configKey: "selectedOrderMember", attribute: "selected-order-member", converter: E({ isNullable: !0 }), reflect: !0, on: "update", description: 'Property name used as the sort key when `selected-order="member"`. Sorts the SELECTED-items display only (not the dropdown). Overridden by `getSelectedOrderCallback`.' },
5708
5728
  { configKey: "searchInputMode", attribute: "search-input-mode", converter: K(["normal", "readonly", "hidden"], { default: "normal" }), on: "reinit", description: "Search field mode: editable, read-only, or hidden." },
5709
5729
  { configKey: "searchMode", attribute: "search-mode", converter: K(["filter", "navigate"], { default: "filter" }), on: "reinit", description: "Whether typing filters the list or navigates it." },
5710
- { configKey: "overlayGroup", attribute: "overlay-group", converter: z({ isNullable: !0 }), on: "reinit", description: 'Scope the "one overlay open at a time" coordination to a named group. Overlays (multiselects, datepickers, external popovers) sharing a group dismiss each other when one opens; different groups are independent. Unset = the default (ungrouped) group.' },
5730
+ { configKey: "overlayGroup", attribute: "overlay-group", converter: E({ isNullable: !0 }), on: "reinit", description: 'Scope the "one overlay open at a time" coordination to a named group. Overlays (multiselects, datepickers, external popovers) sharing a group dismiss each other when one opens; different groups are independent. Unset = the default (ungrouped) group.' },
5711
5731
  { configKey: "actionsLayout", attribute: "actions-layout", converter: K(["nowrap", "wrap"], { default: "nowrap" }), on: "reinit", description: "Whether the action bar wraps or stays on one line." },
5712
5732
  { configKey: "actionsPosition", attribute: "actions-position", converter: K(["top", "bottom"], { default: "top" }), on: "reinit", description: "Whether the action bar sits above or below the list." },
5713
5733
  { configKey: "actionsAlign", attribute: "actions-align", converter: K(["stretch", "left", "right", "center", "space-between"], { default: "stretch" }), on: "update", description: "Horizontal alignment of the action buttons." },
5714
5734
  { configKey: "checkboxAlign", attribute: "checkbox-align", converter: K(["top", "center", "bottom"], { default: "center" }), on: "update", description: "Vertical alignment of an option checkbox." },
5715
5735
  { configKey: "valueFormat", attribute: "value-format", converter: K(["json", "csv", "array"], { default: "json" }), on: "reinit", description: "Serialization format the control emits its value in." },
5716
- { configKey: "badgeTooltipPlacement", attribute: "badge-tooltip-placement", converter: K(Qs, { default: "top" }), on: "update", description: "Preferred placement of a badge tooltip relative to its badge (floating-ui placement)." },
5717
- { configKey: "optionTooltipPlacement", attribute: "option-tooltip-placement", converter: K(Qs, { default: "top-start" }), on: "update", description: "Preferred placement of an option tooltip (floating-ui placement)." },
5736
+ { configKey: "badgeTooltipPlacement", attribute: "badge-tooltip-placement", converter: K(eo, { default: "top" }), on: "update", description: "Preferred placement of a badge tooltip relative to its badge (floating-ui placement)." },
5737
+ { configKey: "optionTooltipPlacement", attribute: "option-tooltip-placement", converter: K(eo, { default: "top-start" }), on: "update", description: "Preferred placement of an option tooltip (floating-ui placement)." },
5718
5738
  {
5719
5739
  configKey: "mobilePresentation",
5720
5740
  attribute: "mobile-presentation",
@@ -5778,63 +5798,63 @@ const Lo = `@layer variables,component,overrides;@layer variables{:host{display:
5778
5798
  },
5779
5799
  // ── Complex property (data) ──────────────────────────────────────────────
5780
5800
  { configKey: "options", converter: Go(), 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." },
5781
- { configKey: "optionsSource", attribute: "data-options", converter: z({ isNullable: !0 }), on: "reinit", type: "string", description: "HTML-authoring source for the option list, parsed per `data-options-format`. Reactive: changing either attribute re-renders. Prefer the `options` property in JS; a set `options` property and declarative <option> children both win over this." },
5801
+ { 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." },
5782
5802
  { configKey: "optionsFormat", attribute: "data-options-format", converter: K(mn, { 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`." },
5783
- { configKey: "optionsSplitter", attribute: "data-options-splitter", converter: z({ default: "," }), on: "reinit", type: "string", description: 'Field/cell delimiter for the `csv` and `plain` `data-options` formats. Default `,`. Escapes `\\t` `\\n` `\\r` are honoured (e.g. `data-options-splitter="\\t"` for TSV). Ignored for `json`.' },
5784
- { configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter: z({ default: `
5803
+ { 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`.' },
5804
+ { configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter: E({ default: `
5785
5805
  ` }), 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`.' },
5786
5806
  { configKey: "actionButtons", converter: jo({ 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." },
5787
5807
  // ── Callbacks: data shape (structural → reinit) ──────────────────────────
5788
- { configKey: "getValueCallback", converter: E(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
5789
- { configKey: "getPathCallback", converter: E(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
5790
- { configKey: "getGroupCallback", converter: E(), on: "reinit", type: "(item: unknown) => string", description: "Extract the group name from an option (overrides groupMember)." },
5791
- { configKey: "getDisabledCallback", converter: E(), on: "reinit", type: "(item: unknown) => boolean", description: "Whether an option is disabled (overrides disabledMember)." },
5792
- { configKey: "getIsSelectableCallback", converter: E(), on: "reinit", type: "(node: unknown) => boolean", description: "Whether a tree node can be selected (overrides is-selectable-member)." },
5793
- { configKey: "getSearchValueCallback", converter: E(), on: "reinit", type: "(item: unknown) => string", description: "Text an option is searched against (overrides searchValueMember)." },
5794
- { configKey: "searchCallback", converter: E(), on: "reinit", type: "(searchTerm: string, signal?: AbortSignal) => Promise<unknown[]>", description: "Custom / async search; return the filtered options." },
5808
+ { configKey: "getValueCallback", converter: A(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
5809
+ { configKey: "getPathCallback", converter: A(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
5810
+ { configKey: "getGroupCallback", converter: A(), on: "reinit", type: "(item: unknown) => string", description: "Extract the group name from an option (overrides groupMember)." },
5811
+ { configKey: "getDisabledCallback", converter: A(), on: "reinit", type: "(item: unknown) => boolean", description: "Whether an option is disabled (overrides disabledMember)." },
5812
+ { configKey: "getIsSelectableCallback", converter: A(), on: "reinit", type: "(node: unknown) => boolean", description: "Whether a tree node can be selected (overrides is-selectable-member)." },
5813
+ { configKey: "getSearchValueCallback", converter: A(), on: "reinit", type: "(item: unknown) => string", description: "Text an option is searched against (overrides searchValueMember)." },
5814
+ { configKey: "searchCallback", converter: A(), on: "reinit", type: "(searchTerm: string, signal?: AbortSignal) => Promise<unknown[]>", description: "Custom / async search; return the filtered options." },
5795
5815
  // ── Callbacks: display / render (cosmetic → update) ──────────────────────
5796
- { configKey: "getDisplayValueCallback", converter: E(), on: "update", type: "(item: unknown) => string", description: "Compute the display label for an option (overrides displayValueMember)." },
5797
- { configKey: "getBadgeDisplayCallback", converter: E(), on: "update", type: "(item: unknown) => string", description: "Compute the text shown on an option badge." },
5798
- { configKey: "getBadgeClassCallback", converter: E(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for an option badge." },
5799
- { configKey: "getSelectedOrderCallback", converter: E(), on: "update", type: "(item: unknown) => string | number", description: 'Sort key for the selected-items display when `selected-order="member"` (overrides `selected-order-member`).' },
5800
- { configKey: "selectedOrderCompareCallback", converter: E(), on: "update", type: "(a: unknown, b: unknown) => number", description: 'Comparator for the selected-items display when `selected-order="custom"`.' },
5801
- { configKey: "getIconCallback", converter: E(), on: "update", type: "(item: unknown) => string", description: "Icon for an option (overrides iconMember)." },
5802
- { configKey: "getSubtitleCallback", converter: E(), on: "update", type: "(item: unknown) => string", description: "Subtitle for an option (overrides subtitleMember)." },
5803
- { configKey: "getFullTitleCallback", converter: E(), on: "update", type: "(item: unknown) => string", description: "Full title for an option (used by badges when show-badge-full-title is on)." },
5804
- { configKey: "getCounterCallback", converter: E(), on: "update", type: "(count: number, moreCount?: number) => string", description: "Render the selected-count label." },
5805
- { configKey: "getCountLabelCallback", converter: E(), on: "update", type: "(selected: number, total: number) => string", description: "Format the small count chip shared by the in-input counter and each group header count (default `[selected]`; e.g. `(s,t)=>`${s}/${t}``). One callback drives both." },
5806
- { configKey: "getValueFormatCallback", converter: E(), on: "update", type: "(selectedValues: (string | number)[]) => string", description: "Serialize the selected values for form submission." },
5807
- { configKey: "getBadgeTooltipCallback", converter: E(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option badge." },
5808
- { configKey: "getOptionTooltipCallback", converter: E(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option row." },
5809
- { configKey: "getRemoveButtonTooltipCallback", converter: E(), on: "update", type: "(item: unknown) => string", description: "Tooltip text for a badge remove button." },
5810
- { configKey: "getSelectedItemClassCallback", converter: E(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for a selected item." },
5811
- { configKey: "renderOptionContentCallback", converter: E(), on: "update", type: "(item: unknown, context: OptionContentRenderContext) => string | HTMLElement", description: "Custom render for an option row; may return HTML or an element." },
5812
- { configKey: "renderBadgeContentCallback", converter: E(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for a badge content (fills the built-in pill); may return HTML or an element." },
5813
- { configKey: "renderBadgeCallback", converter: E(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement | null", description: 'Custom render for the WHOLE badge (main area), not just its content — return the entire pill/card. The component wraps it in `.ms__badge.ms__badge--custom` with `data-value` and delegates removal to any inner element with `data-action="remove"` (or `.ms__badge-remove`). Return null/empty to fall back to the default pill for that item.' },
5814
- { configKey: "renderGroupLabelContentCallback", converter: E(), on: "update", type: "(groupName: string, context: GroupLabelRenderContext) => string | HTMLElement", description: "Customize a group label; may return an HTML string or element. The second arg carries the group members + selection (e.g. `context.selectedCount`) so a custom header can show a per-group count." },
5815
- { configKey: "renderSelectedContentCallback", converter: E(), on: "update", type: "(item: unknown, context: SelectedContentRenderContext) => string", description: "Custom render for the single-select selected value (2nd arg carries the presentation context)." },
5816
- { configKey: "renderSelectedItemContentCallback", converter: E(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for one selected item in the popover (2nd arg is a BadgeContentRenderContext; isInPopover=true)." },
5817
- { configKey: "customStylesCallback", converter: E(), on: "update", type: "() => string", description: "Returns a CSS string injected into the component via a replaceable style slot (§12.8)." },
5816
+ { configKey: "getDisplayValueCallback", converter: A(), on: "update", type: "(item: unknown) => string", description: "Compute the display label for an option (overrides displayValueMember)." },
5817
+ { configKey: "getBadgeDisplayCallback", converter: A(), on: "update", type: "(item: unknown) => string", description: "Compute the text shown on an option badge." },
5818
+ { configKey: "getBadgeClassCallback", converter: A(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for an option badge." },
5819
+ { configKey: "getSelectedOrderCallback", converter: A(), on: "update", type: "(item: unknown) => string | number", description: 'Sort key for the selected-items display when `selected-order="member"` (overrides `selected-order-member`).' },
5820
+ { configKey: "selectedOrderCompareCallback", converter: A(), on: "update", type: "(a: unknown, b: unknown) => number", description: 'Comparator for the selected-items display when `selected-order="custom"`.' },
5821
+ { configKey: "getIconCallback", converter: A(), on: "update", type: "(item: unknown) => string", description: "Icon for an option (overrides iconMember)." },
5822
+ { configKey: "getSubtitleCallback", converter: A(), on: "update", type: "(item: unknown) => string", description: "Subtitle for an option (overrides subtitleMember)." },
5823
+ { configKey: "getFullTitleCallback", converter: A(), on: "update", type: "(item: unknown) => string", description: "Full title for an option (used by badges when show-badge-full-title is on)." },
5824
+ { configKey: "getCounterCallback", converter: A(), on: "update", type: "(count: number, moreCount?: number) => string", description: "Render the selected-count label." },
5825
+ { configKey: "getCountLabelCallback", converter: A(), on: "update", type: "(selected: number, total: number) => string", description: "Format the small count chip shared by the in-input counter and each group header count (default `[selected]`; e.g. `(s,t)=>`${s}/${t}``). One callback drives both." },
5826
+ { configKey: "getValueFormatCallback", converter: A(), on: "update", type: "(selectedValues: (string | number)[]) => string", description: "Serialize the selected values for form submission." },
5827
+ { configKey: "getBadgeTooltipCallback", converter: A(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option badge." },
5828
+ { configKey: "getOptionTooltipCallback", converter: A(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option row." },
5829
+ { configKey: "getRemoveButtonTooltipCallback", converter: A(), on: "update", type: "(item: unknown) => string", description: "Tooltip text for a badge remove button." },
5830
+ { configKey: "getSelectedItemClassCallback", converter: A(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for a selected item." },
5831
+ { configKey: "renderOptionContentCallback", converter: A(), on: "update", type: "(item: unknown, context: OptionContentRenderContext) => string | HTMLElement", description: "Custom render for an option row; may return HTML or an element." },
5832
+ { configKey: "renderBadgeContentCallback", converter: A(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for a badge content (fills the built-in pill); may return HTML or an element." },
5833
+ { configKey: "renderBadgeCallback", converter: A(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement | null", description: 'Custom render for the WHOLE badge (main area), not just its content — return the entire pill/card. The component wraps it in `.ms__badge.ms__badge--custom` with `data-value` and delegates removal to any inner element with `data-action="remove"` (or `.ms__badge-remove`). Return null/empty to fall back to the default pill for that item.' },
5834
+ { configKey: "renderGroupLabelContentCallback", converter: A(), on: "update", type: "(groupName: string, context: GroupLabelRenderContext) => string | HTMLElement", description: "Customize a group label; may return an HTML string or element. The second arg carries the group members + selection (e.g. `context.selectedCount`) so a custom header can show a per-group count." },
5835
+ { configKey: "renderSelectedContentCallback", converter: A(), on: "update", type: "(item: unknown, context: SelectedContentRenderContext) => string", description: "Custom render for the single-select selected value (2nd arg carries the presentation context)." },
5836
+ { configKey: "renderSelectedItemContentCallback", converter: A(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for one selected item in the popover (2nd arg is a BadgeContentRenderContext; isInPopover=true)." },
5837
+ { configKey: "customStylesCallback", converter: A(), on: "update", type: "() => string", description: "Returns a CSS string injected into the component via a replaceable style slot (§12.8)." },
5818
5838
  // ── Callbacks: before-hooks (behavior-shaping) ───────────────────────────
5819
- { configKey: "beforeSearchCallback", converter: E(), on: "update", type: "(searchTerm: string) => string | null", description: "Runs before a search; return a rewritten term or null to veto." },
5820
- { configKey: "beforeSelectCallback", converter: E(), 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." },
5821
- { configKey: "beforeDeselectCallback", converter: E(), 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." },
5822
- { configKey: "addNewCallback", converter: E(), on: "update", type: "(value: string) => unknown | null | undefined | Promise<unknown | null | undefined>", description: "Create a new option from the typed text. May return a rich option object (renders via the same get*/render* callbacks as any option). Async + cancelable: return null/undefined to abort (no add, no `add` event). Omit entirely to handle creation yourself via the `add` event." },
5823
- { configKey: "getAddNewTextCallback", converter: E(), on: "update", type: "(value: string) => string", description: 'Dynamically compute the "add new" prompt label from the typed text (returns plain text). Takes precedence over `add-new-text`.' },
5824
- { configKey: "keydownCallback", converter: E(), on: "update", type: "(context: MultiSelectKeydownContext) => boolean | void", description: "Intercept keydown before built-in handling; return true to suppress the default. Gets the event, current state, and an imperative controller." }
5839
+ { configKey: "beforeSearchCallback", converter: A(), on: "update", type: "(searchTerm: string) => string | null", description: "Runs before a search; return a rewritten term or null to veto." },
5840
+ { configKey: "beforeSelectCallback", converter: A(), 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." },
5841
+ { configKey: "beforeDeselectCallback", converter: A(), 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." },
5842
+ { configKey: "addNewCallback", converter: A(), on: "update", type: "(value: string) => unknown | null | undefined | Promise<unknown | null | undefined>", description: "Create a new option from the typed text. May return a rich option object (renders via the same get*/render* callbacks as any option). Async + cancelable: return null/undefined to abort (no add, no `add` event). Omit entirely to handle creation yourself via the `add` event." },
5843
+ { configKey: "getAddNewTextCallback", converter: A(), on: "update", type: "(value: string) => string", description: 'Dynamically compute the "add new" prompt label from the typed text (returns plain text). Takes precedence over `add-new-text`.' },
5844
+ { configKey: "keydownCallback", converter: A(), on: "update", type: "(context: MultiSelectKeydownContext) => boolean | void", description: "Intercept keydown before built-in handling; return true to suppress the default. Gets the event, current state, and an imperative controller." }
5825
5845
  ], yn = [
5826
5846
  { name: "select", description: "An option was selected. `detail.option` is the selected option; `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
5827
5847
  { name: "deselect", description: "An option was removed from the selection. `detail.option` is that option." },
5828
5848
  { name: "change", description: "The selection changed. `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
5829
5849
  { name: "add", description: 'The user chose to create a new option from the typed text (via the "add new" prompt or Enter) — requires `allow-add-new`. `detail.value` is the typed text; `detail.option` is the created item when `addNewCallback` produced one.' },
5830
5850
  { name: "ready", description: "The picker was built and painted for the first time (once per element lifetime). Fires right after the first build — synchronously during upgrade for a normal element, or when the render gate is released (`el.ready()` / removing `defer`) for a deferred one. No detail." }
5831
- ], eo = /* @__PURE__ */ new Set(["dropdownWidth", "selectedPopoverWidth", "showDebugInfo", "initialValues", "optionsSource", "optionsFormat", "optionsSplitter", "optionsRowSplitter", "mobilePresentation", "collapseBadgesBelow", "deferRender"]), yt = {
5851
+ ], to = /* @__PURE__ */ new Set(["dropdownWidth", "selectedPopoverWidth", "showDebugInfo", "initialValues", "optionsSource", "optionsFormat", "optionsSplitter", "optionsRowSplitter", "mobilePresentation", "collapseBadgesBelow", "deferRender", "customStyles"]), yt = {
5832
5852
  dropdownWidth: "--ms-dropdown-width",
5833
5853
  selectedPopoverWidth: "--ms-selected-popover-width"
5834
5854
  };
5835
5855
  let xn = null;
5836
5856
  function _n() {
5837
- return xn ?? (xn = $i(Lo, "--ms-"));
5857
+ return xn ?? (xn = $i(Eo, "--ms-"));
5838
5858
  }
5839
5859
  const kn = [
5840
5860
  { key: "valueMember", member: "value", callbackKey: "getValueCallback" },
@@ -5844,11 +5864,11 @@ const kn = [
5844
5864
  { key: "subtitleMember", member: "subtitle", callbackKey: "getSubtitleCallback" },
5845
5865
  { key: "disabledMember", member: "disabled", callbackKey: "getDisabledCallback" }
5846
5866
  ];
5847
- var Q, C, fe, ut, Fe, mt, pt, ft, Ke, We, Ie, x, as, Ct, ge, St, ls, cs, ds, Tt, Eo, Ao, zo, Ee, hs, No, $o, Vo, us, Do, Ro, ms, ps;
5867
+ var Q, C, fe, ut, Fe, mt, pt, ft, Ke, We, Ie, y, as, Ct, ge, St, ls, cs, ds, Tt, Ao, zo, No, Ee, hs, us, $o, Vo, ms, Do, Ro, ps, fs;
5848
5868
  class it extends Qt {
5849
5869
  constructor() {
5850
5870
  super();
5851
- L(this, x);
5871
+ L(this, y);
5852
5872
  L(this, Q);
5853
5873
  L(this, C);
5854
5874
  L(this, fe);
@@ -5870,7 +5890,7 @@ class it extends Qt {
5870
5890
  // ── container-responsive badge collapse (core §12.9 `resized`) ─────────────
5871
5891
  /** Whether the live picker is currently forced to the collapsed count view. */
5872
5892
  L(this, ge, !1);
5873
- I(this, Q, this.attachShadow({ mode: "open" })), zi(h(this, Q), Lo), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-placeholder-ready", "")) : this.setAttribute("data-placeholder-ready", "");
5893
+ I(this, Q, this.attachShadow({ mode: "open" })), zi(h(this, Q), Eo), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-placeholder-ready", "")) : this.setAttribute("data-placeholder-ready", "");
5874
5894
  }
5875
5895
  /**
5876
5896
  * Called by the browser when the surrounding <form> is reset. Clears the
@@ -5891,19 +5911,19 @@ class it extends Qt {
5891
5911
  }
5892
5912
  /** Structural change (or first connect): mirror CSS vars, then (re)build the picker. */
5893
5913
  reinit() {
5894
- v(this, x, $o).call(this), this.isConnected && !v(this, x, as).call(this) && v(this, x, ds).call(this);
5914
+ b(this, y, $o).call(this), this.isConnected && !b(this, y, as).call(this) && b(this, y, ds).call(this);
5895
5915
  }
5896
5916
  /** Cosmetic change: mirror CSS vars / custom styles / debug, patch the picker in place. */
5897
5917
  update(t) {
5898
- v(this, x, Vo).call(this, t), "customStylesCallback" in t && v(this, x, hs).call(this), "showDebugInfo" in t && v(this, x, ms).call(this);
5918
+ b(this, y, Vo).call(this, t), ("customStylesCallback" in t || "customStyles" in t) && b(this, y, hs).call(this), "showDebugInfo" in t && b(this, y, ps).call(this);
5899
5919
  const o = {};
5900
5920
  for (const [i, r] of Object.entries(t))
5901
- eo.has(i) || (o[i] = r === null ? void 0 : r);
5902
- h(this, C) && Object.keys(o).length > 0 && (h(this, C).updateOptions(o) || v(this, x, ds).call(this)), "mobilePresentation" in t && v(this, x, Ct).call(this, Lt()), "collapseBadgesBelow" in t && v(this, x, St).call(this, this.getBoundingClientRect().width);
5921
+ to.has(i) || (o[i] = r === null ? void 0 : r);
5922
+ h(this, C) && Object.keys(o).length > 0 && (h(this, C).updateOptions(o) || b(this, y, ds).call(this)), "mobilePresentation" in t && b(this, y, Ct).call(this, Lt()), "collapseBadgesBelow" in t && b(this, y, St).call(this, this.getBoundingClientRect().width);
5903
5923
  }
5904
5924
  /** Activate: ensure the picker exists (a DOM move destroyed it in disconnect()). */
5905
5925
  connect() {
5906
- !h(this, C) && !v(this, x, as).call(this) && v(this, x, Tt).call(this);
5926
+ !h(this, C) && !b(this, y, as).call(this) && b(this, y, Tt).call(this);
5907
5927
  }
5908
5928
  /** Deactivate: tear the picker down (rebuilt on the next connect). */
5909
5929
  disconnect() {
@@ -5919,7 +5939,7 @@ class it extends Qt {
5919
5939
  * set before the dropdown can open.
5920
5940
  */
5921
5941
  environmentChanged(t) {
5922
- v(this, x, Ct).call(this, t);
5942
+ b(this, y, Ct).call(this, t);
5923
5943
  }
5924
5944
  /**
5925
5945
  * This element's own border box changed (core §12.9 `resized`). Overriding the
@@ -5930,7 +5950,7 @@ class it extends Qt {
5930
5950
  * below` is set; otherwise it's a cheap no-op.
5931
5951
  */
5932
5952
  resized({ width: t }) {
5933
- v(this, x, St).call(this, t);
5953
+ b(this, y, St).call(this, t);
5934
5954
  }
5935
5955
  // ── non-input public API ──────────────────────────────────────────────────
5936
5956
  /** Form field name (mirrors the `name` attribute → `formFieldId`). */
@@ -6062,14 +6082,14 @@ class it extends Qt {
6062
6082
  * gate never re-closes. Fires the `ready` event on the first build.
6063
6083
  */
6064
6084
  ready() {
6065
- I(this, Fe, !0), this.flush(), this.isConnected && !h(this, C) && v(this, x, Tt).call(this);
6085
+ I(this, Fe, !0), this.flush(), this.isConnected && !h(this, C) && b(this, y, Tt).call(this);
6066
6086
  }
6067
6087
  /** Whether the picker has been built (the `ready` event has fired). False while a `defer` gate is still held. */
6068
6088
  get isReady() {
6069
6089
  return this.hasAttribute("is-ready");
6070
6090
  }
6071
6091
  }
6072
- Q = new WeakMap(), C = new WeakMap(), fe = new WeakMap(), ut = new WeakMap(), Fe = new WeakMap(), mt = new WeakMap(), pt = new WeakMap(), ft = new WeakMap(), Ke = new WeakMap(), We = new WeakMap(), Ie = new WeakMap(), x = new WeakSet(), /** Whether the initial render is being held by the `defer` gate (not yet released). */
6092
+ Q = new WeakMap(), C = new WeakMap(), fe = new WeakMap(), ut = new WeakMap(), Fe = new WeakMap(), mt = new WeakMap(), pt = new WeakMap(), ft = new WeakMap(), Ke = new WeakMap(), We = new WeakMap(), Ie = new WeakMap(), y = new WeakSet(), /** Whether the initial render is being held by the `defer` gate (not yet released). */
6073
6093
  as = function() {
6074
6094
  return this.config.deferRender === !0 && !h(this, Fe);
6075
6095
  }, /** Resolve `mobile-presentation` against `env` and relay it to the live picker. */
@@ -6087,15 +6107,15 @@ Ct = function(t) {
6087
6107
  St = function(t) {
6088
6108
  const o = this.config.collapseBadgesBelow;
6089
6109
  if (o == null) {
6090
- h(this, ge) && (I(this, ge, !1), v(this, x, ls).call(this));
6110
+ h(this, ge) && (I(this, ge, !1), b(this, y, ls).call(this));
6091
6111
  return;
6092
6112
  }
6093
6113
  const i = t > 0 && t < o;
6094
- i !== h(this, ge) && (I(this, ge, i), i ? v(this, x, cs).call(this, "count") : v(this, x, ls).call(this));
6114
+ i !== h(this, ge) && (I(this, ge, i), i ? b(this, y, cs).call(this, "count") : b(this, y, ls).call(this));
6095
6115
  }, /** Re-assert the consumer's configured badges mode from the pristine base config. */
6096
6116
  ls = function() {
6097
6117
  const t = this.config.badgesDisplayMode ?? "badges";
6098
- v(this, x, cs).call(this, t);
6118
+ b(this, y, cs).call(this, t);
6099
6119
  }, /** Relay a badges-display-mode override to the live picker (never written to `this.config`). */
6100
6120
  cs = function(t) {
6101
6121
  var o;
@@ -6103,13 +6123,13 @@ cs = function(t) {
6103
6123
  }, // ── picker lifecycle ──────────────────────────────────────────────────────
6104
6124
  ds = function() {
6105
6125
  var o;
6106
- const t = h(this, C) ? v(this, x, Ee).call(this) : void 0;
6107
- (o = h(this, C)) == null || o.destroy(), I(this, C, void 0), v(this, x, Tt).call(this, t);
6126
+ const t = h(this, C) ? b(this, y, Ee).call(this) : void 0;
6127
+ (o = h(this, C)) == null || o.destroy(), I(this, C, void 0), b(this, y, Tt).call(this, t);
6108
6128
  }, Tt = function(t) {
6109
- v(this, x, Eo).call(this), v(this, x, Do).call(this);
6110
- const o = v(this, x, Ao).call(this), i = v(this, x, zo).call(this), r = JSON.stringify(i ?? null), a = t !== void 0 && t.length > 0 && r === h(this, ut) ? t : i;
6111
- I(this, ut, r), a && a.length > 0 ? h(this, fe).dataset.initialValues = JSON.stringify(a) : delete h(this, fe).dataset.initialValues, I(this, C, new hn(h(this, fe), o)), v(this, x, hs).call(this), v(this, x, ms).call(this), v(this, x, Ct).call(this, Lt()), I(this, ge, !1), v(this, x, St).call(this, this.getBoundingClientRect().width), this.hasAttribute("is-ready") || (I(this, Fe, !0), this.setAttribute("is-ready", ""), this.emit("ready"));
6112
- }, Eo = function() {
6129
+ b(this, y, Ao).call(this), b(this, y, Do).call(this);
6130
+ const o = b(this, y, zo).call(this), i = b(this, y, No).call(this), r = JSON.stringify(i ?? null), a = t !== void 0 && t.length > 0 && r === h(this, ut) ? t : i;
6131
+ I(this, ut, r), a && a.length > 0 ? h(this, fe).dataset.initialValues = JSON.stringify(a) : delete h(this, fe).dataset.initialValues, I(this, C, new hn(h(this, fe), o)), b(this, y, hs).call(this), b(this, y, ps).call(this), b(this, y, Ct).call(this, Lt()), I(this, ge, !1), b(this, y, St).call(this, this.getBoundingClientRect().width), this.hasAttribute("is-ready") || (I(this, Fe, !0), this.setAttribute("is-ready", ""), this.emit("ready"));
6132
+ }, Ao = function() {
6113
6133
  if (h(this, fe)) return;
6114
6134
  const t = document.createElement("div");
6115
6135
  t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), h(this, Q).appendChild(t), I(this, mt, Ni(h(this, Q), { position: "first", className: "ms-custom-styles" })), I(this, fe, t);
@@ -6118,9 +6138,9 @@ ds = function() {
6118
6138
  * picker doesn't own, plus the runtime wiring (event bridges, container, host,
6119
6139
  * declarative option data + member defaults, counter default).
6120
6140
  */
6121
- Ao = function() {
6141
+ zo = function() {
6122
6142
  const t = { ...this.config };
6123
- for (const i of eo) delete t[i];
6143
+ for (const i of to) delete t[i];
6124
6144
  for (const i of Object.keys(t))
6125
6145
  t[i] === null && delete t[i];
6126
6146
  let o = t.options;
@@ -6144,19 +6164,19 @@ Ao = function() {
6144
6164
  this.emit("select", {
6145
6165
  option: i,
6146
6166
  selectedOptions: ((r = h(this, C)) == null ? void 0 : r.getSelected()) ?? [],
6147
- selectedValues: v(this, x, Ee).call(this)
6167
+ selectedValues: b(this, y, Ee).call(this)
6148
6168
  });
6149
6169
  }, t.onDeselect = (i) => {
6150
6170
  var r;
6151
6171
  this.emit("deselect", {
6152
6172
  option: i,
6153
6173
  selectedOptions: ((r = h(this, C)) == null ? void 0 : r.getSelected()) ?? [],
6154
- selectedValues: v(this, x, Ee).call(this)
6174
+ selectedValues: b(this, y, Ee).call(this)
6155
6175
  });
6156
6176
  }, t.onChange = (i) => {
6157
6177
  this.emit("change", {
6158
6178
  selectedOptions: i,
6159
- selectedValues: v(this, x, Ee).call(this)
6179
+ selectedValues: b(this, y, Ee).call(this)
6160
6180
  });
6161
6181
  }, t.onAddNew = (i) => {
6162
6182
  var r;
@@ -6164,10 +6184,10 @@ Ao = function() {
6164
6184
  value: i.value,
6165
6185
  option: i.option,
6166
6186
  selectedOptions: ((r = h(this, C)) == null ? void 0 : r.getSelected()) ?? [],
6167
- selectedValues: v(this, x, Ee).call(this)
6187
+ selectedValues: b(this, y, Ee).call(this)
6168
6188
  });
6169
6189
  }, t.container = h(this, Q), t.hostElement = this, t;
6170
- }, zo = function() {
6190
+ }, No = function() {
6171
6191
  if (h(this, Ie) && h(this, Ie).length > 0)
6172
6192
  return h(this, Ie);
6173
6193
  const t = this.config.initialValues;
@@ -6180,16 +6200,16 @@ Ao = function() {
6180
6200
  hs = function() {
6181
6201
  const t = h(this, mt);
6182
6202
  if (!t) return;
6183
- const o = this.config.customStylesCallback;
6203
+ const o = this.config.customStylesCallback, i = this.config.customStyles ?? null;
6184
6204
  if (typeof o != "function") {
6185
- t.clear();
6205
+ t.set(i), i && b(this, y, us).call(this, i);
6186
6206
  return;
6187
6207
  }
6188
6208
  try {
6189
- const i = o();
6190
- t.set(i), i && v(this, x, No).call(this, i);
6191
- } catch (i) {
6192
- W.warn("[MultiSelectElement] customStylesCallback threw", i), t.clear();
6209
+ const r = o();
6210
+ t.set(r), r && b(this, y, us).call(this, r);
6211
+ } catch (r) {
6212
+ W.warn("[MultiSelectElement] customStylesCallback threw", r), t.set(i);
6193
6213
  }
6194
6214
  }, /**
6195
6215
  * Dev-only lint: warn when `customStylesCallback` *sets* a `--ms-*` variable
@@ -6200,7 +6220,7 @@ hs = function() {
6200
6220
  * De-duped per instance. If you genuinely define a `--ms-*` var for your own
6201
6221
  * custom-rendered content, ignore the warning (or use a different prefix).
6202
6222
  */
6203
- No = function(t) {
6223
+ us = function(t) {
6204
6224
  const o = _n();
6205
6225
  if (o.size !== 0)
6206
6226
  for (const { name: i, suggestions: r } of Ri(t, { prefix: "--ms-", consumed: o }))
@@ -6209,17 +6229,17 @@ No = function(t) {
6209
6229
  ));
6210
6230
  }, // ── CSS-var sugar ─────────────────────────────────────────────────────────
6211
6231
  $o = function() {
6212
- for (const t of Object.keys(yt)) v(this, x, us).call(this, yt[t], this.config[t]);
6232
+ for (const t of Object.keys(yt)) b(this, y, ms).call(this, yt[t], this.config[t]);
6213
6233
  }, Vo = function(t) {
6214
6234
  for (const o of Object.keys(yt))
6215
- o in t && v(this, x, us).call(this, yt[o], t[o]);
6216
- }, us = function(t, o) {
6235
+ o in t && b(this, y, ms).call(this, yt[o], t[o]);
6236
+ }, ms = function(t, o) {
6217
6237
  o == null || o === "" ? this.style.removeProperty(t) : this.style.setProperty(t, String(o));
6218
6238
  }, // ── declarative <option> parsing (light DOM, once) ────────────────────────
6219
6239
  Do = function() {
6220
6240
  if (h(this, ft)) return;
6221
6241
  I(this, ft, !0);
6222
- const t = v(this, x, Ro).call(this);
6242
+ const t = b(this, y, Ro).call(this);
6223
6243
  t && (I(this, We, t), I(this, Ke, !0));
6224
6244
  }, Ro = function() {
6225
6245
  const t = Array.from(this.children);
@@ -6248,7 +6268,7 @@ Do = function() {
6248
6268
  (n.tagName === "OPTION" || n.tagName === "OPTGROUP") && n.remove();
6249
6269
  return o;
6250
6270
  }, // ── debug panel (deprecated; kept for back-compat) ────────────────────────
6251
- ms = function() {
6271
+ ps = function() {
6252
6272
  const t = h(this, Q).querySelector(".ms__debug-info");
6253
6273
  if (t && t.remove(), !this.config.showDebugInfo) return;
6254
6274
  const o = document.createElement("div");
@@ -6256,12 +6276,12 @@ ms = function() {
6256
6276
  const i = document.createElement("details"), r = document.createElement("summary");
6257
6277
  r.textContent = "Debug Info";
6258
6278
  const n = document.createElement("div");
6259
- n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), h(this, Q).appendChild(o), v(this, x, ps).call(this);
6260
- }, ps = function() {
6279
+ n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), h(this, Q).appendChild(o), b(this, y, fs).call(this);
6280
+ }, fs = function() {
6261
6281
  var l, c, d, u;
6262
6282
  const t = h(this, Q).querySelector(".ms__debug-stats");
6263
6283
  if (!t || !h(this, C)) return;
6264
- const o = "2.2.0-rc01", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = h(this, C).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = h(this, C);
6284
+ const o = "2.2.0-rc02", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = h(this, C).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = h(this, C);
6265
6285
  t.innerHTML = `
6266
6286
  <span>Version: ${o}</span>
6267
6287
  <span>Total Instances: ${i}</span>
@@ -6272,7 +6292,7 @@ ms = function() {
6272
6292
  <span>Search: ${a.searchTerm || "none"}</span>
6273
6293
  <span>Loading: ${a.isLoading ? "Yes" : "No"}</span>
6274
6294
  `, setTimeout(() => {
6275
- this.config.showDebugInfo && v(this, x, ps).call(this);
6295
+ this.config.showDebugInfo && b(this, y, fs).call(this);
6276
6296
  }, 500);
6277
6297
  }, // Opt into the form-associated custom element lifecycle so form.reset() and
6278
6298
  // form.elements see the control.
@@ -6281,7 +6301,7 @@ typeof customElements < "u" && !customElements.get("web-multiselect") && customE
6281
6301
  Ei("web-multiselect", it, {
6282
6302
  config: {
6283
6303
  name: "@keenmate/web-multiselect",
6284
- version: "2.2.0-rc01",
6304
+ version: "2.2.0-rc02",
6285
6305
  author: "Keenmate s.r.o.",
6286
6306
  license: "MIT",
6287
6307
  repository: "git+https://github.com/keenmate/web-multiselect.git",