@keenmate/web-multiselect 2.0.0 → 2.1.0

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
- var Do = Object.defineProperty;
2
- var _s = (s) => {
1
+ var Bo = Object.defineProperty;
2
+ var Cs = (s) => {
3
3
  throw TypeError(s);
4
4
  };
5
- var Ro = (s, e, t) => e in s ? Do(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
6
- var p = (s, e, t) => Ro(s, typeof e != "symbol" ? e + "" : e, t), Kt = (s, e, t) => e.has(s) || _s("Cannot " + t);
7
- var h = (s, e, t) => (Kt(s, e, "read from private field"), t ? t.call(s) : e.get(s)), L = (s, e, t) => e.has(s) ? _s("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(s) : e.set(s, t), P = (s, e, t, o) => (Kt(s, e, "write to private field"), o ? o.call(s, t) : e.set(s, t), t), b = (s, e, t) => (Kt(s, e, "access private method"), t);
5
+ var Ho = (s, e, t) => e in s ? Bo(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
6
+ var p = (s, e, t) => Ho(s, typeof e != "symbol" ? e + "" : e, t), jt = (s, e, t) => e.has(s) || Cs("Cannot " + t);
7
+ var h = (s, e, t) => (jt(s, e, "read from private field"), t ? t.call(s) : e.get(s)), M = (s, e, t) => e.has(s) ? Cs("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(s) : e.set(s, t), I = (s, e, t, o) => (jt(s, e, "write to private field"), o ? o.call(s, t) : e.set(s, t), t), b = (s, e, t) => (jt(s, e, "access private method"), t);
8
8
  function j(s, e = {}) {
9
9
  const t = new Set(s), o = e.shouldNullOnInvalid ? null : e.default ?? null;
10
10
  return {
@@ -54,11 +54,11 @@ function A(s = {}) {
54
54
  }
55
55
  };
56
56
  }
57
- const Bo = /* @__PURE__ */ new Set(["", "true", "1", "yes", "on"]), Ho = /* @__PURE__ */ new Set(["false", "0", "no", "off"]);
57
+ const Fo = /* @__PURE__ */ new Set(["", "true", "1", "yes", "on"]), Ko = /* @__PURE__ */ new Set(["false", "0", "no", "off"]);
58
58
  function H(s = "presence") {
59
59
  const e = (t) => {
60
60
  const o = t.trim().toLowerCase();
61
- return Bo.has(o) ? !0 : Ho.has(o) ? !1 : null;
61
+ return Fo.has(o) ? !0 : Ko.has(o) ? !1 : null;
62
62
  };
63
63
  return {
64
64
  fromAttribute(t) {
@@ -81,7 +81,7 @@ function H(s = "presence") {
81
81
  }
82
82
  };
83
83
  }
84
- function Fo(s = {}) {
84
+ function Wo(s = {}) {
85
85
  const e = s.default;
86
86
  return {
87
87
  fromAttribute(t) {
@@ -101,7 +101,7 @@ function Fo(s = {}) {
101
101
  }
102
102
  };
103
103
  }
104
- function Ko(s = {}) {
104
+ function jo(s = {}) {
105
105
  const e = s.default ?? [], t = (o) => Array.isArray(o) && (!s.validateItem || o.every(s.validateItem));
106
106
  return {
107
107
  fromAttribute(o) {
@@ -121,22 +121,22 @@ function Ko(s = {}) {
121
121
  }
122
122
  };
123
123
  }
124
- function Wo() {
124
+ function Uo() {
125
125
  return {
126
126
  validate(s) {
127
127
  return s == null || typeof s == "function";
128
128
  }
129
129
  };
130
130
  }
131
- function jo(s, e, t) {
131
+ function Go(s, e, t) {
132
132
  const o = s.converter, i = o != null && o.fromAttribute ? o.fromAttribute(e, t, s.attribute ?? s.configKey) : e ?? s.default;
133
133
  return { configKey: s.configKey, field: s.field, value: i, on: s.on ?? "update" };
134
134
  }
135
- function Uo(s, e) {
135
+ function qo(s, e) {
136
136
  const t = s.converter;
137
137
  return t != null && t.validate && !t.validate(e) ? null : { configKey: s.configKey, field: s.field, value: e, on: s.on ?? "update" };
138
138
  }
139
- function Go() {
139
+ function Xo() {
140
140
  const s = /* @__PURE__ */ new Set();
141
141
  let e = !1;
142
142
  const t = () => {
@@ -164,7 +164,7 @@ function Go() {
164
164
  }
165
165
  };
166
166
  }
167
- const Qs = {
167
+ const eo = {
168
168
  pointer: "fine",
169
169
  hasCoarsePointer: !1,
170
170
  canHover: !0,
@@ -176,29 +176,29 @@ const Qs = {
176
176
  os: "unknown",
177
177
  isApple: !1,
178
178
  isAndroid: !1
179
- }, qo = { mobile: 640, tablet: 1024, desktop: 1 / 0 };
180
- let vt = Zs(qo);
181
- const ot = /* @__PURE__ */ new Set(), it = /* @__PURE__ */ new Set();
182
- let Pe = null, kt = [], wt = !1;
183
- const ks = 30;
184
- let Ee, yt = 0;
185
- function Zs(s) {
179
+ }, Yo = { mobile: 640, tablet: 1024, desktop: 1 / 0 };
180
+ let wt = to(Yo);
181
+ const it = /* @__PURE__ */ new Set(), rt = /* @__PURE__ */ new Set();
182
+ let Pe = null, St = [], yt = !1;
183
+ const Ss = 30;
184
+ let Ee, xt = 0;
185
+ function to(s) {
186
186
  return Object.entries(s).sort((e, t) => e[1] - t[1]);
187
187
  }
188
- function Xo(s) {
189
- for (const [t, o] of vt)
188
+ function Jo(s) {
189
+ for (const [t, o] of wt)
190
190
  if (s <= o)
191
191
  return t;
192
- const e = vt[vt.length - 1];
192
+ const e = wt[wt.length - 1];
193
193
  return e ? e[0] : "desktop";
194
194
  }
195
- function us() {
195
+ function ps() {
196
196
  return typeof window < "u" && typeof window.matchMedia == "function";
197
197
  }
198
- function Cs() {
198
+ function Ts() {
199
199
  return typeof navigator < "u" && (navigator.maxTouchPoints ?? 0) > 1;
200
200
  }
201
- function Yo() {
201
+ function Qo() {
202
202
  var o;
203
203
  if (typeof navigator > "u")
204
204
  return "unknown";
@@ -209,219 +209,219 @@ function Yo() {
209
209
  if (e.includes("ios"))
210
210
  return "ios";
211
211
  if (e.includes("mac"))
212
- return Cs() ? "ios" : "macos";
212
+ return Ts() ? "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) ? Cs() ? "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) ? Ts() ? "ios" : "macos" : /windows/i.test(t) ? "windows" : /linux/i.test(t) ? "linux" : "unknown";
220
220
  }
221
- let Jo;
222
- function Qo() {
223
- return Jo ?? (Jo = Yo());
221
+ let Zo;
222
+ function ei() {
223
+ return Zo ?? (Zo = Qo());
224
224
  }
225
- function Ue(s) {
226
- return us() && window.matchMedia(s).matches;
225
+ function Ge(s) {
226
+ return ps() && window.matchMedia(s).matches;
227
227
  }
228
- function ms() {
229
- if (!us())
230
- return { ...Qs };
231
- const s = Ue("(any-pointer: coarse)"), e = Ue("(pointer: coarse)"), t = Ue("(pointer: fine)"), o = Ue("(hover: hover)"), i = e ? "coarse" : t ? "fine" : "none", r = window.innerWidth, n = window.innerHeight, a = Qo();
228
+ function fs() {
229
+ if (!ps())
230
+ return { ...eo };
231
+ const s = Ge("(any-pointer: coarse)"), e = Ge("(pointer: coarse)"), t = Ge("(pointer: fine)"), o = Ge("(hover: hover)"), i = e ? "coarse" : t ? "fine" : "none", r = window.innerWidth, n = window.innerHeight, a = ei();
232
232
  return {
233
233
  pointer: i,
234
234
  hasCoarsePointer: s,
235
235
  canHover: o,
236
236
  isTouchPrimary: e && !o,
237
- orientation: Ue("(orientation: portrait)") ? "portrait" : "landscape",
237
+ orientation: Ge("(orientation: portrait)") ? "portrait" : "landscape",
238
238
  viewportWidth: r,
239
239
  viewportHeight: n,
240
- breakpoint: Xo(r),
240
+ breakpoint: Jo(r),
241
241
  os: a,
242
242
  isApple: a === "ios" || a === "macos",
243
243
  isAndroid: a === "android"
244
244
  };
245
245
  }
246
- function Zo(s, e) {
246
+ function ti(s, e) {
247
247
  return s.pointer === e.pointer && s.hasCoarsePointer === e.hasCoarsePointer && s.canHover === e.canHover && s.isTouchPrimary === e.isTouchPrimary && s.orientation === e.orientation && s.breakpoint === e.breakpoint;
248
248
  }
249
- function ei(s, e) {
249
+ function si(s, e) {
250
250
  return s.viewportWidth === e.viewportWidth && s.viewportHeight === e.viewportHeight;
251
251
  }
252
- function Ct() {
253
- const s = ms(), e = Pe;
254
- if (Pe = s, !e || !Zo(e, s))
255
- for (const t of [...ot])
252
+ function Tt() {
253
+ const s = fs(), e = Pe;
254
+ if (Pe = s, !e || !ti(e, s))
255
+ for (const t of [...it])
256
256
  t(s);
257
- it.size > 0 && (!e || !ei(e, s)) && ti();
257
+ rt.size > 0 && (!e || !si(e, s)) && oi();
258
258
  }
259
- function Ss() {
259
+ function Is() {
260
260
  const s = Pe;
261
261
  if (s)
262
- for (const e of [...it])
262
+ for (const e of [...rt])
263
263
  e(s);
264
264
  }
265
- function ti() {
265
+ function oi() {
266
266
  if (Ee !== void 0)
267
267
  return;
268
- const s = Date.now() - yt;
269
- s >= ks ? (yt = Date.now(), Ss()) : Ee = setTimeout(() => {
270
- Ee = void 0, yt = Date.now(), Ss();
271
- }, ks - s);
268
+ const s = Date.now() - xt;
269
+ s >= Ss ? (xt = Date.now(), Is()) : Ee = setTimeout(() => {
270
+ Ee = void 0, xt = Date.now(), Is();
271
+ }, Ss - s);
272
272
  }
273
- const St = () => Ct(), eo = () => {
273
+ const It = () => Tt(), so = () => {
274
274
  if (typeof requestAnimationFrame == "function") {
275
- if (wt)
275
+ if (yt)
276
276
  return;
277
- wt = !0, requestAnimationFrame(() => {
278
- wt = !1, Ct();
277
+ yt = !0, requestAnimationFrame(() => {
278
+ yt = !1, Tt();
279
279
  });
280
280
  } else
281
- Ct();
281
+ Tt();
282
282
  };
283
- function si(s) {
284
- typeof s.addEventListener == "function" ? s.addEventListener("change", St) : typeof s.addListener == "function" && s.addListener(St);
283
+ function ii(s) {
284
+ typeof s.addEventListener == "function" ? s.addEventListener("change", It) : typeof s.addListener == "function" && s.addListener(It);
285
285
  }
286
- function oi(s) {
287
- typeof s.removeEventListener == "function" ? s.removeEventListener("change", St) : typeof s.removeListener == "function" && s.removeListener(St);
286
+ function ri(s) {
287
+ typeof s.removeEventListener == "function" ? s.removeEventListener("change", It) : typeof s.removeListener == "function" && s.removeListener(It);
288
288
  }
289
- function to() {
290
- if (!us()) {
291
- Pe = { ...Qs };
289
+ function oo() {
290
+ if (!ps()) {
291
+ Pe = { ...eo };
292
292
  return;
293
293
  }
294
- kt = [
294
+ St = [
295
295
  window.matchMedia("(pointer: coarse)"),
296
296
  window.matchMedia("(pointer: fine)"),
297
297
  window.matchMedia("(any-pointer: coarse)"),
298
298
  window.matchMedia("(hover: hover)"),
299
299
  window.matchMedia("(orientation: portrait)")
300
300
  ];
301
- for (const s of kt)
302
- si(s);
303
- typeof window.addEventListener == "function" && window.addEventListener("resize", eo), Pe = ms();
301
+ for (const s of St)
302
+ ii(s);
303
+ typeof window.addEventListener == "function" && window.addEventListener("resize", so), Pe = fs();
304
304
  }
305
- function so() {
306
- for (const s of kt)
307
- oi(s);
308
- kt = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize", eo), wt = !1, Ee !== void 0 && (clearTimeout(Ee), Ee = void 0), yt = 0, Pe = null;
305
+ function io() {
306
+ for (const s of St)
307
+ ri(s);
308
+ St = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize", so), yt = !1, Ee !== void 0 && (clearTimeout(Ee), Ee = void 0), xt = 0, Pe = null;
309
309
  }
310
- function Tt() {
311
- return ot.size + it.size;
310
+ function Pt() {
311
+ return it.size + rt.size;
312
312
  }
313
- function It() {
314
- return Pe ?? ms();
313
+ function Ot() {
314
+ return Pe ?? fs();
315
315
  }
316
- function ii(s, e = {}) {
317
- const t = Tt() === 0;
318
- ot.add(s), t && to(), e.immediate !== !1 && s(It());
316
+ function ni(s, e = {}) {
317
+ const t = Pt() === 0;
318
+ it.add(s), t && oo(), e.immediate !== !1 && s(Ot());
319
319
  let o = !0;
320
320
  return () => {
321
- o && (o = !1, ot.delete(s), Tt() === 0 && so());
321
+ o && (o = !1, it.delete(s), Pt() === 0 && io());
322
322
  };
323
323
  }
324
- function ri(s, e = {}) {
325
- const t = Tt() === 0;
326
- it.add(s), t && to(), e.immediate !== !1 && s(It());
324
+ function ai(s, e = {}) {
325
+ const t = Pt() === 0;
326
+ rt.add(s), t && oo(), e.immediate !== !1 && s(Ot());
327
327
  let o = !0;
328
328
  return () => {
329
- o && (o = !1, it.delete(s), Tt() === 0 && so());
329
+ o && (o = !1, rt.delete(s), Pt() === 0 && io());
330
330
  };
331
331
  }
332
- function _n(s) {
333
- vt = Zs(s), ot.size > 0 && Ct();
332
+ function Cn(s) {
333
+ wt = to(s), it.size > 0 && Tt();
334
334
  }
335
- const ni = 600;
336
- function ai(s) {
337
- return s.isTouchPrimary ? Math.min(s.viewportWidth, s.viewportHeight) < ni ? "mobile" : "tablet" : "desktop";
335
+ const li = 600;
336
+ function ci(s) {
337
+ return s.isTouchPrimary ? Math.min(s.viewportWidth, s.viewportHeight) < li ? "mobile" : "tablet" : "desktop";
338
338
  }
339
- const li = 30;
339
+ const di = 30;
340
340
  let oe = null;
341
- const Je = /* @__PURE__ */ new WeakMap();
342
- let Wt = 0;
343
- function ci() {
341
+ const Qe = /* @__PURE__ */ new WeakMap();
342
+ let Ut = 0;
343
+ function hi() {
344
344
  return typeof ResizeObserver < "u";
345
345
  }
346
- function oo(s) {
346
+ function ro(s) {
347
347
  if (typeof s.getBoundingClientRect != "function")
348
348
  return { width: 0, height: 0 };
349
349
  const e = s.getBoundingClientRect();
350
350
  return { width: e.width, height: e.height };
351
351
  }
352
- function di(s, e) {
352
+ function ui(s, e) {
353
353
  return !!s && s.width === e.width && s.height === e.height;
354
354
  }
355
- function hi(s, e) {
356
- if (di(s.lastFired, e) || (s.pendingSize = e, s.timer !== void 0))
355
+ function mi(s, e) {
356
+ if (ui(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(), Ts(s)) : s.timer = setTimeout(() => {
360
- s.timer = void 0, s.lastNotify = Date.now(), Ts(s);
359
+ t >= s.throttleMs ? (s.lastNotify = Date.now(), Ps(s)) : s.timer = setTimeout(() => {
360
+ s.timer = void 0, s.lastNotify = Date.now(), Ps(s);
361
361
  }, s.throttleMs - t);
362
362
  }
363
- function Ts(s) {
363
+ function Ps(s) {
364
364
  const e = s.pendingSize;
365
365
  e && (s.lastFired = e, s.cb(e, s.el));
366
366
  }
367
- function ui(s) {
367
+ function pi(s) {
368
368
  for (const e of s) {
369
- const t = Je.get(e.target);
369
+ const t = Qe.get(e.target);
370
370
  if (!t)
371
371
  continue;
372
- const o = oo(e.target);
372
+ const o = ro(e.target);
373
373
  for (const i of [...t])
374
- hi(i, o);
374
+ mi(i, o);
375
375
  }
376
376
  }
377
- function mi() {
378
- return ci() ? (oe || (oe = new ResizeObserver(ui)), oe) : null;
377
+ function fi() {
378
+ return hi() ? (oe || (oe = new ResizeObserver(pi)), oe) : null;
379
379
  }
380
- function pi(s, e, t = {}) {
380
+ function gi(s, e, t = {}) {
381
381
  const o = {
382
382
  el: s,
383
383
  cb: e,
384
- throttleMs: t.throttleMs ?? li,
384
+ throttleMs: t.throttleMs ?? di,
385
385
  lastNotify: 0
386
386
  };
387
387
  if (t.immediate !== !1) {
388
- const n = oo(s);
388
+ const n = ro(s);
389
389
  o.lastFired = n, o.lastNotify = Date.now(), e(n, s);
390
390
  }
391
- const i = mi();
391
+ const i = fi();
392
392
  if (i) {
393
- let n = Je.get(s);
394
- n || (Je.set(s, n = /* @__PURE__ */ new Set()), Wt++, i.observe(s)), n.add(o);
393
+ let n = Qe.get(s);
394
+ n || (Qe.set(s, n = /* @__PURE__ */ new Set()), Ut++, i.observe(s)), n.add(o);
395
395
  }
396
396
  let r = !0;
397
397
  return () => {
398
398
  if (!r)
399
399
  return;
400
400
  r = !1, o.timer !== void 0 && (clearTimeout(o.timer), o.timer = void 0);
401
- const n = Je.get(s);
402
- n && (n.delete(o), n.size === 0 && (Je.delete(s), oe == null || oe.unobserve(s), Wt--, Wt === 0 && oe && (oe.disconnect(), oe = null)));
401
+ const n = Qe.get(s);
402
+ n && (n.delete(o), n.size === 0 && (Qe.delete(s), oe == null || oe.unobserve(s), Ut--, Ut === 0 && oe && (oe.disconnect(), oe = null)));
403
403
  };
404
404
  }
405
- const Pt = /* @__PURE__ */ new Map();
406
- function fi(s, e) {
407
- let t = Pt.get(s);
408
- t || Pt.set(s, t = /* @__PURE__ */ new Set()), t.add(e);
405
+ const Mt = /* @__PURE__ */ new Map();
406
+ function bi(s, e) {
407
+ let t = Mt.get(s);
408
+ t || Mt.set(s, t = /* @__PURE__ */ new Set()), t.add(e);
409
409
  }
410
- function gi(s, e) {
410
+ function vi(s, e) {
411
411
  var t;
412
- (t = Pt.get(s)) == null || t.delete(e);
412
+ (t = Mt.get(s)) == null || t.delete(e);
413
413
  }
414
- function bi(s) {
415
- return Array.from(Pt.get(s) ?? []);
414
+ function wi(s) {
415
+ return Array.from(Mt.get(s) ?? []);
416
416
  }
417
- const io = /* @__PURE__ */ new Map();
418
- function vi(s, e) {
419
- io.set(s.toLowerCase(), e);
417
+ const no = /* @__PURE__ */ new Map();
418
+ function yi(s, e) {
419
+ no.set(s.toLowerCase(), e);
420
420
  }
421
- function wi(s) {
422
- return io.get(s.toLowerCase());
421
+ function xi(s) {
422
+ return no.get(s.toLowerCase());
423
423
  }
424
- function yi(s, e, t, o = {}) {
424
+ function _i(s, e, t, o = {}) {
425
425
  return s.dispatchEvent(new CustomEvent(e, {
426
426
  detail: t,
427
427
  bubbles: o.bubbles ?? !0,
@@ -429,44 +429,44 @@ function yi(s, e, t, o = {}) {
429
429
  cancelable: o.cancelable ?? !1
430
430
  }));
431
431
  }
432
- function xi(s) {
432
+ function ki(s) {
433
433
  return s.split(/[-_]/).filter(Boolean).map((e) => e[0].toUpperCase() + e.slice(1)).join("");
434
434
  }
435
- function _i(s) {
436
- return `on${xi(s)}`;
435
+ function Ci(s) {
436
+ return `on${ki(s)}`;
437
437
  }
438
- function ki(s) {
438
+ function Si(s) {
439
439
  return s ? s.map((e) => {
440
- const t = typeof e == "string" ? { name: e } : e, o = t.property === !1 ? null : t.property ?? _i(t.name);
440
+ const t = typeof e == "string" ? { name: e } : e, o = t.property === !1 ? null : t.property ?? Ci(t.name);
441
441
  return { name: t.name, property: o, bubbles: t.bubbles, composed: t.composed, cancelable: t.cancelable };
442
442
  }) : [];
443
443
  }
444
- const Ci = typeof HTMLElement < "u" ? HTMLElement : class {
445
- }, Is = /* @__PURE__ */ new WeakSet();
446
- let Si = 0;
447
- const Ti = { trace() {
444
+ const Ti = typeof HTMLElement < "u" ? HTMLElement : class {
445
+ }, Os = /* @__PURE__ */ new WeakSet();
446
+ let Ii = 0;
447
+ const Pi = { trace() {
448
448
  }, debug() {
449
449
  }, info() {
450
450
  }, warn() {
451
451
  }, error() {
452
- } }, Ii = new Proxy({}, { get: () => Ti });
453
- var me, at, _e, lt, ke, ct, $t, Ce, pe, Se, Te, ze, Ne, $e, Ve, De, Re, Vt, ie, Be, I, ro, no, ao, Q, lo, co, Jt, Qt, Qe, Zt, ho;
454
- const xe = class xe extends Ci {
452
+ } }, Oi = new Proxy({}, { get: () => Pi });
453
+ var me, lt, _e, ct, ke, dt, Dt, Ce, pe, Se, Te, ze, Ne, $e, Ve, De, Re, Rt, ie, Be, P, ao, lo, co, Q, ho, uo, Zt, es, Ze, ts, mo;
454
+ const xe = class xe extends Ti {
455
455
  constructor() {
456
456
  super();
457
- L(this, I);
458
- L(this, me, {});
459
- L(this, at, /* @__PURE__ */ new Map());
460
- L(this, _e, /* @__PURE__ */ new Map());
461
- L(this, lt, /* @__PURE__ */ new Map());
457
+ M(this, P);
458
+ M(this, me, {});
459
+ M(this, lt, /* @__PURE__ */ new Map());
460
+ M(this, _e, /* @__PURE__ */ new Map());
461
+ M(this, ct, /* @__PURE__ */ new Map());
462
462
  /** Live handler currently bound via each managed `on<Name>` property, keyed by event name. */
463
- L(this, ke, /* @__PURE__ */ new Map());
464
- L(this, ct, Go());
465
- L(this, $t, () => b(this, I, Zt).call(this));
466
- L(this, Ce, null);
467
- L(this, pe, !1);
468
- L(this, Se, []);
469
- L(this, Te, !1);
463
+ M(this, ke, /* @__PURE__ */ new Map());
464
+ M(this, dt, Xo());
465
+ M(this, Dt, () => b(this, P, ts).call(this));
466
+ M(this, Ce, null);
467
+ M(this, pe, !1);
468
+ M(this, Se, []);
469
+ M(this, Te, !1);
470
470
  /**
471
471
  * configKeys that carried a value assigned BEFORE the element was upgraded
472
472
  * (`el.foo = …` before its class was defined). The browser fires the initial
@@ -476,25 +476,25 @@ const xe = class xe extends Ci {
476
476
  * guarantee); post-connect attribute changes react normally. Cleared on first
477
477
  * connect.
478
478
  */
479
- L(this, ze, null);
480
- L(this, Ne, !1);
479
+ M(this, ze, null);
480
+ M(this, Ne, !1);
481
481
  /** Unsubscribe from the environment observable; set only while connected AND `environmentChanged` is overridden. */
482
- L(this, $e);
482
+ M(this, $e);
483
483
  /** Unsubscribe from the throttled viewport observable; set only while connected AND `viewportChanged` is overridden. */
484
- L(this, Ve);
484
+ M(this, Ve);
485
485
  /** Unsubscribe from the per-element ResizeObserver; set only while connected AND `resized` is overridden. */
486
- L(this, De);
487
- L(this, Re);
488
- L(this, Vt);
489
- L(this, ie);
490
- L(this, Be);
491
- const t = this.constructor, o = t.inputs ?? [], i = ki(t.events);
492
- b(this, I, ao).call(this, o, i);
486
+ M(this, De);
487
+ M(this, Re);
488
+ M(this, Rt);
489
+ M(this, ie);
490
+ M(this, Be);
491
+ const t = this.constructor, o = t.inputs ?? [], i = Si(t.events);
492
+ b(this, P, co).call(this, o, i);
493
493
  for (const r of o)
494
- h(this, at).set(r.configKey, r), r.attribute && h(this, _e).set(r.attribute, r);
494
+ h(this, lt).set(r.configKey, r), r.attribute && h(this, _e).set(r.attribute, r);
495
495
  for (const r of i)
496
- h(this, lt).set(r.name, r);
497
- b(this, I, ro).call(this, o), b(this, I, lo).call(this, o), b(this, I, co).call(this, i);
496
+ h(this, ct).set(r.name, r);
497
+ b(this, P, ao).call(this, o), b(this, P, ho).call(this, o), b(this, P, uo).call(this, i);
498
498
  }
499
499
  static get observedAttributes() {
500
500
  const t = (this.inputs ?? []).filter((o) => o.attribute).map((o) => o.attribute);
@@ -514,31 +514,31 @@ const xe = class xe extends Ci {
514
514
  return;
515
515
  let n;
516
516
  try {
517
- n = jo(r, i, this);
517
+ n = Go(r, i, this);
518
518
  } catch (l) {
519
- b(this, I, Q).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = b(this, I, no).call(this, r);
519
+ b(this, P, Q).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = b(this, P, lo).call(this, r);
520
520
  }
521
- b(this, I, Qt).call(this, n);
521
+ b(this, P, es).call(this, n);
522
522
  }
523
523
  connectedCallback() {
524
- fi(this.localName, this), h(this, Te) || (P(this, Te, !0), P(this, ze, null), P(this, pe, !0)), b(this, I, Qe).call(this), this.connect(), this.environmentChanged !== xe.prototype.environmentChanged && P(this, $e, ii((t) => this.environmentChanged(t))), this.viewportChanged !== xe.prototype.viewportChanged && P(this, Ve, ri((t) => this.viewportChanged(t))), this.resized !== xe.prototype.resized && P(this, De, pi(this, (t) => this.resized(t), { immediate: !1 }));
524
+ bi(this.localName, this), h(this, Te) || (I(this, Te, !0), I(this, ze, null), I(this, pe, !0)), b(this, P, Ze).call(this), this.connect(), this.environmentChanged !== xe.prototype.environmentChanged && I(this, $e, ni((t) => this.environmentChanged(t))), this.viewportChanged !== xe.prototype.viewportChanged && I(this, Ve, ai((t) => this.viewportChanged(t))), this.resized !== xe.prototype.resized && I(this, De, gi(this, (t) => this.resized(t), { immediate: !1 }));
525
525
  }
526
526
  disconnectedCallback() {
527
527
  var t, o, i;
528
- gi(this.localName, this), (t = h(this, $e)) == null || t.call(this), P(this, $e, void 0), (o = h(this, Ve)) == null || o.call(this), P(this, Ve, void 0), (i = h(this, De)) == null || i.call(this), P(this, De, void 0), this.disconnect();
528
+ vi(this.localName, this), (t = h(this, $e)) == null || t.call(this), I(this, $e, void 0), (o = h(this, Ve)) == null || o.call(this), I(this, Ve, void 0), (i = h(this, De)) == null || i.call(this), I(this, De, void 0), this.disconnect();
529
529
  }
530
530
  // ── public batching API ─────────────────────────────────────────────────
531
531
  /** Apply many inputs (by `configKey` or attribute name) as ONE reinit/update. */
532
532
  setAttributes(t) {
533
533
  for (const [o, i] of Object.entries(t)) {
534
- const r = h(this, at).get(o) ?? h(this, _e).get(o);
535
- r && b(this, I, Jt).call(this, r, i);
534
+ const r = h(this, lt).get(o) ?? h(this, _e).get(o);
535
+ r && b(this, P, Zt).call(this, r, i);
536
536
  }
537
- b(this, I, Qe).call(this);
537
+ b(this, P, Ze).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(), b(this, I, Qe).call(this);
541
+ t(), b(this, P, Ze).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 Ci {
554
554
  * `await whenSettled()` between the two.
555
555
  */
556
556
  flush() {
557
- b(this, I, Qe).call(this);
557
+ b(this, P, Ze).call(this);
558
558
  }
559
559
  /**
560
560
  * Resolves once the element is **settled** — i.e. every staged input change
@@ -592,11 +592,11 @@ const xe = class xe extends Ci {
592
592
  get log() {
593
593
  if (h(this, Be))
594
594
  return h(this, Be);
595
- const t = wi(this.localName);
595
+ const t = xi(this.localName);
596
596
  if (!t)
597
- return Ii;
598
- const o = h(this, Vt) ?? P(this, Vt, `${this.localName}#${this.id || ++Si}`);
599
- return P(this, Be, t.forInstance(o, () => h(this, ie)));
597
+ return Oi;
598
+ const o = h(this, Rt) ?? I(this, Rt, `${this.localName}#${this.id || ++Ii}`);
599
+ return I(this, Be, t.forInstance(o, () => h(this, ie)));
600
600
  }
601
601
  /**
602
602
  * Turn on verbose logging for THIS element only (default `debug`), independent
@@ -604,11 +604,11 @@ const xe = class xe extends Ci {
604
604
  * picks one instance. Pairs with {@link disableLogging}.
605
605
  */
606
606
  enableLogging(t = "debug") {
607
- P(this, ie, t);
607
+ I(this, ie, t);
608
608
  }
609
609
  /** Clear this element's logging override (falls back to the type-level level). */
610
610
  disableLogging() {
611
- P(this, ie, void 0);
611
+ I(this, ie, void 0);
612
612
  }
613
613
  /** Whether this element has an active logging override (not unset/`silent`). */
614
614
  get isLoggingEnabled() {
@@ -732,7 +732,7 @@ const xe = class xe extends Ci {
732
732
  if (typeof this.attachInternals != "function")
733
733
  return null;
734
734
  try {
735
- return P(this, Re, this.attachInternals());
735
+ return I(this, Re, this.attachInternals());
736
736
  } catch {
737
737
  return null;
738
738
  }
@@ -762,8 +762,8 @@ const xe = class xe extends Ci {
762
762
  * `emit` does not call it separately.
763
763
  */
764
764
  emit(t, o, i) {
765
- const r = h(this, lt).get(t);
766
- return yi(this, t, o, {
765
+ const r = h(this, ct).get(t);
766
+ return _i(this, t, o, {
767
767
  bubbles: (i == null ? void 0 : i.bubbles) ?? (r == null ? void 0 : r.bubbles),
768
768
  composed: (i == null ? void 0 : i.composed) ?? (r == null ? void 0 : r.composed),
769
769
  cancelable: (i == null ? void 0 : i.cancelable) ?? (r == null ? void 0 : r.cancelable)
@@ -801,8 +801,8 @@ const xe = class xe extends Ci {
801
801
  }
802
802
  }
803
803
  };
804
- me = new WeakMap(), at = new WeakMap(), _e = new WeakMap(), lt = new WeakMap(), ke = new WeakMap(), ct = new WeakMap(), $t = new WeakMap(), Ce = new WeakMap(), pe = new WeakMap(), Se = new WeakMap(), Te = new WeakMap(), ze = new WeakMap(), Ne = new WeakMap(), $e = new WeakMap(), Ve = new WeakMap(), De = new WeakMap(), Re = new WeakMap(), Vt = new WeakMap(), ie = new WeakMap(), Be = new WeakMap(), I = new WeakSet(), // ── internals ─────────────────────────────────────────────────────────────
805
- ro = function(t) {
804
+ me = new WeakMap(), lt = new WeakMap(), _e = new WeakMap(), ct = new WeakMap(), ke = new WeakMap(), dt = new WeakMap(), Dt = new WeakMap(), Ce = new WeakMap(), pe = new WeakMap(), Se = new WeakMap(), Te = new WeakMap(), ze = new WeakMap(), Ne = new WeakMap(), $e = new WeakMap(), Ve = new WeakMap(), De = new WeakMap(), Re = new WeakMap(), Rt = new WeakMap(), ie = new WeakMap(), Be = new WeakMap(), P = new WeakSet(), // ── internals ─────────────────────────────────────────────────────────────
805
+ ao = function(t) {
806
806
  var o;
807
807
  for (const i of t) {
808
808
  let r = i.default;
@@ -810,25 +810,25 @@ ro = function(t) {
810
810
  try {
811
811
  r = i.converter.fromAttribute(null, this, i.attribute ?? i.configKey);
812
812
  } catch (n) {
813
- b(this, I, Q).call(this, `converter for "${i.configKey}" threw computing its default; using \`default\``, n), r = i.default;
813
+ b(this, P, Q).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
- }, no = function(t) {
817
+ }, lo = 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
- ao = function(t, o) {
820
+ co = function(t, o) {
821
821
  var l;
822
822
  const i = this.constructor;
823
- if (Is.has(i))
823
+ if (Os.has(i))
824
824
  return;
825
- Is.add(i);
825
+ Os.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) && b(this, I, Q).call(this, `invalid input table: duplicate configKey "${c.configKey}"`), r.add(c.configKey), c.attribute && (n.has(c.attribute) && b(this, I, Q).call(this, `invalid input table: duplicate attribute "${c.attribute}"`), n.add(c.attribute)), c.reflect && !c.attribute && b(this, I, Q).call(this, `invalid input table: "${c.configKey}" has reflect:true but no attribute to reflect to`), c.reflect && !((l = c.converter) != null && l.toAttribute) && b(this, I, Q).call(this, `invalid input table: "${c.configKey}" has reflect:true but its converter has no toAttribute`);
828
+ r.has(c.configKey) && b(this, P, Q).call(this, `invalid input table: duplicate configKey "${c.configKey}"`), r.add(c.configKey), c.attribute && (n.has(c.attribute) && b(this, P, Q).call(this, `invalid input table: duplicate attribute "${c.attribute}"`), n.add(c.attribute)), c.reflect && !c.attribute && b(this, P, Q).call(this, `invalid input table: "${c.configKey}" has reflect:true but no attribute to reflect to`), c.reflect && !((l = c.converter) != null && l.toAttribute) && b(this, P, Q).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) && b(this, I, Q).call(this, `invalid event table: duplicate event "${c.name}"`), a.add(c.name), /^[a-z][a-z0-9-]*$/.test(c.name) || b(this, I, Q).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, I, Q).call(this, `invalid event table: event "${c.name}" property "${c.property}" collides with an input configKey`);
831
+ a.has(c.name) && b(this, P, Q).call(this, `invalid event table: duplicate event "${c.name}"`), a.add(c.name), /^[a-z][a-z0-9-]*$/.test(c.name) || b(this, P, Q).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, P, Q).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,22 +836,22 @@ ao = function(t, o) {
836
836
  */
837
837
  Q = function(t, ...o) {
838
838
  console.warn(`[BlissElement] <${this.localName ?? "unknown"}> ${t}`, ...o);
839
- }, lo = function(t) {
839
+ }, ho = 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) => b(this, I, Jt).call(this, o, a)
847
- }), r && ((h(this, ze) ?? P(this, ze, /* @__PURE__ */ new Set())).add(i), this[i] = n);
846
+ set: (a) => b(this, P, Zt).call(this, o, a)
847
+ }), r && ((h(this, ze) ?? I(this, ze, /* @__PURE__ */ new Set())).add(i), this[i] = n);
848
848
  }
849
849
  }, /**
850
850
  * Install a managed `on<Name>` handler property per event. Assigning it
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
- co = function(t) {
854
+ uo = function(t) {
855
855
  for (const o of t) {
856
856
  const i = o.property;
857
857
  if (!i)
@@ -871,38 +871,38 @@ co = function(t) {
871
871
  }
872
872
  }), n && (this[i] = a);
873
873
  }
874
- }, Jt = function(t, o) {
874
+ }, Zt = function(t, o) {
875
875
  var r;
876
- const i = Uo(t, o);
876
+ const i = qo(t, o);
877
877
  if (!i) {
878
- b(this, I, Q).call(this, `rejected invalid value for property "${t.configKey}"; keeping previous value`, o);
878
+ b(this, P, Q).call(this, `rejected invalid value for property "${t.configKey}"; keeping previous value`, o);
879
879
  return;
880
880
  }
881
- if (b(this, I, Qt).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
881
+ if (b(this, P, es).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
882
882
  const n = t.converter.toAttribute(i.value);
883
- P(this, Ne, !0);
883
+ I(this, Ne, !0);
884
884
  try {
885
885
  n === null ? this.removeAttribute(t.attribute) : this.setAttribute(t.attribute, n);
886
886
  } finally {
887
- P(this, Ne, !1);
887
+ I(this, Ne, !1);
888
888
  }
889
889
  }
890
- }, Qt = function(t) {
891
- h(this, me)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" && P(this, pe, !0), (h(this, Ce) ?? P(this, Ce, {}))[t.configKey] = t.value, h(this, ct).schedule(h(this, $t)));
890
+ }, es = function(t) {
891
+ h(this, me)[t.configKey] = t.value, t.field && (this[t.field] = t.value), t.on !== "none" && (t.on === "reinit" && I(this, pe, !0), (h(this, Ce) ?? I(this, Ce, {}))[t.configKey] = t.value, h(this, dt).schedule(h(this, Dt)));
892
892
  }, /** Cancel any queued microtask and flush pending changes synchronously now. */
893
- Qe = function() {
894
- h(this, ct).cancel(), b(this, I, Zt).call(this);
895
- }, Zt = function() {
893
+ Ze = function() {
894
+ h(this, dt).cancel(), b(this, P, ts).call(this);
895
+ }, ts = function() {
896
896
  if (!this.isConnected)
897
897
  return;
898
898
  const t = h(this, pe), o = h(this, Ce);
899
- P(this, pe, !1), P(this, Ce, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), b(this, I, ho).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, P, mo).call(this);
900
900
  }, /** Resolve everyone awaiting {@link whenSettled} for the flush that just ran. */
901
- ho = function() {
901
+ mo = function() {
902
902
  if (h(this, Se).length === 0)
903
903
  return;
904
904
  const t = h(this, Se);
905
- P(this, Se, []);
905
+ I(this, Se, []);
906
906
  for (const o of t)
907
907
  o();
908
908
  }, /** The opt-in input table. Subclasses set this to enable attribute/property reactivity. */
@@ -912,11 +912,11 @@ p(xe, "inputs"), /**
912
912
  * {@link emit} can fire and installs a managed `on<Name>` handler property.
913
913
  */
914
914
  p(xe, "events");
915
- let Yt = xe;
916
- function Ps(s, e, t) {
915
+ let Qt = xe;
916
+ function Ms(s, e, t) {
917
917
  typeof customElements > "u" || customElements.get(s) || customElements.define(s, e, t);
918
918
  }
919
- function Pi(s) {
919
+ function Mi(s) {
920
920
  return {
921
921
  enableLogging: (e) => s.enableLogging(e),
922
922
  disableLogging: () => s.disableLogging(),
@@ -925,45 +925,45 @@ function Pi(s) {
925
925
  getCategories: () => [...s.LOGGING_CATEGORIES]
926
926
  };
927
927
  }
928
- function Oi(s, e, t) {
928
+ function Li(s, e, t) {
929
929
  const { config: o, logging: i, shouldAutoDefine: r = !0 } = t;
930
- i && vi(s, i);
930
+ i && yi(s, i);
931
931
  const n = {
932
932
  version: () => o.version,
933
933
  config: o,
934
- ...i ? { logging: Pi(i) } : {},
935
- register: () => Ps(s, e),
936
- getInstances: () => bi(s)
934
+ ...i ? { logging: Mi(i) } : {},
935
+ register: () => Ms(s, e),
936
+ getInstances: () => wi(s)
937
937
  };
938
- return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && Ps(s, e), n;
938
+ return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && Ms(s, e), n;
939
939
  }
940
- const Os = /* @__PURE__ */ new Map(), Ms = /* @__PURE__ */ new WeakMap();
941
- let mt;
942
- function Mi(s) {
940
+ const Ls = /* @__PURE__ */ new Map(), Es = /* @__PURE__ */ new WeakMap();
941
+ let pt;
942
+ function Ei(s) {
943
943
  if (typeof CSSStyleSheet > "u" || !("adoptedStyleSheets" in s))
944
944
  return !1;
945
- if (mt === void 0)
945
+ if (pt === void 0)
946
946
  try {
947
- new CSSStyleSheet().replaceSync(""), mt = !0;
947
+ new CSSStyleSheet().replaceSync(""), pt = !0;
948
948
  } catch {
949
- mt = !1;
949
+ pt = !1;
950
950
  }
951
- return mt;
951
+ return pt;
952
952
  }
953
- function Li(s, ...e) {
953
+ function Ai(s, ...e) {
954
954
  if (typeof document > "u")
955
955
  return;
956
- let t = Ms.get(s);
957
- t || Ms.set(s, t = /* @__PURE__ */ new Set());
956
+ let t = Es.get(s);
957
+ t || Es.set(s, t = /* @__PURE__ */ new Set());
958
958
  const o = e.filter((r) => r && !t.has(r));
959
959
  if (o.length === 0)
960
960
  return;
961
961
  for (const r of o)
962
962
  t.add(r);
963
- if (Mi(s)) {
963
+ if (Ei(s)) {
964
964
  const r = o.map((n) => {
965
- let a = Os.get(n);
966
- return a || (a = new CSSStyleSheet(), a.replaceSync(n), Os.set(n, a)), a;
965
+ let a = Ls.get(n);
966
+ return a || (a = new CSSStyleSheet(), a.replaceSync(n), Ls.set(n, a)), a;
967
967
  });
968
968
  s.adoptedStyleSheets = [...s.adoptedStyleSheets, ...r];
969
969
  return;
@@ -974,7 +974,7 @@ function Li(s, ...e) {
974
974
  n.textContent = r, i.appendChild(n);
975
975
  }
976
976
  }
977
- function Ei(s, e = {}) {
977
+ function zi(s, e = {}) {
978
978
  const t = e.position ?? "last", o = s.head ?? s;
979
979
  let i = null;
980
980
  const r = () => typeof document > "u" ? null : (i || (i = document.createElement("style"), e.className && (i.className = e.className)), i.parentNode !== o && (t === "first" && o.firstChild ? o.insertBefore(i, o.firstChild) : o.appendChild(i)), i), n = () => {
@@ -995,65 +995,65 @@ function Ei(s, e = {}) {
995
995
  }
996
996
  };
997
997
  }
998
- function uo(s) {
998
+ function po(s) {
999
999
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1000
1000
  }
1001
- function Ai(s, e) {
1002
- const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${uo(e)}[a-z0-9-]+)`, "gi");
1001
+ function Ni(s, e) {
1002
+ const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${po(e)}[a-z0-9-]+)`, "gi");
1003
1003
  let i;
1004
1004
  for (; i = o.exec(s); )
1005
1005
  i[1] && t.add(i[1]);
1006
1006
  return t;
1007
1007
  }
1008
- function zi(s, e) {
1009
- const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${uo(e)}[a-z0-9-]+)\\s*:`, "gi");
1008
+ function $i(s, e) {
1009
+ const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${po(e)}[a-z0-9-]+)\\s*:`, "gi");
1010
1010
  let i;
1011
1011
  for (; i = o.exec(s); )
1012
1012
  i[1] && t.add(i[1]);
1013
1013
  return [...t];
1014
1014
  }
1015
- function Ni(s, e, t = {}) {
1015
+ function Vi(s, e, t = {}) {
1016
1016
  const o = t.minScore ?? 3, i = t.limit ?? 3, r = new Set(s.split("-").filter(Boolean));
1017
1017
  return [...e].map((n) => ({ k: n, score: n.split("-").filter((a) => r.has(a)).length })).filter((n) => n.score >= o).sort((n, a) => a.score - n.score).slice(0, i).map((n) => n.k);
1018
1018
  }
1019
- function $i(s, e) {
1019
+ function Di(s, e) {
1020
1020
  if (e.consumed.size === 0)
1021
1021
  return [];
1022
1022
  const t = [];
1023
- for (const o of zi(s, e.prefix))
1024
- e.consumed.has(o) || t.push({ name: o, suggestions: Ni(o, e.consumed, { minScore: e.minScore }) });
1023
+ for (const o of $i(s, e.prefix))
1024
+ e.consumed.has(o) || t.push({ name: o, suggestions: Vi(o, e.consumed, { minScore: e.minScore }) });
1025
1025
  return t;
1026
1026
  }
1027
- const Vi = {
1027
+ const Ri = {
1028
1028
  mobile: "fullscreen",
1029
1029
  tablet: "floating",
1030
1030
  desktop: "floating"
1031
1031
  };
1032
- function Di(s, e, t = {}) {
1032
+ function Bi(s, e, t = {}) {
1033
1033
  if (s !== "auto")
1034
1034
  return s;
1035
- const o = ai(e);
1036
- return t[o] ?? Vi[o];
1035
+ const o = ci(e);
1036
+ return t[o] ?? Ri[o];
1037
1037
  }
1038
- function jt(s) {
1038
+ function Gt(s) {
1039
1039
  return {
1040
1040
  presentation: s,
1041
1041
  isFullscreen: s === "fullscreen",
1042
1042
  isModal: s === "modal"
1043
1043
  };
1044
1044
  }
1045
- let Ge = 0, pt = null;
1046
- function Ri() {
1045
+ let qe = 0, ft = null;
1046
+ function Hi() {
1047
1047
  if (typeof document > "u")
1048
1048
  return () => {
1049
1049
  };
1050
- Ge === 0 && (pt = document.body.style.overflow, document.body.style.overflow = "hidden"), Ge++;
1050
+ qe === 0 && (ft = document.body.style.overflow, document.body.style.overflow = "hidden"), qe++;
1051
1051
  let s = !1;
1052
1052
  return () => {
1053
- s || (s = !0, Ge = Math.max(0, Ge - 1), Ge === 0 && pt !== null && (document.body.style.overflow = pt, pt = null));
1053
+ s || (s = !0, qe = Math.max(0, qe - 1), qe === 0 && ft !== null && (document.body.style.overflow = ft, ft = null));
1054
1054
  };
1055
1055
  }
1056
- function Bi(s) {
1056
+ function Fi(s) {
1057
1057
  const e = typeof window < "u" ? window.visualViewport : null;
1058
1058
  if (!e)
1059
1059
  return () => {
@@ -1068,39 +1068,39 @@ function Bi(s) {
1068
1068
  e.removeEventListener("resize", i), e.removeEventListener("scroll", i), s.style.height = "", s.style.top = "";
1069
1069
  };
1070
1070
  }
1071
- const ps = "km-overlay-activated", Hi = Symbol("km-overlay-all-groups"), Ot = /* @__PURE__ */ new Set(), qe = /* @__PURE__ */ new Map();
1072
- let Mt = !1;
1073
- function fs() {
1071
+ const gs = "km-overlay-activated", Ki = Symbol("km-overlay-all-groups"), Lt = /* @__PURE__ */ new Set(), Xe = /* @__PURE__ */ new Map();
1072
+ let Et = !1;
1073
+ function bs() {
1074
1074
  return typeof document < "u";
1075
1075
  }
1076
- function Fi(s, e) {
1077
- return e === Hi || s === e;
1076
+ function Wi(s, e) {
1077
+ return e === Ki || s === e;
1078
1078
  }
1079
- function mo(s) {
1079
+ function fo(s) {
1080
1080
  const e = s.detail, t = e == null ? void 0 : e.source, o = e == null ? void 0 : e.group;
1081
- for (const i of Array.from(Ot))
1082
- i.id !== t && Fi(i.group, o) && i.dismiss();
1081
+ for (const i of Array.from(Lt))
1082
+ i.id !== t && Wi(i.group, o) && i.dismiss();
1083
1083
  }
1084
- function Ki() {
1085
- Mt || !fs() || (document.addEventListener(ps, mo), Mt = !0);
1084
+ function ji() {
1085
+ Et || !bs() || (document.addEventListener(gs, fo), Et = !0);
1086
1086
  }
1087
- function Wi() {
1088
- Mt && Ot.size === 0 && fs() && (document.removeEventListener(ps, mo), Mt = !1);
1087
+ function Ui() {
1088
+ Et && Lt.size === 0 && bs() && (document.removeEventListener(gs, fo), Et = !1);
1089
1089
  }
1090
- function ji(s, e) {
1091
- fs() && document.dispatchEvent(new CustomEvent(ps, { detail: { source: s, group: e } }));
1090
+ function Gi(s, e) {
1091
+ bs() && document.dispatchEvent(new CustomEvent(gs, { detail: { source: s, group: e } }));
1092
1092
  }
1093
- function Ui(s, e) {
1093
+ function qi(s, e) {
1094
1094
  const t = { id: {}, group: e, dismiss: s };
1095
- return Ot.add(t), Ki(), {
1095
+ return Lt.add(t), ji(), {
1096
1096
  activate() {
1097
- qe.set(t.group, t), ji(t.id, t.group);
1097
+ Xe.set(t.group, t), Gi(t.id, t.group);
1098
1098
  },
1099
1099
  deactivate() {
1100
- qe.get(t.group) === t && qe.delete(t.group);
1100
+ Xe.get(t.group) === t && Xe.delete(t.group);
1101
1101
  },
1102
1102
  dispose() {
1103
- Ot.delete(t), qe.get(t.group) === t && qe.delete(t.group), Wi();
1103
+ Lt.delete(t), Xe.get(t.group) === t && Xe.delete(t.group), Ui();
1104
1104
  }
1105
1105
  };
1106
1106
  }
@@ -1111,21 +1111,21 @@ const U = {
1111
1111
  WARN: 3,
1112
1112
  ERROR: 4,
1113
1113
  SILENT: 5
1114
- }, Ls = ["trace", "debug", "info", "warn", "error"], Lt = () => {
1114
+ }, As = ["trace", "debug", "info", "warn", "error"], At = () => {
1115
1115
  };
1116
- let Gi = "km-log";
1117
- function Es(s) {
1116
+ let Xi = "km-log";
1117
+ function zs(s) {
1118
1118
  const t = console[s];
1119
- return typeof t == "function" ? t.bind(console) : Lt;
1119
+ return typeof t == "function" ? t.bind(console) : At;
1120
1120
  }
1121
- function qi(s) {
1121
+ function Yi(s) {
1122
1122
  if (s === "debug" && (s = "log"), typeof console > "u")
1123
- return Lt;
1123
+ return At;
1124
1124
  const e = console;
1125
- return e[s] !== void 0 ? Es(s) : e.log !== void 0 ? Es("log") : Lt;
1125
+ return e[s] !== void 0 ? zs(s) : e.log !== void 0 ? zs("log") : At;
1126
1126
  }
1127
- const Xi = (s) => qi(s);
1128
- function Xe(s) {
1127
+ const Ji = (s) => Yi(s);
1128
+ function Ye(s) {
1129
1129
  let e = s;
1130
1130
  const t = U;
1131
1131
  if (typeof e == "string" && t[e.toUpperCase()] !== void 0 && (e = t[e.toUpperCase()]), typeof e == "number" && e >= 0 && e <= U.SILENT)
@@ -1133,8 +1133,8 @@ function Xe(s) {
1133
1133
  throw new TypeError(`setLevel() called with an invalid level: ${String(s)}`);
1134
1134
  }
1135
1135
  let ue;
1136
- const Et = {};
1137
- class po {
1136
+ const zt = {};
1137
+ class go {
1138
1138
  constructor(e, t) {
1139
1139
  p(this, "name");
1140
1140
  p(this, "levels", U);
@@ -1152,18 +1152,18 @@ class po {
1152
1152
  p(this, "defaultLevel", null);
1153
1153
  /** Optional user-set level; overrides default. */
1154
1154
  p(this, "userLevel", null);
1155
- this.name = e, this.methodFactory = t, this.inheritedLevel = Xe(ue ? ue.getLevel() : "WARN");
1155
+ this.name = e, this.methodFactory = t, this.inheritedLevel = Ye(ue ? ue.getLevel() : "WARN");
1156
1156
  const o = this.getPersistedLevel();
1157
- o != null && (this.userLevel = Xe(o)), this.replaceLoggingMethods();
1157
+ o != null && (this.userLevel = Ye(o)), this.replaceLoggingMethods();
1158
1158
  }
1159
1159
  storageKey() {
1160
- return typeof this.name == "string" ? `${Gi}:${this.name}` : void 0;
1160
+ return typeof this.name == "string" ? `${Xi}:${this.name}` : void 0;
1161
1161
  }
1162
1162
  persist(e) {
1163
1163
  const t = this.storageKey();
1164
1164
  if (typeof window > "u" || !t)
1165
1165
  return;
1166
- const o = (Ls[e] ?? "silent").toUpperCase();
1166
+ const o = (As[e] ?? "silent").toUpperCase();
1167
1167
  try {
1168
1168
  window.localStorage[t] = o;
1169
1169
  } catch {
@@ -1191,18 +1191,18 @@ class po {
1191
1191
  }
1192
1192
  replaceLoggingMethods() {
1193
1193
  const e = this.getLevel();
1194
- Ls.forEach((t, o) => {
1195
- this[t] = o < e ? Lt : this.methodFactory(t, e, this.name);
1194
+ As.forEach((t, o) => {
1195
+ this[t] = o < e ? At : this.methodFactory(t, e, this.name);
1196
1196
  }), this.log = this.debug;
1197
1197
  }
1198
1198
  getLevel() {
1199
1199
  return this.userLevel != null ? this.userLevel : this.defaultLevel != null ? this.defaultLevel : this.inheritedLevel;
1200
1200
  }
1201
1201
  setLevel(e, t) {
1202
- this.userLevel = Xe(e), t !== !1 && this.persist(this.userLevel), this.replaceLoggingMethods();
1202
+ this.userLevel = Ye(e), t !== !1 && this.persist(this.userLevel), this.replaceLoggingMethods();
1203
1203
  }
1204
1204
  setDefaultLevel(e) {
1205
- this.defaultLevel = Xe(e), this.getPersistedLevel() || this.setLevel(e, !1);
1205
+ this.defaultLevel = Ye(e), this.getPersistedLevel() || this.setLevel(e, !1);
1206
1206
  }
1207
1207
  resetLevel() {
1208
1208
  this.userLevel = null, this.clearPersisted(), this.replaceLoggingMethods();
@@ -1214,19 +1214,19 @@ class po {
1214
1214
  this.setLevel(U.SILENT, e);
1215
1215
  }
1216
1216
  rebuild() {
1217
- if (ue && ue !== this && (this.inheritedLevel = Xe(ue.getLevel())), this.replaceLoggingMethods(), ue === this)
1218
- for (const e in Et)
1219
- Et[e].rebuild();
1217
+ if (ue && ue !== this && (this.inheritedLevel = Ye(ue.getLevel())), this.replaceLoggingMethods(), ue === this)
1218
+ for (const e in zt)
1219
+ zt[e].rebuild();
1220
1220
  }
1221
1221
  }
1222
- ue = new po(void 0, Xi);
1223
- function Yi(s) {
1222
+ ue = new go(void 0, Ji);
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
- let e = Et[s];
1227
- return e || (e = Et[s] = new po(s, ue.methodFactory)), e;
1226
+ let e = zt[s];
1227
+ return e || (e = zt[s] = new go(s, ue.methodFactory)), e;
1228
1228
  }
1229
- const Ji = ["INIT", "DATA", "UI"], Qi = "debug", As = [
1229
+ const Zi = ["INIT", "DATA", "UI"], er = "debug", Ns = [
1230
1230
  "#4c8bf5",
1231
1231
  // blue
1232
1232
  "#2ea043",
@@ -1243,43 +1243,43 @@ const Ji = ["INIT", "DATA", "UI"], Qi = "debug", As = [
1243
1243
  // teal
1244
1244
  "#8a6d3b"
1245
1245
  // brown
1246
- ], zs = /* @__PURE__ */ new WeakSet();
1247
- function Zi(s, e, t) {
1248
- if (zs.has(s))
1246
+ ], $s = /* @__PURE__ */ new WeakSet();
1247
+ function tr(s, e, t) {
1248
+ if ($s.has(s))
1249
1249
  return;
1250
- zs.add(s);
1250
+ $s.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);
1254
1254
  return (...c) => l(`%c[${e}]`, i, ...c);
1255
1255
  }, s.setLevel(s.getLevel(), !1);
1256
1256
  }
1257
- function er(s) {
1257
+ function sr(s) {
1258
1258
  return typeof s == "number" ? s : U[s.toUpperCase()] ?? U.SILENT;
1259
1259
  }
1260
- const tr = [
1260
+ const or = [
1261
1261
  ["trace", U.TRACE, "debug"],
1262
1262
  ["debug", U.DEBUG, "debug"],
1263
1263
  ["info", U.INFO, "info"],
1264
1264
  ["warn", U.WARN, "warn"],
1265
1265
  ["error", U.ERROR, "error"]
1266
1266
  ];
1267
- function sr(s, e, t) {
1267
+ function ir(s, e, t) {
1268
1268
  const o = `color:${s.color};font-weight:bold`, i = "color:#888", r = {};
1269
- for (const [n, a, l] of tr)
1269
+ for (const [n, a, l] of or)
1270
1270
  r[n] = (...c) => {
1271
- const d = t(), u = Math.min(s.logger.getLevel(), d == null ? U.SILENT : er(d));
1271
+ const d = t(), u = Math.min(s.logger.getLevel(), d == null ? U.SILENT : sr(d));
1272
1272
  if (a < u)
1273
1273
  return;
1274
1274
  (console[l] ?? console.log).bind(console)(`%c[${s.label}]%c ${e}`, o, i, ...c);
1275
1275
  };
1276
1276
  return r;
1277
1277
  }
1278
- function or(s, e = Ji) {
1278
+ function rr(s, e = Zi) {
1279
1279
  const t = {}, o = {};
1280
1280
  e.forEach((r, n) => {
1281
- const a = `${s}:${r}`, l = As[n % As.length], c = Yi(a);
1282
- Zi(c, a, l), t[r] = c, o[r] = { label: a, color: l, logger: c };
1281
+ const a = `${s}:${r}`, l = Ns[n % Ns.length], c = Qi(a);
1282
+ tr(c, a, l), t[r] = c, o[r] = { label: a, color: l, logger: c };
1283
1283
  });
1284
1284
  const i = (r) => {
1285
1285
  for (const n of e)
@@ -1288,7 +1288,7 @@ function or(s, e = Ji) {
1288
1288
  return {
1289
1289
  loggers: t,
1290
1290
  LOGGING_CATEGORIES: e,
1291
- enableLogging(r = Qi) {
1291
+ enableLogging(r = er) {
1292
1292
  i(r);
1293
1293
  },
1294
1294
  disableLogging() {
@@ -1304,81 +1304,81 @@ function or(s, e = Ji) {
1304
1304
  forInstance(r, n) {
1305
1305
  const a = {};
1306
1306
  for (const l of e)
1307
- a[l] = sr(o[l], r, n);
1307
+ a[l] = ir(o[l], r, n);
1308
1308
  return a;
1309
1309
  }
1310
1310
  };
1311
1311
  }
1312
- const be = Math.min, ne = Math.max, At = Math.round, ft = Math.floor, ae = (s) => ({
1312
+ const be = Math.min, ne = Math.max, Nt = Math.round, gt = Math.floor, ae = (s) => ({
1313
1313
  x: s,
1314
1314
  y: s
1315
- }), ir = {
1315
+ }), nr = {
1316
1316
  left: "right",
1317
1317
  right: "left",
1318
1318
  bottom: "top",
1319
1319
  top: "bottom"
1320
1320
  };
1321
- function fo(s, e, t) {
1321
+ function bo(s, e, t) {
1322
1322
  return ne(s, be(e, t));
1323
1323
  }
1324
- function Ke(s, e) {
1324
+ function We(s, e) {
1325
1325
  return typeof s == "function" ? s(e) : s;
1326
1326
  }
1327
1327
  function Oe(s) {
1328
1328
  return s.split("-")[0];
1329
1329
  }
1330
- function We(s) {
1330
+ function je(s) {
1331
1331
  return s.split("-")[1];
1332
1332
  }
1333
- function go(s) {
1333
+ function vo(s) {
1334
1334
  return s === "x" ? "y" : "x";
1335
1335
  }
1336
- function gs(s) {
1336
+ function vs(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 bs(s) {
1344
- return go(re(s));
1343
+ function ws(s) {
1344
+ return vo(re(s));
1345
1345
  }
1346
- function rr(s, e, t) {
1346
+ function ar(s, e, t) {
1347
1347
  t === void 0 && (t = !1);
1348
- const o = We(s), i = bs(s), r = gs(i);
1348
+ const o = je(s), i = ws(s), r = vs(i);
1349
1349
  let n = i === "x" ? o === (t ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
1350
- return e.reference[r] > e.floating[r] && (n = zt(n)), [n, zt(n)];
1350
+ return e.reference[r] > e.floating[r] && (n = $t(n)), [n, $t(n)];
1351
1351
  }
1352
- function nr(s) {
1353
- const e = zt(s);
1354
- return [es(s), e, es(e)];
1352
+ function lr(s) {
1353
+ const e = $t(s);
1354
+ return [ss(s), e, ss(e)];
1355
1355
  }
1356
- function es(s) {
1356
+ function ss(s) {
1357
1357
  return s.includes("start") ? s.replace("start", "end") : s.replace("end", "start");
1358
1358
  }
1359
- const Ns = ["left", "right"], $s = ["right", "left"], ar = ["top", "bottom"], lr = ["bottom", "top"];
1360
- function cr(s, e, t) {
1359
+ const Vs = ["left", "right"], Ds = ["right", "left"], cr = ["top", "bottom"], dr = ["bottom", "top"];
1360
+ function hr(s, e, t) {
1361
1361
  switch (s) {
1362
1362
  case "top":
1363
1363
  case "bottom":
1364
- return t ? e ? $s : Ns : e ? Ns : $s;
1364
+ return t ? e ? Ds : Vs : e ? Vs : Ds;
1365
1365
  case "left":
1366
1366
  case "right":
1367
- return e ? ar : lr;
1367
+ return e ? cr : dr;
1368
1368
  default:
1369
1369
  return [];
1370
1370
  }
1371
1371
  }
1372
- function dr(s, e, t, o) {
1373
- const i = We(s);
1374
- let r = cr(Oe(s), t === "start", o);
1375
- return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(es)))), r;
1372
+ function ur(s, e, t, o) {
1373
+ const i = je(s);
1374
+ let r = hr(Oe(s), t === "start", o);
1375
+ return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(ss)))), r;
1376
1376
  }
1377
- function zt(s) {
1377
+ function $t(s) {
1378
1378
  const e = Oe(s);
1379
- return ir[e] + s.slice(e.length);
1379
+ return nr[e] + s.slice(e.length);
1380
1380
  }
1381
- function hr(s) {
1381
+ function mr(s) {
1382
1382
  var e, t, o, i;
1383
1383
  return {
1384
1384
  top: (e = s.top) != null ? e : 0,
@@ -1387,15 +1387,15 @@ function hr(s) {
1387
1387
  left: (i = s.left) != null ? i : 0
1388
1388
  };
1389
1389
  }
1390
- function bo(s) {
1391
- return typeof s != "number" ? hr(s) : {
1390
+ function wo(s) {
1391
+ return typeof s != "number" ? mr(s) : {
1392
1392
  top: s,
1393
1393
  right: s,
1394
1394
  bottom: s,
1395
1395
  left: s
1396
1396
  };
1397
1397
  }
1398
- function Nt(s) {
1398
+ function Vt(s) {
1399
1399
  const {
1400
1400
  x: e,
1401
1401
  y: t,
@@ -1413,12 +1413,12 @@ function Nt(s) {
1413
1413
  y: t
1414
1414
  };
1415
1415
  }
1416
- function Vs(s, e, t) {
1416
+ function Rs(s, e, t) {
1417
1417
  let {
1418
1418
  reference: o,
1419
1419
  floating: i
1420
1420
  } = s;
1421
- const r = re(e), n = bs(e), a = gs(n), l = Oe(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 = ws(e), a = vs(n), l = Oe(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 m;
1423
1423
  switch (l) {
1424
1424
  case "top":
@@ -1451,10 +1451,10 @@ function Vs(s, e, t) {
1451
1451
  y: o.y
1452
1452
  };
1453
1453
  }
1454
- const g = We(e);
1454
+ const g = je(e);
1455
1455
  return g && (m[n] += f * (g === "end" ? 1 : -1) * (t && c ? -1 : 1)), m;
1456
1456
  }
1457
- async function ur(s, e) {
1457
+ async function pr(s, e) {
1458
1458
  var t;
1459
1459
  e === void 0 && (e = {});
1460
1460
  const {
@@ -1470,8 +1470,8 @@ async function ur(s, e) {
1470
1470
  elementContext: u = "floating",
1471
1471
  altBoundary: f = !1,
1472
1472
  padding: m = 0
1473
- } = Ke(e, s), g = bo(m), y = a[f ? u === "floating" ? "reference" : "floating" : u], v = Nt(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
+ } = We(e, s), g = wo(m), x = a[f ? u === "floating" ? "reference" : "floating" : u], v = Vt(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,7 +1483,7 @@ async function ur(s, e) {
1483
1483
  } : n.reference, C = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a.floating)), E = await (r.isElement == null ? void 0 : r.isElement(C)) && await (r.getScale == null ? void 0 : r.getScale(C)) || {
1484
1484
  x: 1,
1485
1485
  y: 1
1486
- }, z = Nt(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
1486
+ }, z = Vt(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
1487
1487
  elements: a,
1488
1488
  rect: _,
1489
1489
  offsetParent: C,
@@ -1496,7 +1496,7 @@ async function ur(s, e) {
1496
1496
  right: (z.right - v.right + g.right) / E.x
1497
1497
  };
1498
1498
  }
1499
- const mr = 50, pr = async (s, e, t) => {
1499
+ const fr = 50, gr = async (s, e, t) => {
1500
1500
  const {
1501
1501
  placement: o = "bottom",
1502
1502
  strategy: i = "absolute",
@@ -1504,7 +1504,7 @@ const mr = 50, pr = async (s, e, t) => {
1504
1504
  platform: n
1505
1505
  } = t, a = n.detectOverflow ? n : {
1506
1506
  ...n,
1507
- detectOverflow: ur
1507
+ detectOverflow: pr
1508
1508
  }, l = await (n.isRTL == null ? void 0 : n.isRTL(e));
1509
1509
  let c = await n.getElementRects({
1510
1510
  reference: s,
@@ -1513,16 +1513,16 @@ const mr = 50, pr = async (s, e, t) => {
1513
1513
  }), {
1514
1514
  x: d,
1515
1515
  y: u
1516
- } = Vs(c, o, l), f = o, m = 0;
1516
+ } = Rs(c, o, l), f = o, m = 0;
1517
1517
  const g = {};
1518
- for (let w = 0; w < r.length; w++) {
1519
- const y = r[w];
1520
- if (!y)
1518
+ for (let y = 0; y < r.length; y++) {
1519
+ const x = r[y];
1520
+ if (!x)
1521
1521
  continue;
1522
1522
  const {
1523
1523
  name: v,
1524
1524
  fn: _
1525
- } = y, {
1525
+ } = x, {
1526
1526
  x: C,
1527
1527
  y: E,
1528
1528
  data: z,
@@ -1544,14 +1544,14 @@ const mr = 50, pr = async (s, e, t) => {
1544
1544
  d = C ?? d, u = E ?? u, g[v] = {
1545
1545
  ...g[v],
1546
1546
  ...z
1547
- }, D && m < mr && (m++, typeof D == "object" && (D.placement && (f = D.placement), D.rects && (c = D.rects === !0 ? await n.getElementRects({
1547
+ }, D && m < fr && (m++, 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,
1550
1550
  strategy: i
1551
1551
  }) : D.rects), {
1552
1552
  x: d,
1553
1553
  y: u
1554
- } = Vs(c, f, l)), w = -1);
1554
+ } = Rs(c, f, l)), y = -1);
1555
1555
  }
1556
1556
  return {
1557
1557
  x: d,
@@ -1560,7 +1560,7 @@ const mr = 50, pr = async (s, e, t) => {
1560
1560
  strategy: i,
1561
1561
  middlewareData: g
1562
1562
  };
1563
- }, fr = (s) => ({
1563
+ }, br = (s) => ({
1564
1564
  name: "arrow",
1565
1565
  options: s,
1566
1566
  async fn(e) {
@@ -1575,16 +1575,16 @@ const mr = 50, pr = async (s, e, t) => {
1575
1575
  } = e, {
1576
1576
  element: c,
1577
1577
  padding: d = 0
1578
- } = Ke(s, e) || {};
1578
+ } = We(s, e) || {};
1579
1579
  if (c == null)
1580
1580
  return {};
1581
- const u = bo(d), f = {
1581
+ const u = wo(d), f = {
1582
1582
  x: t,
1583
1583
  y: o
1584
- }, m = bs(i), g = gs(m), w = await n.getDimensions(c), y = m === "y", v = y ? "top" : "left", _ = y ? "bottom" : "right", C = y ? "clientHeight" : "clientWidth", E = r.reference[g] + r.reference[m] - f[m] - r.floating[g], z = f[m] - r.reference[m], D = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
1584
+ }, m = ws(i), g = vs(m), y = await n.getDimensions(c), x = m === "y", v = x ? "top" : "left", _ = x ? "bottom" : "right", C = x ? "clientHeight" : "clientWidth", E = r.reference[g] + r.reference[m] - f[m] - r.floating[g], z = f[m] - r.reference[m], D = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
1585
1585
  let W = D ? D[C] : 0;
1586
1586
  (!W || !await (n.isElement == null ? void 0 : n.isElement(D))) && (W = a.floating[C] || r.floating[g]);
1587
- const q = E / 2 - z / 2, V = W / 2 - w[g] / 2 - 1, S = be(u[v], V), O = be(u[_], V), M = W - w[g] - O, B = W / 2 - w[g] / 2 + q, T = fo(S, B, M), F = !l.arrow && We(i) != null && B !== T && r.reference[g] / 2 - (B < S ? S : O) - w[g] / 2 < 0, se = F ? B < S ? B - S : B - M : 0;
1587
+ const q = E / 2 - z / 2, V = W / 2 - y[g] / 2 - 1, S = be(u[v], V), O = be(u[_], V), L = W - y[g] - O, B = W / 2 - y[g] / 2 + q, T = bo(S, B, L), F = !l.arrow && je(i) != null && B !== T && r.reference[g] / 2 - (B < S ? S : O) - y[g] / 2 < 0, se = F ? B < S ? B - S : B - L : 0;
1588
1588
  return {
1589
1589
  [m]: f[m] + se,
1590
1590
  data: {
@@ -1597,7 +1597,7 @@ const mr = 50, pr = async (s, e, t) => {
1597
1597
  reset: F
1598
1598
  };
1599
1599
  }
1600
- }), gr = function(s) {
1600
+ }), vr = function(s) {
1601
1601
  return s === void 0 && (s = {}), {
1602
1602
  name: "flip",
1603
1603
  options: s,
@@ -1616,24 +1616,24 @@ const mr = 50, pr = async (s, e, t) => {
1616
1616
  fallbackPlacements: f,
1617
1617
  fallbackStrategy: m = "bestFit",
1618
1618
  fallbackAxisSideDirection: g = "none",
1619
- flipAlignment: w = !0,
1620
- ...y
1621
- } = Ke(s, e);
1619
+ flipAlignment: y = !0,
1620
+ ...x
1621
+ } = We(s, e);
1622
1622
  if ((t = r.arrow) != null && t.alignmentOffset)
1623
1623
  return {};
1624
- const v = Oe(i), _ = re(a), C = Oe(a) === a, E = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), z = f || (C || !w ? [zt(a)] : nr(a)), D = g !== "none";
1625
- !f && D && z.push(...dr(a, w, g, E));
1626
- const W = [a, ...z], q = await l.detectOverflow(e, y), V = [];
1624
+ const v = Oe(i), _ = re(a), C = Oe(a) === a, E = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), z = f || (C || !y ? [$t(a)] : lr(a)), D = g !== "none";
1625
+ !f && D && z.push(...ur(a, y, g, E));
1626
+ const W = [a, ...z], q = await l.detectOverflow(e, x), V = [];
1627
1627
  let S = ((o = r.flip) == null ? void 0 : o.overflows) || [];
1628
1628
  if (d && V.push(q[v]), u) {
1629
- const T = rr(i, n, E);
1629
+ const T = ar(i, n, E);
1630
1630
  V.push(q[T[0]], q[T[1]]);
1631
1631
  }
1632
1632
  if (S = [...S, {
1633
1633
  placement: i,
1634
1634
  overflows: V
1635
1635
  }], !V.every((T) => T <= 0)) {
1636
- var O, M;
1636
+ var O, L;
1637
1637
  const T = (((O = r.flip) == null ? void 0 : O.index) || 0) + 1, F = W[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 mr = 50, pr = async (s, e, t) => {
1647
1647
  placement: F
1648
1648
  }
1649
1649
  };
1650
- let se = (M = S.filter((we) => we.overflows[0] <= 0).sort((we, Y) => we.overflows[1] - Y.overflows[1])[0]) == null ? void 0 : M.placement;
1650
+ let se = (L = S.filter((we) => we.overflows[0] <= 0).sort((we, Y) => we.overflows[1] - Y.overflows[1])[0]) == null ? void 0 : L.placement;
1651
1651
  if (!se)
1652
1652
  switch (m) {
1653
1653
  case "bestFit": {
@@ -1660,7 +1660,7 @@ const mr = 50, pr = async (s, e, t) => {
1660
1660
  de === "y";
1661
1661
  }
1662
1662
  return !0;
1663
- }).map((Y) => [Y.placement, Y.overflows.filter((de) => de > 0).reduce((de, Vo) => de + Vo, 0)]).sort((Y, de) => Y[1] - de[1])[0]) == null ? void 0 : B[0];
1663
+ }).map((Y) => [Y.placement, Y.overflows.filter((de) => de > 0).reduce((de, Ro) => de + Ro, 0)]).sort((Y, de) => Y[1] - de[1])[0]) == null ? void 0 : B[0];
1664
1664
  we && (se = we);
1665
1665
  break;
1666
1666
  }
@@ -1678,13 +1678,13 @@ const mr = 50, pr = async (s, e, t) => {
1678
1678
  return {};
1679
1679
  }
1680
1680
  };
1681
- }, br = /* @__PURE__ */ new Set(["left", "top"]);
1682
- async function vr(s, e) {
1681
+ }, wr = /* @__PURE__ */ new Set(["left", "top"]);
1682
+ async function yr(s, e) {
1683
1683
  const {
1684
1684
  placement: t,
1685
1685
  platform: o,
1686
1686
  elements: i
1687
- } = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = Oe(t), a = We(t), l = re(t) === "y", c = br.has(n) ? -1 : 1, d = r && l ? -1 : 1, u = Ke(e, s);
1687
+ } = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = Oe(t), a = je(t), l = re(t) === "y", c = wr.has(n) ? -1 : 1, d = r && l ? -1 : 1, u = We(e, s);
1688
1688
  let {
1689
1689
  mainAxis: f,
1690
1690
  crossAxis: m,
@@ -1706,7 +1706,7 @@ async function vr(s, e) {
1706
1706
  y: m * d
1707
1707
  };
1708
1708
  }
1709
- const wr = function(s) {
1709
+ const xr = function(s) {
1710
1710
  return s === void 0 && (s = 0), {
1711
1711
  name: "offset",
1712
1712
  options: s,
@@ -1717,7 +1717,7 @@ const wr = function(s) {
1717
1717
  y: r,
1718
1718
  placement: n,
1719
1719
  middlewareData: a
1720
- } = e, l = await vr(e, s);
1720
+ } = e, l = await yr(e, s);
1721
1721
  return n === ((t = a.offset) == null ? void 0 : t.placement) && (o = a.arrow) != null && o.alignmentOffset ? {} : {
1722
1722
  x: i + l.x,
1723
1723
  y: r + l.y,
@@ -1728,7 +1728,7 @@ const wr = function(s) {
1728
1728
  };
1729
1729
  }
1730
1730
  };
1731
- }, yr = function(s) {
1731
+ }, _r = function(s) {
1732
1732
  return s === void 0 && (s = {}), {
1733
1733
  name: "shift",
1734
1734
  options: s,
@@ -1754,17 +1754,17 @@ const wr = function(s) {
1754
1754
  }
1755
1755
  },
1756
1756
  ...c
1757
- } = Ke(s, e), d = {
1757
+ } = We(s, e), d = {
1758
1758
  x: t,
1759
1759
  y: o
1760
- }, u = await r.detectOverflow(e, c), f = re(i), m = go(f);
1761
- let g = d[m], w = d[f];
1762
- const y = (_, C) => fo(C + u[_ === "y" ? "top" : "left"], C, C - u[_ === "y" ? "bottom" : "right"]);
1763
- n && (g = y(m, g)), a && (w = y(f, w));
1760
+ }, u = await r.detectOverflow(e, c), f = re(i), m = vo(f);
1761
+ let g = d[m], y = d[f];
1762
+ const x = (_, C) => bo(C + u[_ === "y" ? "top" : "left"], C, C - u[_ === "y" ? "bottom" : "right"]);
1763
+ n && (g = x(m, g)), a && (y = x(f, y));
1764
1764
  const v = l.fn({
1765
1765
  ...e,
1766
1766
  [m]: g,
1767
- [f]: w
1767
+ [f]: y
1768
1768
  });
1769
1769
  return {
1770
1770
  ...v,
@@ -1779,7 +1779,7 @@ const wr = function(s) {
1779
1779
  };
1780
1780
  }
1781
1781
  };
1782
- }, xr = function(s) {
1782
+ }, kr = function(s) {
1783
1783
  return s === void 0 && (s = {}), {
1784
1784
  name: "size",
1785
1785
  options: s,
@@ -1793,15 +1793,15 @@ const wr = function(s) {
1793
1793
  apply: n = () => {
1794
1794
  },
1795
1795
  ...a
1796
- } = Ke(s, e), l = await i.detectOverflow(e, a), c = Oe(t), d = We(t), u = re(t) === "y", {
1796
+ } = We(s, e), l = await i.detectOverflow(e, a), c = Oe(t), d = je(t), u = re(t) === "y", {
1797
1797
  width: f,
1798
1798
  height: m
1799
1799
  } = o.floating;
1800
- let g, w;
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 = m - l.top - l.bottom, v = f - l.left - l.right, _ = be(m - l[g], y), C = be(f - l[w], v), E = e.middlewareData.shift, z = !E;
1800
+ let g, y;
1801
+ c === "top" || c === "bottom" ? (g = c, y = d === (await (i.isRTL == null ? void 0 : i.isRTL(r.floating)) ? "start" : "end") ? "left" : "right") : (y = c, g = d === "end" ? "top" : "bottom");
1802
+ const x = m - l.top - l.bottom, v = f - l.left - l.right, _ = be(m - l[g], x), C = be(f - l[y], v), E = e.middlewareData.shift, z = !E;
1803
1803
  let D = _, W = C;
1804
- E != null && E.enabled.x && (W = v), E != null && E.enabled.y && (D = y), z && !d && (u ? W = f - 2 * ne(l.left, l.right) : D = m - 2 * ne(l.top, l.bottom)), await n({
1804
+ E != null && E.enabled.x && (W = v), E != null && E.enabled.y && (D = x), z && !d && (u ? W = f - 2 * ne(l.left, l.right) : D = m - 2 * ne(l.top, l.bottom)), await n({
1805
1805
  ...e,
1806
1806
  availableWidth: W,
1807
1807
  availableHeight: D
@@ -1815,11 +1815,11 @@ const wr = function(s) {
1815
1815
  }
1816
1816
  };
1817
1817
  };
1818
- function Dt() {
1818
+ function Bt() {
1819
1819
  return typeof window < "u";
1820
1820
  }
1821
- function je(s) {
1822
- return vo(s) ? (s.nodeName || "").toLowerCase() : "#document";
1821
+ function Ue(s) {
1822
+ return yo(s) ? (s.nodeName || "").toLowerCase() : "#document";
1823
1823
  }
1824
1824
  function G(s) {
1825
1825
  var e;
@@ -1827,21 +1827,21 @@ function G(s) {
1827
1827
  }
1828
1828
  function le(s) {
1829
1829
  var e;
1830
- return (e = (vo(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
1830
+ return (e = (yo(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
1831
1831
  }
1832
- function vo(s) {
1833
- return Dt() ? s instanceof Node || s instanceof G(s).Node : !1;
1832
+ function yo(s) {
1833
+ return Bt() ? s instanceof Node || s instanceof G(s).Node : !1;
1834
1834
  }
1835
1835
  function ee(s) {
1836
- return Dt() ? s instanceof Element || s instanceof G(s).Element : !1;
1836
+ return Bt() ? s instanceof Element || s instanceof G(s).Element : !1;
1837
1837
  }
1838
1838
  function ve(s) {
1839
- return Dt() ? s instanceof HTMLElement || s instanceof G(s).HTMLElement : !1;
1839
+ return Bt() ? s instanceof HTMLElement || s instanceof G(s).HTMLElement : !1;
1840
1840
  }
1841
- function Ds(s) {
1842
- return !Dt() || typeof ShadowRoot > "u" ? !1 : s instanceof ShadowRoot || s instanceof G(s).ShadowRoot;
1841
+ function Bs(s) {
1842
+ return !Bt() || typeof ShadowRoot > "u" ? !1 : s instanceof ShadowRoot || s instanceof G(s).ShadowRoot;
1843
1843
  }
1844
- function Rt(s) {
1844
+ function Ht(s) {
1845
1845
  const {
1846
1846
  overflow: e,
1847
1847
  overflowX: t,
@@ -1850,10 +1850,10 @@ function Rt(s) {
1850
1850
  } = te(s);
1851
1851
  return /auto|scroll|overlay|hidden|clip/.test(e + o + t) && i !== "inline" && i !== "contents";
1852
1852
  }
1853
- function _r(s) {
1854
- return /^(table|td|th)$/.test(je(s));
1853
+ function Cr(s) {
1854
+ return /^(table|td|th)$/.test(Ue(s));
1855
1855
  }
1856
- function Bt(s) {
1856
+ function Ft(s) {
1857
1857
  try {
1858
1858
  if (s.matches(":popover-open"))
1859
1859
  return !0;
@@ -1865,33 +1865,33 @@ function Bt(s) {
1865
1865
  return !1;
1866
1866
  }
1867
1867
  }
1868
- const kr = /transform|translate|scale|rotate|perspective|filter/, Cr = /paint|layout|strict|content/, ye = (s) => !!s && s !== "none";
1869
- let Ut;
1870
- function vs(s) {
1868
+ const Sr = /transform|translate|scale|rotate|perspective|filter/, Tr = /paint|layout|strict|content/, ye = (s) => !!s && s !== "none";
1869
+ let qt;
1870
+ function ys(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) || !ws() && (ye(e.backdropFilter) || ye(e.filter)) || kr.test(e.willChange || "") || Cr.test(e.contain || "");
1872
+ return ye(e.transform) || ye(e.translate) || ye(e.scale) || ye(e.rotate) || ye(e.perspective) || !xs() && (ye(e.backdropFilter) || ye(e.filter)) || Sr.test(e.willChange || "") || Tr.test(e.contain || "");
1873
1873
  }
1874
- function Sr(s) {
1874
+ function Ir(s) {
1875
1875
  let e = Me(s);
1876
- for (; ve(e) && !rt(e); ) {
1877
- if (vs(e))
1876
+ for (; ve(e) && !nt(e); ) {
1877
+ if (ys(e))
1878
1878
  return e;
1879
- if (Bt(e))
1879
+ if (Ft(e))
1880
1880
  return null;
1881
1881
  e = Me(e);
1882
1882
  }
1883
1883
  return null;
1884
1884
  }
1885
- function ws() {
1886
- return Ut == null && (Ut = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), Ut;
1885
+ function xs() {
1886
+ return qt == null && (qt = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), qt;
1887
1887
  }
1888
- function rt(s) {
1889
- return /^(html|body|#document)$/.test(je(s));
1888
+ function nt(s) {
1889
+ return /^(html|body|#document)$/.test(Ue(s));
1890
1890
  }
1891
1891
  function te(s) {
1892
1892
  return G(s).getComputedStyle(s);
1893
1893
  }
1894
- function Ht(s) {
1894
+ function Kt(s) {
1895
1895
  return ee(s) ? {
1896
1896
  scrollLeft: s.scrollLeft,
1897
1897
  scrollTop: s.scrollTop
@@ -1901,114 +1901,114 @@ function Ht(s) {
1901
1901
  };
1902
1902
  }
1903
1903
  function Me(s) {
1904
- if (je(s) === "html")
1904
+ if (Ue(s) === "html")
1905
1905
  return s;
1906
1906
  const e = (
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
- Ds(s) && s.host || // Fallback.
1910
+ Bs(s) && s.host || // Fallback.
1911
1911
  le(s)
1912
1912
  );
1913
- return Ds(e) ? e.host : e;
1913
+ return Bs(e) ? e.host : e;
1914
1914
  }
1915
- function wo(s) {
1915
+ function xo(s) {
1916
1916
  const e = Me(s);
1917
- return rt(e) ? (s.ownerDocument || s).body : ve(e) && Rt(e) ? e : wo(e);
1917
+ return nt(e) ? (s.ownerDocument || s).body : ve(e) && Ht(e) ? e : xo(e);
1918
1918
  }
1919
- function nt(s, e, t) {
1919
+ function at(s, e, t) {
1920
1920
  var o;
1921
1921
  e === void 0 && (e = []), t === void 0 && (t = !0);
1922
- const i = wo(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = G(i);
1922
+ const i = xo(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = G(i);
1923
1923
  if (r) {
1924
- const a = ts(n);
1925
- return e.concat(n, n.visualViewport || [], Rt(i) ? i : [], a && t ? nt(a) : []);
1924
+ const a = os(n);
1925
+ return e.concat(n, n.visualViewport || [], Ht(i) ? i : [], a && t ? at(a) : []);
1926
1926
  } else
1927
- return e.concat(i, nt(i, [], t));
1927
+ return e.concat(i, at(i, [], t));
1928
1928
  }
1929
- function ts(s) {
1929
+ function os(s) {
1930
1930
  return s.parent && Object.getPrototypeOf(s.parent) ? s.frameElement : null;
1931
1931
  }
1932
- function yo(s) {
1932
+ function _o(s) {
1933
1933
  const e = te(s);
1934
1934
  let t = parseFloat(e.width) || 0, o = parseFloat(e.height) || 0;
1935
- const i = ve(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a = At(t) !== r || At(o) !== n;
1935
+ const i = ve(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a = Nt(t) !== r || Nt(o) !== n;
1936
1936
  return a && (t = r, o = n), {
1937
1937
  width: t,
1938
1938
  height: o,
1939
1939
  $: a
1940
1940
  };
1941
1941
  }
1942
- function ys(s) {
1942
+ function _s(s) {
1943
1943
  return ee(s) ? s : s.contextElement;
1944
1944
  }
1945
1945
  function Ae(s) {
1946
- const e = ys(s);
1946
+ const e = _s(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
- } = yo(e);
1954
- let n = (r ? At(t.width) : t.width) / o, a = (r ? At(t.height) : t.height) / i;
1953
+ } = _o(e);
1954
+ let n = (r ? Nt(t.width) : t.width) / o, a = (r ? Nt(t.height) : t.height) / i;
1955
1955
  return (!n || !Number.isFinite(n)) && (n = 1), (!a || !Number.isFinite(a)) && (a = 1), {
1956
1956
  x: n,
1957
1957
  y: a
1958
1958
  };
1959
1959
  }
1960
- const Tr = /* @__PURE__ */ ae(0);
1961
- function xo(s) {
1960
+ const Pr = /* @__PURE__ */ ae(0);
1961
+ function ko(s) {
1962
1962
  const e = G(s);
1963
- return !ws() || !e.visualViewport ? Tr : {
1963
+ return !xs() || !e.visualViewport ? Pr : {
1964
1964
  x: e.visualViewport.offsetLeft,
1965
1965
  y: e.visualViewport.offsetTop
1966
1966
  };
1967
1967
  }
1968
- function Ir(s, e, t) {
1968
+ function Or(s, e, t) {
1969
1969
  return e === void 0 && (e = !1), !!t && e && t === G(s);
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 = ys(s);
1973
+ const i = s.getBoundingClientRect(), r = _s(s);
1974
1974
  let n = ae(1);
1975
1975
  e && (o ? ee(o) && (n = Ae(o)) : n = Ae(s));
1976
- const a = Ir(r, t, o) ? xo(r) : ae(0);
1976
+ const a = Or(r, t, o) ? ko(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 = G(r), m = ee(o) ? G(o) : o;
1980
- let g = f, w = ts(g);
1981
- for (; w && m !== g; ) {
1982
- const y = Ae(w), v = w.getBoundingClientRect(), _ = te(w), C = v.left + (w.clientLeft + parseFloat(_.paddingLeft)) * y.x, E = v.top + (w.clientTop + parseFloat(_.paddingTop)) * y.y;
1983
- l *= y.x, c *= y.y, d *= y.x, u *= y.y, l += C, c += E, g = G(w), w = ts(g);
1980
+ let g = f, y = os(g);
1981
+ for (; y && m !== g; ) {
1982
+ const x = Ae(y), v = y.getBoundingClientRect(), _ = te(y), C = v.left + (y.clientLeft + parseFloat(_.paddingLeft)) * x.x, E = v.top + (y.clientTop + parseFloat(_.paddingTop)) * x.y;
1983
+ l *= x.x, c *= x.y, d *= x.x, u *= x.y, l += C, c += E, g = G(y), y = os(g);
1984
1984
  }
1985
1985
  }
1986
- return Nt({
1986
+ return Vt({
1987
1987
  width: d,
1988
1988
  height: u,
1989
1989
  x: l,
1990
1990
  y: c
1991
1991
  });
1992
1992
  }
1993
- function Ft(s, e) {
1994
- const t = Ht(s).scrollLeft;
1993
+ function Wt(s, e) {
1994
+ const t = Kt(s).scrollLeft;
1995
1995
  return e ? e.left + t : Le(le(s)).left + t;
1996
1996
  }
1997
- function _o(s, e) {
1998
- const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft - Ft(s, t), i = t.top + e.scrollTop;
1997
+ function Co(s, e) {
1998
+ const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft - Wt(s, t), i = t.top + e.scrollTop;
1999
1999
  return {
2000
2000
  x: o,
2001
2001
  y: i
2002
2002
  };
2003
2003
  }
2004
- function Pr(s) {
2004
+ function Mr(s) {
2005
2005
  let {
2006
2006
  elements: e,
2007
2007
  rect: t,
2008
2008
  offsetParent: o,
2009
2009
  strategy: i
2010
2010
  } = s;
2011
- const r = i === "fixed", n = le(o), a = e ? Bt(e.floating) : !1;
2011
+ const r = i === "fixed", n = le(o), a = e ? Ft(e.floating) : !1;
2012
2012
  if (o === n || a && r)
2013
2013
  return t;
2014
2014
  let l = {
@@ -2016,11 +2016,11 @@ function Pr(s) {
2016
2016
  scrollTop: 0
2017
2017
  }, c = ae(1);
2018
2018
  const d = ae(0), u = ve(o);
2019
- if ((u || !r) && ((je(o) !== "body" || Rt(n)) && (l = Ht(o)), u)) {
2019
+ if ((u || !r) && ((Ue(o) !== "body" || Ht(n)) && (l = Kt(o)), u)) {
2020
2020
  const m = Le(o);
2021
2021
  c = Ae(o), d.x = m.x + o.clientLeft, d.y = m.y + o.clientTop;
2022
2022
  }
2023
- const f = n && !u && !r ? _o(n, l) : ae(0);
2023
+ const f = n && !u && !r ? Co(n, l) : ae(0);
2024
2024
  return {
2025
2025
  width: t.width * c.x,
2026
2026
  height: t.height * c.y,
@@ -2028,12 +2028,12 @@ function Pr(s) {
2028
2028
  y: t.y * c.y - l.scrollTop * c.y + d.y + f.y
2029
2029
  };
2030
2030
  }
2031
- function Or(s) {
2031
+ function Lr(s) {
2032
2032
  return s.getClientRects ? Array.from(s.getClientRects()) : [];
2033
2033
  }
2034
- function Mr(s) {
2035
- const e = Ht(s), t = s.ownerDocument.body, o = ne(s.scrollWidth, s.clientWidth, t.scrollWidth, t.clientWidth), i = ne(s.scrollHeight, s.clientHeight, t.scrollHeight, t.clientHeight);
2036
- let r = -e.scrollLeft + Ft(s);
2034
+ function Er(s) {
2035
+ const e = Kt(s), t = s.ownerDocument.body, o = ne(s.scrollWidth, s.clientWidth, t.scrollWidth, t.clientWidth), i = ne(s.scrollHeight, s.clientHeight, t.scrollHeight, t.clientHeight);
2036
+ let r = -e.scrollLeft + Wt(s);
2037
2037
  const n = -e.scrollTop;
2038
2038
  return te(t).direction === "rtl" && (r += ne(s.clientWidth, t.clientWidth) - o), {
2039
2039
  width: o,
@@ -2042,18 +2042,18 @@ function Mr(s) {
2042
2042
  y: n
2043
2043
  };
2044
2044
  }
2045
- const Lr = 25;
2046
- function Er(s, e, t) {
2045
+ const Ar = 25;
2046
+ function zr(s, e, t) {
2047
2047
  t === void 0 && (t = "viewport");
2048
2048
  const o = t === "layoutViewport", i = G(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 = !ws() || e === "fixed";
2051
+ const f = !xs() || 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
- if (Ft(r) <= 0) {
2055
- const f = r.ownerDocument, m = f.body, g = getComputedStyle(m), w = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, y = Math.abs(r.clientWidth - m.clientWidth - w), v = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? y / 2 : y;
2056
- v <= Lr && (a -= v);
2054
+ if (Wt(r) <= 0) {
2055
+ const f = r.ownerDocument, m = f.body, g = getComputedStyle(m), y = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, x = Math.abs(r.clientWidth - m.clientWidth - y), v = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? x / 2 : x;
2056
+ v <= Ar && (a -= v);
2057
2057
  }
2058
2058
  return {
2059
2059
  width: a,
@@ -2062,7 +2062,7 @@ function Er(s, e, t) {
2062
2062
  y: d
2063
2063
  };
2064
2064
  }
2065
- function Ar(s, e) {
2065
+ function Nr(s, e) {
2066
2066
  const t = Le(s, !0, e === "fixed"), o = t.top + s.clientTop, i = t.left + s.clientLeft, r = Ae(s), n = s.clientWidth * r.x, a = s.clientHeight * r.y, l = i * r.x, c = o * r.y;
2067
2067
  return {
2068
2068
  width: n,
@@ -2071,16 +2071,16 @@ function Ar(s, e) {
2071
2071
  y: c
2072
2072
  };
2073
2073
  }
2074
- function Rs(s, e, t) {
2074
+ function Hs(s, e, t) {
2075
2075
  let o;
2076
2076
  if (e === "viewport" || e === "layoutViewport")
2077
- o = Er(s, t, e);
2077
+ o = zr(s, t, e);
2078
2078
  else if (e === "document")
2079
- o = Mr(le(s));
2079
+ o = Er(le(s));
2080
2080
  else if (ee(e))
2081
- o = Ar(e, t);
2081
+ o = Nr(e, t);
2082
2082
  else {
2083
- const i = xo(s);
2083
+ const i = ko(s);
2084
2084
  o = {
2085
2085
  x: e.x - i.x,
2086
2086
  y: e.y - i.y,
@@ -2088,32 +2088,32 @@ function Rs(s, e, t) {
2088
2088
  height: e.height
2089
2089
  };
2090
2090
  }
2091
- return Nt(o);
2091
+ return Vt(o);
2092
2092
  }
2093
- function zr(s, e) {
2093
+ function $r(s, e) {
2094
2094
  const t = e.get(s);
2095
2095
  if (t)
2096
2096
  return t;
2097
- let o = nt(s, [], !1).filter((a) => ee(a) && je(a) !== "body"), i = null;
2097
+ let o = at(s, [], !1).filter((a) => ee(a) && Ue(a) !== "body"), i = null;
2098
2098
  const r = te(s).position === "fixed";
2099
2099
  let n = r ? Me(s) : s;
2100
- for (; ee(n) && !rt(n); ) {
2101
- const a = te(n), l = vs(n), c = i ? i.position : r ? "fixed" : "";
2100
+ for (; ee(n) && !nt(n); ) {
2101
+ const a = te(n), l = ys(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;
2105
2105
  }
2106
- function Nr(s) {
2106
+ function Vr(s) {
2107
2107
  let {
2108
2108
  element: e,
2109
2109
  boundary: t,
2110
2110
  rootBoundary: o,
2111
2111
  strategy: i
2112
2112
  } = s;
2113
- const n = [...t === "clippingAncestors" ? Bt(e) ? [] : zr(e, this._c) : [].concat(t), o], a = Rs(e, n[0], i);
2113
+ const n = [...t === "clippingAncestors" ? Ft(e) ? [] : $r(e, this._c) : [].concat(t), o], a = Hs(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 m = Rs(e, n[f], i);
2116
+ const m = Hs(e, n[f], i);
2117
2117
  l = ne(m.top, l), c = be(m.right, c), d = be(m.bottom, d), u = ne(m.left, u);
2118
2118
  }
2119
2119
  return {
@@ -2123,29 +2123,29 @@ function Nr(s) {
2123
2123
  y: l
2124
2124
  };
2125
2125
  }
2126
- function $r(s) {
2126
+ function Dr(s) {
2127
2127
  const {
2128
2128
  width: e,
2129
2129
  height: t
2130
- } = yo(s);
2130
+ } = _o(s);
2131
2131
  return {
2132
2132
  width: e,
2133
2133
  height: t
2134
2134
  };
2135
2135
  }
2136
- function Vr(s, e, t) {
2136
+ function Rr(s, e, t) {
2137
2137
  const o = ve(e), i = le(e), r = t === "fixed", n = Le(s, !0, r, e);
2138
2138
  let a = {
2139
2139
  scrollLeft: 0,
2140
2140
  scrollTop: 0
2141
2141
  };
2142
2142
  const l = ae(0);
2143
- if ((o || !r) && ((je(e) !== "body" || Rt(i)) && (a = Ht(e)), o)) {
2143
+ if ((o || !r) && ((Ue(e) !== "body" || Ht(i)) && (a = Kt(e)), o)) {
2144
2144
  const f = Le(e, !0, r, e);
2145
2145
  l.x = f.x + e.clientLeft, l.y = f.y + e.clientTop;
2146
2146
  }
2147
- !o && i && (l.x = Ft(i));
2148
- const c = i && !o && !r ? _o(i, a) : ae(0), d = n.left + a.scrollLeft - l.x - c.x, u = n.top + a.scrollTop - l.y - c.y;
2147
+ !o && i && (l.x = Wt(i));
2148
+ const c = i && !o && !r ? Co(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,
@@ -2153,10 +2153,10 @@ function Vr(s, e, t) {
2153
2153
  height: n.height
2154
2154
  };
2155
2155
  }
2156
- function Gt(s) {
2156
+ function Xt(s) {
2157
2157
  return te(s).position === "static";
2158
2158
  }
2159
- function Bs(s, e) {
2159
+ function Fs(s, e) {
2160
2160
  if (!ve(s) || te(s).position === "fixed")
2161
2161
  return null;
2162
2162
  if (e)
@@ -2164,28 +2164,28 @@ function Bs(s, e) {
2164
2164
  let t = s.offsetParent;
2165
2165
  return le(s) === t && (t = t.ownerDocument.body), t;
2166
2166
  }
2167
- function ko(s, e) {
2167
+ function So(s, e) {
2168
2168
  const t = G(s);
2169
- if (Bt(s))
2169
+ if (Ft(s))
2170
2170
  return t;
2171
2171
  if (!ve(s)) {
2172
2172
  let i = Me(s);
2173
- for (; i && !rt(i); ) {
2174
- if (ee(i) && !Gt(i))
2173
+ for (; i && !nt(i); ) {
2174
+ if (ee(i) && !Xt(i))
2175
2175
  return i;
2176
2176
  i = Me(i);
2177
2177
  }
2178
2178
  return t;
2179
2179
  }
2180
- let o = Bs(s, e);
2181
- for (; o && _r(o) && Gt(o); )
2182
- o = Bs(o, e);
2183
- return o && rt(o) && Gt(o) && !vs(o) ? t : o || Sr(s) || t;
2180
+ let o = Fs(s, e);
2181
+ for (; o && Cr(o) && Xt(o); )
2182
+ o = Fs(o, e);
2183
+ return o && nt(o) && Xt(o) && !ys(o) ? t : o || Ir(s) || t;
2184
2184
  }
2185
- const Dr = async function(s) {
2186
- const e = this.getOffsetParent || ko, t = this.getDimensions, o = await t(s.floating);
2185
+ const Br = async function(s) {
2186
+ const e = this.getOffsetParent || So, t = this.getDimensions, o = await t(s.floating);
2187
2187
  return {
2188
- reference: Vr(s.reference, await e(s.floating), s.strategy),
2188
+ reference: Rr(s.reference, await e(s.floating), s.strategy),
2189
2189
  floating: {
2190
2190
  x: 0,
2191
2191
  y: 0,
@@ -2194,25 +2194,25 @@ const Dr = async function(s) {
2194
2194
  }
2195
2195
  };
2196
2196
  };
2197
- function Rr(s) {
2197
+ function Hr(s) {
2198
2198
  return te(s).direction === "rtl";
2199
2199
  }
2200
- const Co = {
2201
- convertOffsetParentRelativeRectToViewportRelativeRect: Pr,
2200
+ const To = {
2201
+ convertOffsetParentRelativeRectToViewportRelativeRect: Mr,
2202
2202
  getDocumentElement: le,
2203
- getClippingRect: Nr,
2204
- getOffsetParent: ko,
2205
- getElementRects: Dr,
2206
- getClientRects: Or,
2207
- getDimensions: $r,
2203
+ getClippingRect: Vr,
2204
+ getOffsetParent: So,
2205
+ getElementRects: Br,
2206
+ getClientRects: Lr,
2207
+ getDimensions: Dr,
2208
2208
  getScale: Ae,
2209
2209
  isElement: ee,
2210
- isRTL: Rr
2210
+ isRTL: Hr
2211
2211
  };
2212
- function So(s, e) {
2212
+ function Io(s, e) {
2213
2213
  return s.x === e.x && s.y === e.y && s.width === e.width && s.height === e.height;
2214
2214
  }
2215
- function Br(s, e, t) {
2215
+ function Fr(s, e, t) {
2216
2216
  let o = null, i;
2217
2217
  const r = le(s);
2218
2218
  function n() {
@@ -2224,19 +2224,19 @@ function Br(s, e, t) {
2224
2224
  const f = s.getBoundingClientRect(), {
2225
2225
  left: m,
2226
2226
  top: g,
2227
- width: w,
2228
- height: y
2227
+ width: y,
2228
+ height: x
2229
2229
  } = f;
2230
- if (d || e(), !w || !y)
2230
+ if (d || e(), !y || !x)
2231
2231
  return;
2232
- const v = ft(g), _ = ft(r.clientWidth - (m + w)), C = ft(r.clientHeight - (g + y)), E = ft(m), D = {
2232
+ const v = gt(g), _ = gt(r.clientWidth - (m + y)), C = gt(r.clientHeight - (g + x)), E = gt(m), D = {
2233
2233
  rootMargin: -v + "px " + -_ + "px " + -C + "px " + -E + "px",
2234
2234
  threshold: ne(0, be(1, u)) || 1
2235
2235
  };
2236
2236
  let W = !0;
2237
2237
  function q(V) {
2238
2238
  const S = V[0].intersectionRatio;
2239
- if (!So(f, s.getBoundingClientRect()))
2239
+ if (!Io(f, s.getBoundingClientRect()))
2240
2240
  return a();
2241
2241
  if (S !== u) {
2242
2242
  if (!W)
@@ -2263,7 +2263,7 @@ function Br(s, e, t) {
2263
2263
  l.removeEventListener("resize", c), n();
2264
2264
  };
2265
2265
  }
2266
- function Hr(s, e, t, o) {
2266
+ function Kr(s, e, t, o) {
2267
2267
  o === void 0 && (o = {});
2268
2268
  const {
2269
2269
  ancestorScroll: i = !0,
@@ -2271,11 +2271,11 @@ function Hr(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 = ys(s), d = i || r ? [...c ? nt(c) : [], ...e ? nt(e) : []] : [];
2274
+ } = o, c = _s(s), d = i || r ? [...c ? at(c) : [], ...e ? at(e) : []] : [];
2275
2275
  d.forEach((v) => {
2276
2276
  i && v.addEventListener("scroll", t), r && v.addEventListener("resize", t);
2277
2277
  });
2278
- const u = c && a ? Br(c, t, r) : null;
2278
+ const u = c && a ? Fr(c, t, r) : null;
2279
2279
  let f = -1, m = null;
2280
2280
  n && (m = new ResizeObserver((v) => {
2281
2281
  let [_] = v;
@@ -2284,11 +2284,11 @@ function Hr(s, e, t, o) {
2284
2284
  (C = m) == null || C.observe(e);
2285
2285
  })), t();
2286
2286
  }), c && !l && m.observe(c), e && m.observe(e));
2287
- let g, w = l ? Le(s) : null;
2288
- l && y();
2289
- function y() {
2287
+ let g, y = l ? Le(s) : null;
2288
+ l && x();
2289
+ function x() {
2290
2290
  const v = Le(s);
2291
- w && !So(w, v) && t(), w = v, g = requestAnimationFrame(y);
2291
+ y && !Io(y, v) && t(), y = v, g = requestAnimationFrame(x);
2292
2292
  }
2293
2293
  return t(), () => {
2294
2294
  var v;
@@ -2297,37 +2297,37 @@ function Hr(s, e, t, o) {
2297
2297
  }), u == null || u(), (v = m) == null || v.disconnect(), m = null, l && cancelAnimationFrame(g);
2298
2298
  };
2299
2299
  }
2300
- const Fr = wr, Kr = yr, Wr = gr, qt = xr, jr = fr, Ur = (s, e, t) => {
2300
+ const Wr = xr, jr = _r, Ur = vr, Yt = kr, Gr = br, qr = (s, e, t) => {
2301
2301
  const o = /* @__PURE__ */ new Map(), i = t ?? {}, r = {
2302
- ...Co,
2302
+ ...To,
2303
2303
  ...i.platform,
2304
2304
  _c: o
2305
2305
  };
2306
- return pr(s, e, {
2306
+ return gr(s, e, {
2307
2307
  ...i,
2308
2308
  platform: r
2309
2309
  });
2310
2310
  };
2311
- function ss(s) {
2311
+ function is(s) {
2312
2312
  const e = s.parentNode ?? null;
2313
2313
  return e instanceof ShadowRoot ? e.host : e;
2314
2314
  }
2315
- function Gr(s) {
2315
+ function Xr(s) {
2316
2316
  if (s.transform !== "none" || s.perspective !== "none" || s.filter !== "none")
2317
2317
  return !0;
2318
2318
  const e = s.backdropFilter;
2319
2319
  return !!(e && e !== "none" || s.willChange && /\b(transform|filter|perspective)\b/.test(s.willChange));
2320
2320
  }
2321
- function os(s) {
2322
- let e = ss(s);
2321
+ function rs(s) {
2322
+ let e = is(s);
2323
2323
  for (; e && !(e === document.body || e === document.documentElement); ) {
2324
- if (e instanceof Element && Gr(getComputedStyle(e)))
2324
+ if (e instanceof Element && Xr(getComputedStyle(e)))
2325
2325
  return e;
2326
- e = ss(e);
2326
+ e = is(e);
2327
2327
  }
2328
2328
  return window;
2329
2329
  }
2330
- function qr(s, e, t) {
2330
+ function Yr(s, e, t) {
2331
2331
  let o = s;
2332
2332
  for (; o && !(o === document.body || o === document.documentElement); ) {
2333
2333
  if (o instanceof Element) {
@@ -2335,11 +2335,11 @@ function qr(s, e, t) {
2335
2335
  if (Math.abs(i.x - e) < 2 && Math.abs(i.y - t) < 2)
2336
2336
  return o;
2337
2337
  }
2338
- o = ss(o);
2338
+ o = is(o);
2339
2339
  }
2340
2340
  return null;
2341
2341
  }
2342
- function To(s) {
2342
+ function Po(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;
@@ -2347,11 +2347,11 @@ function To(s) {
2347
2347
  const i = e.containerType;
2348
2348
  return i && i !== "normal" && t.push(`container-type: ${i}`), t.join("; ");
2349
2349
  }
2350
- function Xr(s) {
2350
+ function Jr(s) {
2351
2351
  const e = s.id ? `#${s.id}` : "", t = typeof s.className == "string" && s.className ? "." + s.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : "";
2352
2352
  return `<${s.tagName.toLowerCase()}${e}${t}>`;
2353
2353
  }
2354
- function Yr(s) {
2354
+ function Qr(s) {
2355
2355
  const e = s.tolerance ?? 1.5;
2356
2356
  let t = 0, o = 0;
2357
2357
  if (s.offsetParent instanceof Element) {
@@ -2361,46 +2361,46 @@ function Yr(s) {
2361
2361
  const i = s.panel.getBoundingClientRect(), r = i.x - (t + s.expectedX), n = i.y - (o + s.expectedY);
2362
2362
  if (Math.abs(r) < e && Math.abs(n) < e)
2363
2363
  return null;
2364
- const a = qr(s.reference, r, n);
2364
+ const a = Yr(s.reference, r, n);
2365
2365
  return {
2366
2366
  driftX: r,
2367
2367
  driftY: n,
2368
2368
  culprit: a,
2369
- culpritDescription: a ? Xr(a) : "an ancestor element (could not auto-identify)",
2370
- culpritCss: a ? To(a) : ""
2369
+ culpritDescription: a ? Jr(a) : "an ancestor element (could not auto-identify)",
2370
+ culpritCss: a ? Po(a) : ""
2371
2371
  };
2372
2372
  }
2373
- function Jr(s, e) {
2373
+ function Zr(s, e) {
2374
2374
  var i;
2375
2375
  const t = (i = s.closest) == null ? void 0 : i.call(s, "[data-theme]"), o = t == null ? void 0 : t.getAttribute("data-theme");
2376
2376
  o != null && e.setAttribute("data-theme", o);
2377
2377
  }
2378
- const Qr = { top: "bottom", right: "left", bottom: "top", left: "right" };
2379
- function Zr(s, e, t) {
2378
+ const en = { top: "bottom", right: "left", bottom: "top", left: "right" };
2379
+ function tn(s, e, t) {
2380
2380
  if (!t)
2381
2381
  return;
2382
- const o = e.split("-")[0], i = Qr[o];
2382
+ const o = e.split("-")[0], i = en[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 Hs(s, e) {
2386
- const t = [Fr(s.offset ?? 4)];
2385
+ function Ks(s, e) {
2386
+ const t = [Wr(s.offset ?? 4)];
2387
2387
  if (s.matchWidth) {
2388
2388
  const i = s.matchWidth;
2389
- t.push(qt({
2389
+ t.push(Yt({
2390
2390
  apply({ rects: r, elements: n }) {
2391
2391
  const a = `${r.reference.width}px`;
2392
2392
  i === "exact" ? n.floating.style.width = a : n.floating.style.minWidth = a;
2393
2393
  }
2394
2394
  }));
2395
2395
  }
2396
- e && t.push(Wr({
2396
+ e && t.push(Ur({
2397
2397
  ...s.lockPlacement === !0 ? { fallbackStrategy: "initialPlacement" } : {},
2398
2398
  ...s.flipPadding != null ? { padding: s.flipPadding } : {}
2399
2399
  }));
2400
2400
  const o = s.shift ?? 8;
2401
- if (o !== !1 && t.push(Kr({ padding: o })), s.maxHeight) {
2401
+ if (o !== !1 && t.push(jr({ padding: o })), s.maxHeight) {
2402
2402
  const i = typeof s.maxHeight == "object" ? s.maxHeight.padding : void 0;
2403
- t.push(qt({
2403
+ t.push(Yt({
2404
2404
  padding: i,
2405
2405
  apply({ availableHeight: r, elements: n }) {
2406
2406
  n.floating.style.maxHeight = `${Math.max(0, r)}px`;
@@ -2409,49 +2409,49 @@ function Hs(s, e) {
2409
2409
  }
2410
2410
  if (s.maxWidth) {
2411
2411
  const i = typeof s.maxWidth == "object" ? s.maxWidth.padding : void 0;
2412
- t.push(qt({
2412
+ t.push(Yt({
2413
2413
  padding: i,
2414
2414
  apply({ availableWidth: r, elements: n }) {
2415
2415
  n.floating.style.maxWidth = `${Math.max(0, r)}px`;
2416
2416
  }
2417
2417
  }));
2418
2418
  }
2419
- return s.arrow && t.push(jr({ element: s.arrow.element, padding: s.arrow.padding })), t;
2419
+ return s.arrow && t.push(Gr({ element: s.arrow.element, padding: s.arrow.padding })), t;
2420
2420
  }
2421
- function tt(s, e, t = {}) {
2421
+ function st(s, e, t = {}) {
2422
2422
  const o = t.strategy ?? "fixed";
2423
- t.inheritThemeFrom && Jr(t.inheritThemeFrom, s), s.style.position = o, s.style.left = "0", s.style.top = "0";
2424
- let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n = Hs(t, r);
2423
+ t.inheritThemeFrom && Zr(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 = Ks(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 ? { ...Co, getOffsetParent: () => os(s) } : void 0), u = () => {
2427
+ const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...To, getOffsetParent: () => rs(s) } : void 0), u = () => {
2428
2428
  var m;
2429
- (m = t.beforeCompute) == null || m.call(t), Ur(e, s, {
2429
+ (m = t.beforeCompute) == null || m.call(t), qr(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: v }) => {
2434
+ }).then(({ x: g, y, placement: x, middlewareData: v }) => {
2435
2435
  var _, C;
2436
- if (s.style.left = `${g}px`, s.style.top = `${w}px`, t.arrow && Zr(t.arrow.element, y, v.arrow), a && !l && (l = !0, i = y, r = !1, n = Hs(t, !1)), (_ = t.onPlaced) == null || _.call(t, y), (C = t.onComputed) == null || C.call(t, { x: g, y: w, placement: y }), t.onDrift && e instanceof Element) {
2437
- const E = c ? os(s) : window, z = Yr({ panel: s, reference: e, expectedX: g, expectedY: w, offsetParent: E });
2436
+ if (s.style.left = `${g}px`, s.style.top = `${y}px`, t.arrow && tn(t.arrow.element, x, v.arrow), a && !l && (l = !0, i = x, r = !1, n = Ks(t, !1)), (_ = t.onPlaced) == null || _.call(t, x), (C = t.onComputed) == null || C.call(t, { x: g, y, placement: x }), t.onDrift && e instanceof Element) {
2437
+ const E = c ? rs(s) : window, z = Qr({ panel: s, reference: e, expectedX: g, expectedY: y, offsetParent: E });
2438
2438
  z && t.onDrift(z);
2439
2439
  }
2440
2440
  });
2441
2441
  };
2442
2442
  let f;
2443
- return t.autoUpdate ?? !0 ? f = Hr(e, s, u, t.autoUpdateOptions) : u(), {
2443
+ return t.autoUpdate ?? !0 ? f = Kr(e, s, u, t.autoUpdateOptions) : u(), {
2444
2444
  update: u,
2445
2445
  destroy() {
2446
2446
  f == null || f(), f = void 0;
2447
2447
  }
2448
2448
  };
2449
2449
  }
2450
- function en(s) {
2450
+ function sn(s) {
2451
2451
  return typeof s == "number" ? { show: s, hide: s } : { show: (s == null ? void 0 : s.show) ?? 0, hide: (s == null ? void 0 : s.hide) ?? 0 };
2452
2452
  }
2453
- function tn(s) {
2454
- const e = s.container ?? document.body, t = s.placement ?? "top", o = s.visibleClass ?? "is-visible", i = en(s.delay), r = document.createElement("div");
2453
+ function on(s) {
2454
+ const e = s.container ?? document.body, t = s.placement ?? "top", o = s.visibleClass ?? "is-visible", i = sn(s.delay), r = document.createElement("div");
2455
2455
  r.setAttribute("role", "tooltip"), s.cssClass && (r.className = s.cssClass), typeof s.content == "string" ? r.textContent = s.content : r.append(s.content);
2456
2456
  let n, a = !1, l, c, d;
2457
2457
  const u = {
@@ -2467,32 +2467,32 @@ function tn(s) {
2467
2467
  return;
2468
2468
  (C = s.onBeforeShow) == null || C.call(s), a = !0, e.append(r);
2469
2469
  const _ = s.followCursor ? u : s.trigger;
2470
- n = tt(r, _, {
2470
+ n = st(r, _, {
2471
2471
  placement: t,
2472
2472
  strategy: s.strategy,
2473
2473
  offset: s.offset ?? 8,
2474
2474
  inheritThemeFrom: s.inheritThemeFrom ?? s.trigger
2475
2475
  }), s.followCursor && s.trigger.addEventListener("mousemove", f), r.classList.add(o);
2476
- }, w = () => {
2477
- m(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
2478
2476
  }, y = () => {
2477
+ m(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
2478
+ }, x = () => {
2479
2479
  m(), i.show > 0 ? l = setTimeout(g, i.show) : g();
2480
2480
  }, v = () => {
2481
- m(), i.hide > 0 ? c = setTimeout(w, i.hide) : w();
2481
+ m(), i.hide > 0 ? c = setTimeout(y, i.hide) : y();
2482
2482
  };
2483
- return s.trigger.addEventListener("mouseenter", y), s.trigger.addEventListener("mouseleave", v), s.trigger.addEventListener("focusin", y), s.trigger.addEventListener("focusout", v), {
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;
2487
2487
  },
2488
2488
  show: g,
2489
- hide: w,
2489
+ hide: y,
2490
2490
  destroy() {
2491
- s.trigger.removeEventListener("mouseenter", y), s.trigger.removeEventListener("mouseleave", v), s.trigger.removeEventListener("focusin", y), s.trigger.removeEventListener("focusout", v), w();
2491
+ s.trigger.removeEventListener("mouseenter", x), s.trigger.removeEventListener("mouseleave", v), s.trigger.removeEventListener("focusin", x), s.trigger.removeEventListener("focusout", v), y();
2492
2492
  }
2493
2493
  };
2494
2494
  }
2495
- function sn(s) {
2495
+ function rn(s) {
2496
2496
  const e = s.container ?? document.body;
2497
2497
  let t, o = !1;
2498
2498
  const i = s.inheritThemeFrom ?? (s.reference instanceof HTMLElement ? s.reference : void 0);
@@ -2501,7 +2501,7 @@ function sn(s) {
2501
2501
  return o;
2502
2502
  },
2503
2503
  open() {
2504
- o || (o = !0, e.append(s.panel), t = tt(s.panel, s.reference, {
2504
+ o || (o = !0, e.append(s.panel), t = st(s.panel, s.reference, {
2505
2505
  placement: s.placement ?? "bottom-start",
2506
2506
  strategy: s.strategy,
2507
2507
  offset: s.offset,
@@ -2527,21 +2527,21 @@ function sn(s) {
2527
2527
  }
2528
2528
  };
2529
2529
  }
2530
- const Io = ["INIT", "DATA", "UI", "INTERACTION"], ce = or("MULTISELECT", Io), gt = ce.loggers.INIT, K = ce.loggers.DATA, J = ce.loggers.UI, R = ce.loggers.INTERACTION, kn = Io.map((s) => `MULTISELECT:${s}`);
2531
- function Cn() {
2530
+ const Oo = ["INIT", "DATA", "UI", "INTERACTION"], ce = rr("MULTISELECT", Oo), bt = ce.loggers.INIT, K = ce.loggers.DATA, J = ce.loggers.UI, R = ce.loggers.INTERACTION, Sn = Oo.map((s) => `MULTISELECT:${s}`);
2531
+ function Tn() {
2532
2532
  ce.enableLogging();
2533
2533
  }
2534
- function Sn() {
2534
+ function In() {
2535
2535
  ce.disableLogging();
2536
2536
  }
2537
- function Tn(s) {
2537
+ function Pn(s) {
2538
2538
  ce.setLogLevel(s);
2539
2539
  }
2540
- function In(s, e) {
2540
+ function On(s, e) {
2541
2541
  const t = s.includes(":") ? s.split(":").pop() : s;
2542
2542
  ce.setCategoryLevel(t, e);
2543
2543
  }
2544
- class Fs {
2544
+ class Ws {
2545
2545
  constructor(e) {
2546
2546
  p(this, "container");
2547
2547
  p(this, "wrapper");
@@ -2673,7 +2673,7 @@ class Fs {
2673
2673
  this.container.removeEventListener("scroll", this.scrollHandler), this.resizeObserver && this.resizeObserver.disconnect(), this.container.innerHTML = "";
2674
2674
  }
2675
2675
  }
2676
- function Ks(s) {
2676
+ function js(s) {
2677
2677
  return {
2678
2678
  treeId: "",
2679
2679
  id: -1,
@@ -2688,26 +2688,26 @@ function Ks(s) {
2688
2688
  ...s
2689
2689
  };
2690
2690
  }
2691
- const Ze = (s) => !s || typeof s == "string" && s.trim() === "";
2692
- function on(s, e = ".") {
2691
+ const et = (s) => !s || typeof s == "string" && s.trim() === "";
2692
+ function nn(s, e = ".") {
2693
2693
  if (!s || typeof s != "string") return null;
2694
2694
  const t = s.lastIndexOf(e);
2695
2695
  return t === -1 ? "" : s.substring(0, t);
2696
2696
  }
2697
- function Ws(s, e, t = ".") {
2698
- return Ze(e) ? s : s.startsWith(e + t) ? s.substring(e.length + t.length) : s;
2697
+ function Us(s, e, t = ".") {
2698
+ return et(e) ? s : s.startsWith(e + t) ? s.substring(e.length + t.length) : s;
2699
2699
  }
2700
- function js(s, e = 0, t = 1, o = ".") {
2700
+ function Gs(s, e = 0, t = 1, o = ".") {
2701
2701
  return s.split(o).slice(e, e + t).join(o);
2702
2702
  }
2703
- function rn(s, e) {
2703
+ function an(s, e) {
2704
2704
  return s.split(e).length;
2705
2705
  }
2706
2706
  function he(s, e) {
2707
2707
  return s[e];
2708
2708
  }
2709
- function nn(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 = Ze(i), m = Ze(r), g = Ze(n), w = Ze(a), y = "x", v = s.treePathSeparator || ".", _ = Ks();
2709
+ function ln(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 = et(i), m = et(r), g = et(n), y = et(a), x = "x", v = s.treePathSeparator || ".", _ = js();
2711
2711
  let C = 0, E = null;
2712
2712
  const z = (V) => o ? o(V) : t ? he(V, t) : void 0, D = {
2713
2713
  treePathSeparator: v,
@@ -2722,38 +2722,38 @@ function nn(s = {}) {
2722
2722
  get flatNodes() {
2723
2723
  if (E) return E;
2724
2724
  const V = [], S = s.isSorted ?? !1, O = s.sortCallback;
2725
- function M(B) {
2725
+ function L(B) {
2726
2726
  let T = Object.values(B.children);
2727
2727
  S && O && T.length > 0 && (T = O(T));
2728
2728
  for (const F of T)
2729
- V.push(F), F.hasChildren && M(F);
2729
+ V.push(F), F.hasChildren && L(F);
2730
2730
  }
2731
- return M(_), E = V, V;
2731
+ return L(_), E = V, V;
2732
2732
  },
2733
2733
  insertArray(V) {
2734
2734
  V = V || [], _.children = {}, C = 0, E = null;
2735
2735
  const S = [];
2736
- let O = V.map((M, B) => {
2737
- const T = Ks();
2738
- T.treeId = c, T.id = e ? he(M, e) : void 0;
2739
- const F = z(M);
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 = on(T.path, v) : T.parentPath = he(M, i), T.pathSegment = js(
2741
- Ws(T.path, T.parentPath ?? "", v),
2736
+ let O = V.map((L, B) => {
2737
+ const T = js();
2738
+ T.treeId = c, T.id = e ? he(L, e) : void 0;
2739
+ const F = z(L);
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 = nn(T.path, v) : T.parentPath = he(L, i), T.pathSegment = Gs(
2741
+ Us(T.path, T.parentPath ?? "", v),
2742
2742
  0,
2743
2743
  1,
2744
2744
  v
2745
- ), m ? T.level = rn(T.path, v) : T.level = he(M, r), g || (T.hasChildren = he(M, n)), T.data = M, T);
2746
- }).filter((M) => M !== null);
2745
+ ), m ? T.level = an(T.path, v) : T.level = he(L, r), g || (T.hasChildren = he(L, n)), T.data = L, T);
2746
+ }).filter((L) => L !== null);
2747
2747
  s.isSorted || (s.sortCallback ? O = s.sortCallback(O) : O = q(O));
2748
- for (const M of O)
2749
- W(M.parentPath ?? "", M);
2750
- if (l || !w)
2751
- for (const M of O)
2748
+ for (const L of O)
2749
+ W(L.parentPath ?? "", L);
2750
+ if (l || !y)
2751
+ for (const L of O)
2752
2752
  if (l)
2753
- M.isSelectable = l(M) !== !1;
2753
+ L.isSelectable = l(L) !== !1;
2754
2754
  else {
2755
- const B = he(M.data, a);
2756
- M.isSelectable = B == null ? !0 : !!B;
2755
+ const B = he(L.data, a);
2756
+ L.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 nn(s = {}) {
2762
2762
  getNodeByPath(V, S) {
2763
2763
  let O = S || _;
2764
2764
  if (V) {
2765
- const M = V.split(v);
2766
- for (let B = 0; B < M.length; B++) {
2767
- const T = y + M[B];
2765
+ const L = V.split(v);
2766
+ for (let B = 0; B < L.length; B++) {
2767
+ const T = x + L[B];
2768
2768
  if (!O.children.hasOwnProperty(T))
2769
2769
  return null;
2770
2770
  O = O.children[T];
@@ -2778,13 +2778,13 @@ function nn(s = {}) {
2778
2778
  if (!O)
2779
2779
  return `Node: ${S.path} - Could not find parent node: ${V}`;
2780
2780
  m && (S.level = (O.level || 0) + 1);
2781
- const M = y + js(Ws(S.path, V, v), 0, 1, v);
2782
- return O.children.hasOwnProperty(M) || (O.children[M] = S, g && !O.hasChildren && (O.hasChildren = !0), C = Math.max(C, S.level || 0)), null;
2781
+ const L = x + Gs(Us(S.path, V, v), 0, 1, v);
2782
+ return O.children.hasOwnProperty(L) || (O.children[L] = S, g && !O.hasChildren && (O.hasChildren = !0), C = Math.max(C, S.level || 0)), null;
2783
2783
  }
2784
2784
  function q(V) {
2785
2785
  return V.sort((S, O) => {
2786
- const M = S.level || 0, B = O.level || 0;
2787
- if (M !== B) return M - B;
2786
+ const L = S.level || 0, B = O.level || 0;
2787
+ if (L !== B) return L - B;
2788
2788
  if (S.parentPath !== O.parentPath)
2789
2789
  return S.parentPath ? O.parentPath ? S.parentPath.localeCompare(O.parentPath) : 1 : -1;
2790
2790
  if (d && S.data && O.data) {
@@ -2796,7 +2796,7 @@ function nn(s = {}) {
2796
2796
  }
2797
2797
  return D;
2798
2798
  }
2799
- function Us(s, e) {
2799
+ function qs(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,14 +2808,14 @@ function Us(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 xs(s, e, t) {
2811
+ function ks(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;
2815
2815
  for (const r of o) t.has(r) && i++;
2816
2816
  return i === 0 ? "unchecked" : i === o.length ? "checked" : "indeterminate";
2817
2817
  }
2818
- function Ye(s, e) {
2818
+ function Je(s, e) {
2819
2819
  const t = /* @__PURE__ */ new Set();
2820
2820
  for (const o of e) {
2821
2821
  const i = s.nodeByValue.get(String(o));
@@ -2824,17 +2824,17 @@ function Ye(s, e) {
2824
2824
  }
2825
2825
  return t;
2826
2826
  }
2827
- function an(s, e, t) {
2828
- const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r = xs(s, e, t), n = [], a = [];
2827
+ function cn(s, e, t) {
2828
+ const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r = ks(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
2832
2832
  for (const l of o) i.has(l) || (i.add(l), n.push(l));
2833
2833
  return { checkedAtoms: i, addedAtoms: n, removedAtoms: a };
2834
2834
  }
2835
- function Xt(s, e, t, o) {
2835
+ function Jt(s, e, t, o) {
2836
2836
  const i = (a) => String(o(a.data)), r = [], n = (a) => {
2837
- const l = xs(s, a, e);
2837
+ const l = ks(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") {
@@ -2857,7 +2857,7 @@ function Xt(s, e, t, o) {
2857
2857
  return r;
2858
2858
  }
2859
2859
  var $;
2860
- class ln {
2860
+ class dn {
2861
2861
  constructor(e, t = {}) {
2862
2862
  p(this, "element");
2863
2863
  p(this, "instanceId");
@@ -2865,7 +2865,7 @@ class ln {
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
+ M(this, $, !1);
2869
2869
  p(this, "selectedValues", /* @__PURE__ */ new Set());
2870
2870
  p(this, "selectedOptions", /* @__PURE__ */ new Map());
2871
2871
  p(this, "allOptions", []);
@@ -2899,11 +2899,16 @@ class ln {
2899
2899
  p(this, "isRTL", !1);
2900
2900
  p(this, "effectiveBadgesPosition", "bottom");
2901
2901
  p(this, "justClosedViaClick", !1);
2902
- // Set for one tick when the dropdown is opened by a pointer gesture. A fullscreen
2903
- // overlay (position:fixed, inset:0) appears over the pointer between mousedown and
2904
- // the follow-up click, so that click can target a common ancestor above the
2905
- // portaled panel and be misread as an outside-click. This guard swallows exactly
2906
- // that one click. See attachEvents() (mousedown) and handleClickOutside().
2902
+ // Set for one tick when the dropdown is opened by a pointer gesture, or when a
2903
+ // consumer drives the already-open panel from their own click handler (a repeat
2904
+ // open()/toggle(), or a scrollTo* command). A fullscreen overlay (position:fixed,
2905
+ // inset:0) appears over the pointer between mousedown and the follow-up click, so
2906
+ // that click can target a common ancestor above the portaled panel and be misread
2907
+ // as an outside-click; and an EXTERNAL control clicked to re-drive the open panel
2908
+ // sends its click bubbling to our document-level outside-click listener, which
2909
+ // would otherwise close the very panel the command just re-scrolled. This guard
2910
+ // swallows exactly that one click. See armClickGuard(), attachEvents() (mousedown)
2911
+ // and handleClickOutside().
2907
2912
  p(this, "justOpenedViaClick", !1);
2908
2913
  p(this, "positioningDriftWarned", !1);
2909
2914
  // Fullscreen counterpart of positioningDriftWarned: warn once per instance when an
@@ -3183,7 +3188,7 @@ class ln {
3183
3188
  return i ? i.isSelectable !== !1 : !0;
3184
3189
  }
3185
3190
  init() {
3186
- this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(), gt.debug(`Initialized [${this.instanceId}] with options:`, {
3191
+ this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(), bt.debug(`Initialized [${this.instanceId}] with options:`, {
3187
3192
  placeholder: this.options.searchPlaceholder,
3188
3193
  totalOptions: this.allOptions.length,
3189
3194
  isCloseOnSelect: this.options.isCloseOnSelect,
@@ -3210,7 +3215,7 @@ class ln {
3210
3215
  }
3211
3216
  /** (Re)build the ltree from `allOptions` and derive the visible flat list. */
3212
3217
  buildTree() {
3213
- this.tree = nn({
3218
+ this.tree = ln({
3214
3219
  idMember: this.options.valueMember,
3215
3220
  pathMember: this.options.pathMember,
3216
3221
  getPathCallback: this.options.getPathCallback,
@@ -3222,7 +3227,7 @@ class ln {
3222
3227
  treePathSeparator: this.options.treePathSeparator,
3223
3228
  treeId: this.instanceId,
3224
3229
  getDisplayValueCallback: (e) => this.getItemDisplayValue(e.data)
3225
- }), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? Us(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
3230
+ }), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? qs(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
3226
3231
  }
3227
3232
  /**
3228
3233
  * Whether cascade checkbox mode is active: a multi-select tree with
@@ -3237,7 +3242,7 @@ class ln {
3237
3242
  }
3238
3243
  /** Refresh the derived checked-atom set from the emitted `selectedValues`. */
3239
3244
  refreshCascadeAtoms() {
3240
- this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms = Ye(this.cascadeIndex, this.selectedValues));
3245
+ this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms = Je(this.cascadeIndex, this.selectedValues));
3241
3246
  }
3242
3247
  /**
3243
3248
  * Toggle a tree node in cascade mode: flip its whole subtree, re-project the
@@ -3245,7 +3250,7 @@ class ln {
3245
3250
  * so badges / form / change events reflect the policy (rolled-up branches, etc.).
3246
3251
  */
3247
3252
  toggleTreeCascade(e) {
3248
- const t = this.cascadeIndex, o = Ye(t, this.selectedValues), { checkedAtoms: i } = an(t, e, o);
3253
+ const t = this.cascadeIndex, o = Je(t, this.selectedValues), { checkedAtoms: i } = cn(t, e, o);
3249
3254
  this.commitCascadeAtoms(i);
3250
3255
  }
3251
3256
  /**
@@ -3256,7 +3261,7 @@ class ln {
3256
3261
  */
3257
3262
  commitCascadeAtoms(e) {
3258
3263
  var l;
3259
- const t = this.cascadeIndex, o = Xt(
3264
+ const t = this.cascadeIndex, o = Jt(
3260
3265
  t,
3261
3266
  e,
3262
3267
  this.cascadePolicy(),
@@ -3281,7 +3286,7 @@ class ln {
3281
3286
  */
3282
3287
  counterSelection() {
3283
3288
  if (this.isCascadeMode() && this.cascadeIndex) {
3284
- const e = Xt(
3289
+ const e = Jt(
3285
3290
  this.cascadeIndex,
3286
3291
  this.cascadeCheckedAtoms,
3287
3292
  "rolled-up",
@@ -3391,7 +3396,7 @@ class ln {
3391
3396
  */
3392
3397
  detectRTL() {
3393
3398
  const e = this.element.getRootNode(), t = e instanceof ShadowRoot ? e.host : this.element, o = t.getAttribute("dir") === "rtl", i = t.closest('[dir="rtl"]') !== null;
3394
- this.isRTL = o || i, gt.debug(`[${this.instanceId}] RTL Debug:`, {
3399
+ this.isRTL = o || i, bt.debug(`[${this.instanceId}] RTL Debug:`, {
3395
3400
  isShadowRoot: e instanceof ShadowRoot,
3396
3401
  elementDir: t.getAttribute("dir"),
3397
3402
  hasElementDir: o,
@@ -3417,7 +3422,7 @@ class ln {
3417
3422
  }
3418
3423
  buildHTML() {
3419
3424
  const e = this.options.container || document.body;
3420
- this.detectRTL(), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"), gt.debug(`[${this.instanceId}] Added ms--rtl class to element`)), (!this.options.isCheckboxesShown || !this.options.isMultipleEnabled) && this.element.classList.add("ms--no-checkboxes"), this.options.isSelectedPopoverEnabled || this.element.classList.add("ms--no-selected-popover");
3425
+ this.detectRTL(), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"), bt.debug(`[${this.instanceId}] Added ms--rtl class to element`)), (!this.options.isCheckboxesShown || !this.options.isMultipleEnabled) && this.element.classList.add("ms--no-checkboxes"), this.options.isSelectedPopoverEnabled || this.element.classList.add("ms--no-selected-popover");
3421
3426
  const t = document.createElement("div");
3422
3427
  t.className = "ms__input-wrapper", this.inputWrapper = t, this.input = document.createElement("input"), this.input.type = "text", this.input.className = "ms__input", this.input.placeholder = this.getPlaceholderText(), this.input.autocomplete = "off", this.options.searchInputMode === "readonly" ? this.input.readOnly = !0 : this.options.searchInputMode === "hidden" && (this.input.style.display = "none");
3423
3428
  const o = document.createElement("span");
@@ -3555,7 +3560,7 @@ class ln {
3555
3560
  }
3556
3561
  const e = this.scaledOptionHeight(), t = this.options.virtualScrollBuffer ?? 10;
3557
3562
  requestAnimationFrame(() => {
3558
- this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new Fs({
3563
+ this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new Ws({
3559
3564
  container: this.optionsContainer,
3560
3565
  itemHeight: e,
3561
3566
  items: this.filteredOptions,
@@ -3589,13 +3594,13 @@ class ln {
3589
3594
  if (!(d.getIsVisibleCallback ? d.getIsVisibleCallback(this) : d.isVisible ?? !0)) return;
3590
3595
  let m;
3591
3596
  d.getIsDisabledCallback ? m = d.getIsDisabledCallback(this) : d.isDisabled !== void 0 ? m = d.isDisabled : m = this.getBuiltInActionDisabled(d.action);
3592
- const g = m ? " disabled" : "", w = d.getTextCallback ? d.getTextCallback(this) : d.text;
3593
- let y = "";
3597
+ const g = m ? " disabled" : "", y = d.getTextCallback ? d.getTextCallback(this) : d.text;
3598
+ let x = "";
3594
3599
  if (d.getClassCallback) {
3595
3600
  const C = this.classSuffix(d.getClassCallback(this));
3596
- C && (y = ` ${C}`);
3597
- } else d.cssClass && (y = ` ${d.cssClass}`);
3598
- const v = 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>`;
3601
+ C && (x = ` ${C}`);
3602
+ } else d.cssClass && (x = ` ${d.cssClass}`);
3603
+ 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}">${y}</button>`;
3599
3604
  l.has(v) || l.set(v, []), l.get(v).push(_);
3600
3605
  }), l.size === 0) return "";
3601
3606
  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("");
@@ -3613,7 +3618,7 @@ class ln {
3613
3618
  isFocused: c,
3614
3619
  isMatched: d,
3615
3620
  isDisabled: a,
3616
- ...jt(this.presentationMode),
3621
+ ...Gt(this.presentationMode),
3617
3622
  isTreeNode: !1
3618
3623
  };
3619
3624
  m += this.toHtml(this.options.renderOptionContentCallback(e, g));
@@ -3640,28 +3645,28 @@ class ln {
3640
3645
  * chevron/toggle — every node is just a normal, selectable option.
3641
3646
  */
3642
3647
  renderTreeNode(e, t) {
3643
- const o = e.data, i = this.getItemValue(o), r = this.getItemDisplayValue(o), n = this.getItemIcon(o), a = this.getItemSubtitle(o), l = this.getItemDisabled(o), c = this.isCascadeMode() && this.cascadeIndex, d = c ? xs(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, u = c ? d === "checked" : this.selectedValues.has(String(i)), f = d === "indeterminate", m = t === this.focusedIndex, g = this.matchingIndices.has(t), w = e.isSelectable !== !1, y = e.level ?? 1, v = Math.max(0, y - 1), _ = ["ms__option", "ms__option--tree"];
3644
- _.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), u && _.push("ms__option--selected"), f && _.push("ms__option--indeterminate"), m && _.push("ms__option--focused"), g && _.push("ms__option--matched"), l && _.push("ms__option--disabled"), w || _.push("ms__option--tree-unselectable");
3645
- const C = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", E = w ? "" : ' data-selectable="false"';
3646
- let z = `<div class="${_.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${y}" style="--ms-tree-depth: ${v};"${C}${E}>`;
3647
- if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && w && (z += `<input type="checkbox" class="${f ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${u ? "checked" : ""}${f ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), z += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
3648
+ 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 ? ks(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, u = c ? d === "checked" : this.selectedValues.has(String(i)), f = d === "indeterminate", m = t === this.focusedIndex, g = this.matchingIndices.has(t), y = e.isSelectable !== !1, x = e.level ?? 1, v = Math.max(0, x - 1), _ = ["ms__option", "ms__option--tree"];
3649
+ _.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), u && _.push("ms__option--selected"), f && _.push("ms__option--indeterminate"), m && _.push("ms__option--focused"), g && _.push("ms__option--matched"), l && _.push("ms__option--disabled"), y || _.push("ms__option--tree-unselectable");
3650
+ const C = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", E = y ? "" : ' data-selectable="false"';
3651
+ let z = `<div class="${_.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${x}" style="--ms-tree-depth: ${v};"${C}${E}>`;
3652
+ if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && y && (z += `<input type="checkbox" class="${f ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${u ? "checked" : ""}${f ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), z += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
3648
3653
  const D = {
3649
3654
  index: t,
3650
3655
  isSelected: u,
3651
3656
  isFocused: m,
3652
3657
  isMatched: g,
3653
3658
  isDisabled: l,
3654
- ...jt(this.presentationMode),
3659
+ ...Gt(this.presentationMode),
3655
3660
  // Tree metadata — lets the callback branch on depth / branch-vs-leaf /
3656
3661
  // tristate without re-deriving any of it from the raw data item.
3657
3662
  isTreeNode: !0,
3658
3663
  isBranch: e.hasChildren,
3659
3664
  isLeaf: !e.hasChildren,
3660
3665
  childCount: Object.keys(e.children).length,
3661
- level: y,
3666
+ level: x,
3662
3667
  depth: v,
3663
3668
  path: e.path,
3664
- isSelectable: w,
3669
+ isSelectable: y,
3665
3670
  isIndeterminate: f
3666
3671
  };
3667
3672
  z += this.toHtml(this.options.renderOptionContentCallback(o, D));
@@ -3818,7 +3823,7 @@ class ln {
3818
3823
  this.options.isSearchEnabled && !h(this, $) && this.open(), this.handleSearch(t);
3819
3824
  }), this.input.addEventListener("keydown", (e) => this.handleKeydown(e)), this.documentClickHandler = (e) => this.handleClickOutside(e), setTimeout(() => {
3820
3825
  document.addEventListener("click", this.documentClickHandler);
3821
- }, 0), this.overlayCoord = Ui(() => this.close(), this.options.overlayGroup || void 0), this.documentKeydownHandler = (e) => {
3826
+ }, 0), this.overlayCoord = qi(() => this.close(), this.options.overlayGroup || void 0), this.documentKeydownHandler = (e) => {
3822
3827
  e.key === "Escape" && this.showSelectedPopover && (e.preventDefault(), this.hideSelectedPopover());
3823
3828
  }, document.addEventListener("keydown", this.documentKeydownHandler), this.dropdown.addEventListener("mousedown", (e) => {
3824
3829
  if (this.presentationMode !== "fullscreen") return;
@@ -4217,7 +4222,7 @@ class ln {
4217
4222
  */
4218
4223
  scrollToIndex(e, t) {
4219
4224
  const o = (t == null ? void 0 : t.block) ?? "start";
4220
- 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.scrollToRenderedIndex(e, { block: o }), !0) : (R.debug(`[${this.instanceId}] scrollToIndex(${e}) → false (closed)`), !1);
4225
+ 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);
4221
4226
  }
4222
4227
  /**
4223
4228
  * Scroll to the option whose value matches `value` (resolved within the current
@@ -4239,7 +4244,7 @@ class ln {
4239
4244
  const o = (t == null ? void 0 : t.block) ?? "start";
4240
4245
  if (!h(this, $) || this.isTreeMode())
4241
4246
  return R.debug(`[${this.instanceId}] scrollToGroup(${e}) → false (${this.isTreeMode() ? "tree mode" : "closed"})`), !1;
4242
- if (!this.virtualScroll) {
4247
+ if (this.armClickGuard(), !this.virtualScroll) {
4243
4248
  const r = this.dropdown.querySelector(
4244
4249
  `.ms__group-label[data-group="${CSS.escape(e)}"]`
4245
4250
  );
@@ -4286,7 +4291,12 @@ class ln {
4286
4291
  return;
4287
4292
  }
4288
4293
  }
4289
- (this.selectedValues.has(o) ? this.interactiveDeselect(e) : this.interactiveSelect(e)) && (this.options.isMultipleEnabled ? this.options.isCloseOnSelect && this.close() : this.close());
4294
+ const i = this.selectedValues.has(o);
4295
+ if (i && !this.options.isMultipleEnabled) {
4296
+ this.close();
4297
+ return;
4298
+ }
4299
+ (i ? this.interactiveDeselect(e) : this.interactiveSelect(e)) && (this.options.isMultipleEnabled ? this.options.isCloseOnSelect && this.close() : this.close());
4290
4300
  }
4291
4301
  /**
4292
4302
  * The single funnel for an interactive (user-initiated) selection. Consults
@@ -4352,7 +4362,7 @@ class ln {
4352
4362
  if (this.isCascadeMode() && this.cascadeIndex) {
4353
4363
  const i = this.cascadeIndex.nodeByValue.get(o);
4354
4364
  if (i) {
4355
- const r = this.cascadeIndex.atomsUnder.get(i.path) ?? [], n = new Set(Ye(this.cascadeIndex, this.selectedValues));
4365
+ const r = this.cascadeIndex.atomsUnder.get(i.path) ?? [], n = new Set(Je(this.cascadeIndex, this.selectedValues));
4356
4366
  for (const a of r) n.delete(a);
4357
4367
  this.commitCascadeAtoms(n);
4358
4368
  return;
@@ -4362,7 +4372,7 @@ class ln {
4362
4372
  }
4363
4373
  selectAll() {
4364
4374
  if (this.isCascadeMode() && this.cascadeIndex) {
4365
- const t = this.cascadeIndex, o = new Set(Ye(t, this.selectedValues));
4375
+ const t = this.cascadeIndex, o = new Set(Je(t, this.selectedValues));
4366
4376
  for (const i of this.treeNodes)
4367
4377
  t.atomPaths.has(i.path) && (this.getItemDisabled(i.data) || o.add(String(this.getItemValue(i.data))));
4368
4378
  this.commitCascadeAtoms(o);
@@ -4409,17 +4419,31 @@ class ln {
4409
4419
  const t = e.added ?? [], o = e.removed ?? [];
4410
4420
  this.options.onSelect && t.forEach((i) => this.options.onSelect(i)), this.options.onDeselect && o.forEach((i) => this.options.onDeselect(i)), (t.length > 0 || o.length > 0) && this.options.onChange && this.options.onChange(this.getSelected());
4411
4421
  }
4422
+ /**
4423
+ * Shield the trailing document `click` for one tick. A consumer that drives the
4424
+ * dropdown from their OWN button's click handler (`el.open()` / `el.toggle()`, or a
4425
+ * scrollTo* command re-driving the already-open panel) would otherwise have that
4426
+ * same click bubble to our document-level outside-click listener and immediately
4427
+ * close it. Centralizing it here means every entry point — open(), the internal
4428
+ * pointer path, and the public scrollTo* API — is covered. Cleared next tick, so a
4429
+ * genuine later outside-click still closes as normal. Harmless for non-click
4430
+ * callers (typing, programmatic-on-load, server-driven): no trailing click arrives
4431
+ * before it clears.
4432
+ */
4433
+ armClickGuard() {
4434
+ this.justOpenedViaClick = !0, setTimeout(() => {
4435
+ this.justOpenedViaClick = !1;
4436
+ }, 0);
4437
+ }
4412
4438
  /** Open the dropdown (no-op if already open, or if there is nothing to show). */
4413
4439
  open() {
4414
4440
  var e;
4415
- J.debug(`[${this.instanceId}] open() called`, { isOpen: h(this, $) }), !h(this, $) && (this.justOpenedViaClick = !0, setTimeout(() => {
4416
- this.justOpenedViaClick = !1;
4417
- }, 0), this.hideMessage(), P(this, $, !0), this.element.classList.add("ms--open"), this.dropdown.classList.add("ms__dropdown--visible"), J.info(`[${this.instanceId}] Dropdown opened`), this.input.placeholder = this.getPlaceholderText(), !this.options.isMultipleEnabled && this.options.isSearchEnabled && (this.input.value = this.searchTerm), this.options.searchCallback && this.options.isKeepOptionsOnSearch && !this.searchTerm && (this.filteredOptions = [...this.allOptions], J.debug(`[${this.instanceId}] Showing ${this.allOptions.length} initial options on open`)), this.presentationMode === "fullscreen" && this.enterFullscreen(), this.renderDropdown(), this.presentationMode !== "fullscreen" && this.positionDropdown(), this.dropdown.addEventListener("scroll", this.onDropdownScroll, !0), this.hint && this.presentationMode === "floating" && (this.hint.classList.add("ms__hint--visible"), this.positionHint()), (e = this.overlayCoord) == null || e.activate());
4441
+ J.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"), J.info(`[${this.instanceId}] Dropdown opened`), this.input.placeholder = this.getPlaceholderText(), !this.options.isMultipleEnabled && this.options.isSearchEnabled && (this.input.value = this.searchTerm), this.options.searchCallback && this.options.isKeepOptionsOnSearch && !this.searchTerm && (this.filteredOptions = [...this.allOptions], J.debug(`[${this.instanceId}] Showing ${this.allOptions.length} initial options on open`)), this.presentationMode === "fullscreen" && this.enterFullscreen(), this.renderDropdown(), this.presentationMode !== "fullscreen" && this.positionDropdown(), this.dropdown.addEventListener("scroll", this.onDropdownScroll, !0), this.hint && this.presentationMode === "floating" && (this.hint.classList.add("ms__hint--visible"), this.positionHint()), (e = this.overlayCoord) == null || e.activate());
4418
4442
  }
4419
4443
  /** Close the dropdown (no-op if already closed). */
4420
4444
  close() {
4421
4445
  var e;
4422
- J.debug(`[${this.instanceId}] close() called`, { isOpen: h(this, $) }), h(this, $) && (P(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(), J.debug(`[${this.instanceId}] Dropdown closed`));
4446
+ J.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(), J.debug(`[${this.instanceId}] Dropdown closed`));
4423
4447
  }
4424
4448
  /** Toggle the dropdown open/closed. */
4425
4449
  toggle() {
@@ -4441,7 +4465,7 @@ class ln {
4441
4465
  */
4442
4466
  anchorFloatingPanel(e, t) {
4443
4467
  var r;
4444
- const o = ((r = t.isLocked) == null ? void 0 : r.call(t)) ?? !0, i = tt(e, this.inputWrapper, {
4468
+ const o = ((r = t.isLocked) == null ? void 0 : r.call(t)) ?? !0, i = st(e, this.inputWrapper, {
4445
4469
  strategy: "fixed",
4446
4470
  placement: "bottom-start",
4447
4471
  offset: 4,
@@ -4511,10 +4535,10 @@ class ln {
4511
4535
  */
4512
4536
  warnFullscreenContainingBlock() {
4513
4537
  if (this.fullscreenContainingBlockWarned || typeof window > "u") return;
4514
- const e = os(this.dropdown);
4538
+ const e = rs(this.dropdown);
4515
4539
  if (e === window) return;
4516
4540
  this.fullscreenContainingBlockWarned = !0;
4517
- const t = e, o = t.id ? `#${t.id}` : "", i = t.classList.length ? `.${Array.from(t.classList).join(".")}` : "", r = `<${t.tagName.toLowerCase()}${o}${i}>`, n = To(t);
4541
+ 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);
4518
4542
  console.warn(
4519
4543
  `[@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).
4520
4544
  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.`
@@ -4552,7 +4576,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4552
4576
  * and a redundant call is a no-op rather than acquiring a second.
4553
4577
  */
4554
4578
  lockBodyScroll() {
4555
- this.bodyScrollUnlock || (this.bodyScrollUnlock = Ri());
4579
+ this.bodyScrollUnlock || (this.bodyScrollUnlock = Hi());
4556
4580
  }
4557
4581
  /** Restore page scroll (no-op if it wasn't locked). */
4558
4582
  unlockBodyScroll() {
@@ -4591,7 +4615,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4591
4615
  * we just hold the returned cleanup. No-op where `visualViewport` is unavailable.
4592
4616
  */
4593
4617
  observeKeyboardInset() {
4594
- this.keyboardInsetCleanup = Bi(this.dropdown);
4618
+ this.keyboardInsetCleanup = Fi(this.dropdown);
4595
4619
  }
4596
4620
  /** Detach keyboard-inset tracking and restore the panel's CSS-driven geometry. */
4597
4621
  unobserveKeyboardInset() {
@@ -4797,7 +4821,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4797
4821
  this.hintCleanup && this.hintCleanup();
4798
4822
  let e = "top-start";
4799
4823
  this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom")));
4800
- const t = tt(this.hint, this.inputWrapper, {
4824
+ const t = st(this.hint, this.inputWrapper, {
4801
4825
  strategy: "fixed",
4802
4826
  placement: e,
4803
4827
  offset: 4,
@@ -4883,7 +4907,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4883
4907
  if (!this.selectedPopoverContainer) return;
4884
4908
  const o = this.scaledBadgeHeight(), i = Math.round(4 * this.fullscreenScale()), r = o + i, n = this.options.virtualScrollBuffer ?? 10;
4885
4909
  requestAnimationFrame(() => {
4886
- this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Fs({
4910
+ this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Ws({
4887
4911
  container: this.selectedPopoverContainer,
4888
4912
  itemHeight: r,
4889
4913
  items: e,
@@ -4925,7 +4949,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4925
4949
  renderBadgeHTML(e, t) {
4926
4950
  const o = this.getItemValue(e), i = {
4927
4951
  ...t,
4928
- ...jt(this.presentationMode)
4952
+ ...Gt(this.presentationMode)
4929
4953
  };
4930
4954
  if (!t.isInPopover && this.options.renderBadgeCallback) {
4931
4955
  const d = this.toHtml(this.options.renderBadgeCallback(e, i));
@@ -5035,9 +5059,9 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
5035
5059
  if (t !== o) return !1;
5036
5060
  Object.assign(this.options, e);
5037
5061
  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;
5038
- if ("options" in e && e.options !== void 0 ? (this.allOptions = e.options, this.reconcileSelectedOptions(), this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]) : i && (this.isTreeMode() ? this.buildTree() : this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]), ("checkboxMode" in e || "cascadeSelectPolicy" in e) && !i && !("options" in e) && this.isTreeMode() && (this.cascadeIndex = this.isCascadeMode() ? Us(this.tree, (a) => String(this.getItemValue(a))) : null, this.isCascadeMode() && this.cascadeIndex)) {
5039
- this.cascadeCheckedAtoms = Ye(this.cascadeIndex, this.selectedValues);
5040
- const a = Xt(
5062
+ 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() ? qs(this.tree, (a) => String(this.getItemValue(a))) : null, this.isCascadeMode() && this.cascadeIndex)) {
5063
+ this.cascadeCheckedAtoms = Je(this.cascadeIndex, this.selectedValues);
5064
+ const a = Jt(
5041
5065
  this.cascadeIndex,
5042
5066
  this.cascadeCheckedAtoms,
5043
5067
  this.cascadePolicy(),
@@ -5096,7 +5120,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
5096
5120
  spawnTooltip(e) {
5097
5121
  var r;
5098
5122
  (r = this.tooltips.get(e.id)) == null || r.destroy();
5099
- const t = this.element.getRootNode(), o = t instanceof ShadowRoot ? t : null, i = tn({
5123
+ const t = this.element.getRootNode(), o = t instanceof ShadowRoot ? t : null, i = on({
5100
5124
  trigger: e.trigger,
5101
5125
  container: this.options.container ?? o ?? document.body,
5102
5126
  content: e.content,
@@ -5243,7 +5267,7 @@ ${o}` : t;
5243
5267
  const n = document.createElement("div");
5244
5268
  n.className = "ms__option-tooltip ms__option-tooltip--fullscreen", typeof r == "string" ? n.textContent = r : n.appendChild(r);
5245
5269
  const a = this.element.getRootNode(), l = a instanceof ShadowRoot ? a : null, c = this.options.container ?? l ?? document.body;
5246
- this.labelRevealTrigger = e, this.labelRevealPanel = n, this.labelRevealPopover = sn({
5270
+ this.labelRevealTrigger = e, this.labelRevealPanel = n, this.labelRevealPopover = rn({
5247
5271
  reference: e,
5248
5272
  panel: n,
5249
5273
  container: c,
@@ -5278,7 +5302,7 @@ ${o}` : t;
5278
5302
  if ((this.options.container ?? l ?? document.body).appendChild(n), this.messageEl = n, this.presentationMode === "fullscreen" && (h(this, $) || this.showSelectedPopover))
5279
5303
  n.classList.add("ms__message--fullscreen");
5280
5304
  else {
5281
- const u = tt(n, this.inputWrapper, {
5305
+ const u = st(n, this.inputWrapper, {
5282
5306
  strategy: "fixed",
5283
5307
  placement: (t == null ? void 0 : t.placement) ?? "bottom",
5284
5308
  offset: 8,
@@ -5352,11 +5376,11 @@ ${o}` : t;
5352
5376
  // ========================================================================
5353
5377
  destroy() {
5354
5378
  var e;
5355
- 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"), gt.info(`[${this.instanceId}] Component destroyed`);
5379
+ 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"), bt.info(`[${this.instanceId}] Component destroyed`);
5356
5380
  }
5357
5381
  }
5358
5382
  $ = new WeakMap();
5359
- function cn() {
5383
+ function hn() {
5360
5384
  return {
5361
5385
  fromAttribute(s) {
5362
5386
  if (s === null || s.trim() === "") return [];
@@ -5377,29 +5401,29 @@ function cn() {
5377
5401
  }
5378
5402
  };
5379
5403
  }
5380
- const dn = ["json", "csv", "plain"], Gs = ",", qs = `
5404
+ const un = ["json", "csv", "plain"], Xs = ",", Ys = `
5381
5405
  `;
5382
- function hn(s, e, t = {}) {
5406
+ function mn(s, e, t = {}) {
5383
5407
  if (s == null || s.trim() === "") return { options: [] };
5384
- const o = Xs(t.splitter ?? Gs) || Gs, i = Xs(t.rowSplitter ?? qs) || qs;
5408
+ const o = Js(t.splitter ?? Xs) || Xs, i = Js(t.rowSplitter ?? Ys) || Ys;
5385
5409
  switch (e) {
5386
5410
  case "csv":
5387
- return pn(s, o, i);
5411
+ return gn(s, o, i);
5388
5412
  case "plain":
5389
- return mn(s, o, i);
5413
+ return fn(s, o, i);
5390
5414
  case "json":
5391
5415
  default:
5392
- return un(s);
5416
+ return pn(s);
5393
5417
  }
5394
5418
  }
5395
- function Xs(s) {
5419
+ function Js(s) {
5396
5420
  return s.replace(
5397
5421
  /\\[ntr\\]/g,
5398
5422
  (e) => e === "\\n" ? `
5399
5423
  ` : e === "\\t" ? " " : e === "\\r" ? "\r" : "\\"
5400
5424
  );
5401
5425
  }
5402
- function un(s) {
5426
+ function pn(s) {
5403
5427
  let e;
5404
5428
  try {
5405
5429
  e = JSON.parse(s);
@@ -5408,11 +5432,11 @@ function un(s) {
5408
5432
  }
5409
5433
  return Array.isArray(e) ? { options: e } : { options: [], error: "data-options JSON must be an array" };
5410
5434
  }
5411
- function mn(s, e, t) {
5435
+ function fn(s, e, t) {
5412
5436
  return { options: s.split(t).flatMap((i) => i.split(e)).map((i) => i.trim()).filter((i) => i.length > 0).map((i) => [i, i]) };
5413
5437
  }
5414
- function pn(s, e, t) {
5415
- const o = fn(s, e, t).filter((n) => !(n.length === 1 && n[0].trim() === ""));
5438
+ function gn(s, e, t) {
5439
+ const o = bn(s, e, t).filter((n) => !(n.length === 1 && n[0].trim() === ""));
5416
5440
  if (o.length < 2)
5417
5441
  return { options: [], error: "data-options CSV needs a header row and at least one data row" };
5418
5442
  const i = o[0].map((n) => n.trim());
@@ -5423,7 +5447,7 @@ function pn(s, e, t) {
5423
5447
  }), a;
5424
5448
  }) };
5425
5449
  }
5426
- function fn(s, e, t) {
5450
+ function bn(s, e, t) {
5427
5451
  const o = [];
5428
5452
  let i = [], r = "", n = !1;
5429
5453
  for (let a = 0; a < s.length; ) {
@@ -5436,7 +5460,7 @@ function fn(s, e, t) {
5436
5460
  }
5437
5461
  return i.push(r), o.push(i), o;
5438
5462
  }
5439
- const Po = `@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-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{-webkit-tap-highlight-color:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{box-sizing:border-box;position:relative;display:flex;align-items:center;gap:var(--ms-input-gap);height:var(--ms-input-height);padding-inline:var(--ms-input-padding-h);background:var(--ms-input-bg);color:var(--ms-input-color);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-wrapper:hover:not(:focus-within){border:var(--ms-input-border-hover)}.ms__input-wrapper:focus-within{border:var(--ms-input-border-focus)}.ms__input{flex:1 1 auto;min-width:0;box-sizing:border-box;font-family:inherit;height:100%;padding:0;border:none;background:transparent;font-size:var(--ms-input-font-size);color:var(--ms-input-color);cursor:pointer;outline:none}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__toggle{flex:0 0 auto;display:block;width:var(--ms-toggle-icon-size);height:var(--ms-toggle-icon-size);color:var(--ms-toggle-icon-color);cursor:pointer}.ms__toggle:before{content:"";display:block;width:100%;height:100%;background-color:currentColor;-webkit-mask:var(--ms-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat;transform:rotate(var(--ms-toggle-rotate-closed, 90deg));transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{color:var(--ms-toggle-icon-color-open)}.ms--open .ms__toggle:before{transform:rotate(var(--ms-toggle-rotate-open, -90deg))}.ms__counter{flex:0 0 auto;padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:scale(var(--ms-transform-scale-hover))}.ms__input-clear{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-input-clear-size);height:var(--ms-input-clear-size);padding:0;color:var(--ms-input-clear-color);background:transparent;border:none;border-radius:var(--ms-input-clear-border-radius);cursor:pointer;transition:background var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input-clear:hover{background:var(--ms-input-clear-bg-hover)}.ms__input-clear:before{content:"";display:block;width:var(--ms-input-clear-icon-size);height:var(--ms-input-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}.ms__actions{display:flex;flex-direction:column;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding)}.ms__actions--top{border-bottom:var(--ms-actions-border-bottom)}.ms__actions--bottom{flex-direction:column-reverse;border-top:var(--ms-actions-border-bottom)}.ms__actions-row{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap)}.ms__actions--wrap .ms__actions-row{flex-wrap:wrap}.ms__actions--sticky{position:sticky;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__actions--sticky.ms__actions--top{top:0}.ms__actions--sticky.ms__actions--bottom{bottom:0}.ms__actions--align-stretch .ms__action-btn{flex:1}.ms__actions--align-left .ms__actions-row{justify-content:flex-start}.ms__actions--align-right .ms__actions-row{justify-content:flex-end}.ms__actions--align-center .ms__actions-row{justify-content:center}.ms__actions--align-space-between .ms__actions-row{justify-content:space-between}.ms__action-btn{font-family:inherit;padding:var(--ms-action-btn-padding);font-size:var(--ms-action-btn-font-size);border:var(--ms-action-btn-border);border-radius:var(--ms-action-btn-border-radius);background:var(--ms-action-button-bg);color:var(--ms-action-button-color);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}@media (hover: hover){.ms__action-btn:hover{background:var(--ms-action-button-bg-hover);border-color:var(--ms-action-button-border-color-hover)}}.ms__action-btn:active{transform:scale(var(--ms-transform-scale-active))}.ms__action-btn:disabled,.ms__action-btn[disabled]{opacity:var(--ms-disabled-opacity);cursor:not-allowed;pointer-events:none}}@layer component{.ms__hint{display:none;position:fixed;z-index:var(--ms-z-index-popover);padding:var(--ms-hint-padding);background:var(--ms-hint-bg);border:var(--ms-hint-border);border-radius:var(--ms-hint-border-radius);box-shadow:var(--ms-hint-box-shadow);font-size:var(--ms-hint-font-size);color:var(--ms-hint-color);line-height:var(--ms-line-height-relaxed);max-width:100%}.ms__hint--visible{display:block}.ms__dropdown{display:none;position:fixed;box-sizing:border-box;font-family:inherit;z-index:var(--ms-z-index-dropdown);background:var(--ms-dropdown-bg);border:var(--ms-dropdown-border);border-radius:var(--ms-dropdown-border-radius);box-shadow:var(--ms-dropdown-box-shadow);width:var(--ms-dropdown-width);max-height:var(--ms-options-max-height);overflow:hidden;color:var(--ms-dropdown-text-color)}.ms__dropdown--visible{display:flex;flex-direction:column}.ms__dropdown--fullscreen,.ms__selected-popover--fullscreen{--ms-rem: var(--ms-fullscreen-rem);--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tree-base-indent: var(--ms-fullscreen-tree-base-indent);--ms-tree-indent: var(--ms-fullscreen-tree-indent)}.ms__selected-popover--fullscreen{--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(4.2 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-badge-text-padding: 0 calc(1.2 * var(--ms-rem));--ms-badge-remove-width: calc(3.6 * var(--ms-rem));--ms-badge-remove-icon-size: calc(1.2 * var(--ms-rem));--ms-badge-remove-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-padding: calc(.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem))}.ms__dropdown--fullscreen{position:fixed;top:0;inset-inline-start:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;--ms-dropdown-inner-border-radius: 0;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__dropdown--fullscreen .ms__dropdown-inner{display:flex;flex-direction:column;flex:1;min-height:0;max-height:none;overflow:hidden}.ms__dropdown--fullscreen .ms__options{flex:1 1 0;min-height:0;height:auto;max-height:none;overflow-y:auto;padding-bottom:var(--ms-option-gap)}.ms__dropdown--fullscreen .ms__actions{flex:0 0 auto}.ms__fullscreen-header,.ms__selected-popover--fullscreen .ms__selected-popover-header{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:var(--ms-fullscreen-header-gap);min-height:var(--ms-fullscreen-header-min-height);padding:var(--ms-fullscreen-header-padding);background:var(--ms-fullscreen-header-bg);border-bottom:var(--ms-fullscreen-header-border)}.ms__fullscreen-header{align-content:flex-start}.ms__fullscreen-header>.ms__fullscreen-search-wrapper{min-height:var(--ms-fullscreen-header-min-height)}.ms__fullscreen-nav{flex:0 0 100%;display:flex;align-items:center;justify-content:space-between;gap:var(--ms-fullscreen-nav-gap);padding-top:var(--ms-fullscreen-nav-padding-top)}.ms__fullscreen-nav-count{font-size:var(--ms-fullscreen-nav-count-font-size);color:var(--ms-fullscreen-nav-count-color)}.ms__fullscreen-nav-controls{display:flex;align-items:center;gap:var(--ms-fullscreen-nav-gap)}.ms__fullscreen-nav-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-nav-btn-size);height:var(--ms-fullscreen-nav-btn-size);padding:0;color:var(--ms-fullscreen-nav-btn-color);background:var(--ms-fullscreen-nav-btn-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-nav-btn:hover:not(:disabled){background:var(--ms-fullscreen-nav-btn-bg-hover)}.ms__fullscreen-nav-btn:disabled{opacity:.4;cursor:default}.ms__fullscreen-nav-btn:before{content:"";display:block;width:var(--ms-fullscreen-nav-btn-icon-size);height:var(--ms-fullscreen-nav-btn-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;mask:var(--ms-fullscreen-nav-btn-icon) center / contain no-repeat;transform:rotate(-90deg)}.ms__fullscreen-nav-btn--next:before{transform:rotate(90deg)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 0;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex;align-items:center}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-mode-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-mode-toggle-size);height:var(--ms-fullscreen-mode-toggle-size);margin-inline-end:var(--ms-fullscreen-mode-toggle-gap);margin-inline-start:calc((var(--ms-fullscreen-close-size) - var(--ms-fullscreen-mode-toggle-size)) / 2 - var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-mode-toggle-color);background:var(--ms-fullscreen-mode-toggle-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-mode-toggle:hover{background:var(--ms-fullscreen-mode-toggle-bg-hover)}.ms__fullscreen-mode-toggle:before{content:"";display:block;width:var(--ms-fullscreen-mode-toggle-icon-size);height:var(--ms-fullscreen-mode-toggle-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat;mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat}.ms__fullscreen-mode-toggle[data-mode=navigate]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-search)}.ms__fullscreen-mode-toggle[data-mode=filter]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-filter)}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;border-radius:var(--ms-dropdown-inner-border-radius);overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow:hidden}.ms__badge-tooltip{position:fixed;z-index:var(--ms-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-tooltip-bg);color:var(--ms-tooltip-text-color);padding:var(--ms-tooltip-padding);border-radius:var(--ms-tooltip-border-radius);font-size:var(--ms-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-tooltip-shadow);pointer-events:none}.ms__badge-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip{position:fixed;z-index:var(--ms-option-tooltip-z-index);opacity:0;visibility:hidden;transition:opacity var(--ms-transition-normal) ease,visibility var(--ms-transition-normal) ease;background:var(--ms-option-tooltip-bg);color:var(--ms-option-tooltip-text-color);padding:var(--ms-option-tooltip-padding);border-radius:var(--ms-option-tooltip-border-radius);font-size:var(--ms-option-tooltip-font-size);line-height:var(--ms-line-height-relaxed);max-width:var(--ms-option-tooltip-max-width);word-wrap:break-word;white-space:pre-wrap;box-shadow:var(--ms-option-tooltip-shadow);pointer-events:none}.ms__option-tooltip--visible{opacity:1;visibility:visible}.ms__option-tooltip--fullscreen{z-index:var(--ms-z-index-fullscreen-tooltip)}.ms__message{position:fixed;z-index:var(--ms-message-z-index);box-sizing:border-box;max-width:var(--ms-message-max-width);padding:var(--ms-message-padding);font-family:inherit;font-size:var(--ms-message-font-size);font-weight:var(--ms-message-font-weight);line-height:var(--ms-line-height-normal);color:var(--ms-message-color);background:var(--ms-message-bg);border:var(--ms-message-border);border-radius:var(--ms-message-border-radius);box-shadow:var(--ms-message-shadow);cursor:pointer;opacity:0;transition:opacity var(--ms-transition-normal) ease;-webkit-tap-highlight-color:transparent}.ms__message--visible{opacity:1}.ms__message--info{background:var(--ms-message-info-bg);color:var(--ms-message-info-color)}.ms__message--warning{background:var(--ms-message-warning-bg);color:var(--ms-message-warning-color)}.ms__message--error{background:var(--ms-message-error-bg);color:var(--ms-message-error-color)}.ms__message--success{background:var(--ms-message-success-bg);color:var(--ms-message-success-color)}.ms__message--fullscreen{left:50%;right:auto;bottom:calc(var(--ms-message-fullscreen-offset) + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(var(--ms-message-max-width),calc(100vw - 4 * var(--ms-fullscreen-rem)));padding:calc(1 * var(--ms-fullscreen-rem)) calc(1.4 * var(--ms-fullscreen-rem));font-size:calc(var(--base-font-size-sm, 1.4) * var(--ms-fullscreen-rem))}.ms__selected-popover{display:none;position:fixed;box-sizing:border-box;z-index:var(--ms-z-index-popover);background:var(--ms-selected-popover-bg);border:var(--ms-selected-popover-border);border-radius:var(--ms-selected-popover-border-radius);box-shadow:var(--ms-selected-popover-box-shadow);width:var(--ms-selected-popover-width);max-height:var(--ms-selected-popover-max-height);overflow:hidden}.ms__selected-popover--visible{display:flex;flex-direction:column}.ms__selected-popover--virtual{display:block;overflow:visible;max-height:none}.ms__selected-popover--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:none;border-radius:0;overflow:hidden;background:var(--ms-fullscreen-bg);color:var(--ms-fullscreen-text-color);z-index:var(--ms-z-index-fullscreen);box-sizing:border-box;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}.ms__selected-popover--fullscreen .ms__selected-popover-body{flex:1 1 0;min-height:0;max-height:none}.ms__selected-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--ms-selected-popover-header-padding);background:var(--ms-selected-popover-header-bg);border-bottom:var(--ms-selected-popover-header-border-bottom);font-size:var(--ms-selected-popover-header-font-size);font-weight:var(--ms-selected-popover-header-font-weight);color:var(--ms-selected-popover-header-color)}.ms__selected-popover-close{display:flex;align-items:center;justify-content:center;width:var(--ms-popover-close-size);height:var(--ms-popover-close-size);padding:0;border:none;background:var(--ms-selected-popover-close-bg);color:var(--ms-selected-popover-close-color);font-size:var(--ms-selected-popover-close-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-selected-popover-close-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__selected-popover-close:hover{background:var(--ms-selected-popover-close-bg-hover);color:var(--ms-selected-popover-close-color-hover)}.ms__selected-popover-close:before{content:"";display:block;width:var(--ms-selected-popover-close-icon-size);height:var(--ms-selected-popover-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__selected-popover-body{display:flex;flex-direction:column;gap:var(--ms-selected-popover-body-gap);padding:var(--ms-selected-popover-body-padding);overflow-y:auto;max-height:var(--ms-selected-popover-body-max-height);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__selected-popover-body::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__selected-popover-body::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__selected-popover-body::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__selected-popover-body .ms__badge{width:100%;min-height:fit-content;line-height:var(--ms-line-height-relaxed);flex-shrink:0}.ms__selected-popover-body .ms__badge-text{flex:1;min-width:0;white-space:normal;word-wrap:break-word}.ms__selected-popover-body--virtual{display:block;max-height:none;padding:0}.ms__selected-popover-body--virtual .ms__badge{height:var(--ms-badge-height-virtual, 36px);min-height:var(--ms-badge-height-virtual, 36px);max-height:var(--ms-badge-height-virtual, 36px);margin-bottom:var(--ms-selected-popover-body-gap);overflow:hidden;box-sizing:border-box}.ms__selected-popover-body--virtual .ms__badge-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@layer component{.ms--disabled .ms__input-wrapper{opacity:var(--ms-disabled-input-opacity);background:var(--ms-input-bg-disabled);cursor:not-allowed}.ms--disabled .ms__input{cursor:not-allowed}.ms--no-checkboxes .ms__option{gap:0;padding-inline-start:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-inline-start:0}.ms--no-selected-popover .ms__counter,.ms--no-selected-popover .ms__badge[data-action=show-selected],.ms--no-selected-popover .ms__badge--counter,.ms--no-selected-popover .ms__badge--more{cursor:default}}@layer component{@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__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 / contain;mask:var(--ms-icon-check) no-repeat center / contain}.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}}`, Ys = [
5463
+ const Mo = `@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-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__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 = [
5440
5464
  "top",
5441
5465
  "top-start",
5442
5466
  "top-end",
@@ -5449,7 +5473,7 @@ const Po = `@layer variables,component,overrides;@layer variables{:host{display:
5449
5473
  "right",
5450
5474
  "right-start",
5451
5475
  "right-end"
5452
- ], N = () => Wo(), gn = [
5476
+ ], N = () => Uo(), vn = [
5453
5477
  // ── Strings (cosmetic → update). Optional ones are nullable: absent → null ─
5454
5478
  { configKey: "searchHint", attribute: "search-hint", converter: A({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
5455
5479
  { configKey: "searchPlaceholder", attribute: "search-placeholder", converter: A({ isNullable: !0 }), on: "update", description: 'Placeholder text for the search input. When unset it defaults to "Search..."; if `show-search-mode-toggle` is on, the default instead becomes mode-aware ("Search…" in navigate, "Filter…" in filter). An explicit value always wins and stays fixed.' },
@@ -5512,8 +5536,8 @@ const Po = `@layer variables,component,overrides;@layer variables{:host{display:
5512
5536
  { configKey: "actionsAlign", attribute: "actions-align", converter: j(["stretch", "left", "right", "center", "space-between"], { default: "stretch" }), on: "update", description: "Horizontal alignment of the action buttons." },
5513
5537
  { configKey: "checkboxAlign", attribute: "checkbox-align", converter: j(["top", "center", "bottom"], { default: "center" }), on: "update", description: "Vertical alignment of an option checkbox." },
5514
5538
  { configKey: "valueFormat", attribute: "value-format", converter: j(["json", "csv", "array"], { default: "json" }), on: "reinit", description: "Serialization format the control emits its value in." },
5515
- { configKey: "badgeTooltipPlacement", attribute: "badge-tooltip-placement", converter: j(Ys, { default: "top" }), on: "update", description: "Preferred placement of a badge tooltip relative to its badge (floating-ui placement)." },
5516
- { configKey: "optionTooltipPlacement", attribute: "option-tooltip-placement", converter: j(Ys, { default: "top-start" }), on: "update", description: "Preferred placement of an option tooltip (floating-ui placement)." },
5539
+ { configKey: "badgeTooltipPlacement", attribute: "badge-tooltip-placement", converter: j(Qs, { default: "top" }), on: "update", description: "Preferred placement of a badge tooltip relative to its badge (floating-ui placement)." },
5540
+ { configKey: "optionTooltipPlacement", attribute: "option-tooltip-placement", converter: j(Qs, { default: "top-start" }), on: "update", description: "Preferred placement of an option tooltip (floating-ui placement)." },
5517
5541
  {
5518
5542
  configKey: "mobilePresentation",
5519
5543
  attribute: "mobile-presentation",
@@ -5565,16 +5589,24 @@ const Po = `@layer variables,component,overrides;@layer variables{:host{display:
5565
5589
  { configKey: "isOptionTooltipFollowCursor", attribute: "option-tooltip-follow-cursor", converter: H("default-false"), on: "update", description: "Make option tooltips follow the pointer." },
5566
5590
  { configKey: "isSearchModeToggleShown", attribute: "show-search-mode-toggle", converter: H("default-false"), on: "update", description: "Show a clickable toggle in the phone fullscreen overlay search header that flips `search-mode` between `filter` and `navigate` live. Fullscreen-only; no effect in the floating presentation or when search is disabled." },
5567
5591
  // ── Special attributes ───────────────────────────────────────────────────
5568
- { configKey: "initialValues", attribute: "initial-values", converter: cn(), default: [], on: "reinit", type: "Array<string | number>", description: 'Values selected on first render. Accepts a JSON array (`["a","b"]`) or a bare CSV (`a,b,c`).' },
5592
+ { configKey: "initialValues", attribute: "initial-values", converter: hn(), default: [], on: "reinit", type: "Array<string | number>", description: 'Values selected on first render. Accepts a JSON array (`["a","b"]`) or a bare CSV (`a,b,c`).' },
5569
5593
  { configKey: "showDebugInfo", attribute: "show-debug-info", converter: H("default-false"), on: "update", description: "Render an in-component debug panel.", deprecated: "Use per-instance logging (el.enableLogging()) instead." },
5594
+ // ── Render gate (element-only; NON_PICKER) ───────────────────────────────
5595
+ {
5596
+ configKey: "deferRender",
5597
+ attribute: "defer",
5598
+ converter: H("presence"),
5599
+ on: "reinit",
5600
+ description: "Hold the initial render. When the `defer` attribute is present on upgrade the component builds nothing (it only reserves space) — so options, callbacks (e.g. `customStylesCallback`) and event listeners can all be wired first, then released with `el.ready()` (or by removing the `defer` attribute, for server-driven frameworks). The release builds the picker ONCE with everything already in place, avoiding the upgrade-then-restyle flash. Absent (default): builds immediately on connect. Latched — once released the gate never re-closes."
5601
+ },
5570
5602
  // ── Complex property (data) ──────────────────────────────────────────────
5571
- { configKey: "options", converter: Ko(), on: "reinit", type: "ReadonlyArray<Record<string, unknown>>", description: "The array of option objects to render. The JS API — assign `el.options` directly. For HTML authoring use the `data-options` attribute (parsed per `data-options-format`) or declarative <option> children; both feed the same list and take precedence over this property in the order: <option> children > property > data-options." },
5603
+ { configKey: "options", converter: jo(), 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." },
5572
5604
  { configKey: "optionsSource", attribute: "data-options", converter: A({ isNullable: !0 }), on: "reinit", type: "string", description: "HTML-authoring source for the option list, parsed per `data-options-format`. Reactive: changing either attribute re-renders. Prefer the `options` property in JS; a set `options` property and declarative <option> children both win over this." },
5573
- { configKey: "optionsFormat", attribute: "data-options-format", converter: j(dn, { default: "json" }), on: "reinit", type: "'json' | 'csv' | 'plain'", description: "How to parse the `data-options` attribute: `json` (a JSON array of objects or [value, label] tuples), `csv` (rows split on `data-options-row-splitter`, cells on `data-options-splitter`; the first row is a header — map columns via *-member), or `plain` (bare values split on both splitters -> [value, label] tuples, value === label). Default `json`." },
5605
+ { configKey: "optionsFormat", attribute: "data-options-format", converter: j(un, { 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`." },
5574
5606
  { configKey: "optionsSplitter", attribute: "data-options-splitter", converter: A({ default: "," }), on: "reinit", type: "string", description: 'Field/cell delimiter for the `csv` and `plain` `data-options` formats. Default `,`. Escapes `\\t` `\\n` `\\r` are honoured (e.g. `data-options-splitter="\\t"` for TSV). Ignored for `json`.' },
5575
5607
  { configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter: A({ default: `
5576
5608
  ` }), 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`.' },
5577
- { configKey: "actionButtons", converter: Fo({ validate: (s) => Array.isArray(s) }), on: "reinit", type: "Array<Record<string, unknown>>", description: "Custom action buttons for the dropdown footer/header. Property-only; when unset the default Select-All / Clear buttons apply." },
5609
+ { configKey: "actionButtons", converter: Wo({ 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." },
5578
5610
  // ── Callbacks: data shape (structural → reinit) ──────────────────────────
5579
5611
  { configKey: "getValueCallback", converter: N(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
5580
5612
  { configKey: "getPathCallback", converter: N(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
@@ -5610,20 +5642,21 @@ const Po = `@layer variables,component,overrides;@layer variables{:host{display:
5610
5642
  { configKey: "addNewCallback", converter: N(), 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." },
5611
5643
  { configKey: "getAddNewTextCallback", converter: N(), 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`.' },
5612
5644
  { configKey: "keydownCallback", converter: N(), on: "update", type: "(context: MultiSelectKeydownContext) => boolean | void", description: "Intercept keydown before built-in handling; return true to suppress the default. Gets the event, current state, and an imperative controller." }
5613
- ], bn = [
5645
+ ], wn = [
5614
5646
  { name: "select", description: "An option was selected. `detail.option` is the selected option; `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
5615
5647
  { name: "deselect", description: "An option was removed from the selection. `detail.option` is that option." },
5616
5648
  { name: "change", description: "The selection changed. `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
5617
- { 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.' }
5618
- ], Js = /* @__PURE__ */ new Set(["dropdownWidth", "selectedPopoverWidth", "showDebugInfo", "initialValues", "optionsSource", "optionsFormat", "optionsSplitter", "optionsRowSplitter", "mobilePresentation", "collapseBadgesBelow"]), bt = {
5649
+ { 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.' },
5650
+ { 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." }
5651
+ ], Zs = /* @__PURE__ */ new Set(["dropdownWidth", "selectedPopoverWidth", "showDebugInfo", "initialValues", "optionsSource", "optionsFormat", "optionsSplitter", "optionsRowSplitter", "mobilePresentation", "collapseBadgesBelow", "deferRender"]), vt = {
5619
5652
  dropdownWidth: "--ms-dropdown-width",
5620
5653
  selectedPopoverWidth: "--ms-selected-popover-width"
5621
5654
  };
5622
- let vn = null;
5623
- function wn() {
5624
- return vn ?? (vn = Ai(Po, "--ms-"));
5655
+ let yn = null;
5656
+ function xn() {
5657
+ return yn ?? (yn = Ni(Mo, "--ms-"));
5625
5658
  }
5626
- const yn = [
5659
+ const _n = [
5627
5660
  { key: "valueMember", member: "value", callbackKey: "getValueCallback" },
5628
5661
  { key: "displayValueMember", member: "label", callbackKey: "getDisplayValueCallback" },
5629
5662
  { key: "groupMember", member: "group", callbackKey: "getGroupCallback" },
@@ -5631,26 +5664,29 @@ const yn = [
5631
5664
  { key: "subtitleMember", member: "subtitle", callbackKey: "getSubtitleCallback" },
5632
5665
  { key: "disabledMember", member: "disabled", callbackKey: "getDisabledCallback" }
5633
5666
  ];
5634
- var Z, k, fe, dt, ht, ut, He, Fe, Ie, x, xt, ge, _t, is, rs, ns, as, Oo, Mo, Lo, et, ls, Eo, Ao, zo, cs, No, $o, ds, hs;
5635
- class st extends Yt {
5667
+ var Z, k, fe, He, ht, ut, mt, Fe, Ke, Ie, w, ns, _t, ge, kt, as, ls, cs, Ct, Lo, Eo, Ao, tt, ds, zo, No, $o, hs, Vo, Do, us, ms;
5668
+ class ot extends Qt {
5636
5669
  constructor() {
5637
5670
  super();
5638
- L(this, x);
5639
- L(this, Z);
5640
- L(this, k);
5641
- L(this, fe);
5642
- L(this, dt, null);
5671
+ M(this, w);
5672
+ M(this, Z);
5673
+ M(this, k);
5674
+ M(this, fe);
5675
+ // Render gate (`defer`): true once released via ready() / attribute removal /
5676
+ // the first build. Latched — the gate never re-closes. See #renderHeld().
5677
+ M(this, He, !1);
5678
+ M(this, ht, null);
5643
5679
  // Dev-mode customStylesCallback lint: unknown --ms-* names already warned about.
5644
- L(this, ht, /* @__PURE__ */ new Set());
5680
+ M(this, ut, /* @__PURE__ */ new Set());
5645
5681
  // Declarative <option>/<optgroup> state (parsed once from light DOM).
5646
- L(this, ut, !1);
5647
- L(this, He, !1);
5648
- L(this, Fe);
5649
- L(this, Ie);
5682
+ M(this, mt, !1);
5683
+ M(this, Fe, !1);
5684
+ M(this, Ke);
5685
+ M(this, Ie);
5650
5686
  // ── container-responsive badge collapse (core §12.9 `resized`) ─────────────
5651
5687
  /** Whether the live picker is currently forced to the collapsed count view. */
5652
- L(this, ge, !1);
5653
- P(this, Z, this.attachShadow({ mode: "open" })), Li(h(this, Z), Po), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-ready", "")) : this.setAttribute("data-ready", "");
5688
+ M(this, ge, !1);
5689
+ I(this, Z, this.attachShadow({ mode: "open" })), Ai(h(this, Z), Mo), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-ready", "")) : this.setAttribute("data-ready", "");
5654
5690
  }
5655
5691
  /**
5656
5692
  * Called by the browser when the surrounding <form> is reset. Clears the
@@ -5671,24 +5707,24 @@ class st extends Yt {
5671
5707
  }
5672
5708
  /** Structural change (or first connect): mirror CSS vars, then (re)build the picker. */
5673
5709
  reinit() {
5674
- b(this, x, Ao).call(this), this.isConnected && b(this, x, ns).call(this);
5710
+ b(this, w, No).call(this), this.isConnected && !b(this, w, ns).call(this) && b(this, w, cs).call(this);
5675
5711
  }
5676
5712
  /** Cosmetic change: mirror CSS vars / custom styles / debug, patch the picker in place. */
5677
5713
  update(t) {
5678
- b(this, x, zo).call(this, t), "customStylesCallback" in t && b(this, x, ls).call(this), "showDebugInfo" in t && b(this, x, ds).call(this);
5714
+ b(this, w, $o).call(this, t), "customStylesCallback" in t && b(this, w, ds).call(this), "showDebugInfo" in t && b(this, w, us).call(this);
5679
5715
  const o = {};
5680
5716
  for (const [i, r] of Object.entries(t))
5681
- Js.has(i) || (o[i] = r === null ? void 0 : r);
5682
- h(this, k) && Object.keys(o).length > 0 && (h(this, k).updateOptions(o) || b(this, x, ns).call(this)), "mobilePresentation" in t && b(this, x, xt).call(this, It()), "collapseBadgesBelow" in t && b(this, x, _t).call(this, this.getBoundingClientRect().width);
5717
+ Zs.has(i) || (o[i] = r === null ? void 0 : r);
5718
+ h(this, k) && Object.keys(o).length > 0 && (h(this, k).updateOptions(o) || b(this, w, cs).call(this)), "mobilePresentation" in t && b(this, w, _t).call(this, Ot()), "collapseBadgesBelow" in t && b(this, w, kt).call(this, this.getBoundingClientRect().width);
5683
5719
  }
5684
5720
  /** Activate: ensure the picker exists (a DOM move destroyed it in disconnect()). */
5685
5721
  connect() {
5686
- h(this, k) || b(this, x, as).call(this);
5722
+ !h(this, k) && !b(this, w, ns).call(this) && b(this, w, Ct).call(this);
5687
5723
  }
5688
5724
  /** Deactivate: tear the picker down (rebuilt on the next connect). */
5689
5725
  disconnect() {
5690
5726
  var t;
5691
- (t = h(this, k)) == null || t.destroy(), P(this, k, void 0);
5727
+ (t = h(this, k)) == null || t.destroy(), I(this, k, void 0);
5692
5728
  }
5693
5729
  /**
5694
5730
  * Device/viewport/orientation changed (core §12.9). Overriding this opts the
@@ -5699,7 +5735,7 @@ class st extends Yt {
5699
5735
  * set before the dropdown can open.
5700
5736
  */
5701
5737
  environmentChanged(t) {
5702
- b(this, x, xt).call(this, t);
5738
+ b(this, w, _t).call(this, t);
5703
5739
  }
5704
5740
  /**
5705
5741
  * This element's own border box changed (core §12.9 `resized`). Overriding the
@@ -5710,7 +5746,7 @@ class st extends Yt {
5710
5746
  * below` is set; otherwise it's a cheap no-op.
5711
5747
  */
5712
5748
  resized({ width: t }) {
5713
- b(this, x, _t).call(this, t);
5749
+ b(this, w, kt).call(this, t);
5714
5750
  }
5715
5751
  // ── non-input public API ──────────────────────────────────────────────────
5716
5752
  /** Form field name (mirrors the `name` attribute → `formFieldId`). */
@@ -5832,11 +5868,30 @@ class st extends Yt {
5832
5868
  var t;
5833
5869
  (t = h(this, k)) == null || t.destroy();
5834
5870
  }
5871
+ // ── render gate (`defer`) ───────────────────────────────────────────────────
5872
+ /**
5873
+ * Release the `defer` render gate: build the picker now (once), with every
5874
+ * option, callback and listener wired while deferred already in place. No-op
5875
+ * when the element wasn't deferred or is already built. `flush()` first so a
5876
+ * synchronous `el.options = …; el.customStylesCallback = …; el.ready()` lands
5877
+ * those pending writes in the single build rather than after it. Latched — the
5878
+ * gate never re-closes. Fires the `ready` event on the first build.
5879
+ */
5880
+ ready() {
5881
+ I(this, He, !0), this.flush(), this.isConnected && !h(this, k) && b(this, w, Ct).call(this);
5882
+ }
5883
+ /** Whether the picker has been built (the `ready` event has fired). False while a `defer` gate is still held. */
5884
+ get isReady() {
5885
+ return this.hasAttribute("is-ready");
5886
+ }
5835
5887
  }
5836
- Z = new WeakMap(), k = new WeakMap(), fe = new WeakMap(), dt = new WeakMap(), ht = new WeakMap(), ut = new WeakMap(), He = new WeakMap(), Fe = new WeakMap(), Ie = new WeakMap(), x = new WeakSet(), /** Resolve `mobile-presentation` against `env` and relay it to the live picker. */
5837
- xt = function(t) {
5888
+ Z = new WeakMap(), k = new WeakMap(), fe = new WeakMap(), He = new WeakMap(), ht = new WeakMap(), ut = new WeakMap(), mt = new WeakMap(), Fe = new WeakMap(), Ke = new WeakMap(), Ie = new WeakMap(), w = new WeakSet(), /** Whether the initial render is being held by the `defer` gate (not yet released). */
5889
+ ns = function() {
5890
+ return this.config.deferRender === !0 && !h(this, He);
5891
+ }, /** Resolve `mobile-presentation` against `env` and relay it to the live picker. */
5892
+ _t = function(t) {
5838
5893
  var r;
5839
- const o = this.config.mobilePresentation ?? "auto", i = Di(o, t);
5894
+ const o = this.config.mobilePresentation ?? "auto", i = Bi(o, t);
5840
5895
  (r = h(this, k)) == null || r.setPresentation(i === "modal" ? "fullscreen" : i);
5841
5896
  }, ge = new WeakMap(), /**
5842
5897
  * Resolve `collapse-badges-below` against `width` and relay the decision to the
@@ -5845,78 +5900,78 @@ xt = function(t) {
5845
5900
  * and widening past the threshold restores it exactly. A structural JS decision,
5846
5901
  * so it lives here rather than in a CSS container query.
5847
5902
  */
5848
- _t = function(t) {
5903
+ kt = function(t) {
5849
5904
  const o = this.config.collapseBadgesBelow;
5850
5905
  if (o == null) {
5851
- h(this, ge) && (P(this, ge, !1), b(this, x, is).call(this));
5906
+ h(this, ge) && (I(this, ge, !1), b(this, w, as).call(this));
5852
5907
  return;
5853
5908
  }
5854
5909
  const i = t > 0 && t < o;
5855
- i !== h(this, ge) && (P(this, ge, i), i ? b(this, x, rs).call(this, "count") : b(this, x, is).call(this));
5910
+ i !== h(this, ge) && (I(this, ge, i), i ? b(this, w, ls).call(this, "count") : b(this, w, as).call(this));
5856
5911
  }, /** Re-assert the consumer's configured badges mode from the pristine base config. */
5857
- is = function() {
5912
+ as = function() {
5858
5913
  const t = this.config.badgesDisplayMode ?? "badges";
5859
- b(this, x, rs).call(this, t);
5914
+ b(this, w, ls).call(this, t);
5860
5915
  }, /** Relay a badges-display-mode override to the live picker (never written to `this.config`). */
5861
- rs = function(t) {
5916
+ ls = function(t) {
5862
5917
  var o;
5863
5918
  (o = h(this, k)) == null || o.updateOptions({ badgesDisplayMode: t });
5864
5919
  }, // ── picker lifecycle ──────────────────────────────────────────────────────
5865
- ns = function() {
5920
+ cs = function() {
5866
5921
  var t;
5867
- (t = h(this, k)) == null || t.destroy(), P(this, k, void 0), b(this, x, as).call(this);
5868
- }, as = function() {
5869
- b(this, x, Oo).call(this), b(this, x, No).call(this);
5870
- const t = b(this, x, Mo).call(this), o = b(this, x, Lo).call(this);
5871
- o && o.length > 0 ? h(this, fe).dataset.initialValues = JSON.stringify(o) : delete h(this, fe).dataset.initialValues, P(this, k, new ln(h(this, fe), t)), b(this, x, ls).call(this), b(this, x, ds).call(this), b(this, x, xt).call(this, It()), P(this, ge, !1), b(this, x, _t).call(this, this.getBoundingClientRect().width);
5872
- }, Oo = function() {
5922
+ (t = h(this, k)) == null || t.destroy(), I(this, k, void 0), b(this, w, Ct).call(this);
5923
+ }, Ct = function() {
5924
+ b(this, w, Lo).call(this), b(this, w, Vo).call(this);
5925
+ const t = b(this, w, Eo).call(this), o = b(this, w, Ao).call(this);
5926
+ o && o.length > 0 ? h(this, fe).dataset.initialValues = JSON.stringify(o) : delete h(this, fe).dataset.initialValues, I(this, k, new dn(h(this, fe), t)), b(this, w, ds).call(this), b(this, w, us).call(this), b(this, w, _t).call(this, Ot()), I(this, ge, !1), b(this, w, kt).call(this, this.getBoundingClientRect().width), this.hasAttribute("is-ready") || (I(this, He, !0), this.setAttribute("is-ready", ""), this.emit("ready"));
5927
+ }, Lo = function() {
5873
5928
  if (h(this, fe)) return;
5874
5929
  const t = document.createElement("div");
5875
- t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), h(this, Z).appendChild(t), P(this, dt, Ei(h(this, Z), { position: "first", className: "ms-custom-styles" })), P(this, fe, t);
5930
+ t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), h(this, Z).appendChild(t), I(this, ht, zi(h(this, Z), { position: "first", className: "ms-custom-styles" })), I(this, fe, t);
5876
5931
  }, /**
5877
5932
  * Build the picker config from the merged `this.config`, minus the keys the
5878
5933
  * picker doesn't own, plus the runtime wiring (event bridges, container, host,
5879
5934
  * declarative option data + member defaults, counter default).
5880
5935
  */
5881
- Mo = function() {
5936
+ Eo = function() {
5882
5937
  const t = { ...this.config };
5883
- for (const i of Js) delete t[i];
5938
+ for (const i of Zs) delete t[i];
5884
5939
  for (const i of Object.keys(t))
5885
5940
  t[i] === null && delete t[i];
5886
5941
  let o = t.options;
5887
- if (h(this, He) && h(this, Fe))
5888
- o && o.length > 0 && K.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), o = h(this, Fe);
5942
+ if (h(this, Fe) && h(this, Ke))
5943
+ o && o.length > 0 && K.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), o = h(this, Ke);
5889
5944
  else if (!o || o.length === 0) {
5890
5945
  const i = this.config.optionsSource;
5891
5946
  if (i != null) {
5892
- const r = this.config.optionsFormat ?? "json", { options: n, error: a } = hn(i, r, {
5947
+ const r = this.config.optionsFormat ?? "json", { options: n, error: a } = mn(i, r, {
5893
5948
  splitter: this.config.optionsSplitter,
5894
5949
  rowSplitter: this.config.optionsRowSplitter
5895
5950
  });
5896
5951
  a && K.error(`[MultiSelectElement] ${a}`), o = n;
5897
5952
  }
5898
5953
  }
5899
- if (t.options = o, h(this, He))
5900
- for (const { key: i, member: r, callbackKey: n } of yn)
5954
+ if (t.options = o, h(this, Fe))
5955
+ for (const { key: i, member: r, callbackKey: n } of _n)
5901
5956
  t[i] === void 0 && !t[n] && (t[i] = r);
5902
5957
  return t.getCounterCallback || (t.getCounterCallback = (i, r) => r !== void 0 ? `+${r} more` : `${i} selected`), t.onSelect = (i) => {
5903
5958
  var r;
5904
5959
  this.emit("select", {
5905
5960
  option: i,
5906
5961
  selectedOptions: ((r = h(this, k)) == null ? void 0 : r.getSelected()) ?? [],
5907
- selectedValues: b(this, x, et).call(this)
5962
+ selectedValues: b(this, w, tt).call(this)
5908
5963
  });
5909
5964
  }, t.onDeselect = (i) => {
5910
5965
  var r;
5911
5966
  this.emit("deselect", {
5912
5967
  option: i,
5913
5968
  selectedOptions: ((r = h(this, k)) == null ? void 0 : r.getSelected()) ?? [],
5914
- selectedValues: b(this, x, et).call(this)
5969
+ selectedValues: b(this, w, tt).call(this)
5915
5970
  });
5916
5971
  }, t.onChange = (i) => {
5917
5972
  this.emit("change", {
5918
5973
  selectedOptions: i,
5919
- selectedValues: b(this, x, et).call(this)
5974
+ selectedValues: b(this, w, tt).call(this)
5920
5975
  });
5921
5976
  }, t.onAddNew = (i) => {
5922
5977
  var r;
@@ -5924,21 +5979,21 @@ Mo = function() {
5924
5979
  value: i.value,
5925
5980
  option: i.option,
5926
5981
  selectedOptions: ((r = h(this, k)) == null ? void 0 : r.getSelected()) ?? [],
5927
- selectedValues: b(this, x, et).call(this)
5982
+ selectedValues: b(this, w, tt).call(this)
5928
5983
  });
5929
5984
  }, t.container = h(this, Z), t.hostElement = this, t;
5930
- }, Lo = function() {
5985
+ }, Ao = function() {
5931
5986
  if (h(this, Ie) && h(this, Ie).length > 0)
5932
5987
  return h(this, Ie);
5933
5988
  const t = this.config.initialValues;
5934
5989
  return t && t.length > 0 ? t : void 0;
5935
- }, et = function() {
5990
+ }, tt = function() {
5936
5991
  var o;
5937
5992
  const t = (o = h(this, k)) == null ? void 0 : o.getValue();
5938
5993
  return t == null ? [] : Array.isArray(t) ? t : [t];
5939
5994
  }, // ── §12.8 custom styles ───────────────────────────────────────────────────
5940
- ls = function() {
5941
- const t = h(this, dt);
5995
+ ds = function() {
5996
+ const t = h(this, ht);
5942
5997
  if (!t) return;
5943
5998
  const o = this.config.customStylesCallback;
5944
5999
  if (typeof o != "function") {
@@ -5947,7 +6002,7 @@ ls = function() {
5947
6002
  }
5948
6003
  try {
5949
6004
  const i = o();
5950
- t.set(i), i && b(this, x, Eo).call(this, i);
6005
+ t.set(i), i && b(this, w, zo).call(this, i);
5951
6006
  } catch (i) {
5952
6007
  K.warn("[MultiSelectElement] customStylesCallback threw", i), t.clear();
5953
6008
  }
@@ -5960,28 +6015,28 @@ ls = function() {
5960
6015
  * De-duped per instance. If you genuinely define a `--ms-*` var for your own
5961
6016
  * custom-rendered content, ignore the warning (or use a different prefix).
5962
6017
  */
5963
- Eo = function(t) {
5964
- const o = wn();
6018
+ zo = function(t) {
6019
+ const o = xn();
5965
6020
  if (o.size !== 0)
5966
- for (const { name: i, suggestions: r } of $i(t, { prefix: "--ms-", consumed: o }))
5967
- h(this, ht).has(i) || (h(this, ht).add(i), console.warn(
6021
+ for (const { name: i, suggestions: r } of Di(t, { prefix: "--ms-", consumed: o }))
6022
+ h(this, ut).has(i) || (h(this, ut).add(i), console.warn(
5968
6023
  `[web-multiselect] customStylesCallback sets "${i}", which no web-multiselect style consumes — it will have no effect.` + (r.length ? ` Did you mean: ${r.join(", ")}?` : "") + " (If it's for your own custom-rendered content, ignore this.)"
5969
6024
  ));
5970
6025
  }, // ── CSS-var sugar ─────────────────────────────────────────────────────────
5971
- Ao = function() {
5972
- for (const t of Object.keys(bt)) b(this, x, cs).call(this, bt[t], this.config[t]);
5973
- }, zo = function(t) {
5974
- for (const o of Object.keys(bt))
5975
- o in t && b(this, x, cs).call(this, bt[o], t[o]);
5976
- }, cs = function(t, o) {
6026
+ No = function() {
6027
+ for (const t of Object.keys(vt)) b(this, w, hs).call(this, vt[t], this.config[t]);
6028
+ }, $o = function(t) {
6029
+ for (const o of Object.keys(vt))
6030
+ o in t && b(this, w, hs).call(this, vt[o], t[o]);
6031
+ }, hs = function(t, o) {
5977
6032
  o == null || o === "" ? this.style.removeProperty(t) : this.style.setProperty(t, String(o));
5978
6033
  }, // ── declarative <option> parsing (light DOM, once) ────────────────────────
5979
- No = function() {
5980
- if (h(this, ut)) return;
5981
- P(this, ut, !0);
5982
- const t = b(this, x, $o).call(this);
5983
- t && (P(this, Fe, t), P(this, He, !0));
5984
- }, $o = function() {
6034
+ Vo = function() {
6035
+ if (h(this, mt)) return;
6036
+ I(this, mt, !0);
6037
+ const t = b(this, w, Do).call(this);
6038
+ t && (I(this, Ke, t), I(this, Fe, !0));
6039
+ }, Do = function() {
5985
6040
  const t = Array.from(this.children);
5986
6041
  if (t.length === 0) return null;
5987
6042
  const o = [];
@@ -5992,7 +6047,7 @@ No = function() {
5992
6047
  value: n.value || ((c = n.textContent) == null ? void 0 : c.trim()) || "",
5993
6048
  label: ((d = n.textContent) == null ? void 0 : d.trim()) || n.value || ""
5994
6049
  };
5995
- a && (l.group = a), n.hasAttribute("selected") && (h(this, Ie) ?? P(this, Ie, [])).push(l.value), n.hasAttribute("disabled") && (l.disabled = !0), n.hasAttribute("data-icon") && (l.icon = n.getAttribute("data-icon")), n.hasAttribute("data-subtitle") && (l.subtitle = n.getAttribute("data-subtitle")), o.push(l), i = !0;
6050
+ a && (l.group = a), n.hasAttribute("selected") && (h(this, Ie) ?? I(this, Ie, [])).push(l.value), n.hasAttribute("disabled") && (l.disabled = !0), n.hasAttribute("data-icon") && (l.icon = n.getAttribute("data-icon")), n.hasAttribute("data-subtitle") && (l.subtitle = n.getAttribute("data-subtitle")), o.push(l), i = !0;
5996
6051
  };
5997
6052
  for (const n of t)
5998
6053
  if (n.tagName === "OPTION")
@@ -6008,7 +6063,7 @@ No = function() {
6008
6063
  (n.tagName === "OPTION" || n.tagName === "OPTGROUP") && n.remove();
6009
6064
  return o;
6010
6065
  }, // ── debug panel (deprecated; kept for back-compat) ────────────────────────
6011
- ds = function() {
6066
+ us = function() {
6012
6067
  const t = h(this, Z).querySelector(".ms__debug-info");
6013
6068
  if (t && t.remove(), !this.config.showDebugInfo) return;
6014
6069
  const o = document.createElement("div");
@@ -6016,12 +6071,12 @@ ds = function() {
6016
6071
  const i = document.createElement("details"), r = document.createElement("summary");
6017
6072
  r.textContent = "Debug Info";
6018
6073
  const n = document.createElement("div");
6019
- n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), h(this, Z).appendChild(o), b(this, x, hs).call(this);
6020
- }, hs = function() {
6074
+ n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), h(this, Z).appendChild(o), b(this, w, ms).call(this);
6075
+ }, ms = function() {
6021
6076
  var l, c, d, u;
6022
6077
  const t = h(this, Z).querySelector(".ms__debug-stats");
6023
6078
  if (!t || !h(this, k)) return;
6024
- const o = "2.0.0", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = h(this, k).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = h(this, k);
6079
+ const o = "2.1.0", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = h(this, k).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = h(this, k);
6025
6080
  t.innerHTML = `
6026
6081
  <span>Version: ${o}</span>
6027
6082
  <span>Total Instances: ${i}</span>
@@ -6032,17 +6087,17 @@ ds = function() {
6032
6087
  <span>Search: ${a.searchTerm || "none"}</span>
6033
6088
  <span>Loading: ${a.isLoading ? "Yes" : "No"}</span>
6034
6089
  `, setTimeout(() => {
6035
- this.config.showDebugInfo && b(this, x, hs).call(this);
6090
+ this.config.showDebugInfo && b(this, w, ms).call(this);
6036
6091
  }, 500);
6037
6092
  }, // Opt into the form-associated custom element lifecycle so form.reset() and
6038
6093
  // form.elements see the control.
6039
- p(st, "formAssociated", !0), p(st, "inputs", gn), p(st, "events", bn);
6040
- typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", st);
6041
- Oi("web-multiselect", st, {
6094
+ p(ot, "formAssociated", !0), p(ot, "inputs", vn), p(ot, "events", wn);
6095
+ typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", ot);
6096
+ Li("web-multiselect", ot, {
6042
6097
  config: {
6043
6098
  name: "@keenmate/web-multiselect",
6044
- version: "2.0.0",
6045
- author: "Keenmate",
6099
+ version: "2.1.0",
6100
+ author: "Keenmate s.r.o.",
6046
6101
  license: "MIT",
6047
6102
  repository: "git+https://github.com/keenmate/web-multiselect.git",
6048
6103
  homepage: "https://web-multiselect.keenmate.dev"
@@ -6050,23 +6105,23 @@ Oi("web-multiselect", st, {
6050
6105
  logging: ce
6051
6106
  });
6052
6107
  export {
6053
- kn as LOGGING_CATEGORIES,
6054
- st as MultiSelectElement,
6055
- dn as OPTIONS_FORMATS,
6056
- ni as TABLET_MIN_SHORT_SIDE,
6057
- ln as WebMultiSelect,
6058
- ai as classifyDevice,
6059
- _n as configureBreakpoints,
6108
+ Sn as LOGGING_CATEGORIES,
6109
+ ot as MultiSelectElement,
6110
+ un as OPTIONS_FORMATS,
6111
+ li as TABLET_MIN_SHORT_SIDE,
6112
+ dn as WebMultiSelect,
6113
+ ci as classifyDevice,
6114
+ Cn as configureBreakpoints,
6060
6115
  K as dataLogger,
6061
- Sn as disableLogging,
6062
- Cn as enableLogging,
6063
- It as getEnvironment,
6064
- gt as initLogger,
6116
+ In as disableLogging,
6117
+ Tn as enableLogging,
6118
+ Ot as getEnvironment,
6119
+ bt as initLogger,
6065
6120
  R as interactionLogger,
6066
- ii as observeEnvironment,
6067
- ri as observeViewport,
6068
- hn as parseOptionsData,
6069
- In as setCategoryLevel,
6070
- Tn as setLogLevel,
6121
+ ni as observeEnvironment,
6122
+ ai as observeViewport,
6123
+ mn as parseOptionsData,
6124
+ On as setCategoryLevel,
6125
+ Pn as setLogLevel,
6071
6126
  J as uiLogger
6072
6127
  };