@keenmate/web-multiselect 1.9.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,19 +1,19 @@
1
- var dt = Object.defineProperty;
2
- var ht = (s, e, t) => e in s ? dt(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
- var d = (s, e, t) => ht(s, typeof e != "symbol" ? e + "" : e, t);
1
+ var ht = Object.defineProperty;
2
+ var mt = (s, e, t) => e in s ? ht(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
+ var d = (s, e, t) => mt(s, typeof e != "symbol" ? e + "" : e, t);
4
4
  const ie = Math.min, F = Math.max, re = Math.round, se = Math.floor, M = (s) => ({
5
5
  x: s,
6
6
  y: s
7
- }), mt = {
7
+ }), pt = {
8
8
  left: "right",
9
9
  right: "left",
10
10
  bottom: "top",
11
11
  top: "bottom"
12
- }, pt = {
12
+ }, ut = {
13
13
  start: "end",
14
14
  end: "start"
15
15
  };
16
- function Ee(s, e, t) {
16
+ function ze(s, e, t) {
17
17
  return F(s, ie(e, t));
18
18
  }
19
19
  function le(s, e) {
@@ -25,52 +25,52 @@ function N(s) {
25
25
  function ce(s) {
26
26
  return s.split("-")[1];
27
27
  }
28
- function Ge(s) {
28
+ function Ue(s) {
29
29
  return s === "x" ? "y" : "x";
30
30
  }
31
- function Ue(s) {
31
+ function Ke(s) {
32
32
  return s === "y" ? "height" : "width";
33
33
  }
34
- const ut = /* @__PURE__ */ new Set(["top", "bottom"]);
34
+ const gt = /* @__PURE__ */ new Set(["top", "bottom"]);
35
35
  function B(s) {
36
- return ut.has(N(s)) ? "y" : "x";
36
+ return gt.has(N(s)) ? "y" : "x";
37
37
  }
38
- function Ke(s) {
39
- return Ge(B(s));
38
+ function qe(s) {
39
+ return Ue(B(s));
40
40
  }
41
- function gt(s, e, t) {
41
+ function bt(s, e, t) {
42
42
  t === void 0 && (t = !1);
43
- const o = ce(s), i = Ke(s), r = Ue(i);
43
+ const o = ce(s), i = qe(s), r = Ke(i);
44
44
  let n = i === "x" ? o === (t ? "end" : "start") ? "right" : "left" : o === "start" ? "bottom" : "top";
45
45
  return e.reference[r] > e.floating[r] && (n = ne(n)), [n, ne(n)];
46
46
  }
47
- function bt(s) {
47
+ function ft(s) {
48
48
  const e = ne(s);
49
49
  return [fe(s), e, fe(e)];
50
50
  }
51
51
  function fe(s) {
52
- return s.replace(/start|end/g, (e) => pt[e]);
52
+ return s.replace(/start|end/g, (e) => ut[e]);
53
53
  }
54
- const Ve = ["left", "right"], ze = ["right", "left"], ft = ["top", "bottom"], vt = ["bottom", "top"];
55
- function _t(s, e, t) {
54
+ const Ve = ["left", "right"], Be = ["right", "left"], vt = ["top", "bottom"], wt = ["bottom", "top"];
55
+ function kt(s, e, t) {
56
56
  switch (s) {
57
57
  case "top":
58
58
  case "bottom":
59
- return t ? e ? ze : Ve : e ? Ve : ze;
59
+ return t ? e ? Be : Ve : e ? Ve : Be;
60
60
  case "left":
61
61
  case "right":
62
- return e ? ft : vt;
62
+ return e ? vt : wt;
63
63
  default:
64
64
  return [];
65
65
  }
66
66
  }
67
- function wt(s, e, t, o) {
67
+ function _t(s, e, t, o) {
68
68
  const i = ce(s);
69
- let r = _t(N(s), t === "start", o);
69
+ let r = kt(N(s), t === "start", o);
70
70
  return i && (r = r.map((n) => n + "-" + i), e && (r = r.concat(r.map(fe)))), r;
71
71
  }
72
72
  function ne(s) {
73
- return s.replace(/left|right|bottom|top/g, (e) => mt[e]);
73
+ return s.replace(/left|right|bottom|top/g, (e) => pt[e]);
74
74
  }
75
75
  function yt(s) {
76
76
  return {
@@ -81,7 +81,7 @@ function yt(s) {
81
81
  ...s
82
82
  };
83
83
  }
84
- function kt(s) {
84
+ function xt(s) {
85
85
  return typeof s != "number" ? yt(s) : {
86
86
  top: s,
87
87
  right: s,
@@ -107,12 +107,12 @@ function ae(s) {
107
107
  y: t
108
108
  };
109
109
  }
110
- function Be(s, e, t) {
110
+ function De(s, e, t) {
111
111
  let {
112
112
  reference: o,
113
113
  floating: i
114
114
  } = s;
115
- const r = B(e), n = Ke(e), a = Ue(n), l = N(e), c = r === "y", h = o.x + o.width / 2 - i.width / 2, p = o.y + o.height / 2 - i.height / 2, u = o[a] / 2 - i[a] / 2;
115
+ const r = B(e), n = qe(e), a = Ke(n), l = N(e), c = r === "y", h = o.x + o.width / 2 - i.width / 2, p = o.y + o.height / 2 - i.height / 2, u = o[a] / 2 - i[a] / 2;
116
116
  let m;
117
117
  switch (l) {
118
118
  case "top":
@@ -155,7 +155,7 @@ function Be(s, e, t) {
155
155
  }
156
156
  return m;
157
157
  }
158
- const xt = async (s, e, t) => {
158
+ const Ct = async (s, e, t) => {
159
159
  const {
160
160
  placement: o = "bottom",
161
161
  strategy: i = "absolute",
@@ -169,16 +169,16 @@ const xt = async (s, e, t) => {
169
169
  }), {
170
170
  x: h,
171
171
  y: p
172
- } = Be(c, o, l), u = o, m = {}, g = 0;
172
+ } = De(c, o, l), u = o, m = {}, g = 0;
173
173
  for (let b = 0; b < a.length; b++) {
174
174
  const {
175
175
  name: f,
176
176
  fn: v
177
177
  } = a[b], {
178
- x: w,
179
- y,
180
- data: x,
181
- reset: k
178
+ x: k,
179
+ y: _,
180
+ data: C,
181
+ reset: y
182
182
  } = await v({
183
183
  x: h,
184
184
  y: p,
@@ -193,20 +193,20 @@ const xt = async (s, e, t) => {
193
193
  floating: e
194
194
  }
195
195
  });
196
- h = w ?? h, p = y ?? p, m = {
196
+ h = k ?? h, p = _ ?? p, m = {
197
197
  ...m,
198
198
  [f]: {
199
199
  ...m[f],
200
- ...x
200
+ ...C
201
201
  }
202
- }, k && g <= 50 && (g++, typeof k == "object" && (k.placement && (u = k.placement), k.rects && (c = k.rects === !0 ? await n.getElementRects({
202
+ }, y && g <= 50 && (g++, typeof y == "object" && (y.placement && (u = y.placement), y.rects && (c = y.rects === !0 ? await n.getElementRects({
203
203
  reference: s,
204
204
  floating: e,
205
205
  strategy: i
206
- }) : k.rects), {
206
+ }) : y.rects), {
207
207
  x: h,
208
208
  y: p
209
- } = Be(c, u, l)), b = -1);
209
+ } = De(c, u, l)), b = -1);
210
210
  }
211
211
  return {
212
212
  x: h,
@@ -216,7 +216,7 @@ const xt = async (s, e, t) => {
216
216
  middlewareData: m
217
217
  };
218
218
  };
219
- async function qe(s, e) {
219
+ async function Ye(s, e) {
220
220
  var t;
221
221
  e === void 0 && (e = {});
222
222
  const {
@@ -232,36 +232,36 @@ async function qe(s, e) {
232
232
  elementContext: p = "floating",
233
233
  altBoundary: u = !1,
234
234
  padding: m = 0
235
- } = le(e, s), g = kt(m), f = a[u ? p === "floating" ? "reference" : "floating" : p], v = ae(await r.getClippingRect({
235
+ } = le(e, s), g = xt(m), f = a[u ? p === "floating" ? "reference" : "floating" : p], v = ae(await r.getClippingRect({
236
236
  element: (t = await (r.isElement == null ? void 0 : r.isElement(f))) == null || t ? f : f.contextElement || await (r.getDocumentElement == null ? void 0 : r.getDocumentElement(a.floating)),
237
237
  boundary: c,
238
238
  rootBoundary: h,
239
239
  strategy: l
240
- })), w = p === "floating" ? {
240
+ })), k = p === "floating" ? {
241
241
  x: o,
242
242
  y: i,
243
243
  width: n.floating.width,
244
244
  height: n.floating.height
245
- } : n.reference, y = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a.floating)), x = await (r.isElement == null ? void 0 : r.isElement(y)) ? await (r.getScale == null ? void 0 : r.getScale(y)) || {
245
+ } : n.reference, _ = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a.floating)), C = await (r.isElement == null ? void 0 : r.isElement(_)) ? await (r.getScale == null ? void 0 : r.getScale(_)) || {
246
246
  x: 1,
247
247
  y: 1
248
248
  } : {
249
249
  x: 1,
250
250
  y: 1
251
- }, k = ae(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
251
+ }, y = ae(r.convertOffsetParentRelativeRectToViewportRelativeRect ? await r.convertOffsetParentRelativeRectToViewportRelativeRect({
252
252
  elements: a,
253
- rect: w,
254
- offsetParent: y,
253
+ rect: k,
254
+ offsetParent: _,
255
255
  strategy: l
256
- }) : w);
256
+ }) : k);
257
257
  return {
258
- top: (v.top - k.top + g.top) / x.y,
259
- bottom: (k.bottom - v.bottom + g.bottom) / x.y,
260
- left: (v.left - k.left + g.left) / x.x,
261
- right: (k.right - v.right + g.right) / x.x
258
+ top: (v.top - y.top + g.top) / C.y,
259
+ bottom: (y.bottom - v.bottom + g.bottom) / C.y,
260
+ left: (v.left - y.left + g.left) / C.x,
261
+ right: (y.right - v.right + g.right) / C.x
262
262
  };
263
263
  }
264
- const Ct = function(s) {
264
+ const St = function(s) {
265
265
  return s === void 0 && (s = {}), {
266
266
  name: "flip",
267
267
  options: s,
@@ -285,23 +285,23 @@ const Ct = function(s) {
285
285
  } = le(s, e);
286
286
  if ((t = r.arrow) != null && t.alignmentOffset)
287
287
  return {};
288
- const v = N(i), w = B(a), y = N(a) === a, x = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), k = u || (y || !b ? [ne(a)] : bt(a)), Y = g !== "none";
289
- !u && Y && k.push(...wt(a, b, g, x));
290
- const j = [a, ...k], ue = await qe(e, f), te = [];
288
+ const v = N(i), k = B(a), _ = N(a) === a, C = await (l.isRTL == null ? void 0 : l.isRTL(c.floating)), y = u || (_ || !b ? [ne(a)] : ft(a)), Y = g !== "none";
289
+ !u && Y && y.push(..._t(a, b, g, C));
290
+ const j = [a, ...y], ue = await Ye(e, f), te = [];
291
291
  let G = ((o = r.flip) == null ? void 0 : o.overflows) || [];
292
292
  if (h && te.push(ue[v]), p) {
293
- const $ = gt(i, n, x);
293
+ const $ = bt(i, n, C);
294
294
  te.push(ue[$[0]], ue[$[1]]);
295
295
  }
296
296
  if (G = [...G, {
297
297
  placement: i,
298
298
  overflows: te
299
299
  }], !te.every(($) => $ <= 0)) {
300
- var Ae, Pe;
301
- const $ = (((Ae = r.flip) == null ? void 0 : Ae.index) || 0) + 1, ge = j[$];
302
- if (ge && (!(p === "alignment" ? w !== B(ge) : !1) || // We leave the current main axis only if every placement on that axis
300
+ var Pe, Me;
301
+ const $ = (((Pe = r.flip) == null ? void 0 : Pe.index) || 0) + 1, ge = j[$];
302
+ if (ge && (!(p === "alignment" ? k !== B(ge) : !1) || // We leave the current main axis only if every placement on that axis
303
303
  // overflows the main axis.
304
- G.every((I) => B(I.placement) === w ? I.overflows[0] > 0 : !0)))
304
+ G.every((I) => B(I.placement) === k ? I.overflows[0] > 0 : !0)))
305
305
  return {
306
306
  data: {
307
307
  index: $,
@@ -311,20 +311,20 @@ const Ct = function(s) {
311
311
  placement: ge
312
312
  }
313
313
  };
314
- let J = (Pe = G.filter((H) => H.overflows[0] <= 0).sort((H, I) => H.overflows[1] - I.overflows[1])[0]) == null ? void 0 : Pe.placement;
314
+ let J = (Me = G.filter((H) => H.overflows[0] <= 0).sort((H, I) => H.overflows[1] - I.overflows[1])[0]) == null ? void 0 : Me.placement;
315
315
  if (!J)
316
316
  switch (m) {
317
317
  case "bestFit": {
318
- var Me;
319
- const H = (Me = G.filter((I) => {
318
+ var Ee;
319
+ const H = (Ee = G.filter((I) => {
320
320
  if (Y) {
321
- const z = B(I.placement);
322
- return z === w || // Create a bias to the `y` side axis due to horizontal
321
+ const V = B(I.placement);
322
+ return V === k || // Create a bias to the `y` side axis due to horizontal
323
323
  // reading directions favoring greater width.
324
- z === "y";
324
+ V === "y";
325
325
  }
326
326
  return !0;
327
- }).map((I) => [I.placement, I.overflows.filter((z) => z > 0).reduce((z, ct) => z + ct, 0)]).sort((I, z) => I[1] - z[1])[0]) == null ? void 0 : Me[0];
327
+ }).map((I) => [I.placement, I.overflows.filter((V) => V > 0).reduce((V, dt) => V + dt, 0)]).sort((I, V) => I[1] - V[1])[0]) == null ? void 0 : Ee[0];
328
328
  H && (J = H);
329
329
  break;
330
330
  }
@@ -342,13 +342,13 @@ const Ct = function(s) {
342
342
  return {};
343
343
  }
344
344
  };
345
- }, St = /* @__PURE__ */ new Set(["left", "top"]);
346
- async function Tt(s, e) {
345
+ }, Tt = /* @__PURE__ */ new Set(["left", "top"]);
346
+ async function It(s, e) {
347
347
  const {
348
348
  placement: t,
349
349
  platform: o,
350
350
  elements: i
351
- } = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = N(t), a = ce(t), l = B(t) === "y", c = St.has(n) ? -1 : 1, h = r && l ? -1 : 1, p = le(e, s);
351
+ } = s, r = await (o.isRTL == null ? void 0 : o.isRTL(i.floating)), n = N(t), a = ce(t), l = B(t) === "y", c = Tt.has(n) ? -1 : 1, h = r && l ? -1 : 1, p = le(e, s);
352
352
  let {
353
353
  mainAxis: u,
354
354
  crossAxis: m,
@@ -370,7 +370,7 @@ async function Tt(s, e) {
370
370
  y: m * h
371
371
  };
372
372
  }
373
- const It = function(s) {
373
+ const Ot = function(s) {
374
374
  return s === void 0 && (s = 0), {
375
375
  name: "offset",
376
376
  options: s,
@@ -381,7 +381,7 @@ const It = function(s) {
381
381
  y: r,
382
382
  placement: n,
383
383
  middlewareData: a
384
- } = e, l = await Tt(e, s);
384
+ } = e, l = await It(e, s);
385
385
  return n === ((t = a.offset) == null ? void 0 : t.placement) && (o = a.arrow) != null && o.alignmentOffset ? {} : {
386
386
  x: i + l.x,
387
387
  y: r + l.y,
@@ -392,7 +392,7 @@ const It = function(s) {
392
392
  };
393
393
  }
394
394
  };
395
- }, Ot = function(s) {
395
+ }, Lt = function(s) {
396
396
  return s === void 0 && (s = {}), {
397
397
  name: "shift",
398
398
  options: s,
@@ -408,11 +408,11 @@ const It = function(s) {
408
408
  fn: (f) => {
409
409
  let {
410
410
  x: v,
411
- y: w
411
+ y: k
412
412
  } = f;
413
413
  return {
414
414
  x: v,
415
- y: w
415
+ y: k
416
416
  };
417
417
  }
418
418
  },
@@ -420,15 +420,15 @@ const It = function(s) {
420
420
  } = le(s, e), c = {
421
421
  x: t,
422
422
  y: o
423
- }, h = await qe(e, l), p = B(N(i)), u = Ge(p);
423
+ }, h = await Ye(e, l), p = B(N(i)), u = Ue(p);
424
424
  let m = c[u], g = c[p];
425
425
  if (r) {
426
- const f = u === "y" ? "top" : "left", v = u === "y" ? "bottom" : "right", w = m + h[f], y = m - h[v];
427
- m = Ee(w, m, y);
426
+ const f = u === "y" ? "top" : "left", v = u === "y" ? "bottom" : "right", k = m + h[f], _ = m - h[v];
427
+ m = ze(k, m, _);
428
428
  }
429
429
  if (n) {
430
- const f = p === "y" ? "top" : "left", v = p === "y" ? "bottom" : "right", w = g + h[f], y = g - h[v];
431
- g = Ee(w, g, y);
430
+ const f = p === "y" ? "top" : "left", v = p === "y" ? "bottom" : "right", k = g + h[f], _ = g - h[v];
431
+ g = ze(k, g, _);
432
432
  }
433
433
  const b = a.fn({
434
434
  ...e,
@@ -453,17 +453,17 @@ function de() {
453
453
  return typeof window < "u";
454
454
  }
455
455
  function q(s) {
456
- return Ye(s) ? (s.nodeName || "").toLowerCase() : "#document";
456
+ return Je(s) ? (s.nodeName || "").toLowerCase() : "#document";
457
457
  }
458
458
  function T(s) {
459
459
  var e;
460
460
  return (s == null || (e = s.ownerDocument) == null ? void 0 : e.defaultView) || window;
461
461
  }
462
- function V(s) {
462
+ function z(s) {
463
463
  var e;
464
- return (e = (Ye(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
464
+ return (e = (Je(s) ? s.ownerDocument : s.document) || window.document) == null ? void 0 : e.documentElement;
465
465
  }
466
- function Ye(s) {
466
+ function Je(s) {
467
467
  return de() ? s instanceof Node || s instanceof T(s).Node : !1;
468
468
  }
469
469
  function L(s) {
@@ -472,10 +472,10 @@ function L(s) {
472
472
  function E(s) {
473
473
  return de() ? s instanceof HTMLElement || s instanceof T(s).HTMLElement : !1;
474
474
  }
475
- function De(s) {
475
+ function $e(s) {
476
476
  return !de() || typeof ShadowRoot > "u" ? !1 : s instanceof ShadowRoot || s instanceof T(s).ShadowRoot;
477
477
  }
478
- const Lt = /* @__PURE__ */ new Set(["inline", "contents"]);
478
+ const At = /* @__PURE__ */ new Set(["inline", "contents"]);
479
479
  function ee(s) {
480
480
  const {
481
481
  overflow: e,
@@ -483,15 +483,15 @@ function ee(s) {
483
483
  overflowY: o,
484
484
  display: i
485
485
  } = A(s);
486
- return /auto|scroll|overlay|hidden|clip/.test(e + o + t) && !Lt.has(i);
486
+ return /auto|scroll|overlay|hidden|clip/.test(e + o + t) && !At.has(i);
487
487
  }
488
- const At = /* @__PURE__ */ new Set(["table", "td", "th"]);
489
- function Pt(s) {
490
- return At.has(q(s));
488
+ const Pt = /* @__PURE__ */ new Set(["table", "td", "th"]);
489
+ function Mt(s) {
490
+ return Pt.has(q(s));
491
491
  }
492
- const Mt = [":popover-open", ":modal"];
492
+ const Et = [":popover-open", ":modal"];
493
493
  function he(s) {
494
- return Mt.some((e) => {
494
+ return Et.some((e) => {
495
495
  try {
496
496
  return s.matches(e);
497
497
  } catch {
@@ -499,12 +499,12 @@ function he(s) {
499
499
  }
500
500
  });
501
501
  }
502
- const Et = ["transform", "translate", "scale", "rotate", "perspective"], Vt = ["transform", "translate", "scale", "rotate", "perspective", "filter"], zt = ["paint", "layout", "strict", "content"];
502
+ const zt = ["transform", "translate", "scale", "rotate", "perspective"], Vt = ["transform", "translate", "scale", "rotate", "perspective", "filter"], Bt = ["paint", "layout", "strict", "content"];
503
503
  function Te(s) {
504
504
  const e = Ie(), t = L(s) ? A(s) : s;
505
- return Et.some((o) => t[o] ? t[o] !== "none" : !1) || (t.containerType ? t.containerType !== "normal" : !1) || !e && (t.backdropFilter ? t.backdropFilter !== "none" : !1) || !e && (t.filter ? t.filter !== "none" : !1) || Vt.some((o) => (t.willChange || "").includes(o)) || zt.some((o) => (t.contain || "").includes(o));
505
+ return zt.some((o) => t[o] ? t[o] !== "none" : !1) || (t.containerType ? t.containerType !== "normal" : !1) || !e && (t.backdropFilter ? t.backdropFilter !== "none" : !1) || !e && (t.filter ? t.filter !== "none" : !1) || Vt.some((o) => (t.willChange || "").includes(o)) || Bt.some((o) => (t.contain || "").includes(o));
506
506
  }
507
- function Bt(s) {
507
+ function Dt(s) {
508
508
  let e = D(s);
509
509
  for (; E(e) && !K(e); ) {
510
510
  if (Te(e))
@@ -518,9 +518,9 @@ function Bt(s) {
518
518
  function Ie() {
519
519
  return typeof CSS > "u" || !CSS.supports ? !1 : CSS.supports("-webkit-backdrop-filter", "none");
520
520
  }
521
- const Dt = /* @__PURE__ */ new Set(["html", "body", "#document"]);
521
+ const $t = /* @__PURE__ */ new Set(["html", "body", "#document"]);
522
522
  function K(s) {
523
- return Dt.has(q(s));
523
+ return $t.has(q(s));
524
524
  }
525
525
  function A(s) {
526
526
  return T(s).getComputedStyle(s);
@@ -541,29 +541,29 @@ function D(s) {
541
541
  // Step into the shadow DOM of the parent of a slotted node.
542
542
  s.assignedSlot || // DOM Element detected.
543
543
  s.parentNode || // ShadowRoot detected.
544
- De(s) && s.host || // Fallback.
545
- V(s)
544
+ $e(s) && s.host || // Fallback.
545
+ z(s)
546
546
  );
547
- return De(e) ? e.host : e;
547
+ return $e(e) ? e.host : e;
548
548
  }
549
- function Je(s) {
549
+ function Xe(s) {
550
550
  const e = D(s);
551
- return K(e) ? s.ownerDocument ? s.ownerDocument.body : s.body : E(e) && ee(e) ? e : Je(e);
551
+ return K(e) ? s.ownerDocument ? s.ownerDocument.body : s.body : E(e) && ee(e) ? e : Xe(e);
552
552
  }
553
- function Q(s, e, t) {
553
+ function Z(s, e, t) {
554
554
  var o;
555
555
  e === void 0 && (e = []), t === void 0 && (t = !0);
556
- const i = Je(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = T(i);
556
+ const i = Xe(s), r = i === ((o = s.ownerDocument) == null ? void 0 : o.body), n = T(i);
557
557
  if (r) {
558
558
  const a = ve(n);
559
- return e.concat(n, n.visualViewport || [], ee(i) ? i : [], a && t ? Q(a) : []);
559
+ return e.concat(n, n.visualViewport || [], ee(i) ? i : [], a && t ? Z(a) : []);
560
560
  }
561
- return e.concat(i, Q(i, [], t));
561
+ return e.concat(i, Z(i, [], t));
562
562
  }
563
563
  function ve(s) {
564
564
  return s.parent && Object.getPrototypeOf(s.parent) ? s.frameElement : null;
565
565
  }
566
- function Xe(s) {
566
+ function Ze(s) {
567
567
  const e = A(s);
568
568
  let t = parseFloat(e.width) || 0, o = parseFloat(e.height) || 0;
569
569
  const i = E(s), r = i ? s.offsetWidth : t, n = i ? s.offsetHeight : o, a = re(t) !== r || re(o) !== n;
@@ -584,22 +584,22 @@ function U(s) {
584
584
  width: o,
585
585
  height: i,
586
586
  $: r
587
- } = Xe(e);
587
+ } = Ze(e);
588
588
  let n = (r ? re(t.width) : t.width) / o, a = (r ? re(t.height) : t.height) / i;
589
589
  return (!n || !Number.isFinite(n)) && (n = 1), (!a || !Number.isFinite(a)) && (a = 1), {
590
590
  x: n,
591
591
  y: a
592
592
  };
593
593
  }
594
- const $t = /* @__PURE__ */ M(0);
594
+ const Ht = /* @__PURE__ */ M(0);
595
595
  function Qe(s) {
596
596
  const e = T(s);
597
- return !Ie() || !e.visualViewport ? $t : {
597
+ return !Ie() || !e.visualViewport ? Ht : {
598
598
  x: e.visualViewport.offsetLeft,
599
599
  y: e.visualViewport.offsetTop
600
600
  };
601
601
  }
602
- function Ht(s, e, t) {
602
+ function Rt(s, e, t) {
603
603
  return e === void 0 && (e = !1), !t || e && t !== T(s) ? !1 : e;
604
604
  }
605
605
  function W(s, e, t, o) {
@@ -607,14 +607,14 @@ function W(s, e, t, o) {
607
607
  const i = s.getBoundingClientRect(), r = Oe(s);
608
608
  let n = M(1);
609
609
  e && (o ? L(o) && (n = U(o)) : n = U(s));
610
- const a = Ht(r, t, o) ? Qe(r) : M(0);
610
+ const a = Rt(r, t, o) ? Qe(r) : M(0);
611
611
  let l = (i.left + a.x) / n.x, c = (i.top + a.y) / n.y, h = i.width / n.x, p = i.height / n.y;
612
612
  if (r) {
613
613
  const u = T(r), m = o && L(o) ? T(o) : o;
614
614
  let g = u, b = ve(g);
615
615
  for (; b && o && m !== g; ) {
616
- const f = U(b), v = b.getBoundingClientRect(), w = A(b), y = v.left + (b.clientLeft + parseFloat(w.paddingLeft)) * f.x, x = v.top + (b.clientTop + parseFloat(w.paddingTop)) * f.y;
617
- l *= f.x, c *= f.y, h *= f.x, p *= f.y, l += y, c += x, g = T(b), b = ve(g);
616
+ const f = U(b), v = b.getBoundingClientRect(), k = A(b), _ = v.left + (b.clientLeft + parseFloat(k.paddingLeft)) * f.x, C = v.top + (b.clientTop + parseFloat(k.paddingTop)) * f.y;
617
+ l *= f.x, c *= f.y, h *= f.x, p *= f.y, l += _, c += C, g = T(b), b = ve(g);
618
618
  }
619
619
  }
620
620
  return ae({
@@ -626,23 +626,23 @@ function W(s, e, t, o) {
626
626
  }
627
627
  function pe(s, e) {
628
628
  const t = me(s).scrollLeft;
629
- return e ? e.left + t : W(V(s)).left + t;
629
+ return e ? e.left + t : W(z(s)).left + t;
630
630
  }
631
- function Ze(s, e) {
631
+ function et(s, e) {
632
632
  const t = s.getBoundingClientRect(), o = t.left + e.scrollLeft - pe(s, t), i = t.top + e.scrollTop;
633
633
  return {
634
634
  x: o,
635
635
  y: i
636
636
  };
637
637
  }
638
- function Rt(s) {
638
+ function Ft(s) {
639
639
  let {
640
640
  elements: e,
641
641
  rect: t,
642
642
  offsetParent: o,
643
643
  strategy: i
644
644
  } = s;
645
- const r = i === "fixed", n = V(o), a = e ? he(e.floating) : !1;
645
+ const r = i === "fixed", n = z(o), a = e ? he(e.floating) : !1;
646
646
  if (o === n || a && r)
647
647
  return t;
648
648
  let l = {
@@ -654,7 +654,7 @@ function Rt(s) {
654
654
  const m = W(o);
655
655
  c = U(o), h.x = m.x + o.clientLeft, h.y = m.y + o.clientTop;
656
656
  }
657
- const u = n && !p && !r ? Ze(n, l) : M(0);
657
+ const u = n && !p && !r ? et(n, l) : M(0);
658
658
  return {
659
659
  width: t.width * c.x,
660
660
  height: t.height * c.y,
@@ -662,11 +662,11 @@ function Rt(s) {
662
662
  y: t.y * c.y - l.scrollTop * c.y + h.y + u.y
663
663
  };
664
664
  }
665
- function Ft(s) {
665
+ function Nt(s) {
666
666
  return Array.from(s.getClientRects());
667
667
  }
668
- function Nt(s) {
669
- const e = V(s), t = me(s), o = s.ownerDocument.body, i = F(e.scrollWidth, e.clientWidth, o.scrollWidth, o.clientWidth), r = F(e.scrollHeight, e.clientHeight, o.scrollHeight, o.clientHeight);
668
+ function Wt(s) {
669
+ const e = z(s), t = me(s), o = s.ownerDocument.body, i = F(e.scrollWidth, e.clientWidth, o.scrollWidth, o.clientWidth), r = F(e.scrollHeight, e.clientHeight, o.scrollHeight, o.clientHeight);
670
670
  let n = -t.scrollLeft + pe(s);
671
671
  const a = -t.scrollTop;
672
672
  return A(o).direction === "rtl" && (n += F(e.clientWidth, o.clientWidth) - i), {
@@ -676,9 +676,9 @@ function Nt(s) {
676
676
  y: a
677
677
  };
678
678
  }
679
- const $e = 25;
680
- function Wt(s, e) {
681
- const t = T(s), o = V(s), i = t.visualViewport;
679
+ const He = 25;
680
+ function jt(s, e) {
681
+ const t = T(s), o = z(s), i = t.visualViewport;
682
682
  let r = o.clientWidth, n = o.clientHeight, a = 0, l = 0;
683
683
  if (i) {
684
684
  r = i.width, n = i.height;
@@ -688,8 +688,8 @@ function Wt(s, e) {
688
688
  const c = pe(o);
689
689
  if (c <= 0) {
690
690
  const h = o.ownerDocument, p = h.body, u = getComputedStyle(p), m = h.compatMode === "CSS1Compat" && parseFloat(u.marginLeft) + parseFloat(u.marginRight) || 0, g = Math.abs(o.clientWidth - p.clientWidth - m);
691
- g <= $e && (r -= g);
692
- } else c <= $e && (r += c);
691
+ g <= He && (r -= g);
692
+ } else c <= He && (r += c);
693
693
  return {
694
694
  width: r,
695
695
  height: n,
@@ -697,8 +697,8 @@ function Wt(s, e) {
697
697
  y: l
698
698
  };
699
699
  }
700
- const jt = /* @__PURE__ */ new Set(["absolute", "fixed"]);
701
- function Gt(s, e) {
700
+ const Gt = /* @__PURE__ */ new Set(["absolute", "fixed"]);
701
+ function Ut(s, e) {
702
702
  const t = W(s, !0, e === "fixed"), o = t.top + s.clientTop, i = t.left + s.clientLeft, r = E(s) ? U(s) : M(1), n = s.clientWidth * r.x, a = s.clientHeight * r.y, l = i * r.x, c = o * r.y;
703
703
  return {
704
704
  width: n,
@@ -707,14 +707,14 @@ function Gt(s, e) {
707
707
  y: c
708
708
  };
709
709
  }
710
- function He(s, e, t) {
710
+ function Re(s, e, t) {
711
711
  let o;
712
712
  if (e === "viewport")
713
- o = Wt(s, t);
713
+ o = jt(s, t);
714
714
  else if (e === "document")
715
- o = Nt(V(s));
715
+ o = Wt(z(s));
716
716
  else if (L(e))
717
- o = Gt(e, t);
717
+ o = Ut(e, t);
718
718
  else {
719
719
  const i = Qe(s);
720
720
  o = {
@@ -726,34 +726,34 @@ function He(s, e, t) {
726
726
  }
727
727
  return ae(o);
728
728
  }
729
- function et(s, e) {
729
+ function tt(s, e) {
730
730
  const t = D(s);
731
- return t === e || !L(t) || K(t) ? !1 : A(t).position === "fixed" || et(t, e);
731
+ return t === e || !L(t) || K(t) ? !1 : A(t).position === "fixed" || tt(t, e);
732
732
  }
733
- function Ut(s, e) {
733
+ function Kt(s, e) {
734
734
  const t = e.get(s);
735
735
  if (t)
736
736
  return t;
737
- let o = Q(s, [], !1).filter((a) => L(a) && q(a) !== "body"), i = null;
737
+ let o = Z(s, [], !1).filter((a) => L(a) && q(a) !== "body"), i = null;
738
738
  const r = A(s).position === "fixed";
739
739
  let n = r ? D(s) : s;
740
740
  for (; L(n) && !K(n); ) {
741
741
  const a = A(n), l = Te(n);
742
- !l && a.position === "fixed" && (i = null), (r ? !l && !i : !l && a.position === "static" && !!i && jt.has(i.position) || ee(n) && !l && et(s, n)) ? o = o.filter((h) => h !== n) : i = a, n = D(n);
742
+ !l && a.position === "fixed" && (i = null), (r ? !l && !i : !l && a.position === "static" && !!i && Gt.has(i.position) || ee(n) && !l && tt(s, n)) ? o = o.filter((h) => h !== n) : i = a, n = D(n);
743
743
  }
744
744
  return e.set(s, o), o;
745
745
  }
746
- function Kt(s) {
746
+ function qt(s) {
747
747
  let {
748
748
  element: e,
749
749
  boundary: t,
750
750
  rootBoundary: o,
751
751
  strategy: i
752
752
  } = s;
753
- const n = [...t === "clippingAncestors" ? he(e) ? [] : Ut(e, this._c) : [].concat(t), o], a = n[0], l = n.reduce((c, h) => {
754
- const p = He(e, h, i);
753
+ const n = [...t === "clippingAncestors" ? he(e) ? [] : Kt(e, this._c) : [].concat(t), o], a = n[0], l = n.reduce((c, h) => {
754
+ const p = Re(e, h, i);
755
755
  return c.top = F(p.top, c.top), c.right = ie(p.right, c.right), c.bottom = ie(p.bottom, c.bottom), c.left = F(p.left, c.left), c;
756
- }, He(e, a, i));
756
+ }, Re(e, a, i));
757
757
  return {
758
758
  width: l.right - l.left,
759
759
  height: l.bottom - l.top,
@@ -761,18 +761,18 @@ function Kt(s) {
761
761
  y: l.top
762
762
  };
763
763
  }
764
- function qt(s) {
764
+ function Yt(s) {
765
765
  const {
766
766
  width: e,
767
767
  height: t
768
- } = Xe(s);
768
+ } = Ze(s);
769
769
  return {
770
770
  width: e,
771
771
  height: t
772
772
  };
773
773
  }
774
- function Yt(s, e, t) {
775
- const o = E(e), i = V(e), r = t === "fixed", n = W(s, !0, r, e);
774
+ function Jt(s, e, t) {
775
+ const o = E(e), i = z(e), r = t === "fixed", n = W(s, !0, r, e);
776
776
  let a = {
777
777
  scrollLeft: 0,
778
778
  scrollTop: 0
@@ -787,7 +787,7 @@ function Yt(s, e, t) {
787
787
  l.x = m.x + e.clientLeft, l.y = m.y + e.clientTop;
788
788
  } else i && c();
789
789
  r && !o && i && c();
790
- const h = i && !o && !r ? Ze(i, a) : M(0), p = n.left + a.scrollLeft - l.x - h.x, u = n.top + a.scrollTop - l.y - h.y;
790
+ const h = i && !o && !r ? et(i, a) : M(0), p = n.left + a.scrollLeft - l.x - h.x, u = n.top + a.scrollTop - l.y - h.y;
791
791
  return {
792
792
  x: p,
793
793
  y: u,
@@ -798,15 +798,15 @@ function Yt(s, e, t) {
798
798
  function be(s) {
799
799
  return A(s).position === "static";
800
800
  }
801
- function Re(s, e) {
801
+ function Fe(s, e) {
802
802
  if (!E(s) || A(s).position === "fixed")
803
803
  return null;
804
804
  if (e)
805
805
  return e(s);
806
806
  let t = s.offsetParent;
807
- return V(s) === t && (t = t.ownerDocument.body), t;
807
+ return z(s) === t && (t = t.ownerDocument.body), t;
808
808
  }
809
- function tt(s, e) {
809
+ function st(s, e) {
810
810
  const t = T(s);
811
811
  if (he(s))
812
812
  return t;
@@ -819,15 +819,15 @@ function tt(s, e) {
819
819
  }
820
820
  return t;
821
821
  }
822
- let o = Re(s, e);
823
- for (; o && Pt(o) && be(o); )
824
- o = Re(o, e);
825
- return o && K(o) && be(o) && !Te(o) ? t : o || Bt(s) || t;
822
+ let o = Fe(s, e);
823
+ for (; o && Mt(o) && be(o); )
824
+ o = Fe(o, e);
825
+ return o && K(o) && be(o) && !Te(o) ? t : o || Dt(s) || t;
826
826
  }
827
- const Jt = async function(s) {
828
- const e = this.getOffsetParent || tt, t = this.getDimensions, o = await t(s.floating);
827
+ const Xt = async function(s) {
828
+ const e = this.getOffsetParent || st, t = this.getDimensions, o = await t(s.floating);
829
829
  return {
830
- reference: Yt(s.reference, await e(s.floating), s.strategy),
830
+ reference: Jt(s.reference, await e(s.floating), s.strategy),
831
831
  floating: {
832
832
  x: 0,
833
833
  y: 0,
@@ -836,27 +836,27 @@ const Jt = async function(s) {
836
836
  }
837
837
  };
838
838
  };
839
- function Xt(s) {
839
+ function Zt(s) {
840
840
  return A(s).direction === "rtl";
841
841
  }
842
- const Qt = {
843
- convertOffsetParentRelativeRectToViewportRelativeRect: Rt,
844
- getDocumentElement: V,
845
- getClippingRect: Kt,
846
- getOffsetParent: tt,
847
- getElementRects: Jt,
848
- getClientRects: Ft,
849
- getDimensions: qt,
842
+ const ot = {
843
+ convertOffsetParentRelativeRectToViewportRelativeRect: Ft,
844
+ getDocumentElement: z,
845
+ getClippingRect: qt,
846
+ getOffsetParent: st,
847
+ getElementRects: Xt,
848
+ getClientRects: Nt,
849
+ getDimensions: Yt,
850
850
  getScale: U,
851
851
  isElement: L,
852
- isRTL: Xt
852
+ isRTL: Zt
853
853
  };
854
- function st(s, e) {
854
+ function it(s, e) {
855
855
  return s.x === e.x && s.y === e.y && s.width === e.width && s.height === e.height;
856
856
  }
857
- function Zt(s, e) {
857
+ function Qt(s, e) {
858
858
  let t = null, o;
859
- const i = V(s);
859
+ const i = z(s);
860
860
  function r() {
861
861
  var a;
862
862
  clearTimeout(o), (a = t) == null || a.disconnect(), t = null;
@@ -871,36 +871,36 @@ function Zt(s, e) {
871
871
  } = c;
872
872
  if (a || e(), !u || !m)
873
873
  return;
874
- const g = se(p), b = se(i.clientWidth - (h + u)), f = se(i.clientHeight - (p + m)), v = se(h), y = {
874
+ const g = se(p), b = se(i.clientWidth - (h + u)), f = se(i.clientHeight - (p + m)), v = se(h), _ = {
875
875
  rootMargin: -g + "px " + -b + "px " + -f + "px " + -v + "px",
876
876
  threshold: F(0, ie(1, l)) || 1
877
877
  };
878
- let x = !0;
879
- function k(Y) {
878
+ let C = !0;
879
+ function y(Y) {
880
880
  const j = Y[0].intersectionRatio;
881
881
  if (j !== l) {
882
- if (!x)
882
+ if (!C)
883
883
  return n();
884
884
  j ? n(!1, j) : o = setTimeout(() => {
885
885
  n(!1, 1e-7);
886
886
  }, 1e3);
887
887
  }
888
- j === 1 && !st(c, s.getBoundingClientRect()) && n(), x = !1;
888
+ j === 1 && !it(c, s.getBoundingClientRect()) && n(), C = !1;
889
889
  }
890
890
  try {
891
- t = new IntersectionObserver(k, {
892
- ...y,
891
+ t = new IntersectionObserver(y, {
892
+ ..._,
893
893
  // Handle <iframe>s
894
894
  root: i.ownerDocument
895
895
  });
896
896
  } catch {
897
- t = new IntersectionObserver(k, y);
897
+ t = new IntersectionObserver(y, _);
898
898
  }
899
899
  t.observe(s);
900
900
  }
901
901
  return n(!0), r;
902
902
  }
903
- function _e(s, e, t, o) {
903
+ function we(s, e, t, o) {
904
904
  o === void 0 && (o = {});
905
905
  const {
906
906
  ancestorScroll: i = !0,
@@ -908,56 +908,56 @@ function _e(s, e, t, o) {
908
908
  elementResize: n = typeof ResizeObserver == "function",
909
909
  layoutShift: a = typeof IntersectionObserver == "function",
910
910
  animationFrame: l = !1
911
- } = o, c = Oe(s), h = i || r ? [...c ? Q(c) : [], ...Q(e)] : [];
911
+ } = o, c = Oe(s), h = i || r ? [...c ? Z(c) : [], ...Z(e)] : [];
912
912
  h.forEach((v) => {
913
913
  i && v.addEventListener("scroll", t, {
914
914
  passive: !0
915
915
  }), r && v.addEventListener("resize", t);
916
916
  });
917
- const p = c && a ? Zt(c, t) : null;
917
+ const p = c && a ? Qt(c, t) : null;
918
918
  let u = -1, m = null;
919
919
  n && (m = new ResizeObserver((v) => {
920
- let [w] = v;
921
- w && w.target === c && m && (m.unobserve(e), cancelAnimationFrame(u), u = requestAnimationFrame(() => {
922
- var y;
923
- (y = m) == null || y.observe(e);
920
+ let [k] = v;
921
+ k && k.target === c && m && (m.unobserve(e), cancelAnimationFrame(u), u = requestAnimationFrame(() => {
922
+ var _;
923
+ (_ = m) == null || _.observe(e);
924
924
  })), t();
925
925
  }), c && !l && m.observe(c), m.observe(e));
926
926
  let g, b = l ? W(s) : null;
927
927
  l && f();
928
928
  function f() {
929
929
  const v = W(s);
930
- b && !st(b, v) && t(), b = v, g = requestAnimationFrame(f);
930
+ b && !it(b, v) && t(), b = v, g = requestAnimationFrame(f);
931
931
  }
932
932
  return t(), () => {
933
933
  var v;
934
- h.forEach((w) => {
935
- i && w.removeEventListener("scroll", t), r && w.removeEventListener("resize", t);
934
+ h.forEach((k) => {
935
+ i && k.removeEventListener("scroll", t), r && k.removeEventListener("resize", t);
936
936
  }), p == null || p(), (v = m) == null || v.disconnect(), m = null, l && cancelAnimationFrame(g);
937
937
  };
938
938
  }
939
- const we = It, ye = Ot, ot = Ct, ke = (s, e, t) => {
939
+ const ke = Ot, _e = Lt, rt = St, ye = (s, e, t) => {
940
940
  const o = /* @__PURE__ */ new Map(), i = {
941
- platform: Qt,
941
+ platform: ot,
942
942
  ...t
943
943
  }, r = {
944
944
  ...i.platform,
945
945
  _c: o
946
946
  };
947
- return xt(s, e, {
947
+ return Ct(s, e, {
948
948
  ...i,
949
949
  platform: r
950
950
  });
951
951
  };
952
- var it = function() {
952
+ var nt = function() {
953
953
  }, O = "undefined", es = typeof window !== O && typeof window.navigator !== O && /Trident\/|MSIE /.test(window.navigator.userAgent), xe = [
954
954
  "trace",
955
955
  "debug",
956
956
  "info",
957
957
  "warn",
958
958
  "error"
959
- ], Z = {}, _ = null;
960
- function Fe(s, e) {
959
+ ], Q = {}, w = null;
960
+ function Ne(s, e) {
961
961
  var t = s[e];
962
962
  if (typeof t.bind == "function")
963
963
  return t.bind(s);
@@ -973,12 +973,12 @@ function ts() {
973
973
  console.log && (console.log.apply ? console.log.apply(console, arguments) : Function.prototype.apply.apply(console.log, [console, arguments])), console.trace && console.trace();
974
974
  }
975
975
  function ss(s) {
976
- return s === "debug" && (s = "log"), typeof console === O ? !1 : s === "trace" && es ? ts : console[s] !== void 0 ? Fe(console, s) : console.log !== void 0 ? Fe(console, "log") : it;
976
+ return s === "debug" && (s = "log"), typeof console === O ? !1 : s === "trace" && es ? ts : console[s] !== void 0 ? Ne(console, s) : console.log !== void 0 ? Ne(console, "log") : nt;
977
977
  }
978
978
  function X() {
979
979
  for (var s = this.getLevel(), e = 0; e < xe.length; e++) {
980
980
  var t = xe[e];
981
- this[t] = e < s ? it : this.methodFactory(t, s, this.name);
981
+ this[t] = e < s ? nt : this.methodFactory(t, s, this.name);
982
982
  }
983
983
  if (this.log = this.debug, typeof console === O && s < this.levels.SILENT)
984
984
  return "No console available for logging";
@@ -991,7 +991,7 @@ function os(s) {
991
991
  function is(s, e, t) {
992
992
  return ss(s) || os.apply(this, arguments);
993
993
  }
994
- function rt(s, e) {
994
+ function at(s, e) {
995
995
  var t = this, o, i, r, n = "loglevel";
996
996
  typeof s == "string" ? n += ":" + s : typeof s == "symbol" && (n = void 0);
997
997
  function a(u) {
@@ -1064,33 +1064,33 @@ function rt(s, e) {
1064
1064
  }, t.disableAll = function(u) {
1065
1065
  t.setLevel(t.levels.SILENT, u);
1066
1066
  }, t.rebuild = function() {
1067
- if (_ !== t && (o = h(_.getLevel())), X.call(t), _ === t)
1068
- for (var u in Z)
1069
- Z[u].rebuild();
1067
+ if (w !== t && (o = h(w.getLevel())), X.call(t), w === t)
1068
+ for (var u in Q)
1069
+ Q[u].rebuild();
1070
1070
  }, o = h(
1071
- _ ? _.getLevel() : "WARN"
1071
+ w ? w.getLevel() : "WARN"
1072
1072
  );
1073
1073
  var p = l();
1074
1074
  p != null && (r = h(p)), X.call(t);
1075
1075
  }
1076
- _ = new rt();
1077
- _.getLogger = function(e) {
1076
+ w = new at();
1077
+ w.getLogger = function(e) {
1078
1078
  if (typeof e != "symbol" && typeof e != "string" || e === "")
1079
1079
  throw new TypeError("You must supply a name when creating a logger.");
1080
- var t = Z[e];
1081
- return t || (t = Z[e] = new rt(
1080
+ var t = Q[e];
1081
+ return t || (t = Q[e] = new at(
1082
1082
  e,
1083
- _.methodFactory
1083
+ w.methodFactory
1084
1084
  )), t;
1085
1085
  };
1086
1086
  var rs = typeof window !== O ? window.log : void 0;
1087
- _.noConflict = function() {
1088
- return typeof window !== O && window.log === _ && (window.log = rs), _;
1087
+ w.noConflict = function() {
1088
+ return typeof window !== O && window.log === w && (window.log = rs), w;
1089
1089
  };
1090
- _.getLoggers = function() {
1091
- return Z;
1090
+ w.getLoggers = function() {
1091
+ return Q;
1092
1092
  };
1093
- _.default = _;
1093
+ w.default = w;
1094
1094
  var ns = function(s) {
1095
1095
  for (var e = 1, t = arguments.length, o; e < t; e++)
1096
1096
  for (o in arguments[e])
@@ -1108,10 +1108,10 @@ var ns = function(s) {
1108
1108
  return s.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
1109
1109
  },
1110
1110
  format: void 0
1111
- }, nt, R = {}, ls = function(s) {
1111
+ }, lt, R = {}, ls = function(s) {
1112
1112
  if (!s || !s.getLogger)
1113
1113
  throw new TypeError("Argument is not a root logger");
1114
- nt = s;
1114
+ lt = s;
1115
1115
  }, cs = function(s, e) {
1116
1116
  if (!s || !s.setLevel)
1117
1117
  throw new TypeError("Argument is not a logger");
@@ -1122,13 +1122,13 @@ var ns = function(s) {
1122
1122
  for (var g = "", b = arguments.length, f = Array(b), v = 0; v < b; v++)
1123
1123
  f[v] = arguments[v];
1124
1124
  if (o || !R[l]) {
1125
- var w = h.timestampFormatter(/* @__PURE__ */ new Date()), y = h.levelFormatter(n), x = h.nameFormatter(l);
1126
- h.format ? g += h.format(y, x, w) : (g += h.template, p && (g = g.replace(/%t/, w)), u && (g = g.replace(/%l/, y)), m && (g = g.replace(/%n/, x))), f.length && typeof f[0] == "string" ? f[0] = g + " " + f[0] : f.unshift(g);
1125
+ var k = h.timestampFormatter(/* @__PURE__ */ new Date()), _ = h.levelFormatter(n), C = h.nameFormatter(l);
1126
+ h.format ? g += h.format(_, C, k) : (g += h.template, p && (g = g.replace(/%t/, k)), u && (g = g.replace(/%l/, _)), m && (g = g.replace(/%n/, C))), f.length && typeof f[0] == "string" ? f[0] = g + " " + f[0] : f.unshift(g);
1127
1127
  }
1128
1128
  c.apply(void 0, f);
1129
1129
  };
1130
1130
  }
1131
- return R[o] || (s.methodFactory = r), e = e || {}, e.template && (e.format = void 0), R[o] = ns({}, i, e), s.setLevel(s.getLevel()), nt || s.warn(
1131
+ return R[o] || (s.methodFactory = r), e = e || {}, e.template && (e.format = void 0), R[o] = ns({}, i, e), s.setLevel(s.getLevel()), lt || s.warn(
1132
1132
  "It is necessary to call the function reg() of loglevel-plugin-prefix before calling apply. From the next release, it will throw an error. See more: https://github.com/kutuluk/loglevel-plugin-prefix/blob/master/README.md"
1133
1133
  ), s;
1134
1134
  }, ds = {
@@ -1145,39 +1145,39 @@ const hs = {
1145
1145
  error: "#ef4444"
1146
1146
  // Red
1147
1147
  };
1148
- ds.reg(_);
1149
- const ms = (s) => s.toTimeString().split(" ")[0] + "." + s.getMilliseconds().toString().padStart(3, "0"), ps = _.methodFactory;
1150
- _.methodFactory = function(s, e, t) {
1148
+ ds.reg(w);
1149
+ const ms = (s) => s.toTimeString().split(" ")[0] + "." + s.getMilliseconds().toString().padStart(3, "0"), ps = w.methodFactory;
1150
+ w.methodFactory = function(s, e, t) {
1151
1151
  const o = ps(s, e, t), r = `color: ${hs[s] || "#666"}; font-weight: bold;`, n = "color: inherit;";
1152
1152
  return function(...a) {
1153
1153
  const l = ms(/* @__PURE__ */ new Date()), c = s.toUpperCase(), h = t ? `%c[${l}]%c %c[${c}]%c %c[${t}]%c` : `%c[${l}]%c %c[${c}]%c`;
1154
1154
  o(h, ...t ? [r, n, r, n, r, n] : [r, n, r, n], ...a);
1155
1155
  };
1156
1156
  };
1157
- typeof _.setDefaultLevel == "function" ? _.setDefaultLevel("silent") : _.setLevel("silent", !1);
1158
- const oe = _.getLogger("MULTISELECT:INIT"), C = _.getLogger("MULTISELECT:DATA"), P = _.getLogger("MULTISELECT:UI"), S = _.getLogger("MULTISELECT:INTERACTION"), us = [
1157
+ typeof w.setDefaultLevel == "function" ? w.setDefaultLevel("silent") : w.setLevel("silent", !1);
1158
+ const oe = w.getLogger("MULTISELECT:INIT"), x = w.getLogger("MULTISELECT:DATA"), P = w.getLogger("MULTISELECT:UI"), S = w.getLogger("MULTISELECT:INTERACTION"), us = [
1159
1159
  "MULTISELECT:INIT",
1160
1160
  "MULTISELECT:DATA",
1161
1161
  "MULTISELECT:UI",
1162
1162
  "MULTISELECT:INTERACTION"
1163
1163
  ];
1164
1164
  function Le() {
1165
- typeof _.rebuild == "function" && _.rebuild();
1165
+ typeof w.rebuild == "function" && w.rebuild();
1166
1166
  }
1167
1167
  function gs() {
1168
- _.setLevel("debug"), Le();
1168
+ w.setLevel("debug"), Le();
1169
1169
  }
1170
1170
  function bs() {
1171
- _.setLevel("silent"), Le();
1171
+ w.setLevel("silent"), Le();
1172
1172
  }
1173
1173
  function fs(s) {
1174
- _.setLevel(s), Le();
1174
+ w.setLevel(s), Le();
1175
1175
  }
1176
1176
  function vs(s, e) {
1177
1177
  const t = s.includes(":") ? s : `MULTISELECT:${s}`;
1178
- _.getLogger(t).setLevel(e);
1178
+ w.getLogger(t).setLevel(e);
1179
1179
  }
1180
- class Ne {
1180
+ class We {
1181
1181
  constructor(e) {
1182
1182
  d(this, "container");
1183
1183
  d(this, "wrapper");
@@ -1299,7 +1299,7 @@ class Ne {
1299
1299
  this.container.removeEventListener("scroll", this.scrollHandler), this.resizeObserver && this.resizeObserver.disconnect(), this.container.innerHTML = "";
1300
1300
  }
1301
1301
  }
1302
- class _s {
1302
+ class ws {
1303
1303
  constructor(e) {
1304
1304
  d(this, "element");
1305
1305
  d(this, "trigger");
@@ -1329,14 +1329,14 @@ class _s {
1329
1329
  }
1330
1330
  show() {
1331
1331
  var e;
1332
- (e = this.onBeforeShow) == null || e.call(this), this.element.classList.add(this.visibleClass), this.positionCleanup && this.positionCleanup(), this.positionCleanup = _e(this.trigger, this.element, () => {
1333
- ke(this.trigger, this.element, {
1332
+ (e = this.onBeforeShow) == null || e.call(this), this.element.classList.add(this.visibleClass), this.positionCleanup && this.positionCleanup(), this.positionCleanup = we(this.trigger, this.element, () => {
1333
+ ye(this.trigger, this.element, {
1334
1334
  placement: this.placement,
1335
1335
  strategy: "fixed",
1336
1336
  middleware: [
1337
- we(this.offsetDistance),
1338
- ot(),
1339
- ye({ padding: 8 })
1337
+ ke(this.offsetDistance),
1338
+ rt(),
1339
+ _e({ padding: 8 })
1340
1340
  ]
1341
1341
  }).then(({ x: t, y: o }) => {
1342
1342
  Object.assign(this.element.style, {
@@ -1357,7 +1357,39 @@ class _s {
1357
1357
  this.showTimer !== null && clearTimeout(this.showTimer), this.hideTimer !== null && clearTimeout(this.hideTimer), this.showTimer = null, this.hideTimer = null, this.positionCleanup && (this.positionCleanup(), this.positionCleanup = null), this.trigger.removeEventListener("mouseenter", this.handleMouseEnter), this.trigger.removeEventListener("mouseleave", this.handleMouseLeave), this.element.remove();
1358
1358
  }
1359
1359
  }
1360
- class ws {
1360
+ function ks(s) {
1361
+ let e = s;
1362
+ for (; e && !(e === document.body || e === document.documentElement); ) {
1363
+ if (e instanceof Element) {
1364
+ const o = getComputedStyle(e);
1365
+ if (o.transform !== "none" || o.perspective !== "none" || o.filter !== "none") return e;
1366
+ const i = o.backdropFilter;
1367
+ if (i && i !== "none" || o.willChange && /\b(transform|filter|perspective)\b/.test(o.willChange)) return e;
1368
+ }
1369
+ const t = e.parentNode;
1370
+ e = t instanceof ShadowRoot ? t.host : t;
1371
+ }
1372
+ return window;
1373
+ }
1374
+ function _s(s, e, t) {
1375
+ let o = s;
1376
+ for (; o && !(o === document.body || o === document.documentElement); ) {
1377
+ if (o instanceof Element) {
1378
+ const r = o.getBoundingClientRect();
1379
+ if (Math.abs(r.x - e) < 2 && Math.abs(r.y - t) < 2) return o;
1380
+ }
1381
+ const i = o.parentNode;
1382
+ o = i instanceof ShadowRoot ? i.host : i;
1383
+ }
1384
+ return null;
1385
+ }
1386
+ function ys(s) {
1387
+ const e = getComputedStyle(s), t = [];
1388
+ e.transform !== "none" && t.push(`transform: ${e.transform}`), e.perspective !== "none" && t.push(`perspective: ${e.perspective}`), e.filter !== "none" && t.push(`filter: ${e.filter}`);
1389
+ const o = e.backdropFilter;
1390
+ return o && o !== "none" && t.push(`backdrop-filter: ${o}`), e.willChange && /\b(transform|filter|perspective)\b/.test(e.willChange) && t.push(`will-change: ${e.willChange}`), e.contain && /\b(paint|layout|strict|content)\b/.test(e.contain) && t.push(`contain: ${e.contain}`), e.containerType && e.containerType !== "normal" && t.push(`container-type: ${e.containerType}`), t.join("; ");
1391
+ }
1392
+ class xs {
1361
1393
  constructor(e, t = {}) {
1362
1394
  d(this, "element");
1363
1395
  d(this, "instanceId");
@@ -1378,6 +1410,7 @@ class ws {
1378
1410
  d(this, "isRTL", !1);
1379
1411
  d(this, "effectiveBadgesPosition", "bottom");
1380
1412
  d(this, "justClosedViaClick", !1);
1413
+ d(this, "positioningDriftWarned", !1);
1381
1414
  // Floating UI cleanup functions
1382
1415
  d(this, "dropdownCleanup", null);
1383
1416
  d(this, "hintCleanup", null);
@@ -1550,7 +1583,7 @@ class ws {
1550
1583
  try {
1551
1584
  this.allOptions = JSON.parse(e);
1552
1585
  } catch (t) {
1553
- C.error(`[${this.instanceId}] Failed to parse data-options:`, t), this.allOptions = [];
1586
+ x.error(`[${this.instanceId}] Failed to parse data-options:`, t), this.allOptions = [];
1554
1587
  }
1555
1588
  else this.options.options && (this.allOptions = this.options.options);
1556
1589
  this.filteredOptions = [...this.allOptions];
@@ -1641,7 +1674,7 @@ class ws {
1641
1674
  }
1642
1675
  const e = this.options.optionHeight ?? 50, t = this.options.virtualScrollBuffer ?? 10;
1643
1676
  requestAnimationFrame(() => {
1644
- this.optionsContainer && (this.virtualScroll ? this.virtualScroll.setItems(this.filteredOptions) : this.virtualScroll = new Ne({
1677
+ this.optionsContainer && (this.virtualScroll ? this.virtualScroll.setItems(this.filteredOptions) : this.virtualScroll = new We({
1645
1678
  container: this.optionsContainer,
1646
1679
  itemHeight: e,
1647
1680
  items: this.filteredOptions,
@@ -1793,25 +1826,25 @@ class ws {
1793
1826
  if (this.options.beforeSearchCallback) {
1794
1827
  const o = this.options.beforeSearchCallback(e);
1795
1828
  if (o === null) {
1796
- C.debug(`[${this.instanceId}] beforeSearchCallback blocked search for term:`, e), this.filteredOptions = [...this.allOptions], this.matchingIndices.clear(), this.renderDropdown();
1829
+ x.debug(`[${this.instanceId}] beforeSearchCallback blocked search for term:`, e), this.filteredOptions = [...this.allOptions], this.matchingIndices.clear(), this.renderDropdown();
1797
1830
  return;
1798
1831
  }
1799
- t = o, t !== e && C.debug(`[${this.instanceId}] beforeSearchCallback transformed: "${e}" -> "${t}"`);
1832
+ t = o, t !== e && x.debug(`[${this.instanceId}] beforeSearchCallback transformed: "${e}" -> "${t}"`);
1800
1833
  }
1801
1834
  if (this.options.searchCallback) {
1802
1835
  if (t.length < this.options.minSearchLength) {
1803
- this.isLoading = !1, this.options.isKeepOptionsOnSearch ? (this.filteredOptions = [...this.allOptions], C.debug(`[${this.instanceId}] Search term below minimum, showing ${this.allOptions.length} initial options`)) : this.filteredOptions = [], this.matchingIndices.clear(), this.renderDropdown();
1836
+ this.isLoading = !1, this.options.isKeepOptionsOnSearch ? (this.filteredOptions = [...this.allOptions], x.debug(`[${this.instanceId}] Search term below minimum, showing ${this.allOptions.length} initial options`)) : this.filteredOptions = [], this.matchingIndices.clear(), this.renderDropdown();
1804
1837
  return;
1805
1838
  }
1806
- this.isLoading = !0, this.renderDropdown(), C.debug(`[${this.instanceId}] Loading data for search term:`, t);
1839
+ this.isLoading = !0, this.renderDropdown(), x.debug(`[${this.instanceId}] Loading data for search term:`, t);
1807
1840
  try {
1808
1841
  const o = await this.options.searchCallback(t);
1809
1842
  if (this.searchTerm === e) {
1810
1843
  const i = o || [];
1811
- this.filteredOptions = [...i], this.isLoading = !1, this.matchingIndices.clear(), this.focusedIndex = this.options.isSearchEnabled && this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown(), C.debug(`[${this.instanceId}] Loaded ${i.length} results`);
1844
+ this.filteredOptions = [...i], this.isLoading = !1, this.matchingIndices.clear(), this.focusedIndex = this.options.isSearchEnabled && this.filteredOptions.length > 0 ? 0 : -1, this.renderDropdown(), x.debug(`[${this.instanceId}] Loaded ${i.length} results`);
1812
1845
  }
1813
1846
  } catch (o) {
1814
- C.error(`[${this.instanceId}] Error loading data:`, o), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? this.filteredOptions = [...this.allOptions] : this.filteredOptions = [], this.matchingIndices.clear(), this.renderDropdown();
1847
+ x.error(`[${this.instanceId}] Error loading data:`, o), this.isLoading = !1, this.options.isKeepOptionsOnSearch ? this.filteredOptions = [...this.allOptions] : this.filteredOptions = [], this.matchingIndices.clear(), this.renderDropdown();
1815
1848
  }
1816
1849
  } else {
1817
1850
  if (!t)
@@ -1819,13 +1852,13 @@ class ws {
1819
1852
  else {
1820
1853
  const o = this.options.searchMode || "filter", i = t.toLowerCase();
1821
1854
  if (o === "filter")
1822
- this.filteredOptions = this.allOptions.filter((r) => this.getItemSearchValue(r).toLowerCase().includes(i)), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, C.debug(`[${this.instanceId}] Filter mode: ${this.filteredOptions.length} matches for "${t}"`);
1855
+ this.filteredOptions = this.allOptions.filter((r) => this.getItemSearchValue(r).toLowerCase().includes(i)), this.matchingIndices.clear(), this.focusedIndex = this.filteredOptions.length > 0 ? 0 : -1, x.debug(`[${this.instanceId}] Filter mode: ${this.filteredOptions.length} matches for "${t}"`);
1823
1856
  else {
1824
1857
  this.filteredOptions = [...this.allOptions], this.matchingIndices.clear();
1825
1858
  let r = -1;
1826
1859
  this.allOptions.forEach((n, a) => {
1827
1860
  this.getItemSearchValue(n).toLowerCase().includes(i) && (this.matchingIndices.add(a), r === -1 && (r = a));
1828
- }), r >= 0 ? (this.focusedIndex = r, C.debug(`[${this.instanceId}] Navigate mode: ${this.matchingIndices.size} matches, jumped to index ${r}`)) : C.debug(`[${this.instanceId}] Navigate mode: No matches found, keeping previous focus`);
1861
+ }), r >= 0 ? (this.focusedIndex = r, x.debug(`[${this.instanceId}] Navigate mode: ${this.matchingIndices.size} matches, jumped to index ${r}`)) : x.debug(`[${this.instanceId}] Navigate mode: No matches found, keeping previous focus`);
1829
1862
  }
1830
1863
  }
1831
1864
  this.renderDropdown(), this.options.searchMode === "navigate" && this.focusedIndex >= 0 && this.scrollToFocused();
@@ -1893,12 +1926,13 @@ class ws {
1893
1926
  const o = e.target.closest(".ms__option");
1894
1927
  if (o && !o.classList.contains("ms__option--disabled")) {
1895
1928
  e.preventDefault();
1896
- const r = o.dataset.value, n = this.filteredOptions.find((a) => String(this.getItemValue(a)) === r);
1929
+ const r = o.dataset.value, n = this.filteredOptions.findIndex((a) => String(this.getItemValue(a)) === r);
1897
1930
  S.debug(`[${this.instanceId}] Option clicked:`, {
1898
1931
  value: r,
1932
+ optionIndex: n,
1899
1933
  closeOnSelect: this.options.isCloseOnSelect,
1900
1934
  placeholder: this.options.searchPlaceholder
1901
- }), n && this.toggleOption(n);
1935
+ }), n >= 0 && (this.focusedIndex = n, this.toggleOption(this.filteredOptions[n]), this.isOpen && this.input.focus());
1902
1936
  }
1903
1937
  }
1904
1938
  handleBadgeClick(e) {
@@ -1998,6 +2032,10 @@ class ws {
1998
2032
  }
1999
2033
  }
2000
2034
  toggleOption(e) {
2035
+ if (this.getItemDisabled(e)) {
2036
+ S.debug(`[${this.instanceId}] toggleOption ignored — option is disabled`);
2037
+ return;
2038
+ }
2001
2039
  const t = this.getItemValue(e), o = String(t);
2002
2040
  if (S.debug(`[${this.instanceId}] toggleOption called`, { value: t, multiple: this.options.isMultipleEnabled }), !this.options.isMultipleEnabled) {
2003
2041
  this.selectedValues.has(o) ? (S.debug(`[${this.instanceId}] Deselecting option in single-select mode`, { value: t }), this.deselectOption(e)) : (S.debug(`[${this.instanceId}] Clearing previous selections and selecting new option`, { value: t }), this.selectedValues.clear(), this.selectedOptions.clear(), this.selectOption(e)), this.close();
@@ -2008,11 +2046,11 @@ class ws {
2008
2046
  async handleAddNew(e) {
2009
2047
  if (this.options.addNewCallback)
2010
2048
  try {
2011
- C.debug(`[${this.instanceId}] Adding new option:`, e);
2049
+ x.debug(`[${this.instanceId}] Adding new option:`, e);
2012
2050
  const t = await this.options.addNewCallback(e);
2013
2051
  this.allOptions.push(t), this.filteredOptions.push(t), this.selectOption(t), this.input.value = "", this.renderDropdown(), this.renderBadges(), this.options.isCloseOnSelect && this.close();
2014
2052
  } catch (t) {
2015
- C.error(`[${this.instanceId}] Error adding new option:`, t);
2053
+ x.error(`[${this.instanceId}] Error adding new option:`, t);
2016
2054
  }
2017
2055
  }
2018
2056
  selectOption(e) {
@@ -2059,25 +2097,49 @@ class ws {
2059
2097
  * compute then lock the resulting placement, optionally clamp by dropdownMin/MaxWidth.
2060
2098
  */
2061
2099
  anchorFloatingPanel(e, t) {
2062
- return _e(this.input, e, () => {
2063
- var a;
2064
- const o = ((a = t.isLocked) == null ? void 0 : a.call(t)) ?? !0, i = t.getPlacement(), r = o && i ? i : "bottom-start", n = [
2065
- we(4),
2066
- ...o && i ? [] : [ot()],
2067
- ye({ padding: 8 })
2100
+ const o = {
2101
+ ...ot,
2102
+ getOffsetParent: () => ks(this.input)
2103
+ };
2104
+ return we(this.input, e, () => {
2105
+ var l;
2106
+ e.style.width = `${this.input.offsetWidth}px`, this.options.dropdownMinWidth && (e.style.minWidth = this.options.dropdownMinWidth), t.applyMaxWidth && this.options.dropdownMaxWidth && (e.style.maxWidth = this.options.dropdownMaxWidth);
2107
+ const i = ((l = t.isLocked) == null ? void 0 : l.call(t)) ?? !0, r = t.getPlacement(), n = i && r ? r : "bottom-start", a = [
2108
+ ke(4),
2109
+ ...i && r ? [] : [rt()],
2110
+ _e({ padding: 8 })
2068
2111
  ];
2069
- ke(this.input, e, { placement: r, middleware: n }).then(({ x: l, y: c, placement: h }) => {
2112
+ ye(this.input, e, { placement: n, strategy: "fixed", middleware: a, platform: o }).then(({ x: c, y: h, placement: p }) => {
2070
2113
  var u;
2071
- i || t.setPlacement(h);
2072
- const p = {
2073
- left: `${l}px`,
2074
- top: `${c}px`,
2075
- width: `${this.input.offsetWidth}px`
2076
- };
2077
- this.options.dropdownMinWidth && (p.minWidth = this.options.dropdownMinWidth), t.applyMaxWidth && this.options.dropdownMaxWidth && (p.maxWidth = this.options.dropdownMaxWidth), Object.assign(e.style, p), (u = t.afterPosition) == null || u.call(t);
2114
+ r || t.setPlacement(p), Object.assign(e.style, {
2115
+ position: "fixed",
2116
+ left: `${c}px`,
2117
+ top: `${h}px`
2118
+ }), this.verifyPanelLanded(e, c, h), (u = t.afterPosition) == null || u.call(t);
2078
2119
  });
2079
2120
  });
2080
2121
  }
2122
+ /**
2123
+ * Sanity-check that the browser placed the panel where we told it to. With `position: fixed`
2124
+ * and no transformed/perspective/filter ancestor, `left: ${x}px` must render at viewport-x = x.
2125
+ * If the rendered position drifts, the consumer has an ancestor that establishes a fixed
2126
+ * containing block but isn't on our reliable-anchors list (likely `contain: paint|layout|strict`
2127
+ * or `container-type` — which the spec says creates a CB but the browser's actual behavior
2128
+ * varies across shadow-DOM scenarios). We can't fix it from inside the library, but we can
2129
+ * surface a clear warning so the developer knows where to look.
2130
+ *
2131
+ * Fires at most once per multiselect instance to avoid flooding the console during autoUpdate.
2132
+ */
2133
+ verifyPanelLanded(e, t, o) {
2134
+ if (this.positioningDriftWarned) return;
2135
+ const i = e.getBoundingClientRect(), r = i.x - t, n = i.y - o;
2136
+ if (Math.abs(r) < 1 && Math.abs(n) < 1) return;
2137
+ this.positioningDriftWarned = !0;
2138
+ const a = _s(this.input, r, n), l = a ? `<${a.tagName.toLowerCase()}${a.id ? "#" + a.id : ""}${typeof a.className == "string" && a.className ? "." + a.className.split(/\s+/).filter(Boolean).slice(0, 2).join(".") : ""}>` : "an ancestor element (could not auto-identify)", c = a ? ys(a) : "";
2139
+ console.warn(
2140
+ `[@keenmate/web-multiselect] Dropdown panel rendered ${r.toFixed(0)}px / ${n.toFixed(0)}px away from where the library positioned it. Most likely culprit: ${l}` + (c ? ` (has ${c})` : "") + ".\nAn ancestor of <web-multiselect> establishes a fixed-positioning containing block that the library's heuristic doesn't recognize. Fix on your side: replace the property with `transform: translateZ(0)` on that ancestor, OR move the trigger out of that ancestor's subtree. If neither is acceptable, please file an issue at https://github.com/keenmate/web-multiselect/issues with the ancestor's computed CSS."
2141
+ );
2142
+ }
2081
2143
  positionDropdown() {
2082
2144
  this.dropdownCleanup = this.anchorFloatingPanel(this.dropdown, {
2083
2145
  getPlacement: () => this.dropdownPlacement,
@@ -2092,20 +2154,22 @@ class ws {
2092
2154
  });
2093
2155
  }
2094
2156
  positionHint() {
2095
- this.hint && (this.hintCleanup && this.hintCleanup(), this.hintCleanup = _e(
2157
+ this.hint && (this.hintCleanup && this.hintCleanup(), this.hintCleanup = we(
2096
2158
  this.input,
2097
2159
  this.hint,
2098
2160
  () => {
2099
2161
  let e = "top-start";
2100
- this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom"))), ke(this.input, this.hint, {
2162
+ this.dropdownPlacement && (this.dropdownPlacement.startsWith("bottom") ? e = this.dropdownPlacement.replace("bottom", "top") : this.dropdownPlacement.startsWith("top") && (e = this.dropdownPlacement.replace("top", "bottom"))), ye(this.input, this.hint, {
2101
2163
  placement: e,
2164
+ strategy: "fixed",
2102
2165
  middleware: [
2103
- we(4),
2166
+ ke(4),
2104
2167
  // Don't use flip() - we want hint to stay opposite of dropdown
2105
- ye({ padding: 8 })
2168
+ _e({ padding: 8 })
2106
2169
  ]
2107
2170
  }).then(({ x: t, y: o }) => {
2108
2171
  Object.assign(this.hint.style, {
2172
+ position: "fixed",
2109
2173
  left: `${t}px`,
2110
2174
  top: `${o}px`
2111
2175
  });
@@ -2118,15 +2182,27 @@ class ws {
2118
2182
  if (e)
2119
2183
  try {
2120
2184
  JSON.parse(e).forEach((o) => {
2121
- const i = String(o);
2122
- this.selectedValues.add(i);
2123
- const r = this.allOptions.find((n) => String(this.getItemValue(n)) === i);
2124
- r && this.selectedOptions.set(i, r);
2125
- }), this.renderBadges();
2185
+ this.selectedValues.add(String(o));
2186
+ }), this.reconcileSelectedOptions(), this.renderBadges();
2126
2187
  } catch (t) {
2127
- C.error(`[${this.instanceId}] Failed to parse initial values:`, t);
2188
+ x.error(`[${this.instanceId}] Failed to parse initial values:`, t);
2128
2189
  }
2129
2190
  }
2191
+ /**
2192
+ * Resolve any `selectedValues` entries that don't yet have a matching
2193
+ * `selectedOptions` object by looking them up in the current `allOptions`.
2194
+ * Idempotent; safe to call after init *and* after `options` is replaced
2195
+ * (e.g., async fetch, `searchCallback` result, or late `element.options =`
2196
+ * assignment). Without this, `initial-values` declared before options
2197
+ * arrive ends up with phantom values that `getValue()` can never report.
2198
+ */
2199
+ reconcileSelectedOptions() {
2200
+ this.selectedValues.size === 0 || this.allOptions.length === 0 || this.selectedValues.forEach((e) => {
2201
+ if (this.selectedOptions.has(e)) return;
2202
+ const t = this.allOptions.find((o) => String(this.getItemValue(o)) === e);
2203
+ t && this.selectedOptions.set(e, t);
2204
+ });
2205
+ }
2130
2206
  toggleSelectedPopover() {
2131
2207
  this.showSelectedPopover ? this.hideSelectedPopover() : this.showPopover();
2132
2208
  }
@@ -2150,7 +2226,7 @@ class ws {
2150
2226
  this.selectedPopover.innerHTML = `
2151
2227
  <div class="ms__selected-popover-header">
2152
2228
  <span>Selected Items (${t})</span>
2153
- <button type="button" class="ms__selected-popover-close" aria-label="Close">&times;</button>
2229
+ <button type="button" class="ms__selected-popover-close" aria-label="Close"></button>
2154
2230
  </div>
2155
2231
  <div class="ms__selected-popover-body">
2156
2232
  ${e.map((i) => this.renderBadgeHTML(i, { displayMode: this.options.badgesDisplayMode || "badges", isInPopover: !0 })).join("")}
@@ -2165,7 +2241,7 @@ class ws {
2165
2241
  const a = this.options.badgeHeight ?? 36, l = `
2166
2242
  <div class="ms__selected-popover-header">
2167
2243
  <span>Selected Items (${t})</span>
2168
- <button type="button" class="ms__selected-popover-close" aria-label="Close">&times;</button>
2244
+ <button type="button" class="ms__selected-popover-close" aria-label="Close"></button>
2169
2245
  </div>
2170
2246
  <div class="ms__selected-popover-body ms__selected-popover-body--virtual" style="height: 18rem; overflow-y: auto; position: relative; --ms-badge-height-virtual: ${a}px;"></div>
2171
2247
  `;
@@ -2174,7 +2250,7 @@ class ws {
2174
2250
  if (!this.selectedPopoverContainer) return;
2175
2251
  const r = (this.options.badgeHeight ?? 36) + 4, n = this.options.virtualScrollBuffer ?? 10;
2176
2252
  requestAnimationFrame(() => {
2177
- this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new Ne({
2253
+ this.selectedPopoverContainer && (this.selectedPopoverVirtualScroll ? this.selectedPopoverVirtualScroll.setItems(e) : this.selectedPopoverVirtualScroll = new We({
2178
2254
  container: this.selectedPopoverContainer,
2179
2255
  itemHeight: r,
2180
2256
  items: e,
@@ -2288,7 +2364,7 @@ class ws {
2288
2364
  updateOptions(e) {
2289
2365
  const t = !!this.hint, o = "searchHint" in e ? !!e.searchHint : t;
2290
2366
  if (t !== o) return !1;
2291
- if (Object.assign(this.options, e), "options" in e && e.options !== void 0 && (this.allOptions = e.options, this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions]), this.element.classList.toggle(
2367
+ if (Object.assign(this.options, e), "options" in e && e.options !== void 0 && (this.allOptions = e.options, this.filteredOptions = this.searchTerm ? this.filteredOptions : [...this.allOptions], this.reconcileSelectedOptions()), this.element.classList.toggle(
2292
2368
  "ms--no-checkboxes",
2293
2369
  !this.options.isCheckboxesShown || !this.options.isMultipleEnabled
2294
2370
  ), "badgesPosition" in e) {
@@ -2328,7 +2404,7 @@ class ws {
2328
2404
  spawnTooltip(e) {
2329
2405
  var o;
2330
2406
  (o = this.tooltips.get(e.id)) == null || o.destroy();
2331
- const t = new _s({
2407
+ const t = new ws({
2332
2408
  trigger: e.trigger,
2333
2409
  container: this.options.container || document.body,
2334
2410
  content: e.content,
@@ -2429,7 +2505,7 @@ ${o}` : t;
2429
2505
  this.destroyAllTooltips(), this.dropdownCleanup && this.dropdownCleanup(), this.hintCleanup && this.hintCleanup(), this.selectedPopoverCleanup && this.selectedPopoverCleanup(), 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"), oe.info(`[${this.instanceId}] Component destroyed`);
2430
2506
  }
2431
2507
  }
2432
- const ys = ':host{--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));display:block;--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, #eff6ff);--ms-accent-color-light-hover: var(--base-accent-color-light-hover, #e0f2fe);--ms-text-color-1: var(--base-text-color-1, #111827);--ms-text-color-2: var(--base-text-color-2, #353b47);--ms-text-color-3: var(--base-text-color-3, #6b7280);--ms-text-color-4: var(--base-text-color-4, #a0a3a9);--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-primary-bg, var(--base-main-bg, #f3f4f6));--ms-primary-bg-hover: var(--base-hover-bg, #e5e7eb);--ms-border-color: var(--base-border-color, #e5e7eb);--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, #ffffff);--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, #ffffff);--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, #ffffff);--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, #ffffff);--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-input-bg));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-input-bg));--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, #333333);--ms-tooltip-text-color: var(--base-tooltip-text-color, #ffffff);--ms-selected-popover-bg: var(--base-dropdown-bg, #ffffff);--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-input-padding-right: calc(4 * var(--ms-rem));--ms-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: rgba(107, 114, 128, .05);--ms-input-size-xs-font: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-input-size-xs-padding-v: calc(.4 * var(--ms-rem));--ms-input-size-xs-padding-h: calc(.8 * var(--ms-rem));--ms-input-size-xs-height: calc(var(--base-input-size-xs-height, 3.1) * var(--ms-rem));--ms-input-size-sm-font: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-size-sm-padding-v: calc(.5 * var(--ms-rem));--ms-input-size-sm-padding-h: calc(1 * var(--ms-rem));--ms-input-size-sm-height: calc(var(--base-input-size-sm-height, 3.3) * var(--ms-rem));--ms-input-size-md-font: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-size-md-padding-v: calc(.8 * var(--ms-rem));--ms-input-size-md-padding-h: calc(1.2 * var(--ms-rem));--ms-input-size-md-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-size-lg-font: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-input-size-lg-padding-v: calc(1 * var(--ms-rem));--ms-input-size-lg-padding-h: calc(1.4 * var(--ms-rem));--ms-input-size-lg-height: calc(var(--base-input-size-lg-height, 3.8) * var(--ms-rem));--ms-input-size-xl-font: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-input-size-xl-padding-v: calc(1.2 * var(--ms-rem));--ms-input-size-xl-padding-h: calc(1.6 * var(--ms-rem));--ms-input-size-xl-height: calc(var(--base-input-size-xl-height, 4.1) * var(--ms-rem));--ms-toggle-right: calc(1.2 * var(--ms-rem));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: calc(3.2 * var(--ms-rem));--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-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-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-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-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: calc(.2 * var(--ms-rem));--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border: var(--ms-border);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: 1px 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-border);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--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));--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-icon-remove: "×";--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: 50%;--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-icon-clear: "×";--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-z-index-popover: 10000;--ms-selected-popover-width: calc(32 * var(--ms-rem));--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: 50%;--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-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}multi-select:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background: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%}.ms__input-wrapper{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;font-family:inherit;height:var(--ms-input-height);padding:var(--ms-input-padding);padding-right:var(--ms-input-padding-right);font-size:var(--ms-input-font-size);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);background:var(--ms-input-bg);color:var(--ms-input-color);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input:hover:not(:focus):not(:disabled){border:var(--ms-input-border-hover)}.ms__input:focus{outline:none;border:var(--ms-input-border-focus)}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__input.ms__input--xs{font-size:var(--ms-input-size-xs-font);padding:var(--ms-input-size-xs-padding-v) var(--ms-input-size-xs-padding-h);padding-right:calc(var(--ms-input-size-xs-padding-h) * 2.5);height:var(--ms-input-size-xs-height)}.ms__input.ms__input--sm{font-size:var(--ms-input-size-sm-font);padding:var(--ms-input-size-sm-padding-v) var(--ms-input-size-sm-padding-h);padding-right:calc(var(--ms-input-size-sm-padding-h) * 2.5);height:var(--ms-input-size-sm-height)}.ms__input.ms__input--lg{font-size:var(--ms-input-size-lg-font);padding:var(--ms-input-size-lg-padding-v) var(--ms-input-size-lg-padding-h);padding-right:calc(var(--ms-input-size-lg-padding-h) * 2.5);height:var(--ms-input-size-lg-height)}.ms__input.ms__input--xl{font-size:var(--ms-input-size-xl-font);padding:var(--ms-input-size-xl-padding-v) var(--ms-input-size-xl-padding-h);padding-right:calc(var(--ms-input-size-xl-padding-h) * 2.5);height:var(--ms-input-size-xl-height)}.ms__toggle{position:absolute;right:var(--ms-toggle-right);top:50%;transform:var(--ms-transform-center-y);pointer-events:none;color:var(--ms-toggle-icon-color);transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{transform:var(--ms-transform-center-y) rotate(var(--ms-transform-rotate-180));color:var(--ms-toggle-icon-color-open)}.ms__counter{position:absolute;right:var(--ms-counter-offset);top:50%;transform:var(--ms-transform-center-y);padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:var(--ms-transform-center-y) scale(var(--ms-transform-scale-hover))}.ms__hint{display:none;position:absolute;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:absolute;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);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-inner{flex:1;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow-y:visible}.ms__actions{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding);border-bottom:var(--ms-actions-border-bottom)}.ms__actions--wrap{flex-wrap:wrap}.ms__actions--sticky{position:sticky;top:0;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__action-btn{flex:1;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)}.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}.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{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);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer}.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit);border-left:var(--ms-option-border-matched)}.ms__option--selected{background:var(--ms-option-bg-selected)}.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)}.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched);border-left:var(--ms-option-border-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-right:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-left: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 2px 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: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)}.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))}.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)}.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))}.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{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;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)}.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__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:var(--ms-icon-clear)}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-right:none;border-radius:var(--ms-badge-border-radius) 0 0 var(--ms-badge-border-radius);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-left:none;border-radius:0 var(--ms-badge-border-radius) var(--ms-badge-border-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:var(--ms-icon-remove);font-size:var(--ms-font-size-base);line-height:var(--ms-line-height-none)}.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-right: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-left: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}.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__selected-popover{display:none;position:absolute;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-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-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)}.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}.ms--rtl .ms__input-wrapper{direction:rtl}.ms--rtl .ms__input{text-align:right;padding-left:var(--ms-input-padding-right);padding-right:var(--ms-input-padding-h)}.ms--rtl .ms__toggle{left:var(--ms-toggle-right)!important;right:auto!important}.ms--rtl .ms__counter{left:var(--ms-counter-offset)!important;right:auto!important}.ms--rtl .ms__dropdown{direction:rtl;text-align:right}.ms--rtl .ms__option{flex-direction:row-reverse}.ms--rtl .ms__checkbox{margin-left:var(--ms-spacing-sm);margin-right:0}.ms--rtl .ms__option-content{text-align:right}.ms--rtl .ms__option-icon{margin-left:var(--ms-spacing-xs);margin-right:0}.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__badge{flex-direction:row-reverse}.ms--rtl .ms__badge-remove{border-radius:var(--ms-badge-border-radius) 0 0 var(--ms-badge-border-radius);border-left:var(--ms-badge-remove-border);border-right:none}.ms--rtl .ms__badge-text{border-radius:0 var(--ms-badge-border-radius) var(--ms-badge-border-radius) 0;border-right:var(--ms-badge-text-border);border-left:none}.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)}.ms--rtl .ms__counter-wrapper{flex-direction:row-reverse}.ms--rtl .ms__selected-popover{direction:rtl;text-align:right}.ms--rtl .ms__actions{direction:rtl}.ms--rtl .ms__group-label,.ms--rtl .ms__empty{text-align:right}.ms--rtl .ms__hint{direction:rtl;text-align:right}.ms--disabled .ms__input{opacity:var(--ms-disabled-input-opacity);cursor:not-allowed;background:var(--ms-input-bg-disabled)}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity)}.ms--no-checkboxes .ms__option{gap:0;padding-left:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-left:0}.ms-debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:calc(var(--base-border-radius-md, .6) * var(--ms-rem));font-size:calc(1.2 * var(--ms-rem));color:#111827}.ms-debug-info details summary{cursor:pointer;font-weight:600;color:#2563eb;-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:calc(var(--base-border-radius-sm, .4) * var(--ms-rem))}.ms-debug-info details summary:hover{background-color:#f3f4f6}.ms-debug-info details summary:focus{outline:2px solid #3b82f6;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:#fff;border-radius:calc(var(--base-border-radius-sm, .4) * var(--ms-rem))}.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-right:calc(.4 * var(--ms-rem));color:#3b82f6}', ks = typeof HTMLElement < "u" ? HTMLElement : class {
2508
+ const Cs = `:host{--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-font-family, inherit));display:block;--ms-accent-color: var(--base-accent-color, #3b82f6);--ms-accent-color-hover: var(--base-accent-color-hover, #2563eb);--ms-accent-color-active: var(--base-accent-color-active, #1d4ed8);--ms-accent-color-light: var(--base-accent-color-light, light-dark(#eff6ff, #1e3a5f));--ms-accent-color-light-hover: var(--base-accent-color-light-hover, light-dark(#e0f2fe, #264a73));--ms-text-color-1: var(--base-text-color-1, light-dark(#111827, #f5f5f5));--ms-text-color-2: var(--base-text-color-2, light-dark(#353b47, #d4d4d4));--ms-text-color-3: var(--base-text-color-3, light-dark(#6b7280, #a3a3a3));--ms-text-color-4: var(--base-text-color-4, light-dark(#a0a3a9, #737373));--ms-text-color-on-accent: var(--base-text-color-on-accent, #ffffff);--ms-text-primary: var(--ms-text-color-1);--ms-text-secondary: var(--ms-text-color-3);--ms-primary-bg: var(--base-hover-bg, color-mix(in srgb, var(--ms-text-color-1) 8%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-primary-bg-hover: var(--base-active-bg, color-mix(in srgb, var(--ms-text-color-1) 14%, var(--base-main-bg, light-dark(#ffffff, #1a1a1a))));--ms-border-color: var(--base-border-color, light-dark(#e5e7eb, #3a3a3a));--ms-border: var(--base-border, 1px solid var(--ms-border-color));--ms-input-bg: var(--base-input-bg, light-dark(#ffffff, #1a1a1a));--ms-input-color: var(--base-input-color, var(--ms-text-color-1));--ms-input-border: var(--base-input-border, 1px solid var(--ms-border-color));--ms-input-border-hover: var(--base-input-border-hover, 1px solid var(--ms-accent-color));--ms-input-border-focus: var(--base-input-border-focus, 1px solid var(--ms-accent-color));--ms-input-placeholder-color: var(--base-input-placeholder-color, var(--ms-text-color-4));--ms-input-bg-disabled: var(--base-input-bg-disabled, rgba(107, 114, 128, .05));--ms-toggle-icon-color: var(--ms-text-color-3);--ms-toggle-icon-color-open: var(--ms-text-color-3);--ms-counter-badge-bg: var(--ms-accent-color);--ms-counter-badge-bg-hover: var(--ms-accent-color-hover);--ms-counter-badge-color: var(--ms-text-color-on-accent);--ms-hint-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-hint-color: var(--ms-text-color-4);--ms-hint-border-color: var(--ms-border-color);--ms-dropdown-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-dropdown-text-color: var(--ms-text-color-1);--ms-dropdown-border-color: var(--ms-border-color);--ms-dropdown-box-shadow-semantic: var(--base-dropdown-box-shadow, 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1));--ms-actions-bg: var(--base-main-bg, light-dark(#ffffff, #1a1a1a));--ms-actions-border-color: var(--ms-border-color);--ms-action-button-bg: transparent;--ms-action-button-bg-hover: var(--ms-primary-bg);--ms-action-button-border-color: var(--ms-border-color);--ms-action-button-border-color-hover: var(--ms-accent-color);--ms-action-button-color: var(--ms-text-color-1);--ms-group-border-color: var(--ms-border-color);--ms-option-text-color: var(--ms-text-color-1);--ms-option-bg: transparent;--ms-option-bg-hover: var(--ms-primary-bg);--ms-option-color-hover: inherit;--ms-option-bg-focused: var(--ms-primary-bg);--ms-option-color-focused: inherit;--ms-option-outline-color-focused: var(--ms-accent-color);--ms-option-bg-selected: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-option-bg-matched: color-mix(in srgb, var(--ms-accent-color) 8%, transparent);--ms-option-color-matched: inherit;--ms-option-border-matched-color: color-mix(in srgb, var(--ms-accent-color) 40%, transparent);--ms-option-title-color: var(--ms-text-color-1);--ms-option-subtitle-color: var(--ms-text-color-3);--ms-option-mark-bg: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-option-mark-color: inherit;--ms-loading-color: var(--ms-text-color-3);--ms-badge-bg: var(--ms-accent-color-light);--ms-badge-bg-hover: var(--base-hover-bg, var(--ms-input-bg));--ms-badge-bg-active: var(--ms-accent-color-light-hover);--ms-badge-text-bg-hover: var(--base-hover-bg, var(--ms-input-bg));--ms-badge-text-color-hover: var(--ms-badge-text-color);--ms-badge-counter-border-color: var(--ms-border-color);--ms-badge-counter-text-bg: var(--ms-primary-bg-hover);--ms-badge-counter-text-color: var(--ms-text-color-1);--ms-badge-counter-remove-bg: var(--ms-text-color-3);--ms-badge-counter-remove-bg-hover: var(--ms-text-color-1);--ms-badge-counter-remove-color: var(--ms-text-color-on-accent);--ms-counter-wrapper-border-color: var(--ms-border-color);--ms-count-clear-bg-hover: var(--ms-accent-color);--ms-tooltip-bg: var(--base-tooltip-bg, var(--base-inverse-bg, light-dark(#333333, #f5f5f5)));--ms-tooltip-text-color: var(--base-tooltip-text-color, light-dark(#ffffff, #1a1a1a));--ms-selected-popover-bg: var(--base-dropdown-bg, var(--base-elevated-bg, light-dark(#ffffff, #1a1a1a)));--ms-selected-popover-border-color: var(--ms-border-color);--ms-selected-popover-header-border-color: var(--ms-border-color);--ms-selected-popover-close-bg-hover: var(--ms-accent-color);--ms-input-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-input-padding-right: calc(4 * var(--ms-rem));--ms-input-padding-h: calc(1.2 * var(--ms-rem));--ms-input-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-border-width: 1px;--ms-input-border-radius: var(--ms-border-radius-md);--ms-input-text: var(--ms-text-color-1);--ms-input-bg-disabled: rgba(107, 114, 128, .05);--ms-input-size-xs-font: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-input-size-xs-padding-v: calc(.4 * var(--ms-rem));--ms-input-size-xs-padding-h: calc(.8 * var(--ms-rem));--ms-input-size-xs-height: calc(var(--base-input-size-xs-height, 3.1) * var(--ms-rem));--ms-input-size-sm-font: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-size-sm-padding-v: calc(.5 * var(--ms-rem));--ms-input-size-sm-padding-h: calc(1 * var(--ms-rem));--ms-input-size-sm-height: calc(var(--base-input-size-sm-height, 3.3) * var(--ms-rem));--ms-input-size-md-font: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-input-size-md-padding-v: calc(.8 * var(--ms-rem));--ms-input-size-md-padding-h: calc(1.2 * var(--ms-rem));--ms-input-size-md-height: calc(var(--base-input-size-md-height, 3.5) * var(--ms-rem));--ms-input-size-lg-font: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-input-size-lg-padding-v: calc(1 * var(--ms-rem));--ms-input-size-lg-padding-h: calc(1.4 * var(--ms-rem));--ms-input-size-lg-height: calc(var(--base-input-size-lg-height, 3.8) * var(--ms-rem));--ms-input-size-xl-font: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-input-size-xl-padding-v: calc(1.2 * var(--ms-rem));--ms-input-size-xl-padding-h: calc(1.6 * var(--ms-rem));--ms-input-size-xl-height: calc(var(--base-input-size-xl-height, 4.1) * var(--ms-rem));--ms-toggle-right: calc(1.2 * var(--ms-rem));--ms-toggle-color: var(--ms-text-color-3);--ms-transform-center-y: translateY(-50%);--ms-transform-rotate-180: 180deg;--ms-counter-offset: calc(3.2 * var(--ms-rem));--ms-counter-padding: calc(.2 * var(--ms-rem)) calc(.4 * var(--ms-rem));--ms-counter-bg: var(--ms-accent-color);--ms-counter-color: var(--ms-text-color-on-accent);--ms-counter-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-counter-font-weight: var(--base-font-weight-semibold, 600);--ms-counter-border-radius: var(--ms-border-radius-sm);--ms-counter-bg-hover: var(--ms-accent-color-hover);--ms-transform-scale-hover: 1.1;--ms-hint-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-hint-border: 1px solid var(--ms-hint-border-color);--ms-hint-border-radius: var(--ms-border-radius-lg);--ms-hint-box-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ms-hint-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-dropdown-border: var(--base-dropdown-border, 1px solid var(--ms-dropdown-border-color));--ms-dropdown-border-radius: var(--ms-border-radius-lg);--ms-dropdown-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-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-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-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-subtitle-margin-top: calc(.4 * var(--ms-rem));--ms-option-subtitle-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-option-subtitle-line-height: var(--base-line-height-tight, 1.25);--ms-checkbox-margin-top: calc(.2 * var(--ms-rem));--ms-checkbox-margin-right: 0;--ms-checkbox-margin-bottom: 0;--ms-checkbox-margin-left: 0;--ms-checkbox-size: calc(1.6 * var(--ms-rem));--ms-checkbox-scale: 1;--ms-checkbox-align: center;--ms-checkbox-bg: var(--ms-input-bg);--ms-checkbox-border: var(--ms-border);--ms-checkbox-border-radius: calc(.3 * var(--ms-rem));--ms-checkbox-checked-bg: var(--ms-accent-color);--ms-checkbox-checked-border: 1px 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-border);--ms-checkbox-checked-bg-hover: var(--ms-accent-color-hover);--ms-checkbox-checked-border-color-hover: var(--ms-accent-color-hover);--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));--ms-loader-gap: calc(.8 * var(--ms-rem));--ms-loading-text-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-loading-text-color: var(--ms-text-color-3);--ms-badges-gap: calc(.8 * var(--ms-rem));--ms-badges-margin-bottom: calc(.8 * var(--ms-rem));--ms-badges-margin-top: calc(.8 * var(--ms-rem));--ms-badges-margin-left: calc(.4 * var(--ms-rem));--ms-badges-margin-right: calc(.4 * var(--ms-rem));--ms-inline-align: center;--ms-badge-gap: calc(.8 * var(--ms-rem));--ms-badge-height: calc(2.7 * var(--ms-rem));--ms-badge-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-font-weight: var(--base-font-weight-semibold, 600);--ms-badge-border-radius: var(--ms-border-radius-sm);--ms-order-first: -1;--ms-badge-text-padding: 0 calc(.8 * var(--ms-rem));--ms-badge-text-bg: var(--ms-accent-color-light);--ms-badge-text-color: var(--ms-accent-color);--ms-badge-text-border: none;--ms-badge-remove-width: calc(2.7 * var(--ms-rem));--ms-badge-remove-bg: var(--ms-accent-color);--ms-badge-remove-color: var(--ms-text-color-on-accent);--ms-badge-remove-border: none;--ms-badge-remove-font-size: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-badge-remove-bg-hover: var(--ms-accent-color-hover);--ms-badge-remove-box-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--ms-accent-color) 50%, transparent);--ms-badge-remove-icon-size: calc(1 * var(--ms-rem));--ms-icon-remove: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6 6L18 18M18 6L6 18' stroke='black' stroke-width='2.5' stroke-linecap='round' fill='none'/></svg>");--ms-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-z-index-popover: 10000;--ms-selected-popover-width: calc(32 * var(--ms-rem));--ms-selected-popover-max-height: calc(32 * var(--ms-rem));--ms-selected-popover-border: 1px solid var(--ms-selected-popover-border-color);--ms-selected-popover-border-radius: var(--ms-border-radius-lg);--ms-selected-popover-box-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--ms-selected-popover-header-padding: calc(.8 * var(--ms-rem)) calc(1.2 * var(--ms-rem));--ms-selected-popover-header-bg: color-mix(in srgb, var(--ms-accent-color) 10%, transparent);--ms-selected-popover-header-border-bottom: 1px solid var(--ms-selected-popover-header-border-color);--ms-selected-popover-header-font-size: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-selected-popover-header-font-weight: var(--base-font-weight-semibold, 600);--ms-selected-popover-header-color: var(--ms-text-color-1);--ms-popover-close-size: calc(2.4 * var(--ms-rem));--ms-selected-popover-close-bg: transparent;--ms-selected-popover-close-color: var(--ms-text-color-3);--ms-selected-popover-close-font-size: calc(var(--base-font-size-xl, 2) * var(--ms-rem));--ms-selected-popover-close-border-radius: var(--ms-border-radius-sm);--ms-selected-popover-close-bg-hover: color-mix(in srgb, var(--ms-accent-color) 20%, transparent);--ms-selected-popover-close-color-hover: var(--ms-accent-color);--ms-selected-popover-close-icon-size: calc(1.4 * var(--ms-rem));--ms-selected-popover-body-gap: calc(.4 * var(--ms-rem));--ms-selected-popover-body-padding: calc(.8 * var(--ms-rem));--ms-selected-popover-body-max-height: calc(28.8 * var(--ms-rem));--ms-font-size-2xs: calc(var(--base-font-size-2xs, 1) * var(--ms-rem));--ms-font-size-xs: calc(var(--base-font-size-xs, 1.2) * var(--ms-rem));--ms-font-size-sm: calc(var(--base-font-size-sm, 1.4) * var(--ms-rem));--ms-font-size-base: calc(var(--base-font-size-base, 1.6) * var(--ms-rem));--ms-font-size-lg: calc(var(--base-font-size-lg, 1.8) * var(--ms-rem));--ms-font-weight-normal: var(--base-font-weight-normal, 400);--ms-font-weight-medium: var(--base-font-weight-medium, 500);--ms-font-weight-semibold: var(--base-font-weight-semibold, 600);--ms-line-height-none: 1;--ms-line-height-tight: var(--base-line-height-tight, 1.25);--ms-line-height-normal: var(--base-line-height-normal, 1.5);--ms-line-height-relaxed: var(--base-line-height-relaxed, 1.75);--ms-border-radius-sm: calc(var(--base-border-radius-sm, .4) * var(--ms-rem));--ms-border-radius-md: calc(var(--base-border-radius-md, .6) * var(--ms-rem));--ms-border-radius-lg: calc(var(--base-border-radius-lg, .8) * var(--ms-rem));--ms-border-radius: var(--ms-border-radius-md);--ms-spacing-xs: calc(.4 * var(--ms-rem));--ms-spacing-sm: calc(.8 * var(--ms-rem));--ms-spacing-md: calc(1.2 * var(--ms-rem));--ms-spacing-lg: calc(1.6 * var(--ms-rem));--ms-transition-fast: .15s;--ms-transition-normal: .2s;--ms-easing-snappy: cubic-bezier(.4, 0, .2, 1);--ms-placeholder-opacity: .6;--ms-disabled-input-opacity: .6;--ms-scrollbar-width: 8px;--ms-scrollbar-track-bg: transparent;--ms-scrollbar-thumb-bg: var(--ms-border-color);--ms-scrollbar-thumb-bg-hover: var(--ms-text-color-3);--ms-scrollbar-thumb-border-radius: 4px}multi-select:not(:defined){display:block;min-height:calc(3.5 * var(--ms-rem));color:transparent!important;background: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%}.ms__input-wrapper{position:relative;display:flex;align-items:center}.ms__input{box-sizing:border-box;width:100%;font-family:inherit;height:var(--ms-input-height);padding:var(--ms-input-padding);padding-right:var(--ms-input-padding-right);font-size:var(--ms-input-font-size);border:var(--ms-input-border);border-radius:var(--ms-input-border-radius);background:var(--ms-input-bg);color:var(--ms-input-color);cursor:pointer;transition:border var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__input:hover:not(:focus):not(:disabled){border:var(--ms-input-border-hover)}.ms__input:focus{outline:none;border:var(--ms-input-border-focus)}.ms__input::placeholder{color:var(--ms-input-placeholder-color);opacity:0;transition:opacity var(--ms-transition-fast) var(--ms-easing-snappy)}:host([data-ready]) .ms__input::placeholder{opacity:var(--ms-placeholder-opacity)}.ms__input.ms__input--xs{font-size:var(--ms-input-size-xs-font);padding:var(--ms-input-size-xs-padding-v) var(--ms-input-size-xs-padding-h);padding-right:calc(var(--ms-input-size-xs-padding-h) * 2.5);height:var(--ms-input-size-xs-height)}.ms__input.ms__input--sm{font-size:var(--ms-input-size-sm-font);padding:var(--ms-input-size-sm-padding-v) var(--ms-input-size-sm-padding-h);padding-right:calc(var(--ms-input-size-sm-padding-h) * 2.5);height:var(--ms-input-size-sm-height)}.ms__input.ms__input--lg{font-size:var(--ms-input-size-lg-font);padding:var(--ms-input-size-lg-padding-v) var(--ms-input-size-lg-padding-h);padding-right:calc(var(--ms-input-size-lg-padding-h) * 2.5);height:var(--ms-input-size-lg-height)}.ms__input.ms__input--xl{font-size:var(--ms-input-size-xl-font);padding:var(--ms-input-size-xl-padding-v) var(--ms-input-size-xl-padding-h);padding-right:calc(var(--ms-input-size-xl-padding-h) * 2.5);height:var(--ms-input-size-xl-height)}.ms__toggle{position:absolute;right:var(--ms-toggle-right);top:50%;transform:var(--ms-transform-center-y);pointer-events:none;color:var(--ms-toggle-icon-color);transition:transform var(--ms-transition-fast) var(--ms-easing-snappy)}.ms--open .ms__toggle{transform:var(--ms-transform-center-y) rotate(var(--ms-transform-rotate-180));color:var(--ms-toggle-icon-color-open)}.ms__counter{position:absolute;right:var(--ms-counter-offset);top:50%;transform:var(--ms-transform-center-y);padding:var(--ms-counter-padding);background:var(--ms-counter-badge-bg);color:var(--ms-counter-badge-color);font-size:var(--ms-counter-font-size);font-weight:var(--ms-counter-font-weight);border-radius:var(--ms-counter-border-radius);cursor:pointer;transition:all var(--ms-transition-fast) var(--ms-easing-snappy)}.ms__counter:hover{background:var(--ms-counter-badge-bg-hover);transform:var(--ms-transform-center-y) scale(var(--ms-transform-scale-hover))}.ms__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);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-inner{flex:1;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ms-scrollbar-thumb-bg) var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar{width:var(--ms-scrollbar-width)}.ms__dropdown-inner::-webkit-scrollbar-track{background:var(--ms-scrollbar-track-bg)}.ms__dropdown-inner::-webkit-scrollbar-thumb{background:var(--ms-scrollbar-thumb-bg);border-radius:var(--ms-scrollbar-thumb-border-radius)}.ms__dropdown-inner::-webkit-scrollbar-thumb:hover{background:var(--ms-scrollbar-thumb-bg-hover)}.ms__dropdown--virtual{max-height:none}.ms__dropdown--virtual .ms__dropdown-inner{overflow-y:visible}.ms__actions{display:flex;flex-wrap:nowrap;gap:var(--ms-actions-gap);padding:var(--ms-actions-padding);border-bottom:var(--ms-actions-border-bottom)}.ms__actions--wrap{flex-wrap:wrap}.ms__actions--sticky{position:sticky;top:0;z-index:var(--ms-z-index-sticky);background:var(--ms-actions-bg)}.ms__action-btn{flex:1;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)}.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}.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{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);color:var(--ms-option-text-color);background:var(--ms-option-bg);cursor:pointer}.ms__option:hover{background:var(--ms-option-bg-hover);color:var(--ms-option-color-hover, inherit)}.ms__option--focused{background:var(--ms-option-bg-focused);color:var(--ms-option-color-focused, inherit);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--matched{background:var(--ms-option-bg-matched);color:var(--ms-option-color-matched, inherit);border-left:var(--ms-option-border-matched)}.ms__option--selected{background:var(--ms-option-bg-selected)}.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)}.ms__option--focused:hover{background:var(--ms-option-bg-focused-hover);color:var(--ms-option-color-focused-hover, var(--ms-option-color-focused, var(--ms-option-text-color)))}.ms__option--matched:hover{background:var(--ms-option-bg-matched-hover);color:var(--ms-option-color-matched-hover, var(--ms-option-color-matched, var(--ms-option-text-color)))}.ms__option--selected.ms__option--focused{background:var(--ms-option-bg-selected-focused);outline:var(--ms-option-outline-focused);outline-offset:var(--ms-option-focus-outline-offset)}.ms__option--selected.ms__option--matched{background:var(--ms-option-bg-selected-matched);border-left:var(--ms-option-border-matched)}.ms__option--disabled.ms__option--selected{background:var(--ms-option-bg-disabled-selected)}.ms__option--disabled.ms__option--focused{outline:none}.ms__option[data-checkbox-align=top]{--ms-checkbox-align: flex-start}.ms__option[data-checkbox-align=bottom]{--ms-checkbox-align: flex-end}.ms__checkbox{appearance:none;-webkit-appearance:none;-moz-appearance:none;flex-shrink:0;position:relative;margin-top:var(--ms-checkbox-margin-top);margin-right:var(--ms-checkbox-margin-right);margin-bottom:var(--ms-checkbox-margin-bottom);margin-left: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 2px 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: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)}.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))}.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)}.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))}.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{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;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)}.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__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}.ms__badge{display:inline-flex;align-items:center;height:var(--ms-badge-height);font-size:var(--ms-badge-font-size);font-weight:var(--ms-badge-font-weight);line-height:var(--ms-line-height-none);border-radius:var(--ms-badge-border-radius);overflow:hidden;max-width:100%}.ms__badge-text{display:flex;align-items:center;box-sizing:border-box;height:100%;padding:var(--ms-badge-text-padding);background:var(--ms-badge-text-bg);color:var(--ms-badge-text-color);border:var(--ms-badge-text-border);border-right:none;border-radius:var(--ms-badge-border-radius) 0 0 var(--ms-badge-border-radius);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-left:none;border-radius:0 var(--ms-badge-border-radius) var(--ms-badge-border-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-right: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-left: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}.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__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-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)}.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}.ms--rtl .ms__input-wrapper{direction:rtl}.ms--rtl .ms__input{text-align:right;padding-left:var(--ms-input-padding-right);padding-right:var(--ms-input-padding-h)}.ms--rtl .ms__toggle{left:var(--ms-toggle-right)!important;right:auto!important}.ms--rtl .ms__counter{left:var(--ms-counter-offset)!important;right:auto!important}.ms--rtl .ms__dropdown{direction:rtl;text-align:right}.ms--rtl .ms__option{flex-direction:row-reverse}.ms--rtl .ms__checkbox{margin-left:var(--ms-spacing-sm);margin-right:0}.ms--rtl .ms__option-content{text-align:right}.ms--rtl .ms__option-icon{margin-left:var(--ms-spacing-xs);margin-right:0}.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__badge{flex-direction:row-reverse}.ms--rtl .ms__badge-remove{border-radius:var(--ms-badge-border-radius) 0 0 var(--ms-badge-border-radius);border-left:var(--ms-badge-remove-border);border-right:none}.ms--rtl .ms__badge-text{border-radius:0 var(--ms-badge-border-radius) var(--ms-badge-border-radius) 0;border-right:var(--ms-badge-text-border);border-left:none}.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)}.ms--rtl .ms__counter-wrapper{flex-direction:row-reverse}.ms--rtl .ms__selected-popover{direction:rtl;text-align:right}.ms--rtl .ms__actions{direction:rtl}.ms--rtl .ms__group-label,.ms--rtl .ms__empty{text-align:right}.ms--rtl .ms__hint{direction:rtl;text-align:right}.ms--disabled .ms__input{opacity:var(--ms-disabled-input-opacity);cursor:not-allowed;background:var(--ms-input-bg-disabled)}.ms--disabled .ms__toggle{opacity:var(--ms-disabled-input-opacity)}.ms--no-checkboxes .ms__option{gap:0;padding-left:var(--ms-option-padding-h)}.ms--no-checkboxes .ms__option-content{padding-left:0}.ms-debug-info{margin-top:calc(.4 * var(--ms-rem));padding:calc(.4 * var(--ms-rem));background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:calc(var(--base-border-radius-md, .6) * var(--ms-rem));font-size:calc(1.2 * var(--ms-rem));color:#111827}.ms-debug-info details summary{cursor:pointer;font-weight:600;color:#2563eb;-webkit-user-select:none;user-select:none;padding:calc(.4 * var(--ms-rem));border-radius:calc(var(--base-border-radius-sm, .4) * var(--ms-rem))}.ms-debug-info details summary:hover{background-color:#f3f4f6}.ms-debug-info details summary:focus{outline:2px solid #3b82f6;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:#fff;border-radius:calc(var(--base-border-radius-sm, .4) * var(--ms-rem))}.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-right:calc(.4 * var(--ms-rem));color:#3b82f6}`, Ss = typeof HTMLElement < "u" ? HTMLElement : class {
2433
2509
  }, Ce = [
2434
2510
  // Strings
2435
2511
  { attr: "search-hint", key: "searchHint", parser: "string-or-undefined" },
@@ -2538,7 +2614,7 @@ const ys = ':host{--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-fo
2538
2614
  { attr: "show-counter", key: "isCounterShown", parser: "bool-default-false" },
2539
2615
  { attr: "enable-virtual-scroll", key: "isVirtualScrollEnabled", parser: "bool-default-false" },
2540
2616
  { attr: "enable-badge-tooltips", key: "isBadgeTooltipsEnabled", parser: "bool-default-false" }
2541
- ], xs = new Map(Ce.map((s) => [s.attr, s])), We = [
2617
+ ], Ts = new Map(Ce.map((s) => [s.attr, s])), je = [
2542
2618
  { key: "valueMember", field: "_valueMember" },
2543
2619
  { key: "displayValueMember", field: "_displayValueMember" },
2544
2620
  { key: "searchValueMember", field: "_searchValueMember" },
@@ -2547,7 +2623,7 @@ const ys = ':host{--ms-rem: 10px;font-family:var(--ms-font-family, var(--base-fo
2547
2623
  { key: "groupMember", field: "_groupMember" },
2548
2624
  { key: "disabledMember", field: "_disabledMember" }
2549
2625
  ];
2550
- function je(s, e) {
2626
+ function Ge(s, e) {
2551
2627
  if (e === null || e === "")
2552
2628
  switch (s.parser) {
2553
2629
  case "bool-default-true":
@@ -2574,15 +2650,16 @@ function je(s, e) {
2574
2650
  }
2575
2651
  }
2576
2652
  const Se = /* @__PURE__ */ new Set();
2577
- function at() {
2653
+ function ct() {
2578
2654
  return Array.from(Se);
2579
2655
  }
2580
- class lt extends ks {
2656
+ class Ae extends Ss {
2581
2657
  constructor() {
2582
2658
  super();
2583
2659
  d(this, "picker");
2584
2660
  d(this, "containerElement");
2585
2661
  d(this, "shadow");
2662
+ d(this, "internals");
2586
2663
  // Properties for complex data (not attributes)
2587
2664
  d(this, "_options");
2588
2665
  // Member/Callback properties
@@ -2627,9 +2704,13 @@ class lt extends ks {
2627
2704
  d(this, "_deselectCallback");
2628
2705
  d(this, "_changeCallback");
2629
2706
  d(this, "_declarativeSelectedValues");
2630
- this.shadow = this.attachShadow({ mode: "open" });
2707
+ if (this.shadow = this.attachShadow({ mode: "open" }), typeof this.attachInternals == "function")
2708
+ try {
2709
+ this.internals = this.attachInternals();
2710
+ } catch {
2711
+ }
2631
2712
  const t = document.createElement("style");
2632
- t.textContent = ys, this.shadow.appendChild(t), requestAnimationFrame(() => {
2713
+ t.textContent = Cs, this.shadow.appendChild(t), requestAnimationFrame(() => {
2633
2714
  this.setAttribute("data-ready", "");
2634
2715
  });
2635
2716
  }
@@ -2641,10 +2722,21 @@ class lt extends ks {
2641
2722
  "show-debug-info"
2642
2723
  ];
2643
2724
  }
2725
+ /**
2726
+ * Called by the browser when the surrounding <form> is reset. Clears the
2727
+ * picker's selection so the multiselect actually participates in the
2728
+ * standard reset lifecycle. (Before form-association, reset was a no-op
2729
+ * because the hidden inputs were re-stamped from internal state on every
2730
+ * render.)
2731
+ */
2732
+ formResetCallback() {
2733
+ var t;
2734
+ (t = this.picker) == null || t.clearAll();
2735
+ }
2644
2736
  connectedCallback() {
2645
2737
  Se.add(this), this.render();
2646
2738
  const t = this.parseDeclarativeOptions();
2647
- t && (this._options && this._options.length > 0 && C.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), this._options = t), this.initializePicker();
2739
+ t && (this._options && this._options.length > 0 && x.warn("[MultiSelectElement] Both declarative <option> elements and programmatic .options detected. Using declarative options."), this._options = t), this.initializePicker();
2648
2740
  }
2649
2741
  disconnectedCallback() {
2650
2742
  Se.delete(this), this.picker && this.picker.destroy();
@@ -2657,9 +2749,9 @@ class lt extends ks {
2657
2749
  a && a.remove(), i === "true" && this.renderDebugInfo();
2658
2750
  return;
2659
2751
  }
2660
- const r = xs.get(t);
2752
+ const r = Ts.get(t);
2661
2753
  if (r) {
2662
- const a = je(r, i), l = (n = We.find((u) => u.key === r.key)) == null ? void 0 : n.field, c = a === void 0 && l ? this[l] : a, h = { [r.key]: c };
2754
+ const a = Ge(r, i), l = (n = je.find((u) => u.key === r.key)) == null ? void 0 : n.field, c = a === void 0 && l ? this[l] : a, h = { [r.key]: c };
2663
2755
  if (this.picker.updateOptions(h)) return;
2664
2756
  }
2665
2757
  this.reinitialize();
@@ -2681,7 +2773,7 @@ class lt extends ks {
2681
2773
  var m, g;
2682
2774
  const t = this.shadow.querySelector(".ms-debug-stats");
2683
2775
  if (!t || !this.picker) return;
2684
- const o = "1.9.0", i = at().length, n = this.picker.getSelected().length, a = ((m = this._options) == null ? void 0 : m.length) || 0, l = this.picker, c = l.isOpen || !1, h = l.searchTerm || "", p = l.isLoading || !1, u = ((g = l.filteredOptions) == null ? void 0 : g.length) || 0;
2776
+ const o = "1.11.0", i = ct().length, n = this.picker.getSelected().length, a = ((m = this._options) == null ? void 0 : m.length) || 0, l = this.picker, c = l.isOpen || !1, h = l.searchTerm || "", p = l.isLoading || !1, u = ((g = l.filteredOptions) == null ? void 0 : g.length) || 0;
2685
2777
  t.innerHTML = `
2686
2778
  <span>Version: ${o}</span>
2687
2779
  <span>Total Instances: ${i}</span>
@@ -2723,7 +2815,7 @@ class lt extends ks {
2723
2815
  m.hasAttribute("selected") && (this._declarativeSelectedValues || (this._declarativeSelectedValues = []), this._declarativeSelectedValues.push(g.value)), m.hasAttribute("disabled") && (g.disabled = !0), m.hasAttribute("data-icon") && (g.icon = m.getAttribute("data-icon")), m.hasAttribute("data-subtitle") && (g.subtitle = m.getAttribute("data-subtitle")), t.push(g), i = !0;
2724
2816
  }
2725
2817
  }
2726
- return i ? (C.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`), o.forEach((c) => {
2818
+ return i ? (x.debug(`[MultiSelectElement] Parsed ${t.length} declarative options from Light DOM`), o.forEach((c) => {
2727
2819
  (c.tagName === "OPTION" || c.tagName === "OPTGROUP") && c.remove();
2728
2820
  }), t) : null;
2729
2821
  }
@@ -2731,7 +2823,7 @@ class lt extends ks {
2731
2823
  parseAttributesFromTable() {
2732
2824
  const t = {};
2733
2825
  for (const o of Ce) {
2734
- const i = je(o, this.getAttribute(o.attr));
2826
+ const i = Ge(o, this.getAttribute(o.attr));
2735
2827
  i !== void 0 && (t[o.key] = i);
2736
2828
  }
2737
2829
  return t;
@@ -2739,21 +2831,29 @@ class lt extends ks {
2739
2831
  initializePicker() {
2740
2832
  if (!this.containerElement) return;
2741
2833
  let t;
2834
+ const o = this.getAttribute("data-options");
2835
+ if (o && this._options === void 0)
2836
+ try {
2837
+ t = JSON.parse(o);
2838
+ } catch (n) {
2839
+ x.error("[MultiSelectElement] Failed to parse data-options:", n);
2840
+ }
2841
+ let i;
2742
2842
  if (this._declarativeSelectedValues && this._declarativeSelectedValues.length > 0)
2743
- t = this._declarativeSelectedValues, C.debug(`[MultiSelectElement] Using ${t.length} declaratively selected values`);
2843
+ i = this._declarativeSelectedValues, x.debug(`[MultiSelectElement] Using ${i.length} declaratively selected values`);
2744
2844
  else {
2745
- const i = this.getAttribute("initial-values");
2746
- if (i)
2845
+ const n = this.getAttribute("initial-values");
2846
+ if (n)
2747
2847
  try {
2748
- t = JSON.parse(i);
2749
- } catch (r) {
2750
- C.error("[MultiSelectElement] Failed to parse initial-values:", r);
2848
+ i = JSON.parse(n);
2849
+ } catch (a) {
2850
+ x.error("[MultiSelectElement] Failed to parse initial-values:", a);
2751
2851
  }
2752
2852
  }
2753
- const o = this.parseAttributesFromTable();
2754
- for (const { key: i, field: r } of We)
2755
- o[i] === void 0 && (o[i] = this[r]);
2756
- if (Object.assign(o, {
2853
+ const r = this.parseAttributesFromTable();
2854
+ for (const { key: n, field: a } of je)
2855
+ r[n] === void 0 && (r[n] = this[a]);
2856
+ if (Object.assign(r, {
2757
2857
  actionButtons: this._actionButtons,
2758
2858
  getValueCallback: this._getValueCallback,
2759
2859
  getDisplayValueCallback: this._getDisplayValueCallback,
@@ -2774,35 +2874,35 @@ class lt extends ks {
2774
2874
  getValueFormatCallback: this._getValueFormatCallback,
2775
2875
  getBadgeTooltipCallback: this._getBadgeTooltipCallback,
2776
2876
  getRemoveButtonTooltipCallback: this._getRemoveButtonTooltipCallback,
2777
- getCounterCallback: this._getCounterCallback || ((i, r) => r !== void 0 ? `+${r} more` : `${i} selected`),
2778
- options: this._options,
2877
+ getCounterCallback: this._getCounterCallback || ((n, a) => a !== void 0 ? `+${a} more` : `${n} selected`),
2878
+ options: this._options ?? t,
2779
2879
  beforeSearchCallback: this._beforeSearchCallback,
2780
2880
  searchCallback: this._searchCallback,
2781
2881
  addNewCallback: this._addNewCallback,
2782
- selectCallback: (i) => {
2783
- var r;
2784
- this._selectCallback && this._selectCallback(i), this.dispatchEvent(new CustomEvent("select", {
2882
+ selectCallback: (n) => {
2883
+ var a;
2884
+ this._selectCallback && this._selectCallback(n), this.dispatchEvent(new CustomEvent("select", {
2785
2885
  detail: {
2786
- option: i,
2787
- selectedOptions: (r = this.picker) == null ? void 0 : r.getSelected(),
2886
+ option: n,
2887
+ selectedOptions: (a = this.picker) == null ? void 0 : a.getSelected(),
2788
2888
  selectedValues: this.collectSelectedValues()
2789
2889
  }
2790
2890
  }));
2791
2891
  },
2792
- deselectCallback: (i) => {
2793
- var r;
2794
- this._deselectCallback && this._deselectCallback(i), this.dispatchEvent(new CustomEvent("deselect", {
2892
+ deselectCallback: (n) => {
2893
+ var a;
2894
+ this._deselectCallback && this._deselectCallback(n), this.dispatchEvent(new CustomEvent("deselect", {
2795
2895
  detail: {
2796
- option: i,
2797
- selectedOptions: (r = this.picker) == null ? void 0 : r.getSelected(),
2896
+ option: n,
2897
+ selectedOptions: (a = this.picker) == null ? void 0 : a.getSelected(),
2798
2898
  selectedValues: this.collectSelectedValues()
2799
2899
  }
2800
2900
  }));
2801
2901
  },
2802
- changeCallback: (i) => {
2803
- this._changeCallback && this._changeCallback(i), this.dispatchEvent(new CustomEvent("change", {
2902
+ changeCallback: (n) => {
2903
+ this._changeCallback && this._changeCallback(n), this.dispatchEvent(new CustomEvent("change", {
2804
2904
  detail: {
2805
- selectedOptions: i,
2905
+ selectedOptions: n,
2806
2906
  selectedValues: this.collectSelectedValues()
2807
2907
  }
2808
2908
  }));
@@ -2811,11 +2911,11 @@ class lt extends ks {
2811
2911
  container: this.shadow,
2812
2912
  // Pass host element (this) for hidden inputs in light DOM
2813
2913
  hostElement: this
2814
- }), t && (this.containerElement.dataset.initialValues = JSON.stringify(t)), this.picker = new ws(this.containerElement, o), this._customStylesCallback) {
2815
- const i = this._customStylesCallback();
2816
- if (i) {
2817
- const r = document.createElement("style");
2818
- r.className = "ms-custom-styles", r.textContent = i, this.shadow.insertBefore(r, this.shadow.firstChild);
2914
+ }), i && (this.containerElement.dataset.initialValues = JSON.stringify(i)), this.picker = new xs(this.containerElement, r), this._customStylesCallback) {
2915
+ const n = this._customStylesCallback();
2916
+ if (n) {
2917
+ const a = document.createElement("style");
2918
+ a.className = "ms-custom-styles", a.textContent = n, this.shadow.insertBefore(a, this.shadow.firstChild);
2819
2919
  }
2820
2920
  }
2821
2921
  }
@@ -3142,16 +3242,21 @@ class lt extends ks {
3142
3242
  this.picker && this.picker.destroy();
3143
3243
  }
3144
3244
  }
3145
- typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect", lt));
3245
+ // Opt into the form-associated custom element lifecycle. This is what
3246
+ // makes `form.reset()`, `form.elements`, and (in the future) constraint
3247
+ // validation actually do something. Without this flag the element is
3248
+ // invisible to the form lifecycle even when it has a `name`.
3249
+ d(Ae, "formAssociated", !0);
3250
+ typeof window < "u" && typeof customElements < "u" && (customElements.get("web-multiselect") || customElements.define("web-multiselect", Ae));
3146
3251
  typeof window < "u" && (window.components = window.components || {}, window.components["web-multiselect"] = {
3147
- version: () => "1.9.0",
3252
+ version: () => "1.11.0",
3148
3253
  config: {
3149
3254
  name: "@keenmate/web-multiselect",
3150
- version: "1.9.0",
3255
+ version: "1.11.0",
3151
3256
  author: "Keenmate",
3152
3257
  license: "MIT",
3153
3258
  repository: "git+https://github.com/keenmate/web-multiselect.git",
3154
- homepage: "https://github.com/keenmate/web-multiselect#readme"
3259
+ homepage: "https://web-multiselect.keenmate.dev"
3155
3260
  },
3156
3261
  logging: {
3157
3262
  enableLogging: gs,
@@ -3161,15 +3266,15 @@ typeof window < "u" && (window.components = window.components || {}, window.comp
3161
3266
  getCategories: () => [...us]
3162
3267
  },
3163
3268
  register: () => {
3164
- typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", lt);
3269
+ typeof customElements < "u" && !customElements.get("web-multiselect") && customElements.define("web-multiselect", Ae);
3165
3270
  },
3166
- getInstances: () => at()
3271
+ getInstances: () => ct()
3167
3272
  });
3168
3273
  export {
3169
3274
  us as LOGGING_CATEGORIES,
3170
- lt as MultiSelectElement,
3171
- ws as WebMultiSelect,
3172
- C as dataLogger,
3275
+ Ae as MultiSelectElement,
3276
+ xs as WebMultiSelect,
3277
+ x as dataLogger,
3173
3278
  bs as disableLogging,
3174
3279
  gs as enableLogging,
3175
3280
  oe as initLogger,