@keenmate/web-multiselect 2.0.0-rc11 → 2.0.0-rc12

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 Eo = Object.defineProperty;
2
- var bs = (s) => {
1
+ var $o = Object.defineProperty;
2
+ var _s = (s) => {
3
3
  throw TypeError(s);
4
4
  };
5
- var Ao = (s, e, t) => e in s ? Eo(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
6
- var m = (s, e, t) => Ao(s, typeof e != "symbol" ? e + "" : e, t), Bt = (s, e, t) => e.has(s) || bs("Cannot " + t);
7
- var h = (s, e, t) => (Bt(s, e, "read from private field"), t ? t.call(s) : e.get(s)), L = (s, e, t) => e.has(s) ? bs("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(s) : e.set(s, t), I = (s, e, t, o) => (Bt(s, e, "write to private field"), o ? o.call(s, t) : e.set(s, t), t), v = (s, e, t) => (Bt(s, e, "access private method"), t);
5
+ var Ro = (s, e, t) => e in s ? $o(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
6
+ var m = (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), I = (s, e, t, o) => (Kt(s, e, "write to private field"), o ? o.call(s, t) : e.set(s, t), t), v = (s, e, t) => (Kt(s, e, "access private method"), t);
8
8
  function W(s, e = {}) {
9
9
  const t = new Set(s), o = e.shouldNullOnInvalid ? null : e.default ?? null;
10
10
  return {
@@ -37,7 +37,7 @@ function X(s = {}) {
37
37
  }
38
38
  };
39
39
  }
40
- function V(s = {}) {
40
+ function z(s = {}) {
41
41
  const e = s.isNullable === !0, t = s.default ?? (e ? null : ""), o = (i) => s.shouldTrim ? i.trim() : i;
42
42
  return {
43
43
  fromAttribute(i) {
@@ -54,11 +54,11 @@ function V(s = {}) {
54
54
  }
55
55
  };
56
56
  }
57
- const zo = /* @__PURE__ */ new Set(["", "true", "1", "yes", "on"]), No = /* @__PURE__ */ new Set(["false", "0", "no", "off"]);
57
+ const Bo = /* @__PURE__ */ new Set(["", "true", "1", "yes", "on"]), Ho = /* @__PURE__ */ new Set(["false", "0", "no", "off"]);
58
58
  function B(s = "presence") {
59
59
  const e = (t) => {
60
60
  const o = t.trim().toLowerCase();
61
- return zo.has(o) ? !0 : No.has(o) ? !1 : null;
61
+ return Bo.has(o) ? !0 : Ho.has(o) ? !1 : null;
62
62
  };
63
63
  return {
64
64
  fromAttribute(t) {
@@ -81,7 +81,7 @@ function B(s = "presence") {
81
81
  }
82
82
  };
83
83
  }
84
- function Vo(s = {}) {
84
+ function Fo(s = {}) {
85
85
  const e = s.default;
86
86
  return {
87
87
  fromAttribute(t) {
@@ -101,7 +101,7 @@ function Vo(s = {}) {
101
101
  }
102
102
  };
103
103
  }
104
- function Do(s = {}) {
104
+ function Ko(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 Do(s = {}) {
121
121
  }
122
122
  };
123
123
  }
124
- function $o() {
124
+ function Wo() {
125
125
  return {
126
126
  validate(s) {
127
127
  return s == null || typeof s == "function";
128
128
  }
129
129
  };
130
130
  }
131
- function Ro(s, e, t) {
131
+ function jo(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 Bo(s, e) {
135
+ function Uo(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 Ho() {
139
+ function Go() {
140
140
  const s = /* @__PURE__ */ new Set();
141
141
  let e = !1;
142
142
  const t = () => {
@@ -164,7 +164,7 @@ function Ho() {
164
164
  }
165
165
  };
166
166
  }
167
- const Gs = {
167
+ const Qs = {
168
168
  pointer: "fine",
169
169
  hasCoarsePointer: !1,
170
170
  canHover: !0,
@@ -176,29 +176,29 @@ const Gs = {
176
176
  os: "unknown",
177
177
  isApple: !1,
178
178
  isAndroid: !1
179
- }, Fo = { mobile: 640, tablet: 1024, desktop: 1 / 0 };
180
- let gt = qs(Fo);
181
- const tt = /* @__PURE__ */ new Set(), st = /* @__PURE__ */ new Set();
182
- let Pe = null, _t = [], bt = !1;
183
- const vs = 30;
184
- let Ee, vt = 0;
185
- function qs(s) {
179
+ }, qo = { mobile: 640, tablet: 1024, desktop: 1 / 0 };
180
+ let bt = Zs(qo);
181
+ const st = /* @__PURE__ */ new Set(), ot = /* @__PURE__ */ new Set();
182
+ let Oe = null, kt = [], vt = !1;
183
+ const ks = 30;
184
+ let Ee, yt = 0;
185
+ function Zs(s) {
186
186
  return Object.entries(s).sort((e, t) => e[1] - t[1]);
187
187
  }
188
- function Ko(s) {
189
- for (const [t, o] of gt)
188
+ function Xo(s) {
189
+ for (const [t, o] of bt)
190
190
  if (s <= o)
191
191
  return t;
192
- const e = gt[gt.length - 1];
192
+ const e = bt[bt.length - 1];
193
193
  return e ? e[0] : "desktop";
194
194
  }
195
- function cs() {
195
+ function us() {
196
196
  return typeof window < "u" && typeof window.matchMedia == "function";
197
197
  }
198
- function ws() {
198
+ function Cs() {
199
199
  return typeof navigator < "u" && (navigator.maxTouchPoints ?? 0) > 1;
200
200
  }
201
- function Wo() {
201
+ function Yo() {
202
202
  var o;
203
203
  if (typeof navigator > "u")
204
204
  return "unknown";
@@ -209,26 +209,26 @@ function Wo() {
209
209
  if (e.includes("ios"))
210
210
  return "ios";
211
211
  if (e.includes("mac"))
212
- return ws() ? "ios" : "macos";
212
+ return Cs() ? "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) ? ws() ? "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) ? Cs() ? "ios" : "macos" : /windows/i.test(t) ? "windows" : /linux/i.test(t) ? "linux" : "unknown";
220
220
  }
221
- let jo;
222
- function Uo() {
223
- return jo ?? (jo = Wo());
221
+ let Jo;
222
+ function Qo() {
223
+ return Jo ?? (Jo = Yo());
224
224
  }
225
225
  function Ue(s) {
226
- return cs() && window.matchMedia(s).matches;
226
+ return us() && window.matchMedia(s).matches;
227
227
  }
228
- function ds() {
229
- if (!cs())
230
- return { ...Gs };
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 = Uo();
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();
232
232
  return {
233
233
  pointer: i,
234
234
  hasCoarsePointer: s,
@@ -237,191 +237,191 @@ function ds() {
237
237
  orientation: Ue("(orientation: portrait)") ? "portrait" : "landscape",
238
238
  viewportWidth: r,
239
239
  viewportHeight: n,
240
- breakpoint: Ko(r),
240
+ breakpoint: Xo(r),
241
241
  os: a,
242
242
  isApple: a === "ios" || a === "macos",
243
243
  isAndroid: a === "android"
244
244
  };
245
245
  }
246
- function Go(s, e) {
246
+ function Zo(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 qo(s, e) {
249
+ function ei(s, e) {
250
250
  return s.viewportWidth === e.viewportWidth && s.viewportHeight === e.viewportHeight;
251
251
  }
252
- function kt() {
253
- const s = ds(), e = Pe;
254
- if (Pe = s, !e || !Go(e, s))
255
- for (const t of [...tt])
252
+ function Ct() {
253
+ const s = ms(), e = Oe;
254
+ if (Oe = s, !e || !Zo(e, s))
255
+ for (const t of [...st])
256
256
  t(s);
257
- st.size > 0 && (!e || !qo(e, s)) && Xo();
257
+ ot.size > 0 && (!e || !ei(e, s)) && ti();
258
258
  }
259
- function ys() {
260
- const s = Pe;
259
+ function Ss() {
260
+ const s = Oe;
261
261
  if (s)
262
- for (const e of [...st])
262
+ for (const e of [...ot])
263
263
  e(s);
264
264
  }
265
- function Xo() {
265
+ function ti() {
266
266
  if (Ee !== void 0)
267
267
  return;
268
- const s = Date.now() - vt;
269
- s >= vs ? (vt = Date.now(), ys()) : Ee = setTimeout(() => {
270
- Ee = void 0, vt = Date.now(), ys();
271
- }, vs - s);
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);
272
272
  }
273
- const Ct = () => kt(), Xs = () => {
273
+ const St = () => Ct(), eo = () => {
274
274
  if (typeof requestAnimationFrame == "function") {
275
- if (bt)
275
+ if (vt)
276
276
  return;
277
- bt = !0, requestAnimationFrame(() => {
278
- bt = !1, kt();
277
+ vt = !0, requestAnimationFrame(() => {
278
+ vt = !1, Ct();
279
279
  });
280
280
  } else
281
- kt();
281
+ Ct();
282
282
  };
283
- function Yo(s) {
284
- typeof s.addEventListener == "function" ? s.addEventListener("change", Ct) : typeof s.addListener == "function" && s.addListener(Ct);
283
+ function si(s) {
284
+ typeof s.addEventListener == "function" ? s.addEventListener("change", St) : typeof s.addListener == "function" && s.addListener(St);
285
285
  }
286
- function Jo(s) {
287
- typeof s.removeEventListener == "function" ? s.removeEventListener("change", Ct) : typeof s.removeListener == "function" && s.removeListener(Ct);
286
+ function oi(s) {
287
+ typeof s.removeEventListener == "function" ? s.removeEventListener("change", St) : typeof s.removeListener == "function" && s.removeListener(St);
288
288
  }
289
- function Ys() {
290
- if (!cs()) {
291
- Pe = { ...Gs };
289
+ function to() {
290
+ if (!us()) {
291
+ Oe = { ...Qs };
292
292
  return;
293
293
  }
294
- _t = [
294
+ kt = [
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 _t)
302
- Yo(s);
303
- typeof window.addEventListener == "function" && window.addEventListener("resize", Xs), Pe = ds();
304
- }
305
- function Js() {
306
- for (const s of _t)
307
- Jo(s);
308
- _t = [], typeof window < "u" && typeof window.removeEventListener == "function" && window.removeEventListener("resize", Xs), bt = !1, Ee !== void 0 && (clearTimeout(Ee), Ee = void 0), vt = 0, Pe = null;
301
+ for (const s of kt)
302
+ si(s);
303
+ typeof window.addEventListener == "function" && window.addEventListener("resize", eo), Oe = ms();
309
304
  }
310
- function St() {
311
- return tt.size + st.size;
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), vt = !1, Ee !== void 0 && (clearTimeout(Ee), Ee = void 0), yt = 0, Oe = null;
312
309
  }
313
310
  function Tt() {
314
- return Pe ?? ds();
311
+ return st.size + ot.size;
315
312
  }
316
- function Qo(s, e = {}) {
317
- const t = St() === 0;
318
- tt.add(s), t && Ys(), e.immediate !== !1 && s(Tt());
313
+ function It() {
314
+ return Oe ?? ms();
315
+ }
316
+ function ii(s, e = {}) {
317
+ const t = Tt() === 0;
318
+ st.add(s), t && to(), e.immediate !== !1 && s(It());
319
319
  let o = !0;
320
320
  return () => {
321
- o && (o = !1, tt.delete(s), St() === 0 && Js());
321
+ o && (o = !1, st.delete(s), Tt() === 0 && so());
322
322
  };
323
323
  }
324
- function Zo(s, e = {}) {
325
- const t = St() === 0;
326
- st.add(s), t && Ys(), e.immediate !== !1 && s(Tt());
324
+ function ri(s, e = {}) {
325
+ const t = Tt() === 0;
326
+ ot.add(s), t && to(), e.immediate !== !1 && s(It());
327
327
  let o = !0;
328
328
  return () => {
329
- o && (o = !1, st.delete(s), St() === 0 && Js());
329
+ o && (o = !1, ot.delete(s), Tt() === 0 && so());
330
330
  };
331
331
  }
332
- function dn(s) {
333
- gt = qs(s), tt.size > 0 && kt();
332
+ function _n(s) {
333
+ bt = Zs(s), st.size > 0 && Ct();
334
334
  }
335
- const ei = 600;
336
- function ti(s) {
337
- return s.isTouchPrimary ? Math.min(s.viewportWidth, s.viewportHeight) < ei ? "mobile" : "tablet" : "desktop";
335
+ const ni = 600;
336
+ function ai(s) {
337
+ return s.isTouchPrimary ? Math.min(s.viewportWidth, s.viewportHeight) < ni ? "mobile" : "tablet" : "desktop";
338
338
  }
339
- const si = 30;
339
+ const li = 30;
340
340
  let oe = null;
341
- const Ye = /* @__PURE__ */ new WeakMap();
342
- let Ht = 0;
343
- function oi() {
341
+ const Je = /* @__PURE__ */ new WeakMap();
342
+ let Wt = 0;
343
+ function ci() {
344
344
  return typeof ResizeObserver < "u";
345
345
  }
346
- function Qs(s) {
346
+ function oo(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 ii(s, e) {
352
+ function di(s, e) {
353
353
  return !!s && s.width === e.width && s.height === e.height;
354
354
  }
355
- function ri(s, e) {
356
- if (ii(s.lastFired, e) || (s.pendingSize = e, s.timer !== void 0))
355
+ function hi(s, e) {
356
+ if (di(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(), xs(s)) : s.timer = setTimeout(() => {
360
- s.timer = void 0, s.lastNotify = Date.now(), xs(s);
359
+ t >= s.throttleMs ? (s.lastNotify = Date.now(), Ts(s)) : s.timer = setTimeout(() => {
360
+ s.timer = void 0, s.lastNotify = Date.now(), Ts(s);
361
361
  }, s.throttleMs - t);
362
362
  }
363
- function xs(s) {
363
+ function Ts(s) {
364
364
  const e = s.pendingSize;
365
365
  e && (s.lastFired = e, s.cb(e, s.el));
366
366
  }
367
- function ni(s) {
367
+ function ui(s) {
368
368
  for (const e of s) {
369
- const t = Ye.get(e.target);
369
+ const t = Je.get(e.target);
370
370
  if (!t)
371
371
  continue;
372
- const o = Qs(e.target);
372
+ const o = oo(e.target);
373
373
  for (const i of [...t])
374
- ri(i, o);
374
+ hi(i, o);
375
375
  }
376
376
  }
377
- function ai() {
378
- return oi() ? (oe || (oe = new ResizeObserver(ni)), oe) : null;
377
+ function mi() {
378
+ return ci() ? (oe || (oe = new ResizeObserver(ui)), oe) : null;
379
379
  }
380
- function li(s, e, t = {}) {
380
+ function pi(s, e, t = {}) {
381
381
  const o = {
382
382
  el: s,
383
383
  cb: e,
384
- throttleMs: t.throttleMs ?? si,
384
+ throttleMs: t.throttleMs ?? li,
385
385
  lastNotify: 0
386
386
  };
387
387
  if (t.immediate !== !1) {
388
- const n = Qs(s);
388
+ const n = oo(s);
389
389
  o.lastFired = n, o.lastNotify = Date.now(), e(n, s);
390
390
  }
391
- const i = ai();
391
+ const i = mi();
392
392
  if (i) {
393
- let n = Ye.get(s);
394
- n || (Ye.set(s, n = /* @__PURE__ */ new Set()), Ht++, i.observe(s)), n.add(o);
393
+ let n = Je.get(s);
394
+ n || (Je.set(s, n = /* @__PURE__ */ new Set()), Wt++, 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 = Ye.get(s);
402
- n && (n.delete(o), n.size === 0 && (Ye.delete(s), oe == null || oe.unobserve(s), Ht--, Ht === 0 && oe && (oe.disconnect(), oe = null)));
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)));
403
403
  };
404
404
  }
405
- const It = /* @__PURE__ */ new Map();
406
- function ci(s, e) {
407
- let t = It.get(s);
408
- t || It.set(s, t = /* @__PURE__ */ new Set()), t.add(e);
405
+ const Ot = /* @__PURE__ */ new Map();
406
+ function fi(s, e) {
407
+ let t = Ot.get(s);
408
+ t || Ot.set(s, t = /* @__PURE__ */ new Set()), t.add(e);
409
409
  }
410
- function di(s, e) {
410
+ function gi(s, e) {
411
411
  var t;
412
- (t = It.get(s)) == null || t.delete(e);
412
+ (t = Ot.get(s)) == null || t.delete(e);
413
413
  }
414
- function hi(s) {
415
- return Array.from(It.get(s) ?? []);
414
+ function bi(s) {
415
+ return Array.from(Ot.get(s) ?? []);
416
416
  }
417
- const Zs = /* @__PURE__ */ new Map();
418
- function ui(s, e) {
419
- Zs.set(s.toLowerCase(), e);
417
+ const io = /* @__PURE__ */ new Map();
418
+ function vi(s, e) {
419
+ io.set(s.toLowerCase(), e);
420
420
  }
421
- function mi(s) {
422
- return Zs.get(s.toLowerCase());
421
+ function yi(s) {
422
+ return io.get(s.toLowerCase());
423
423
  }
424
- function pi(s, e, t, o = {}) {
424
+ function wi(s, e, t, o = {}) {
425
425
  return s.dispatchEvent(new CustomEvent(e, {
426
426
  detail: t,
427
427
  bubbles: o.bubbles ?? !0,
@@ -429,40 +429,40 @@ function pi(s, e, t, o = {}) {
429
429
  cancelable: o.cancelable ?? !1
430
430
  }));
431
431
  }
432
- function fi(s) {
432
+ function xi(s) {
433
433
  return s.split(/[-_]/).filter(Boolean).map((e) => e[0].toUpperCase() + e.slice(1)).join("");
434
434
  }
435
- function gi(s) {
436
- return `on${fi(s)}`;
435
+ function _i(s) {
436
+ return `on${xi(s)}`;
437
437
  }
438
- function bi(s) {
438
+ function ki(s) {
439
439
  return s ? s.map((e) => {
440
- const t = typeof e == "string" ? { name: e } : e, o = t.property === !1 ? null : t.property ?? gi(t.name);
440
+ const t = typeof e == "string" ? { name: e } : e, o = t.property === !1 ? null : t.property ?? _i(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 vi = typeof HTMLElement < "u" ? HTMLElement : class {
445
- }, _s = /* @__PURE__ */ new WeakSet();
446
- let wi = 0;
447
- const yi = { trace() {
444
+ const Ci = typeof HTMLElement < "u" ? HTMLElement : class {
445
+ }, Is = /* @__PURE__ */ new WeakSet();
446
+ let Si = 0;
447
+ const Ti = { trace() {
448
448
  }, debug() {
449
449
  }, info() {
450
450
  }, warn() {
451
451
  }, error() {
452
- } }, xi = new Proxy({}, { get: () => yi });
453
- var me, rt, _e, nt, ke, at, At, Ce, pe, Se, Te, ze, Ne, Ve, De, $e, Re, zt, ie, Be, T, eo, to, so, Q, oo, io, qt, Xt, Je, Yt, ro;
454
- const xe = class xe extends vi {
452
+ } }, Ii = new Proxy({}, { get: () => Ti });
453
+ var me, nt, _e, at, ke, lt, Vt, Ce, pe, Se, Te, ze, Ne, Ve, De, $e, Re, Dt, ie, Be, T, ro, no, ao, Q, lo, co, Jt, Qt, Qe, Zt, ho;
454
+ const xe = class xe extends Ci {
455
455
  constructor() {
456
456
  super();
457
457
  L(this, T);
458
458
  L(this, me, {});
459
- L(this, rt, /* @__PURE__ */ new Map());
460
- L(this, _e, /* @__PURE__ */ new Map());
461
459
  L(this, nt, /* @__PURE__ */ new Map());
460
+ L(this, _e, /* @__PURE__ */ new Map());
461
+ L(this, at, /* @__PURE__ */ new Map());
462
462
  /** Live handler currently bound via each managed `on<Name>` property, keyed by event name. */
463
463
  L(this, ke, /* @__PURE__ */ new Map());
464
- L(this, at, Ho());
465
- L(this, At, () => v(this, T, Yt).call(this));
464
+ L(this, lt, Go());
465
+ L(this, Vt, () => v(this, T, Zt).call(this));
466
466
  L(this, Ce, null);
467
467
  L(this, pe, !1);
468
468
  L(this, Se, []);
@@ -485,16 +485,16 @@ const xe = class xe extends vi {
485
485
  /** Unsubscribe from the per-element ResizeObserver; set only while connected AND `resized` is overridden. */
486
486
  L(this, $e);
487
487
  L(this, Re);
488
- L(this, zt);
488
+ L(this, Dt);
489
489
  L(this, ie);
490
490
  L(this, Be);
491
- const t = this.constructor, o = t.inputs ?? [], i = bi(t.events);
492
- v(this, T, so).call(this, o, i);
491
+ const t = this.constructor, o = t.inputs ?? [], i = ki(t.events);
492
+ v(this, T, ao).call(this, o, i);
493
493
  for (const r of o)
494
- h(this, rt).set(r.configKey, r), r.attribute && h(this, _e).set(r.attribute, r);
494
+ h(this, nt).set(r.configKey, r), r.attribute && h(this, _e).set(r.attribute, r);
495
495
  for (const r of i)
496
- h(this, nt).set(r.name, r);
497
- v(this, T, eo).call(this, o), v(this, T, oo).call(this, o), v(this, T, io).call(this, i);
496
+ h(this, at).set(r.name, r);
497
+ v(this, T, ro).call(this, o), v(this, T, lo).call(this, o), v(this, T, co).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 vi {
514
514
  return;
515
515
  let n;
516
516
  try {
517
- n = Ro(r, i, this);
517
+ n = jo(r, i, this);
518
518
  } catch (l) {
519
- v(this, T, Q).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = v(this, T, to).call(this, r);
519
+ v(this, T, Q).call(this, `converter for "${r.configKey}" threw parsing attribute ${t}="${i}"; using default`, l), n = v(this, T, no).call(this, r);
520
520
  }
521
- v(this, T, Xt).call(this, n);
521
+ v(this, T, Qt).call(this, n);
522
522
  }
523
523
  connectedCallback() {
524
- ci(this.localName, this), h(this, Te) || (I(this, Te, !0), I(this, ze, null), I(this, pe, !0)), v(this, T, Je).call(this), this.connect(), this.environmentChanged !== xe.prototype.environmentChanged && I(this, Ve, Qo((t) => this.environmentChanged(t))), this.viewportChanged !== xe.prototype.viewportChanged && I(this, De, Zo((t) => this.viewportChanged(t))), this.resized !== xe.prototype.resized && I(this, $e, li(this, (t) => this.resized(t), { immediate: !1 }));
524
+ fi(this.localName, this), h(this, Te) || (I(this, Te, !0), I(this, ze, null), I(this, pe, !0)), v(this, T, Qe).call(this), this.connect(), this.environmentChanged !== xe.prototype.environmentChanged && I(this, Ve, ii((t) => this.environmentChanged(t))), this.viewportChanged !== xe.prototype.viewportChanged && I(this, De, ri((t) => this.viewportChanged(t))), this.resized !== xe.prototype.resized && I(this, $e, pi(this, (t) => this.resized(t), { immediate: !1 }));
525
525
  }
526
526
  disconnectedCallback() {
527
527
  var t, o, i;
528
- di(this.localName, this), (t = h(this, Ve)) == null || t.call(this), I(this, Ve, void 0), (o = h(this, De)) == null || o.call(this), I(this, De, void 0), (i = h(this, $e)) == null || i.call(this), I(this, $e, void 0), this.disconnect();
528
+ gi(this.localName, this), (t = h(this, Ve)) == null || t.call(this), I(this, Ve, void 0), (o = h(this, De)) == null || o.call(this), I(this, De, void 0), (i = h(this, $e)) == null || i.call(this), I(this, $e, 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, rt).get(o) ?? h(this, _e).get(o);
535
- r && v(this, T, qt).call(this, r, i);
534
+ const r = h(this, nt).get(o) ?? h(this, _e).get(o);
535
+ r && v(this, T, Jt).call(this, r, i);
536
536
  }
537
- v(this, T, Je).call(this);
537
+ v(this, T, Qe).call(this);
538
538
  }
539
539
  /** Run `fn` and coalesce every input change it makes into a single reinit/update. */
540
540
  batch(t) {
541
- t(), v(this, T, Je).call(this);
541
+ t(), v(this, T, Qe).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 vi {
554
554
  * `await whenSettled()` between the two.
555
555
  */
556
556
  flush() {
557
- v(this, T, Je).call(this);
557
+ v(this, T, Qe).call(this);
558
558
  }
559
559
  /**
560
560
  * Resolves once the element is **settled** — i.e. every staged input change
@@ -592,10 +592,10 @@ const xe = class xe extends vi {
592
592
  get log() {
593
593
  if (h(this, Be))
594
594
  return h(this, Be);
595
- const t = mi(this.localName);
595
+ const t = yi(this.localName);
596
596
  if (!t)
597
- return xi;
598
- const o = h(this, zt) ?? I(this, zt, `${this.localName}#${this.id || ++wi}`);
597
+ return Ii;
598
+ const o = h(this, Dt) ?? I(this, Dt, `${this.localName}#${this.id || ++Si}`);
599
599
  return I(this, Be, t.forInstance(o, () => h(this, ie)));
600
600
  }
601
601
  /**
@@ -762,8 +762,8 @@ const xe = class xe extends vi {
762
762
  * `emit` does not call it separately.
763
763
  */
764
764
  emit(t, o, i) {
765
- const r = h(this, nt).get(t);
766
- return pi(this, t, o, {
765
+ const r = h(this, at).get(t);
766
+ return wi(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 vi {
801
801
  }
802
802
  }
803
803
  };
804
- me = new WeakMap(), rt = new WeakMap(), _e = new WeakMap(), nt = new WeakMap(), ke = new WeakMap(), at = new WeakMap(), At = new WeakMap(), Ce = new WeakMap(), pe = new WeakMap(), Se = new WeakMap(), Te = new WeakMap(), ze = new WeakMap(), Ne = new WeakMap(), Ve = new WeakMap(), De = new WeakMap(), $e = new WeakMap(), Re = new WeakMap(), zt = new WeakMap(), ie = new WeakMap(), Be = new WeakMap(), T = new WeakSet(), // ── internals ─────────────────────────────────────────────────────────────
805
- eo = function(t) {
804
+ me = new WeakMap(), nt = new WeakMap(), _e = new WeakMap(), at = new WeakMap(), ke = new WeakMap(), lt = new WeakMap(), Vt = new WeakMap(), Ce = new WeakMap(), pe = new WeakMap(), Se = new WeakMap(), Te = new WeakMap(), ze = new WeakMap(), Ne = new WeakMap(), Ve = new WeakMap(), De = new WeakMap(), $e = new WeakMap(), Re = new WeakMap(), Dt = new WeakMap(), ie = new WeakMap(), Be = new WeakMap(), T = new WeakSet(), // ── internals ─────────────────────────────────────────────────────────────
805
+ ro = function(t) {
806
806
  var o;
807
807
  for (const i of t) {
808
808
  let r = i.default;
@@ -814,15 +814,15 @@ eo = function(t) {
814
814
  }
815
815
  h(this, me)[i.configKey] = r, i.field && (this[i.field] = r);
816
816
  }
817
- }, to = function(t) {
817
+ }, no = 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
- so = function(t, o) {
820
+ ao = function(t, o) {
821
821
  var l;
822
822
  const i = this.constructor;
823
- if (_s.has(i))
823
+ if (Is.has(i))
824
824
  return;
825
- _s.add(i);
825
+ Is.add(i);
826
826
  const r = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set();
827
827
  for (const c of t)
828
828
  r.has(c.configKey) && v(this, T, Q).call(this, `invalid input table: duplicate configKey "${c.configKey}"`), r.add(c.configKey), c.attribute && (n.has(c.attribute) && v(this, T, Q).call(this, `invalid input table: duplicate attribute "${c.attribute}"`), n.add(c.attribute)), c.reflect && !c.attribute && v(this, T, 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) && v(this, T, Q).call(this, `invalid input table: "${c.configKey}" has reflect:true but its converter has no toAttribute`);
@@ -836,14 +836,14 @@ so = function(t, o) {
836
836
  */
837
837
  Q = function(t, ...o) {
838
838
  console.warn(`[BlissElement] <${this.localName ?? "unknown"}> ${t}`, ...o);
839
- }, oo = function(t) {
839
+ }, lo = function(t) {
840
840
  for (const o of t) {
841
841
  const i = o.configKey, r = Object.prototype.hasOwnProperty.call(this, i), n = r ? this[i] : void 0;
842
842
  r && delete this[i], Object.defineProperty(this, i, {
843
843
  configurable: !0,
844
844
  enumerable: !0,
845
845
  get: () => h(this, me)[i],
846
- set: (a) => v(this, T, qt).call(this, o, a)
846
+ set: (a) => v(this, T, Jt).call(this, o, a)
847
847
  }), r && ((h(this, ze) ?? I(this, ze, /* @__PURE__ */ new Set())).add(i), this[i] = n);
848
848
  }
849
849
  }, /**
@@ -851,7 +851,7 @@ Q = function(t, ...o) {
851
851
  * (de)registers a real listener for the event, so the property behaves like
852
852
  * `addEventListener(name, …)` and its handler receives the `CustomEvent`.
853
853
  */
854
- io = function(t) {
854
+ co = function(t) {
855
855
  for (const o of t) {
856
856
  const i = o.property;
857
857
  if (!i)
@@ -871,14 +871,14 @@ io = function(t) {
871
871
  }
872
872
  }), n && (this[i] = a);
873
873
  }
874
- }, qt = function(t, o) {
874
+ }, Jt = function(t, o) {
875
875
  var r;
876
- const i = Bo(t, o);
876
+ const i = Uo(t, o);
877
877
  if (!i) {
878
878
  v(this, T, Q).call(this, `rejected invalid value for property "${t.configKey}"; keeping previous value`, o);
879
879
  return;
880
880
  }
881
- if (v(this, T, Xt).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
881
+ if (v(this, T, Qt).call(this, i), t.reflect && t.attribute && ((r = t.converter) != null && r.toAttribute)) {
882
882
  const n = t.converter.toAttribute(i.value);
883
883
  I(this, Ne, !0);
884
884
  try {
@@ -887,18 +887,18 @@ io = function(t) {
887
887
  I(this, Ne, !1);
888
888
  }
889
889
  }
890
- }, Xt = 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, at).schedule(h(this, At)));
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" && I(this, pe, !0), (h(this, Ce) ?? I(this, Ce, {}))[t.configKey] = t.value, h(this, lt).schedule(h(this, Vt)));
892
892
  }, /** Cancel any queued microtask and flush pending changes synchronously now. */
893
- Je = function() {
894
- h(this, at).cancel(), v(this, T, Yt).call(this);
895
- }, Yt = function() {
893
+ Qe = function() {
894
+ h(this, lt).cancel(), v(this, T, Zt).call(this);
895
+ }, Zt = function() {
896
896
  if (!this.isConnected)
897
897
  return;
898
898
  const t = h(this, pe), o = h(this, Ce);
899
- I(this, pe, !1), I(this, Ce, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), v(this, T, ro).call(this);
899
+ I(this, pe, !1), I(this, Ce, null), t ? this.reinit() : o && Object.keys(o).length > 0 && this.update(o), v(this, T, ho).call(this);
900
900
  }, /** Resolve everyone awaiting {@link whenSettled} for the flush that just ran. */
901
- ro = function() {
901
+ ho = function() {
902
902
  if (h(this, Se).length === 0)
903
903
  return;
904
904
  const t = h(this, Se);
@@ -912,11 +912,11 @@ m(xe, "inputs"), /**
912
912
  * {@link emit} can fire and installs a managed `on<Name>` handler property.
913
913
  */
914
914
  m(xe, "events");
915
- let Gt = xe;
916
- function ks(s, e, t) {
915
+ let Yt = xe;
916
+ function Os(s, e, t) {
917
917
  typeof customElements > "u" || customElements.get(s) || customElements.define(s, e, t);
918
918
  }
919
- function _i(s) {
919
+ function Oi(s) {
920
920
  return {
921
921
  enableLogging: (e) => s.enableLogging(e),
922
922
  disableLogging: () => s.disableLogging(),
@@ -925,45 +925,45 @@ function _i(s) {
925
925
  getCategories: () => [...s.LOGGING_CATEGORIES]
926
926
  };
927
927
  }
928
- function ki(s, e, t) {
928
+ function Pi(s, e, t) {
929
929
  const { config: o, logging: i, shouldAutoDefine: r = !0 } = t;
930
- i && ui(s, i);
930
+ i && vi(s, i);
931
931
  const n = {
932
932
  version: () => o.version,
933
933
  config: o,
934
- ...i ? { logging: _i(i) } : {},
935
- register: () => ks(s, e),
936
- getInstances: () => hi(s)
934
+ ...i ? { logging: Oi(i) } : {},
935
+ register: () => Os(s, e),
936
+ getInstances: () => bi(s)
937
937
  };
938
- return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && ks(s, e), n;
938
+ return typeof window < "u" && ((window.components ?? (window.components = {}))[s] = n), r && Os(s, e), n;
939
939
  }
940
- const Cs = /* @__PURE__ */ new Map(), Ss = /* @__PURE__ */ new WeakMap();
941
- let ht;
942
- function Ci(s) {
940
+ const Ps = /* @__PURE__ */ new Map(), Ms = /* @__PURE__ */ new WeakMap();
941
+ let ut;
942
+ function Mi(s) {
943
943
  if (typeof CSSStyleSheet > "u" || !("adoptedStyleSheets" in s))
944
944
  return !1;
945
- if (ht === void 0)
945
+ if (ut === void 0)
946
946
  try {
947
- new CSSStyleSheet().replaceSync(""), ht = !0;
947
+ new CSSStyleSheet().replaceSync(""), ut = !0;
948
948
  } catch {
949
- ht = !1;
949
+ ut = !1;
950
950
  }
951
- return ht;
951
+ return ut;
952
952
  }
953
- function Si(s, ...e) {
953
+ function Li(s, ...e) {
954
954
  if (typeof document > "u")
955
955
  return;
956
- let t = Ss.get(s);
957
- t || Ss.set(s, t = /* @__PURE__ */ new Set());
956
+ let t = Ms.get(s);
957
+ t || Ms.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 (Ci(s)) {
963
+ if (Mi(s)) {
964
964
  const r = o.map((n) => {
965
- let a = Cs.get(n);
966
- return a || (a = new CSSStyleSheet(), a.replaceSync(n), Cs.set(n, a)), a;
965
+ let a = Ps.get(n);
966
+ return a || (a = new CSSStyleSheet(), a.replaceSync(n), Ps.set(n, a)), a;
967
967
  });
968
968
  s.adoptedStyleSheets = [...s.adoptedStyleSheets, ...r];
969
969
  return;
@@ -974,7 +974,7 @@ function Si(s, ...e) {
974
974
  n.textContent = r, i.appendChild(n);
975
975
  }
976
976
  }
977
- function Ti(s, e = {}) {
977
+ function Ei(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 Ti(s, e = {}) {
995
995
  }
996
996
  };
997
997
  }
998
- function no(s) {
998
+ function uo(s) {
999
999
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1000
1000
  }
1001
- function Ii(s, e) {
1002
- const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${no(e)}[a-z0-9-]+)`, "gi");
1001
+ function Ai(s, e) {
1002
+ const t = /* @__PURE__ */ new Set(), o = new RegExp(`var\\(\\s*(${uo(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 Pi(s, e) {
1009
- const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${no(e)}[a-z0-9-]+)\\s*:`, "gi");
1008
+ function zi(s, e) {
1009
+ const t = /* @__PURE__ */ new Set(), o = new RegExp(`(${uo(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 Oi(s, e, t = {}) {
1015
+ function Ni(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 Mi(s, e) {
1019
+ function Vi(s, e) {
1020
1020
  if (e.consumed.size === 0)
1021
1021
  return [];
1022
1022
  const t = [];
1023
- for (const o of Pi(s, e.prefix))
1024
- e.consumed.has(o) || t.push({ name: o, suggestions: Oi(o, e.consumed, { minScore: e.minScore }) });
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 }) });
1025
1025
  return t;
1026
1026
  }
1027
- const Li = {
1027
+ const Di = {
1028
1028
  mobile: "fullscreen",
1029
1029
  tablet: "floating",
1030
1030
  desktop: "floating"
1031
1031
  };
1032
- function Ei(s, e, t = {}) {
1032
+ function $i(s, e, t = {}) {
1033
1033
  if (s !== "auto")
1034
1034
  return s;
1035
- const o = ti(e);
1036
- return t[o] ?? Li[o];
1035
+ const o = ai(e);
1036
+ return t[o] ?? Di[o];
1037
1037
  }
1038
- function Ft(s) {
1038
+ function jt(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, ut = null;
1046
- function Ai() {
1045
+ let Ge = 0, mt = null;
1046
+ function Ri() {
1047
1047
  if (typeof document > "u")
1048
1048
  return () => {
1049
1049
  };
1050
- Ge === 0 && (ut = document.body.style.overflow, document.body.style.overflow = "hidden"), Ge++;
1050
+ Ge === 0 && (mt = document.body.style.overflow, document.body.style.overflow = "hidden"), Ge++;
1051
1051
  let s = !1;
1052
1052
  return () => {
1053
- s || (s = !0, Ge = Math.max(0, Ge - 1), Ge === 0 && ut !== null && (document.body.style.overflow = ut, ut = null));
1053
+ s || (s = !0, Ge = Math.max(0, Ge - 1), Ge === 0 && mt !== null && (document.body.style.overflow = mt, mt = null));
1054
1054
  };
1055
1055
  }
1056
- function zi(s) {
1056
+ function Bi(s) {
1057
1057
  const e = typeof window < "u" ? window.visualViewport : null;
1058
1058
  if (!e)
1059
1059
  return () => {
@@ -1068,6 +1068,42 @@ function zi(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"), Pt = /* @__PURE__ */ new Set(), qe = /* @__PURE__ */ new Map();
1072
+ let Mt = !1;
1073
+ function fs() {
1074
+ return typeof document < "u";
1075
+ }
1076
+ function Fi(s, e) {
1077
+ return e === Hi || s === e;
1078
+ }
1079
+ function mo(s) {
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(Pt))
1082
+ i.id !== t && Fi(i.group, o) && i.dismiss();
1083
+ }
1084
+ function Ki() {
1085
+ Mt || !fs() || (document.addEventListener(ps, mo), Mt = !0);
1086
+ }
1087
+ function Wi() {
1088
+ Mt && Pt.size === 0 && fs() && (document.removeEventListener(ps, mo), Mt = !1);
1089
+ }
1090
+ function ji(s, e) {
1091
+ fs() && document.dispatchEvent(new CustomEvent(ps, { detail: { source: s, group: e } }));
1092
+ }
1093
+ function Ui(s, e) {
1094
+ const t = { id: {}, group: e, dismiss: s };
1095
+ return Pt.add(t), Ki(), {
1096
+ activate() {
1097
+ qe.set(t.group, t), ji(t.id, t.group);
1098
+ },
1099
+ deactivate() {
1100
+ qe.get(t.group) === t && qe.delete(t.group);
1101
+ },
1102
+ dispose() {
1103
+ Pt.delete(t), qe.get(t.group) === t && qe.delete(t.group), Wi();
1104
+ }
1105
+ };
1106
+ }
1071
1107
  const U = {
1072
1108
  TRACE: 0,
1073
1109
  DEBUG: 1,
@@ -1075,21 +1111,21 @@ const U = {
1075
1111
  WARN: 3,
1076
1112
  ERROR: 4,
1077
1113
  SILENT: 5
1078
- }, Ts = ["trace", "debug", "info", "warn", "error"], Pt = () => {
1114
+ }, Ls = ["trace", "debug", "info", "warn", "error"], Lt = () => {
1079
1115
  };
1080
- let Ni = "km-log";
1081
- function Is(s) {
1116
+ let Gi = "km-log";
1117
+ function Es(s) {
1082
1118
  const t = console[s];
1083
- return typeof t == "function" ? t.bind(console) : Pt;
1119
+ return typeof t == "function" ? t.bind(console) : Lt;
1084
1120
  }
1085
- function Vi(s) {
1121
+ function qi(s) {
1086
1122
  if (s === "debug" && (s = "log"), typeof console > "u")
1087
- return Pt;
1123
+ return Lt;
1088
1124
  const e = console;
1089
- return e[s] !== void 0 ? Is(s) : e.log !== void 0 ? Is("log") : Pt;
1125
+ return e[s] !== void 0 ? Es(s) : e.log !== void 0 ? Es("log") : Lt;
1090
1126
  }
1091
- const Di = (s) => Vi(s);
1092
- function qe(s) {
1127
+ const Xi = (s) => qi(s);
1128
+ function Xe(s) {
1093
1129
  let e = s;
1094
1130
  const t = U;
1095
1131
  if (typeof e == "string" && t[e.toUpperCase()] !== void 0 && (e = t[e.toUpperCase()]), typeof e == "number" && e >= 0 && e <= U.SILENT)
@@ -1097,8 +1133,8 @@ function qe(s) {
1097
1133
  throw new TypeError(`setLevel() called with an invalid level: ${String(s)}`);
1098
1134
  }
1099
1135
  let ue;
1100
- const Ot = {};
1101
- class ao {
1136
+ const Et = {};
1137
+ class po {
1102
1138
  constructor(e, t) {
1103
1139
  m(this, "name");
1104
1140
  m(this, "levels", U);
@@ -1116,18 +1152,18 @@ class ao {
1116
1152
  m(this, "defaultLevel", null);
1117
1153
  /** Optional user-set level; overrides default. */
1118
1154
  m(this, "userLevel", null);
1119
- this.name = e, this.methodFactory = t, this.inheritedLevel = qe(ue ? ue.getLevel() : "WARN");
1155
+ this.name = e, this.methodFactory = t, this.inheritedLevel = Xe(ue ? ue.getLevel() : "WARN");
1120
1156
  const o = this.getPersistedLevel();
1121
- o != null && (this.userLevel = qe(o)), this.replaceLoggingMethods();
1157
+ o != null && (this.userLevel = Xe(o)), this.replaceLoggingMethods();
1122
1158
  }
1123
1159
  storageKey() {
1124
- return typeof this.name == "string" ? `${Ni}:${this.name}` : void 0;
1160
+ return typeof this.name == "string" ? `${Gi}:${this.name}` : void 0;
1125
1161
  }
1126
1162
  persist(e) {
1127
1163
  const t = this.storageKey();
1128
1164
  if (typeof window > "u" || !t)
1129
1165
  return;
1130
- const o = (Ts[e] ?? "silent").toUpperCase();
1166
+ const o = (Ls[e] ?? "silent").toUpperCase();
1131
1167
  try {
1132
1168
  window.localStorage[t] = o;
1133
1169
  } catch {
@@ -1155,18 +1191,18 @@ class ao {
1155
1191
  }
1156
1192
  replaceLoggingMethods() {
1157
1193
  const e = this.getLevel();
1158
- Ts.forEach((t, o) => {
1159
- this[t] = o < e ? Pt : this.methodFactory(t, e, this.name);
1194
+ Ls.forEach((t, o) => {
1195
+ this[t] = o < e ? Lt : this.methodFactory(t, e, this.name);
1160
1196
  }), this.log = this.debug;
1161
1197
  }
1162
1198
  getLevel() {
1163
1199
  return this.userLevel != null ? this.userLevel : this.defaultLevel != null ? this.defaultLevel : this.inheritedLevel;
1164
1200
  }
1165
1201
  setLevel(e, t) {
1166
- this.userLevel = qe(e), t !== !1 && this.persist(this.userLevel), this.replaceLoggingMethods();
1202
+ this.userLevel = Xe(e), t !== !1 && this.persist(this.userLevel), this.replaceLoggingMethods();
1167
1203
  }
1168
1204
  setDefaultLevel(e) {
1169
- this.defaultLevel = qe(e), this.getPersistedLevel() || this.setLevel(e, !1);
1205
+ this.defaultLevel = Xe(e), this.getPersistedLevel() || this.setLevel(e, !1);
1170
1206
  }
1171
1207
  resetLevel() {
1172
1208
  this.userLevel = null, this.clearPersisted(), this.replaceLoggingMethods();
@@ -1178,19 +1214,19 @@ class ao {
1178
1214
  this.setLevel(U.SILENT, e);
1179
1215
  }
1180
1216
  rebuild() {
1181
- if (ue && ue !== this && (this.inheritedLevel = qe(ue.getLevel())), this.replaceLoggingMethods(), ue === this)
1182
- for (const e in Ot)
1183
- Ot[e].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();
1184
1220
  }
1185
1221
  }
1186
- ue = new ao(void 0, Di);
1187
- function $i(s) {
1222
+ ue = new po(void 0, Xi);
1223
+ function Yi(s) {
1188
1224
  if (typeof s != "string" || s === "")
1189
1225
  throw new TypeError("You must supply a non-empty name when creating a logger.");
1190
- let e = Ot[s];
1191
- return e || (e = Ot[s] = new ao(s, ue.methodFactory)), e;
1226
+ let e = Et[s];
1227
+ return e || (e = Et[s] = new po(s, ue.methodFactory)), e;
1192
1228
  }
1193
- const Ri = ["INIT", "DATA", "UI"], Bi = "debug", Ps = [
1229
+ const Ji = ["INIT", "DATA", "UI"], Qi = "debug", As = [
1194
1230
  "#4c8bf5",
1195
1231
  // blue
1196
1232
  "#2ea043",
@@ -1207,43 +1243,43 @@ const Ri = ["INIT", "DATA", "UI"], Bi = "debug", Ps = [
1207
1243
  // teal
1208
1244
  "#8a6d3b"
1209
1245
  // brown
1210
- ], Os = /* @__PURE__ */ new WeakSet();
1211
- function Hi(s, e, t) {
1212
- if (Os.has(s))
1246
+ ], zs = /* @__PURE__ */ new WeakSet();
1247
+ function Zi(s, e, t) {
1248
+ if (zs.has(s))
1213
1249
  return;
1214
- Os.add(s);
1250
+ zs.add(s);
1215
1251
  const o = s.methodFactory, i = `color:${t};font-weight:bold`;
1216
1252
  s.methodFactory = (r, n, a) => {
1217
1253
  const l = o(r, n, a);
1218
1254
  return (...c) => l(`%c[${e}]`, i, ...c);
1219
1255
  }, s.setLevel(s.getLevel(), !1);
1220
1256
  }
1221
- function Fi(s) {
1257
+ function er(s) {
1222
1258
  return typeof s == "number" ? s : U[s.toUpperCase()] ?? U.SILENT;
1223
1259
  }
1224
- const Ki = [
1260
+ const tr = [
1225
1261
  ["trace", U.TRACE, "debug"],
1226
1262
  ["debug", U.DEBUG, "debug"],
1227
1263
  ["info", U.INFO, "info"],
1228
1264
  ["warn", U.WARN, "warn"],
1229
1265
  ["error", U.ERROR, "error"]
1230
1266
  ];
1231
- function Wi(s, e, t) {
1267
+ function sr(s, e, t) {
1232
1268
  const o = `color:${s.color};font-weight:bold`, i = "color:#888", r = {};
1233
- for (const [n, a, l] of Ki)
1269
+ for (const [n, a, l] of tr)
1234
1270
  r[n] = (...c) => {
1235
- const d = t(), u = Math.min(s.logger.getLevel(), d == null ? U.SILENT : Fi(d));
1271
+ const d = t(), u = Math.min(s.logger.getLevel(), d == null ? U.SILENT : er(d));
1236
1272
  if (a < u)
1237
1273
  return;
1238
1274
  (console[l] ?? console.log).bind(console)(`%c[${s.label}]%c ${e}`, o, i, ...c);
1239
1275
  };
1240
1276
  return r;
1241
1277
  }
1242
- function ji(s, e = Ri) {
1278
+ function or(s, e = Ji) {
1243
1279
  const t = {}, o = {};
1244
1280
  e.forEach((r, n) => {
1245
- const a = `${s}:${r}`, l = Ps[n % Ps.length], c = $i(a);
1246
- Hi(c, a, l), t[r] = c, o[r] = { label: a, color: l, logger: c };
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 };
1247
1283
  });
1248
1284
  const i = (r) => {
1249
1285
  for (const n of e)
@@ -1252,7 +1288,7 @@ function ji(s, e = Ri) {
1252
1288
  return {
1253
1289
  loggers: t,
1254
1290
  LOGGING_CATEGORIES: e,
1255
- enableLogging(r = Bi) {
1291
+ enableLogging(r = Qi) {
1256
1292
  i(r);
1257
1293
  },
1258
1294
  disableLogging() {
@@ -1268,81 +1304,81 @@ function ji(s, e = Ri) {
1268
1304
  forInstance(r, n) {
1269
1305
  const a = {};
1270
1306
  for (const l of e)
1271
- a[l] = Wi(o[l], r, n);
1307
+ a[l] = sr(o[l], r, n);
1272
1308
  return a;
1273
1309
  }
1274
1310
  };
1275
1311
  }
1276
- const be = Math.min, ne = Math.max, Mt = Math.round, mt = Math.floor, ae = (s) => ({
1312
+ const be = Math.min, ne = Math.max, At = Math.round, pt = Math.floor, ae = (s) => ({
1277
1313
  x: s,
1278
1314
  y: s
1279
- }), Ui = {
1315
+ }), ir = {
1280
1316
  left: "right",
1281
1317
  right: "left",
1282
1318
  bottom: "top",
1283
1319
  top: "bottom"
1284
1320
  };
1285
- function lo(s, e, t) {
1321
+ function fo(s, e, t) {
1286
1322
  return ne(s, be(e, t));
1287
1323
  }
1288
1324
  function Ke(s, e) {
1289
1325
  return typeof s == "function" ? s(e) : s;
1290
1326
  }
1291
- function Oe(s) {
1327
+ function Pe(s) {
1292
1328
  return s.split("-")[0];
1293
1329
  }
1294
1330
  function We(s) {
1295
1331
  return s.split("-")[1];
1296
1332
  }
1297
- function co(s) {
1333
+ function go(s) {
1298
1334
  return s === "x" ? "y" : "x";
1299
1335
  }
1300
- function hs(s) {
1336
+ function gs(s) {
1301
1337
  return s === "y" ? "height" : "width";
1302
1338
  }
1303
1339
  function re(s) {
1304
1340
  const e = s[0];
1305
1341
  return e === "t" || e === "b" ? "y" : "x";
1306
1342
  }
1307
- function us(s) {
1308
- return co(re(s));
1343
+ function bs(s) {
1344
+ return go(re(s));
1309
1345
  }
1310
- function Gi(s, e, t) {
1346
+ function rr(s, e, t) {
1311
1347
  t === void 0 && (t = !1);
1312
- const o = We(s), i = us(s), r = hs(i);
1348
+ const o = We(s), i = bs(s), r = gs(i);
1313
1349
  let n = i === "x" ? o === (t ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
1314
- return e.reference[r] > e.floating[r] && (n = Lt(n)), [n, Lt(n)];
1350
+ return e.reference[r] > e.floating[r] && (n = zt(n)), [n, zt(n)];
1315
1351
  }
1316
- function qi(s) {
1317
- const e = Lt(s);
1318
- return [Jt(s), e, Jt(e)];
1352
+ function nr(s) {
1353
+ const e = zt(s);
1354
+ return [es(s), e, es(e)];
1319
1355
  }
1320
- function Jt(s) {
1356
+ function es(s) {
1321
1357
  return s.includes("start") ? s.replace("start", "end") : s.replace("end", "start");
1322
1358
  }
1323
- const Ms = ["left", "right"], Ls = ["right", "left"], Xi = ["top", "bottom"], Yi = ["bottom", "top"];
1324
- function Ji(s, e, t) {
1359
+ const Ns = ["left", "right"], Vs = ["right", "left"], ar = ["top", "bottom"], lr = ["bottom", "top"];
1360
+ function cr(s, e, t) {
1325
1361
  switch (s) {
1326
1362
  case "top":
1327
1363
  case "bottom":
1328
- return t ? e ? Ls : Ms : e ? Ms : Ls;
1364
+ return t ? e ? Vs : Ns : e ? Ns : Vs;
1329
1365
  case "left":
1330
1366
  case "right":
1331
- return e ? Xi : Yi;
1367
+ return e ? ar : lr;
1332
1368
  default:
1333
1369
  return [];
1334
1370
  }
1335
1371
  }
1336
- function Qi(s, e, t, o) {
1372
+ function dr(s, e, t, o) {
1337
1373
  const i = We(s);
1338
- let r = Ji(Oe(s), t === "start", o);
1339
- return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(Jt)))), r;
1374
+ let r = cr(Pe(s), t === "start", o);
1375
+ return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(es)))), r;
1340
1376
  }
1341
- function Lt(s) {
1342
- const e = Oe(s);
1343
- return Ui[e] + s.slice(e.length);
1377
+ function zt(s) {
1378
+ const e = Pe(s);
1379
+ return ir[e] + s.slice(e.length);
1344
1380
  }
1345
- function Zi(s) {
1381
+ function hr(s) {
1346
1382
  var e, t, o, i;
1347
1383
  return {
1348
1384
  top: (e = s.top) != null ? e : 0,
@@ -1351,15 +1387,15 @@ function Zi(s) {
1351
1387
  left: (i = s.left) != null ? i : 0
1352
1388
  };
1353
1389
  }
1354
- function ho(s) {
1355
- return typeof s != "number" ? Zi(s) : {
1390
+ function bo(s) {
1391
+ return typeof s != "number" ? hr(s) : {
1356
1392
  top: s,
1357
1393
  right: s,
1358
1394
  bottom: s,
1359
1395
  left: s
1360
1396
  };
1361
1397
  }
1362
- function Et(s) {
1398
+ function Nt(s) {
1363
1399
  const {
1364
1400
  x: e,
1365
1401
  y: t,
@@ -1377,12 +1413,12 @@ function Et(s) {
1377
1413
  y: t
1378
1414
  };
1379
1415
  }
1380
- function Es(s, e, t) {
1416
+ function Ds(s, e, t) {
1381
1417
  let {
1382
1418
  reference: o,
1383
1419
  floating: i
1384
1420
  } = s;
1385
- const r = re(e), n = us(e), a = hs(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 = bs(e), a = gs(n), l = Pe(e), c = r === "y", d = o.x + o.width / 2 - i.width / 2, u = o.y + o.height / 2 - i.height / 2, f = o[a] / 2 - i[a] / 2;
1386
1422
  let p;
1387
1423
  switch (l) {
1388
1424
  case "top":
@@ -1418,7 +1454,7 @@ function Es(s, e, t) {
1418
1454
  const g = We(e);
1419
1455
  return g && (p[n] += f * (g === "end" ? 1 : -1) * (t && c ? -1 : 1)), p;
1420
1456
  }
1421
- async function er(s, e) {
1457
+ async function ur(s, e) {
1422
1458
  var t;
1423
1459
  e === void 0 && (e = {});
1424
1460
  const {
@@ -1434,8 +1470,8 @@ async function er(s, e) {
1434
1470
  elementContext: u = "floating",
1435
1471
  altBoundary: f = !1,
1436
1472
  padding: p = 0
1437
- } = Ke(e, s), g = ho(p), y = a[f ? u === "floating" ? "reference" : "floating" : u], b = Et(await r.getClippingRect({
1438
- 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
+ } = Ke(e, s), g = bo(p), w = a[f ? u === "floating" ? "reference" : "floating" : u], b = Nt(await r.getClippingRect({
1474
+ element: (t = await (r.isElement == null ? void 0 : r.isElement(w))) == null || t ? w : w.contextElement || await (r.getDocumentElement == null ? void 0 : r.getDocumentElement(a.floating)),
1439
1475
  boundary: c,
1440
1476
  rootBoundary: d,
1441
1477
  strategy: l
@@ -1447,7 +1483,7 @@ async function er(s, e) {
1447
1483
  } : n.reference, k = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a.floating)), E = await (r.isElement == null ? void 0 : r.isElement(k)) && await (r.getScale == null ? void 0 : r.getScale(k)) || {
1448
1484
  x: 1,
1449
1485
  y: 1
1450
- }, A = Et(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
1486
+ }, A = Nt(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
1451
1487
  elements: a,
1452
1488
  rect: _,
1453
1489
  offsetParent: k,
@@ -1460,7 +1496,7 @@ async function er(s, e) {
1460
1496
  right: (A.right - b.right + g.right) / E.x
1461
1497
  };
1462
1498
  }
1463
- const tr = 50, sr = async (s, e, t) => {
1499
+ const mr = 50, pr = async (s, e, t) => {
1464
1500
  const {
1465
1501
  placement: o = "bottom",
1466
1502
  strategy: i = "absolute",
@@ -1468,7 +1504,7 @@ const tr = 50, sr = async (s, e, t) => {
1468
1504
  platform: n
1469
1505
  } = t, a = n.detectOverflow ? n : {
1470
1506
  ...n,
1471
- detectOverflow: er
1507
+ detectOverflow: ur
1472
1508
  }, l = await (n.isRTL == null ? void 0 : n.isRTL(e));
1473
1509
  let c = await n.getElementRects({
1474
1510
  reference: s,
@@ -1477,16 +1513,16 @@ const tr = 50, sr = async (s, e, t) => {
1477
1513
  }), {
1478
1514
  x: d,
1479
1515
  y: u
1480
- } = Es(c, o, l), f = o, p = 0;
1516
+ } = Ds(c, o, l), f = o, p = 0;
1481
1517
  const g = {};
1482
- for (let w = 0; w < r.length; w++) {
1483
- const y = r[w];
1484
- if (!y)
1518
+ for (let y = 0; y < r.length; y++) {
1519
+ const w = r[y];
1520
+ if (!w)
1485
1521
  continue;
1486
1522
  const {
1487
1523
  name: b,
1488
1524
  fn: _
1489
- } = y, {
1525
+ } = w, {
1490
1526
  x: k,
1491
1527
  y: E,
1492
1528
  data: A,
@@ -1508,14 +1544,14 @@ const tr = 50, sr = async (s, e, t) => {
1508
1544
  d = k ?? d, u = E ?? u, g[b] = {
1509
1545
  ...g[b],
1510
1546
  ...A
1511
- }, $ && p < tr && (p++, typeof $ == "object" && ($.placement && (f = $.placement), $.rects && (c = $.rects === !0 ? await n.getElementRects({
1547
+ }, $ && p < mr && (p++, typeof $ == "object" && ($.placement && (f = $.placement), $.rects && (c = $.rects === !0 ? await n.getElementRects({
1512
1548
  reference: s,
1513
1549
  floating: e,
1514
1550
  strategy: i
1515
1551
  }) : $.rects), {
1516
1552
  x: d,
1517
1553
  y: u
1518
- } = Es(c, f, l)), w = -1);
1554
+ } = Ds(c, f, l)), y = -1);
1519
1555
  }
1520
1556
  return {
1521
1557
  x: d,
@@ -1524,7 +1560,7 @@ const tr = 50, sr = async (s, e, t) => {
1524
1560
  strategy: i,
1525
1561
  middlewareData: g
1526
1562
  };
1527
- }, or = (s) => ({
1563
+ }, fr = (s) => ({
1528
1564
  name: "arrow",
1529
1565
  options: s,
1530
1566
  async fn(e) {
@@ -1542,13 +1578,13 @@ const tr = 50, sr = async (s, e, t) => {
1542
1578
  } = Ke(s, e) || {};
1543
1579
  if (c == null)
1544
1580
  return {};
1545
- const u = ho(d), f = {
1581
+ const u = bo(d), f = {
1546
1582
  x: t,
1547
1583
  y: o
1548
- }, p = us(i), g = hs(p), w = await n.getDimensions(c), y = p === "y", b = y ? "top" : "left", _ = y ? "bottom" : "right", k = y ? "clientHeight" : "clientWidth", E = r.reference[g] + r.reference[p] - f[p] - r.floating[g], A = f[p] - r.reference[p], $ = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
1584
+ }, p = bs(i), g = gs(p), y = await n.getDimensions(c), w = p === "y", b = w ? "top" : "left", _ = w ? "bottom" : "right", k = w ? "clientHeight" : "clientWidth", E = r.reference[g] + r.reference[p] - f[p] - r.floating[g], A = f[p] - r.reference[p], $ = await (n.getOffsetParent == null ? void 0 : n.getOffsetParent(c));
1549
1585
  let F = $ ? $[k] : 0;
1550
1586
  (!F || !await (n.isElement == null ? void 0 : n.isElement($))) && (F = a.floating[k] || r.floating[g]);
1551
- const q = E / 2 - A / 2, N = F / 2 - w[g] / 2 - 1, C = be(u[b], N), O = be(u[_], N), M = F - w[g] - O, R = F / 2 - w[g] / 2 + q, S = lo(C, R, M), H = !l.arrow && We(i) != null && R !== S && r.reference[g] / 2 - (R < C ? C : O) - w[g] / 2 < 0, se = H ? R < C ? R - C : R - M : 0;
1587
+ const q = E / 2 - A / 2, V = F / 2 - y[g] / 2 - 1, C = be(u[b], V), P = be(u[_], V), M = F - y[g] - P, R = F / 2 - y[g] / 2 + q, S = fo(C, R, M), H = !l.arrow && We(i) != null && R !== S && r.reference[g] / 2 - (R < C ? C : P) - y[g] / 2 < 0, se = H ? R < C ? R - C : R - M : 0;
1552
1588
  return {
1553
1589
  [p]: f[p] + se,
1554
1590
  data: {
@@ -1561,7 +1597,7 @@ const tr = 50, sr = async (s, e, t) => {
1561
1597
  reset: H
1562
1598
  };
1563
1599
  }
1564
- }), ir = function(s) {
1600
+ }), gr = function(s) {
1565
1601
  return s === void 0 && (s = {}), {
1566
1602
  name: "flip",
1567
1603
  options: s,
@@ -1580,25 +1616,25 @@ const tr = 50, sr = async (s, e, t) => {
1580
1616
  fallbackPlacements: f,
1581
1617
  fallbackStrategy: p = "bestFit",
1582
1618
  fallbackAxisSideDirection: g = "none",
1583
- flipAlignment: w = !0,
1584
- ...y
1619
+ flipAlignment: y = !0,
1620
+ ...w
1585
1621
  } = Ke(s, e);
1586
1622
  if ((t = r.arrow) != null && t.alignmentOffset)
1587
1623
  return {};
1588
- const b = Oe(i), _ = re(a), k = Oe(a) === a, E = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), A = f || (k || !w ? [Lt(a)] : qi(a)), $ = g !== "none";
1589
- !f && $ && A.push(...Qi(a, w, g, E));
1590
- const F = [a, ...A], q = await l.detectOverflow(e, y), N = [];
1624
+ const b = Pe(i), _ = re(a), k = Pe(a) === a, E = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), A = f || (k || !y ? [zt(a)] : nr(a)), $ = g !== "none";
1625
+ !f && $ && A.push(...dr(a, y, g, E));
1626
+ const F = [a, ...A], q = await l.detectOverflow(e, w), V = [];
1591
1627
  let C = ((o = r.flip) == null ? void 0 : o.overflows) || [];
1592
- if (d && N.push(q[b]), u) {
1593
- const S = Gi(i, n, E);
1594
- N.push(q[S[0]], q[S[1]]);
1628
+ if (d && V.push(q[b]), u) {
1629
+ const S = rr(i, n, E);
1630
+ V.push(q[S[0]], q[S[1]]);
1595
1631
  }
1596
1632
  if (C = [...C, {
1597
1633
  placement: i,
1598
- overflows: N
1599
- }], !N.every((S) => S <= 0)) {
1600
- var O, M;
1601
- const S = (((O = r.flip) == null ? void 0 : O.index) || 0) + 1, H = F[S];
1634
+ overflows: V
1635
+ }], !V.every((S) => S <= 0)) {
1636
+ var P, M;
1637
+ const S = (((P = r.flip) == null ? void 0 : P.index) || 0) + 1, H = F[S];
1602
1638
  if (H && (!(u === "alignment" ? _ !== re(H) : !1) || // We leave the current main axis only if every placement on that axis
1603
1639
  // overflows the main axis.
1604
1640
  C.every((Y) => re(Y.placement) === _ ? Y.overflows[0] > 0 : !0)))
@@ -1611,12 +1647,12 @@ const tr = 50, sr = async (s, e, t) => {
1611
1647
  placement: H
1612
1648
  }
1613
1649
  };
1614
- let se = (M = C.filter((we) => we.overflows[0] <= 0).sort((we, Y) => we.overflows[1] - Y.overflows[1])[0]) == null ? void 0 : M.placement;
1650
+ let se = (M = C.filter((ye) => ye.overflows[0] <= 0).sort((ye, Y) => ye.overflows[1] - Y.overflows[1])[0]) == null ? void 0 : M.placement;
1615
1651
  if (!se)
1616
1652
  switch (p) {
1617
1653
  case "bestFit": {
1618
1654
  var R;
1619
- const we = (R = C.filter((Y) => {
1655
+ const ye = (R = C.filter((Y) => {
1620
1656
  if ($) {
1621
1657
  const de = re(Y.placement);
1622
1658
  return de === _ || // Create a bias to the `y` side axis due to horizontal
@@ -1624,8 +1660,8 @@ const tr = 50, sr = async (s, e, t) => {
1624
1660
  de === "y";
1625
1661
  }
1626
1662
  return !0;
1627
- }).map((Y) => [Y.placement, Y.overflows.filter((de) => de > 0).reduce((de, Lo) => de + Lo, 0)]).sort((Y, de) => Y[1] - de[1])[0]) == null ? void 0 : R[0];
1628
- we && (se = we);
1663
+ }).map((Y) => [Y.placement, Y.overflows.filter((de) => de > 0).reduce((de, Do) => de + Do, 0)]).sort((Y, de) => Y[1] - de[1])[0]) == null ? void 0 : R[0];
1664
+ ye && (se = ye);
1629
1665
  break;
1630
1666
  }
1631
1667
  case "initialPlacement":
@@ -1642,13 +1678,13 @@ const tr = 50, sr = async (s, e, t) => {
1642
1678
  return {};
1643
1679
  }
1644
1680
  };
1645
- }, rr = /* @__PURE__ */ new Set(["left", "top"]);
1646
- async function nr(s, e) {
1681
+ }, br = /* @__PURE__ */ new Set(["left", "top"]);
1682
+ async function vr(s, e) {
1647
1683
  const {
1648
1684
  placement: t,
1649
1685
  platform: o,
1650
1686
  elements: i
1651
- } = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = Oe(t), a = We(t), l = re(t) === "y", c = rr.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 = Pe(t), a = We(t), l = re(t) === "y", c = br.has(n) ? -1 : 1, d = r && l ? -1 : 1, u = Ke(e, s);
1652
1688
  let {
1653
1689
  mainAxis: f,
1654
1690
  crossAxis: p,
@@ -1670,7 +1706,7 @@ async function nr(s, e) {
1670
1706
  y: p * d
1671
1707
  };
1672
1708
  }
1673
- const ar = function(s) {
1709
+ const yr = function(s) {
1674
1710
  return s === void 0 && (s = 0), {
1675
1711
  name: "offset",
1676
1712
  options: s,
@@ -1681,7 +1717,7 @@ const ar = function(s) {
1681
1717
  y: r,
1682
1718
  placement: n,
1683
1719
  middlewareData: a
1684
- } = e, l = await nr(e, s);
1720
+ } = e, l = await vr(e, s);
1685
1721
  return n === ((t = a.offset) == null ? void 0 : t.placement) && (o = a.arrow) != null && o.alignmentOffset ? {} : {
1686
1722
  x: i + l.x,
1687
1723
  y: r + l.y,
@@ -1692,7 +1728,7 @@ const ar = function(s) {
1692
1728
  };
1693
1729
  }
1694
1730
  };
1695
- }, lr = function(s) {
1731
+ }, wr = function(s) {
1696
1732
  return s === void 0 && (s = {}), {
1697
1733
  name: "shift",
1698
1734
  options: s,
@@ -1721,14 +1757,14 @@ const ar = function(s) {
1721
1757
  } = Ke(s, e), d = {
1722
1758
  x: t,
1723
1759
  y: o
1724
- }, u = await r.detectOverflow(e, c), f = re(i), p = co(f);
1725
- let g = d[p], w = d[f];
1726
- const y = (_, k) => lo(k + u[_ === "y" ? "top" : "left"], k, k - u[_ === "y" ? "bottom" : "right"]);
1727
- n && (g = y(p, g)), a && (w = y(f, w));
1760
+ }, u = await r.detectOverflow(e, c), f = re(i), p = go(f);
1761
+ let g = d[p], y = d[f];
1762
+ const w = (_, k) => fo(k + u[_ === "y" ? "top" : "left"], k, k - u[_ === "y" ? "bottom" : "right"]);
1763
+ n && (g = w(p, g)), a && (y = w(f, y));
1728
1764
  const b = l.fn({
1729
1765
  ...e,
1730
1766
  [p]: g,
1731
- [f]: w
1767
+ [f]: y
1732
1768
  });
1733
1769
  return {
1734
1770
  ...b,
@@ -1743,7 +1779,7 @@ const ar = function(s) {
1743
1779
  };
1744
1780
  }
1745
1781
  };
1746
- }, cr = function(s) {
1782
+ }, xr = function(s) {
1747
1783
  return s === void 0 && (s = {}), {
1748
1784
  name: "size",
1749
1785
  options: s,
@@ -1757,15 +1793,15 @@ const ar = function(s) {
1757
1793
  apply: n = () => {
1758
1794
  },
1759
1795
  ...a
1760
- } = Ke(s, e), l = await i.detectOverflow(e, a), c = Oe(t), d = We(t), u = re(t) === "y", {
1796
+ } = Ke(s, e), l = await i.detectOverflow(e, a), c = Pe(t), d = We(t), u = re(t) === "y", {
1761
1797
  width: f,
1762
1798
  height: p
1763
1799
  } = o.floating;
1764
- let g, w;
1765
- 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");
1766
- const y = p - l.top - l.bottom, b = f - l.left - l.right, _ = be(p - l[g], y), k = be(f - l[w], b), E = e.middlewareData.shift, A = !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 w = p - l.top - l.bottom, b = f - l.left - l.right, _ = be(p - l[g], w), k = be(f - l[y], b), E = e.middlewareData.shift, A = !E;
1767
1803
  let $ = _, F = k;
1768
- E != null && E.enabled.x && (F = b), E != null && E.enabled.y && ($ = y), A && !d && (u ? F = f - 2 * ne(l.left, l.right) : $ = p - 2 * ne(l.top, l.bottom)), await n({
1804
+ E != null && E.enabled.x && (F = b), E != null && E.enabled.y && ($ = w), A && !d && (u ? F = f - 2 * ne(l.left, l.right) : $ = p - 2 * ne(l.top, l.bottom)), await n({
1769
1805
  ...e,
1770
1806
  availableWidth: F,
1771
1807
  availableHeight: $
@@ -1779,11 +1815,11 @@ const ar = function(s) {
1779
1815
  }
1780
1816
  };
1781
1817
  };
1782
- function Nt() {
1818
+ function $t() {
1783
1819
  return typeof window < "u";
1784
1820
  }
1785
1821
  function je(s) {
1786
- return uo(s) ? (s.nodeName || "").toLowerCase() : "#document";
1822
+ return vo(s) ? (s.nodeName || "").toLowerCase() : "#document";
1787
1823
  }
1788
1824
  function G(s) {
1789
1825
  var e;
@@ -1791,21 +1827,21 @@ function G(s) {
1791
1827
  }
1792
1828
  function le(s) {
1793
1829
  var e;
1794
- return (e = (uo(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
1830
+ return (e = (vo(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
1795
1831
  }
1796
- function uo(s) {
1797
- return Nt() ? s instanceof Node || s instanceof G(s).Node : !1;
1832
+ function vo(s) {
1833
+ return $t() ? s instanceof Node || s instanceof G(s).Node : !1;
1798
1834
  }
1799
1835
  function ee(s) {
1800
- return Nt() ? s instanceof Element || s instanceof G(s).Element : !1;
1836
+ return $t() ? s instanceof Element || s instanceof G(s).Element : !1;
1801
1837
  }
1802
1838
  function ve(s) {
1803
- return Nt() ? s instanceof HTMLElement || s instanceof G(s).HTMLElement : !1;
1839
+ return $t() ? s instanceof HTMLElement || s instanceof G(s).HTMLElement : !1;
1804
1840
  }
1805
- function As(s) {
1806
- return !Nt() || typeof ShadowRoot > "u" ? !1 : s instanceof ShadowRoot || s instanceof G(s).ShadowRoot;
1841
+ function $s(s) {
1842
+ return !$t() || typeof ShadowRoot > "u" ? !1 : s instanceof ShadowRoot || s instanceof G(s).ShadowRoot;
1807
1843
  }
1808
- function Vt(s) {
1844
+ function Rt(s) {
1809
1845
  const {
1810
1846
  overflow: e,
1811
1847
  overflowX: t,
@@ -1814,10 +1850,10 @@ function Vt(s) {
1814
1850
  } = te(s);
1815
1851
  return /auto|scroll|overlay|hidden|clip/.test(e + o + t) && i !== "inline" && i !== "contents";
1816
1852
  }
1817
- function dr(s) {
1853
+ function _r(s) {
1818
1854
  return /^(table|td|th)$/.test(je(s));
1819
1855
  }
1820
- function Dt(s) {
1856
+ function Bt(s) {
1821
1857
  try {
1822
1858
  if (s.matches(":popover-open"))
1823
1859
  return !0;
@@ -1829,33 +1865,33 @@ function Dt(s) {
1829
1865
  return !1;
1830
1866
  }
1831
1867
  }
1832
- const hr = /transform|translate|scale|rotate|perspective|filter/, ur = /paint|layout|strict|content/, ye = (s) => !!s && s !== "none";
1833
- let Kt;
1834
- function ms(s) {
1868
+ const kr = /transform|translate|scale|rotate|perspective|filter/, Cr = /paint|layout|strict|content/, we = (s) => !!s && s !== "none";
1869
+ let Ut;
1870
+ function vs(s) {
1835
1871
  const e = ee(s) ? te(s) : s;
1836
- return ye(e.transform) || ye(e.translate) || ye(e.scale) || ye(e.rotate) || ye(e.perspective) || !ps() && (ye(e.backdropFilter) || ye(e.filter)) || hr.test(e.willChange || "") || ur.test(e.contain || "");
1872
+ return we(e.transform) || we(e.translate) || we(e.scale) || we(e.rotate) || we(e.perspective) || !ys() && (we(e.backdropFilter) || we(e.filter)) || kr.test(e.willChange || "") || Cr.test(e.contain || "");
1837
1873
  }
1838
- function mr(s) {
1874
+ function Sr(s) {
1839
1875
  let e = Me(s);
1840
- for (; ve(e) && !ot(e); ) {
1841
- if (ms(e))
1876
+ for (; ve(e) && !it(e); ) {
1877
+ if (vs(e))
1842
1878
  return e;
1843
- if (Dt(e))
1879
+ if (Bt(e))
1844
1880
  return null;
1845
1881
  e = Me(e);
1846
1882
  }
1847
1883
  return null;
1848
1884
  }
1849
- function ps() {
1850
- return Kt == null && (Kt = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), Kt;
1885
+ function ys() {
1886
+ return Ut == null && (Ut = typeof CSS < "u" && CSS.supports && CSS.supports("-webkit-backdrop-filter", "none")), Ut;
1851
1887
  }
1852
- function ot(s) {
1888
+ function it(s) {
1853
1889
  return /^(html|body|#document)$/.test(je(s));
1854
1890
  }
1855
1891
  function te(s) {
1856
1892
  return G(s).getComputedStyle(s);
1857
1893
  }
1858
- function $t(s) {
1894
+ function Ht(s) {
1859
1895
  return ee(s) ? {
1860
1896
  scrollLeft: s.scrollLeft,
1861
1897
  scrollTop: s.scrollTop
@@ -1871,108 +1907,108 @@ function Me(s) {
1871
1907
  // Step into the shadow DOM of the parent of a slotted node.
1872
1908
  s.assignedSlot || // DOM Element detected.
1873
1909
  s.parentNode || // ShadowRoot detected.
1874
- As(s) && s.host || // Fallback.
1910
+ $s(s) && s.host || // Fallback.
1875
1911
  le(s)
1876
1912
  );
1877
- return As(e) ? e.host : e;
1913
+ return $s(e) ? e.host : e;
1878
1914
  }
1879
- function mo(s) {
1915
+ function yo(s) {
1880
1916
  const e = Me(s);
1881
- return ot(e) ? (s.ownerDocument || s).body : ve(e) && Vt(e) ? e : mo(e);
1917
+ return it(e) ? (s.ownerDocument || s).body : ve(e) && Rt(e) ? e : yo(e);
1882
1918
  }
1883
- function it(s, e, t) {
1919
+ function rt(s, e, t) {
1884
1920
  var o;
1885
1921
  e === void 0 && (e = []), t === void 0 && (t = !0);
1886
- const i = mo(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = G(i);
1922
+ const i = yo(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = G(i);
1887
1923
  if (r) {
1888
- const a = Qt(n);
1889
- return e.concat(n, n.visualViewport || [], Vt(i) ? i : [], a && t ? it(a) : []);
1924
+ const a = ts(n);
1925
+ return e.concat(n, n.visualViewport || [], Rt(i) ? i : [], a && t ? rt(a) : []);
1890
1926
  } else
1891
- return e.concat(i, it(i, [], t));
1927
+ return e.concat(i, rt(i, [], t));
1892
1928
  }
1893
- function Qt(s) {
1929
+ function ts(s) {
1894
1930
  return s.parent && Object.getPrototypeOf(s.parent) ? s.frameElement : null;
1895
1931
  }
1896
- function po(s) {
1932
+ function wo(s) {
1897
1933
  const e = te(s);
1898
1934
  let t = parseFloat(e.width) || 0, o = parseFloat(e.height) || 0;
1899
- const i = ve(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a = Mt(t) !== r || Mt(o) !== n;
1935
+ const i = ve(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a = At(t) !== r || At(o) !== n;
1900
1936
  return a && (t = r, o = n), {
1901
1937
  width: t,
1902
1938
  height: o,
1903
1939
  $: a
1904
1940
  };
1905
1941
  }
1906
- function fs(s) {
1942
+ function ws(s) {
1907
1943
  return ee(s) ? s : s.contextElement;
1908
1944
  }
1909
1945
  function Ae(s) {
1910
- const e = fs(s);
1946
+ const e = ws(s);
1911
1947
  if (!ve(e))
1912
1948
  return ae(1);
1913
1949
  const t = e.getBoundingClientRect(), {
1914
1950
  width: o,
1915
1951
  height: i,
1916
1952
  $: r
1917
- } = po(e);
1918
- let n = (r ? Mt(t.width) : t.width) / o, a = (r ? Mt(t.height) : t.height) / i;
1953
+ } = wo(e);
1954
+ let n = (r ? At(t.width) : t.width) / o, a = (r ? At(t.height) : t.height) / i;
1919
1955
  return (!n || !Number.isFinite(n)) && (n = 1), (!a || !Number.isFinite(a)) && (a = 1), {
1920
1956
  x: n,
1921
1957
  y: a
1922
1958
  };
1923
1959
  }
1924
- const pr = /* @__PURE__ */ ae(0);
1925
- function fo(s) {
1960
+ const Tr = /* @__PURE__ */ ae(0);
1961
+ function xo(s) {
1926
1962
  const e = G(s);
1927
- return !ps() || !e.visualViewport ? pr : {
1963
+ return !ys() || !e.visualViewport ? Tr : {
1928
1964
  x: e.visualViewport.offsetLeft,
1929
1965
  y: e.visualViewport.offsetTop
1930
1966
  };
1931
1967
  }
1932
- function fr(s, e, t) {
1968
+ function Ir(s, e, t) {
1933
1969
  return e === void 0 && (e = !1), !!t && e && t === G(s);
1934
1970
  }
1935
1971
  function Le(s, e, t, o) {
1936
1972
  e === void 0 && (e = !1), t === void 0 && (t = !1);
1937
- const i = s.getBoundingClientRect(), r = fs(s);
1973
+ const i = s.getBoundingClientRect(), r = ws(s);
1938
1974
  let n = ae(1);
1939
1975
  e && (o ? ee(o) && (n = Ae(o)) : n = Ae(s));
1940
- const a = fr(r, t, o) ? fo(r) : ae(0);
1976
+ const a = Ir(r, t, o) ? xo(r) : ae(0);
1941
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;
1942
1978
  if (r && o) {
1943
1979
  const f = G(r), p = ee(o) ? G(o) : o;
1944
- let g = f, w = Qt(g);
1945
- for (; w && p !== g; ) {
1946
- const y = Ae(w), b = w.getBoundingClientRect(), _ = te(w), k = b.left + (w.clientLeft + parseFloat(_.paddingLeft)) * y.x, E = b.top + (w.clientTop + parseFloat(_.paddingTop)) * y.y;
1947
- l *= y.x, c *= y.y, d *= y.x, u *= y.y, l += k, c += E, g = G(w), w = Qt(g);
1980
+ let g = f, y = ts(g);
1981
+ for (; y && p !== g; ) {
1982
+ const w = Ae(y), b = y.getBoundingClientRect(), _ = te(y), k = b.left + (y.clientLeft + parseFloat(_.paddingLeft)) * w.x, E = b.top + (y.clientTop + parseFloat(_.paddingTop)) * w.y;
1983
+ l *= w.x, c *= w.y, d *= w.x, u *= w.y, l += k, c += E, g = G(y), y = ts(g);
1948
1984
  }
1949
1985
  }
1950
- return Et({
1986
+ return Nt({
1951
1987
  width: d,
1952
1988
  height: u,
1953
1989
  x: l,
1954
1990
  y: c
1955
1991
  });
1956
1992
  }
1957
- function Rt(s, e) {
1958
- const t = $t(s).scrollLeft;
1993
+ function Ft(s, e) {
1994
+ const t = Ht(s).scrollLeft;
1959
1995
  return e ? e.left + t : Le(le(s)).left + t;
1960
1996
  }
1961
- function go(s, e) {
1962
- const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft - Rt(s, t), i = t.top + e.scrollTop;
1997
+ function _o(s, e) {
1998
+ const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft - Ft(s, t), i = t.top + e.scrollTop;
1963
1999
  return {
1964
2000
  x: o,
1965
2001
  y: i
1966
2002
  };
1967
2003
  }
1968
- function gr(s) {
2004
+ function Or(s) {
1969
2005
  let {
1970
2006
  elements: e,
1971
2007
  rect: t,
1972
2008
  offsetParent: o,
1973
2009
  strategy: i
1974
2010
  } = s;
1975
- const r = i === "fixed", n = le(o), a = e ? Dt(e.floating) : !1;
2011
+ const r = i === "fixed", n = le(o), a = e ? Bt(e.floating) : !1;
1976
2012
  if (o === n || a && r)
1977
2013
  return t;
1978
2014
  let l = {
@@ -1980,11 +2016,11 @@ function gr(s) {
1980
2016
  scrollTop: 0
1981
2017
  }, c = ae(1);
1982
2018
  const d = ae(0), u = ve(o);
1983
- if ((u || !r) && ((je(o) !== "body" || Vt(n)) && (l = $t(o)), u)) {
2019
+ if ((u || !r) && ((je(o) !== "body" || Rt(n)) && (l = Ht(o)), u)) {
1984
2020
  const p = Le(o);
1985
2021
  c = Ae(o), d.x = p.x + o.clientLeft, d.y = p.y + o.clientTop;
1986
2022
  }
1987
- const f = n && !u && !r ? go(n, l) : ae(0);
2023
+ const f = n && !u && !r ? _o(n, l) : ae(0);
1988
2024
  return {
1989
2025
  width: t.width * c.x,
1990
2026
  height: t.height * c.y,
@@ -1992,12 +2028,12 @@ function gr(s) {
1992
2028
  y: t.y * c.y - l.scrollTop * c.y + d.y + f.y
1993
2029
  };
1994
2030
  }
1995
- function br(s) {
2031
+ function Pr(s) {
1996
2032
  return s.getClientRects ? Array.from(s.getClientRects()) : [];
1997
2033
  }
1998
- function vr(s) {
1999
- const e = $t(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);
2000
- let r = -e.scrollLeft + Rt(s);
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);
2001
2037
  const n = -e.scrollTop;
2002
2038
  return te(t).direction === "rtl" && (r += ne(s.clientWidth, t.clientWidth) - o), {
2003
2039
  width: o,
@@ -2006,18 +2042,18 @@ function vr(s) {
2006
2042
  y: n
2007
2043
  };
2008
2044
  }
2009
- const wr = 25;
2010
- function yr(s, e, t) {
2045
+ const Lr = 25;
2046
+ function Er(s, e, t) {
2011
2047
  t === void 0 && (t = "viewport");
2012
2048
  const o = t === "layoutViewport", i = G(s), r = le(s), n = i.visualViewport;
2013
2049
  let a = r.clientWidth, l = r.clientHeight, c = 0, d = 0;
2014
2050
  if (n) {
2015
- const f = !ps() || e === "fixed";
2051
+ const f = !ys() || e === "fixed";
2016
2052
  o ? f || (c = -n.offsetLeft, d = -n.offsetTop) : (a = n.width, l = n.height, f && (c = n.offsetLeft, d = n.offsetTop));
2017
2053
  }
2018
- if (Rt(r) <= 0) {
2019
- const f = r.ownerDocument, p = f.body, g = getComputedStyle(p), w = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, y = Math.abs(r.clientWidth - p.clientWidth - w), b = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? y / 2 : y;
2020
- b <= wr && (a -= b);
2054
+ if (Ft(r) <= 0) {
2055
+ const f = r.ownerDocument, p = f.body, g = getComputedStyle(p), y = f.compatMode === "CSS1Compat" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, w = Math.abs(r.clientWidth - p.clientWidth - y), b = getComputedStyle(r).scrollbarGutter === "stable both-edges" ? w / 2 : w;
2056
+ b <= Lr && (a -= b);
2021
2057
  }
2022
2058
  return {
2023
2059
  width: a,
@@ -2026,7 +2062,7 @@ function yr(s, e, t) {
2026
2062
  y: d
2027
2063
  };
2028
2064
  }
2029
- function xr(s, e) {
2065
+ function Ar(s, e) {
2030
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;
2031
2067
  return {
2032
2068
  width: n,
@@ -2035,16 +2071,16 @@ function xr(s, e) {
2035
2071
  y: c
2036
2072
  };
2037
2073
  }
2038
- function zs(s, e, t) {
2074
+ function Rs(s, e, t) {
2039
2075
  let o;
2040
2076
  if (e === "viewport" || e === "layoutViewport")
2041
- o = yr(s, t, e);
2077
+ o = Er(s, t, e);
2042
2078
  else if (e === "document")
2043
- o = vr(le(s));
2079
+ o = Mr(le(s));
2044
2080
  else if (ee(e))
2045
- o = xr(e, t);
2081
+ o = Ar(e, t);
2046
2082
  else {
2047
- const i = fo(s);
2083
+ const i = xo(s);
2048
2084
  o = {
2049
2085
  x: e.x - i.x,
2050
2086
  y: e.y - i.y,
@@ -2052,32 +2088,32 @@ function zs(s, e, t) {
2052
2088
  height: e.height
2053
2089
  };
2054
2090
  }
2055
- return Et(o);
2091
+ return Nt(o);
2056
2092
  }
2057
- function _r(s, e) {
2093
+ function zr(s, e) {
2058
2094
  const t = e.get(s);
2059
2095
  if (t)
2060
2096
  return t;
2061
- let o = it(s, [], !1).filter((a) => ee(a) && je(a) !== "body"), i = null;
2097
+ let o = rt(s, [], !1).filter((a) => ee(a) && je(a) !== "body"), i = null;
2062
2098
  const r = te(s).position === "fixed";
2063
2099
  let n = r ? Me(s) : s;
2064
- for (; ee(n) && !ot(n); ) {
2065
- const a = te(n), l = ms(n), c = i ? i.position : r ? "fixed" : "";
2100
+ for (; ee(n) && !it(n); ) {
2101
+ const a = te(n), l = vs(n), c = i ? i.position : r ? "fixed" : "";
2066
2102
  !l && (c === "fixed" || c === "absolute" && a.position === "static") ? o = o.filter((u) => u !== n) : i = a, n = Me(n);
2067
2103
  }
2068
2104
  return e.set(s, o), o;
2069
2105
  }
2070
- function kr(s) {
2106
+ function Nr(s) {
2071
2107
  let {
2072
2108
  element: e,
2073
2109
  boundary: t,
2074
2110
  rootBoundary: o,
2075
2111
  strategy: i
2076
2112
  } = s;
2077
- const n = [...t === "clippingAncestors" ? Dt(e) ? [] : _r(e, this._c) : [].concat(t), o], a = zs(e, n[0], i);
2113
+ const n = [...t === "clippingAncestors" ? Bt(e) ? [] : zr(e, this._c) : [].concat(t), o], a = Rs(e, n[0], i);
2078
2114
  let l = a.top, c = a.right, d = a.bottom, u = a.left;
2079
2115
  for (let f = 1; f < n.length; f++) {
2080
- const p = zs(e, n[f], i);
2116
+ const p = Rs(e, n[f], i);
2081
2117
  l = ne(p.top, l), c = be(p.right, c), d = be(p.bottom, d), u = ne(p.left, u);
2082
2118
  }
2083
2119
  return {
@@ -2087,29 +2123,29 @@ function kr(s) {
2087
2123
  y: l
2088
2124
  };
2089
2125
  }
2090
- function Cr(s) {
2126
+ function Vr(s) {
2091
2127
  const {
2092
2128
  width: e,
2093
2129
  height: t
2094
- } = po(s);
2130
+ } = wo(s);
2095
2131
  return {
2096
2132
  width: e,
2097
2133
  height: t
2098
2134
  };
2099
2135
  }
2100
- function Sr(s, e, t) {
2136
+ function Dr(s, e, t) {
2101
2137
  const o = ve(e), i = le(e), r = t === "fixed", n = Le(s, !0, r, e);
2102
2138
  let a = {
2103
2139
  scrollLeft: 0,
2104
2140
  scrollTop: 0
2105
2141
  };
2106
2142
  const l = ae(0);
2107
- if ((o || !r) && ((je(e) !== "body" || Vt(i)) && (a = $t(e)), o)) {
2143
+ if ((o || !r) && ((je(e) !== "body" || Rt(i)) && (a = Ht(e)), o)) {
2108
2144
  const f = Le(e, !0, r, e);
2109
2145
  l.x = f.x + e.clientLeft, l.y = f.y + e.clientTop;
2110
2146
  }
2111
- !o && i && (l.x = Rt(i));
2112
- const c = i && !o && !r ? go(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 = 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;
2113
2149
  return {
2114
2150
  x: d,
2115
2151
  y: u,
@@ -2117,10 +2153,10 @@ function Sr(s, e, t) {
2117
2153
  height: n.height
2118
2154
  };
2119
2155
  }
2120
- function Wt(s) {
2156
+ function Gt(s) {
2121
2157
  return te(s).position === "static";
2122
2158
  }
2123
- function Ns(s, e) {
2159
+ function Bs(s, e) {
2124
2160
  if (!ve(s) || te(s).position === "fixed")
2125
2161
  return null;
2126
2162
  if (e)
@@ -2128,28 +2164,28 @@ function Ns(s, e) {
2128
2164
  let t = s.offsetParent;
2129
2165
  return le(s) === t && (t = t.ownerDocument.body), t;
2130
2166
  }
2131
- function bo(s, e) {
2167
+ function ko(s, e) {
2132
2168
  const t = G(s);
2133
- if (Dt(s))
2169
+ if (Bt(s))
2134
2170
  return t;
2135
2171
  if (!ve(s)) {
2136
2172
  let i = Me(s);
2137
- for (; i && !ot(i); ) {
2138
- if (ee(i) && !Wt(i))
2173
+ for (; i && !it(i); ) {
2174
+ if (ee(i) && !Gt(i))
2139
2175
  return i;
2140
2176
  i = Me(i);
2141
2177
  }
2142
2178
  return t;
2143
2179
  }
2144
- let o = Ns(s, e);
2145
- for (; o && dr(o) && Wt(o); )
2146
- o = Ns(o, e);
2147
- return o && ot(o) && Wt(o) && !ms(o) ? t : o || mr(s) || t;
2180
+ let o = Bs(s, e);
2181
+ for (; o && _r(o) && Gt(o); )
2182
+ o = Bs(o, e);
2183
+ return o && it(o) && Gt(o) && !vs(o) ? t : o || Sr(s) || t;
2148
2184
  }
2149
- const Tr = async function(s) {
2150
- const e = this.getOffsetParent || bo, t = this.getDimensions, o = await t(s.floating);
2185
+ const $r = async function(s) {
2186
+ const e = this.getOffsetParent || ko, t = this.getDimensions, o = await t(s.floating);
2151
2187
  return {
2152
- reference: Sr(s.reference, await e(s.floating), s.strategy),
2188
+ reference: Dr(s.reference, await e(s.floating), s.strategy),
2153
2189
  floating: {
2154
2190
  x: 0,
2155
2191
  y: 0,
@@ -2158,25 +2194,25 @@ const Tr = async function(s) {
2158
2194
  }
2159
2195
  };
2160
2196
  };
2161
- function Ir(s) {
2197
+ function Rr(s) {
2162
2198
  return te(s).direction === "rtl";
2163
2199
  }
2164
- const vo = {
2165
- convertOffsetParentRelativeRectToViewportRelativeRect: gr,
2200
+ const Co = {
2201
+ convertOffsetParentRelativeRectToViewportRelativeRect: Or,
2166
2202
  getDocumentElement: le,
2167
- getClippingRect: kr,
2168
- getOffsetParent: bo,
2169
- getElementRects: Tr,
2170
- getClientRects: br,
2171
- getDimensions: Cr,
2203
+ getClippingRect: Nr,
2204
+ getOffsetParent: ko,
2205
+ getElementRects: $r,
2206
+ getClientRects: Pr,
2207
+ getDimensions: Vr,
2172
2208
  getScale: Ae,
2173
2209
  isElement: ee,
2174
- isRTL: Ir
2210
+ isRTL: Rr
2175
2211
  };
2176
- function wo(s, e) {
2212
+ function So(s, e) {
2177
2213
  return s.x === e.x && s.y === e.y && s.width === e.width && s.height === e.height;
2178
2214
  }
2179
- function Pr(s, e, t) {
2215
+ function Br(s, e, t) {
2180
2216
  let o = null, i;
2181
2217
  const r = le(s);
2182
2218
  function n() {
@@ -2188,19 +2224,19 @@ function Pr(s, e, t) {
2188
2224
  const f = s.getBoundingClientRect(), {
2189
2225
  left: p,
2190
2226
  top: g,
2191
- width: w,
2192
- height: y
2227
+ width: y,
2228
+ height: w
2193
2229
  } = f;
2194
- if (d || e(), !w || !y)
2230
+ if (d || e(), !y || !w)
2195
2231
  return;
2196
- const b = mt(g), _ = mt(r.clientWidth - (p + w)), k = mt(r.clientHeight - (g + y)), E = mt(p), $ = {
2232
+ const b = pt(g), _ = pt(r.clientWidth - (p + y)), k = pt(r.clientHeight - (g + w)), E = pt(p), $ = {
2197
2233
  rootMargin: -b + "px " + -_ + "px " + -k + "px " + -E + "px",
2198
2234
  threshold: ne(0, be(1, u)) || 1
2199
2235
  };
2200
2236
  let F = !0;
2201
- function q(N) {
2202
- const C = N[0].intersectionRatio;
2203
- if (!wo(f, s.getBoundingClientRect()))
2237
+ function q(V) {
2238
+ const C = V[0].intersectionRatio;
2239
+ if (!So(f, s.getBoundingClientRect()))
2204
2240
  return a();
2205
2241
  if (C !== u) {
2206
2242
  if (!F)
@@ -2227,7 +2263,7 @@ function Pr(s, e, t) {
2227
2263
  l.removeEventListener("resize", c), n();
2228
2264
  };
2229
2265
  }
2230
- function Or(s, e, t, o) {
2266
+ function Hr(s, e, t, o) {
2231
2267
  o === void 0 && (o = {});
2232
2268
  const {
2233
2269
  ancestorScroll: i = !0,
@@ -2235,11 +2271,11 @@ function Or(s, e, t, o) {
2235
2271
  elementResize: n = typeof ResizeObserver == "function",
2236
2272
  layoutShift: a = typeof IntersectionObserver == "function",
2237
2273
  animationFrame: l = !1
2238
- } = o, c = fs(s), d = i || r ? [...c ? it(c) : [], ...e ? it(e) : []] : [];
2274
+ } = o, c = ws(s), d = i || r ? [...c ? rt(c) : [], ...e ? rt(e) : []] : [];
2239
2275
  d.forEach((b) => {
2240
2276
  i && b.addEventListener("scroll", t), r && b.addEventListener("resize", t);
2241
2277
  });
2242
- const u = c && a ? Pr(c, t, r) : null;
2278
+ const u = c && a ? Br(c, t, r) : null;
2243
2279
  let f = -1, p = null;
2244
2280
  n && (p = new ResizeObserver((b) => {
2245
2281
  let [_] = b;
@@ -2248,11 +2284,11 @@ function Or(s, e, t, o) {
2248
2284
  (k = p) == null || k.observe(e);
2249
2285
  })), t();
2250
2286
  }), c && !l && p.observe(c), e && p.observe(e));
2251
- let g, w = l ? Le(s) : null;
2252
- l && y();
2253
- function y() {
2287
+ let g, y = l ? Le(s) : null;
2288
+ l && w();
2289
+ function w() {
2254
2290
  const b = Le(s);
2255
- w && !wo(w, b) && t(), w = b, g = requestAnimationFrame(y);
2291
+ y && !So(y, b) && t(), y = b, g = requestAnimationFrame(w);
2256
2292
  }
2257
2293
  return t(), () => {
2258
2294
  var b;
@@ -2261,37 +2297,37 @@ function Or(s, e, t, o) {
2261
2297
  }), u == null || u(), (b = p) == null || b.disconnect(), p = null, l && cancelAnimationFrame(g);
2262
2298
  };
2263
2299
  }
2264
- const Mr = ar, Lr = lr, Er = ir, jt = cr, Ar = or, zr = (s, e, t) => {
2300
+ const Fr = yr, Kr = wr, Wr = gr, qt = xr, jr = fr, Ur = (s, e, t) => {
2265
2301
  const o = /* @__PURE__ */ new Map(), i = t ?? {}, r = {
2266
- ...vo,
2302
+ ...Co,
2267
2303
  ...i.platform,
2268
2304
  _c: o
2269
2305
  };
2270
- return sr(s, e, {
2306
+ return pr(s, e, {
2271
2307
  ...i,
2272
2308
  platform: r
2273
2309
  });
2274
2310
  };
2275
- function Zt(s) {
2311
+ function ss(s) {
2276
2312
  const e = s.parentNode ?? null;
2277
2313
  return e instanceof ShadowRoot ? e.host : e;
2278
2314
  }
2279
- function Nr(s) {
2315
+ function Gr(s) {
2280
2316
  if (s.transform !== "none" || s.perspective !== "none" || s.filter !== "none")
2281
2317
  return !0;
2282
2318
  const e = s.backdropFilter;
2283
2319
  return !!(e && e !== "none" || s.willChange && /\b(transform|filter|perspective)\b/.test(s.willChange));
2284
2320
  }
2285
- function es(s) {
2286
- let e = Zt(s);
2321
+ function os(s) {
2322
+ let e = ss(s);
2287
2323
  for (; e && !(e === document.body || e === document.documentElement); ) {
2288
- if (e instanceof Element && Nr(getComputedStyle(e)))
2324
+ if (e instanceof Element && Gr(getComputedStyle(e)))
2289
2325
  return e;
2290
- e = Zt(e);
2326
+ e = ss(e);
2291
2327
  }
2292
2328
  return window;
2293
2329
  }
2294
- function Vr(s, e, t) {
2330
+ function qr(s, e, t) {
2295
2331
  let o = s;
2296
2332
  for (; o && !(o === document.body || o === document.documentElement); ) {
2297
2333
  if (o instanceof Element) {
@@ -2299,11 +2335,11 @@ function Vr(s, e, t) {
2299
2335
  if (Math.abs(i.x - e) < 2 && Math.abs(i.y - t) < 2)
2300
2336
  return o;
2301
2337
  }
2302
- o = Zt(o);
2338
+ o = ss(o);
2303
2339
  }
2304
2340
  return null;
2305
2341
  }
2306
- function yo(s) {
2342
+ function To(s) {
2307
2343
  const e = getComputedStyle(s), t = [];
2308
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}`);
2309
2345
  const o = e.backdropFilter;
@@ -2311,11 +2347,11 @@ function yo(s) {
2311
2347
  const i = e.containerType;
2312
2348
  return i && i !== "normal" && t.push(`container-type: ${i}`), t.join("; ");
2313
2349
  }
2314
- function Dr(s) {
2350
+ function Xr(s) {
2315
2351
  const e = s.id ? `#${s.id}` : "", t = typeof s.className == "string" && s.className ? "." + s.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : "";
2316
2352
  return `<${s.tagName.toLowerCase()}${e}${t}>`;
2317
2353
  }
2318
- function $r(s) {
2354
+ function Yr(s) {
2319
2355
  const e = s.tolerance ?? 1.5;
2320
2356
  let t = 0, o = 0;
2321
2357
  if (s.offsetParent instanceof Element) {
@@ -2325,46 +2361,46 @@ function $r(s) {
2325
2361
  const i = s.panel.getBoundingClientRect(), r = i.x - (t + s.expectedX), n = i.y - (o + s.expectedY);
2326
2362
  if (Math.abs(r) < e && Math.abs(n) < e)
2327
2363
  return null;
2328
- const a = Vr(s.reference, r, n);
2364
+ const a = qr(s.reference, r, n);
2329
2365
  return {
2330
2366
  driftX: r,
2331
2367
  driftY: n,
2332
2368
  culprit: a,
2333
- culpritDescription: a ? Dr(a) : "an ancestor element (could not auto-identify)",
2334
- culpritCss: a ? yo(a) : ""
2369
+ culpritDescription: a ? Xr(a) : "an ancestor element (could not auto-identify)",
2370
+ culpritCss: a ? To(a) : ""
2335
2371
  };
2336
2372
  }
2337
- function Rr(s, e) {
2373
+ function Jr(s, e) {
2338
2374
  var i;
2339
2375
  const t = (i = s.closest) == null ? void 0 : i.call(s, "[data-theme]"), o = t == null ? void 0 : t.getAttribute("data-theme");
2340
2376
  o != null && e.setAttribute("data-theme", o);
2341
2377
  }
2342
- const Br = { top: "bottom", right: "left", bottom: "top", left: "right" };
2343
- function Hr(s, e, t) {
2378
+ const Qr = { top: "bottom", right: "left", bottom: "top", left: "right" };
2379
+ function Zr(s, e, t) {
2344
2380
  if (!t)
2345
2381
  return;
2346
- const o = e.split("-")[0], i = Br[o];
2382
+ const o = e.split("-")[0], i = Qr[o];
2347
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`;
2348
2384
  }
2349
- function Vs(s, e) {
2350
- const t = [Mr(s.offset ?? 4)];
2385
+ function Hs(s, e) {
2386
+ const t = [Fr(s.offset ?? 4)];
2351
2387
  if (s.matchWidth) {
2352
2388
  const i = s.matchWidth;
2353
- t.push(jt({
2389
+ t.push(qt({
2354
2390
  apply({ rects: r, elements: n }) {
2355
2391
  const a = `${r.reference.width}px`;
2356
2392
  i === "exact" ? n.floating.style.width = a : n.floating.style.minWidth = a;
2357
2393
  }
2358
2394
  }));
2359
2395
  }
2360
- e && t.push(Er({
2396
+ e && t.push(Wr({
2361
2397
  ...s.lockPlacement === !0 ? { fallbackStrategy: "initialPlacement" } : {},
2362
2398
  ...s.flipPadding != null ? { padding: s.flipPadding } : {}
2363
2399
  }));
2364
2400
  const o = s.shift ?? 8;
2365
- if (o !== !1 && t.push(Lr({ padding: o })), s.maxHeight) {
2401
+ if (o !== !1 && t.push(Kr({ padding: o })), s.maxHeight) {
2366
2402
  const i = typeof s.maxHeight == "object" ? s.maxHeight.padding : void 0;
2367
- t.push(jt({
2403
+ t.push(qt({
2368
2404
  padding: i,
2369
2405
  apply({ availableHeight: r, elements: n }) {
2370
2406
  n.floating.style.maxHeight = `${Math.max(0, r)}px`;
@@ -2373,49 +2409,49 @@ function Vs(s, e) {
2373
2409
  }
2374
2410
  if (s.maxWidth) {
2375
2411
  const i = typeof s.maxWidth == "object" ? s.maxWidth.padding : void 0;
2376
- t.push(jt({
2412
+ t.push(qt({
2377
2413
  padding: i,
2378
2414
  apply({ availableWidth: r, elements: n }) {
2379
2415
  n.floating.style.maxWidth = `${Math.max(0, r)}px`;
2380
2416
  }
2381
2417
  }));
2382
2418
  }
2383
- return s.arrow && t.push(Ar({ element: s.arrow.element, padding: s.arrow.padding })), t;
2419
+ return s.arrow && t.push(jr({ element: s.arrow.element, padding: s.arrow.padding })), t;
2384
2420
  }
2385
- function Ze(s, e, t = {}) {
2421
+ function et(s, e, t = {}) {
2386
2422
  const o = t.strategy ?? "fixed";
2387
- t.inheritThemeFrom && Rr(t.inheritThemeFrom, s), s.style.position = o, s.style.left = "0", s.style.top = "0";
2388
- let i = t.placement ?? "bottom-start", r = t.flip ?? !0, n = Vs(t, r);
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);
2389
2425
  const a = t.lockPlacement === "freeze";
2390
2426
  let l = !1;
2391
- const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...vo, getOffsetParent: () => es(s) } : void 0), u = () => {
2427
+ const c = !!t.fixedContainingBlock && !t.platform, d = t.platform ?? (c ? { ...Co, getOffsetParent: () => os(s) } : void 0), u = () => {
2392
2428
  var p;
2393
- (p = t.beforeCompute) == null || p.call(t), zr(e, s, {
2429
+ (p = t.beforeCompute) == null || p.call(t), Ur(e, s, {
2394
2430
  placement: i,
2395
2431
  strategy: o,
2396
2432
  middleware: n,
2397
2433
  ...d ? { platform: d } : {}
2398
- }).then(({ x: g, y: w, placement: y, middlewareData: b }) => {
2434
+ }).then(({ x: g, y, placement: w, middlewareData: b }) => {
2399
2435
  var _, k;
2400
- if (s.style.left = `${g}px`, s.style.top = `${w}px`, t.arrow && Hr(t.arrow.element, y, b.arrow), a && !l && (l = !0, i = y, r = !1, n = Vs(t, !1)), (_ = t.onPlaced) == null || _.call(t, y), (k = t.onComputed) == null || k.call(t, { x: g, y: w, placement: y }), t.onDrift && e instanceof Element) {
2401
- const E = c ? es(s) : window, A = $r({ panel: s, reference: e, expectedX: g, expectedY: w, offsetParent: E });
2436
+ if (s.style.left = `${g}px`, s.style.top = `${y}px`, t.arrow && Zr(t.arrow.element, w, b.arrow), a && !l && (l = !0, i = w, r = !1, n = Hs(t, !1)), (_ = t.onPlaced) == null || _.call(t, w), (k = t.onComputed) == null || k.call(t, { x: g, y, placement: w }), t.onDrift && e instanceof Element) {
2437
+ const E = c ? os(s) : window, A = Yr({ panel: s, reference: e, expectedX: g, expectedY: y, offsetParent: E });
2402
2438
  A && t.onDrift(A);
2403
2439
  }
2404
2440
  });
2405
2441
  };
2406
2442
  let f;
2407
- return t.autoUpdate ?? !0 ? f = Or(e, s, u, t.autoUpdateOptions) : u(), {
2443
+ return t.autoUpdate ?? !0 ? f = Hr(e, s, u, t.autoUpdateOptions) : u(), {
2408
2444
  update: u,
2409
2445
  destroy() {
2410
2446
  f == null || f(), f = void 0;
2411
2447
  }
2412
2448
  };
2413
2449
  }
2414
- function Fr(s) {
2450
+ function en(s) {
2415
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 };
2416
2452
  }
2417
- function Kr(s) {
2418
- const e = s.container ?? document.body, t = s.placement ?? "top", o = s.visibleClass ?? "is-visible", i = Fr(s.delay), r = document.createElement("div");
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");
2419
2455
  r.setAttribute("role", "tooltip"), s.cssClass && (r.className = s.cssClass), typeof s.content == "string" ? r.textContent = s.content : r.append(s.content);
2420
2456
  let n, a = !1, l, c, d;
2421
2457
  const u = {
@@ -2431,32 +2467,32 @@ function Kr(s) {
2431
2467
  return;
2432
2468
  (k = s.onBeforeShow) == null || k.call(s), a = !0, e.append(r);
2433
2469
  const _ = s.followCursor ? u : s.trigger;
2434
- n = Ze(r, _, {
2470
+ n = et(r, _, {
2435
2471
  placement: t,
2436
2472
  strategy: s.strategy,
2437
2473
  offset: s.offset ?? 8,
2438
2474
  inheritThemeFrom: s.inheritThemeFrom ?? s.trigger
2439
2475
  }), s.followCursor && s.trigger.addEventListener("mousemove", f), r.classList.add(o);
2440
- }, w = () => {
2441
- p(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
2442
2476
  }, y = () => {
2477
+ p(), a && (a = !1, r.classList.remove(o), s.followCursor && s.trigger.removeEventListener("mousemove", f), n == null || n.destroy(), n = void 0, r.remove());
2478
+ }, w = () => {
2443
2479
  p(), i.show > 0 ? l = setTimeout(g, i.show) : g();
2444
2480
  }, b = () => {
2445
- p(), i.hide > 0 ? c = setTimeout(w, i.hide) : w();
2481
+ p(), i.hide > 0 ? c = setTimeout(y, i.hide) : y();
2446
2482
  };
2447
- return s.trigger.addEventListener("mouseenter", y), s.trigger.addEventListener("mouseleave", b), s.trigger.addEventListener("focusin", y), s.trigger.addEventListener("focusout", b), {
2483
+ return s.trigger.addEventListener("mouseenter", w), s.trigger.addEventListener("mouseleave", b), s.trigger.addEventListener("focusin", w), s.trigger.addEventListener("focusout", b), {
2448
2484
  element: r,
2449
2485
  get isVisible() {
2450
2486
  return a;
2451
2487
  },
2452
2488
  show: g,
2453
- hide: w,
2489
+ hide: y,
2454
2490
  destroy() {
2455
- s.trigger.removeEventListener("mouseenter", y), s.trigger.removeEventListener("mouseleave", b), s.trigger.removeEventListener("focusin", y), s.trigger.removeEventListener("focusout", b), w();
2491
+ s.trigger.removeEventListener("mouseenter", w), s.trigger.removeEventListener("mouseleave", b), s.trigger.removeEventListener("focusin", w), s.trigger.removeEventListener("focusout", b), y();
2456
2492
  }
2457
2493
  };
2458
2494
  }
2459
- function Wr(s) {
2495
+ function sn(s) {
2460
2496
  const e = s.container ?? document.body;
2461
2497
  let t, o = !1;
2462
2498
  const i = s.inheritThemeFrom ?? (s.reference instanceof HTMLElement ? s.reference : void 0);
@@ -2465,7 +2501,7 @@ function Wr(s) {
2465
2501
  return o;
2466
2502
  },
2467
2503
  open() {
2468
- o || (o = !0, e.append(s.panel), t = Ze(s.panel, s.reference, {
2504
+ o || (o = !0, e.append(s.panel), t = et(s.panel, s.reference, {
2469
2505
  placement: s.placement ?? "bottom-start",
2470
2506
  strategy: s.strategy,
2471
2507
  offset: s.offset,
@@ -2491,21 +2527,21 @@ function Wr(s) {
2491
2527
  }
2492
2528
  };
2493
2529
  }
2494
- const xo = ["INIT", "DATA", "UI", "INTERACTION"], ce = ji("MULTISELECT", xo), pt = ce.loggers.INIT, K = ce.loggers.DATA, J = ce.loggers.UI, j = ce.loggers.INTERACTION, hn = xo.map((s) => `MULTISELECT:${s}`);
2495
- function un() {
2530
+ const Io = ["INIT", "DATA", "UI", "INTERACTION"], ce = or("MULTISELECT", Io), ft = ce.loggers.INIT, K = ce.loggers.DATA, J = ce.loggers.UI, j = ce.loggers.INTERACTION, kn = Io.map((s) => `MULTISELECT:${s}`);
2531
+ function Cn() {
2496
2532
  ce.enableLogging();
2497
2533
  }
2498
- function mn() {
2534
+ function Sn() {
2499
2535
  ce.disableLogging();
2500
2536
  }
2501
- function pn(s) {
2537
+ function Tn(s) {
2502
2538
  ce.setLogLevel(s);
2503
2539
  }
2504
- function fn(s, e) {
2540
+ function In(s, e) {
2505
2541
  const t = s.includes(":") ? s.split(":").pop() : s;
2506
2542
  ce.setCategoryLevel(t, e);
2507
2543
  }
2508
- class Ds {
2544
+ class Fs {
2509
2545
  constructor(e) {
2510
2546
  m(this, "container");
2511
2547
  m(this, "wrapper");
@@ -2627,7 +2663,7 @@ class Ds {
2627
2663
  this.container.removeEventListener("scroll", this.scrollHandler), this.resizeObserver && this.resizeObserver.disconnect(), this.container.innerHTML = "";
2628
2664
  }
2629
2665
  }
2630
- function $s(s) {
2666
+ function Ks(s) {
2631
2667
  return {
2632
2668
  treeId: "",
2633
2669
  id: -1,
@@ -2642,28 +2678,28 @@ function $s(s) {
2642
2678
  ...s
2643
2679
  };
2644
2680
  }
2645
- const Qe = (s) => !s || typeof s == "string" && s.trim() === "";
2646
- function jr(s, e = ".") {
2681
+ const Ze = (s) => !s || typeof s == "string" && s.trim() === "";
2682
+ function on(s, e = ".") {
2647
2683
  if (!s || typeof s != "string") return null;
2648
2684
  const t = s.lastIndexOf(e);
2649
2685
  return t === -1 ? "" : s.substring(0, t);
2650
2686
  }
2651
- function Rs(s, e, t = ".") {
2652
- return Qe(e) ? s : s.startsWith(e + t) ? s.substring(e.length + t.length) : s;
2687
+ function Ws(s, e, t = ".") {
2688
+ return Ze(e) ? s : s.startsWith(e + t) ? s.substring(e.length + t.length) : s;
2653
2689
  }
2654
- function Bs(s, e = 0, t = 1, o = ".") {
2690
+ function js(s, e = 0, t = 1, o = ".") {
2655
2691
  return s.split(o).slice(e, e + t).join(o);
2656
2692
  }
2657
- function Ur(s, e) {
2693
+ function rn(s, e) {
2658
2694
  return s.split(e).length;
2659
2695
  }
2660
2696
  function he(s, e) {
2661
2697
  return s[e];
2662
2698
  }
2663
- function Gr(s = {}) {
2664
- 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 = Qe(i), p = Qe(r), g = Qe(n), w = Qe(a), y = "x", b = s.treePathSeparator || ".", _ = $s();
2699
+ function nn(s = {}) {
2700
+ 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), p = Ze(r), g = Ze(n), y = Ze(a), w = "x", b = s.treePathSeparator || ".", _ = Ks();
2665
2701
  let k = 0, E = null;
2666
- const A = (N) => o ? o(N) : t ? he(N, t) : void 0, $ = {
2702
+ const A = (V) => o ? o(V) : t ? he(V, t) : void 0, $ = {
2667
2703
  treePathSeparator: b,
2668
2704
  root: _,
2669
2705
  get tree() {
@@ -2675,34 +2711,34 @@ function Gr(s = {}) {
2675
2711
  */
2676
2712
  get flatNodes() {
2677
2713
  if (E) return E;
2678
- const N = [], C = s.isSorted ?? !1, O = s.sortCallback;
2714
+ const V = [], C = s.isSorted ?? !1, P = s.sortCallback;
2679
2715
  function M(R) {
2680
2716
  let S = Object.values(R.children);
2681
- C && O && S.length > 0 && (S = O(S));
2717
+ C && P && S.length > 0 && (S = P(S));
2682
2718
  for (const H of S)
2683
- N.push(H), H.hasChildren && M(H);
2719
+ V.push(H), H.hasChildren && M(H);
2684
2720
  }
2685
- return M(_), E = N, N;
2721
+ return M(_), E = V, V;
2686
2722
  },
2687
- insertArray(N) {
2688
- N = N || [], _.children = {}, k = 0, E = null;
2723
+ insertArray(V) {
2724
+ V = V || [], _.children = {}, k = 0, E = null;
2689
2725
  const C = [];
2690
- let O = N.map((M, R) => {
2691
- const S = $s();
2726
+ let P = V.map((M, R) => {
2727
+ const S = Ks();
2692
2728
  S.treeId = c, S.id = e ? he(M, e) : void 0;
2693
2729
  const H = A(M);
2694
- return H == null || H === "" || typeof H != "string" ? (C.push(`index ${R}`), null) : (S.path = H, (S.id === void 0 || S.id === -1) && (S.id = H), f ? S.parentPath = jr(S.path, b) : S.parentPath = he(M, i), S.pathSegment = Bs(
2695
- Rs(S.path, S.parentPath ?? "", b),
2730
+ return H == null || H === "" || typeof H != "string" ? (C.push(`index ${R}`), null) : (S.path = H, (S.id === void 0 || S.id === -1) && (S.id = H), f ? S.parentPath = on(S.path, b) : S.parentPath = he(M, i), S.pathSegment = js(
2731
+ Ws(S.path, S.parentPath ?? "", b),
2696
2732
  0,
2697
2733
  1,
2698
2734
  b
2699
- ), p ? S.level = Ur(S.path, b) : S.level = he(M, r), g || (S.hasChildren = he(M, n)), S.data = M, S);
2735
+ ), p ? S.level = rn(S.path, b) : S.level = he(M, r), g || (S.hasChildren = he(M, n)), S.data = M, S);
2700
2736
  }).filter((M) => M !== null);
2701
- s.isSorted || (s.sortCallback ? O = s.sortCallback(O) : O = q(O));
2702
- for (const M of O)
2737
+ s.isSorted || (s.sortCallback ? P = s.sortCallback(P) : P = q(P));
2738
+ for (const M of P)
2703
2739
  F(M.parentPath ?? "", M);
2704
- if (l || !w)
2705
- for (const M of O)
2740
+ if (l || !y)
2741
+ for (const M of P)
2706
2742
  if (l)
2707
2743
  M.isSelectable = l(M) !== !1;
2708
2744
  else {
@@ -2713,44 +2749,44 @@ function Gr(s = {}) {
2713
2749
  `[ltree ${c}] ${C.length} option(s) had an invalid path and were skipped (pathMember="${t}"). Offending: ${C.slice(0, 5).join(", ")}` + (C.length > 5 ? ", …" : "")
2714
2750
  );
2715
2751
  },
2716
- getNodeByPath(N, C) {
2717
- let O = C || _;
2718
- if (N) {
2719
- const M = N.split(b);
2752
+ getNodeByPath(V, C) {
2753
+ let P = C || _;
2754
+ if (V) {
2755
+ const M = V.split(b);
2720
2756
  for (let R = 0; R < M.length; R++) {
2721
- const S = y + M[R];
2722
- if (!O.children.hasOwnProperty(S))
2757
+ const S = w + M[R];
2758
+ if (!P.children.hasOwnProperty(S))
2723
2759
  return null;
2724
- O = O.children[S];
2760
+ P = P.children[S];
2725
2761
  }
2726
2762
  }
2727
- return O;
2763
+ return P;
2728
2764
  }
2729
2765
  };
2730
- function F(N, C) {
2731
- const O = $.getNodeByPath(N);
2732
- if (!O)
2733
- return `Node: ${C.path} - Could not find parent node: ${N}`;
2734
- p && (C.level = (O.level || 0) + 1);
2735
- const M = y + Bs(Rs(C.path, N, b), 0, 1, b);
2736
- return O.children.hasOwnProperty(M) || (O.children[M] = C, g && !O.hasChildren && (O.hasChildren = !0), k = Math.max(k, C.level || 0)), null;
2737
- }
2738
- function q(N) {
2739
- return N.sort((C, O) => {
2740
- const M = C.level || 0, R = O.level || 0;
2766
+ function F(V, C) {
2767
+ const P = $.getNodeByPath(V);
2768
+ if (!P)
2769
+ return `Node: ${C.path} - Could not find parent node: ${V}`;
2770
+ p && (C.level = (P.level || 0) + 1);
2771
+ const M = w + js(Ws(C.path, V, b), 0, 1, b);
2772
+ return P.children.hasOwnProperty(M) || (P.children[M] = C, g && !P.hasChildren && (P.hasChildren = !0), k = Math.max(k, C.level || 0)), null;
2773
+ }
2774
+ function q(V) {
2775
+ return V.sort((C, P) => {
2776
+ const M = C.level || 0, R = P.level || 0;
2741
2777
  if (M !== R) return M - R;
2742
- if (C.parentPath !== O.parentPath)
2743
- return C.parentPath ? O.parentPath ? C.parentPath.localeCompare(O.parentPath) : 1 : -1;
2744
- if (d && C.data && O.data) {
2745
- const S = he(C.data, d) ?? 0, H = he(O.data, d) ?? 0;
2778
+ if (C.parentPath !== P.parentPath)
2779
+ return C.parentPath ? P.parentPath ? C.parentPath.localeCompare(P.parentPath) : 1 : -1;
2780
+ if (d && C.data && P.data) {
2781
+ const S = he(C.data, d) ?? 0, H = he(P.data, d) ?? 0;
2746
2782
  if (S !== H) return S - H;
2747
2783
  }
2748
- return u ? u(C).localeCompare(u(O)) : C.path.localeCompare(O.path);
2784
+ return u ? u(C).localeCompare(u(P)) : C.path.localeCompare(P.path);
2749
2785
  });
2750
2786
  }
2751
2787
  return $;
2752
2788
  }
2753
- function Hs(s, e) {
2789
+ function Us(s, e) {
2754
2790
  const t = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), r = (l) => String(e(l.data)), n = (l) => {
2755
2791
  t.set(r(l), l);
2756
2792
  const c = [];
@@ -2762,14 +2798,14 @@ function Hs(s, e) {
2762
2798
  for (const l of a) n(l);
2763
2799
  return { nodeByValue: t, atomsUnder: o, atomPaths: i, roots: a };
2764
2800
  }
2765
- function gs(s, e, t) {
2801
+ function xs(s, e, t) {
2766
2802
  const o = s.atomsUnder.get(e.path);
2767
2803
  if (!o || o.length === 0) return "unchecked";
2768
2804
  let i = 0;
2769
2805
  for (const r of o) t.has(r) && i++;
2770
2806
  return i === 0 ? "unchecked" : i === o.length ? "checked" : "indeterminate";
2771
2807
  }
2772
- function Xe(s, e) {
2808
+ function Ye(s, e) {
2773
2809
  const t = /* @__PURE__ */ new Set();
2774
2810
  for (const o of e) {
2775
2811
  const i = s.nodeByValue.get(String(o));
@@ -2778,17 +2814,17 @@ function Xe(s, e) {
2778
2814
  }
2779
2815
  return t;
2780
2816
  }
2781
- function qr(s, e, t) {
2782
- const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r = gs(s, e, t), n = [], a = [];
2817
+ function an(s, e, t) {
2818
+ const o = s.atomsUnder.get(e.path) ?? [], i = new Set(t), r = xs(s, e, t), n = [], a = [];
2783
2819
  if (r === "checked")
2784
2820
  for (const l of o) i.delete(l) && a.push(l);
2785
2821
  else
2786
2822
  for (const l of o) i.has(l) || (i.add(l), n.push(l));
2787
2823
  return { checkedAtoms: i, addedAtoms: n, removedAtoms: a };
2788
2824
  }
2789
- function Ut(s, e, t, o) {
2825
+ function Xt(s, e, t, o) {
2790
2826
  const i = (a) => String(o(a.data)), r = [], n = (a) => {
2791
- const l = gs(s, a, e);
2827
+ const l = xs(s, a, e);
2792
2828
  if (l === "unchecked") return;
2793
2829
  const c = a.isSelectable !== !1, d = Object.values(a.children);
2794
2830
  if (t === "leaves") {
@@ -2811,7 +2847,7 @@ function Ut(s, e, t, o) {
2811
2847
  return r;
2812
2848
  }
2813
2849
  var D;
2814
- class Xr {
2850
+ class ln {
2815
2851
  constructor(e, t = {}) {
2816
2852
  m(this, "element");
2817
2853
  m(this, "instanceId");
@@ -2948,6 +2984,10 @@ class Xr {
2948
2984
  // Document-level event handlers (stored for cleanup)
2949
2985
  m(this, "documentKeydownHandler", null);
2950
2986
  m(this, "documentClickHandler", null);
2987
+ // Cross-component "one overlay open at a time" coordination (core). activate() on
2988
+ // open() dismisses every OTHER participating overlay (multiselects, datepickers, …);
2989
+ // our onDismiss closes this dropdown when another opens. Torn down in destroy().
2990
+ m(this, "overlayCoord", null);
2951
2991
  this.element = e, this.instanceId = `MS-${Math.random().toString(36).slice(2, 11)}`, this.options = {
2952
2992
  // String options
2953
2993
  searchHint: e.dataset.searchHint || "",
@@ -3127,7 +3167,7 @@ class Xr {
3127
3167
  return i ? i.isSelectable !== !1 : !0;
3128
3168
  }
3129
3169
  init() {
3130
- this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(), pt.debug(`Initialized [${this.instanceId}] with options:`, {
3170
+ this.parseOptions(), this.buildHTML(), this.attachEvents(), this.parseInitialSelection(), ft.debug(`Initialized [${this.instanceId}] with options:`, {
3131
3171
  placeholder: this.options.searchPlaceholder,
3132
3172
  totalOptions: this.allOptions.length,
3133
3173
  isCloseOnSelect: this.options.isCloseOnSelect,
@@ -3154,7 +3194,7 @@ class Xr {
3154
3194
  }
3155
3195
  /** (Re)build the ltree from `allOptions` and derive the visible flat list. */
3156
3196
  buildTree() {
3157
- this.tree = Gr({
3197
+ this.tree = nn({
3158
3198
  idMember: this.options.valueMember,
3159
3199
  pathMember: this.options.pathMember,
3160
3200
  getPathCallback: this.options.getPathCallback,
@@ -3166,7 +3206,7 @@ class Xr {
3166
3206
  treePathSeparator: this.options.treePathSeparator,
3167
3207
  treeId: this.instanceId,
3168
3208
  getDisplayValueCallback: (e) => this.getItemDisplayValue(e.data)
3169
- }), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? Hs(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
3209
+ }), this.tree.insertArray(this.allOptions), this.cascadeIndex = this.isCascadeMode() ? Us(this.tree, (e) => String(this.getItemValue(e))) : null, this.rebuildTreeVisible();
3170
3210
  }
3171
3211
  /**
3172
3212
  * Whether cascade checkbox mode is active: a multi-select tree with
@@ -3181,7 +3221,7 @@ class Xr {
3181
3221
  }
3182
3222
  /** Refresh the derived checked-atom set from the emitted `selectedValues`. */
3183
3223
  refreshCascadeAtoms() {
3184
- this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms = Xe(this.cascadeIndex, this.selectedValues));
3224
+ this.isCascadeMode() && this.cascadeIndex && (this.cascadeCheckedAtoms = Ye(this.cascadeIndex, this.selectedValues));
3185
3225
  }
3186
3226
  /**
3187
3227
  * Toggle a tree node in cascade mode: flip its whole subtree, re-project the
@@ -3189,7 +3229,7 @@ class Xr {
3189
3229
  * so badges / form / change events reflect the policy (rolled-up branches, etc.).
3190
3230
  */
3191
3231
  toggleTreeCascade(e) {
3192
- const t = this.cascadeIndex, o = Xe(t, this.selectedValues), { checkedAtoms: i } = qr(t, e, o);
3232
+ const t = this.cascadeIndex, o = Ye(t, this.selectedValues), { checkedAtoms: i } = an(t, e, o);
3193
3233
  this.commitCascadeAtoms(i);
3194
3234
  }
3195
3235
  /**
@@ -3200,7 +3240,7 @@ class Xr {
3200
3240
  */
3201
3241
  commitCascadeAtoms(e) {
3202
3242
  var l;
3203
- const t = this.cascadeIndex, o = Ut(
3243
+ const t = this.cascadeIndex, o = Xt(
3204
3244
  t,
3205
3245
  e,
3206
3246
  this.cascadePolicy(),
@@ -3225,7 +3265,7 @@ class Xr {
3225
3265
  */
3226
3266
  counterSelection() {
3227
3267
  if (this.isCascadeMode() && this.cascadeIndex) {
3228
- const e = Ut(
3268
+ const e = Xt(
3229
3269
  this.cascadeIndex,
3230
3270
  this.cascadeCheckedAtoms,
3231
3271
  "rolled-up",
@@ -3335,7 +3375,7 @@ class Xr {
3335
3375
  */
3336
3376
  detectRTL() {
3337
3377
  const e = this.element.getRootNode(), t = e instanceof ShadowRoot ? e.host : this.element, o = t.getAttribute("dir") === "rtl", i = t.closest('[dir="rtl"]') !== null;
3338
- this.isRTL = o || i, pt.debug(`[${this.instanceId}] RTL Debug:`, {
3378
+ this.isRTL = o || i, ft.debug(`[${this.instanceId}] RTL Debug:`, {
3339
3379
  isShadowRoot: e instanceof ShadowRoot,
3340
3380
  elementDir: t.getAttribute("dir"),
3341
3381
  hasElementDir: o,
@@ -3361,7 +3401,7 @@ class Xr {
3361
3401
  }
3362
3402
  buildHTML() {
3363
3403
  const e = this.options.container || document.body;
3364
- this.detectRTL(), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"), pt.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");
3404
+ this.detectRTL(), this.element.classList.add("ms"), this.isRTL && (this.element.classList.add("ms--rtl"), ft.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");
3365
3405
  const t = document.createElement("div");
3366
3406
  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");
3367
3407
  const o = document.createElement("span");
@@ -3497,7 +3537,7 @@ class Xr {
3497
3537
  }
3498
3538
  const e = this.scaledOptionHeight(), t = this.options.virtualScrollBuffer ?? 10;
3499
3539
  requestAnimationFrame(() => {
3500
- this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new Ds({
3540
+ this.optionsContainer && (this.virtualScroll ? (this.virtualScroll.setItemHeight(e), this.virtualScroll.setItems(this.filteredOptions)) : this.virtualScroll = new Fs({
3501
3541
  container: this.optionsContainer,
3502
3542
  itemHeight: e,
3503
3543
  items: this.filteredOptions,
@@ -3531,13 +3571,13 @@ class Xr {
3531
3571
  if (!(d.getIsVisibleCallback ? d.getIsVisibleCallback(this) : d.isVisible ?? !0)) return;
3532
3572
  let p;
3533
3573
  d.getIsDisabledCallback ? p = d.getIsDisabledCallback(this) : d.isDisabled !== void 0 ? p = d.isDisabled : p = this.getBuiltInActionDisabled(d.action);
3534
- const g = p ? " disabled" : "", w = d.getTextCallback ? d.getTextCallback(this) : d.text;
3535
- let y = "";
3574
+ const g = p ? " disabled" : "", y = d.getTextCallback ? d.getTextCallback(this) : d.text;
3575
+ let w = "";
3536
3576
  if (d.getClassCallback) {
3537
3577
  const k = this.classSuffix(d.getClassCallback(this));
3538
- k && (y = ` ${k}`);
3539
- } else d.cssClass && (y = ` ${d.cssClass}`);
3540
- const b = Math.max(1, Math.floor(d.row ?? 1)), _ = `<button type="button"${g} class="ms__action-btn${y}" data-action="${d.action}" data-button-index="${u}">${w}</button>`;
3578
+ k && (w = ` ${k}`);
3579
+ } else d.cssClass && (w = ` ${d.cssClass}`);
3580
+ const b = Math.max(1, Math.floor(d.row ?? 1)), _ = `<button type="button"${g} class="ms__action-btn${w}" data-action="${d.action}" data-button-index="${u}">${y}</button>`;
3541
3581
  l.has(b) || l.set(b, []), l.get(b).push(_);
3542
3582
  }), l.size === 0) return "";
3543
3583
  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("");
@@ -3555,7 +3595,7 @@ class Xr {
3555
3595
  isFocused: c,
3556
3596
  isMatched: d,
3557
3597
  isDisabled: a,
3558
- ...Ft(this.presentationMode),
3598
+ ...jt(this.presentationMode),
3559
3599
  isTreeNode: !1
3560
3600
  };
3561
3601
  p += this.toHtml(this.options.renderOptionContentCallback(e, g));
@@ -3582,28 +3622,28 @@ class Xr {
3582
3622
  * chevron/toggle — every node is just a normal, selectable option.
3583
3623
  */
3584
3624
  renderTreeNode(e, t) {
3585
- 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 ? gs(this.cascadeIndex, e, this.cascadeCheckedAtoms) : null, u = c ? d === "checked" : this.selectedValues.has(String(i)), f = d === "indeterminate", p = t === this.focusedIndex, g = this.matchingIndices.has(t), w = e.isSelectable !== !1, y = e.level ?? 1, b = Math.max(0, y - 1), _ = ["ms__option", "ms__option--tree"];
3586
- _.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), u && _.push("ms__option--selected"), f && _.push("ms__option--indeterminate"), p && _.push("ms__option--focused"), g && _.push("ms__option--matched"), l && _.push("ms__option--disabled"), w || _.push("ms__option--tree-unselectable");
3587
- const k = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", E = w ? "" : ' data-selectable="false"';
3588
- let A = `<div class="${_.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${y}" style="--ms-tree-depth: ${b};"${k}${E}>`;
3589
- if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && w && (A += `<input type="checkbox" class="${f ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${u ? "checked" : ""}${f ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), A += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
3625
+ 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", p = t === this.focusedIndex, g = this.matchingIndices.has(t), y = e.isSelectable !== !1, w = e.level ?? 1, b = Math.max(0, w - 1), _ = ["ms__option", "ms__option--tree"];
3626
+ _.push(e.hasChildren ? "ms__option--tree-branch" : "ms__option--tree-leaf"), u && _.push("ms__option--selected"), f && _.push("ms__option--indeterminate"), p && _.push("ms__option--focused"), g && _.push("ms__option--matched"), l && _.push("ms__option--disabled"), y || _.push("ms__option--tree-unselectable");
3627
+ const k = this.options.checkboxAlign && this.options.checkboxAlign !== "center" ? ` data-checkbox-align="${this.options.checkboxAlign}"` : "", E = y ? "" : ' data-selectable="false"';
3628
+ let A = `<div class="${_.join(" ")}" data-value="${i}" data-index="${t}" data-path="${e.path}" data-level="${w}" style="--ms-tree-depth: ${b};"${k}${E}>`;
3629
+ if (this.options.isCheckboxesShown && this.options.isMultipleEnabled && y && (A += `<input type="checkbox" class="${f ? "ms__checkbox ms__checkbox--indeterminate" : "ms__checkbox"}" ${u ? "checked" : ""}${f ? ' aria-checked="mixed"' : ""} ${l ? "disabled" : ""}>`), A += '<div class="ms__option-content">', this.options.renderOptionContentCallback) {
3590
3630
  const $ = {
3591
3631
  index: t,
3592
3632
  isSelected: u,
3593
3633
  isFocused: p,
3594
3634
  isMatched: g,
3595
3635
  isDisabled: l,
3596
- ...Ft(this.presentationMode),
3636
+ ...jt(this.presentationMode),
3597
3637
  // Tree metadata — lets the callback branch on depth / branch-vs-leaf /
3598
3638
  // tristate without re-deriving any of it from the raw data item.
3599
3639
  isTreeNode: !0,
3600
3640
  isBranch: e.hasChildren,
3601
3641
  isLeaf: !e.hasChildren,
3602
3642
  childCount: Object.keys(e.children).length,
3603
- level: y,
3643
+ level: w,
3604
3644
  depth: b,
3605
3645
  path: e.path,
3606
- isSelectable: w,
3646
+ isSelectable: y,
3607
3647
  isIndeterminate: f
3608
3648
  };
3609
3649
  A += this.toHtml(this.options.renderOptionContentCallback(o, $));
@@ -3727,7 +3767,7 @@ class Xr {
3727
3767
  this.options.isSearchEnabled && !h(this, D) && this.open(), this.handleSearch(t);
3728
3768
  }), this.input.addEventListener("keydown", (e) => this.handleKeydown(e)), this.documentClickHandler = (e) => this.handleClickOutside(e), setTimeout(() => {
3729
3769
  document.addEventListener("click", this.documentClickHandler);
3730
- }, 0), this.documentKeydownHandler = (e) => {
3770
+ }, 0), this.overlayCoord = Ui(() => this.close(), this.options.overlayGroup || void 0), this.documentKeydownHandler = (e) => {
3731
3771
  e.key === "Escape" && this.showSelectedPopover && (e.preventDefault(), this.hideSelectedPopover());
3732
3772
  }, document.addEventListener("keydown", this.documentKeydownHandler), this.dropdown.addEventListener("mousedown", (e) => {
3733
3773
  if (this.presentationMode !== "fullscreen") return;
@@ -4147,7 +4187,7 @@ class Xr {
4147
4187
  if (this.isCascadeMode() && this.cascadeIndex) {
4148
4188
  const i = this.cascadeIndex.nodeByValue.get(o);
4149
4189
  if (i) {
4150
- const r = this.cascadeIndex.atomsUnder.get(i.path) ?? [], n = new Set(Xe(this.cascadeIndex, this.selectedValues));
4190
+ const r = this.cascadeIndex.atomsUnder.get(i.path) ?? [], n = new Set(Ye(this.cascadeIndex, this.selectedValues));
4151
4191
  for (const a of r) n.delete(a);
4152
4192
  this.commitCascadeAtoms(n);
4153
4193
  return;
@@ -4157,7 +4197,7 @@ class Xr {
4157
4197
  }
4158
4198
  selectAll() {
4159
4199
  if (this.isCascadeMode() && this.cascadeIndex) {
4160
- const t = this.cascadeIndex, o = new Set(Xe(t, this.selectedValues));
4200
+ const t = this.cascadeIndex, o = new Set(Ye(t, this.selectedValues));
4161
4201
  for (const i of this.treeNodes)
4162
4202
  t.atomPaths.has(i.path) && (this.getItemDisabled(i.data) || o.add(String(this.getItemValue(i.data))));
4163
4203
  this.commitCascadeAtoms(o);
@@ -4206,13 +4246,15 @@ class Xr {
4206
4246
  }
4207
4247
  /** Open the dropdown (no-op if already open, or if there is nothing to show). */
4208
4248
  open() {
4249
+ var e;
4209
4250
  J.debug(`[${this.instanceId}] open() called`, { isOpen: h(this, D) }), !h(this, D) && (this.justOpenedViaClick = !0, setTimeout(() => {
4210
4251
  this.justOpenedViaClick = !1;
4211
- }, 0), this.hideMessage(), I(this, D, !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()));
4252
+ }, 0), this.hideMessage(), I(this, D, !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());
4212
4253
  }
4213
4254
  /** Close the dropdown (no-op if already closed). */
4214
4255
  close() {
4215
- J.debug(`[${this.instanceId}] close() called`, { isOpen: h(this, D) }), h(this, D) && (I(this, D, !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, J.debug(`[${this.instanceId}] Dropdown closed`));
4256
+ var e;
4257
+ J.debug(`[${this.instanceId}] close() called`, { isOpen: h(this, D) }), h(this, D) && (I(this, D, !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`));
4216
4258
  }
4217
4259
  /** Toggle the dropdown open/closed. */
4218
4260
  toggle() {
@@ -4234,7 +4276,7 @@ class Xr {
4234
4276
  */
4235
4277
  anchorFloatingPanel(e, t) {
4236
4278
  var r;
4237
- const o = ((r = t.isLocked) == null ? void 0 : r.call(t)) ?? !0, i = Ze(e, this.inputWrapper, {
4279
+ const o = ((r = t.isLocked) == null ? void 0 : r.call(t)) ?? !0, i = et(e, this.inputWrapper, {
4238
4280
  strategy: "fixed",
4239
4281
  placement: "bottom-start",
4240
4282
  offset: 4,
@@ -4304,10 +4346,10 @@ class Xr {
4304
4346
  */
4305
4347
  warnFullscreenContainingBlock() {
4306
4348
  if (this.fullscreenContainingBlockWarned || typeof window > "u") return;
4307
- const e = es(this.dropdown);
4349
+ const e = os(this.dropdown);
4308
4350
  if (e === window) return;
4309
4351
  this.fullscreenContainingBlockWarned = !0;
4310
- const t = e, o = t.id ? `#${t.id}` : "", i = t.classList.length ? `.${Array.from(t.classList).join(".")}` : "", r = `<${t.tagName.toLowerCase()}${o}${i}>`, n = yo(t);
4352
+ 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);
4311
4353
  console.warn(
4312
4354
  `[@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).
4313
4355
  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.`
@@ -4345,7 +4387,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4345
4387
  * and a redundant call is a no-op rather than acquiring a second.
4346
4388
  */
4347
4389
  lockBodyScroll() {
4348
- this.bodyScrollUnlock || (this.bodyScrollUnlock = Ai());
4390
+ this.bodyScrollUnlock || (this.bodyScrollUnlock = Ri());
4349
4391
  }
4350
4392
  /** Restore page scroll (no-op if it wasn't locked). */
4351
4393
  unlockBodyScroll() {
@@ -4384,7 +4426,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4384
4426
  * we just hold the returned cleanup. No-op where `visualViewport` is unavailable.
4385
4427
  */
4386
4428
  observeKeyboardInset() {
4387
- this.keyboardInsetCleanup = zi(this.dropdown);
4429
+ this.keyboardInsetCleanup = Bi(this.dropdown);
4388
4430
  }
4389
4431
  /** Detach keyboard-inset tracking and restore the panel's CSS-driven geometry. */
4390
4432
  unobserveKeyboardInset() {
@@ -4590,7 +4632,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4590
4632
  this.hintCleanup && this.hintCleanup();
4591
4633
  let e = "top-start";
4592
4634
  this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom")));
4593
- const t = Ze(this.hint, this.inputWrapper, {
4635
+ const t = et(this.hint, this.inputWrapper, {
4594
4636
  strategy: "fixed",
4595
4637
  placement: e,
4596
4638
  offset: 4,
@@ -4676,7 +4718,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4676
4718
  if (!this.selectedPopoverContainer) return;
4677
4719
  const o = this.scaledBadgeHeight(), i = Math.round(4 * this.fullscreenScale()), r = o + i, n = this.options.virtualScrollBuffer ?? 10;
4678
4720
  requestAnimationFrame(() => {
4679
- this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Ds({
4721
+ this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Fs({
4680
4722
  container: this.selectedPopoverContainer,
4681
4723
  itemHeight: r,
4682
4724
  items: e,
@@ -4718,7 +4760,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4718
4760
  renderBadgeHTML(e, t) {
4719
4761
  const o = this.getItemValue(e), i = {
4720
4762
  ...t,
4721
- ...Ft(this.presentationMode)
4763
+ ...jt(this.presentationMode)
4722
4764
  };
4723
4765
  if (!t.isInPopover && this.options.renderBadgeCallback) {
4724
4766
  const d = this.toHtml(this.options.renderBadgeCallback(e, i));
@@ -4828,9 +4870,9 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4828
4870
  if (t !== o) return !1;
4829
4871
  Object.assign(this.options, e);
4830
4872
  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;
4831
- 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() ? Hs(this.tree, (a) => String(this.getItemValue(a))) : null, this.isCascadeMode() && this.cascadeIndex)) {
4832
- this.cascadeCheckedAtoms = Xe(this.cascadeIndex, this.selectedValues);
4833
- const a = Ut(
4873
+ 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)) {
4874
+ this.cascadeCheckedAtoms = Ye(this.cascadeIndex, this.selectedValues);
4875
+ const a = Xt(
4834
4876
  this.cascadeIndex,
4835
4877
  this.cascadeCheckedAtoms,
4836
4878
  this.cascadePolicy(),
@@ -4885,7 +4927,7 @@ An ancestor of <web-multiselect> establishes a fixed-positioning containing bloc
4885
4927
  spawnTooltip(e) {
4886
4928
  var r;
4887
4929
  (r = this.tooltips.get(e.id)) == null || r.destroy();
4888
- const t = this.element.getRootNode(), o = t instanceof ShadowRoot ? t : null, i = Kr({
4930
+ const t = this.element.getRootNode(), o = t instanceof ShadowRoot ? t : null, i = tn({
4889
4931
  trigger: e.trigger,
4890
4932
  container: this.options.container ?? o ?? document.body,
4891
4933
  content: e.content,
@@ -5032,7 +5074,7 @@ ${o}` : t;
5032
5074
  const n = document.createElement("div");
5033
5075
  n.className = "ms__option-tooltip ms__option-tooltip--fullscreen", typeof r == "string" ? n.textContent = r : n.appendChild(r);
5034
5076
  const a = this.element.getRootNode(), l = a instanceof ShadowRoot ? a : null, c = this.options.container ?? l ?? document.body;
5035
- this.labelRevealTrigger = e, this.labelRevealPanel = n, this.labelRevealPopover = Wr({
5077
+ this.labelRevealTrigger = e, this.labelRevealPanel = n, this.labelRevealPopover = sn({
5036
5078
  reference: e,
5037
5079
  panel: n,
5038
5080
  container: c,
@@ -5067,7 +5109,7 @@ ${o}` : t;
5067
5109
  if ((this.options.container ?? l ?? document.body).appendChild(n), this.messageEl = n, this.presentationMode === "fullscreen" && (h(this, D) || this.showSelectedPopover))
5068
5110
  n.classList.add("ms__message--fullscreen");
5069
5111
  else {
5070
- const u = Ze(n, this.inputWrapper, {
5112
+ const u = et(n, this.inputWrapper, {
5071
5113
  strategy: "fixed",
5072
5114
  placement: (t == null ? void 0 : t.placement) ?? "bottom",
5073
5115
  offset: 8,
@@ -5140,11 +5182,12 @@ ${o}` : t;
5140
5182
  // PUBLIC API
5141
5183
  // ========================================================================
5142
5184
  destroy() {
5143
- this.destroyAllTooltips(), this.hideLabelReveal(), this.hideMessage(), this.searchDebounceTimer && (clearTimeout(this.searchDebounceTimer), this.searchDebounceTimer = void 0), this.abortInFlightSearch(), this.dropdownCleanup && this.dropdownCleanup(), this.hintCleanup && this.hintCleanup(), this.selectedPopoverCleanup && this.selectedPopoverCleanup(), this.overlayHistoryActive && (this.overlayHistoryActive = !1, typeof window < "u" && window.removeEventListener("popstate", this.onOverlayPopstate)), this.exitFullscreen(), this.documentClickHandler && (document.removeEventListener("click", this.documentClickHandler), this.documentClickHandler = null), this.documentKeydownHandler && (document.removeEventListener("keydown", this.documentKeydownHandler), this.documentKeydownHandler = null), this.virtualScroll && (this.virtualScroll.destroy(), this.virtualScroll = null), this.dropdown && this.dropdown.remove(), this.hint && this.hint.remove(), this.selectedPopover && this.selectedPopover.remove(), this.element.innerHTML = "", this.element.classList.remove("ms", "ms--open", "ms--no-checkboxes"), pt.info(`[${this.instanceId}] Component destroyed`);
5185
+ var e;
5186
+ 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"), ft.info(`[${this.instanceId}] Component destroyed`);
5144
5187
  }
5145
5188
  }
5146
5189
  D = new WeakMap();
5147
- function Yr() {
5190
+ function cn() {
5148
5191
  return {
5149
5192
  fromAttribute(s) {
5150
5193
  if (s === null || s.trim() === "") return [];
@@ -5165,29 +5208,29 @@ function Yr() {
5165
5208
  }
5166
5209
  };
5167
5210
  }
5168
- const Jr = ["json", "csv", "plain"], Fs = ",", Ks = `
5211
+ const dn = ["json", "csv", "plain"], Gs = ",", qs = `
5169
5212
  `;
5170
- function Qr(s, e, t = {}) {
5213
+ function hn(s, e, t = {}) {
5171
5214
  if (s == null || s.trim() === "") return { options: [] };
5172
- const o = Ws(t.splitter ?? Fs) || Fs, i = Ws(t.rowSplitter ?? Ks) || Ks;
5215
+ const o = Xs(t.splitter ?? Gs) || Gs, i = Xs(t.rowSplitter ?? qs) || qs;
5173
5216
  switch (e) {
5174
5217
  case "csv":
5175
- return tn(s, o, i);
5218
+ return pn(s, o, i);
5176
5219
  case "plain":
5177
- return en(s, o, i);
5220
+ return mn(s, o, i);
5178
5221
  case "json":
5179
5222
  default:
5180
- return Zr(s);
5223
+ return un(s);
5181
5224
  }
5182
5225
  }
5183
- function Ws(s) {
5226
+ function Xs(s) {
5184
5227
  return s.replace(
5185
5228
  /\\[ntr\\]/g,
5186
5229
  (e) => e === "\\n" ? `
5187
5230
  ` : e === "\\t" ? " " : e === "\\r" ? "\r" : "\\"
5188
5231
  );
5189
5232
  }
5190
- function Zr(s) {
5233
+ function un(s) {
5191
5234
  let e;
5192
5235
  try {
5193
5236
  e = JSON.parse(s);
@@ -5196,11 +5239,11 @@ function Zr(s) {
5196
5239
  }
5197
5240
  return Array.isArray(e) ? { options: e } : { options: [], error: "data-options JSON must be an array" };
5198
5241
  }
5199
- function en(s, e, t) {
5242
+ function mn(s, e, t) {
5200
5243
  return { options: s.split(t).flatMap((i) => i.split(e)).map((i) => i.trim()).filter((i) => i.length > 0).map((i) => [i, i]) };
5201
5244
  }
5202
- function tn(s, e, t) {
5203
- const o = sn(s, e, t).filter((n) => !(n.length === 1 && n[0].trim() === ""));
5245
+ function pn(s, e, t) {
5246
+ const o = fn(s, e, t).filter((n) => !(n.length === 1 && n[0].trim() === ""));
5204
5247
  if (o.length < 2)
5205
5248
  return { options: [], error: "data-options CSV needs a header row and at least one data row" };
5206
5249
  const i = o[0].map((n) => n.trim());
@@ -5211,7 +5254,7 @@ function tn(s, e, t) {
5211
5254
  }), a;
5212
5255
  }) };
5213
5256
  }
5214
- function sn(s, e, t) {
5257
+ function fn(s, e, t) {
5215
5258
  const o = [];
5216
5259
  let i = [], r = "", n = !1;
5217
5260
  for (let a = 0; a < s.length; ) {
@@ -5224,7 +5267,7 @@ function sn(s, e, t) {
5224
5267
  }
5225
5268
  return i.push(r), o.push(i), o;
5226
5269
  }
5227
- const _o = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#cbd5e1, #52525b));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-toggle-icon-size: calc(1.6 * var(--ms-rem));--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: var(--ms-primary-bg-hover);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-remove-bg: var(--ms-text-color-3);--ms-badge-counter-remove-bg-hover: var(--ms-text-color-1);--ms-badge-counter-remove-color: var(--ms-text-color-on-accent);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-count-clear-bg-hover: var(--ms-accent-color);--ms-tooltip-bg: var(--base-tooltip-bg, var(--base-inverse-bg, light-dark(#333333, #f5f5f5)));--ms-tooltip-text-color: var(--base-tooltip-text-color, light-dark(#ffffff, #1a1a1a));--ms-selected-popover-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding-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: 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(--ms-text-secondary);--ms-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: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-input-current-width: auto;--ms-dropdown-width: var(--ms-input-current-width);--ms-options-max-height: calc(32 * var(--ms-rem));--ms-option-color: var(--ms-text-color-1);--ms-z-index-dropdown: 9999;--ms-z-index-sticky: 1;--ms-z-index-fullscreen: 10001;--ms-z-index-fullscreen-tooltip: 10002;--ms-fullscreen-rem: 12px;--ms-fullscreen-bg: var(--ms-dropdown-bg);--ms-fullscreen-text-color: var(--ms-dropdown-text-color);--ms-fullscreen-header-bg: var(--ms-dropdown-bg);--ms-fullscreen-header-border: 1px solid var(--ms-dropdown-border-color);--ms-fullscreen-header-gap: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-v: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding-h: calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-header-padding: var(--ms-fullscreen-header-padding-v) var(--ms-fullscreen-header-padding-h);--ms-fullscreen-header-min-height: calc(5.6 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-size: calc(1.7 * var(--ms-fullscreen-rem));--ms-fullscreen-title-font-weight: var(--base-font-weight-semibold, 600);--ms-fullscreen-search-border: var(--ms-input-border);--ms-fullscreen-search-border-radius: var(--ms-input-border-radius);--ms-fullscreen-search-padding: calc(.8 * var(--ms-fullscreen-rem)) calc(1.2 * var(--ms-fullscreen-rem));--ms-fullscreen-search-font-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-icon-size: calc(1.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-inset: calc(.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-gutter: calc(3.4 * var(--ms-fullscreen-rem));--ms-fullscreen-search-clear-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-search-clear-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-mode-toggle-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-icon-size: calc(1.5 * var(--ms-fullscreen-rem));--ms-fullscreen-mode-toggle-gap: var(--ms-fullscreen-header-gap);--ms-fullscreen-mode-toggle-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-mode-toggle-bg: transparent;--ms-fullscreen-mode-toggle-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-size: calc(3.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-close-color: var(--ms-dropdown-text-color);--ms-fullscreen-close-bg: transparent;--ms-fullscreen-close-border: none;--ms-fullscreen-close-border-radius: 50%;--ms-fullscreen-close-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-close-edge-nudge: calc(.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-size: calc(2.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-icon-size: calc(1.8 * var(--ms-fullscreen-rem));--ms-fullscreen-info-color: var(--ms-accent-color);--ms-fullscreen-info-bg-hover: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-gap: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-padding-top: calc(.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-font-size: calc(1.3 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-count-color: var(--ms-text-muted-color, var(--ms-dropdown-text-color));--ms-fullscreen-nav-btn-size: calc(3.2 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-icon-size: calc(1.6 * var(--ms-fullscreen-rem));--ms-fullscreen-nav-btn-color: var(--ms-dropdown-text-color);--ms-fullscreen-nav-btn-bg: var(--ms-option-bg-matched, transparent);--ms-fullscreen-nav-btn-bg-hover: color-mix(in srgb, var(--ms-accent-color) 22%, transparent);--ms-icon-chevron: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5 15l7-7 7 7' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/></svg>");--ms-icon-info: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.3' fill='black'/><path d='M12 11v6' stroke='black' stroke-width='2' stroke-linecap='round' fill='none'/></svg>");--ms-fullscreen-tree-base-indent: calc(.7 * var(--ms-fullscreen-rem));--ms-fullscreen-tree-indent: calc(1.2 * var(--ms-fullscreen-rem));--ms-actions-gap: calc(.4 * var(--ms-rem));--ms-actions-padding: calc(.8 * var(--ms-rem));--ms-actions-border-bottom: 1px solid var(--ms-actions-border-color);--ms-action-btn-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-action-btn-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-action-btn-border: var(--ms-border);--ms-action-btn-border-radius: var(--ms-border-radius-sm);--ms-action-btn-bg: transparent;--ms-action-btn-color: inherit;--ms-action-btn-bg-hover: var(--ms-primary-bg);--ms-action-btn-border-color-hover: var(--ms-accent-color);--ms-transform-scale-active: .98;--ms-options-padding: 0;--ms-group-border-top: 1px solid var(--ms-group-border-color);--ms-group-margin-top: calc(.4 * var(--ms-rem));--ms-group-padding-top: calc(.4 * var(--ms-rem));--ms-group-label-padding: calc(.4 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-group-label-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-group-label-font-weight: var(--base-font-weight-semibold, 600);--ms-group-label-color: var(--ms-text-color-3);--ms-group-label-transform: uppercase;--ms-group-label-letter-spacing: .05em;--ms-option-gap: calc(.8 * var(--ms-rem));--ms-option-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-option-padding-h: calc(1.2 * var(--ms-rem));--ms-option-min-height: auto;--ms-option-outline-focused: 2px solid var(--ms-option-outline-color-focused);--ms-option-focus-outline-offset: -2px;--ms-option-border-matched: 3px solid var(--ms-option-border-matched-color);--ms-option-bg-focused-hover: var(--ms-primary-bg);--ms-option-bg-matched-hover: color-mix(in srgb, var(--ms-accent-color) 12%, transparent);--ms-option-bg-selected-focused: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-bg-selected-matched: color-mix(in srgb, var(--ms-accent-color) 15%, transparent);--ms-option-disabled-bg: var(--base-disabled-bg, transparent);--ms-option-bg-disabled-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-disabled-opacity: .5;--ms-option-content-gap: calc(.8 * var(--ms-rem));--ms-option-icon-size: calc(2 * var(--ms-rem));--ms-option-icon-font-size: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-option-title-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-option-mark-font-weight: var(--base-font-weight-semibold, 600);--ms-option-title-white-space: normal;--ms-option-title-overflow: visible;--ms-option-title-text-overflow: clip;--ms-option-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: 0;--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border-width: 1px;--ms-checkbox-border-color: var(--base-checkbox-border-color, #8f8f8f);--ms-checkbox-border: var(--ms-checkbox-border-width) solid var(--ms-checkbox-border-color);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checkmark-thickness: 2.5px;--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: var(--ms-checkbox-border-width) solid var(--ms-accent-color);--ms-checkbox-checkmark-color: var(--ms-text-color-on-accent);--ms-checkbox-hover-border-color: var(--ms-accent-color);--ms-checkbox-disabled-bg: var(--ms-primary-bg);--ms-checkbox-disabled-border: var(--ms-checkbox-border-width) solid var(--ms-border-color);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--ms-state-min-height: calc(8 * var(--ms-rem));--ms-empty-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-empty-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-empty-color: var(--ms-text-color-3);--ms-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M18 6 6 18'/><path d='m6 6 12 12'/></svg>");--ms-icon-search-clear: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m13.5 8.5-5 5'/><path d='m8.5 8.5 5 5'/><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-search: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='8'/><path d='m21 21-4.3-4.3'/></svg>");--ms-icon-filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--ms-icon-remove);--ms-tooltip-color: var(--ms-tooltip-text-color);--ms-tooltip-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-tooltip-border-radius: var(--ms-border-radius-lg);--ms-tooltip-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-tooltip-max-width: calc(32 * var(--ms-rem));--ms-tooltip-shadow: 0 2px 8px rgba(0, 0, 0, .15);--ms-tooltip-z-index: 10000;--ms-option-tooltip-bg: var(--ms-tooltip-bg);--ms-option-tooltip-text-color: var(--ms-tooltip-text-color);--ms-option-tooltip-padding: var(--ms-tooltip-padding);--ms-option-tooltip-border-radius: var(--ms-tooltip-border-radius);--ms-option-tooltip-font-size: var(--ms-tooltip-font-size);--ms-option-tooltip-max-width: var(--ms-tooltip-max-width);--ms-option-tooltip-shadow: var(--ms-tooltip-shadow);--ms-option-tooltip-z-index: var(--ms-tooltip-z-index);--ms-message-bg: var(--ms-message-info-bg);--ms-message-color: var(--ms-message-info-color);--ms-message-border: 1px solid transparent;--ms-message-border-radius: var(--ms-border-radius-lg);--ms-message-padding: calc(1 * var(--ms-rem)) calc(1.4 * var(--ms-rem));--ms-message-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-message-font-weight: var(--base-font-weight-medium, 500);--ms-message-max-width: calc(40 * var(--ms-rem));--ms-message-shadow: 0 4px 16px rgb(0 0 0 / .18);--ms-message-fullscreen-offset: calc(2.4 * var(--ms-fullscreen-rem));--ms-message-z-index: var(--ms-z-index-fullscreen-tooltip);--ms-message-info-bg: var(--ms-tooltip-bg);--ms-message-info-color: var(--ms-tooltip-text-color);--ms-message-warning-bg: var(--base-warning-bg, #f59e0b);--ms-message-warning-color: var(--base-warning-color, #1a1a1a);--ms-message-error-bg: var(--base-danger-bg, #ef4444);--ms-message-error-color: var(--base-danger-color, #ffffff);--ms-message-success-bg: var(--base-success-bg, #10b981);--ms-message-success-color: var(--base-success-color, #ffffff);--ms-z-index-popover: 10000;--ms-selected-popover-width: 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: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px;--ms-debug-bg: var(--base-elevated-bg, light-dark(#f9fafb, #2b2b2b));--ms-debug-border-color: var(--ms-border-color);--ms-debug-text-color: var(--ms-text-color-1);--ms-debug-border-radius: var(--ms-border-radius-md);--ms-debug-summary-color: var(--ms-accent-color);--ms-debug-summary-bg-hover: var(--ms-primary-bg);--ms-debug-summary-outline-color: var(--ms-accent-color);--ms-debug-summary-border-radius: var(--ms-border-radius-sm);--ms-debug-stats-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-debug-stats-border-radius: var(--ms-border-radius-sm);--ms-debug-bullet-color: var(--ms-accent-color)}}@layer component{web-multiselect:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background:transparent}:host{-webkit-tap-highlight-color:transparent}.ms__wrapper{display:flex;flex-direction:column;align-items:stretch}.ms__wrapper--inline{flex-direction:row;align-items:var(--ms-inline-align, center)}.ms{position:relative;width:100%}}@layer component{.ms__input-wrapper{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-transform-rotate-180));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(0)}.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;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-icon-chevron) center / contain no-repeat;mask:var(--ms-icon-chevron) center / contain no-repeat}.ms__fullscreen-nav-btn--next:before{transform:scaleY(-1)}.ms__fullscreen-header>.ms__fullscreen-search-wrapper,.ms__selected-popover--fullscreen .ms__selected-popover-header>span{flex:1 1 0;min-width:0}.ms__fullscreen-search-wrapper{position:relative;display:flex;align-items:center}.ms__selected-popover--fullscreen .ms__selected-popover-header{font-size:var(--ms-fullscreen-title-font-size);font-weight:var(--ms-fullscreen-title-font-weight);color:var(--ms-fullscreen-text-color)}.ms__fullscreen-search{flex:1 1 auto;min-width:0;font-family:inherit;font-size:var(--ms-fullscreen-search-font-size);color:inherit;background:transparent;border:var(--ms-fullscreen-search-border);border-radius:var(--ms-fullscreen-search-border-radius);padding:var(--ms-fullscreen-search-padding);padding-inline-end:var(--ms-fullscreen-search-clear-gutter)}.ms__fullscreen-search:focus{outline:none;border:var(--ms-input-border-focus)}.ms__fullscreen-search-clear{position:absolute;inset-inline-end:var(--ms-fullscreen-search-clear-inset);top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-search-clear-size);height:var(--ms-fullscreen-search-clear-size);padding:0;color:var(--ms-fullscreen-search-clear-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-search-clear:hover{background:var(--ms-fullscreen-search-clear-bg-hover)}.ms__fullscreen-search-clear:before{content:"";display:block;width:var(--ms-fullscreen-search-clear-icon-size);height:var(--ms-fullscreen-search-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-search-clear) center / contain no-repeat;mask:var(--ms-icon-search-clear) center / contain no-repeat}.ms__fullscreen-mode-toggle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-mode-toggle-size);height:var(--ms-fullscreen-mode-toggle-size);margin-inline-end:var(--ms-fullscreen-mode-toggle-gap);margin-inline-start:calc((var(--ms-fullscreen-close-size) - var(--ms-fullscreen-mode-toggle-size)) / 2 - var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-mode-toggle-color);background:var(--ms-fullscreen-mode-toggle-bg);border:none;border-radius:50%;cursor:pointer}.ms__fullscreen-mode-toggle:hover{background:var(--ms-fullscreen-mode-toggle-bg-hover)}.ms__fullscreen-mode-toggle:before{content:"";display:block;width:var(--ms-fullscreen-mode-toggle-icon-size);height:var(--ms-fullscreen-mode-toggle-icon-size);background-color:currentColor;-webkit-mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat;mask:var(--ms-fullscreen-mode-toggle-icon, var(--ms-icon-search)) center / contain no-repeat}.ms__fullscreen-mode-toggle[data-mode=navigate]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-search)}.ms__fullscreen-mode-toggle[data-mode=filter]{--ms-fullscreen-mode-toggle-icon: var(--ms-icon-filter)}.ms__fullscreen-close,.ms__selected-popover--fullscreen .ms__selected-popover-close{flex:0 0 auto;position:relative;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;width:var(--ms-fullscreen-close-size);height:var(--ms-fullscreen-close-size);margin-inline-end:calc(-1 * var(--ms-fullscreen-close-edge-nudge));padding:0;color:var(--ms-fullscreen-close-color);background:var(--ms-fullscreen-close-bg);border:var(--ms-fullscreen-close-border);border-radius:var(--ms-fullscreen-close-border-radius);cursor:pointer}.ms__fullscreen-close:after,.ms__selected-popover--fullscreen .ms__selected-popover-close:after{content:"";position:absolute;inset-block-start:calc(-1 * var(--ms-fullscreen-close-size));inset-block-end:calc(-1 * var(--ms-fullscreen-header-padding-v));inset-inline-end:calc(-1 * var(--ms-fullscreen-header-padding-h));inset-inline-start:calc(-1 * var(--ms-fullscreen-header-gap))}.ms__fullscreen-close:hover,.ms__selected-popover--fullscreen .ms__selected-popover-close:hover{background:var(--ms-fullscreen-close-bg-hover);color:var(--ms-fullscreen-close-color)}.ms__fullscreen-close:before,.ms__selected-popover--fullscreen .ms__selected-popover-close:before{content:"";display:block;width:var(--ms-fullscreen-close-icon-size);height:var(--ms-fullscreen-close-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__dropdown--fullscreen .ms__option-info{flex:0 0 auto;display:none;align-items:center;justify-content:center;width:var(--ms-fullscreen-info-size);height:var(--ms-fullscreen-info-size);margin-inline-start:var(--ms-option-gap);padding:0;color:var(--ms-fullscreen-info-color);background:transparent;border:none;border-radius:50%;cursor:pointer}.ms__dropdown--fullscreen .ms__option--truncated .ms__option-info{display:inline-flex}@media (hover: hover){.ms__dropdown--fullscreen .ms__option-info:hover{background:var(--ms-fullscreen-info-bg-hover)}}.ms__dropdown--fullscreen .ms__option-info:before{content:"";display:block;width:var(--ms-fullscreen-info-icon-size);height:var(--ms-fullscreen-info-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-info) center / contain no-repeat;mask:var(--ms-icon-info) center / contain no-repeat}.ms__dropdown-inner{flex:1;overflow-y:auto;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;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;@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;font-family:inherit;width:var(--ms-badge-remove-width);height:100%;flex-shrink:0;background:var(--ms-badge-remove-bg);color:var(--ms-badge-remove-color);border:var(--ms-badge-remove-border);border-inline-start:none;border-start-end-radius:var(--ms-badge-border-radius);border-end-end-radius:var(--ms-badge-border-radius);border-start-start-radius:0;border-end-start-radius:0;cursor:pointer;transition:background-color var(--ms-transition-normal) ease;font-size:var(--ms-badge-remove-font-size)}.ms__badge-remove:hover{background:var(--ms-badge-remove-bg-hover)}.ms__badge-remove:focus{outline:none}.ms__badge-remove:focus-visible{outline:none;box-shadow:var(--ms-badge-remove-box-shadow-focus)}.ms__badge-remove:before{content:"";display:block;width:var(--ms-badge-remove-icon-size);height:var(--ms-badge-remove-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__badge--counter{cursor:pointer}.ms__badge--counter .ms__badge-text{background:var(--ms-badge-counter-text-bg);color:var(--ms-badge-counter-text-color);border:var(--ms-badge-counter-border);border-inline-end:none}.ms__badge--counter .ms__badge-remove{background:var(--ms-badge-counter-remove-bg);color:var(--ms-badge-counter-remove-color);border:var(--ms-badge-counter-border);border-inline-start:none}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-bg-hover)}.ms__badge--more,.ms__badge[data-action=show-selected]{cursor:pointer}}@layer component{.ms__count-display{display:flex;align-items:center}.ms__count-display:empty{display:none}.ms__count-display--bottom{margin-top:var(--ms-count-display-margin-bottom)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top);order:var(--ms-order-first)}.ms__count-display--left{order:var(--ms-order-first);margin-right:var(--ms-count-display-margin-left);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap);background:var(--ms-counter-wrapper-bg);border:var(--ms-counter-wrapper-border);border-radius:var(--ms-counter-wrapper-border-radius);padding:var(--ms-counter-wrapper-padding);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-bg-hover);border-color:var(--ms-counter-wrapper-border-color-hover)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg);border:var(--ms-count-text-border);padding:0;font-size:var(--ms-count-text-font-size);color:var(--ms-count-text-color);cursor:pointer;transition:color var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size);height:var(--ms-count-clear-size);padding:0;border:none;background:var(--ms-count-clear-bg);color:var(--ms-count-clear-color);font-size:var(--ms-count-clear-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-count-clear-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear:hover{background:var(--ms-count-clear-bg-hover);color:var(--ms-count-clear-color-hover)}.ms__count-clear:before{content:"";display:block;width:var(--ms-count-clear-icon-size);height:var(--ms-count-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}}@layer component{.ms__debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-bg);border:1px solid var(--ms-debug-border-color);border-radius:var(--ms-debug-border-radius);font-size:calc(1.2 * var(--ms-rem));color:var(--ms-debug-text-color)}.ms__debug-info details summary{cursor:pointer;font-weight:600;color:var(--ms-debug-summary-color);-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:var(--ms-debug-summary-border-radius)}.ms__debug-info details summary:hover{background-color:var(--ms-debug-summary-bg-hover)}.ms__debug-info details summary:focus{outline:2px solid var(--ms-debug-summary-outline-color);outline-offset:2px}.ms__debug-info .ms__debug-stats{display:flex;flex-direction:column;gap:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-stats-bg);border-radius:var(--ms-debug-stats-border-radius)}.ms__debug-info .ms__debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ms__debug-info .ms__debug-stats span:before{content:"•";margin-inline-end:calc(.4 * var(--ms-rem));color:var(--ms-debug-bullet-color)}}@layer component{.ms__options{padding:var(--ms-options-padding);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__options--virtual .ms__option,.ms__options--fixed-height .ms__option{height:var(--ms-option-height, 50px);min-height:var(--ms-option-height, 50px);max-height:var(--ms-option-height, 50px);overflow:hidden;box-sizing:border-box}.ms__group+.ms__group{border-top:var(--ms-group-border-top);margin-top:var(--ms-group-margin-top);padding-top:var(--ms-group-padding-top)}.ms__group-label{padding:var(--ms-group-label-padding);font-size:var(--ms-group-label-font-size);font-weight:var(--ms-group-label-font-weight);color:var(--ms-group-label-color);text-transform:var(--ms-group-label-transform);letter-spacing:var(--ms-group-label-letter-spacing)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);position:relative;min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit)}.ms__option--matched:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;border-inline-start:var(--ms-option-border-matched);pointer-events:none}.ms__option--selected{background:var(--ms-option-bg-selected)}@media (hover: hover){.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-bg-selected))}}.ms__option--disabled{opacity:var(--ms-disabled-opacity);cursor:not-allowed;background:var(--ms-option-disabled-bg)}.ms__option--disabled:hover{background:var(--ms-option-disabled-bg)}@media (hover: hover){.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start;--ms-checkbox-margin-top: calc(.2 * var(--ms-rem))}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-inline-end:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-inline-start:var(--ms-checkbox-margin-left);width:var(--ms-checkbox-size);height:var(--ms-checkbox-size);transform:scale(var(--ms-checkbox-scale));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg);border:var(--ms-checkbox-border);border-radius:var(--ms-checkbox-border-radius);transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;left:50%;top:40%;width:30%;height:55%;transform:translate(-50%,-50%) rotate(45deg);border:solid var(--ms-checkbox-checkmark-color);border-width:0 var(--ms-checkbox-checkmark-thickness, 2px) var(--ms-checkbox-checkmark-thickness, 2px) 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox:checked:after{display:block}.ms__checkbox--indeterminate{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox--indeterminate:after{display:block;top:50%;left:50%;width:55%;height:0;transform:translate(-50%,-50%);border:none;border-bottom:var(--ms-checkbox-checkmark-thickness, 2px) solid var(--ms-checkbox-checkmark-color)}.ms__checkbox--indeterminate:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:checked:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg);border:var(--ms-checkbox-disabled-border);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg)}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:center;gap:var(--ms-option-content-gap);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size);height:var(--ms-option-icon-size);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size)}.ms__option-icon svg{width:100%;height:100%;fill:currentColor}.ms__option-text{flex:1;min-width:0}.ms__option-title{font-size:var(--ms-option-title-font-size);color:var(--ms-option-title-color);line-height:var(--ms-line-height-relaxed);white-space:var(--ms-option-title-white-space, normal);overflow:var(--ms-option-title-overflow, visible);text-overflow:var(--ms-option-title-text-overflow, clip)}@media (hover: hover){.ms__option:hover .ms__option-title{color:var(--ms-option-title-color-hover, var(--ms-option-title-color))}}.ms__option--selected .ms__option-title{color:var(--ms-option-title-color-selected, var(--ms-option-title-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-title{color:var(--ms-option-title-color-selected-hover, var(--ms-option-title-color-selected, var(--ms-option-title-color)))}}.ms__option-title mark{background:var(--ms-option-mark-bg);color:var(--ms-option-mark-color);font-weight:var(--ms-option-mark-font-weight)}.ms__option-subtitle{margin-top:var(--ms-option-subtitle-margin-top);font-size:var(--ms-option-subtitle-font-size);color:var(--ms-option-subtitle-color);line-height:var(--ms-option-subtitle-line-height)}@media (hover: hover){.ms__option:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-hover, var(--ms-option-subtitle-color))}}.ms__option--selected .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected-hover, var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color)))}}.ms__empty{display:flex;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-empty-padding);text-align:center;font-size:var(--ms-empty-font-size);color:var(--ms-empty-color)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-loader-padding);gap:var(--ms-loader-gap)}.ms__loading-text{font-size:var(--ms-loading-text-font-size);color:var(--ms-loading-color)}}@layer component{.ms--rtl .ms__badges{direction:rtl}.ms--rtl .ms__badges--right{margin-left:0;margin-right:var(--ms-badges-margin-right)}.ms--rtl .ms__badges--left{margin-right:0;margin-left:var(--ms-badges-margin-left)}.ms--rtl .ms__count-display{direction:rtl}.ms--rtl .ms__count-display--right{margin-left:0;margin-right:var(--ms-count-display-margin-right)}.ms--rtl .ms__count-display--left{margin-right:0;margin-left:var(--ms-count-display-margin-left)}}@layer component{.ms__option--tree{padding-inline-start:calc(var(--ms-tree-base-indent, .75rem) + var(--ms-tree-depth, 0) * var(--ms-tree-indent, 1.25rem))}.ms__option--tree-unselectable{cursor:default}.ms__option--tree-unselectable:hover{background:transparent}}@layer overrides{:host-context([data-theme="dark"]),:host-context([data-bs-theme="dark"]),:host-context(.dark){color-scheme:dark}:host-context([data-theme="light"]),:host-context([data-bs-theme="light"]),:host-context(.light){color-scheme:light}:host([data-theme="dark"]){color-scheme:dark}:host([data-theme="light"]){color-scheme:light}}`, js = [
5270
+ const Oo = `@layer variables,component,overrides;@layer variables{:host{display:block;--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#cbd5e1, #52525b));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-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: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-accent-color-light-hover));--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: var(--ms-primary-bg-hover);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-remove-bg: var(--ms-text-color-3);--ms-badge-counter-remove-bg-hover: var(--ms-text-color-1);--ms-badge-counter-remove-color: var(--ms-text-color-on-accent);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-count-clear-bg-hover: var(--ms-accent-color);--ms-tooltip-bg: var(--base-tooltip-bg, var(--base-inverse-bg, light-dark(#333333, #f5f5f5)));--ms-tooltip-text-color: var(--base-tooltip-text-color, light-dark(#ffffff, #1a1a1a));--ms-selected-popover-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding-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-loader-padding: calc(1.6 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: 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: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/></svg>");--ms-badge-counter-bg: transparent;--ms-badge-counter-border: 1px solid var(--ms-badge-counter-border-color);--ms-badge-counter-border-radius: var(--ms-border-radius-sm);--ms-more-badge-bg: var(--ms-accent-color-light);--ms-more-badge-hover-bg: var(--ms-badge-bg-hover);--ms-more-badge-active-bg: var(--ms-accent-color-light-hover);--ms-count-display-margin-bottom: calc(.8 * var(--ms-rem));--ms-count-display-margin-top: calc(.8 * var(--ms-rem));--ms-count-display-margin-left: calc(.8 * var(--ms-rem));--ms-count-display-margin-right: calc(.8 * var(--ms-rem));--ms-counter-wrapper-bg: transparent;--ms-counter-wrapper-border: var(--ms-border);--ms-counter-wrapper-border-radius: var(--ms-border-radius-sm);--ms-counter-wrapper-padding: calc(.4 * var(--ms-rem)) calc(.8 * var(--ms-rem));--ms-counter-wrapper-gap: calc(.4 * var(--ms-rem));--ms-counter-wrapper-bg-hover: var(--ms-primary-bg);--ms-counter-wrapper-border-color-hover: var(--ms-accent-color);--ms-count-text-bg: transparent;--ms-count-text-border: none;--ms-count-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-count-text-color: var(--ms-text-color-1);--ms-count-clear-size: calc(1.6 * var(--ms-rem));--ms-count-clear-bg: transparent;--ms-count-clear-color: var(--ms-text-color-3);--ms-count-clear-font-size: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-count-clear-border-radius: var(--ms-border-radius-sm);--ms-count-clear-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-count-clear-color-hover: var(--ms-accent-color);--ms-count-clear-icon-size: calc(1.4 * var(--ms-rem));--ms-icon-clear: var(--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: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: 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;@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;font-family:inherit;width:var(--ms-badge-remove-width);height:100%;flex-shrink:0;background:var(--ms-badge-remove-bg);color:var(--ms-badge-remove-color);border:var(--ms-badge-remove-border);border-inline-start:none;border-start-end-radius:var(--ms-badge-border-radius);border-end-end-radius:var(--ms-badge-border-radius);border-start-start-radius:0;border-end-start-radius:0;cursor:pointer;transition:background-color var(--ms-transition-normal) ease;font-size:var(--ms-badge-remove-font-size)}.ms__badge-remove:hover{background:var(--ms-badge-remove-bg-hover)}.ms__badge-remove:focus{outline:none}.ms__badge-remove:focus-visible{outline:none;box-shadow:var(--ms-badge-remove-box-shadow-focus)}.ms__badge-remove:before{content:"";display:block;width:var(--ms-badge-remove-icon-size);height:var(--ms-badge-remove-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-remove) center / contain no-repeat;mask:var(--ms-icon-remove) center / contain no-repeat}.ms__badge--counter{cursor:pointer}.ms__badge--counter .ms__badge-text{background:var(--ms-badge-counter-text-bg);color:var(--ms-badge-counter-text-color);border:var(--ms-badge-counter-border);border-inline-end:none}.ms__badge--counter .ms__badge-remove{background:var(--ms-badge-counter-remove-bg);color:var(--ms-badge-counter-remove-color);border:var(--ms-badge-counter-border);border-inline-start:none}.ms__badge--counter .ms__badge-remove:hover{background:var(--ms-badge-counter-remove-bg-hover)}.ms__badge--more,.ms__badge[data-action=show-selected]{cursor:pointer}}@layer component{.ms__count-display{display:flex;align-items:center}.ms__count-display:empty{display:none}.ms__count-display--bottom{margin-top:var(--ms-count-display-margin-bottom)}.ms__count-display--top{margin-bottom:var(--ms-count-display-margin-top);order:var(--ms-order-first)}.ms__count-display--left{order:var(--ms-order-first);margin-right:var(--ms-count-display-margin-left);justify-content:flex-start}.ms__count-display--right{margin-left:var(--ms-count-display-margin-right);justify-content:flex-end}.ms__counter-wrapper{display:inline-flex;align-items:center;gap:var(--ms-counter-wrapper-gap);background:var(--ms-counter-wrapper-bg);border:var(--ms-counter-wrapper-border);border-radius:var(--ms-counter-wrapper-border-radius);padding:var(--ms-counter-wrapper-padding);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter-wrapper:hover{background:var(--ms-counter-wrapper-bg-hover);border-color:var(--ms-counter-wrapper-border-color-hover)}.ms__count-text{display:inline-flex;align-items:center;background:var(--ms-count-text-bg);border:var(--ms-count-text-border);padding:0;font-size:var(--ms-count-text-font-size);color:var(--ms-count-text-color);cursor:pointer;transition:color var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:var(--ms-count-clear-size);height:var(--ms-count-clear-size);padding:0;border:none;background:var(--ms-count-clear-bg);color:var(--ms-count-clear-color);font-size:var(--ms-count-clear-font-size);line-height:var(--ms-line-height-none);cursor:pointer;border-radius:var(--ms-count-clear-border-radius);transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__count-clear:hover{background:var(--ms-count-clear-bg-hover);color:var(--ms-count-clear-color-hover)}.ms__count-clear:before{content:"";display:block;width:var(--ms-count-clear-icon-size);height:var(--ms-count-clear-icon-size);background-color:currentColor;-webkit-mask:var(--ms-icon-clear) center / contain no-repeat;mask:var(--ms-icon-clear) center / contain no-repeat}}@layer component{.ms__debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-bg);border:1px solid var(--ms-debug-border-color);border-radius:var(--ms-debug-border-radius);font-size:calc(1.2 * var(--ms-rem));color:var(--ms-debug-text-color)}.ms__debug-info details summary{cursor:pointer;font-weight:600;color:var(--ms-debug-summary-color);-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:var(--ms-debug-summary-border-radius)}.ms__debug-info details summary:hover{background-color:var(--ms-debug-summary-bg-hover)}.ms__debug-info details summary:focus{outline:2px solid var(--ms-debug-summary-outline-color);outline-offset:2px}.ms__debug-info .ms__debug-stats{display:flex;flex-direction:column;gap:calc(.4 * var(--ms-rem));margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:var(--ms-debug-stats-bg);border-radius:var(--ms-debug-stats-border-radius)}.ms__debug-info .ms__debug-stats span{display:flex;justify-content:space-between;padding:2px 4px;font-family:monospace;font-size:calc(1 * var(--ms-rem))}.ms__debug-info .ms__debug-stats span:before{content:"•";margin-inline-end:calc(.4 * var(--ms-rem));color:var(--ms-debug-bullet-color)}}@layer component{.ms__options{padding:var(--ms-options-padding);scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__options::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__options::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__options::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__options--virtual .ms__option,.ms__options--fixed-height .ms__option{height:var(--ms-option-height, 50px);min-height:var(--ms-option-height, 50px);max-height:var(--ms-option-height, 50px);overflow:hidden;box-sizing:border-box}.ms__group+.ms__group{border-top:var(--ms-group-border-top);margin-top:var(--ms-group-margin-top);padding-top:var(--ms-group-padding-top)}.ms__group-label{padding:var(--ms-group-label-padding);font-size:var(--ms-group-label-font-size);font-weight:var(--ms-group-label-font-weight);color:var(--ms-group-label-color);text-transform:var(--ms-group-label-transform);letter-spacing:var(--ms-group-label-letter-spacing)}.ms__option{display:flex;align-items:var(--ms-checkbox-align, center);gap:var(--ms-option-gap);padding:var(--ms-option-padding);position:relative;min-height:var(--ms-option-min-height, auto);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer;user-select:none;-webkit-user-select:none}@media (hover: hover){.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit)}.ms__option--matched:before{content:"";position:absolute;inset-block:0;inset-inline-start:0;border-inline-start:var(--ms-option-border-matched);pointer-events:none}.ms__option--selected{background:var(--ms-option-bg-selected)}@media (hover: hover){.ms__option--selected:hover{background:var(--ms-option-bg-selected-hover, var(--ms-option-bg-selected))}}.ms__option--disabled{opacity:var(--ms-disabled-opacity);cursor:not-allowed;background:var(--ms-option-disabled-bg)}.ms__option--disabled:hover{background:var(--ms-option-disabled-bg)}@media (hover: hover){.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start;--ms-checkbox-margin-top: calc(.2 * var(--ms-rem))}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-inline-end:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-inline-start:var(--ms-checkbox-margin-left);width:var(--ms-checkbox-size);height:var(--ms-checkbox-size);transform:scale(var(--ms-checkbox-scale));transform-origin:top left;cursor:pointer;background:var(--ms-checkbox-bg);border:var(--ms-checkbox-border);border-radius:var(--ms-checkbox-border-radius);transition:background-color .15s ease,border-color .15s ease}.ms__checkbox:after{content:"";position:absolute;display:none;left:50%;top:40%;width:30%;height:55%;transform:translate(-50%,-50%) rotate(45deg);border:solid var(--ms-checkbox-checkmark-color);border-width:0 var(--ms-checkbox-checkmark-thickness, 2px) var(--ms-checkbox-checkmark-thickness, 2px) 0}.ms__checkbox:hover:not(:disabled){border-color:var(--ms-checkbox-hover-border-color)}.ms__checkbox:checked{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox:checked:after{display:block}.ms__checkbox--indeterminate{background:var(--ms-checkbox-checked-bg);border:var(--ms-checkbox-checked-border)}.ms__checkbox--indeterminate:after{display:block;top:50%;left:50%;width:55%;height:0;transform:translate(-50%,-50%);border:none;border-bottom:var(--ms-checkbox-checkmark-thickness, 2px) solid var(--ms-checkbox-checkmark-color)}.ms__checkbox--indeterminate:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:checked:hover:not(:disabled){background:var(--ms-checkbox-checked-bg-hover);border-color:var(--ms-checkbox-checked-border-color-hover)}.ms__checkbox:focus-visible{outline:2px solid var(--ms-checkbox-checked-bg);outline-offset:2px}.ms__checkbox:disabled{cursor:not-allowed;background:var(--ms-checkbox-disabled-bg);border:var(--ms-checkbox-disabled-border);opacity:.6}.ms__checkbox:disabled:checked{background:var(--ms-checkbox-disabled-bg)}.ms__option--disabled .ms__checkbox{cursor:not-allowed}.ms__option-content{flex:1;display:flex;align-items:center;gap:var(--ms-option-content-gap);min-width:0}.ms__option-icon{flex-shrink:0;width:var(--ms-option-icon-size);height:var(--ms-option-icon-size);display:flex;align-items:center;justify-content:center;font-size:var(--ms-option-icon-font-size)}.ms__option-icon svg{width:100%;height:100%;fill:currentColor}.ms__option-text{flex:1;min-width:0}.ms__option-title{font-size:var(--ms-option-title-font-size);color:var(--ms-option-title-color);line-height:var(--ms-line-height-relaxed);white-space:var(--ms-option-title-white-space, normal);overflow:var(--ms-option-title-overflow, visible);text-overflow:var(--ms-option-title-text-overflow, clip)}@media (hover: hover){.ms__option:hover .ms__option-title{color:var(--ms-option-title-color-hover, var(--ms-option-title-color))}}.ms__option--selected .ms__option-title{color:var(--ms-option-title-color-selected, var(--ms-option-title-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-title{color:var(--ms-option-title-color-selected-hover, var(--ms-option-title-color-selected, var(--ms-option-title-color)))}}.ms__option-title mark{background:var(--ms-option-mark-bg);color:var(--ms-option-mark-color);font-weight:var(--ms-option-mark-font-weight)}.ms__option-subtitle{margin-top:var(--ms-option-subtitle-margin-top);font-size:var(--ms-option-subtitle-font-size);color:var(--ms-option-subtitle-color);line-height:var(--ms-option-subtitle-line-height)}@media (hover: hover){.ms__option:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-hover, var(--ms-option-subtitle-color))}}.ms__option--selected .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color))}@media (hover: hover){.ms__option--selected:hover .ms__option-subtitle{color:var(--ms-option-subtitle-color-selected-hover, var(--ms-option-subtitle-color-selected, var(--ms-option-subtitle-color)))}}.ms__empty{display:flex;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-empty-padding);text-align:center;font-size:var(--ms-empty-font-size);color:var(--ms-empty-color)}.ms__loader{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:var(--ms-state-min-height);padding:var(--ms-loader-padding);gap:var(--ms-loader-gap)}.ms__loading-text{font-size:var(--ms-loading-text-font-size);color:var(--ms-loading-color)}}@layer component{.ms--rtl .ms__badges{direction:rtl}.ms--rtl .ms__badges--right{margin-left:0;margin-right:var(--ms-badges-margin-right)}.ms--rtl .ms__badges--left{margin-right:0;margin-left:var(--ms-badges-margin-left)}.ms--rtl .ms__count-display{direction:rtl}.ms--rtl .ms__count-display--right{margin-left:0;margin-right:var(--ms-count-display-margin-right)}.ms--rtl .ms__count-display--left{margin-right:0;margin-left:var(--ms-count-display-margin-left)}}@layer component{.ms__option--tree{padding-inline-start:calc(var(--ms-tree-base-indent, .75rem) + var(--ms-tree-depth, 0) * var(--ms-tree-indent, 1.25rem))}.ms__option--tree-unselectable{cursor:default}.ms__option--tree-unselectable:hover{background:transparent}}@layer overrides{:host-context([data-theme="dark"]),:host-context([data-bs-theme="dark"]),:host-context(.dark){color-scheme:dark}:host-context([data-theme="light"]),:host-context([data-bs-theme="light"]),:host-context(.light){color-scheme:light}:host([data-theme="dark"]){color-scheme:dark}:host([data-theme="light"]){color-scheme:light}}`, Ys = [
5228
5271
  "top",
5229
5272
  "top-start",
5230
5273
  "top-end",
@@ -5237,38 +5280,38 @@ const _o = `@layer variables,component,overrides;@layer variables{:host{display:
5237
5280
  "right",
5238
5281
  "right-start",
5239
5282
  "right-end"
5240
- ], z = () => $o(), on = [
5283
+ ], N = () => Wo(), gn = [
5241
5284
  // ── Strings (cosmetic → update). Optional ones are nullable: absent → null ─
5242
- { configKey: "searchHint", attribute: "search-hint", converter: V({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
5243
- { configKey: "searchPlaceholder", attribute: "search-placeholder", converter: V({ 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.' },
5244
- { configKey: "selectPlaceholder", attribute: "select-placeholder", converter: V({ default: "Pick an option..." }), on: "update", description: "Placeholder shown on the control when nothing is selected." },
5245
- { configKey: "noDataPlaceholder", attribute: "no-data-placeholder", converter: V({ isNullable: !0 }), on: "update", description: "Text shown when there are no options at all." },
5246
- { configKey: "dropdownMinWidth", attribute: "dropdown-min-width", converter: V({ isNullable: !0 }), on: "update", description: "Minimum width of the dropdown panel (any CSS length)." },
5247
- { configKey: "dropdownMaxWidth", attribute: "dropdown-max-width", converter: V({ isNullable: !0 }), on: "update", description: "Maximum width of the dropdown panel (any CSS length)." },
5248
- { configKey: "maxHeight", attribute: "max-height", converter: V({ default: "20rem" }), on: "update", description: "Maximum height of the dropdown list before it scrolls." },
5249
- { configKey: "emptyMessage", attribute: "empty-message", converter: V({ default: "No results found" }), on: "update", description: "Message shown when a search yields no matches." },
5250
- { configKey: "loadingMessage", attribute: "loading-message", converter: V({ default: "Loading..." }), on: "update", description: "Message shown while options are loading." },
5251
- { configKey: "removeButtonTooltipText", attribute: "remove-button-tooltip-text", converter: V({ isNullable: !0 }), on: "update", description: "Tooltip text for a badge remove (×) button." },
5252
- { configKey: "formFieldId", attribute: "name", converter: V({ isNullable: !0 }), on: "reinit", description: "HTML form field name/id used for the hidden input(s)." },
5285
+ { configKey: "searchHint", attribute: "search-hint", converter: z({ isNullable: !0 }), on: "update", description: "Small hint text shown beneath the search input." },
5286
+ { configKey: "searchPlaceholder", attribute: "search-placeholder", converter: z({ isNullable: !0 }), on: "update", description: 'Placeholder text for the search input. When unset it defaults to "Search..."; if `show-search-mode-toggle` is on, the default instead becomes mode-aware ("Search…" in navigate, "Filter…" in filter). An explicit value always wins and stays fixed.' },
5287
+ { configKey: "selectPlaceholder", attribute: "select-placeholder", converter: z({ default: "Pick an option..." }), on: "update", description: "Placeholder shown on the control when nothing is selected." },
5288
+ { configKey: "noDataPlaceholder", attribute: "no-data-placeholder", converter: z({ isNullable: !0 }), on: "update", description: "Text shown when there are no options at all." },
5289
+ { configKey: "dropdownMinWidth", attribute: "dropdown-min-width", converter: z({ isNullable: !0 }), on: "update", description: "Minimum width of the dropdown panel (any CSS length)." },
5290
+ { configKey: "dropdownMaxWidth", attribute: "dropdown-max-width", converter: z({ isNullable: !0 }), on: "update", description: "Maximum width of the dropdown panel (any CSS length)." },
5291
+ { configKey: "maxHeight", attribute: "max-height", converter: z({ default: "20rem" }), on: "update", description: "Maximum height of the dropdown list before it scrolls." },
5292
+ { configKey: "emptyMessage", attribute: "empty-message", converter: z({ default: "No results found" }), on: "update", description: "Message shown when a search yields no matches." },
5293
+ { configKey: "loadingMessage", attribute: "loading-message", converter: z({ default: "Loading..." }), on: "update", description: "Message shown while options are loading." },
5294
+ { configKey: "removeButtonTooltipText", attribute: "remove-button-tooltip-text", converter: z({ isNullable: !0 }), on: "update", description: "Tooltip text for a badge remove (×) button." },
5295
+ { configKey: "formFieldId", attribute: "name", converter: z({ isNullable: !0 }), on: "reinit", description: "HTML form field name/id used for the hidden input(s)." },
5253
5296
  // ── CSS-var sugar (mirrored to a host style prop in reinit()/update()) ────
5254
- { configKey: "dropdownWidth", attribute: "dropdown-width", converter: V({ isNullable: !0 }), on: "update", description: "Fixed dropdown width; mirrored to the `--ms-dropdown-width` CSS variable." },
5255
- { configKey: "selectedPopoverWidth", attribute: "selected-popover-width", converter: V({ isNullable: !0 }), on: "update", description: "Selected-items popover width; mirrored to `--ms-selected-popover-width`." },
5297
+ { configKey: "dropdownWidth", attribute: "dropdown-width", converter: z({ isNullable: !0 }), on: "update", description: "Fixed dropdown width; mirrored to the `--ms-dropdown-width` CSS variable." },
5298
+ { configKey: "selectedPopoverWidth", attribute: "selected-popover-width", converter: z({ isNullable: !0 }), on: "update", description: "Selected-items popover width; mirrored to `--ms-selected-popover-width`." },
5256
5299
  // ── Member properties (structural → reinit; optional → nullable) ─────────
5257
- { configKey: "valueMember", attribute: "value-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name on an option object that holds its value." },
5258
- { configKey: "displayValueMember", attribute: "display-value-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option display label." },
5259
- { configKey: "searchValueMember", attribute: "search-value-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name searched against (falls back to the display value)." },
5260
- { configKey: "iconMember", attribute: "icon-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option icon." },
5261
- { configKey: "subtitleMember", attribute: "subtitle-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option subtitle." },
5262
- { configKey: "fullTitleMember", attribute: "full-title-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option full/long title." },
5263
- { configKey: "groupMember", attribute: "group-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name used to group options under headers." },
5264
- { configKey: "disabledMember", attribute: "disabled-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that marks an option disabled." },
5300
+ { configKey: "valueMember", attribute: "value-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name on an option object that holds its value." },
5301
+ { configKey: "displayValueMember", attribute: "display-value-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option display label." },
5302
+ { configKey: "searchValueMember", attribute: "search-value-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name searched against (falls back to the display value)." },
5303
+ { configKey: "iconMember", attribute: "icon-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option icon." },
5304
+ { configKey: "subtitleMember", attribute: "subtitle-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option subtitle." },
5305
+ { configKey: "fullTitleMember", attribute: "full-title-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that holds an option full/long title." },
5306
+ { configKey: "groupMember", attribute: "group-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name used to group options under headers." },
5307
+ { configKey: "disabledMember", attribute: "disabled-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name that marks an option disabled." },
5265
5308
  // ── Tree of options (structural → reinit; optional → nullable) ───────────
5266
- { configKey: "pathMember", attribute: "path-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node materialized tree path." },
5267
- { configKey: "parentPathMember", attribute: "parent-path-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node parent path." },
5268
- { configKey: "levelMember", attribute: "level-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node depth level." },
5269
- { configKey: "hasChildrenMember", attribute: "has-children-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name flagging that a node has children." },
5270
- { configKey: "isSelectableMember", attribute: "is-selectable-member", converter: V({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name marking whether a node can be selected." },
5271
- { configKey: "treePathSeparator", attribute: "tree-path-separator", converter: V({ default: "." }), reflect: !0, on: "reinit", description: "Separator between segments in a materialized tree path." },
5309
+ { configKey: "pathMember", attribute: "path-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node materialized tree path." },
5310
+ { configKey: "parentPathMember", attribute: "parent-path-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node parent path." },
5311
+ { configKey: "levelMember", attribute: "level-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name holding a node depth level." },
5312
+ { configKey: "hasChildrenMember", attribute: "has-children-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name flagging that a node has children." },
5313
+ { configKey: "isSelectableMember", attribute: "is-selectable-member", converter: z({ isNullable: !0 }), reflect: !0, on: "reinit", description: "Property name marking whether a node can be selected." },
5314
+ { configKey: "treePathSeparator", attribute: "tree-path-separator", converter: z({ default: "." }), reflect: !0, on: "reinit", description: "Separator between segments in a materialized tree path." },
5272
5315
  { configKey: "isTreeEnabled", converter: B("tristate"), on: "reinit", type: "boolean", description: "Force tree mode on/off. Property-only; when unset (null) tree mode auto-enables if a path source (path-member / getPathCallback) is present." },
5273
5316
  {
5274
5317
  configKey: "checkboxMode",
@@ -5292,13 +5335,14 @@ const _o = `@layer variables,component,overrides;@layer variables{:host{display:
5292
5335
  { configKey: "badgesThresholdMode", attribute: "badges-threshold-mode", converter: W(["count", "partial"], { default: "count" }), on: "update", description: 'How `badgesThreshold` is interpreted: collapse to a count badge, or keep partial badges + a "more" badge.' },
5293
5336
  { configKey: "searchInputMode", attribute: "search-input-mode", converter: W(["normal", "readonly", "hidden"], { default: "normal" }), on: "reinit", description: "Search field mode: editable, read-only, or hidden." },
5294
5337
  { configKey: "searchMode", attribute: "search-mode", converter: W(["filter", "navigate"], { default: "filter" }), on: "reinit", description: "Whether typing filters the list or navigates it." },
5338
+ { configKey: "overlayGroup", attribute: "overlay-group", converter: z({ isNullable: !0 }), on: "reinit", description: 'Scope the "one overlay open at a time" coordination to a named group. Overlays (multiselects, datepickers, external popovers) sharing a group dismiss each other when one opens; different groups are independent. Unset = the default (ungrouped) group.' },
5295
5339
  { configKey: "actionsLayout", attribute: "actions-layout", converter: W(["nowrap", "wrap"], { default: "nowrap" }), on: "reinit", description: "Whether the action bar wraps or stays on one line." },
5296
5340
  { configKey: "actionsPosition", attribute: "actions-position", converter: W(["top", "bottom"], { default: "top" }), on: "reinit", description: "Whether the action bar sits above or below the list." },
5297
5341
  { configKey: "actionsAlign", attribute: "actions-align", converter: W(["stretch", "left", "right", "center", "space-between"], { default: "stretch" }), on: "update", description: "Horizontal alignment of the action buttons." },
5298
5342
  { configKey: "checkboxAlign", attribute: "checkbox-align", converter: W(["top", "center", "bottom"], { default: "center" }), on: "update", description: "Vertical alignment of an option checkbox." },
5299
5343
  { configKey: "valueFormat", attribute: "value-format", converter: W(["json", "csv", "array"], { default: "json" }), on: "reinit", description: "Serialization format the control emits its value in." },
5300
- { configKey: "badgeTooltipPlacement", attribute: "badge-tooltip-placement", converter: W(js, { default: "top" }), on: "update", description: "Preferred placement of a badge tooltip relative to its badge (floating-ui placement)." },
5301
- { configKey: "optionTooltipPlacement", attribute: "option-tooltip-placement", converter: W(js, { default: "top-start" }), on: "update", description: "Preferred placement of an option tooltip (floating-ui placement)." },
5344
+ { configKey: "badgeTooltipPlacement", attribute: "badge-tooltip-placement", converter: W(Ys, { default: "top" }), on: "update", description: "Preferred placement of a badge tooltip relative to its badge (floating-ui placement)." },
5345
+ { configKey: "optionTooltipPlacement", attribute: "option-tooltip-placement", converter: W(Ys, { default: "top-start" }), on: "update", description: "Preferred placement of an option tooltip (floating-ui placement)." },
5302
5346
  {
5303
5347
  configKey: "mobilePresentation",
5304
5348
  attribute: "mobile-presentation",
@@ -5350,63 +5394,63 @@ const _o = `@layer variables,component,overrides;@layer variables{:host{display:
5350
5394
  { configKey: "isOptionTooltipFollowCursor", attribute: "option-tooltip-follow-cursor", converter: B("default-false"), on: "update", description: "Make option tooltips follow the pointer." },
5351
5395
  { configKey: "isSearchModeToggleShown", attribute: "show-search-mode-toggle", converter: B("default-false"), on: "update", description: "Show a clickable toggle in the phone fullscreen overlay search header that flips `search-mode` between `filter` and `navigate` live. Fullscreen-only; no effect in the floating presentation or when search is disabled." },
5352
5396
  // ── Special attributes ───────────────────────────────────────────────────
5353
- { configKey: "initialValues", attribute: "initial-values", converter: Yr(), 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`).' },
5397
+ { 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`).' },
5354
5398
  { configKey: "showDebugInfo", attribute: "show-debug-info", converter: B("default-false"), on: "update", description: "Render an in-component debug panel.", deprecated: "Use per-instance logging (el.enableLogging()) instead." },
5355
5399
  // ── Complex property (data) ──────────────────────────────────────────────
5356
- { configKey: "options", converter: Do(), 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." },
5357
- { configKey: "optionsSource", attribute: "data-options", converter: V({ 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." },
5358
- { configKey: "optionsFormat", attribute: "data-options-format", converter: W(Jr, { 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`." },
5359
- { configKey: "optionsSplitter", attribute: "data-options-splitter", converter: V({ 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`.' },
5360
- { configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter: V({ default: `
5400
+ { 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." },
5401
+ { configKey: "optionsSource", attribute: "data-options", converter: z({ isNullable: !0 }), on: "reinit", type: "string", description: "HTML-authoring source for the option list, parsed per `data-options-format`. Reactive: changing either attribute re-renders. Prefer the `options` property in JS; a set `options` property and declarative <option> children both win over this." },
5402
+ { configKey: "optionsFormat", attribute: "data-options-format", converter: W(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`." },
5403
+ { configKey: "optionsSplitter", attribute: "data-options-splitter", converter: z({ default: "," }), on: "reinit", type: "string", description: 'Field/cell delimiter for the `csv` and `plain` `data-options` formats. Default `,`. Escapes `\\t` `\\n` `\\r` are honoured (e.g. `data-options-splitter="\\t"` for TSV). Ignored for `json`.' },
5404
+ { configKey: "optionsRowSplitter", attribute: "data-options-row-splitter", converter: z({ default: `
5361
5405
  ` }), 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`.' },
5362
- { configKey: "actionButtons", converter: Vo({ 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." },
5406
+ { 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." },
5363
5407
  // ── Callbacks: data shape (structural → reinit) ──────────────────────────
5364
- { configKey: "getValueCallback", converter: z(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
5365
- { configKey: "getPathCallback", converter: z(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
5366
- { configKey: "getGroupCallback", converter: z(), on: "reinit", type: "(item: unknown) => string", description: "Extract the group name from an option (overrides groupMember)." },
5367
- { configKey: "getDisabledCallback", converter: z(), on: "reinit", type: "(item: unknown) => boolean", description: "Whether an option is disabled (overrides disabledMember)." },
5368
- { configKey: "getIsSelectableCallback", converter: z(), on: "reinit", type: "(node: unknown) => boolean", description: "Whether a tree node can be selected (overrides is-selectable-member)." },
5369
- { configKey: "getSearchValueCallback", converter: z(), on: "reinit", type: "(item: unknown) => string", description: "Text an option is searched against (overrides searchValueMember)." },
5370
- { configKey: "searchCallback", converter: z(), on: "reinit", type: "(searchTerm: string, signal?: AbortSignal) => Promise<unknown[]>", description: "Custom / async search; return the filtered options." },
5408
+ { configKey: "getValueCallback", converter: N(), on: "reinit", type: "(item: unknown) => string | number", description: "Extract an option value (overrides valueMember)." },
5409
+ { configKey: "getPathCallback", converter: N(), on: "reinit", type: "(item: unknown) => string", description: "Extract a node tree path (enables tree mode; overrides pathMember)." },
5410
+ { configKey: "getGroupCallback", converter: N(), on: "reinit", type: "(item: unknown) => string", description: "Extract the group name from an option (overrides groupMember)." },
5411
+ { configKey: "getDisabledCallback", converter: N(), on: "reinit", type: "(item: unknown) => boolean", description: "Whether an option is disabled (overrides disabledMember)." },
5412
+ { configKey: "getIsSelectableCallback", converter: N(), on: "reinit", type: "(node: unknown) => boolean", description: "Whether a tree node can be selected (overrides is-selectable-member)." },
5413
+ { configKey: "getSearchValueCallback", converter: N(), on: "reinit", type: "(item: unknown) => string", description: "Text an option is searched against (overrides searchValueMember)." },
5414
+ { configKey: "searchCallback", converter: N(), on: "reinit", type: "(searchTerm: string, signal?: AbortSignal) => Promise<unknown[]>", description: "Custom / async search; return the filtered options." },
5371
5415
  // ── Callbacks: display / render (cosmetic → update) ──────────────────────
5372
- { configKey: "getDisplayValueCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Compute the display label for an option (overrides displayValueMember)." },
5373
- { configKey: "getBadgeDisplayCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Compute the text shown on an option badge." },
5374
- { configKey: "getBadgeClassCallback", converter: z(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for an option badge." },
5375
- { configKey: "getIconCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Icon for an option (overrides iconMember)." },
5376
- { configKey: "getSubtitleCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Subtitle for an option (overrides subtitleMember)." },
5377
- { configKey: "getFullTitleCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Full title for an option (used by badges when show-badge-full-title is on)." },
5378
- { configKey: "getCounterCallback", converter: z(), on: "update", type: "(count: number, moreCount?: number) => string", description: "Render the selected-count label." },
5379
- { configKey: "getValueFormatCallback", converter: z(), on: "update", type: "(selectedValues: (string | number)[]) => string", description: "Serialize the selected values for form submission." },
5380
- { configKey: "getBadgeTooltipCallback", converter: z(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option badge." },
5381
- { configKey: "getOptionTooltipCallback", converter: z(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option row." },
5382
- { configKey: "getRemoveButtonTooltipCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Tooltip text for a badge remove button." },
5383
- { configKey: "getSelectedItemClassCallback", converter: z(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for a selected item." },
5384
- { configKey: "renderOptionContentCallback", converter: z(), on: "update", type: "(item: unknown, context: OptionContentRenderContext) => string | HTMLElement", description: "Custom render for an option row; may return HTML or an element." },
5385
- { configKey: "renderBadgeContentCallback", converter: z(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for a badge content (fills the built-in pill); may return HTML or an element." },
5386
- { configKey: "renderBadgeCallback", converter: z(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement | null", description: 'Custom render for the WHOLE badge (main area), not just its content — return the entire pill/card. The component wraps it in `.ms__badge.ms__badge--custom` with `data-value` and delegates removal to any inner element with `data-action="remove"` (or `.ms__badge-remove`). Return null/empty to fall back to the default pill for that item.' },
5387
- { configKey: "renderGroupLabelContentCallback", converter: z(), on: "update", type: "(groupName: string) => string | HTMLElement", description: "Customize a group label; may return an HTML string or element." },
5388
- { configKey: "renderSelectedContentCallback", converter: z(), on: "update", type: "(item: unknown) => string", description: "Custom render for the whole selected area." },
5389
- { configKey: "renderSelectedItemContentCallback", converter: z(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Custom render for one selected item." },
5390
- { configKey: "customStylesCallback", converter: z(), on: "update", type: "() => string", description: "Returns a CSS string injected into the component via a replaceable style slot (§12.8)." },
5416
+ { configKey: "getDisplayValueCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Compute the display label for an option (overrides displayValueMember)." },
5417
+ { configKey: "getBadgeDisplayCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Compute the text shown on an option badge." },
5418
+ { configKey: "getBadgeClassCallback", converter: N(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for an option badge." },
5419
+ { configKey: "getIconCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Icon for an option (overrides iconMember)." },
5420
+ { configKey: "getSubtitleCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Subtitle for an option (overrides subtitleMember)." },
5421
+ { configKey: "getFullTitleCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Full title for an option (used by badges when show-badge-full-title is on)." },
5422
+ { configKey: "getCounterCallback", converter: N(), on: "update", type: "(count: number, moreCount?: number) => string", description: "Render the selected-count label." },
5423
+ { configKey: "getValueFormatCallback", converter: N(), on: "update", type: "(selectedValues: (string | number)[]) => string", description: "Serialize the selected values for form submission." },
5424
+ { configKey: "getBadgeTooltipCallback", converter: N(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option badge." },
5425
+ { configKey: "getOptionTooltipCallback", converter: N(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Tooltip content for an option row." },
5426
+ { configKey: "getRemoveButtonTooltipCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Tooltip text for a badge remove button." },
5427
+ { configKey: "getSelectedItemClassCallback", converter: N(), on: "update", type: "(item: unknown) => string | string[]", description: "Extra CSS class(es) for a selected item." },
5428
+ { configKey: "renderOptionContentCallback", converter: N(), on: "update", type: "(item: unknown, context: OptionContentRenderContext) => string | HTMLElement", description: "Custom render for an option row; may return HTML or an element." },
5429
+ { configKey: "renderBadgeContentCallback", converter: N(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement", description: "Custom render for a badge content (fills the built-in pill); may return HTML or an element." },
5430
+ { configKey: "renderBadgeCallback", converter: N(), on: "update", type: "(item: unknown, context: BadgeContentRenderContext) => string | HTMLElement | null", description: 'Custom render for the WHOLE badge (main area), not just its content — return the entire pill/card. The component wraps it in `.ms__badge.ms__badge--custom` with `data-value` and delegates removal to any inner element with `data-action="remove"` (or `.ms__badge-remove`). Return null/empty to fall back to the default pill for that item.' },
5431
+ { configKey: "renderGroupLabelContentCallback", converter: N(), on: "update", type: "(groupName: string) => string | HTMLElement", description: "Customize a group label; may return an HTML string or element." },
5432
+ { configKey: "renderSelectedContentCallback", converter: N(), on: "update", type: "(item: unknown) => string", description: "Custom render for the whole selected area." },
5433
+ { configKey: "renderSelectedItemContentCallback", converter: N(), on: "update", type: "(item: unknown) => string | HTMLElement", description: "Custom render for one selected item." },
5434
+ { configKey: "customStylesCallback", converter: N(), on: "update", type: "() => string", description: "Returns a CSS string injected into the component via a replaceable style slot (§12.8)." },
5391
5435
  // ── Callbacks: before-hooks (behavior-shaping) ───────────────────────────
5392
- { configKey: "beforeSearchCallback", converter: z(), on: "update", type: "(searchTerm: string) => string | null", description: "Runs before a search; return a rewritten term or null to veto." },
5393
- { configKey: "beforeSelectCallback", converter: z(), on: "update", type: "(option: unknown, selectedOptions: unknown[]) => boolean | string | void", description: "Runs before selecting; return false to veto, or a string to veto and show it as a message." },
5394
- { configKey: "beforeDeselectCallback", converter: z(), on: "update", type: "(option: unknown, selectedOptions: unknown[]) => boolean | string | void", description: "Runs before deselecting; return false to veto, or a string to veto and show it as a message." },
5395
- { configKey: "addNewCallback", converter: z(), on: "update", type: "(value: string) => unknown | Promise<unknown>", description: "Create a new option from the typed text." },
5396
- { configKey: "keydownCallback", converter: z(), on: "update", type: "(context: MultiSelectKeydownContext) => boolean | void", description: "Intercept keydown before built-in handling; return true to suppress the default. Gets the event, current state, and an imperative controller." }
5397
- ], rn = [
5436
+ { configKey: "beforeSearchCallback", converter: N(), on: "update", type: "(searchTerm: string) => string | null", description: "Runs before a search; return a rewritten term or null to veto." },
5437
+ { configKey: "beforeSelectCallback", converter: N(), on: "update", type: "(option: unknown, selectedOptions: unknown[]) => boolean | string | void", description: "Runs before selecting; return false to veto, or a string to veto and show it as a message." },
5438
+ { configKey: "beforeDeselectCallback", converter: N(), on: "update", type: "(option: unknown, selectedOptions: unknown[]) => boolean | string | void", description: "Runs before deselecting; return false to veto, or a string to veto and show it as a message." },
5439
+ { configKey: "addNewCallback", converter: N(), on: "update", type: "(value: string) => unknown | Promise<unknown>", description: "Create a new option from the typed text." },
5440
+ { 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." }
5441
+ ], bn = [
5398
5442
  { name: "select", description: "An option was selected. `detail.option` is the selected option; `detail.selectedOptions`/`detail.selectedValues` are the full selection." },
5399
5443
  { name: "deselect", description: "An option was removed from the selection. `detail.option` is that option." },
5400
5444
  { name: "change", description: "The selection changed. `detail.selectedOptions`/`detail.selectedValues` are the full selection." }
5401
- ], Us = /* @__PURE__ */ new Set(["dropdownWidth", "selectedPopoverWidth", "showDebugInfo", "initialValues", "optionsSource", "optionsFormat", "optionsSplitter", "optionsRowSplitter", "mobilePresentation", "collapseBadgesBelow"]), ft = {
5445
+ ], Js = /* @__PURE__ */ new Set(["dropdownWidth", "selectedPopoverWidth", "showDebugInfo", "initialValues", "optionsSource", "optionsFormat", "optionsSplitter", "optionsRowSplitter", "mobilePresentation", "collapseBadgesBelow"]), gt = {
5402
5446
  dropdownWidth: "--ms-dropdown-width",
5403
5447
  selectedPopoverWidth: "--ms-selected-popover-width"
5404
5448
  };
5405
- let nn = null;
5406
- function an() {
5407
- return nn ?? (nn = Ii(_o, "--ms-"));
5449
+ let vn = null;
5450
+ function yn() {
5451
+ return vn ?? (vn = Ai(Oo, "--ms-"));
5408
5452
  }
5409
- const ln = [
5453
+ const wn = [
5410
5454
  { key: "valueMember", member: "value", callbackKey: "getValueCallback" },
5411
5455
  { key: "displayValueMember", member: "label", callbackKey: "getDisplayValueCallback" },
5412
5456
  { key: "groupMember", member: "group", callbackKey: "getGroupCallback" },
@@ -5414,26 +5458,26 @@ const ln = [
5414
5458
  { key: "subtitleMember", member: "subtitle", callbackKey: "getSubtitleCallback" },
5415
5459
  { key: "disabledMember", member: "disabled", callbackKey: "getDisabledCallback" }
5416
5460
  ];
5417
- var Z, P, fe, lt, ct, dt, He, Fe, Ie, x, wt, ge, yt, ts, ss, os, is, ko, Co, So, xt, rs, To, Io, Po, ns, Oo, Mo, as, ls;
5418
- class et extends Gt {
5461
+ var Z, O, fe, ct, dt, ht, He, Fe, Ie, x, wt, ge, xt, is, rs, ns, as, Po, Mo, Lo, _t, ls, Eo, Ao, zo, cs, No, Vo, ds, hs;
5462
+ class tt extends Yt {
5419
5463
  constructor() {
5420
5464
  super();
5421
5465
  L(this, x);
5422
5466
  L(this, Z);
5423
- L(this, P);
5467
+ L(this, O);
5424
5468
  L(this, fe);
5425
- L(this, lt, null);
5469
+ L(this, ct, null);
5426
5470
  // Dev-mode customStylesCallback lint: unknown --ms-* names already warned about.
5427
- L(this, ct, /* @__PURE__ */ new Set());
5471
+ L(this, dt, /* @__PURE__ */ new Set());
5428
5472
  // Declarative <option>/<optgroup> state (parsed once from light DOM).
5429
- L(this, dt, !1);
5473
+ L(this, ht, !1);
5430
5474
  L(this, He, !1);
5431
5475
  L(this, Fe);
5432
5476
  L(this, Ie);
5433
5477
  // ── container-responsive badge collapse (core §12.9 `resized`) ─────────────
5434
5478
  /** Whether the live picker is currently forced to the collapsed count view. */
5435
5479
  L(this, ge, !1);
5436
- I(this, Z, this.attachShadow({ mode: "open" })), Si(h(this, Z), _o), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-ready", "")) : this.setAttribute("data-ready", "");
5480
+ I(this, Z, this.attachShadow({ mode: "open" })), Li(h(this, Z), Oo), typeof requestAnimationFrame == "function" ? requestAnimationFrame(() => this.setAttribute("data-ready", "")) : this.setAttribute("data-ready", "");
5437
5481
  }
5438
5482
  /**
5439
5483
  * Called by the browser when the surrounding <form> is reset. Clears the
@@ -5441,7 +5485,7 @@ class et extends Gt {
5441
5485
  */
5442
5486
  formResetCallback() {
5443
5487
  var t;
5444
- (t = h(this, P)) == null || t.clearAll();
5488
+ (t = h(this, O)) == null || t.clearAll();
5445
5489
  }
5446
5490
  // ── core lifecycle hooks ──────────────────────────────────────────────────
5447
5491
  /** Runtime writing-direction switch (core observes `dir`): re-mirror the live
@@ -5450,28 +5494,28 @@ class et extends Gt {
5450
5494
  * and the panels' explicit `dir`). The initial direction is read by the build. */
5451
5495
  directionChanged(t) {
5452
5496
  var o;
5453
- (o = h(this, P)) == null || o.refreshDirection();
5497
+ (o = h(this, O)) == null || o.refreshDirection();
5454
5498
  }
5455
5499
  /** Structural change (or first connect): mirror CSS vars, then (re)build the picker. */
5456
5500
  reinit() {
5457
- v(this, x, Io).call(this), this.isConnected && v(this, x, os).call(this);
5501
+ v(this, x, Ao).call(this), this.isConnected && v(this, x, ns).call(this);
5458
5502
  }
5459
5503
  /** Cosmetic change: mirror CSS vars / custom styles / debug, patch the picker in place. */
5460
5504
  update(t) {
5461
- v(this, x, Po).call(this, t), "customStylesCallback" in t && v(this, x, rs).call(this), "showDebugInfo" in t && v(this, x, as).call(this);
5505
+ v(this, x, zo).call(this, t), "customStylesCallback" in t && v(this, x, ls).call(this), "showDebugInfo" in t && v(this, x, ds).call(this);
5462
5506
  const o = {};
5463
5507
  for (const [i, r] of Object.entries(t))
5464
- Us.has(i) || (o[i] = r === null ? void 0 : r);
5465
- h(this, P) && Object.keys(o).length > 0 && (h(this, P).updateOptions(o) || v(this, x, os).call(this)), "mobilePresentation" in t && v(this, x, wt).call(this, Tt()), "collapseBadgesBelow" in t && v(this, x, yt).call(this, this.getBoundingClientRect().width);
5508
+ Js.has(i) || (o[i] = r === null ? void 0 : r);
5509
+ h(this, O) && Object.keys(o).length > 0 && (h(this, O).updateOptions(o) || v(this, x, ns).call(this)), "mobilePresentation" in t && v(this, x, wt).call(this, It()), "collapseBadgesBelow" in t && v(this, x, xt).call(this, this.getBoundingClientRect().width);
5466
5510
  }
5467
5511
  /** Activate: ensure the picker exists (a DOM move destroyed it in disconnect()). */
5468
5512
  connect() {
5469
- h(this, P) || v(this, x, is).call(this);
5513
+ h(this, O) || v(this, x, as).call(this);
5470
5514
  }
5471
5515
  /** Deactivate: tear the picker down (rebuilt on the next connect). */
5472
5516
  disconnect() {
5473
5517
  var t;
5474
- (t = h(this, P)) == null || t.destroy(), I(this, P, void 0);
5518
+ (t = h(this, O)) == null || t.destroy(), I(this, O, void 0);
5475
5519
  }
5476
5520
  /**
5477
5521
  * Device/viewport/orientation changed (core §12.9). Overriding this opts the
@@ -5493,7 +5537,7 @@ class et extends Gt {
5493
5537
  * below` is set; otherwise it's a cheap no-op.
5494
5538
  */
5495
5539
  resized({ width: t }) {
5496
- v(this, x, yt).call(this, t);
5540
+ v(this, x, xt).call(this, t);
5497
5541
  }
5498
5542
  // ── non-input public API ──────────────────────────────────────────────────
5499
5543
  /** Form field name (mirrors the `name` attribute → `formFieldId`). */
@@ -5505,21 +5549,21 @@ class et extends Gt {
5505
5549
  }
5506
5550
  get selectedValue() {
5507
5551
  var t;
5508
- return this.flush(), ((t = h(this, P)) == null ? void 0 : t.selectedValue) ?? null;
5552
+ return this.flush(), ((t = h(this, O)) == null ? void 0 : t.selectedValue) ?? null;
5509
5553
  }
5510
5554
  get selectedItem() {
5511
5555
  var t;
5512
- return this.flush(), ((t = h(this, P)) == null ? void 0 : t.selectedItem) ?? null;
5556
+ return this.flush(), ((t = h(this, O)) == null ? void 0 : t.selectedItem) ?? null;
5513
5557
  }
5514
5558
  getSelected() {
5515
- return this.flush(), h(this, P) ? h(this, P).getSelected() : [];
5559
+ return this.flush(), h(this, O) ? h(this, O).getSelected() : [];
5516
5560
  }
5517
5561
  setSelected(t, o = {}) {
5518
5562
  var i;
5519
- this.flush(), (i = h(this, P)) == null || i.setSelected(t, o);
5563
+ this.flush(), (i = h(this, O)) == null || i.setSelected(t, o);
5520
5564
  }
5521
5565
  getValue() {
5522
- return this.flush(), h(this, P) ? h(this, P).getValue() : null;
5566
+ return this.flush(), h(this, O) ? h(this, O).getValue() : null;
5523
5567
  }
5524
5568
  /**
5525
5569
  * Surface a transient message ("toast") on top of the component — visible even in the
@@ -5530,47 +5574,47 @@ class et extends Gt {
5530
5574
  */
5531
5575
  showMessage(t, o) {
5532
5576
  var i;
5533
- this.flush(), (i = h(this, P)) == null || i.showMessage(t, o);
5577
+ this.flush(), (i = h(this, O)) == null || i.showMessage(t, o);
5534
5578
  }
5535
5579
  /** Dismiss the transient message shown by {@link showMessage}, if any. */
5536
5580
  hideMessage() {
5537
5581
  var t;
5538
- (t = h(this, P)) == null || t.hideMessage();
5582
+ (t = h(this, O)) == null || t.hideMessage();
5539
5583
  }
5540
5584
  // ── imperative open/close API (flush pending writes, then delegate) ─────────
5541
5585
  /** Open the dropdown. */
5542
5586
  open() {
5543
5587
  var t;
5544
- this.flush(), (t = h(this, P)) == null || t.open();
5588
+ this.flush(), (t = h(this, O)) == null || t.open();
5545
5589
  }
5546
5590
  /** Close the dropdown. */
5547
5591
  close() {
5548
5592
  var t;
5549
- this.flush(), (t = h(this, P)) == null || t.close();
5593
+ this.flush(), (t = h(this, O)) == null || t.close();
5550
5594
  }
5551
5595
  /** Toggle the dropdown open/closed. */
5552
5596
  toggle() {
5553
5597
  var t;
5554
- this.flush(), (t = h(this, P)) == null || t.toggle();
5598
+ this.flush(), (t = h(this, O)) == null || t.toggle();
5555
5599
  }
5556
5600
  /** Whether the dropdown is currently open. Assigning opens/closes it. */
5557
5601
  get isOpen() {
5558
5602
  var t;
5559
- return this.flush(), ((t = h(this, P)) == null ? void 0 : t.isOpen) ?? !1;
5603
+ return this.flush(), ((t = h(this, O)) == null ? void 0 : t.isOpen) ?? !1;
5560
5604
  }
5561
5605
  set isOpen(t) {
5562
- this.flush(), h(this, P) && (h(this, P).isOpen = t);
5606
+ this.flush(), h(this, O) && (h(this, O).isOpen = t);
5563
5607
  }
5564
5608
  destroy() {
5565
5609
  var t;
5566
- (t = h(this, P)) == null || t.destroy();
5610
+ (t = h(this, O)) == null || t.destroy();
5567
5611
  }
5568
5612
  }
5569
- Z = new WeakMap(), P = new WeakMap(), fe = new WeakMap(), lt = new WeakMap(), ct = new WeakMap(), dt = 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. */
5613
+ Z = new WeakMap(), O = new WeakMap(), fe = new WeakMap(), ct = new WeakMap(), dt = new WeakMap(), ht = 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. */
5570
5614
  wt = function(t) {
5571
5615
  var r;
5572
- const o = this.config.mobilePresentation ?? "auto", i = Ei(o, t);
5573
- (r = h(this, P)) == null || r.setPresentation(i === "modal" ? "fullscreen" : i);
5616
+ const o = this.config.mobilePresentation ?? "auto", i = $i(o, t);
5617
+ (r = h(this, O)) == null || r.setPresentation(i === "modal" ? "fullscreen" : i);
5574
5618
  }, ge = new WeakMap(), /**
5575
5619
  * Resolve `collapse-badges-below` against `width` and relay the decision to the
5576
5620
  * live picker. The override is pushed via `updateOptions` (never written back to
@@ -5578,42 +5622,42 @@ wt = function(t) {
5578
5622
  * and widening past the threshold restores it exactly. A structural JS decision,
5579
5623
  * so it lives here rather than in a CSS container query.
5580
5624
  */
5581
- yt = function(t) {
5625
+ xt = function(t) {
5582
5626
  const o = this.config.collapseBadgesBelow;
5583
5627
  if (o == null) {
5584
- h(this, ge) && (I(this, ge, !1), v(this, x, ts).call(this));
5628
+ h(this, ge) && (I(this, ge, !1), v(this, x, is).call(this));
5585
5629
  return;
5586
5630
  }
5587
5631
  const i = t > 0 && t < o;
5588
- i !== h(this, ge) && (I(this, ge, i), i ? v(this, x, ss).call(this, "count") : v(this, x, ts).call(this));
5632
+ i !== h(this, ge) && (I(this, ge, i), i ? v(this, x, rs).call(this, "count") : v(this, x, is).call(this));
5589
5633
  }, /** Re-assert the consumer's configured badges mode from the pristine base config. */
5590
- ts = function() {
5634
+ is = function() {
5591
5635
  const t = this.config.badgesDisplayMode ?? "badges";
5592
- v(this, x, ss).call(this, t);
5636
+ v(this, x, rs).call(this, t);
5593
5637
  }, /** Relay a badges-display-mode override to the live picker (never written to `this.config`). */
5594
- ss = function(t) {
5638
+ rs = function(t) {
5595
5639
  var o;
5596
- (o = h(this, P)) == null || o.updateOptions({ badgesDisplayMode: t });
5640
+ (o = h(this, O)) == null || o.updateOptions({ badgesDisplayMode: t });
5597
5641
  }, // ── picker lifecycle ──────────────────────────────────────────────────────
5598
- os = function() {
5642
+ ns = function() {
5599
5643
  var t;
5600
- (t = h(this, P)) == null || t.destroy(), I(this, P, void 0), v(this, x, is).call(this);
5601
- }, is = function() {
5602
- v(this, x, ko).call(this), v(this, x, Oo).call(this);
5603
- const t = v(this, x, Co).call(this), o = v(this, x, So).call(this);
5604
- o && o.length > 0 ? h(this, fe).dataset.initialValues = JSON.stringify(o) : delete h(this, fe).dataset.initialValues, I(this, P, new Xr(h(this, fe), t)), v(this, x, rs).call(this), v(this, x, as).call(this), v(this, x, wt).call(this, Tt()), I(this, ge, !1), v(this, x, yt).call(this, this.getBoundingClientRect().width);
5605
- }, ko = function() {
5644
+ (t = h(this, O)) == null || t.destroy(), I(this, O, void 0), v(this, x, as).call(this);
5645
+ }, as = function() {
5646
+ v(this, x, Po).call(this), v(this, x, No).call(this);
5647
+ const t = v(this, x, Mo).call(this), o = v(this, x, Lo).call(this);
5648
+ o && o.length > 0 ? h(this, fe).dataset.initialValues = JSON.stringify(o) : delete h(this, fe).dataset.initialValues, I(this, O, new ln(h(this, fe), t)), v(this, x, ls).call(this), v(this, x, ds).call(this), v(this, x, wt).call(this, It()), I(this, ge, !1), v(this, x, xt).call(this, this.getBoundingClientRect().width);
5649
+ }, Po = function() {
5606
5650
  if (h(this, fe)) return;
5607
5651
  const t = document.createElement("div");
5608
- t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), h(this, Z).appendChild(t), I(this, lt, Ti(h(this, Z), { position: "first", className: "ms-custom-styles" })), I(this, fe, t);
5652
+ t.setAttribute("data-multiselect", ""), this.className && (t.className = this.className), h(this, Z).appendChild(t), I(this, ct, Ei(h(this, Z), { position: "first", className: "ms-custom-styles" })), I(this, fe, t);
5609
5653
  }, /**
5610
5654
  * Build the picker config from the merged `this.config`, minus the keys the
5611
5655
  * picker doesn't own, plus the runtime wiring (event bridges, container, host,
5612
5656
  * declarative option data + member defaults, counter default).
5613
5657
  */
5614
- Co = function() {
5658
+ Mo = function() {
5615
5659
  const t = { ...this.config };
5616
- for (const i of Us) delete t[i];
5660
+ for (const i of Js) delete t[i];
5617
5661
  for (const i of Object.keys(t))
5618
5662
  t[i] === null && delete t[i];
5619
5663
  let o = t.options;
@@ -5622,7 +5666,7 @@ Co = function() {
5622
5666
  else if (!o || o.length === 0) {
5623
5667
  const i = this.config.optionsSource;
5624
5668
  if (i != null) {
5625
- const r = this.config.optionsFormat ?? "json", { options: n, error: a } = Qr(i, r, {
5669
+ const r = this.config.optionsFormat ?? "json", { options: n, error: a } = hn(i, r, {
5626
5670
  splitter: this.config.optionsSplitter,
5627
5671
  rowSplitter: this.config.optionsRowSplitter
5628
5672
  });
@@ -5630,40 +5674,40 @@ Co = function() {
5630
5674
  }
5631
5675
  }
5632
5676
  if (t.options = o, h(this, He))
5633
- for (const { key: i, member: r, callbackKey: n } of ln)
5677
+ for (const { key: i, member: r, callbackKey: n } of wn)
5634
5678
  t[i] === void 0 && !t[n] && (t[i] = r);
5635
5679
  return t.getCounterCallback || (t.getCounterCallback = (i, r) => r !== void 0 ? `+${r} more` : `${i} selected`), t.onSelect = (i) => {
5636
5680
  var r;
5637
5681
  this.emit("select", {
5638
5682
  option: i,
5639
- selectedOptions: ((r = h(this, P)) == null ? void 0 : r.getSelected()) ?? [],
5640
- selectedValues: v(this, x, xt).call(this)
5683
+ selectedOptions: ((r = h(this, O)) == null ? void 0 : r.getSelected()) ?? [],
5684
+ selectedValues: v(this, x, _t).call(this)
5641
5685
  });
5642
5686
  }, t.onDeselect = (i) => {
5643
5687
  var r;
5644
5688
  this.emit("deselect", {
5645
5689
  option: i,
5646
- selectedOptions: ((r = h(this, P)) == null ? void 0 : r.getSelected()) ?? [],
5647
- selectedValues: v(this, x, xt).call(this)
5690
+ selectedOptions: ((r = h(this, O)) == null ? void 0 : r.getSelected()) ?? [],
5691
+ selectedValues: v(this, x, _t).call(this)
5648
5692
  });
5649
5693
  }, t.onChange = (i) => {
5650
5694
  this.emit("change", {
5651
5695
  selectedOptions: i,
5652
- selectedValues: v(this, x, xt).call(this)
5696
+ selectedValues: v(this, x, _t).call(this)
5653
5697
  });
5654
5698
  }, t.container = h(this, Z), t.hostElement = this, t;
5655
- }, So = function() {
5699
+ }, Lo = function() {
5656
5700
  if (h(this, Ie) && h(this, Ie).length > 0)
5657
5701
  return h(this, Ie);
5658
5702
  const t = this.config.initialValues;
5659
5703
  return t && t.length > 0 ? t : void 0;
5660
- }, xt = function() {
5704
+ }, _t = function() {
5661
5705
  var o;
5662
- const t = (o = h(this, P)) == null ? void 0 : o.getValue();
5706
+ const t = (o = h(this, O)) == null ? void 0 : o.getValue();
5663
5707
  return t == null ? [] : Array.isArray(t) ? t : [t];
5664
5708
  }, // ── §12.8 custom styles ───────────────────────────────────────────────────
5665
- rs = function() {
5666
- const t = h(this, lt);
5709
+ ls = function() {
5710
+ const t = h(this, ct);
5667
5711
  if (!t) return;
5668
5712
  const o = this.config.customStylesCallback;
5669
5713
  if (typeof o != "function") {
@@ -5672,7 +5716,7 @@ rs = function() {
5672
5716
  }
5673
5717
  try {
5674
5718
  const i = o();
5675
- t.set(i), i && v(this, x, To).call(this, i);
5719
+ t.set(i), i && v(this, x, Eo).call(this, i);
5676
5720
  } catch (i) {
5677
5721
  K.warn("[MultiSelectElement] customStylesCallback threw", i), t.clear();
5678
5722
  }
@@ -5685,28 +5729,28 @@ rs = function() {
5685
5729
  * De-duped per instance. If you genuinely define a `--ms-*` var for your own
5686
5730
  * custom-rendered content, ignore the warning (or use a different prefix).
5687
5731
  */
5688
- To = function(t) {
5689
- const o = an();
5732
+ Eo = function(t) {
5733
+ const o = yn();
5690
5734
  if (o.size !== 0)
5691
- for (const { name: i, suggestions: r } of Mi(t, { prefix: "--ms-", consumed: o }))
5692
- h(this, ct).has(i) || (h(this, ct).add(i), console.warn(
5735
+ for (const { name: i, suggestions: r } of Vi(t, { prefix: "--ms-", consumed: o }))
5736
+ h(this, dt).has(i) || (h(this, dt).add(i), console.warn(
5693
5737
  `[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.)"
5694
5738
  ));
5695
5739
  }, // ── CSS-var sugar ─────────────────────────────────────────────────────────
5696
- Io = function() {
5697
- for (const t of Object.keys(ft)) v(this, x, ns).call(this, ft[t], this.config[t]);
5698
- }, Po = function(t) {
5699
- for (const o of Object.keys(ft))
5700
- o in t && v(this, x, ns).call(this, ft[o], t[o]);
5701
- }, ns = function(t, o) {
5740
+ Ao = function() {
5741
+ for (const t of Object.keys(gt)) v(this, x, cs).call(this, gt[t], this.config[t]);
5742
+ }, zo = function(t) {
5743
+ for (const o of Object.keys(gt))
5744
+ o in t && v(this, x, cs).call(this, gt[o], t[o]);
5745
+ }, cs = function(t, o) {
5702
5746
  o == null || o === "" ? this.style.removeProperty(t) : this.style.setProperty(t, String(o));
5703
5747
  }, // ── declarative <option> parsing (light DOM, once) ────────────────────────
5704
- Oo = function() {
5705
- if (h(this, dt)) return;
5706
- I(this, dt, !0);
5707
- const t = v(this, x, Mo).call(this);
5748
+ No = function() {
5749
+ if (h(this, ht)) return;
5750
+ I(this, ht, !0);
5751
+ const t = v(this, x, Vo).call(this);
5708
5752
  t && (I(this, Fe, t), I(this, He, !0));
5709
- }, Mo = function() {
5753
+ }, Vo = function() {
5710
5754
  const t = Array.from(this.children);
5711
5755
  if (t.length === 0) return null;
5712
5756
  const o = [];
@@ -5733,7 +5777,7 @@ Oo = function() {
5733
5777
  (n.tagName === "OPTION" || n.tagName === "OPTGROUP") && n.remove();
5734
5778
  return o;
5735
5779
  }, // ── debug panel (deprecated; kept for back-compat) ────────────────────────
5736
- as = function() {
5780
+ ds = function() {
5737
5781
  const t = h(this, Z).querySelector(".ms__debug-info");
5738
5782
  if (t && t.remove(), !this.config.showDebugInfo) return;
5739
5783
  const o = document.createElement("div");
@@ -5741,12 +5785,12 @@ as = function() {
5741
5785
  const i = document.createElement("details"), r = document.createElement("summary");
5742
5786
  r.textContent = "Debug Info";
5743
5787
  const n = document.createElement("div");
5744
- n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), h(this, Z).appendChild(o), v(this, x, ls).call(this);
5745
- }, ls = function() {
5788
+ n.className = "ms__debug-stats", i.appendChild(r), i.appendChild(n), o.appendChild(i), h(this, Z).appendChild(o), v(this, x, hs).call(this);
5789
+ }, hs = function() {
5746
5790
  var l, c, d, u;
5747
5791
  const t = h(this, Z).querySelector(".ms__debug-stats");
5748
- if (!t || !h(this, P)) return;
5749
- const o = "2.0.0-rc11", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = h(this, P).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = h(this, P);
5792
+ if (!t || !h(this, O)) return;
5793
+ const o = "2.0.0-rc12", i = typeof window < "u" && ((c = (l = window.components) == null ? void 0 : l["web-multiselect"]) == null ? void 0 : c.getInstances().length) || 0, r = h(this, O).getSelected().length, n = ((d = this.config.options) == null ? void 0 : d.length) || 0, a = h(this, O);
5750
5794
  t.innerHTML = `
5751
5795
  <span>Version: ${o}</span>
5752
5796
  <span>Total Instances: ${i}</span>
@@ -5757,16 +5801,16 @@ as = function() {
5757
5801
  <span>Search: ${a.searchTerm || "none"}</span>
5758
5802
  <span>Loading: ${a.isLoading ? "Yes" : "No"}</span>
5759
5803
  `, setTimeout(() => {
5760
- this.config.showDebugInfo && v(this, x, ls).call(this);
5804
+ this.config.showDebugInfo && v(this, x, hs).call(this);
5761
5805
  }, 500);
5762
5806
  }, // Opt into the form-associated custom element lifecycle so form.reset() and
5763
5807
  // form.elements see the control.
5764
- m(et, "formAssociated", !0), m(et, "inputs", on), m(et, "events", rn);
5765
- typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", et);
5766
- ki("web-multiselect", et, {
5808
+ m(tt, "formAssociated", !0), m(tt, "inputs", gn), m(tt, "events", bn);
5809
+ typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", tt);
5810
+ Pi("web-multiselect", tt, {
5767
5811
  config: {
5768
5812
  name: "@keenmate/web-multiselect",
5769
- version: "2.0.0-rc11",
5813
+ version: "2.0.0-rc12",
5770
5814
  author: "Keenmate",
5771
5815
  license: "MIT",
5772
5816
  repository: "git+https://github.com/keenmate/web-multiselect.git",
@@ -5775,23 +5819,23 @@ ki("web-multiselect", et, {
5775
5819
  logging: ce
5776
5820
  });
5777
5821
  export {
5778
- hn as LOGGING_CATEGORIES,
5779
- et as MultiSelectElement,
5780
- Jr as OPTIONS_FORMATS,
5781
- ei as TABLET_MIN_SHORT_SIDE,
5782
- Xr as WebMultiSelect,
5783
- ti as classifyDevice,
5784
- dn as configureBreakpoints,
5822
+ kn as LOGGING_CATEGORIES,
5823
+ tt as MultiSelectElement,
5824
+ dn as OPTIONS_FORMATS,
5825
+ ni as TABLET_MIN_SHORT_SIDE,
5826
+ ln as WebMultiSelect,
5827
+ ai as classifyDevice,
5828
+ _n as configureBreakpoints,
5785
5829
  K as dataLogger,
5786
- mn as disableLogging,
5787
- un as enableLogging,
5788
- Tt as getEnvironment,
5789
- pt as initLogger,
5830
+ Sn as disableLogging,
5831
+ Cn as enableLogging,
5832
+ It as getEnvironment,
5833
+ ft as initLogger,
5790
5834
  j as interactionLogger,
5791
- Qo as observeEnvironment,
5792
- Zo as observeViewport,
5793
- Qr as parseOptionsData,
5794
- fn as setCategoryLevel,
5795
- pn as setLogLevel,
5835
+ ii as observeEnvironment,
5836
+ ri as observeViewport,
5837
+ hn as parseOptionsData,
5838
+ In as setCategoryLevel,
5839
+ Tn as setLogLevel,
5796
5840
  J as uiLogger
5797
5841
  };